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
3b0b1adc
Commit
3b0b1adc
authored
Jul 25, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 相位倒计时优化
parent
f521d5f5
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
52 additions
and
23 deletions
+52
-23
DTSignalStatusServiceImpl.java
.../wanji/utc/dt/service/impl/DTSignalStatusServiceImpl.java
+52
-23
No files found.
signal-utc-dt-service/src/main/java/net/wanji/utc/dt/service/impl/DTSignalStatusServiceImpl.java
View file @
3b0b1adc
...
@@ -10,10 +10,7 @@ import net.wanji.utc.dt.common.enums.ControlModelEnum;
...
@@ -10,10 +10,7 @@ import net.wanji.utc.dt.common.enums.ControlModelEnum;
import
net.wanji.utc.dt.common.enums.ControlTypeEnum
;
import
net.wanji.utc.dt.common.enums.ControlTypeEnum
;
import
net.wanji.utc.dt.common.enums.PhaseLightColorEnum
;
import
net.wanji.utc.dt.common.enums.PhaseLightColorEnum
;
import
net.wanji.utc.dt.netty.NettyClient
;
import
net.wanji.utc.dt.netty.NettyClient
;
import
net.wanji.utc.dt.pojo.dtconvert.FaultInfoPojo
;
import
net.wanji.utc.dt.pojo.dtconvert.*
;
import
net.wanji.utc.dt.pojo.dtconvert.PhaseStageStatusPojo
;
import
net.wanji.utc.dt.pojo.dtconvert.RunningStatusPojo
;
import
net.wanji.utc.dt.pojo.dtconvert.SchemeInfoPojo
;
import
net.wanji.utc.dt.pojo.netty.MessageResultPojo
;
import
net.wanji.utc.dt.pojo.netty.MessageResultPojo
;
import
net.wanji.utc.dt.service.SignalStatusService
;
import
net.wanji.utc.dt.service.SignalStatusService
;
import
net.wanji.utc.dt.util.CommonUtils
;
import
net.wanji.utc.dt.util.CommonUtils
;
...
@@ -32,7 +29,7 @@ import java.util.stream.Collectors;
...
@@ -32,7 +29,7 @@ import java.util.stream.Collectors;
public
class
DTSignalStatusServiceImpl
implements
SignalStatusService
{
public
class
DTSignalStatusServiceImpl
implements
SignalStatusService
{
@Override
@Override
public
List
<
SignalStatusLogPO
>
runningStatusAlarm
(
String
crossId
)
throws
Exception
{
public
List
<
SignalStatusLogPO
>
runningStatusAlarm
(
String
crossId
)
throws
Exception
{
List
<
String
>
lightsStatus
=
getLightsStatusInfoPojos
(
crossId
);
List
<
String
>
lightsStatus
=
getLightsStatusInfoPojos
(
crossId
);
List
<
FaultInfoPojo
>
faultInfoPojos
=
getFaultInfoPojos
(
crossId
);
List
<
FaultInfoPojo
>
faultInfoPojos
=
getFaultInfoPojos
(
crossId
);
List
<
RunningStatusPojo
>
runningStatusPojos
=
getRunningStatusPojos
(
crossId
);
List
<
RunningStatusPojo
>
runningStatusPojos
=
getRunningStatusPojos
(
crossId
);
...
@@ -109,7 +106,7 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
...
@@ -109,7 +106,7 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
return
lightsStatusList
;
return
lightsStatusList
;
}
}
private
List
<
FaultInfoPojo
>
getFaultInfoPojos
(
String
crossId
)
throws
Exception
{
private
List
<
FaultInfoPojo
>
getFaultInfoPojos
(
String
crossId
)
throws
Exception
{
CrossInfoPO
crossInfoPO
=
DTControlCommandServiceImpl
.
checkCrossId
(
crossId
);
CrossInfoPO
crossInfoPO
=
DTControlCommandServiceImpl
.
checkCrossId
(
crossId
);
String
message
=
String
.
format
(
Constants
.
COMMAND_COMMON
,
Constants
.
COMMAND_QUERY
,
Constants
.
COMMAND_FAULT_LIST
);
String
message
=
String
.
format
(
Constants
.
COMMAND_COMMON
,
Constants
.
COMMAND_QUERY
,
Constants
.
COMMAND_FAULT_LIST
);
String
faultSign
=
Constants
.
COMMAND_FAULT_LIST
.
concat
(
Constants
.
COMMAND_QUERY_REPLY
);
String
faultSign
=
Constants
.
COMMAND_FAULT_LIST
.
concat
(
Constants
.
COMMAND_QUERY_REPLY
);
...
@@ -139,7 +136,7 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
...
@@ -139,7 +136,7 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
return
getLightsStatusVOs
(
crossId
,
lightsStatus
,
phaseStageStatusPojos
,
runningStatusPojos
);
return
getLightsStatusVOs
(
crossId
,
lightsStatus
,
phaseStageStatusPojos
,
runningStatusPojos
);
}
}
private
List
<
PhaseStageStatusPojo
>
getPhaseStageStatus
(
String
crossId
)
throws
Exception
{
private
List
<
PhaseStageStatusPojo
>
getPhaseStageStatus
(
String
crossId
)
throws
Exception
{
List
<
PhaseStageStatusPojo
>
phaseStageStatusPojos
=
new
ArrayList
<>();
List
<
PhaseStageStatusPojo
>
phaseStageStatusPojos
=
new
ArrayList
<>();
CrossInfoPO
crossInfoPO
=
DTControlCommandServiceImpl
.
checkCrossId
(
crossId
);
CrossInfoPO
crossInfoPO
=
DTControlCommandServiceImpl
.
checkCrossId
(
crossId
);
String
message
=
String
.
format
(
Constants
.
COMMAND_COMMON
,
Constants
.
COMMAND_QUERY
,
Constants
.
COMMAND_PHASE_STAGE_STATUS
);
String
message
=
String
.
format
(
Constants
.
COMMAND_COMMON
,
Constants
.
COMMAND_QUERY
,
Constants
.
COMMAND_PHASE_STAGE_STATUS
);
...
@@ -177,7 +174,8 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
...
@@ -177,7 +174,8 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
private
List
<
LightsStatusVO
>
getLightsStatusVOs
(
String
crossId
,
List
<
String
>
lightsStatus
,
List
<
PhaseStageStatusPojo
>
phaseStageStatusPojos
,
List
<
RunningStatusPojo
>
runningStatusPojos
)
{
private
List
<
LightsStatusVO
>
getLightsStatusVOs
(
String
crossId
,
List
<
String
>
lightsStatus
,
List
<
PhaseStageStatusPojo
>
phaseStageStatusPojos
,
List
<
RunningStatusPojo
>
runningStatusPojos
)
{
List
<
LightsStatusVO
>
lightsStatusVOS
=
new
ArrayList
<>(
runningStatusPojos
.
size
());
List
<
LightsStatusVO
>
lightsStatusVOS
=
new
ArrayList
<>(
runningStatusPojos
.
size
());
for
(
RunningStatusPojo
runningStatusPojo
:
runningStatusPojos
)
{
for
(
int
j
=
0
;
j
<
runningStatusPojos
.
size
();
j
++)
{
RunningStatusPojo
runningStatusPojo
=
runningStatusPojos
.
get
(
j
);
LightsStatusVO
lightsStatusVO
=
new
LightsStatusVO
();
LightsStatusVO
lightsStatusVO
=
new
LightsStatusVO
();
String
controlModel
=
String
.
valueOf
(
ControlModelEnum
.
getWjControlMode
(
runningStatusPojo
.
getControlMode
().
substring
(
2
,
4
)));
String
controlModel
=
String
.
valueOf
(
ControlModelEnum
.
getWjControlMode
(
runningStatusPojo
.
getControlMode
().
substring
(
2
,
4
)));
lightsStatusVO
.
setCrossId
(
crossId
);
lightsStatusVO
.
setCrossId
(
crossId
);
...
@@ -187,27 +185,58 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
...
@@ -187,27 +185,58 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
if
(!
CollectionUtils
.
isEmpty
(
phaseStageStatusPojos
))
{
if
(!
CollectionUtils
.
isEmpty
(
phaseStageStatusPojos
))
{
phaseStageStatusPojo
=
phaseStageStatusPojos
.
get
(
0
);
phaseStageStatusPojo
=
phaseStageStatusPojos
.
get
(
0
);
}
}
lightsStatusVO
.
setCycleCountDown
(
phaseStageStatusPojo
.
getRemainTime
());
lightsStatusVO
.
setCyclePhaseCountDown
(
phaseStageStatusPojo
.
getRemainTime
());
Integer
currentSchemeId
=
runningStatusPojo
.
getSchemeId
();
Integer
currentSchemeId
=
runningStatusPojo
.
getSchemeId
();
Integer
currentPhaseStageId
=
runningStatusPojo
.
getPhaseStageId
();
Integer
currentPhaseStageId
=
runningStatusPojo
.
getPhaseStageId
();
List
<
SchemeInfoPojo
>
schemeInfoPojos
=
SignalDataCache
.
schemeInfoCache
.
get
(
crossId
);
List
<
SchemeInfoPojo
>
schemeInfoPojos
=
SignalDataCache
.
schemeInfoCache
.
get
(
crossId
);
if
(!
CollectionUtils
.
isEmpty
(
schemeInfoPojos
))
{
if
(!
CollectionUtils
.
isEmpty
(
schemeInfoPojos
))
{
for
(
SchemeInfoPojo
schemeInfoPojo
:
schemeInfoPojos
)
{
for
(
SchemeInfoPojo
schemeInfoPojo
:
schemeInfoPojos
)
{
if
(
Objects
.
equals
(
schemeInfoPojo
.
getSchemeId
(),
currentSchemeId
))
{
if
(
Objects
.
equals
(
schemeInfoPojo
.
getSchemeId
(),
currentSchemeId
))
{
lightsStatusVO
.
setSchemeId
(
String
.
valueOf
(
currentSchemeId
));
List
<
Integer
>
phaseStageTimeChain
=
schemeInfoPojo
.
getPhaseStageTimeChain
();
lightsStatusVO
.
setCycleLen
(
schemeInfoPojo
.
getCycle
());
List
<
Integer
>
phaseStageChain
=
schemeInfoPojo
.
getPhaseStageChain
();
lightsStatusVO
.
setPhaseId
(
String
.
valueOf
(
currentPhaseStageId
));
List
<
PhaseStageInfoPojo
>
phaseStageInfoPojos
=
SignalDataCache
.
phaseStageInfoCache
.
get
(
crossId
);
// List<SchemeInfoPojo.SchemeStagePojo> stageInfoList = SchemeInfoPojo.getStageInfoList(schemeInfoPojo);
if
(!
CollectionUtils
.
isEmpty
(
phaseStageInfoPojos
))
{
// List<PhaseStageInfoPojo> phaseStageInfoPojos = SignalDataCache.phaseStageInfoCache.get(crossId);
for
(
int
l
=
0
;
l
<
phaseStageInfoPojos
.
size
();
l
++)
{
// if (!CollectionUtils.isEmpty(phaseStageInfoPojos)) {
PhaseStageInfoPojo
phaseStageInfoPojo
=
phaseStageInfoPojos
.
get
(
l
);
// for (PhaseStageInfoPojo phaseStageInfoPojo : phaseStageInfoPojos) {
if
(
Objects
.
equals
(
phaseStageInfoPojo
.
getPhaseStageId
(),
currentPhaseStageId
))
{
// if (Objects.equals(phaseStageInfoPojo.getPhaseStageId(), currentPhaseStageId)) {
// 通过阶段好号取阶段时间
// List<Integer> phaseList = phaseStageInfoPojo.getPhaseList();
Integer
phaseStageTime
=
0
;
// lightsStatusVO.setPhaseId(phaseId);
for
(
int
i
=
0
;
i
<
phaseStageChain
.
size
();
i
++)
{
// }
Integer
phaseStage
=
phaseStageChain
.
get
(
i
);
// }
if
(
Objects
.
equals
(
currentPhaseStageId
,
phaseStage
))
{
// }
phaseStageTime
=
phaseStageTimeChain
.
get
(
i
);
}
}
// 通过相位号获取过度时间
List
<
Integer
>
phaseList
=
phaseStageInfoPojo
.
getPhaseList
();
List
<
PhaseInfoPojo
>
phaseInfoPojos
=
SignalDataCache
.
phaseInfoCache
.
get
(
crossId
);
Integer
redTime
=
0
;
for
(
PhaseInfoPojo
phaseInfoPojo
:
phaseInfoPojos
)
{
if
(
phaseInfoPojo
.
getPhaseId
()
==
phaseList
.
get
(
0
))
{
redTime
=
phaseInfoPojo
.
getRedTime
();
}
}
lightsStatusVO
.
setSchemeId
(
String
.
valueOf
(
currentSchemeId
));
lightsStatusVO
.
setCycleLen
(
schemeInfoPojo
.
getCycle
());
lightsStatusVO
.
setCycleCountDown
(
phaseStageStatusPojo
.
getRemainTime
());
// 当相位剩余时间小于0是,运行的第二个阶段
int
realRemainTime
=
phaseStageStatusPojo
.
getRemainTime
()
-
(
phaseStageTime
-
redTime
);
if
(
realRemainTime
>=
0
)
{
lightsStatusVO
.
setPhaseId
(
String
.
valueOf
(
currentPhaseStageId
));
lightsStatusVO
.
setCyclePhaseCountDown
(
realRemainTime
);
}
else
{
PhaseStageInfoPojo
nextPhaseStageInfoPojo
=
null
;
if
(
l
+
1
<=
phaseStageInfoPojos
.
size
())
{
nextPhaseStageInfoPojo
=
phaseStageInfoPojos
.
get
(
l
+
1
);
}
else
{
nextPhaseStageInfoPojo
=
phaseStageInfoPojos
.
get
(
0
);
}
lightsStatusVO
.
setPhaseId
(
String
.
valueOf
(
nextPhaseStageInfoPojo
.
getPhaseStageId
()));
lightsStatusVO
.
setCyclePhaseCountDown
(
phaseStageStatusPojo
.
getRemainTime
()
+
(
phaseStageTime
-
redTime
));
}
}
}
}
Map
<
String
,
Object
>
dirLampGroupMap
=
new
HashMap
<>();
Map
<
String
,
Object
>
dirLampGroupMap
=
new
HashMap
<>();
if
(!
CollectionUtils
.
isEmpty
(
lightsStatus
))
{
if
(!
CollectionUtils
.
isEmpty
(
lightsStatus
))
{
for
(
int
i
=
0
;
i
<
lightsStatus
.
size
();
i
++)
{
for
(
int
i
=
0
;
i
<
lightsStatus
.
size
();
i
++)
{
...
...
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