Commit 6dcd366d authored by duanruiming's avatar duanruiming

[update] 相位倒计时优化3

parent 9ebbc1b4
...@@ -15,6 +15,7 @@ import net.wanji.utc.dt.pojo.netty.MessageResultPojo; ...@@ -15,6 +15,7 @@ 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;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.jetbrains.annotations.NotNull;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
...@@ -220,7 +221,7 @@ public class DTSignalStatusServiceImpl implements SignalStatusService { ...@@ -220,7 +221,7 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
lightsStatusVO.setCycleLen(schemeInfoPojo.getCycle()); lightsStatusVO.setCycleLen(schemeInfoPojo.getCycle());
lightsStatusVO.setCycleCountDown(phaseStageStatusPojo.getRemainTime()); lightsStatusVO.setCycleCountDown(phaseStageStatusPojo.getRemainTime());
// 当相位剩余时间小于0是,运行的第二个阶段 // 当相位剩余时间小于0是,运行的第二个阶段
int realRemainTime = phaseStageStatusPojo.getRemainTime() - (phaseStageTime - redTime); int realRemainTime = phaseStageStatusPojo.getRemainTime() - redTime;
if (realRemainTime >= 0) { if (realRemainTime >= 0) {
lightsStatusVO.setPhaseId(String.valueOf(currentPhaseStageId)); lightsStatusVO.setPhaseId(String.valueOf(currentPhaseStageId));
lightsStatusVO.setCyclePhaseCountDown(realRemainTime); lightsStatusVO.setCyclePhaseCountDown(realRemainTime);
...@@ -232,29 +233,12 @@ public class DTSignalStatusServiceImpl implements SignalStatusService { ...@@ -232,29 +233,12 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
nextPhaseStageInfoPojo = phaseStageInfoPojos.get(0); nextPhaseStageInfoPojo = phaseStageInfoPojos.get(0);
} }
lightsStatusVO.setPhaseId(String.valueOf(nextPhaseStageInfoPojo.getPhaseStageId())); lightsStatusVO.setPhaseId(String.valueOf(nextPhaseStageInfoPojo.getPhaseStageId()));
lightsStatusVO.setCyclePhaseCountDown(phaseStageStatusPojo.getRemainTime() + (phaseStageTime - redTime)); lightsStatusVO.setCyclePhaseCountDown(phaseStageStatusPojo.getRemainTime() + redTime);
} }
} }
} }
} }
Map<String, Object> dirLampGroupMap = new HashMap<>(); lightsStatusVO.setDirLampGroupMap(getDirLampGroupMap(lightsStatus));
if (!CollectionUtils.isEmpty(lightsStatus)) {
for (int i = 0; i < lightsStatus.size(); i++) {
Map<Integer, String> turnColorMap = new HashMap<>();
String wjLightColor = PhaseLightColorEnum.getWjLightColor(lightsStatus.get(i));
Integer turn = CommonUtils.getTurnByLightsId(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);
} }
} }
} }
...@@ -262,4 +246,26 @@ public class DTSignalStatusServiceImpl implements SignalStatusService { ...@@ -262,4 +246,26 @@ public class DTSignalStatusServiceImpl implements SignalStatusService {
} }
return lightsStatusVOS; return lightsStatusVOS;
} }
@NotNull
private static Map<String, Object> getDirLampGroupMap(List<String> lightsStatus) {
Map<String, Object> dirLampGroupMap = new HashMap<>();
if (!CollectionUtils.isEmpty(lightsStatus)) {
for (int i = 0; i < lightsStatus.size(); i++) {
Map<Integer, String> turnColorMap = new HashMap<>();
String wjLightColor = PhaseLightColorEnum.getWjLightColor(lightsStatus.get(i));
Integer turn = CommonUtils.getTurnByLightsId(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);
}
}
}
return dirLampGroupMap;
}
} }
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