Commit b4a01dcf authored by hanbing's avatar hanbing

[update] 海信CID映射万集路口ID

parent 70f02bb0
......@@ -6,6 +6,7 @@ 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;
......@@ -17,17 +18,35 @@ 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;
......@@ -54,9 +73,12 @@ public class NettyServerHandler extends SimpleChannelInboundHandler<DatagramPack
if (CommandResultSignEnum.GET_RUNNING_STATE_INFO.getClassName().equals(className)) {
// 直接set灯态缓存
RunningLightsStatusPojo pojo = (RunningLightsStatusPojo) resultPojo;
String crossId = pojo.getCID();
String signalCode = pojo.getCID();
String crossId = signalMap.get(signalCode);
Map<String, RunningLightsStatusPojo> cache = SignalDataCache.runningStateInfoCache;
cache.put(crossId, pojo);
if (crossId != null) {
cache.put(crossId, pojo);
}
return;
}
......
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