Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
T
traffic-signal-platform
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
signal
traffic-signal-platform
Commits
0ccb6829
Commit
0ccb6829
authored
Sep 13, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 新信号评价-方案评价-效率提升策略总体评价
parent
88b04a94
Changes
9
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
288 additions
and
34 deletions
+288
-34
SchemeDetailOverallBO.java
...src/main/java/net/wanji/opt/bo/SchemeDetailOverallBO.java
+4
-1
SchemeEvaluateController.java
...va/net/wanji/opt/controller/SchemeEvaluateController.java
+15
-11
SchemeEvaluateService.java
...ain/java/net/wanji/opt/service/SchemeEvaluateService.java
+5
-0
SchemeEvaluateServiceImpl.java
...net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
+202
-6
SchemeEvaluateSchemeDetailOverallVO.java
...net/wanji/opt/vo/SchemeEvaluateSchemeDetailOverallVO.java
+2
-2
BaseEnum.java
wj-common/src/main/java/net/wanji/common/enums/BaseEnum.java
+10
-1
StrategyAndMetricsEnum.java
...n/java/net/wanji/common/enums/StrategyAndMetricsEnum.java
+20
-13
CrossDirDataHistMapper.java
.../net/wanji/databus/dao/mapper/CrossDirDataHistMapper.java
+6
-0
CrossDirDataHistMapper.xml
...abus/src/main/resources/mapper/CrossDirDataHistMapper.xml
+24
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/bo/SchemeDetailOverallBO.java
View file @
0ccb6829
...
@@ -14,6 +14,9 @@ import java.util.Date;
...
@@ -14,6 +14,9 @@ import java.util.Date;
@Data
@Data
@ApiModel
(
value
=
"SchemeDetailOverallBO"
,
description
=
"方案详情-总体评价入参"
)
@ApiModel
(
value
=
"SchemeDetailOverallBO"
,
description
=
"方案详情-总体评价入参"
)
public
class
SchemeDetailOverallBO
{
public
class
SchemeDetailOverallBO
{
@ApiModelProperty
(
value
=
"路口ID"
)
private
String
crossId
;
@ApiModelProperty
(
value
=
"年月日,格式 2023/7/9"
)
@ApiModelProperty
(
value
=
"年月日,格式 2023/7/9"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy/M/d"
,
timezone
=
"GMT+8"
)
@JsonFormat
(
shape
=
JsonFormat
.
Shape
.
STRING
,
pattern
=
"yyyy/M/d"
,
timezone
=
"GMT+8"
)
private
Date
problemDate
;
private
Date
problemDate
;
...
@@ -24,6 +27,6 @@ public class SchemeDetailOverallBO {
...
@@ -24,6 +27,6 @@ public class SchemeDetailOverallBO {
@ApiModelProperty
(
value
=
"结束时间 HH:mm"
)
@ApiModelProperty
(
value
=
"结束时间 HH:mm"
)
String
endTime
;
String
endTime
;
@ApiModelProperty
(
value
=
"策略编号"
)
@ApiModelProperty
(
value
=
"策略编号
100030均衡调控 100152效率提升 100010安全保障
"
)
String
strategyCode
;
String
strategyCode
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/controller/SchemeEvaluateController.java
View file @
0ccb6829
...
@@ -8,9 +8,11 @@ import net.wanji.common.framework.rest.JsonViewObject;
...
@@ -8,9 +8,11 @@ import net.wanji.common.framework.rest.JsonViewObject;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.opt.bo.CrossSchemeListBO
;
import
net.wanji.opt.bo.CrossSchemeListBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.bo.SchemeDetailOverallBO
;
import
net.wanji.opt.service.impl.SchemeEvaluateServiceImpl
;
import
net.wanji.opt.service.impl.SchemeEvaluateServiceImpl
;
import
net.wanji.opt.vo.SchemeEvaluateCrossSchemeListVO
;
import
net.wanji.opt.vo.SchemeEvaluateCrossSchemeListVO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateSchemeDetailOverallVO
;
import
net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO
;
import
net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.RequestBody
;
import
org.springframework.web.bind.annotation.RequestBody
;
...
@@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
...
@@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.RequestMapping;
import
org.springframework.web.bind.annotation.RestController
;
import
org.springframework.web.bind.annotation.RestController
;
import
javax.ws.rs.core.MediaType
;
import
javax.ws.rs.core.MediaType
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.List
;
/**
/**
...
@@ -71,16 +74,17 @@ public class SchemeEvaluateController {
...
@@ -71,16 +74,17 @@ public class SchemeEvaluateController {
return
JsonViewObject
.
newInstance
().
success
(
res
);
return
JsonViewObject
.
newInstance
().
success
(
res
);
}
}
// @ApiOperation(value = "方案详情-总体评价", notes = "方案详情-总体评价", response = JsonViewObject.class,
@ApiOperation
(
value
=
"方案详情-总体评价"
,
notes
=
"方案详情-总体评价"
,
response
=
JsonViewObject
.
class
,
// produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
// @PostMapping(value = "/schemeDetailOverall",
@PostMapping
(
value
=
"/schemeDetailOverall"
,
// produces = MediaType.APPLICATION_JSON, consumes = MediaType.APPLICATION_JSON)
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
// @ApiResponses({
@ApiResponses
({
// @ApiResponse(code = 200, message = "OK", response = SchemeEvaluateSchemeDetailOverallVO.class),
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
SchemeEvaluateSchemeDetailOverallVO
.
class
),
// })
})
// public JsonViewObject schemeDetailOverall(@RequestBody SchemeDetailOverallBO schemeDetailOverallBO) {
public
JsonViewObject
schemeDetailOverall
(
@RequestBody
SchemeDetailOverallBO
schemeDetailOverallBO
)
// SchemeEvaluateSchemeDetailOverallVO res = schemeEvaluateService.schemeDetailOverall(schemeDetailOverallBO);
throws
ParseException
{
// return JsonViewObject.newInstance().success(res);
SchemeEvaluateSchemeDetailOverallVO
res
=
schemeEvaluateService
.
schemeDetailOverall
(
schemeDetailOverallBO
);
// }
return
JsonViewObject
.
newInstance
().
success
(
res
);
}
}
}
\ No newline at end of file
signal-optimize-service/src/main/java/net/wanji/opt/service/SchemeEvaluateService.java
View file @
0ccb6829
...
@@ -3,10 +3,13 @@ package net.wanji.opt.service;
...
@@ -3,10 +3,13 @@ package net.wanji.opt.service;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.opt.bo.CrossSchemeListBO
;
import
net.wanji.opt.bo.CrossSchemeListBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.bo.SchemeDetailOverallBO
;
import
net.wanji.opt.vo.SchemeEvaluateCrossSchemeListVO
;
import
net.wanji.opt.vo.SchemeEvaluateCrossSchemeListVO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateSchemeDetailOverallVO
;
import
net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO
;
import
net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO
;
import
java.text.ParseException
;
import
java.util.List
;
import
java.util.List
;
public
interface
SchemeEvaluateService
{
public
interface
SchemeEvaluateService
{
...
@@ -15,4 +18,6 @@ public interface SchemeEvaluateService {
...
@@ -15,4 +18,6 @@ public interface SchemeEvaluateService {
List
<
SchemeEvaluateStrategyMetricMenuVO
>
strategyMetricMenu
(
CrossIdBO
crossIdBO
);
List
<
SchemeEvaluateStrategyMetricMenuVO
>
strategyMetricMenu
(
CrossIdBO
crossIdBO
);
List
<
SchemeEvaluateCrossSchemeListVO
>
crossSchemeList
(
CrossSchemeListBO
crossSchemeListBO
);
List
<
SchemeEvaluateCrossSchemeListVO
>
crossSchemeList
(
CrossSchemeListBO
crossSchemeListBO
);
SchemeEvaluateSchemeDetailOverallVO
schemeDetailOverall
(
SchemeDetailOverallBO
schemeDetailOverallBO
)
throws
ParseException
;
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
View file @
0ccb6829
This diff is collapsed.
Click to expand it.
signal-optimize-service/src/main/java/net/wanji/opt/vo/SchemeEvaluateSchemeDetailOverallVO.java
View file @
0ccb6829
...
@@ -19,7 +19,7 @@ public class SchemeEvaluateSchemeDetailOverallVO {
...
@@ -19,7 +19,7 @@ public class SchemeEvaluateSchemeDetailOverallVO {
String
serviceLevel
;
String
serviceLevel
;
@ApiModelProperty
(
value
=
"策略评价"
)
@ApiModelProperty
(
value
=
"策略评价"
)
List
<
String
>
strategyEvaluate
;
List
<
String
>
strategyEvaluate
List
;
@ApiModelProperty
(
value
=
"指标数据"
)
@ApiModelProperty
(
value
=
"指标数据"
)
List
<
OverallMetrics
>
overallMetricsList
;
List
<
OverallMetrics
>
overallMetricsList
;
...
@@ -34,7 +34,7 @@ public class SchemeEvaluateSchemeDetailOverallVO {
...
@@ -34,7 +34,7 @@ public class SchemeEvaluateSchemeDetailOverallVO {
String
metricName
;
String
metricName
;
@ApiModelProperty
(
value
=
"指标数值"
)
@ApiModelProperty
(
value
=
"指标数值"
)
String
metricValue
;
Integer
metricValue
;
@ApiModelProperty
(
value
=
"指标数值单位"
)
@ApiModelProperty
(
value
=
"指标数值单位"
)
String
metricUnit
;
String
metricUnit
;
...
...
wj-common/src/main/java/net/wanji/common/enums/BaseEnum.java
View file @
0ccb6829
...
@@ -124,7 +124,7 @@ public class BaseEnum {
...
@@ -124,7 +124,7 @@ public class BaseEnum {
private
String
nick
;
private
String
nick
;
public
static
SignalDirectionEnum
getN
ame
ByCode
(
int
code
)
{
public
static
SignalDirectionEnum
getN
ick
ByCode
(
int
code
)
{
for
(
SignalDirectionEnum
signalDirectionEnum
:
SignalDirectionEnum
.
values
())
{
for
(
SignalDirectionEnum
signalDirectionEnum
:
SignalDirectionEnum
.
values
())
{
if
(
signalDirectionEnum
.
getCode
()
==
code
)
{
if
(
signalDirectionEnum
.
getCode
()
==
code
)
{
return
signalDirectionEnum
;
return
signalDirectionEnum
;
...
@@ -133,6 +133,15 @@ public class BaseEnum {
...
@@ -133,6 +133,15 @@ public class BaseEnum {
return
null
;
return
null
;
}
}
public
static
String
getNameByCode
(
int
code
)
{
for
(
SignalDirectionEnum
signalDirectionEnum
:
SignalDirectionEnum
.
values
())
{
if
(
signalDirectionEnum
.
getCode
()
==
code
)
{
return
signalDirectionEnum
.
getName
();
}
}
return
null
;
}
public
static
SignalDirectionEnum
getNameByNick
(
String
nick
)
{
public
static
SignalDirectionEnum
getNameByNick
(
String
nick
)
{
for
(
SignalDirectionEnum
signalDirectionEnum
:
SignalDirectionEnum
.
values
())
{
for
(
SignalDirectionEnum
signalDirectionEnum
:
SignalDirectionEnum
.
values
())
{
if
(
signalDirectionEnum
.
getNick
().
equals
(
nick
))
{
if
(
signalDirectionEnum
.
getNick
().
equals
(
nick
))
{
...
...
wj-common/src/main/java/net/wanji/common/enums/StrategyAndMetricsEnum.java
View file @
0ccb6829
...
@@ -35,25 +35,28 @@ public class StrategyAndMetricsEnum {
...
@@ -35,25 +35,28 @@ public class StrategyAndMetricsEnum {
}
}
public
enum
Metrics
{
public
enum
Metrics
{
NO_STOP_THROUGH_RATE
(
1
,
"不停车通过率"
),
NO_STOP_THROUGH_RATE
(
1
,
"不停车通过率"
,
"%"
),
STOP_THROUGH_RATE
(
2
,
"一/二/三次及以上停车通过率"
),
STOP_THROUGH_RATE
(
2
,
"一/二/三次及以上停车通过率"
,
"%"
),
AVERAGE_DELAY
(
3
,
"平均延误"
),
AVERAGE_DELAY
(
3
,
"平均延误"
,
"s"
),
MAX_QUEUE_LENGTH
(
4
,
"最大排队长度"
),
MAX_QUEUE_LENGTH
(
4
,
"最大排队长度"
,
"m"
),
STOP_COUNT
(
5
,
"停车次数"
),
STOP_COUNT
(
5
,
"停车次数"
,
"次"
),
AVERAGE_SPEED
(
6
,
"平均速度"
),
AVERAGE_SPEED
(
6
,
"平均速度"
,
"km/h"
),
GREEN_LIGHT_UTILIZATION
(
7
,
"绿灯有效利用率"
),
GREEN_LIGHT_UTILIZATION
(
7
,
"绿灯有效利用率"
,
"%"
),
SATURATION
(
8
,
"饱和度"
),
SATURATION
(
8
,
"饱和度"
,
""
),
LOAD_BALANCE
(
9
,
"负载均衡度"
),
LOAD_BALANCE
(
9
,
"负载均衡度"
,
""
),
OVERFLOW_RATE
(
10
,
"溢流率"
),
OVERFLOW_RATE
(
10
,
"溢流率"
,
"%"
),
GREEN_INTERVAL_CLEAR
(
11
,
"绿灯间隔清空率"
),
GREEN_INTERVAL_CLEAR
(
11
,
"绿灯间隔清空率"
,
"%"
),
EMERGENCY_COUNT
(
12
,
"三急一速数量"
);
EMERGENCY_COUNT
(
12
,
"三急一速数量"
,
""
);
private
final
Integer
code
;
private
final
Integer
code
;
private
final
String
description
;
private
final
String
description
;
private
final
String
unit
;
Metrics
(
Integer
code
,
String
description
)
{
Metrics
(
Integer
code
,
String
description
,
String
unit
)
{
this
.
code
=
code
;
this
.
code
=
code
;
this
.
description
=
description
;
this
.
description
=
description
;
this
.
unit
=
unit
;
}
}
public
String
getDescription
()
{
public
String
getDescription
()
{
...
@@ -63,6 +66,10 @@ public class StrategyAndMetricsEnum {
...
@@ -63,6 +66,10 @@ public class StrategyAndMetricsEnum {
public
Integer
getCode
()
{
public
Integer
getCode
()
{
return
code
;
return
code
;
}
}
public
String
getUnit
()
{
return
unit
;
}
}
}
public
static
final
Map
<
Strategy
,
List
<
Metrics
>>
STRATEGY_METRICS_MAP
;
public
static
final
Map
<
Strategy
,
List
<
Metrics
>>
STRATEGY_METRICS_MAP
;
...
...
wj-databus/src/main/java/net/wanji/databus/dao/mapper/CrossDirDataHistMapper.java
View file @
0ccb6829
...
@@ -34,4 +34,10 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> {
...
@@ -34,4 +34,10 @@ public interface CrossDirDataHistMapper extends BaseMapper<CrossDirDataHistPO> {
List
<
CrossDirDataHistPO
>
selectPhaseQueueEnd
(
String
crossId
,
Integer
dir
,
long
currentSeconds
,
long
preSeconds
);
List
<
CrossDirDataHistPO
>
selectPhaseQueueEnd
(
String
crossId
,
Integer
dir
,
long
currentSeconds
,
long
preSeconds
);
List
<
MetricHistDTO
>
selectMetricHistDTO
(
String
crossId
,
int
startStamp
,
int
endStamp
);
List
<
MetricHistDTO
>
selectMetricHistDTO
(
String
crossId
,
int
startStamp
,
int
endStamp
);
List
<
CrossDirDataHistPO
>
selectByCrossIdAndStartEnd
(
String
crossId
,
int
startStamp
,
int
endStamp
);
Double
selectAvgDelayTime
(
String
crossId
,
Integer
dirType
,
Integer
inOutType
,
int
startStamp
,
int
endStamp
);
Double
selectAvgQueueLength
(
String
crossId
,
Integer
dirType
,
Integer
inOutType
,
int
startStamp
,
int
endStamp
);
}
}
wj-databus/src/main/resources/mapper/CrossDirDataHistMapper.xml
View file @
0ccb6829
...
@@ -119,4 +119,28 @@
...
@@ -119,4 +119,28 @@
order by batch_time
order by batch_time
</select>
</select>
<select
id=
"selectByCrossIdAndStartEnd"
resultType=
"net.wanji.databus.po.CrossDirDataHistPO"
>
select
<include
refid=
"Base_Column_List"
/>
from t_cross_dir_data_hist
where cross_id = #{crossId}
and batch_time
<![CDATA[ >= ]]>
#{startStamp}
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
</select>
<select
id=
"selectAvgDelayTime"
resultType=
"java.lang.Double"
>
select avg(delay_time)
from t_cross_dir_data_hist
where cross_id = #{crossId} and dir_type = #{dirType} and in_out_type = #{inOutType}
and batch_time
<![CDATA[ >= ]]>
#{startStamp}
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
</select>
<select
id=
"selectAvgQueueLength"
resultType=
"java.lang.Double"
>
select avg(queue_length)
from t_cross_dir_data_hist
where cross_id = #{crossId} and dir_type = #{dirType} and in_out_type = #{inOutType}
and batch_time
<![CDATA[ >= ]]>
#{startStamp}
and batch_time
<![CDATA[ <= ]]>
#{endStamp}
</select>
</mapper>
</mapper>
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment