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
f9da91b8
Commit
f9da91b8
authored
Aug 28, 2023
by
hanbing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 新信号评价-方案评价,构造问题方案列表(根据日期)
parent
e3bd3a6a
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
106 additions
and
20 deletions
+106
-20
SchemeEvaluateServiceImpl.java
...net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
+69
-10
SchemeEvaluateProblemSchemeVO.java
.../java/net/wanji/opt/vo/SchemeEvaluateProblemSchemeVO.java
+1
-10
StrategyEnum.java
...on/src/main/java/net/wanji/common/enums/StrategyEnum.java
+36
-0
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/SchemeEvaluateServiceImpl.java
View file @
f9da91b8
...
@@ -3,6 +3,7 @@ package net.wanji.opt.service.impl;
...
@@ -3,6 +3,7 @@ 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.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
;
...
@@ -10,6 +11,12 @@ import net.wanji.databus.dao.mapper.BaseCrossSectionMapper;
...
@@ -10,6 +11,12 @@ import net.wanji.databus.dao.mapper.BaseCrossSectionMapper;
import
net.wanji.databus.dao.mapper.CrossDataHistMapper
;
import
net.wanji.databus.dao.mapper.CrossDataHistMapper
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.databus.po.CrossDataHistPO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.bo.ProblemSchemeBO
;
import
net.wanji.opt.dao.mapper.strategy.SceneMapper
;
import
net.wanji.opt.dao.mapper.strategy.SceneStrategyMapper
;
import
net.wanji.opt.dao.mapper.strategy.StrategyMapper
;
import
net.wanji.opt.po.strategy.ScenePO
;
import
net.wanji.opt.po.strategy.SceneStrategyPO
;
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
;
...
@@ -32,15 +39,24 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
...
@@ -32,15 +39,24 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
private
final
RunningEvaluateServiceImpl
runningEvaluateService
;
private
final
RunningEvaluateServiceImpl
runningEvaluateService
;
private
final
BaseCrossSectionMapper
baseCrossSectionMapper
;
private
final
BaseCrossSectionMapper
baseCrossSectionMapper
;
private
final
BaseCrossSchemeMapper
baseCrossSchemeMapper
;
private
final
BaseCrossSchemeMapper
baseCrossSchemeMapper
;
private
final
SceneMapper
sceneMapper
;
private
final
SceneStrategyMapper
sceneStrategyMapper
;
private
final
StrategyMapper
strategyMapper
;
public
SchemeEvaluateServiceImpl
(
CrossDataHistMapper
crossDataHistMapper
,
public
SchemeEvaluateServiceImpl
(
CrossDataHistMapper
crossDataHistMapper
,
RunningEvaluateServiceImpl
runningEvaluateService
,
RunningEvaluateServiceImpl
runningEvaluateService
,
@Qualifier
(
"baseCrossSectionMapper"
)
BaseCrossSectionMapper
baseCrossSectionMapper
,
@Qualifier
(
"baseCrossSectionMapper"
)
BaseCrossSectionMapper
baseCrossSectionMapper
,
@Qualifier
(
"baseCrossSchemeMapper"
)
BaseCrossSchemeMapper
baseCrossSchemeMapper
)
{
@Qualifier
(
"baseCrossSchemeMapper"
)
BaseCrossSchemeMapper
baseCrossSchemeMapper
,
@Qualifier
(
"sceneMapper"
)
SceneMapper
sceneMapper
,
@Qualifier
(
"sceneStrategyMapper"
)
SceneStrategyMapper
sceneStrategyMapper
,
@Qualifier
(
"strategyMapper"
)
StrategyMapper
strategyMapper
)
{
this
.
crossDataHistMapper
=
crossDataHistMapper
;
this
.
crossDataHistMapper
=
crossDataHistMapper
;
this
.
runningEvaluateService
=
runningEvaluateService
;
this
.
runningEvaluateService
=
runningEvaluateService
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
this
.
baseCrossSectionMapper
=
baseCrossSectionMapper
;
this
.
baseCrossSchemeMapper
=
baseCrossSchemeMapper
;
this
.
baseCrossSchemeMapper
=
baseCrossSchemeMapper
;
this
.
sceneMapper
=
sceneMapper
;
this
.
sceneStrategyMapper
=
sceneStrategyMapper
;
this
.
strategyMapper
=
strategyMapper
;
}
}
@Override
@Override
...
@@ -60,24 +76,22 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
...
@@ -60,24 +76,22 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
Map
<
String
,
List
<
CrossDataHistPO
>>
timeProblemMap
=
getTimeProblemMap
(
Map
<
String
,
List
<
CrossDataHistPO
>>
timeProblemMap
=
getTimeProblemMap
(
crossDataHistPOList
,
endTime
,
startTime
);
crossDataHistPOList
,
endTime
,
startTime
);
// 构造结果
// 构造结果
// 问题次数
int
problemCounts
=
0
;
// 问题次数
int
problemCounts
=
0
;
if
(
CollectionUtil
.
isNotEmpty
(
timeProblemMap
))
{
if
(
CollectionUtil
.
isNotEmpty
(
timeProblemMap
))
{
for
(
List
<
CrossDataHistPO
>
list
:
timeProblemMap
.
values
())
{
for
(
List
<
CrossDataHistPO
>
list
:
timeProblemMap
.
values
())
{
problemCounts
+=
list
.
size
();
problemCounts
+=
list
.
size
();
}
}
}
}
// 问题方案数量
res
.
setProblemCounts
(
problemCounts
);
// 问题方案数量
res
.
setProblemCounts
(
problemCounts
);
// 构造问题方案列表(根据日期)
// 构造问题方案列表(根据日期)
// 构造日期-问题结果集
Map
<
Date
,
List
<
CrossDataHistPO
>>
dateProblemsMap
=
buildDateProblemsMap
(
timeProblemMap
);
// 构造日期-问题结果集
Map
<
Date
,
List
<
CrossDataHistPO
>>
dateProblemsMap
=
buildDateProblemsMap
(
timeProblemMap
);
// 构造日期-问题方案结果集
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
dateSchemesMap
=
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
dateSchemesMap
=
buildDateSchemesMap
(
dateProblemsMap
,
crossId
);
buildDateSchemesMap
(
dateProblemsMap
,
crossId
);
// 构造日期-问题方案结果集
List
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
>
byDateVOList
=
buildProblemSchemeListByDate
(
dateProblemsMap
,
dateSchemesMap
);
res
.
setProblemSchemeListByDate
(
byDateVOList
);
// res.setProblemSchemeListByDate();
// res.setSchemeCounts();
// res.setSchemeCounts();
// res.setEfficiencyProblemCounts();
// res.setEfficiencyProblemCounts();
// res.setBalanceProblemCounts();
// res.setBalanceProblemCounts();
...
@@ -87,6 +101,51 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
...
@@ -87,6 +101,51 @@ public class SchemeEvaluateServiceImpl implements SchemeEvaluateService {
return
res
;
return
res
;
}
}
@NotNull
private
List
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
>
buildProblemSchemeListByDate
(
Map
<
Date
,
List
<
CrossDataHistPO
>>
dateProblemsMap
,
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
dateSchemesMap
)
{
List
<
SchemeEvaluateProblemSchemeVO
.
ByDateVO
>
byDateVOList
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
Date
,
List
<
CrossDataHistPO
>>
entry
:
dateProblemsMap
.
entrySet
())
{
Date
key
=
entry
.
getKey
();
SchemeEvaluateProblemSchemeVO
.
ByDateVO
byDateVO
=
new
SchemeEvaluateProblemSchemeVO
.
ByDateVO
();
byDateVO
.
setProblemDate
(
key
);
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>
problemSchemeList
=
dateSchemesMap
.
get
(
key
);
byDateVO
.
setSectionSechemeList
(
problemSchemeList
);
List
<
CrossDataHistPO
>
value
=
entry
.
getValue
();
int
efficiencyProblemCounts
=
0
;
int
balanceProblemCounts
=
0
;
int
securityProblemCounts
=
0
;
for
(
CrossDataHistPO
crossDataHistPO
:
value
)
{
Integer
status
=
crossDataHistPO
.
getStatus
();
// 根据场景查询策略
ScenePO
scenePO
=
sceneMapper
.
selectBySceneNum
(
status
);
Integer
sceneId
=
scenePO
.
getId
();
List
<
SceneStrategyPO
>
sceneStrategyList
=
sceneStrategyMapper
.
selectBySceneId
(
sceneId
);
for
(
SceneStrategyPO
sceneStrategyPO
:
sceneStrategyList
)
{
Integer
strategyId
=
sceneStrategyPO
.
getStrategyId
();
StrategyPO
strategyPO
=
strategyMapper
.
selectById
(
strategyId
);
String
strategyCode
=
strategyPO
.
getStrategyCode
();
if
(
strategyCode
.
equals
(
StrategyEnum
.
EFFICIENCY
.
getCode
()))
{
efficiencyProblemCounts
+=
1
;
}
else
if
(
strategyCode
.
equals
(
StrategyEnum
.
BALANCE
.
getCode
()))
{
balanceProblemCounts
+=
1
;
}
else
if
(
strategyCode
.
equals
(
StrategyEnum
.
SECURITY
.
getCode
()))
{
securityProblemCounts
+=
1
;
}
}
}
byDateVO
.
setEfficiencyProblemCounts
(
efficiencyProblemCounts
);
byDateVO
.
setBalanceProblemCounts
(
balanceProblemCounts
);
byDateVO
.
setSecurityProblemCounts
(
securityProblemCounts
);
byDateVOList
.
add
(
byDateVO
);
}
return
byDateVOList
;
}
private
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
buildDateSchemesMap
(
private
Map
<
Date
,
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>>
buildDateSchemesMap
(
Map
<
Date
,
List
<
CrossDataHistPO
>>
dateProblemsMap
,
String
crossId
)
{
Map
<
Date
,
List
<
CrossDataHistPO
>>
dateProblemsMap
,
String
crossId
)
{
...
...
signal-optimize-service/src/main/java/net/wanji/opt/vo/SchemeEvaluateProblemSchemeVO.java
View file @
f9da91b8
...
@@ -56,16 +56,7 @@ public class SchemeEvaluateProblemSchemeVO {
...
@@ -56,16 +56,7 @@ public class SchemeEvaluateProblemSchemeVO {
private
Integer
securityProblemCounts
;
private
Integer
securityProblemCounts
;
@ApiModelProperty
(
value
=
"时段方案列表"
)
@ApiModelProperty
(
value
=
"时段方案列表"
)
private
List
<
SectionSechemeVO
>
sectionSechemeList
;
private
List
<
RunningEvaluateMetricsDetailVO
.
ProblemScheme
>
sectionSechemeList
;
}
@NoArgsConstructor
@Data
public
static
class
SectionSechemeVO
{
@ApiModelProperty
(
value
=
"时段"
)
private
String
timeSection
;
@ApiModelProperty
(
value
=
"方案名称"
)
private
String
schemeName
;
}
}
@NoArgsConstructor
@NoArgsConstructor
...
...
wj-common/src/main/java/net/wanji/common/enums/StrategyEnum.java
0 → 100644
View file @
f9da91b8
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