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
12a20911
Commit
12a20911
authored
May 28, 2025
by
duwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
信号灯倒计时
parent
180e73da
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
21 deletions
+39
-21
RealTimeStateInfoPO.java
...ava/net/wanji/utc/po/hk/response/RealTimeStateInfoPO.java
+1
-1
HkLightsStatusServiceImpl.java
...c/service/runninginfo/impl/HkLightsStatusServiceImpl.java
+4
-2
SignalStatusTask.java
...ce/src/main/java/net/wanji/utc/task/SignalStatusTask.java
+34
-18
No files found.
signal-utc-service/src/main/java/net/wanji/utc/po/hk/response/RealTimeStateInfoPO.java
View file @
12a20911
...
@@ -69,7 +69,7 @@ public class RealTimeStateInfoPO {
...
@@ -69,7 +69,7 @@ public class RealTimeStateInfoPO {
private
List
<
PhaseChannelRelationPO
>
phaseChannelRelation
;
private
List
<
PhaseChannelRelationPO
>
phaseChannelRelation
;
/**
/**
*
换
列表
*
环
列表
*/
*/
private
List
<
RingsPO
>
rings
;
private
List
<
RingsPO
>
rings
;
}
}
signal-utc-service/src/main/java/net/wanji/utc/service/runninginfo/impl/HkLightsStatusServiceImpl.java
View file @
12a20911
...
@@ -110,6 +110,7 @@ public class HkLightsStatusServiceImpl implements HkLightsStatusService {
...
@@ -110,6 +110,7 @@ public class HkLightsStatusServiceImpl implements HkLightsStatusService {
RealTimeStateInfoListPO
realTimeStateInfoListPO
=
JSONObject
.
parseObject
(
String
.
valueOf
(
data
),
RealTimeStateInfoListPO
.
class
);
RealTimeStateInfoListPO
realTimeStateInfoListPO
=
JSONObject
.
parseObject
(
String
.
valueOf
(
data
),
RealTimeStateInfoListPO
.
class
);
LightsStatusVO
infoVo
=
new
LightsStatusVO
();
LightsStatusVO
infoVo
=
new
LightsStatusVO
();
if
(!
CollectionUtils
.
isEmpty
(
realTimeStateInfoListPO
.
getList
()))
{
if
(!
CollectionUtils
.
isEmpty
(
realTimeStateInfoListPO
.
getList
()))
{
//循环路口
for
(
RealTimeStateInfoPO
resultPO
:
realTimeStateInfoListPO
.
getList
())
{
for
(
RealTimeStateInfoPO
resultPO
:
realTimeStateInfoListPO
.
getList
())
{
infoVo
=
new
LightsStatusVO
();
infoVo
=
new
LightsStatusVO
();
Integer
patternNo
=
resultPO
.
getPatternNo
();
Integer
patternNo
=
resultPO
.
getPatternNo
();
...
@@ -134,10 +135,11 @@ public class HkLightsStatusServiceImpl implements HkLightsStatusService {
...
@@ -134,10 +135,11 @@ public class HkLightsStatusServiceImpl implements HkLightsStatusService {
infoVo
.
setCrossId
(
crossId
);
infoVo
.
setCrossId
(
crossId
);
infoVo
.
setCycleCountDown
(
cycleCountDown
);
infoVo
.
setCycleCountDown
(
cycleCountDown
);
infoVo
.
setCycleLen
(
cycleLen
);
infoVo
.
setCycleLen
(
cycleLen
);
// 循环相位列表
// 循环
环 和
相位列表
Map
<
String
,
Object
>
phaseMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
phaseMap
=
new
HashMap
<>();
for
(
RingsPO
ring
:
rings
)
{
for
(
RingsPO
ring
:
rings
)
{
//环
List
<
PhaseInfoPO
>
phaseList
=
ring
.
getPhaseList
();
List
<
PhaseInfoPO
>
phaseList
=
ring
.
getPhaseList
();
//循环相位列表
for
(
PhaseInfoPO
phaseInfoPO
:
phaseList
)
{
for
(
PhaseInfoPO
phaseInfoPO
:
phaseList
)
{
Integer
phaseNo
=
phaseInfoPO
.
getPhaseNo
();
Integer
phaseNo
=
phaseInfoPO
.
getPhaseNo
();
Integer
countdown
=
phaseInfoPO
.
getCountdown
();
Integer
countdown
=
phaseInfoPO
.
getCountdown
();
...
...
signal-utc-service/src/main/java/net/wanji/utc/task/SignalStatusTask.java
View file @
12a20911
...
@@ -128,7 +128,7 @@ public class SignalStatusTask {
...
@@ -128,7 +128,7 @@ public class SignalStatusTask {
/**
/**
* 消费孪生灯态kafka数据
* 消费孪生灯态kafka数据
*/
*/
@KafkaListener
(
topics
=
{
"WHSpatData"
},
groupId
=
"utc-whspat-consumer-0
3
"
)
@KafkaListener
(
topics
=
{
"WHSpatData"
},
groupId
=
"utc-whspat-consumer-0
4
"
)
public
void
consumeTwinSpat
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
ack
)
{
public
void
consumeTwinSpat
(
ConsumerRecord
<
Object
,
Object
>
record
,
Acknowledgment
ack
)
{
try
{
try
{
String
lightStatusJson
=
String
.
valueOf
(
record
.
value
());
String
lightStatusJson
=
String
.
valueOf
(
record
.
value
());
...
@@ -228,6 +228,9 @@ public class SignalStatusTask {
...
@@ -228,6 +228,9 @@ public class SignalStatusTask {
try
{
try
{
// 相同路口不同websocket统一发送灯态
// 相同路口不同websocket统一发送灯态
List
<
LightsStatusVO2
>
listResult2
=
convertDirLampGroupMap2Entity
(
lightsStatusVOS
);
List
<
LightsStatusVO2
>
listResult2
=
convertDirLampGroupMap2Entity
(
lightsStatusVOS
);
if
(
CollectionUtil
.
isEmpty
(
listResult2
))
{
continue
;
}
String
json
=
mapper
.
writeValueAsString
(
listResult2
);
String
json
=
mapper
.
writeValueAsString
(
listResult2
);
for
(
Map
.
Entry
<
String
,
RealTimeDataWebSocket
>
socketEntry
:
value
)
{
for
(
Map
.
Entry
<
String
,
RealTimeDataWebSocket
>
socketEntry
:
value
)
{
String
crossIdStr
=
socketEntry
.
getKey
();
String
crossIdStr
=
socketEntry
.
getKey
();
...
@@ -304,15 +307,14 @@ public class SignalStatusTask {
...
@@ -304,15 +307,14 @@ public class SignalStatusTask {
//转向-方向-灯态
//转向-方向-灯态
Map
<
String
,
Boolean
>
m
=
Maps
.
newHashMap
();
Map
<
String
,
Boolean
>
m
=
Maps
.
newHashMap
();
//循环每一个相位,获取该相位相关字段:如周期时间、周期倒计时、相位灯态倒计时、方向、车道转向、灯态
//循环每一个相位,获取该相位相关字段:如周期时间、周期倒计时、相位灯态倒计时、方向、车道转向、灯态
LightsStatusVO
infoVo
=
new
LightsStatusVO
();
infoVo
.
setRunMode
(
"8"
);
// 控制模式
infoVo
.
setPhasePlanId
(
"1"
);
// 相位方案号
infoVo
.
setSchemeId
(
"1"
);
infoVo
.
setCode
(
light
.
getRsuId
());
infoVo
.
setCrossId
(
crossId
);
infoVo
.
setCycleCountDown
(
0
);
for
(
Phase
p
:
phases
)
{
for
(
Phase
p
:
phases
)
{
LightsStatusVO
infoVo
=
new
LightsStatusVO
();
infoVo
.
setRunMode
(
"8"
);
// 控制模式
infoVo
.
setPhasePlanId
(
"1"
);
// 相位方案号
infoVo
.
setSchemeId
(
"1"
);
infoVo
.
setCode
(
light
.
getRsuId
());
infoVo
.
setCrossId
(
crossId
);
infoVo
.
setCycleCountDown
(
0
);
String
cycleLenKey
=
crossId
+
"_"
+
p
.
getPhaseId
();
String
cycleLenKey
=
crossId
+
"_"
+
p
.
getPhaseId
();
Integer
len
=
phaseCountdownCacheMap
.
get
(
cycleLenKey
);
Integer
len
=
phaseCountdownCacheMap
.
get
(
cycleLenKey
);
if
(
len
!=
null
){
if
(
len
!=
null
){
...
@@ -328,18 +330,31 @@ public class SignalStatusTask {
...
@@ -328,18 +330,31 @@ public class SignalStatusTask {
}
}
infoVo
.
setPhaseId
(
p
.
getPhaseId
()
+
""
);
infoVo
.
setPhaseId
(
p
.
getPhaseId
()
+
""
);
infoVo
.
setCyclePhaseCountDown
(
p
.
getLimitEndTime
());
infoVo
.
setCyclePhaseCountDown
(
p
.
getLimitEndTime
());
//map<方向,倒计时>
//map<方向_转向,倒计时>
Map
<
String
,
Object
>
phaseMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
phaseMap
=
infoVo
.
getPhaseMap
();
infoVo
.
setPhaseMap
(
phaseMap
);
if
(
phaseMap
==
null
){
phaseMap
=
new
HashMap
<>();
infoVo
.
setPhaseMap
(
phaseMap
);
}
//后两个参数是map<方向,倒计时>, 倒计时
//后两个参数是map<方向,倒计时>, 倒计时
Map
<
String
,
Object
>
dirLampGroupMap1
=
infoVo
.
getDirLampGroupMap
();
Map
<
String
,
Object
>
dirLampGroupMap
=
getDirLampGroupMap
(
p
,
m
,
phaseMap
,
p
.
getLimitEndTime
());
Map
<
String
,
Object
>
dirLampGroupMap
=
getDirLampGroupMap
(
p
,
m
,
phaseMap
,
p
.
getLimitEndTime
());
infoVo
.
setDirLampGroupMap
(
dirLampGroupMap
);
if
(
dirLampGroupMap1
!=
null
)
{
infoVo
.
setTimeStamp
(
light
.
getTimestamp
()
+
""
);
if
(
dirLampGroupMap
!=
null
)
{
infoVo
.
setSchemeStartTime
(
light
.
getTimestamp
()
+
""
);
dirLampGroupMap1
.
putAll
(
dirLampGroupMap
);
}
result
.
add
(
infoVo
);
}
else
{
if
(
dirLampGroupMap
!=
null
){
infoVo
.
setDirLampGroupMap
(
dirLampGroupMap
);
}
else
{
infoVo
.
setDirLampGroupMap
(
Maps
.
newHashMap
());
}
}
}
}
infoVo
.
setTimeStamp
(
light
.
getTimestamp
()
+
""
);
infoVo
.
setSchemeStartTime
(
light
.
getTimestamp
()
+
""
);
result
.
add
(
infoVo
);
}
}
return
result
;
return
result
;
}
}
...
@@ -351,7 +366,7 @@ public class SignalStatusTask {
...
@@ -351,7 +366,7 @@ public class SignalStatusTask {
//进口方向
//进口方向
int
importDirect
=
phase
.
getImportDirect
();
int
importDirect
=
phase
.
getImportDirect
();
int
dir
=
DirectionConverter
.
convertDirection
(
importDirect
);
//进口方向适配
int
dir
=
DirectionConverter
.
convertDirection
(
importDirect
);
//进口方向适配
phaseMap
.
put
(
dir
+
""
,
limitEndTime
);
//方向,倒计时
//Map<车道转向, 对应灯态>
//Map<车道转向, 对应灯态>
Map
<
Integer
,
String
>
turnMap
=
new
HashMap
<>();
Map
<
Integer
,
String
>
turnMap
=
new
HashMap
<>();
...
@@ -369,6 +384,7 @@ public class SignalStatusTask {
...
@@ -369,6 +384,7 @@ public class SignalStatusTask {
return
null
;
return
null
;
}
else
{
}
else
{
m
.
put
(
dir
+
"-"
+
turnDir
+
"-"
+
color
,
true
);
m
.
put
(
dir
+
"-"
+
turnDir
+
"-"
+
color
,
true
);
phaseMap
.
put
(
dir
+
"_"
+
turnDir
,
limitEndTime
);
//方向_转向,倒计时
}
}
turnMap
.
put
(
turnDir
,
color
);
turnMap
.
put
(
turnDir
,
color
);
return
dirLampGroupMap
;
return
dirLampGroupMap
;
...
...
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