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
aa0fd27e
Commit
aa0fd27e
authored
Jan 04, 2024
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] UTC模拟灯态优化,测试使用V2版本灯态
parent
c98cd06f
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
48 additions
and
1 deletion
+48
-1
SignalStatusTask.java
...ce/src/main/java/net/wanji/utc/task/SignalStatusTask.java
+48
-1
No files found.
signal-utc-service/src/main/java/net/wanji/utc/task/SignalStatusTask.java
View file @
aa0fd27e
...
@@ -13,6 +13,7 @@ import net.wanji.databus.po.CrossInfoPO;
...
@@ -13,6 +13,7 @@ import net.wanji.databus.po.CrossInfoPO;
import
net.wanji.databus.po.ManufacturerInfoPO
;
import
net.wanji.databus.po.ManufacturerInfoPO
;
import
net.wanji.databus.po.SignalStatusLogPO
;
import
net.wanji.databus.po.SignalStatusLogPO
;
import
net.wanji.databus.vo.LightsStatusVO
;
import
net.wanji.databus.vo.LightsStatusVO
;
import
net.wanji.databus.vo.LightsStatusVO2
;
import
net.wanji.feign.service.UtcDTFeignClients
;
import
net.wanji.feign.service.UtcDTFeignClients
;
import
net.wanji.feign.service.UtcHisenseFeignClients
;
import
net.wanji.feign.service.UtcHisenseFeignClients
;
import
net.wanji.utc.common.constant.Constants
;
import
net.wanji.utc.common.constant.Constants
;
...
@@ -22,6 +23,7 @@ import net.wanji.utc.service.runninginfo.HkLightsStatusService;
...
@@ -22,6 +23,7 @@ import net.wanji.utc.service.runninginfo.HkLightsStatusService;
import
net.wanji.utc.service.runninginfo.SignalStatusService
;
import
net.wanji.utc.service.runninginfo.SignalStatusService
;
import
net.wanji.utc.websocket.RealTimeDataWebSocket
;
import
net.wanji.utc.websocket.RealTimeDataWebSocket
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.BeanUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.scheduling.annotation.Scheduled
;
...
@@ -122,7 +124,10 @@ public class SignalStatusTask {
...
@@ -122,7 +124,10 @@ public class SignalStatusTask {
if
(
Objects
.
equals
(
lightsStatusVO
.
getCrossId
(),
crossId
))
{
if
(
Objects
.
equals
(
lightsStatusVO
.
getCrossId
(),
crossId
))
{
calculateContolCountDown
(
crossId
,
lightsStatusVO
);
calculateContolCountDown
(
crossId
,
lightsStatusVO
);
try
{
// 相同路口不同websocket统一发送灯态
try
{
// 相同路口不同websocket统一发送灯态
String
json
=
mapper
.
writeValueAsString
(
lightsStatusVOS
);
// 切换socket
List
<
LightsStatusVO2
>
listResult
=
lightsStatusVOCopy
(
lightsStatusVOS
);
String
json
=
mapper
.
writeValueAsString
(
listResult
);
for
(
Map
.
Entry
<
String
,
RealTimeDataWebSocket
>
socketEntry
:
value
)
{
for
(
Map
.
Entry
<
String
,
RealTimeDataWebSocket
>
socketEntry
:
value
)
{
String
crossIdStr
=
socketEntry
.
getKey
();
String
crossIdStr
=
socketEntry
.
getKey
();
RealTimeDataWebSocket
webSocket
=
socketEntry
.
getValue
();
RealTimeDataWebSocket
webSocket
=
socketEntry
.
getValue
();
...
@@ -145,6 +150,48 @@ public class SignalStatusTask {
...
@@ -145,6 +150,48 @@ public class SignalStatusTask {
}
}
}
}
private
static
List
<
LightsStatusVO2
>
lightsStatusVOCopy
(
List
<
LightsStatusVO
>
lightsStatusVOS
)
throws
Exception
{
List
<
LightsStatusVO2
>
listResult
=
null
;
try
{
listResult
=
new
ArrayList
<>(
lightsStatusVOS
.
size
());
for
(
LightsStatusVO
lightsStatusVO
:
lightsStatusVOS
)
{
Integer
cyclePhaseCountDown
=
lightsStatusVO
.
getCyclePhaseCountDown
();
LightsStatusVO2
lightsStatusVO2
=
new
LightsStatusVO2
();
BeanUtils
.
copyProperties
(
lightsStatusVO
,
lightsStatusVO2
);
Map
<
String
,
Object
>
dirLampGroupMap
=
lightsStatusVO
.
getDirLampGroupMap
();
List
<
LightsStatusVO2
.
DirInfo
>
dirList
=
new
ArrayList
<>();
Map
<
String
,
Object
>
phaseMap
=
lightsStatusVO
.
getPhaseMap
();
for
(
Map
.
Entry
<
String
,
Object
>
groupEntry
:
dirLampGroupMap
.
entrySet
())
{
LightsStatusVO2
.
DirInfo
dirInfo
=
new
LightsStatusVO2
.
DirInfo
();
String
dir
=
groupEntry
.
getKey
();
Map
<
Integer
,
String
>
turnColorMap
=
(
Map
<
Integer
,
String
>)
groupEntry
.
getValue
();
List
<
LightsStatusVO2
.
TurnInfo
>
turnList
=
new
ArrayList
<>();
for
(
Map
.
Entry
<
Integer
,
String
>
turnEntry
:
turnColorMap
.
entrySet
())
{
Integer
turn
=
turnEntry
.
getKey
();
String
color
=
turnEntry
.
getValue
();
LightsStatusVO2
.
TurnInfo
turnInfo
=
new
LightsStatusVO2
.
TurnInfo
();
turnInfo
.
setTurn
(
String
.
valueOf
(
turn
));
turnInfo
.
setColor
(
color
);
String
key
=
dir
.
concat
(
Constants
.
SEPARATOR_UNDER_LINE
).
concat
(
String
.
valueOf
(
turn
));
Map
<
Integer
,
Integer
>
turnMap
=
(
Map
<
Integer
,
Integer
>)
phaseMap
.
get
(
dir
);
Integer
countDown
=
turnMap
.
get
(
turn
);
turnInfo
.
setCountDown
(
countDown
);
turnList
.
add
(
turnInfo
);
}
dirInfo
.
setDir
(
dir
);
dirInfo
.
setTurnList
(
turnList
);
dirList
.
add
(
dirInfo
);
}
lightsStatusVO2
.
setDirLampGroupMapList
(
dirList
);
listResult
.
add
(
lightsStatusVO2
);
}
}
catch
(
Exception
e
)
{
log
.
error
(
"灯态推送转换V2异常:"
,
e
);
throw
new
Exception
(
e
);
}
return
listResult
;
}
/**
/**
* 灯态数据发送kafka
* 灯态数据发送kafka
*/
*/
...
...
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