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
f76562ab
Commit
f76562ab
authored
Feb 28, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 优化路口恢复优化方案
parent
a56798c3
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
30 additions
and
14 deletions
+30
-14
CrossOptimizeServiceImpl.java
.../net/wanji/opt/service/impl/CrossOptimizeServiceImpl.java
+30
-14
No files found.
signal-optimize-service/src/main/java/net/wanji/opt/service/impl/CrossOptimizeServiceImpl.java
View file @
f76562ab
...
...
@@ -8,7 +8,6 @@ import net.wanji.common.enums.WeekEnum;
import
net.wanji.common.framework.Constants
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.utils.tool.DateUtil
;
import
net.wanji.common.utils.tool.StringUtils
;
import
net.wanji.databus.dao.entity.RidInfoEntity
;
import
net.wanji.databus.dao.mapper.RidInfoMapper
;
import
net.wanji.databus.entity.develop.servicedevelop.develop.StatusCodeEnum
;
...
...
@@ -26,6 +25,7 @@ import net.wanji.opt.po.trend.CrossDataRealtimePO;
import
net.wanji.opt.service.CrossOptimizeService
;
import
net.wanji.opt.service.CrossSchedulesService
;
import
net.wanji.opt.service.CrossSchemeService
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Service
;
...
...
@@ -301,7 +301,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
CrossTurnInfoDTO
crossTurnInfoDTO
=
new
CrossTurnInfoDTO
();
CrossDirInfoDTO
crossDirInfoDTO
=
new
CrossDirInfoDTO
();
if
(
StringUtils
.
equals
IgnoreCase
(
crossId
,
crossDataRealtimeDTO
.
getCrossId
()))
{
if
(
StringUtils
.
equals
(
crossId
,
crossDataRealtimeDTO
.
getCrossId
()))
{
crossDirInfoDTO
.
setCrossId
(
crossId
);
crossDirInfoDTO
.
setInOutType
(
1
);
...
...
@@ -329,12 +329,13 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
for
(
String
optCrossId
:
CROSS_OPT
)
{
if
(!
abnormalCrossIdList
.
contains
(
optCrossId
))
{
// 下发原始方案
SchemeSendVO
schemeSendVO
=
getSchemeSendVO
(
optCrossId
,
phaseMap
,
null
);
SchemeSendVO
schemeSendVO
=
getSchemeSendVO
(
optCrossId
,
phaseMap
,
Collections
.
EMPTY_MAP
);
JsonViewObject
jsonViewObject
=
utcFeignClients
.
schemeSend
(
schemeSendVO
);
if
(
Objects
.
isNull
(
jsonViewObject
)
||
jsonViewObject
.
getCode
()
!=
200
)
{
log
.
error
(
"实时监控路口优化方案下发远程调用异常!"
,
jsonViewObject
);
throw
new
Exception
();
}
CROSS_OPT
.
remove
(
optCrossId
);
}
}
}
...
...
@@ -489,21 +490,16 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
phase
.
setControlMode
(
String
.
valueOf
(
crossPhasePO
.
getControlMode
()));
phase
.
setMinGreenTime
(
String
.
valueOf
(
crossPhasePO
.
getMinGreenTime
()));
phase
.
setMaxGreenTime
(
String
.
valueOf
(
crossPhasePO
.
getMaxGreenTime
()));
phase
.
setPhaseTime
(
String
.
valueOf
(
crossPhasePO
.
getPhaseTime
()));
phase
.
setGreenTime
(
String
.
valueOf
(
crossPhasePO
.
getGreenTime
()));
// 可优化时间
Integer
currentPhaseOffset
=
getCurrentPhaseOptOffsetTime
(
phaseTimeOptResultMap
,
crossPhasePO
.
getPhaseNo
());
phase
.
setPhaseTime
(
String
.
valueOf
(
crossPhasePO
.
getPhaseTime
()
+
currentPhaseOffset
));
phase
.
setGreenTime
(
String
.
valueOf
(
crossPhasePO
.
getGreenTime
()
+
currentPhaseOffset
));
phase
.
setGreenFlashTime
(
String
.
valueOf
(
crossPhasePO
.
getGreenFlashTime
()));
phase
.
setPedFlashTime
(
String
.
valueOf
(
crossPhasePO
.
getPedFlashTime
()));
phase
.
setYellowTime
(
String
.
valueOf
(
crossPhasePO
.
getYellowTime
()));
phase
.
setRedTime
(
String
.
valueOf
(
crossPhasePO
.
getRedTime
()));
phaseList
.
add
(
phase
);
// 在原始方案基础绿灯时间+可优化时间
if
(!
phaseTimeOptResultMap
.
isEmpty
())
{
phaseList
.
forEach
(
phaseInfo
->
{
Integer
optTime
=
phaseTimeOptResultMap
.
get
(
phaseInfo
.
getPhaseNo
());
String
greenTime
=
phaseInfo
.
getGreenTime
();
phaseInfo
.
setGreenTime
(
greenTime
+
optTime
);
});
}
});
ring
.
setRingNo
(
String
.
valueOf
(
entry
.
getKey
()));
ring
.
setPhaseList
(
phaseList
);
...
...
@@ -519,6 +515,26 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
return
schemeSendVO
;
}
/**
* 获取当前相位的可优化时间,默认0
*
* @param phaseTimeOptResultMap
* @param phaseNo
* @return
*/
private
static
int
getCurrentPhaseOptOffsetTime
(
Map
<
String
,
Integer
>
phaseTimeOptResultMap
,
String
phaseNo
)
{
if
(
Objects
.
nonNull
(
phaseTimeOptResultMap
)
&&
!
phaseTimeOptResultMap
.
isEmpty
())
{
for
(
Map
.
Entry
<
String
,
Integer
>
phaseEntry
:
phaseTimeOptResultMap
.
entrySet
())
{
if
(
StringUtils
.
equals
(
phaseNo
,
phaseEntry
.
getKey
()))
{
Integer
optTime
=
phaseTimeOptResultMap
.
get
(
phaseNo
);
return
optTime
;
}
}
}
return
0
;
}
/**
* 在最大最小绿范围内,通过转向优化计算相位可优化时间
* key:相位号 value:offsetTime
...
...
@@ -630,7 +646,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
CrossPhaseDTO
crossPhaseDTO
=
entry
.
getValue
();
String
phaseNo
=
crossPhaseDTO
.
getPhaseNo
();
if
(
StringUtils
.
equals
IgnoreCase
(
key
,
crossIdDirTurn
))
{
if
(
StringUtils
.
equals
(
key
,
crossIdDirTurn
))
{
Integer
realOptGreenTime
=
getRealOptGreenTime
(
passTime
,
crossPhaseDTO
);
Integer
greenTimeOffset
=
realOptGreenTime
-
crossPhaseDTO
.
getGreenTime
()
-
crossPhaseDTO
.
getGreenFlashTime
();
Integer
realGreenTimeOffset
=
0
;
...
...
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