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
a28ed26e
Commit
a28ed26e
authored
Sep 26, 2023
by
duanruiming
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[update] 优化海信灯态
parent
629c69ce
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
151 additions
and
103 deletions
+151
-103
HisenseApplication.java
...c/main/java/net/wanji/utc/hisense/HisenseApplication.java
+2
-1
SignalStatusController.java
.../wanji/utc/hisense/controller/SignalStatusController.java
+3
-3
NettyServerHandler.java
...t/wanji/utc/hisense/netty/handler/NettyServerHandler.java
+5
-32
SignalStatusService.java
...va/net/wanji/utc/hisense/service/SignalStatusService.java
+1
-1
SignalStatusServiceImpl.java
...nji/utc/hisense/service/impl/SignalStatusServiceImpl.java
+137
-64
HisensePhaseCountDownTask.java
...net/wanji/utc/hisense/task/HisensePhaseCountDownTask.java
+3
-2
No files found.
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/HisenseApplication.java
View file @
a28ed26e
package
net
.
wanji
.
utc
.
hisense
;
import
net.wanji.utc.hisense.netty.NettyClient
;
import
org.mybatis.spring.annotation.MapperScan
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.boot.CommandLineRunner
;
...
...
@@ -29,6 +30,6 @@ public class HisenseApplication implements CommandLineRunner {
@Override
public
void
run
(
String
...
args
)
throws
Exception
{
//
NettyClient.connection(localPort, remoteProt);
NettyClient
.
connection
(
localPort
,
remoteProt
);
}
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/controller/SignalStatusController.java
View file @
a28ed26e
...
...
@@ -63,11 +63,11 @@ public class SignalStatusController {
return
jsonViewObject
.
success
(
lightsStatusVOList
);
}
@AspectLog
(
description
=
"
从滴滴数据大脑
接收海信灯态"
,
operationType
=
BaseEnum
.
OperationTypeEnum
.
QUERY
)
@AspectLog
(
description
=
"接收海信灯态"
,
operationType
=
BaseEnum
.
OperationTypeEnum
.
QUERY
)
@PostMapping
(
value
=
"/receiveLightStatus"
,
produces
=
MediaType
.
APPLICATION_JSON
)
@ApiOperation
(
value
=
"接收海信灯态"
,
notes
=
"接收海信灯态"
,
response
=
LightsStatusVO
.
class
,
produces
=
MediaType
.
APPLICATION_JSON
)
public
JsonViewObject
receiveLightStatus
(
@RequestBody
HisenseLightStatusPojo
hisenseLightStatusPojo
)
throws
Exception
{
signalStatusService
.
receiveLightStatus
(
hisenseLightStatusPojo
);
public
JsonViewObject
receiveLightStatus
(
@RequestBody
List
<
HisenseLightStatusPojo
>
hisenseLightStatusPojos
)
throws
Exception
{
signalStatusService
.
receiveLightStatus
(
hisenseLightStatusPojo
s
);
JsonViewObject
jsonViewObject
=
JsonViewObject
.
newInstance
();
return
jsonViewObject
.
success
(
"海信灯态接收成功"
);
}
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/netty/handler/NettyServerHandler.java
View file @
a28ed26e
...
...
@@ -6,7 +6,6 @@ import io.netty.channel.SimpleChannelInboundHandler;
import
io.netty.channel.socket.DatagramPacket
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wanji.common.framework.spring.ServiceBeanContext
;
import
net.wanji.databus.dao.mapper.CrossInfoMapper
;
import
net.wanji.databus.po.CrossInfoPO
;
import
net.wanji.utc.hisense.cache.CrossInfoCache
;
import
net.wanji.utc.hisense.cache.SignalDataCache
;
...
...
@@ -18,38 +17,16 @@ import net.wanji.utc.hisense.netty.response.CommandResponseFactory;
import
net.wanji.utc.hisense.pojo.convert.RunningLightsStatusPojo
;
import
net.wanji.utc.hisense.pojo.netty.MessageResultPojo
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Component
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.Resource
;
import
java.net.InetSocketAddress
;
import
java.nio.charset.StandardCharsets
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Objects
;
@Slf4j
@Component
public
class
NettyServerHandler
extends
SimpleChannelInboundHandler
<
DatagramPacket
>
{
// 信号机ID和路口ID映射
private
static
final
Map
<
String
,
String
>
signalMap
=
new
HashMap
<>();
@Autowired
private
CrossInfoMapper
crossInfoMapper
;
@PostConstruct
public
void
init
()
{
List
<
CrossInfoPO
>
crossInfoPOList
=
crossInfoMapper
.
selectAll
();
for
(
CrossInfoPO
crossInfoPO
:
crossInfoPOList
)
{
String
crossId
=
crossInfoPO
.
getId
();
String
signalCode
=
crossInfoPO
.
getCode
();
signalMap
.
put
(
signalCode
,
crossId
);
}
}
@Resource
private
CrossInfoCache
crossInfoCache
;
/**
* 读取消息
...
...
@@ -74,20 +51,16 @@ public class NettyServerHandler extends SimpleChannelInboundHandler<DatagramPack
// 直接set灯态缓存
RunningLightsStatusPojo
pojo
=
(
RunningLightsStatusPojo
)
resultPojo
;
String
signalCode
=
pojo
.
getCID
();
String
crossId
=
signalMap
.
get
(
signalCode
);
Map
<
String
,
RunningLightsStatusPojo
>
cache
=
SignalDataCache
.
runningStateInfoCacheUdp
;
if
(
crossId
!=
null
)
{
cache
.
put
(
crossI
d
,
pojo
);
CrossInfoPO
crossInfoPO
=
CrossInfoCache
.
getCrossInfoBySignalCode
(
signalCode
);
if
(
Objects
.
nonNull
(
crossInfoPO
))
{
Map
<
String
,
RunningLightsStatusPojo
>
cache
=
SignalDataCache
.
runningStateInfoCacheUdp
;
cache
.
put
(
crossI
nfoPO
.
getId
()
,
pojo
);
}
return
;
}
Object
bean
=
ServiceBeanContext
.
getBean
(
className
);
CommandResponseFactory
commandResponseFactory
=
ServiceBeanContext
.
getBean
(
className
);
String
key
=
StringUtils
.
join
(
"/"
,
remote
.
getHostString
(),
":"
,
remote
.
getPort
(),
"/"
,
resultPojo
.
getClass
().
getSimpleName
());
String
key
=
StringUtils
.
join
(
"/"
,
remote
.
getHostString
(),
":"
,
remote
.
getPort
(),
"/"
,
resultPojo
.
getClass
().
getSimpleName
());
CommandPojo
commandPojo
=
getCommandPojo
(
key
,
resultPojo
);
Object
hexResult
=
commandResponseFactory
.
getCommandResponse
(
commandPojo
);
if
(
Objects
.
nonNull
(
hexResult
))
{
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/SignalStatusService.java
View file @
a28ed26e
...
...
@@ -21,5 +21,5 @@ public interface SignalStatusService {
List
<
SignalStatusLogPO
>
runningStatusAlarm
(
String
crossId
);
List
<
LightsStatusVO
>
lightStatus
(
String
crossId
);
void
receiveLightStatus
(
HisenseLightStatusPojo
hisenseLightStatusPojo
)
throws
Exception
;
void
receiveLightStatus
(
List
<
HisenseLightStatusPojo
>
hisenseLightStatusPojos
)
throws
Exception
;
}
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/service/impl/SignalStatusServiceImpl.java
View file @
a28ed26e
...
...
@@ -39,6 +39,12 @@ public class SignalStatusServiceImpl implements SignalStatusService {
return
null
;
}
/**
* http 形式
* @param crossId
* @return
*/
@Override
public
List
<
LightsStatusVO
>
lightStatus
(
String
crossId
)
{
List
<
LightsStatusVO
>
lightsStatusVOS
=
new
ArrayList
<>();
Map
<
String
,
LightsStatusVO
>
runningStateInfoCache
=
SignalDataCache
.
runningStateInfoCache
;
...
...
@@ -50,82 +56,149 @@ public class SignalStatusServiceImpl implements SignalStatusService {
return
lightsStatusVOS
;
}
// @Override
// public List<LightsStatusVO> lightStatus(String crossId) {
// List<LightsStatusVO> lightsStatusVOS = new ArrayList<>();
// Map<String, RunningLightsStatusPojo> runningStateInfoCache = SignalDataCache.runningStateInfoCacheUdp;
// if (!runningStateInfoCache.isEmpty()) {
// RunningLightsStatusPojo runningLightsStatusPojo = runningStateInfoCache.get(crossId);
// LightsStatusVO lightsStatusVO = new LightsStatusVO();
// lightsStatusVO.setCrossId(crossId);
// String runMode = String.valueOf(ControlModelEnum.getWjControlMode(runningLightsStatusPojo.getCCT()));
// lightsStatusVO.setRunMode(runMode);
// lightsStatusVO.setCycleLen(runningLightsStatusPojo.getCC());
// // 相位剩余时长
// List<RunningLightsStatusPojo.Phase> phaseList = runningLightsStatusPojo.getPHASE();
// Integer phaseId = 0;
// Integer phaseCountDown = 0;
// for (RunningLightsStatusPojo.Phase phase : phaseList) {
// Integer ls = phase.getLS();
// if (Objects.equals(ls, 1)) { // 当前相位绿灯
// phaseId = phase.getPHN();
// phaseCountDown = phase.getPCD();
// }
// }
// lightsStatusVO.setCycleCountDown(phaseCountDown);
// lightsStatusVO.setPhaseId(String.valueOf(phaseId));
// lightsStatusVO.setSchemeId(String.valueOf(runningLightsStatusPojo.getPLN()));
//
// RunningLightsStatusPojo.Channel channel = runningLightsStatusPojo.getCHANNEL();
// Map<String, Object> dirLampGroupMap = new HashMap<>();
// List<Integer> scs = channel.getSCS();
// if (!CollectionUtils.isEmpty(scs)) {
// for (int i = 0; i < scs.size(); i++) {
// Map<Integer, String> turnColorMap = new HashMap<>();
// String lightsColor = String.valueOf(scs.get(i));
// String wjLightColor = PhaseLightColorEnum.getWjLightColor(lightsColor);
// Integer turn = null;
// turn = CommonUtils.getTurnByLightsId(i);
//
// // 复杂路口处理
//// Map<String, Map<Integer, Integer>> cacheMap = ComplexCrossCache.getCacheMap();
//// if (cacheMap.containsKey(crossId)) {
//// Map<Integer, Integer> innerMap = cacheMap.get(crossId);
//// if (innerMap.containsKey(i)) {
//// turn = innerMap.get(i);
//// }
//// }
//
// turnColorMap.put(turn, wjLightColor);
// String dir = String.valueOf(CommonUtils.getDirByLightsId(i));
// if (dirLampGroupMap.isEmpty() || Objects.isNull(dirLampGroupMap.get(dir))) {
// dirLampGroupMap.put(dir, turnColorMap);
// } else {
// Map<Integer, String> currentTurnColorMap = (Map<Integer, String>) dirLampGroupMap.get(dir);
// currentTurnColorMap.put(turn, wjLightColor);
// dirLampGroupMap.put(dir, currentTurnColorMap);
// }
// }
// }
// lightsStatusVO.setDirLampGroupMap(dirLampGroupMap);
// lightsStatusVOS.add(lightsStatusVO);
// }
// return lightsStatusVOS;
// }
/**
* @param hisenseLightStatusPojo
* @param hisenseLightStatusPojo
s
* @throws Exception
* @description 通过http形式接收海信灯态
*/
@Override
public
void
receiveLightStatus
(
HisenseLightStatusPojo
hisenseLightStatusPojo
)
throws
Exception
{
public
void
receiveLightStatus
(
List
<
HisenseLightStatusPojo
>
hisenseLightStatusPojos
)
throws
Exception
{
ObjectMapper
jackson
=
JacksonUtils
.
getInstance
();
String
bodyStr
=
hisenseLightStatusPojo
.
getBody
();
List
<
HisenseLightStatusPojo
.
Body
>
bodies
=
jackson
.
readValue
(
bodyStr
,
new
TypeReference
<
List
<
HisenseLightStatusPojo
.
Body
>>()
{});
if
(!
CollectionUtils
.
isEmpty
(
bodies
))
{
for
(
HisenseLightStatusPojo
.
Body
body
:
bodies
)
{
HisenseLightStatusPojo
.
ContentBody
content
=
body
.
getContent
();
LightsStatusVO
lightsStatusVO
=
new
LightsStatusVO
();
String
hiCrossId
=
content
.
getCrossId
();
CrossInfoPO
crossInfo
=
CrossInfoCache
.
getCrossInfoBySignalCode
(
hiCrossId
);
Long
signalMachineStamp
=
content
.
getSignalMachineStamp
();
if
(
Objects
.
isNull
(
crossInfo
))
{
continue
;
}
String
crossId
=
crossInfo
.
getId
();
Long
lastSignalMachineStamp
=
SignalDataCache
.
runningStatusStampMap
.
get
(
crossId
);
if
(
Objects
.
isNull
(
lastSignalMachineStamp
))
{
SignalDataCache
.
runningStatusStampMap
.
put
(
crossId
,
signalMachineStamp
);
}
else
{
if
(
lastSignalMachineStamp
>=
signalMachineStamp
)
{
continue
;
}
SignalDataCache
.
runningStatusStampMap
.
put
(
crossId
,
signalMachineStamp
);
}
Date
date
=
new
Date
();
Long
time
=
date
.
getTime
();
int
offsetTime
=
(
int
)
((
time
-
signalMachineStamp
)
/
1000
);
int
cycleCountDown
=
content
.
getCycleCountDown
()
-
offsetTime
;
int
hiControlMode
=
content
.
getControlMode
();
int
period
=
content
.
getPeriod
();
int
runTime
=
period
-
cycleCountDown
;
int
planId
=
(
content
.
getPlanId
()
+
2
)
/
3
;
lightsStatusVO
.
setCrossId
(
crossId
);
lightsStatusVO
.
setSchemeId
(
String
.
valueOf
(
planId
));
String
runMode
=
String
.
valueOf
(
DataBrainControlModeEnum
.
getWjControlMode
(
hiControlMode
));
lightsStatusVO
.
setRunMode
(
runMode
);
lightsStatusVO
.
setCycleCountDown
(
cycleCountDown
);
lightsStatusVO
.
setCycleLen
(
period
);
lightsStatusVO
.
setSchemeStartTime
(
String
.
valueOf
(
signalMachineStamp
));
lightsStatusVO
.
setPhaseMap
(
Collections
.
emptyMap
());
lightsStatusVO
.
setControlMode
(
runMode
);
lightsStatusVO
.
setCode
(
hiCrossId
);
lightsStatusVO
.
setManufacturerCode
(
"Hisense"
);
lightsStatusVO
.
setPhasePlanId
(
String
.
valueOf
(
planId
));
if
(!
CollectionUtils
.
isEmpty
(
hisenseLightStatusPojos
))
{
for
(
HisenseLightStatusPojo
hisenseLightStatusPojo
:
hisenseLightStatusPojos
)
{
String
bodyStr
=
hisenseLightStatusPojo
.
getBody
();
List
<
HisenseLightStatusPojo
.
Body
>
bodies
=
jackson
.
readValue
(
bodyStr
,
new
TypeReference
<
List
<
HisenseLightStatusPojo
.
Body
>>()
{});
if
(!
CollectionUtils
.
isEmpty
(
bodies
))
{
for
(
HisenseLightStatusPojo
.
Body
body
:
bodies
)
{
HisenseLightStatusPojo
.
ContentBody
content
=
body
.
getContent
();
LightsStatusVO
lightsStatusVO
=
new
LightsStatusVO
();
String
hiCrossId
=
content
.
getCrossId
();
CrossInfoPO
crossInfo
=
CrossInfoCache
.
getCrossInfoBySignalCode
(
hiCrossId
);
Long
signalMachineStamp
=
content
.
getSignalMachineStamp
();
if
(
Objects
.
isNull
(
crossInfo
))
{
continue
;
}
String
crossId
=
crossInfo
.
getId
();
Long
lastSignalMachineStamp
=
SignalDataCache
.
runningStatusStampMap
.
get
(
crossId
);
if
(
Objects
.
isNull
(
lastSignalMachineStamp
))
{
SignalDataCache
.
runningStatusStampMap
.
put
(
crossId
,
signalMachineStamp
);
}
else
{
if
(
lastSignalMachineStamp
>=
signalMachineStamp
)
{
continue
;
}
SignalDataCache
.
runningStatusStampMap
.
put
(
crossId
,
signalMachineStamp
);
}
Date
date
=
new
Date
();
Long
time
=
date
.
getTime
();
int
offsetTime
=
(
int
)
((
time
-
signalMachineStamp
)
/
1000
);
int
cycleCountDown
=
content
.
getCycleCountDown
()
-
offsetTime
;
int
hiControlMode
=
content
.
getControlMode
();
int
period
=
content
.
getPeriod
();
int
runTime
=
period
-
cycleCountDown
;
int
planId
=
(
content
.
getPlanId
()
+
2
)
/
3
;
lightsStatusVO
.
setCrossId
(
crossId
);
lightsStatusVO
.
setSchemeId
(
String
.
valueOf
(
planId
));
String
runMode
=
String
.
valueOf
(
DataBrainControlModeEnum
.
getWjControlMode
(
hiControlMode
));
lightsStatusVO
.
setRunMode
(
runMode
);
lightsStatusVO
.
setCycleCountDown
(
cycleCountDown
);
lightsStatusVO
.
setCycleLen
(
period
);
lightsStatusVO
.
setSchemeStartTime
(
String
.
valueOf
(
signalMachineStamp
));
lightsStatusVO
.
setPhaseMap
(
Collections
.
emptyMap
());
lightsStatusVO
.
setControlMode
(
runMode
);
lightsStatusVO
.
setCode
(
hiCrossId
);
lightsStatusVO
.
setManufacturerCode
(
"Hisense"
);
lightsStatusVO
.
setPhasePlanId
(
String
.
valueOf
(
planId
));
List
<
CrossSchemePhaseCountDownDTO
>
crossSchemePhaseCountDownList
=
CrossSchemePhaseTimeCountCache
.
crossSchemePhaseCountDownList
;
if
(!
CollectionUtils
.
isEmpty
(
crossSchemePhaseCountDownList
))
{
for
(
CrossSchemePhaseCountDownDTO
dto
:
crossSchemePhaseCountDownList
)
{
String
crossIdCache
=
dto
.
getCrossId
();
String
schemeNoCache
=
dto
.
getSchemeNo
();
if
(
StringUtils
.
equalsIgnoreCase
(
crossIdCache
,
crossId
)
&&
StringUtils
.
equalsIgnoreCase
(
schemeNoCache
,
String
.
valueOf
(
planId
)))
{
List
<
PhaseCountDownDTO
>
phaseCountDownDTOList
=
dto
.
getPhaseCountDownDTOList
();
int
lastPhaseCountTime
=
0
;
int
phaseTimeCountDown
=
0
;
String
phaseNo
=
null
;
for
(
PhaseCountDownDTO
phaseCountDownDTO
:
phaseCountDownDTOList
)
{
phaseNo
=
phaseCountDownDTO
.
getPhaseNo
();
Integer
changePhaseTime
=
phaseCountDownDTO
.
getChangePhaseTime
();
if
(
lastPhaseCountTime
<=
runTime
&&
runTime
<
changePhaseTime
)
{
phaseTimeCountDown
=
changePhaseTime
-
runTime
;
break
;
List
<
CrossSchemePhaseCountDownDTO
>
crossSchemePhaseCountDownList
=
CrossSchemePhaseTimeCountCache
.
crossSchemePhaseCountDownList
;
if
(!
CollectionUtils
.
isEmpty
(
crossSchemePhaseCountDownList
))
{
for
(
CrossSchemePhaseCountDownDTO
dto
:
crossSchemePhaseCountDownList
)
{
String
crossIdCache
=
dto
.
getCrossId
();
String
schemeNoCache
=
dto
.
getSchemeNo
();
if
(
StringUtils
.
equalsIgnoreCase
(
crossIdCache
,
crossId
)
&&
StringUtils
.
equalsIgnoreCase
(
schemeNoCache
,
String
.
valueOf
(
planId
)))
{
List
<
PhaseCountDownDTO
>
phaseCountDownDTOList
=
dto
.
getPhaseCountDownDTOList
();
int
lastPhaseCountTime
=
0
;
int
phaseTimeCountDown
=
0
;
String
phaseNo
=
null
;
for
(
PhaseCountDownDTO
phaseCountDownDTO
:
phaseCountDownDTOList
)
{
phaseNo
=
phaseCountDownDTO
.
getPhaseNo
();
Integer
changePhaseTime
=
phaseCountDownDTO
.
getChangePhaseTime
();
if
(
lastPhaseCountTime
<=
runTime
&&
runTime
<
changePhaseTime
)
{
phaseTimeCountDown
=
changePhaseTime
-
runTime
;
break
;
}
lastPhaseCountTime
=
changePhaseTime
;
}
lightsStatusVO
.
setPhaseId
(
phaseNo
);
lightsStatusVO
.
setCyclePhaseCountDown
(
phaseTimeCountDown
);
}
lastPhaseCountTime
=
changePhaseTime
;
}
lightsStatusVO
.
setPhaseId
(
phaseNo
);
lightsStatusVO
.
setCyclePhaseCountDown
(
phaseTimeCountDown
);
}
SignalDataCache
.
runningStateInfoCache
.
put
(
crossId
,
lightsStatusVO
);
}
}
SignalDataCache
.
runningStateInfoCache
.
put
(
crossId
,
lightsStatusVO
);
}
}
}
...
...
signal-utc-hisense-service/src/main/java/net/wanji/utc/hisense/task/HisensePhaseCountDownTask.java
View file @
a28ed26e
...
...
@@ -47,11 +47,12 @@ public class HisensePhaseCountDownTask {
Long
lastPhaseTimeStamp
=
runningStatusStampMap
.
get
(
crossId
);
String
phaseId
=
lightsStatusVO
.
getPhaseId
();
String
schemeId
=
lightsStatusVO
.
getSchemeId
();
if
(
Objects
.
nonNull
(
lastPhaseTimeStamp
)
&&
StringUtils
.
equalsIgnoreCase
(
schemeStartTime
,
String
.
valueOf
(
lastPhaseTimeStamp
)))
{
if
(
Objects
.
nonNull
(
lastPhaseTimeStamp
)
&&
!
StringUtils
.
equalsIgnoreCase
(
schemeStartTime
,
String
.
valueOf
(
lastPhaseTimeStamp
)))
{
CrossSchemePO
crossSchemePO
=
crossSchemeMapper
.
selectByCrossIdAndSchemeNo
(
crossId
,
Integer
.
valueOf
(
schemeId
));
// 通过时段表,切换方案 凌晨00:00 如果切换下一个日期方案,可能RefreshCacheTask还没执行
String
nextSectionSchemeNo
=
CrossRunSchemeCache
.
currentRunSchemeNoCache
.
get
(
crossId
);
if
(!
StringUtils
.
equalsIgnoreCase
(
nextSectionSchemeNo
,
schemeId
))
{
String
currentTime
=
String
.
valueOf
(
new
Date
().
getTime
());
if
(
StringUtils
.
equalsIgnoreCase
(
schemeStartTime
,
currentTime
))
{
crossSchemePO
=
crossSchemeMapper
.
selectByCrossIdAndSchemeNo
(
crossId
,
Integer
.
valueOf
(
nextSectionSchemeNo
));
executeNextSectionScheme
(
crossId
,
lightsStatusVO
,
"1"
,
crossSchemePO
);
lightsStatusVO
.
setCycleLen
(
crossSchemePO
.
getCycle
());
...
...
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