Commit e668828c authored by duanruiming's avatar duanruiming

[add] 优化控制表中无数据插入逻辑;优化事件告警逻辑

parent a63fd6da
...@@ -3,7 +3,6 @@ package net.wanji.utc.task; ...@@ -3,7 +3,6 @@ package net.wanji.utc.task;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wanji.common.utils.tool.BeanListUtils; import net.wanji.common.utils.tool.BeanListUtils;
import net.wanji.common.utils.tool.JacksonUtils;
import net.wanji.databus.dao.entity.SignalCommandLogPO; import net.wanji.databus.dao.entity.SignalCommandLogPO;
import net.wanji.databus.dao.entity.SignalCommandPO; import net.wanji.databus.dao.entity.SignalCommandPO;
import net.wanji.databus.dao.mapper.SignalCommandLogPOMapper; import net.wanji.databus.dao.mapper.SignalCommandLogPOMapper;
...@@ -51,7 +50,6 @@ public class SignalCommandSyncTask { ...@@ -51,7 +50,6 @@ public class SignalCommandSyncTask {
ConcurrentHashMap<String, SignalCommandPO> crossLightsStatusMap = SignalStatusTask.crossLightsStatusMap; ConcurrentHashMap<String, SignalCommandPO> crossLightsStatusMap = SignalStatusTask.crossLightsStatusMap;
LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper = new LambdaQueryWrapper();
List<SignalCommandPO> signalCommandPOS = signalCommandPOMapper.selectList(lambdaQueryWrapper); List<SignalCommandPO> signalCommandPOS = signalCommandPOMapper.selectList(lambdaQueryWrapper);
sendAlarmKafka(signalCommandPOS);
if (Objects.nonNull(crossLightsStatusMap) && !crossLightsStatusMap.isEmpty()) { if (Objects.nonNull(crossLightsStatusMap) && !crossLightsStatusMap.isEmpty()) {
List<SignalCommandPO> insertList = new ArrayList<>(); List<SignalCommandPO> insertList = new ArrayList<>();
List<SignalCommandPO> updateList = new ArrayList<>(); List<SignalCommandPO> updateList = new ArrayList<>();
...@@ -79,17 +77,12 @@ public class SignalCommandSyncTask { ...@@ -79,17 +77,12 @@ public class SignalCommandSyncTask {
updateList.add(updatePO); updateList.add(updatePO);
} }
} else { } else {
SignalCommandPO insertPO = new SignalCommandPO(); // 表中没有当前路口插入数据
insertPO.setCrossId(crossId); insertList.add(insertSignalCommandPO(crossId, statusCache, runModeCache, lampTime));
insertPO.setStatus(statusCache);
insertPO.setRunMode(runModeCache);
insertPO.setCommandResult(1);
insertPO.setUpdateCount(0);
insertPO.setInsertTime(new Date());
insertPO.setLampTime(lampTime);
insertList.add(insertPO);
} }
} else { } else {
// 表中一条数据没有,插入路口
insertList.add(insertSignalCommandPO(crossId, statusCache, runModeCache, lampTime));
log.error("路口灯态缓存为空:{}", crossLightsStatusMap); log.error("路口灯态缓存为空:{}", crossLightsStatusMap);
} }
} catch (Exception e) { } catch (Exception e) {
...@@ -109,15 +102,29 @@ public class SignalCommandSyncTask { ...@@ -109,15 +102,29 @@ public class SignalCommandSyncTask {
signalCommandLogPOMapper.updateBatch(signalCommandLogPOS); signalCommandLogPOMapper.updateBatch(signalCommandLogPOS);
log.info("路口状态控制模式变动,数据库更新成功:{}", updateList); log.info("路口状态控制模式变动,数据库更新成功:{}", updateList);
} }
signalCommandPOS.addAll(insertList);
signalCommandPOS.addAll(updateList);
sendAlarmKafka(signalCommandPOS);
} else { } else {
log.error("从路口灯态缓存获取控制模式在线离线状态为空:{}", crossLightsStatusMap); log.error("从路口灯态缓存获取控制模式在线离线状态为空:{}", crossLightsStatusMap);
} }
} catch (Exception e) { } catch (Exception e) {
log.error("信号机状态同步异常:", e); log.error("信号机状态同步异常:", e);
} }
} }
private static SignalCommandPO insertSignalCommandPO(String crossId, Integer statusCache, String runModeCache, String lampTime) {
SignalCommandPO insertPO = new SignalCommandPO();
insertPO.setCrossId(crossId);
insertPO.setStatus(statusCache);
insertPO.setRunMode(runModeCache);
insertPO.setCommandResult(1);
insertPO.setUpdateCount(0);
insertPO.setInsertTime(new Date());
insertPO.setLampTime(lampTime);
return insertPO;
}
private void sendAlarmKafka(List<SignalCommandPO> signalCommandPOS) throws Exception { private void sendAlarmKafka(List<SignalCommandPO> signalCommandPOS) throws Exception {
List<LightStatusAlarmDTO> lightStatusAlarmDTOS = new ArrayList<>(); List<LightStatusAlarmDTO> lightStatusAlarmDTOS = new ArrayList<>();
try { try {
......
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