Commit aa0fd27e authored by duanruiming's avatar duanruiming

[update] UTC模拟灯态优化,测试使用V2版本灯态

parent c98cd06f
...@@ -13,6 +13,7 @@ import net.wanji.databus.po.CrossInfoPO; ...@@ -13,6 +13,7 @@ import net.wanji.databus.po.CrossInfoPO;
import net.wanji.databus.po.ManufacturerInfoPO; import net.wanji.databus.po.ManufacturerInfoPO;
import net.wanji.databus.po.SignalStatusLogPO; import net.wanji.databus.po.SignalStatusLogPO;
import net.wanji.databus.vo.LightsStatusVO; import net.wanji.databus.vo.LightsStatusVO;
import net.wanji.databus.vo.LightsStatusVO2;
import net.wanji.feign.service.UtcDTFeignClients; import net.wanji.feign.service.UtcDTFeignClients;
import net.wanji.feign.service.UtcHisenseFeignClients; import net.wanji.feign.service.UtcHisenseFeignClients;
import net.wanji.utc.common.constant.Constants; import net.wanji.utc.common.constant.Constants;
...@@ -22,6 +23,7 @@ import net.wanji.utc.service.runninginfo.HkLightsStatusService; ...@@ -22,6 +23,7 @@ import net.wanji.utc.service.runninginfo.HkLightsStatusService;
import net.wanji.utc.service.runninginfo.SignalStatusService; import net.wanji.utc.service.runninginfo.SignalStatusService;
import net.wanji.utc.websocket.RealTimeDataWebSocket; import net.wanji.utc.websocket.RealTimeDataWebSocket;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
...@@ -122,7 +124,10 @@ public class SignalStatusTask { ...@@ -122,7 +124,10 @@ public class SignalStatusTask {
if (Objects.equals(lightsStatusVO.getCrossId(), crossId)) { if (Objects.equals(lightsStatusVO.getCrossId(), crossId)) {
calculateContolCountDown(crossId, lightsStatusVO); calculateContolCountDown(crossId, lightsStatusVO);
try { // 相同路口不同websocket统一发送灯态 try { // 相同路口不同websocket统一发送灯态
String json = mapper.writeValueAsString(lightsStatusVOS); // 切换socket
List<LightsStatusVO2> listResult = lightsStatusVOCopy(lightsStatusVOS);
String json = mapper.writeValueAsString(listResult);
for (Map.Entry<String, RealTimeDataWebSocket> socketEntry : value) { for (Map.Entry<String, RealTimeDataWebSocket> socketEntry : value) {
String crossIdStr = socketEntry.getKey(); String crossIdStr = socketEntry.getKey();
RealTimeDataWebSocket webSocket = socketEntry.getValue(); RealTimeDataWebSocket webSocket = socketEntry.getValue();
...@@ -145,6 +150,48 @@ public class SignalStatusTask { ...@@ -145,6 +150,48 @@ public class SignalStatusTask {
} }
} }
private static List<LightsStatusVO2> lightsStatusVOCopy(List<LightsStatusVO> lightsStatusVOS) throws Exception{
List<LightsStatusVO2> listResult = null;
try {
listResult = new ArrayList<>(lightsStatusVOS.size());
for (LightsStatusVO lightsStatusVO : lightsStatusVOS) {
Integer cyclePhaseCountDown = lightsStatusVO.getCyclePhaseCountDown();
LightsStatusVO2 lightsStatusVO2 = new LightsStatusVO2();
BeanUtils.copyProperties(lightsStatusVO, lightsStatusVO2);
Map<String, Object> dirLampGroupMap = lightsStatusVO.getDirLampGroupMap();
List<LightsStatusVO2.DirInfo> dirList = new ArrayList<>();
Map<String, Object> phaseMap = lightsStatusVO.getPhaseMap();
for (Map.Entry<String, Object> groupEntry : dirLampGroupMap.entrySet()) {
LightsStatusVO2.DirInfo dirInfo = new LightsStatusVO2.DirInfo();
String dir = groupEntry.getKey();
Map<Integer, String> turnColorMap = (Map<Integer, String>) groupEntry.getValue();
List<LightsStatusVO2.TurnInfo> turnList = new ArrayList<>();
for (Map.Entry<Integer, String> turnEntry : turnColorMap.entrySet()) {
Integer turn = turnEntry.getKey();
String color = turnEntry.getValue();
LightsStatusVO2.TurnInfo turnInfo = new LightsStatusVO2.TurnInfo();
turnInfo.setTurn(String.valueOf(turn));
turnInfo.setColor(color);
String key = dir.concat(Constants.SEPARATOR_UNDER_LINE).concat(String.valueOf(turn));
Map<Integer, Integer> turnMap = (Map<Integer, Integer>) phaseMap.get(dir);
Integer countDown = turnMap.get(turn);
turnInfo.setCountDown(countDown);
turnList.add(turnInfo);
}
dirInfo.setDir(dir);
dirInfo.setTurnList(turnList);
dirList.add(dirInfo);
}
lightsStatusVO2.setDirLampGroupMapList(dirList);
listResult.add(lightsStatusVO2);
}
} catch (Exception e) {
log.error("灯态推送转换V2异常:", e);
throw new Exception(e);
}
return listResult;
}
/** /**
* 灯态数据发送kafka * 灯态数据发送kafka
*/ */
......
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