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
fe214c17
Commit
fe214c17
authored
Nov 01, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 修改红灯倒计时
parent
5f9cc3a0
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
60 additions
and
31 deletions
+60
-31
SignalStatusServiceImpl.java
...nji/utc/hisense/service/impl/SignalStatusServiceImpl.java
+0
-19
HisensePhaseCountDownTask.java
...net/wanji/utc/hisense/task/HisensePhaseCountDownTask.java
+60
-12
No files found.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/SignalStatusServiceImpl.java
View file @
fe214c17
...
...
@@ -15,8 +15,6 @@ import net.wanji.utc.hisense.cache.CrossSchemePhaseTimeCountCache;
import
net.wanji.utc.hisense.cache.SignalDataCache
;
import
net.wanji.utc.hisense.common.enums.CrossLisghtsLaneDirEnum
;
import
net.wanji.utc.hisense.common.enums.DataBrainControlModeEnum
;
import
net.wanji.utc.hisense.common.enums.DataBrainDirEnum
;
import
net.wanji.utc.hisense.common.enums.DataBrainTurnEnum
;
import
net.wanji.utc.hisense.pojo.CrossPhaseDirTurnPojo
;
import
net.wanji.utc.hisense.pojo.convert.HisenseLightStatusPojo
;
import
net.wanji.utc.hisense.pojo.dto.CrossSchemePhaseCountDownDTO
;
...
...
@@ -174,23 +172,6 @@ public class SignalStatusServiceImpl implements SignalStatusService {
lightsStatusVO
.
setCode
(
hiCrossId
);
lightsStatusVO
.
setManufacturerCode
(
"Hisense"
);
lightsStatusVO
.
setPhasePlanId
(
String
.
valueOf
(
planId
));
Map
<
String
,
Object
>
phaseMap
=
new
HashMap
<>();
// 红灯剩余时长
List
<
HisenseLightStatusPojo
.
ContentBody
.
LampRealInfos
>
lampRealInfos
=
content
.
getLampRealInfos
();
if
(!
CollectionUtils
.
isEmpty
(
lampRealInfos
))
{
for
(
HisenseLightStatusPojo
.
ContentBody
.
LampRealInfos
lampRealInfo
:
lampRealInfos
)
{
Integer
dir
=
lampRealInfo
.
getRoadDirection
();
Integer
wjLightsDir
=
DataBrainDirEnum
.
getWjLightsDir
(
dir
);
Integer
turn
=
lampRealInfo
.
getRoadFlowDirection
();
Integer
countDown
=
lampRealInfo
.
getCountDown
();
if
(
turn
==
98
||
turn
==
99
||
countDown
==
0
)
{
continue
;
}
Integer
wjTurn
=
DataBrainTurnEnum
.
getWjTurn
(
turn
);
phaseMap
.
put
(
String
.
join
(
"-"
,
String
.
valueOf
(
wjLightsDir
),
String
.
valueOf
(
wjTurn
)),
countDown
);
}
}
lightsStatusVO
.
setPhaseMap
(
phaseMap
);
List
<
CrossSchemePhaseCountDownDTO
>
crossSchemePhaseCountDownList
=
CrossSchemePhaseTimeCountCache
.
crossSchemePhaseCountDownList
;
setLightsStatusVOPhaseNoAndCountDown
(
lightsStatusVO
,
crossId
,
runTime
,
planId
,
crossSchemePhaseCountDownList
);
SignalDataCache
.
runningStateInfoCacheNoLamp
.
put
(
crossId
,
lightsStatusVO
);
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/task/HisensePhaseCountDownTask.java
View file @
fe214c17
...
...
@@ -80,18 +80,7 @@ public class HisensePhaseCountDownTask {
// 当前时间戳自动加1s
lightsStatusVO
.
setTimeStamp
(
String
.
valueOf
(
timeStamp
+
1000
));
// 红灯倒计时
Map
<
String
,
Object
>
phaseMap
=
lightsStatusVO
.
getPhaseMap
();
if
(!
phaseMap
.
isEmpty
())
{
for
(
Map
.
Entry
<
String
,
Object
>
item
:
phaseMap
.
entrySet
())
{
int
value
=
(
int
)
item
.
getValue
();
if
(
value
>
0
)
{
item
.
setValue
(--
value
);
}
else
{
//当前红灯倒计时为0,默认倒计时为周期
item
.
setValue
(
lightsStatusVO
.
getCycleLen
());
}
}
}
lightsStatusVO
.
setPhaseMap
(
phaseMap
);
getRedCountDown
(
crossId
,
lightsStatusVO
,
schemeId
);
SignalDataCache
.
runningStateInfoCache
.
put
(
crossId
,
lightsStatusVO
);
}
}
...
...
@@ -102,6 +91,50 @@ public class HisensePhaseCountDownTask {
}
}
private
void
getRedCountDown
(
String
crossId
,
LightsStatusVO
lightsStatusVO
,
String
schemeId
)
{
Map
<
String
,
Object
>
phaseMap
=
new
HashMap
<>();
List
<
CrossPhaseDirTurnPojo
>
crossPhaseDirTurnCache
=
CrossPhaseDirTurnCache
.
getCrossPhaseDirTurnCache
(
crossId
);
List
<
PhaseCountDownDTO
>
phaseCountDownList
=
getPhaseCountDownList
(
crossId
,
schemeId
);
if
(!
CollectionUtils
.
isEmpty
(
phaseCountDownList
))
{
for
(
PhaseCountDownDTO
phaseCountDownDTO
:
phaseCountDownList
)
{
String
phaseNo
=
phaseCountDownDTO
.
getPhaseNo
();
Integer
changePhaseTime
=
phaseCountDownDTO
.
getChangePhaseTime
();
Integer
cycleLen
=
lightsStatusVO
.
getCycleLen
();
Integer
cycleCountDown
=
lightsStatusVO
.
getCycleCountDown
();
int
runtime
=
cycleLen
-
cycleCountDown
;
int
redCountDown
=
0
;
if
(!
CollectionUtils
.
isEmpty
(
crossPhaseDirTurnCache
))
{
for
(
CrossPhaseDirTurnPojo
dirTurnPojo
:
crossPhaseDirTurnCache
)
{
if
(
StringUtils
.
equalsIgnoreCase
(
schemeId
,
String
.
valueOf
(
dirTurnPojo
.
getSchemeNo
()))
&&
StringUtils
.
equalsIgnoreCase
(
phaseNo
,
String
.
valueOf
(
dirTurnPojo
.
getPhaseNo
())))
{
Map
<
Integer
,
List
<
CrossLightsPO
>>
dirTurnMap
=
dirTurnPojo
.
getDirTurnMap
();
for
(
Map
.
Entry
<
Integer
,
List
<
CrossLightsPO
>>
dirEntry
:
dirTurnMap
.
entrySet
())
{
List
<
CrossLightsPO
>
lightsPOS
=
dirEntry
.
getValue
();
if
(!
CollectionUtils
.
isEmpty
(
lightsPOS
))
{
for
(
CrossLightsPO
lightsPO
:
lightsPOS
)
{
Integer
dir
=
lightsPO
.
getDir
();
Integer
turn
=
lightsPO
.
getTurn
();
if
(
turn
==
20
)
{
continue
;
}
String
key
=
String
.
valueOf
(
dir
).
concat
(
"-"
).
concat
(
String
.
valueOf
(
turn
));
redCountDown
=
changePhaseTime
-
runtime
;
if
(
redCountDown
<
0
)
{
redCountDown
=
cycleLen
+
redCountDown
;
}
phaseMap
.
put
(
key
,
redCountDown
);
}
}
}
}
}
}
}
}
lightsStatusVO
.
setPhaseMap
(
phaseMap
);
}
/**
* @param crossId
* @param lightsStatusVO
...
...
@@ -310,4 +343,19 @@ public class HisensePhaseCountDownTask {
}
return
null
;
}
private
List
<
PhaseCountDownDTO
>
getPhaseCountDownList
(
String
crossId
,
String
schemeNo
)
{
List
<
CrossSchemePhaseCountDownDTO
>
crossSchemePhaseCountDownList
=
CrossSchemePhaseTimeCountCache
.
crossSchemePhaseCountDownList
;
if
(!
CollectionUtils
.
isEmpty
(
crossSchemePhaseCountDownList
))
{
for
(
CrossSchemePhaseCountDownDTO
dto
:
crossSchemePhaseCountDownList
)
{
if
(
Objects
.
equals
(
crossId
,
dto
.
getCrossId
())
&&
Objects
.
equals
(
schemeNo
,
dto
.
getSchemeNo
()))
{
List
<
PhaseCountDownDTO
>
phaseCountDownDTOList
=
dto
.
getPhaseCountDownDTOList
();
if
(!
CollectionUtils
.
isEmpty
(
phaseCountDownDTOList
))
{
return
phaseCountDownDTOList
;
}
}
}
}
return
Collections
.
emptyList
();
}
}
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