Commit 07732afd authored by duanruiming's avatar duanruiming

[update] 优化失衡成功码值;事件增加路口绿波ID

parent 80fd9b7a
......@@ -23,6 +23,7 @@ import java.util.stream.Collectors;
public class CrossGreenWaveInfoCache implements InitializingBean {
public static final Map<Integer, List<GreenwaveCrossPO>> greenWaveInfoMap = new HashMap<>();
public static final Map<String, Integer> crossIdGreenIdMap = new HashMap<>();
@Resource
private GreenwaveInfoMapper greenwaveInfoMapper;
......@@ -53,6 +54,10 @@ public class CrossGreenWaveInfoCache implements InitializingBean {
.sorted(Comparator.comparingInt(GreenwaveCrossPO::getSort))
.collect(Collectors.toList());
greenWaveInfoMap.put(greenWaveId, greenWaveCrossIds);
for (GreenwaveCrossPO greenWaveCrossPO : greenWaveCrossPOS) {
crossIdGreenIdMap.put(greenWaveCrossPO.getCrossId(), greenWaveId);
}
}
}
}
......
......@@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.common.utils.tool.StringUtils;
import net.wanji.datacenter.cache.CrossGreenWaveInfoCache;
import net.wanji.datacenter.constant.EventAbnormalEnum;
import net.wanji.datacenter.mapper.EventInfoMapper;
import net.wanji.datacenter.pojo.dto.EventDataDTO;
......@@ -15,6 +16,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import java.util.Objects;
/**
......@@ -32,6 +34,7 @@ public class EventDataServiceImpl implements EventDataService {
@Override
public void save(String originData) {
try {
Map<String, Integer> crossIdGreenIdMap = CrossGreenWaveInfoCache.crossIdGreenIdMap;
ObjectMapper mapper = JacksonUtils.getInstance();
EventDataDTO eventDataDTO = mapper.readValue(originData, EventDataDTO.class);
String eventId = eventDataDTO.getEventId();
......@@ -42,6 +45,7 @@ public class EventDataServiceImpl implements EventDataService {
eventInfoPO4DB.setModifyTime(new Date());
eventInfoPO4DB.setEndTime(eventDataDTO.getEventEndTime());
eventInfoPO4DB.setAlarmStatus(eventDataDTO.getEventStatus());
setGreenId(crossIdGreenIdMap, eventInfoPO4DB, eventInfoPO4DB.getCrossId());
eventInfoMapper.updateOne(eventInfoPO4DB);
} else {
EventInfoPO eventInfoPO = getEventInfoPO(eventDataDTO);
......@@ -56,14 +60,16 @@ public class EventDataServiceImpl implements EventDataService {
@NotNull
private static EventInfoPO getEventInfoPO(EventDataDTO eventDataDTO) {
Map<String, Integer> crossIdGreenIdMap = CrossGreenWaveInfoCache.crossIdGreenIdMap;
EventInfoPO eventInfoPO = new EventInfoPO();
String crossId = eventDataDTO.getCrossId();
String eventTypeName = eventDataDTO.getEventType();
setEventType(eventInfoPO, eventTypeName);
Date eventStartTime = eventDataDTO.getEventStartTime();
eventInfoPO.setStartTime(eventStartTime);
eventInfoPO.setEndTime(eventDataDTO.getEventEndTime());
eventInfoPO.setEventSerialNumber(eventDataDTO.getEventId());
eventInfoPO.setCrossId(eventDataDTO.getCrossId());
eventInfoPO.setCrossId(crossId);
eventInfoPO.setGreenId(eventDataDTO.getGreenId());
SimpleDateFormat format = new SimpleDateFormat("yyyyMMdd");
String dateStr = format.format(eventStartTime);
......@@ -75,9 +81,19 @@ public class EventDataServiceImpl implements EventDataService {
eventInfoPO.setDir(eventDataDTO.getDirection());
eventInfoPO.setRuksj(new Date());
eventInfoPO.setAlarmStatus(eventDataDTO.getEventStatus());
setGreenId(crossIdGreenIdMap, eventInfoPO, crossId);
return eventInfoPO;
}
private static void setGreenId(Map<String, Integer> crossIdGreenIdMap, EventInfoPO eventInfoPO, String crossId) {
if (!crossIdGreenIdMap.isEmpty()) {
Integer greenId = crossIdGreenIdMap.get(crossId);
if (Objects.nonNull(greenId)) {
eventInfoPO.setGreenId(String.valueOf(greenId));
}
}
}
private static void setEventType(EventInfoPO eventInfoPO, String eventTypeName) {
if (EventAbnormalEnum.PHASE_EMPTY.getDesc().contains(eventTypeName)) {
eventInfoPO.setType(EventAbnormalEnum.PHASE_EMPTY.getType());
......
......@@ -82,7 +82,7 @@ public class CrossStrategyOptServiceImpl implements CrossStrategyOptService {
crossStrategyResultEntity.setCurrentAlgo(dto.getCurrentAlgo());
crossStrategyResultEntity.setRequestTime(dto.getRequestTime());
crossStrategyResultEntity.setIssueTime(dto.getIssueTime());
crossStrategyResultEntity.setResponseCode(dto.getResponseCode());
crossStrategyResultEntity.setResponseCode(dto.getCode());
crossStrategyResultEntity.setTimingPlan(mapper.writeValueAsString(dto.getTimingPlan()));
crossStrategyResultEntity.setInsertTime(dto.getInsertTime());
crossStrategyResultEntity.setRtnType(dto.getRtnType());
......
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