Commit aec32bae authored by duanruiming's avatar duanruiming

[add] 海信临时方案下发

parent b4048f1b
......@@ -119,7 +119,7 @@ public class RedisConfig extends CachingConfigurerSupport {
@Bean
public Jedis jedis() {
Jedis jedis = new Jedis(redisHost, redisPort);
jedis.auth(password);
jedis.auth("Wanji@300552");
return jedis;
}
......
......@@ -49,7 +49,6 @@ import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors;
/**
* @author duanruiming
......@@ -79,7 +78,7 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
private final CrossPhaseDirTurnCache crossPhaseDirTurnCache;
private final CrossSchemePhaseTimeCountCache crossSchemePhaseTimeCountCache;
@Resource
WanJiCommonStaticInfoService wanjiCommonStaticInfoService;
private WanJiCommonStaticInfoService wanjiCommonStaticInfoService;
@Override
......@@ -687,41 +686,58 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
@Override
public JsonViewObject schemePhaseGreenTimeOpt(SchemePhaseGreenTimeOptVO vo) throws Exception {
ObjectMapper mapper = JacksonUtils.getInstance();
JsonViewObject result = JsonViewObject.newInstance();
try {
ObjectMapper mapper = JacksonUtils.getInstance();
String crossId = vo.getCrossId();
Integer schemeId = vo.getSchemeId();
Integer schemeId = vo.getSchemeNo();
Integer offset = vo.getOffset();
Integer cycle = vo.getCycle();
List<SchemePhaseGreenTimeOptVO.PhaseOptTime> phaseOptTimeList = vo.getPhaseOptTimeList();
// 获取方案环图中,将平台优化的相位阶段转化为海信相位时间
// 获取方案环图中,将环图中相位转化为阶段中相位对应关系
CrossSchemeRingsDTO crossSchemeRingsDTO = new CrossSchemeRingsDTO();
crossSchemeRingsDTO.setCrossId(crossId);
crossSchemeRingsDTO.setPattern(String.valueOf(schemeId));
JsonViewObject jsonViewObject = wanjiCommonStaticInfoService.selectCrossSchemeRingsToStages(crossSchemeRingsDTO);
if (Objects.nonNull(jsonViewObject) && Objects.equals(200, jsonViewObject.getCode())) {
String contentStr = String.valueOf(jsonViewObject.getContent());
CrossSchemeRingsToStagesPO crossSchemeRingsToStagesPO = mapper.convertValue(contentStr, CrossSchemeRingsToStagesPO.class);
Map<Integer, Integer> phaseTimeMap = new HashMap<>();
if (Objects.nonNull(crossSchemeRingsToStagesPO)) {
List<CrossSchemeRingsToStagesPO.Phase> phaseList = crossSchemeRingsToStagesPO.getPhaseList();
if (!CollectionUtils.isEmpty(phaseList) && !CollectionUtils.isEmpty(phaseOptTimeList)) {
// 方案环图结果
CrossSchemeRingsToStagesPO crossSchemeRingsToStagesPO = new CrossSchemeRingsToStagesPO();
try {
JsonViewObject res = wanjiCommonStaticInfoService.selectCrossSchemeRingsToStages(crossSchemeRingsDTO);
if (Objects.nonNull(res) && 200 == res.getCode()) {
Object content = res.getContent();
crossSchemeRingsToStagesPO = mapper.convertValue(content, CrossSchemeRingsToStagesPO.class);
} else {
log.error("平台临时方案下发-路口号查询方案号远程服务调用异常:{}", res);
result.fail("根据路口号和方案号查询环图阶段远程服务调用异常");
}
} catch (Exception e) {
log.error("平台临时方案下发-路口号查询方案号远程服务调用异常:", e);
return result.fail("根据路口号和方案号查询环图阶段远程服务调用异常");
}
Map<Integer, Integer> phaseTimeMap = new TreeMap<>();
// 将阶段中相位加减绿灯时间转化到环相位中
if (!CollectionUtils.isEmpty(phaseOptTimeList)) {
for (SchemePhaseGreenTimeOptVO.PhaseOptTime phaseOptTime : phaseOptTimeList) {
String optPhaseNo = phaseOptTime.getPhaseNo();
Integer optGreenTime = phaseOptTime.getOptGreenTime();
for (CrossSchemeRingsToStagesPO.Phase oriPhase : phaseList) {
String oriPhaseNo = oriPhase.getPhaseNo();
String oriPhaseList = oriPhase.getPhaseList();
Integer oriPhaseTime = oriPhase.getPhaseTime();
Integer optTime = phaseOptTime.getOptTime();
List<CrossSchemeRingsToStagesPO.Phase> phaseList = crossSchemeRingsToStagesPO.getPhaseList();
String oriPhaseTimeStr = crossSchemeRingsToStagesPO.getSplit();
if (!CollectionUtils.isEmpty(phaseList) && StringUtils.isNotEmpty(oriPhaseTimeStr)) {
String[] oriHisensePhaseList = oriPhaseTimeStr.split(" ");
for (CrossSchemeRingsToStagesPO.Phase phase : phaseList) {
String oriPhaseNo = phase.getPhaseNo();
String oriPhaseList = phase.getPhaseList();
if (StringUtils.equals(optPhaseNo, oriPhaseNo)) {
if (StringUtils.isNotBlank(oriPhaseList)) {
for (String s : oriPhaseList.split(",")) {
Integer hisensePhaseNo = Integer.valueOf(s);
if (StringUtils.isNotEmpty(oriPhaseList)) {
String[] split = oriPhaseList.split(",");
for (String hisensePhaseNoStr : split) {
int hisensePhaseNo = Integer.parseInt(hisensePhaseNoStr);
int oriHisensePhaseTime = Integer.parseInt(oriHisensePhaseList[hisensePhaseNo - 1]);
if (phaseTimeMap.containsKey(hisensePhaseNo)) {
Integer oriGreen = phaseTimeMap.get(hisensePhaseNo);
phaseTimeMap.put(hisensePhaseNo, oriGreen + optGreenTime);
phaseTimeMap.compute(hisensePhaseNo, (k, tempPhaseTime) -> tempPhaseTime + optTime);
} else {
phaseTimeMap.put(hisensePhaseNo, oriPhaseTime + optGreenTime);
phaseTimeMap.put(hisensePhaseNo, oriHisensePhaseTime + optTime);
}
}
}
......@@ -730,44 +746,41 @@ public class ControlCommandStrategyServiceImpl implements ControlCommandStrategy
}
}
}
// 将相位对应绿信比转成发送格式
String splitSend = "";
if (!phaseTimeMap.isEmpty()) {
LinkedHashMap<Integer, Integer> sortMap = phaseTimeMap.entrySet().stream().sorted(
Map.Entry.comparingByKey()).collect(Collectors.toMap(
Map.Entry::getKey,
Map.Entry::getValue,
(oldValue, newValue) -> oldValue,
LinkedHashMap::new
));
List<Integer> hisensePhaseTimeList = new ArrayList<>(16);
for (Map.Entry<Integer, Integer> entry : sortMap.entrySet()) {
hisensePhaseTimeList.add(entry.getValue());
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= 16; i++) {
Integer value = phaseTimeMap.get(i);
if (Objects.nonNull(value)) {
sb.append(value).append(" ");
} else {
sb.append(0).append(" ");
}
splitSend = hisensePhaseTimeList.stream().map(String::valueOf).collect(Collectors.joining(","));
}
log.debug("平台临时方案下发相位信息:{}", sb.substring(0, sb.length() - 1).toString());
log.debug("平台临时方案下发相位信息-原始相位:{}", mapper.writeValueAsString(crossSchemeRingsToStagesPO));
// 下发临时方案
TempSchemeSendVO tempSchemeSendVO = new TempSchemeSendVO();
tempSchemeSendVO.setCrossId(crossId);
tempSchemeSendVO.setPattern(String.valueOf(schemeId));
tempSchemeSendVO.setCycle(String.valueOf(cycle));
tempSchemeSendVO.setOffset(String.valueOf(offset));
tempSchemeSendVO.setType("9");
tempSchemeSendVO.setSplit(splitSend);
JsonViewObject jsonViewObject1 = tempSchemeDetail(tempSchemeSendVO);
if (Objects.nonNull(jsonViewObject1) && Objects.equals(200, jsonViewObject1.getCode())) {
return JsonViewObject.newInstance().success("方案相位绿灯时间优化下发成功");
tempSchemeSendVO.setPattern(String.valueOf(schemeId));
tempSchemeSendVO.setOffset(crossSchemeRingsToStagesPO.getOffset()); // todo 需要确认,是不是前端传。默认原方案
tempSchemeSendVO.setSplit(sb.substring(0, sb.length() - 1).toString());
try {
JsonViewObject tempSchemeRes = this.tempSchemeDetail(tempSchemeSendVO);
if (Objects.nonNull(tempSchemeRes) && 200 == tempSchemeRes.getCode()) {
return result.success("平台临时方案下发");
} else {
log.error("方案相位绿灯时间优化下发异常:{}", jsonViewObject1);
return JsonViewObject.newInstance().fail("海信临时方案接口远程调用异常");
log.error("平台临时方案下发-海信临时方案下发异常:{}", tempSchemeRes);
result.fail("平台临时方案下发-海信临时方案下发异常");
}
} else {
log.error("根据路口号和方案号查询环转阶段异常:{}", jsonViewObject);
return JsonViewObject.newInstance().fail("根据路口号和方案号查询环转阶段异常");
} catch (Exception e) {
log.error("平台临时方案下发-海信临时方案下发异常:{}", e);
result.fail("平台临时方案下发-海信临时方案下发异常");
}
} catch (Exception e) {
log.error("方案相位绿灯时间优化下发异常,异常信息:{}", e);
log.error("平台临时方案下发异常:", e);
throw new RuntimeException(e);
}
return result.fail("平台临时方案下发异常");
}
}
......@@ -31,7 +31,7 @@ import java.util.stream.Collectors;
* @date 2025/03/26 10:00
* @description 每十分钟同步海信信号机方案环图请求
*/
@Component
//@Component
@Slf4j
@Profile("docker")
public class HisenseSchemeRingTask {
......
package net.wanji.utc.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import lombok.extern.slf4j.Slf4j;import net.wanji.common.utils.tool.BeanListUtils;import net.wanji.databus.dao.entity.SignalCommandLogPO;import net.wanji.databus.dao.entity.SignalCommandPO;import net.wanji.databus.dao.mapper.SignalCommandLogPOMapper;import net.wanji.databus.dao.mapper.SignalCommandPOMapper;import net.wanji.utc.common.typeenum.DateStyle;import net.wanji.utc.dto.LightStatusAlarmDTO;import net.wanji.utc.kafka.ProducerHandler;import net.wanji.utc.util.DateUtils;import net.wanji.utc.util.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Profile;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import org.springframework.transaction.annotation.Transactional;import org.springframework.util.CollectionUtils; import javax.annotation.Resource;import java.util.*;import java.util.concurrent.ConcurrentHashMap;import java.util.stream.Collectors; /** * @author duanruiming * @date 2024/12/26 10:33 * @description 信号命令日志同步 */@Component@Slf4j@Profile("docker")public class SignalCommandSyncTask { @Resource private SignalCommandPOMapper signalCommandPOMapper; @Resource SignalCommandLogPOMapper signalCommandLogPOMapper; @Autowired private ProducerHandler producerHandler; /** * 信号机状态控制模式缓存,更新数据库后查询 */ public static Map<String, SignalCommandPO> signalStatusRunModelMap = new HashMap<>(); @Scheduled(fixedRate = 5 * 1000, initialDelay = 30 * 1000) public void sync() { try { ConcurrentHashMap<String, SignalCommandPO> crossLightsStatusMap = SignalStatusTask.crossLightsStatusMap; LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper = new LambdaQueryWrapper(); List<SignalCommandPO> signalCommandPOS = signalCommandPOMapper.selectList(lambdaQueryWrapper); long start = System.currentTimeMillis(); if (Objects.nonNull(crossLightsStatusMap) && !crossLightsStatusMap.isEmpty()) { List<SignalCommandPO> insertList = new ArrayList<>(); List<SignalCommandPO> updateList = new ArrayList<>(); for (Map.Entry<String, SignalCommandPO> entry : crossLightsStatusMap.entrySet()) { try { String crossId = entry.getKey(); SignalCommandPO statusRunModelCache = entry.getValue(); Integer statusCache = statusRunModelCache.getStatus(); String runModeCache = statusRunModelCache.getRunMode(); String lampTime = statusRunModelCache.getLampTime(); if (!CollectionUtils.isEmpty(signalCommandPOS)) { Map<String, SignalCommandPO> command4DBMap = signalCommandPOS.stream().collect(Collectors.toMap(SignalCommandPO::getCrossId, signalCommandPO -> signalCommandPO)); if (command4DBMap.containsKey(crossId)) { SignalCommandPO updatePO = command4DBMap.get(crossId); Integer status4DB = updatePO.getStatus(); String runMode4DB = updatePO.getRunMode(); if (Objects.equals(status4DB, statusCache) && StringUtils.equals(runMode4DB, runModeCache)) { // 路口编号 状态 控制模式相同,不更新 continue; } else { updatePO.setStatus(statusCache); updatePO.setRunMode(runModeCache); updatePO.setUpdateTime(new Date()); updatePO.setLampTime(lampTime); updateList.add(updatePO); } } else { // 表中没有当前路口插入数据 insertList.add(insertSignalCommandPO(crossId, statusCache, runModeCache, lampTime)); } } else { // 表中一条数据没有,插入路口 insertList.add(insertSignalCommandPO(crossId, statusCache, runModeCache, lampTime)); log.error("路口灯态缓存为空:{}", crossLightsStatusMap); } } catch (Exception e) { log.error("路口在线状态控制模式更新失败,路口编号信息:{}", entry, e); } } saveAndUpdate(insertList, updateList); LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper2 = new LambdaQueryWrapper(); List<SignalCommandPO> listUpdated = signalCommandPOMapper.selectList(lambdaQueryWrapper2); if (!CollectionUtils.isEmpty(listUpdated)) { for (SignalCommandPO signalCommandPO : listUpdated) { String crossId = signalCommandPO.getCrossId(); signalStatusRunModelMap.put(crossId, signalCommandPO); } } sendAlarmKafka(listUpdated); } else { log.error("从路口灯态缓存获取控制模式在线离线状态为空:{}", crossLightsStatusMap); } long end = System.currentTimeMillis(); log.info("SignalCommandSyncTask 定时任务执行时间: {} ms",end - start); } catch (Exception e) { log.error("信号机状态同步异常:", e); } } @Transactional(rollbackFor = Exception.class) public void saveAndUpdate(List<SignalCommandPO> insertList, List<SignalCommandPO> updateList) { try { if (!CollectionUtils.isEmpty(insertList)) { signalCommandPOMapper.insertBatch(insertList); List<SignalCommandLogPO> signalCommandLogPOS = new ArrayList<>(insertList.size()); BeanListUtils.populateList(insertList, signalCommandLogPOS, SignalCommandLogPO.class); signalCommandLogPOMapper.insertBatch(signalCommandLogPOS); } if (!CollectionUtils.isEmpty(updateList)) { signalCommandPOMapper.updateBatch(updateList); List<SignalCommandLogPO> signalCommandLogPOS = new ArrayList<>(updateList.size()); BeanListUtils.populateList(updateList, signalCommandLogPOS, SignalCommandLogPO.class); signalCommandLogPOMapper.insertBatch(signalCommandLogPOS); log.info("路口状态控制模式变动,数据库更新成功:{}", updateList); } } catch (Exception e) { log.error("路口状态控制模式变动,数据库更新失败:", e); throw new RuntimeException(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.setInsertTime(new Date()); insertPO.setLampTime(lampTime); return insertPO; } private void sendAlarmKafka(List<SignalCommandPO> signalCommandPOS) throws Exception { List<LightStatusAlarmDTO> lightStatusAlarmDTOS = new ArrayList<>(); try { if (!CollectionUtils.isEmpty(signalCommandPOS)) { for (SignalCommandPO signalCommandPO : signalCommandPOS) { LightStatusAlarmDTO dto = new LightStatusAlarmDTO(); dto.setCrossId(signalCommandPO.getCrossId()); dto.setCommandMsg(signalCommandPO.getResultMessage()); dto.setCommandResult(signalCommandPO.getCommandResult()); dto.setCount(signalCommandPO.getUpdateCount()); dto.setStatus(signalCommandPO.getStatus()); dto.setRunMode(signalCommandPO.getRunMode()); dto.setMachineTimestamp(signalCommandPO.getLampTime()); Date date = DateUtils.stringToDate(signalCommandPO.getQueryTime(), DateStyle.YYYY_MM_DD_HH_MM_SS.getValue()); dto.setRequestTime(date); dto.setDbTime(signalCommandPO.getUpdateTime()); lightStatusAlarmDTOS.add(dto); } } producerHandler.send("light_status_alarm", lightStatusAlarmDTOS); } catch (Exception e) { log.error("灯态告警推送kafka失败:", e); throw new RuntimeException(e); } } }
\ No newline at end of file
package net.wanji.utc.task; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;import lombok.extern.slf4j.Slf4j;import net.wanji.common.utils.tool.BeanListUtils;import net.wanji.databus.dao.entity.SignalCommandLogPO;import net.wanji.databus.dao.entity.SignalCommandPO;import net.wanji.databus.dao.mapper.SignalCommandLogPOMapper;import net.wanji.databus.dao.mapper.SignalCommandPOMapper;import net.wanji.utc.common.typeenum.DateStyle;import net.wanji.utc.dto.LightStatusAlarmDTO;import net.wanji.utc.kafka.ProducerHandler;import net.wanji.utc.util.DateUtils;import net.wanji.utc.util.StringUtils;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Profile;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import org.springframework.transaction.annotation.Transactional;import org.springframework.util.CollectionUtils; import javax.annotation.Resource;import java.util.*;import java.util.concurrent.ConcurrentHashMap;import java.util.stream.Collectors; /** * @author duanruiming * @date 2024/12/26 10:33 * @description 信号命令日志同步 *///@Component @Slf4j @Profile("docker") public class SignalCommandSyncTask { @Resource private SignalCommandPOMapper signalCommandPOMapper; @Resource SignalCommandLogPOMapper signalCommandLogPOMapper; @Autowired private ProducerHandler producerHandler; /** * 信号机状态控制模式缓存,更新数据库后查询 */ public static Map<String, SignalCommandPO> signalStatusRunModelMap = new HashMap<>(); @Scheduled(fixedRate = 5 * 1000, initialDelay = 30 * 1000) public void sync() { try { ConcurrentHashMap<String, SignalCommandPO> crossLightsStatusMap = SignalStatusTask.crossLightsStatusMap; LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper = new LambdaQueryWrapper(); List<SignalCommandPO> signalCommandPOS = signalCommandPOMapper.selectList(lambdaQueryWrapper); long start = System.currentTimeMillis(); if (Objects.nonNull(crossLightsStatusMap) && !crossLightsStatusMap.isEmpty()) { List<SignalCommandPO> insertList = new ArrayList<>(); List<SignalCommandPO> updateList = new ArrayList<>(); for (Map.Entry<String, SignalCommandPO> entry : crossLightsStatusMap.entrySet()) { try { String crossId = entry.getKey(); SignalCommandPO statusRunModelCache = entry.getValue(); Integer statusCache = statusRunModelCache.getStatus(); String runModeCache = statusRunModelCache.getRunMode(); String lampTime = statusRunModelCache.getLampTime(); if (!CollectionUtils.isEmpty(signalCommandPOS)) { Map<String, SignalCommandPO> command4DBMap = signalCommandPOS.stream().collect(Collectors.toMap(SignalCommandPO::getCrossId, signalCommandPO -> signalCommandPO)); if (command4DBMap.containsKey(crossId)) { SignalCommandPO updatePO = command4DBMap.get(crossId); Integer status4DB = updatePO.getStatus(); String runMode4DB = updatePO.getRunMode(); if (Objects.equals(status4DB, statusCache) && StringUtils.equals(runMode4DB, runModeCache)) { // 路口编号 状态 控制模式相同,不更新 continue; } else { updatePO.setStatus(statusCache); updatePO.setRunMode(runModeCache); updatePO.setUpdateTime(new Date()); updatePO.setLampTime(lampTime); updateList.add(updatePO); } } else { // 表中没有当前路口插入数据 insertList.add(insertSignalCommandPO(crossId, statusCache, runModeCache, lampTime)); } } else { // 表中一条数据没有,插入路口 insertList.add(insertSignalCommandPO(crossId, statusCache, runModeCache, lampTime)); log.error("路口灯态缓存为空:{}", crossLightsStatusMap); } } catch (Exception e) { log.error("路口在线状态控制模式更新失败,路口编号信息:{}", entry, e); } } saveAndUpdate(insertList, updateList); LambdaQueryWrapper<SignalCommandPO> lambdaQueryWrapper2 = new LambdaQueryWrapper(); List<SignalCommandPO> listUpdated = signalCommandPOMapper.selectList(lambdaQueryWrapper2); if (!CollectionUtils.isEmpty(listUpdated)) { for (SignalCommandPO signalCommandPO : listUpdated) { String crossId = signalCommandPO.getCrossId(); signalStatusRunModelMap.put(crossId, signalCommandPO); } } sendAlarmKafka(listUpdated); } else { log.error("从路口灯态缓存获取控制模式在线离线状态为空:{}", crossLightsStatusMap); } long end = System.currentTimeMillis(); log.info("SignalCommandSyncTask 定时任务执行时间: {} ms",end - start); } catch (Exception e) { log.error("信号机状态同步异常:", e); } } @Transactional(rollbackFor = Exception.class) public void saveAndUpdate(List<SignalCommandPO> insertList, List<SignalCommandPO> updateList) { try { if (!CollectionUtils.isEmpty(insertList)) { signalCommandPOMapper.insertBatch(insertList); List<SignalCommandLogPO> signalCommandLogPOS = new ArrayList<>(insertList.size()); BeanListUtils.populateList(insertList, signalCommandLogPOS, SignalCommandLogPO.class); signalCommandLogPOMapper.insertBatch(signalCommandLogPOS); } if (!CollectionUtils.isEmpty(updateList)) { signalCommandPOMapper.updateBatch(updateList); List<SignalCommandLogPO> signalCommandLogPOS = new ArrayList<>(updateList.size()); BeanListUtils.populateList(updateList, signalCommandLogPOS, SignalCommandLogPO.class); signalCommandLogPOMapper.insertBatch(signalCommandLogPOS); log.info("路口状态控制模式变动,数据库更新成功:{}", updateList); } } catch (Exception e) { log.error("路口状态控制模式变动,数据库更新失败:", e); throw new RuntimeException(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.setInsertTime(new Date()); insertPO.setLampTime(lampTime); return insertPO; } private void sendAlarmKafka(List<SignalCommandPO> signalCommandPOS) throws Exception { List<LightStatusAlarmDTO> lightStatusAlarmDTOS = new ArrayList<>(); try { if (!CollectionUtils.isEmpty(signalCommandPOS)) { for (SignalCommandPO signalCommandPO : signalCommandPOS) { LightStatusAlarmDTO dto = new LightStatusAlarmDTO(); dto.setCrossId(signalCommandPO.getCrossId()); dto.setCommandMsg(signalCommandPO.getResultMessage()); dto.setCommandResult(signalCommandPO.getCommandResult()); dto.setCount(signalCommandPO.getUpdateCount()); dto.setStatus(signalCommandPO.getStatus()); dto.setRunMode(signalCommandPO.getRunMode()); dto.setMachineTimestamp(signalCommandPO.getLampTime()); Date date = DateUtils.stringToDate(signalCommandPO.getQueryTime(), DateStyle.YYYY_MM_DD_HH_MM_SS.getValue()); dto.setRequestTime(date); dto.setDbTime(signalCommandPO.getUpdateTime()); lightStatusAlarmDTOS.add(dto); } } producerHandler.send("light_status_alarm", lightStatusAlarmDTOS); } catch (Exception e) { log.error("灯态告警推送kafka失败:", e); throw new RuntimeException(e); } } }
\ No newline at end of file
......
......@@ -18,7 +18,7 @@ public class SchemePhaseGreenTimeOptVO {
@ApiModelProperty(name = "路口ID",notes = "")
private String crossId;
@ApiModelProperty(name = "原方案ID",notes = "")
private Integer schemeId;
private Integer schemeNo;
@ApiModelProperty(value = "优化模式 0-信控调优平台优化")
private Integer optType;
@ApiModelProperty(value = "周期")
......
......@@ -15,4 +15,4 @@ spring:
password: Nacos@2025
inforsuite:
license-path: D:\\license
\ No newline at end of file
license-path: /license
\ No newline at end of file
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