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
fecb00e9
Commit
fecb00e9
authored
Feb 17, 2025
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[add] 绿波干线优化时间;列表优化
parent
bf8a679a
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
43 additions
and
8 deletions
+43
-8
StrategyControlServiceImpl.java
...pt/synthesis/service/impl/StrategyControlServiceImpl.java
+43
-8
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/synthesis/service/impl/StrategyControlServiceImpl.java
View file @
fecb00e9
...
@@ -430,21 +430,23 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -430,21 +430,23 @@ public class StrategyControlServiceImpl implements StrategyControlService {
queryWrapper
.
ge
(
StrategyCrossResultEntity:
:
getIssueTime
,
midNight
);
queryWrapper
.
ge
(
StrategyCrossResultEntity:
:
getIssueTime
,
midNight
);
queryWrapper
.
eq
(
StrategyCrossResultEntity:
:
getResponseCode
,
200
);
queryWrapper
.
eq
(
StrategyCrossResultEntity:
:
getResponseCode
,
200
);
List
<
StrategyCrossResultEntity
>
resultEntityList
=
strategyCrossResultMapper
.
selectList
(
queryWrapper
);
List
<
StrategyCrossResultEntity
>
resultEntityList
=
strategyCrossResultMapper
.
selectList
(
queryWrapper
);
int
optCount
=
0
;
int
optTime
=
0
;
if
(!
CollectionUtils
.
isEmpty
(
resultEntityList
))
{
if
(!
CollectionUtils
.
isEmpty
(
resultEntityList
))
{
// 1:绿灯空放 2:失衡 3:溢出
// 1:绿灯空放 2:失衡 3:溢出
int
optCount
=
0
;
int
optTime
=
0
;
Map
<
Integer
,
List
<
StrategyCrossResultEntity
>>
typeMap
=
resultEntityList
.
stream
().
collect
(
Collectors
.
groupingBy
(
StrategyCrossResultEntity:
:
getCurrentAlgo
));
Map
<
Integer
,
List
<
StrategyCrossResultEntity
>>
typeMap
=
resultEntityList
.
stream
().
collect
(
Collectors
.
groupingBy
(
StrategyCrossResultEntity:
:
getCurrentAlgo
));
for
(
Map
.
Entry
<
Integer
,
List
<
StrategyCrossResultEntity
>>
entry
:
typeMap
.
entrySet
())
{
for
(
Map
.
Entry
<
Integer
,
List
<
StrategyCrossResultEntity
>>
entry
:
typeMap
.
entrySet
())
{
Integer
type
=
entry
.
getKey
();
Integer
type
=
entry
.
getKey
();
List
<
StrategyCrossResultEntity
>
value
=
entry
.
getValue
();
List
<
StrategyCrossResultEntity
>
value
=
entry
.
getValue
();
optCount
=
value
.
size
();
optCount
+
=
value
.
size
();
for
(
StrategyCrossResultEntity
entity
:
value
)
{
for
(
StrategyCrossResultEntity
entity
:
value
)
{
if
(
Objects
.
equals
(
1
,
type
))
{
if
(
Objects
.
equals
(
1
,
type
))
{
optTime
+=
Math
.
abs
(
entity
.
getExtendTime
());
optTime
+=
Math
.
abs
(
entity
.
getExtendTime
());
}
}
if
(
Objects
.
equals
(
2
,
type
))
{
if
(
Objects
.
equals
(
2
,
type
))
{
optTime
+=
entity
.
getDuration
();
if
(
Objects
.
nonNull
(
entity
.
getDuration
()))
{
optTime
+=
entity
.
getDuration
();
}
}
}
if
(
Objects
.
equals
(
3
,
type
))
{
if
(
Objects
.
equals
(
3
,
type
))
{
Integer
rtnType
=
entity
.
getRtnType
();
Integer
rtnType
=
entity
.
getRtnType
();
...
@@ -457,10 +459,27 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -457,10 +459,27 @@ public class StrategyControlServiceImpl implements StrategyControlService {
}
}
}
}
}
}
strategyOptTimesVO
.
setCount
(
optCount
);
strategyOptTimesVO
.
setTimes
(
optTime
);
}
}
// 绿波优化次数
int
greenOptCount
=
0
;
int
greenOptTime
=
0
;
LambdaQueryWrapper
<
StrategyGreenOptHistEntity
>
greenQuery
=
new
LambdaQueryWrapper
<>();
greenQuery
.
ge
(
StrategyGreenOptHistEntity:
:
getControlTime
,
midNight
);
greenQuery
.
ge
(
StrategyGreenOptHistEntity:
:
getResponseCode
,
200
);
List
<
StrategyGreenOptHistEntity
>
entities
=
strategyGreenOptHistMapper
.
selectList
(
greenQuery
);
if
(!
CollectionUtils
.
isEmpty
(
entities
))
{
for
(
StrategyGreenOptHistEntity
entity
:
entities
)
{
String
controlTime
=
entity
.
getControlTime
();
Integer
controlMethod
=
entity
.
getControlMethod
();
if
(!
Objects
.
equals
(-
1
,
controlMethod
))
{
Date
parse
=
DateUtil
.
parse
(
controlTime
,
"yyyy-MM-dd HH:mm:ss"
);
greenOptTime
+=
entity
.
getControlDuration
();
greenOptCount
+=
1
;
}
}
}
strategyOptTimesVO
.
setCount
(
optCount
+
greenOptCount
/
2
);
strategyOptTimesVO
.
setTimes
(
optTime
+
greenOptTime
/
2
);
return
JsonViewObject
.
newInstance
().
success
(
strategyOptTimesVO
);
return
JsonViewObject
.
newInstance
().
success
(
strategyOptTimesVO
);
}
}
...
@@ -549,8 +568,8 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -549,8 +568,8 @@ public class StrategyControlServiceImpl implements StrategyControlService {
queryWrapper
.
ge
(
StrategyGreenOptHistEntity:
:
getControlTime
,
date
);
queryWrapper
.
ge
(
StrategyGreenOptHistEntity:
:
getControlTime
,
date
);
queryWrapper
.
orderByAsc
(
StrategyGreenOptHistEntity:
:
getControlTime
);
queryWrapper
.
orderByAsc
(
StrategyGreenOptHistEntity:
:
getControlTime
);
List
<
StrategyGreenOptHistEntity
>
entities
=
strategyGreenOptHistMapper
.
selectList
(
queryWrapper
);
List
<
StrategyGreenOptHistEntity
>
entities
=
strategyGreenOptHistMapper
.
selectList
(
queryWrapper
);
String
optMethod
=
"效率提升"
;
if
(!
CollectionUtils
.
isEmpty
(
entities
))
{
if
(!
CollectionUtils
.
isEmpty
(
entities
))
{
String
optMethod
=
"效率提升"
;
Map
<
Integer
,
Optional
<
StrategyGreenOptHistEntity
>>
groupMap
=
entities
.
stream
().
collect
(
Collectors
.
groupingBy
(
StrategyGreenOptHistEntity:
:
getGreenId
,
Collectors
.
maxBy
(
Comparator
.
comparing
(
StrategyGreenOptHistEntity:
:
getControlTime
))));
Map
<
Integer
,
Optional
<
StrategyGreenOptHistEntity
>>
groupMap
=
entities
.
stream
().
collect
(
Collectors
.
groupingBy
(
StrategyGreenOptHistEntity:
:
getGreenId
,
Collectors
.
maxBy
(
Comparator
.
comparing
(
StrategyGreenOptHistEntity:
:
getControlTime
))));
for
(
Map
.
Entry
<
Integer
,
Optional
<
StrategyGreenOptHistEntity
>>
entry
:
groupMap
.
entrySet
())
{
for
(
Map
.
Entry
<
Integer
,
Optional
<
StrategyGreenOptHistEntity
>>
entry
:
groupMap
.
entrySet
())
{
Integer
greenId
=
entry
.
getKey
();
Integer
greenId
=
entry
.
getKey
();
...
@@ -594,7 +613,23 @@ public class StrategyControlServiceImpl implements StrategyControlService {
...
@@ -594,7 +613,23 @@ public class StrategyControlServiceImpl implements StrategyControlService {
results
.
add
(
ext
);
results
.
add
(
ext
);
}
}
}
}
}
else
{
Map
<
Integer
,
GreenwaveInfoPO
>
greenWaveMap
=
GreenWaveInfoCache
.
greenWaveMap
;
for
(
Map
.
Entry
<
Integer
,
GreenwaveInfoPO
>
entry
:
greenWaveMap
.
entrySet
())
{
Integer
greenId
=
entry
.
getKey
();
GreenwaveInfoPO
value
=
entry
.
getValue
();
StrategyControlDataExt
ext
=
new
StrategyControlDataExt
();
ext
.
setBizId
(
String
.
valueOf
(
greenId
));
ext
.
setCrossName
(
value
.
getName
());
ext
.
setWkt
(
value
.
getWkt
());
ext
.
setOptMethod
(
optMethod
);
ext
.
setStrategyName
(
"动态绿波"
);
ext
.
setOptStatus
(
"未优化"
);
ext
.
setStatus
(
0
);
results
.
add
(
ext
);
}
}
}
Collections
.
sort
(
results
,
Comparator
.
comparingInt
(
StrategyControlDataExt:
:
getStatus
).
reversed
());
Collections
.
sort
(
results
,
Comparator
.
comparingInt
(
StrategyControlDataExt:
:
getStatus
).
reversed
());
results
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
results
.
stream
().
distinct
().
collect
(
Collectors
.
toList
());
return
results
;
return
results
;
...
...
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