Commit 8d0eb7b8 authored by duanruiming's avatar duanruiming

[update] 优化海信灯态代码结构

parent 8ebc081a
......@@ -173,6 +173,23 @@ public class SignalStatusServiceImpl implements SignalStatusService {
lightsStatusVO.setPhasePlanId(String.valueOf(planId));
List<CrossSchemePhaseCountDownDTO> crossSchemePhaseCountDownList = CrossSchemePhaseTimeCountCache.crossSchemePhaseCountDownList;
setLightsStatusVOPhaseNoAndCountDown(lightsStatusVO, crossId, runTime, planId, crossSchemePhaseCountDownList);
SignalDataCache.runningStateInfoCache.put(crossId, lightsStatusVO);
}
}
}
}
}
/**
* 通过周期倒计时判断当前相位号,相位倒计时时间
* @param lightsStatusVO
* @param crossId
* @param runTime
* @param planId
* @param crossSchemePhaseCountDownList
*/
private static void setLightsStatusVOPhaseNoAndCountDown(LightsStatusVO lightsStatusVO, String crossId, int runTime, int planId, List<CrossSchemePhaseCountDownDTO> crossSchemePhaseCountDownList) {
if (!CollectionUtils.isEmpty(crossSchemePhaseCountDownList)) {
for (CrossSchemePhaseCountDownDTO dto : crossSchemePhaseCountDownList) {
String crossIdCache = dto.getCrossId();
......@@ -196,11 +213,6 @@ public class SignalStatusServiceImpl implements SignalStatusService {
}
}
}
SignalDataCache.runningStateInfoCache.put(crossId, lightsStatusVO);
}
}
}
}
}
/**
......@@ -229,9 +241,7 @@ public class SignalStatusServiceImpl implements SignalStatusService {
}
}
}
log.error("当前路口:{},方案号:{},相位号:{}", crossId, planId, phaseNo);
return phaseNo;
}
}
......@@ -54,7 +54,7 @@ public class HisensePhaseCountDownTask {
String currentTime = String.valueOf(new Date().getTime());
if (StringUtils.equalsIgnoreCase(schemeStartTime, currentTime)) {
crossSchemePO = crossSchemeMapper.selectByCrossIdAndSchemeNo(crossId, Integer.valueOf(nextSectionSchemeNo));
executeNextSectionScheme(crossId, lightsStatusVO, "1", crossSchemePO);
executeNextSectionScheme(crossId, lightsStatusVO, crossSchemePO);
lightsStatusVO.setCycleLen(crossSchemePO.getCycle());
} else {
executeNextPeriod(crossId, lightsStatusVO, phaseId, crossSchemePO);
......@@ -71,17 +71,18 @@ public class HisensePhaseCountDownTask {
* @description 通过日计划缓存,切换下一个时段方案
* @param crossId
* @param lightsStatusVO
* @param phaseId
* @param crossSchemePO
*/
private void executeNextSectionScheme(String crossId, LightsStatusVO lightsStatusVO, String phaseId, CrossSchemePO crossSchemePO) {
private void executeNextSectionScheme(String crossId, LightsStatusVO lightsStatusVO, CrossSchemePO crossSchemePO) {
if (Objects.nonNull(crossSchemePO)) {
List<CrossPhasePO> nextSchemePhaseList = crossPhaseMapper.selectByCrossIdAndPlanId(crossId, String.valueOf(crossSchemePO.getId()));
Integer phaseTime = 0;
String phaseId = null;
if (!CollectionUtils.isEmpty(nextSchemePhaseList)) {
for (CrossPhasePO crossPhasePO : nextSchemePhaseList) {
if (StringUtils.equalsIgnoreCase(phaseId, crossPhasePO.getPhaseNo())) {
if (Objects.equals(1, crossPhasePO.getSort())) {
phaseTime = crossPhasePO.getPhaseTime();
phaseId = crossPhasePO.getPhaseNo();
}
}
}
......@@ -139,6 +140,9 @@ public class HisensePhaseCountDownTask {
String phaseNo = String.valueOf(phaseDirTurnPojo.getPhaseNo());
if (StringUtils.equalsIgnoreCase(schemeNo, currentSchemeNo) && StringUtils.equalsIgnoreCase(currentPhaseNo, String.valueOf(phaseNo))) {
PhaseCountDownDTO phaseCountDownDTO = getPhaseCountDownDTO(crossId, schemeNo, phaseNo);
if (Objects.isNull(phaseCountDownDTO)) {
continue;
}
Integer yellowTime = phaseCountDownDTO.getYellowTime();
Integer redTime = phaseCountDownDTO.getRedTime();
Map<Integer, List<CrossLightsPO>> dirTurnMap = phaseDirTurnPojo.getDirTurnMap();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment