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
023e2b81
Commit
023e2b81
authored
Aug 28, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 新信号评价-方案评价-策略、评价指标下拉菜单
parent
295236e4
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
170 additions
and
40 deletions
+170
-40
SchemeEvaluateController.java
...va/net/wanji/opt/controller/SchemeEvaluateController.java
+15
-0
SchemeEvaluateService.java
...ain/java/net/wanji/opt/service/SchemeEvaluateService.java
+6
-0
SchemeEvaluateServiceImpl.java
...net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
+26
-4
SchemeEvaluateStrategyMetricMenuVO.java
.../net/wanji/opt/vo/SchemeEvaluateStrategyMetricMenuVO.java
+28
-0
StrategyAndMetricsEnum.java
...n/java/net/wanji/common/enums/StrategyAndMetricsEnum.java
+95
-0
StrategyEnum.java
...on/src/main/java/net/wanji/common/enums/StrategyEnum.java
+0
-36
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/controller/SchemeEvaluateController.java
View file @
023e2b81
...
@@ -5,15 +5,18 @@ import io.swagger.annotations.ApiOperation;
...
@@ -5,15 +5,18 @@ import io.swagger.annotations.ApiOperation;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponse
;
import
io.swagger.annotations.ApiResponses
;
import
io.swagger.annotations.ApiResponses
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.service.impl.SchemeEvaluateServiceImpl
;
import
net.wanji.opt.service.impl.SchemeEvaluateServiceImpl
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
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
;
import
org.springframework.web.bind.annotation.RequestMapping
;
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.util.List
;
/**
/**
* 运行评价
* 运行评价
...
@@ -42,4 +45,16 @@ public class SchemeEvaluateController {
...
@@ -42,4 +45,16 @@ public class SchemeEvaluateController {
return
JsonViewObject
.
newInstance
().
success
(
res
);
return
JsonViewObject
.
newInstance
().
success
(
res
);
}
}
@ApiOperation
(
value
=
"策略-评价指标下拉菜单"
,
notes
=
"策略-评价指标下拉菜单"
,
response
=
JsonViewObject
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@PostMapping
(
value
=
"/strategyMetricMenu"
,
produces
=
MediaType
.
APPLICATION_JSON
,
consumes
=
MediaType
.
APPLICATION_JSON
)
@ApiResponses
({
@ApiResponse
(
code
=
200
,
message
=
"OK"
,
response
=
SchemeEvaluateStrategyMetricMenuVO
.
class
),
})
public
JsonViewObject
strategyMetricMenu
(
@RequestBody
CrossIdBO
crossIdBO
)
{
List
<
SchemeEvaluateStrategyMetricMenuVO
>
res
=
schemeEvaluateService
.
strategyMetricMenu
(
crossIdBO
);
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 @
023e2b81
package
net
.
wanji
.
opt
.
service
;
package
net
.
wanji
.
opt
.
service
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO
;
import
java.util.List
;
public
interface
SchemeEvaluateService
{
public
interface
SchemeEvaluateService
{
SchemeEvaluateProblemSchemeVO
problemSchemeList
(
ProblemSchemeBO
problemSchemeBO
);
SchemeEvaluateProblemSchemeVO
problemSchemeList
(
ProblemSchemeBO
problemSchemeBO
);
List
<
SchemeEvaluateStrategyMetricMenuVO
>
strategyMetricMenu
(
CrossIdBO
crossIdBO
);
}
}
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
View file @
023e2b81
...
@@ -3,7 +3,8 @@ package net.wanji.opt.service.impl;
...
@@ -3,7 +3,8 @@ package net.wanji.opt.service.impl;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.collection.CollectionUtil
;
import
cn.hutool.core.date.DateUtil
;
import
cn.hutool.core.date.DateUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.enums.StrategyEnum
;
import
net.wanji.common.enums.StrategyAndMetricsEnum
;
import
net.wanji.databus.bo.CrossIdBO
;
import
net.wanji.databus.dao.entity.BaseCrossSchemePO
;
import
net.wanji.databus.dao.entity.BaseCrossSchemePO
;
import
net.wanji.databus.dao.entity.CrossSectionPO
;
import
net.wanji.databus.dao.entity.CrossSectionPO
;
import
net.wanji.databus.dao.mapper.BaseCrossSchemeMapper
;
import
net.wanji.databus.dao.mapper.BaseCrossSchemeMapper
;
...
@@ -20,6 +21,7 @@ import net.wanji.opt.po.strategy.StrategyPO;
...
@@ -20,6 +21,7 @@ import net.wanji.opt.po.strategy.StrategyPO;
import
net.wanji.opt.service.SchemeEvaluateService
;
import
net.wanji.opt.service.SchemeEvaluateService
;
import
net.wanji.opt.vo.RunningEvaluateMetricsDetailVO
;
import
net.wanji.opt.vo.RunningEvaluateMetricsDetailVO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateProblemSchemeVO
;
import
net.wanji.opt.vo.SchemeEvaluateStrategyMetricMenuVO
;
import
org.jetbrains.annotations.NotNull
;
import
org.jetbrains.annotations.NotNull
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
...
@@ -107,6 +109,26 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
...
@@ -107,6 +109,26 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
return
res
;
return
res
;
}
}
@Override
public
List
<
SchemeEvaluateStrategyMetricMenuVO
>
strategyMetricMenu
(
CrossIdBO
crossIdBO
)
{
List
<
SchemeEvaluateStrategyMetricMenuVO
>
voList
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
StrategyAndMetricsEnum
.
Strategy
,
List
<
StrategyAndMetricsEnum
.
Metrics
>>
entry
:
StrategyAndMetricsEnum
.
STRATEGY_METRICS_MAP
.
entrySet
())
{
SchemeEvaluateStrategyMetricMenuVO
vo
=
new
SchemeEvaluateStrategyMetricMenuVO
();
vo
.
setStrategyCode
(
entry
.
getKey
().
getCode
());
vo
.
setStrategyName
(
entry
.
getKey
().
getMsg
());
List
<
String
>
metricInfoList
=
new
ArrayList
<>();
for
(
StrategyAndMetricsEnum
.
Metrics
metric
:
entry
.
getValue
())
{
metricInfoList
.
add
(
metric
.
getDescription
());
}
vo
.
setMetrics
(
metricInfoList
);
voList
.
add
(
vo
);
}
return
voList
;
}
private
List
<
SchemeEvaluateProblemSchemeVO
.
BySchemeVO
>
buildProblemSchemeListByScheme
(
private
List
<
SchemeEvaluateProblemSchemeVO
.
BySchemeVO
>
buildProblemSchemeListByScheme
(
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
dateSchemesMap
)
{
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
dateSchemesMap
)
{
// 使用一个Map来临时存储按方案名称分组的数据
// 使用一个Map来临时存储按方案名称分组的数据
...
@@ -179,11 +201,11 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
...
@@ -179,11 +201,11 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
Integer
strategyId
=
sceneStrategyPO
.
getStrategyId
();
Integer
strategyId
=
sceneStrategyPO
.
getStrategyId
();
StrategyPO
strategyPO
=
strategyMapper
.
selectById
(
strategyId
);
StrategyPO
strategyPO
=
strategyMapper
.
selectById
(
strategyId
);
String
strategyCode
=
strategyPO
.
getStrategyCode
();
String
strategyCode
=
strategyPO
.
getStrategyCode
();
if
(
strategyCode
.
equals
(
Strategy
Enum
.
EFFICIENCY
.
getCode
()))
{
if
(
strategyCode
.
equals
(
Strategy
AndMetricsEnum
.
Strategy
.
EFFICIENCY
.
getCode
()))
{
efficiencyProblemCounts
+=
1
;
efficiencyProblemCounts
+=
1
;
}
else
if
(
strategyCode
.
equals
(
Strategy
Enum
.
BALANCE
.
getCode
()))
{
}
else
if
(
strategyCode
.
equals
(
Strategy
AndMetricsEnum
.
Strategy
.
BALANCE
.
getCode
()))
{
balanceProblemCounts
+=
1
;
balanceProblemCounts
+=
1
;
}
else
if
(
strategyCode
.
equals
(
Strategy
Enum
.
SECURITY
.
getCode
()))
{
}
else
if
(
strategyCode
.
equals
(
Strategy
AndMetricsEnum
.
Strategy
.
SECURITY
.
getCode
()))
{
securityProblemCounts
+=
1
;
securityProblemCounts
+=
1
;
}
}
}
}
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/SchemeEvaluateStrategyMetricMenuVO.java
0 → 100644
View file @
023e2b81
package
net
.
wanji
.
opt
.
vo
;
import
io.swagger.annotations.ApiModel
;
import
io.swagger.annotations.ApiModelProperty
;
import
lombok.Data
;
import
lombok.NoArgsConstructor
;
import
java.util.List
;
/**
* @author Kent HAN
* @date 2023/2/9 8:38
*/
@Data
@NoArgsConstructor
@ApiModel
(
value
=
"SchemeEvaluateStrategyMetricMenuVO"
,
description
=
"策略-评价指标下拉菜单"
)
public
class
SchemeEvaluateStrategyMetricMenuVO
{
@ApiModelProperty
(
value
=
"策略名称"
)
private
String
strategyName
;
@ApiModelProperty
(
value
=
"策略编号"
)
private
String
strategyCode
;
@ApiModelProperty
(
value
=
"评价指标"
)
private
List
<
String
>
metrics
;
}
wj-common/src/main/java/net/wanji/common/enums/StrategyAndMetricsEnum.java
0 → 100644
View file @
023e2b81
package
net
.
wanji
.
common
.
enums
;
import
java.util.*
;
public
class
StrategyAndMetricsEnum
{
public
enum
Strategy
{
BALANCE
(
"100030"
,
"均衡调控"
),
EFFICIENCY
(
"100152"
,
"效率提升"
),
SECURITY
(
"100010"
,
"安全保障"
);
private
final
String
code
;
private
final
String
msg
;
Strategy
(
String
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
public
static
String
getMsgByCode
(
String
code
)
{
for
(
Strategy
value
:
Strategy
.
values
())
{
if
(
value
.
code
.
equals
(
code
))
{
return
value
.
msg
;
}
}
return
null
;
}
public
String
getMsg
()
{
return
msg
;
}
public
String
getCode
()
{
return
code
;
}
}
public
enum
Metrics
{
NO_STOP_THROUGH_RATE
(
"不停车通过率"
),
STOP_THROUGH_RATE
(
"一/二/三次及以上停车通过率"
),
AVERAGE_DELAY
(
"平均延误"
),
MAX_QUEUE_LENGTH
(
"最大排队长度"
),
STOP_COUNT
(
"停车次数"
),
AVERAGE_SPEED
(
"平均速度"
),
GREEN_LIGHT_UTILIZATION
(
"绿灯有效利用率"
),
SATURATION
(
"饱和度"
),
LOAD_BALANCE
(
"负载均衡度"
),
OVERFLOW_RATE
(
"溢流率"
),
GREEN_INTERVAL_CLEAR
(
"绿灯间隔清空率"
),
EMERGENCY_COUNT
(
"三急一速数量"
);
private
final
String
description
;
Metrics
(
String
description
)
{
this
.
description
=
description
;
}
public
String
getDescription
()
{
return
description
;
}
}
public
static
final
Map
<
Strategy
,
List
<
Metrics
>>
STRATEGY_METRICS_MAP
;
static
{
Map
<
Strategy
,
List
<
Metrics
>>
map
=
new
HashMap
<>();
map
.
put
(
Strategy
.
EFFICIENCY
,
Arrays
.
asList
(
Metrics
.
NO_STOP_THROUGH_RATE
,
Metrics
.
STOP_THROUGH_RATE
,
Metrics
.
AVERAGE_DELAY
,
Metrics
.
MAX_QUEUE_LENGTH
,
Metrics
.
STOP_COUNT
,
Metrics
.
AVERAGE_SPEED
));
map
.
put
(
Strategy
.
BALANCE
,
Arrays
.
asList
(
Metrics
.
GREEN_LIGHT_UTILIZATION
,
Metrics
.
SATURATION
,
Metrics
.
LOAD_BALANCE
));
map
.
put
(
Strategy
.
SECURITY
,
Arrays
.
asList
(
Metrics
.
OVERFLOW_RATE
,
Metrics
.
GREEN_INTERVAL_CLEAR
,
Metrics
.
EMERGENCY_COUNT
));
STRATEGY_METRICS_MAP
=
Collections
.
unmodifiableMap
(
map
);
}
public
static
void
main
(
String
[]
args
)
{
// 示例:获取"效率提升"策略的所有指标
List
<
Metrics
>
efficiencyMetrics
=
STRATEGY_METRICS_MAP
.
get
(
Strategy
.
EFFICIENCY
);
System
.
out
.
println
(
"效率提升的指标有:"
);
for
(
Metrics
metric
:
efficiencyMetrics
)
{
System
.
out
.
println
(
metric
.
getDescription
());
}
}
}
wj-common/src/main/java/net/wanji/common/enums/StrategyEnum.java
deleted
100644 → 0
View file @
295236e4
package
net
.
wanji
.
common
.
enums
;
/**
* @author Kent HAN
* @date 2022/11/8 17:20
*/
public
enum
StrategyEnum
{
BALANCE
(
"100030"
,
"均衡调控"
),
EFFICIENCY
(
"100152"
,
"效率提升"
),
SECURITY
(
"100010"
,
"安全保障"
);
private
final
String
code
;
private
final
String
msg
;
StrategyEnum
(
String
code
,
String
msg
)
{
this
.
code
=
code
;
this
.
msg
=
msg
;
}
public
static
String
getMsgByCode
(
String
code
)
{
for
(
StrategyEnum
value
:
StrategyEnum
.
values
())
{
if
(
value
.
code
.
equals
(
code
))
{
return
value
.
msg
;
}
}
return
null
;
}
public
String
getMsg
()
{
return
msg
;
}
public
String
getCode
()
{
return
code
;
}
}
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