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
96119270
Commit
96119270
authored
Oct 10, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 优化海信灯态车道灯态问题
parent
02ebb804
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
14 additions
and
6 deletions
+14
-6
CrossRunSchemeCache.java
...java/net/wanji/utc/hisense/cache/CrossRunSchemeCache.java
+3
-1
SignalDataCache.java
...ain/java/net/wanji/utc/hisense/cache/SignalDataCache.java
+1
-0
SignalStatusServiceImpl.java
...nji/utc/hisense/service/impl/SignalStatusServiceImpl.java
+1
-0
HisensePhaseCountDownTask.java
...net/wanji/utc/hisense/task/HisensePhaseCountDownTask.java
+9
-5
No files found.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/cache/CrossRunSchemeCache.java
View file @
96119270
...
@@ -60,7 +60,9 @@ public class CrossRunSchemeCache implements CommandLineRunner {
...
@@ -60,7 +60,9 @@ public class CrossRunSchemeCache implements CommandLineRunner {
Integer
currentPlanId
=
getCurrentPlanId
(
schedulesMap
,
date
);
Integer
currentPlanId
=
getCurrentPlanId
(
schedulesMap
,
date
);
Integer
schemeId
=
getCurrentSchemeId
(
crossSectionPOS
,
currentTime
,
currentPlanId
);
Integer
schemeId
=
getCurrentSchemeId
(
crossSectionPOS
,
currentTime
,
currentPlanId
);
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectSchemePOById
(
schemeId
);
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectSchemePOById
(
schemeId
);
currentRunSchemeNoCache
.
put
(
crossId
,
crossSchemePO
.
getSchemeNo
());
if
(
Objects
.
nonNull
(
crossSchemePO
))
{
currentRunSchemeNoCache
.
put
(
crossId
,
crossSchemePO
.
getSchemeNo
());
}
}
}
}
}
}
}
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/cache/SignalDataCache.java
View file @
96119270
...
@@ -24,4 +24,5 @@ public class SignalDataCache {
...
@@ -24,4 +24,5 @@ public class SignalDataCache {
public
static
final
Map
<
String
,
RunningLightsStatusPojo
>
runningStateInfoCacheUdp
=
new
HashMap
<>();
public
static
final
Map
<
String
,
RunningLightsStatusPojo
>
runningStateInfoCacheUdp
=
new
HashMap
<>();
public
static
final
Map
<
String
,
LightsStatusVO
>
runningStateInfoCache
=
new
HashMap
<>();
public
static
final
Map
<
String
,
LightsStatusVO
>
runningStateInfoCache
=
new
HashMap
<>();
public
static
final
Map
<
String
,
Long
>
runningStatusStampMap
=
new
HashMap
<>();
public
static
final
Map
<
String
,
Long
>
runningStatusStampMap
=
new
HashMap
<>();
public
static
final
Map
<
String
,
Integer
>
currentCrossPhaseNoRunPhaseTimeMap
=
new
HashMap
<>();
}
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/SignalStatusServiceImpl.java
View file @
96119270
...
@@ -204,6 +204,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
...
@@ -204,6 +204,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
Integer
changePhaseTime
=
phaseCountDownDTO
.
getChangePhaseTime
();
Integer
changePhaseTime
=
phaseCountDownDTO
.
getChangePhaseTime
();
if
(
lastPhaseCountTime
<=
runTime
&&
runTime
<
changePhaseTime
)
{
if
(
lastPhaseCountTime
<=
runTime
&&
runTime
<
changePhaseTime
)
{
phaseTimeCountDown
=
changePhaseTime
-
runTime
;
phaseTimeCountDown
=
changePhaseTime
-
runTime
;
SignalDataCache
.
currentCrossPhaseNoRunPhaseTimeMap
.
put
(
crossId
,
phaseTimeCountDown
);
break
;
break
;
}
}
lastPhaseCountTime
=
changePhaseTime
;
lastPhaseCountTime
=
changePhaseTime
;
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/task/HisensePhaseCountDownTask.java
View file @
96119270
...
@@ -44,11 +44,13 @@ public class HisensePhaseCountDownTask {
...
@@ -44,11 +44,13 @@ public class HisensePhaseCountDownTask {
String
crossId
=
entry
.
getKey
();
String
crossId
=
entry
.
getKey
();
LightsStatusVO
lightsStatusVO
=
entry
.
getValue
();
LightsStatusVO
lightsStatusVO
=
entry
.
getValue
();
String
schemeStartTime
=
lightsStatusVO
.
getSchemeStartTime
();
String
schemeStartTime
=
lightsStatusVO
.
getSchemeStartTime
();
Long
lastPhaseTimeStamp
=
runningStatusStampMap
.
get
(
crossId
);
String
phaseId
=
lightsStatusVO
.
getPhaseId
();
String
phaseId
=
lightsStatusVO
.
getPhaseId
();
String
schemeId
=
lightsStatusVO
.
getSchemeId
();
String
schemeId
=
lightsStatusVO
.
getSchemeId
();
if
(
Objects
.
nonNull
(
lastPhaseTimeStamp
)
&&
!
StringUtils
.
equalsIgnoreCase
(
schemeStartTime
,
String
.
valueOf
(
lastPhaseTimeStamp
)))
{
Integer
cyclePhaseCountDown
=
lightsStatusVO
.
getCyclePhaseCountDown
();
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectByCrossIdAndSchemeNo
(
crossId
,
Integer
.
valueOf
(
schemeId
));
Integer
phaseCycleTime
=
SignalDataCache
.
currentCrossPhaseNoRunPhaseTimeMap
.
get
(
crossId
);
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectByCrossIdAndSchemeNo
(
crossId
,
Integer
.
valueOf
(
schemeId
));
// 切换相位号或者相位运行第一次
if
(
cyclePhaseCountDown
<=
5
||
cyclePhaseCountDown
>=
phaseCycleTime
-
5
)
{
// 通过时段表,切换方案 凌晨00:00 如果切换下一个日期方案,可能RefreshCacheTask还没执行
// 通过时段表,切换方案 凌晨00:00 如果切换下一个日期方案,可能RefreshCacheTask还没执行
String
nextSectionSchemeNo
=
CrossRunSchemeCache
.
currentRunSchemeNoCache
.
get
(
crossId
);
String
nextSectionSchemeNo
=
CrossRunSchemeCache
.
currentRunSchemeNoCache
.
get
(
crossId
);
String
currentTime
=
String
.
valueOf
(
new
Date
().
getTime
());
String
currentTime
=
String
.
valueOf
(
new
Date
().
getTime
());
...
@@ -62,6 +64,8 @@ public class HisensePhaseCountDownTask {
...
@@ -62,6 +64,8 @@ public class HisensePhaseCountDownTask {
// 当前方案下一周期
// 当前方案下一周期
setDirLampGroupMap
(
lightsStatusVO
);
setDirLampGroupMap
(
lightsStatusVO
);
runningStateInfoCache
.
put
(
crossId
,
lightsStatusVO
);
runningStateInfoCache
.
put
(
crossId
,
lightsStatusVO
);
}
else
{
// 如果是相同5秒时间内,直接时间相减,不需要计算灯态相位倒计时
executeNextPeriod
(
crossId
,
lightsStatusVO
,
phaseId
,
crossSchemePO
);
}
}
}
}
}
}
...
@@ -154,7 +158,7 @@ public class HisensePhaseCountDownTask {
...
@@ -154,7 +158,7 @@ public class HisensePhaseCountDownTask {
continue
;
continue
;
}
}
Map
<
String
,
String
>
turnColor
=
new
HashMap
<>();
Map
<
String
,
String
>
turnColor
=
new
HashMap
<>();
Integer
type
=
2
;
//
1 圆饼灯
Integer
type
=
2
;
//
灯组类型:1箭头;2圆饼;3行人;
String
color
=
null
;
String
color
=
null
;
for
(
CrossLightsPO
crossLightsPO
:
lightsList
)
{
for
(
CrossLightsPO
crossLightsPO
:
lightsList
)
{
type
=
crossLightsPO
.
getType
();
type
=
crossLightsPO
.
getType
();
...
@@ -194,7 +198,7 @@ public class HisensePhaseCountDownTask {
...
@@ -194,7 +198,7 @@ public class HisensePhaseCountDownTask {
List
<
String
>
allTurn
=
Arrays
.
asList
(
"1"
,
"2"
,
"3"
);
List
<
String
>
allTurn
=
Arrays
.
asList
(
"1"
,
"2"
,
"3"
);
for
(
String
turn
:
allTurn
)
{
for
(
String
turn
:
allTurn
)
{
if
(!
turnColor
.
containsKey
(
turn
))
{
if
(!
turnColor
.
containsKey
(
turn
))
{
if
(
Objects
.
equals
(
type
,
1
))
{
// 圆饼灯 相同颜色
if
(
Objects
.
equals
(
type
,
2
))
{
// 圆饼灯 相同颜色
turnColor
.
put
(
turn
,
color
);
turnColor
.
put
(
turn
,
color
);
}
else
{
}
else
{
if
(
"red"
.
equals
(
color
))
{
// 箭头灯 相反
if
(
"red"
.
equals
(
color
))
{
// 箭头灯 相反
...
...
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