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
02e0e6fc
Commit
02e0e6fc
authored
Aug 15, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 解决步进
parent
1b5999eb
Changes
1
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
54 additions
and
3 deletions
+54
-3
DTControlCommandServiceImpl.java
...anji/utc/dt/service/impl/DTControlCommandServiceImpl.java
+54
-3
No files found.
signal-utc-dt-service/src/main/java/net/wanji/utc/dt/service/impl/DTControlCommandServiceImpl.java
View file @
02e0e6fc
package
net
.
wanji
.
utc
.
dt
.
service
.
impl
;
import
cn.hutool.core.util.HexUtil
;
import
lombok.RequiredArgsConstructor
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.rest.JsonViewObject
;
import
net.wanji.common.utils.tool.DateUtil
;
...
...
@@ -15,11 +14,14 @@ import net.wanji.utc.dt.common.enums.SectionControlModeEnum;
import
net.wanji.utc.dt.netty.NettyClient
;
import
net.wanji.utc.dt.pojo.dtconvert.LightsInfoPojo
;
import
net.wanji.utc.dt.pojo.dtconvert.PhaseInfoPojo
;
import
net.wanji.utc.dt.pojo.dtconvert.SchemeInfoPojo
;
import
net.wanji.utc.dt.pojo.netty.MessageResultPojo
;
import
net.wanji.utc.dt.service.ControlCommandService
;
import
net.wanji.utc.dt.service.SignalStatusService
;
import
net.wanji.utc.dt.util.CommonUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.jetbrains.annotations.NotNull
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Service
;
import
org.springframework.util.CollectionUtils
;
...
...
@@ -31,11 +33,13 @@ import java.util.stream.Collectors;
* @date 2023/05/08 10:43
*/
@Service
@RequiredArgsConstructor
@Slf4j
@SuppressWarnings
(
"all"
)
public
class
DTControlCommandServiceImpl
implements
ControlCommandService
{
@Autowired
private
SignalStatusService
dtSignalStatusService
;
/**
* 东土相位灯组固定,万集下发相位就是下发东土阶段关联相位关系,
*
...
...
@@ -337,7 +341,54 @@ public class DTControlCommandServiceImpl implements ControlCommandService {
@Override
public
JsonViewObject
stepControl
(
String
code
,
Integer
command
,
Integer
stepNum
)
throws
Exception
{
return
null
;
Integer
nextStageId
=
getNextStageId
(
code
);
ControlCommandVO
controlCommandVO
=
new
ControlCommandVO
();
controlCommandVO
.
setCommand
(
command
);
controlCommandVO
.
setCrossCode
(
code
);
controlCommandVO
.
setPhaseList
(
Arrays
.
asList
(
nextStageId
));
JsonViewObject
jsonViewObject
=
lockControl
(
controlCommandVO
);
return
jsonViewObject
;
}
/**
* @description 通过路口编号,获取路口实时阶段方案,计算下一个阶段号
* @param [code]
* @return java.lang.Integer
*/
private
Integer
getNextStageId
(
String
code
)
throws
Exception
{
Integer
nextStageId
=
null
;
List
<
LightsStatusVO
>
lightsStatusVOS
=
dtSignalStatusService
.
lightStatus
(
code
);
if
(!
CollectionUtils
.
isEmpty
(
lightsStatusVOS
))
{
LightsStatusVO
lightsStatusVO
=
lightsStatusVOS
.
get
(
0
);
if
(
Objects
.
nonNull
(
lightsStatusVO
))
{
String
currentStageId
=
lightsStatusVO
.
getPhaseId
();
String
currentSchemeId
=
lightsStatusVO
.
getSchemeId
();
List
<
SchemeInfoPojo
>
schemeInfoPojos
=
SignalDataCache
.
schemeInfoCache
.
get
(
code
);
if
(!
CollectionUtils
.
isEmpty
(
schemeInfoPojos
))
{
for
(
SchemeInfoPojo
schemeInfoPojo
:
schemeInfoPojos
)
{
if
(
Objects
.
equals
(
schemeInfoPojo
.
getSchemeId
(),
Integer
.
valueOf
(
currentSchemeId
)))
{
List
<
Integer
>
phaseStageChain
=
schemeInfoPojo
.
getPhaseStageChain
();
if
(!
CollectionUtils
.
isEmpty
(
phaseStageChain
))
{
for
(
int
i
=
0
;
i
<
phaseStageChain
.
size
();
i
++)
{
if
(
Objects
.
equals
(
Integer
.
valueOf
(
currentStageId
),
phaseStageChain
.
get
(
i
)))
{
int
index
=
phaseStageChain
.
indexOf
(
Integer
.
valueOf
(
currentStageId
));
if
(
index
==
phaseStageChain
.
size
()
-
1
)
{
nextStageId
=
phaseStageChain
.
get
(
0
);
break
;
}
else
{
nextStageId
=
phaseStageChain
.
get
(
i
+
1
);
break
;
}
}
}
}
}
}
}
}
}
return
nextStageId
;
}
@Override
...
...
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