Commit f13a6341 authored by hanbing's avatar hanbing

[update] 诊断优化,下发手动干预增加数据拓展JSON

parent 95f84355
...@@ -23,6 +23,7 @@ import net.wanji.opt.dao.mapper.trend.CrossDataRealtimeMapper; ...@@ -23,6 +23,7 @@ import net.wanji.opt.dao.mapper.trend.CrossDataRealtimeMapper;
import net.wanji.opt.dao.mapper.trend.CrossDirDataHistMapper; import net.wanji.opt.dao.mapper.trend.CrossDirDataHistMapper;
import net.wanji.opt.dto.CrossIdAndDirDTO; import net.wanji.opt.dto.CrossIdAndDirDTO;
import net.wanji.opt.dto.CrossIdAndSchemeIdDTO; import net.wanji.opt.dto.CrossIdAndSchemeIdDTO;
import net.wanji.opt.dto.OptDataExtend;
import net.wanji.opt.dto.SendManualDTO; import net.wanji.opt.dto.SendManualDTO;
import net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO; import net.wanji.opt.dto.strategy.AddOrUpdateSceneDTO;
import net.wanji.opt.dto.strategy.QuerySceneDTO; import net.wanji.opt.dto.strategy.QuerySceneDTO;
...@@ -74,7 +75,6 @@ public class DiagnoServiceImpl implements DiagnoService { ...@@ -74,7 +75,6 @@ public class DiagnoServiceImpl implements DiagnoService {
private final FeignProxyService feignProxyService; private final FeignProxyService feignProxyService;
private final CrossDataHistMapper crossDataHistMapper; private final CrossDataHistMapper crossDataHistMapper;
private final CrossDirDataHistMapper crossDirDataHistMapper; private final CrossDirDataHistMapper crossDirDataHistMapper;
private Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create(); private Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd HH:mm:ss").create();
public DiagnoServiceImpl(CrossInfoMapper crossInfoMapper, CrossDataRealtimeMapper crossDataRealtimeMapper, public DiagnoServiceImpl(CrossInfoMapper crossInfoMapper, CrossDataRealtimeMapper crossDataRealtimeMapper,
...@@ -206,7 +206,11 @@ public class DiagnoServiceImpl implements DiagnoService { ...@@ -206,7 +206,11 @@ public class DiagnoServiceImpl implements DiagnoService {
@Override @Override
public void sendManual(SendManualDTO sendManualDTO) throws Exception { public void sendManual(SendManualDTO sendManualDTO) throws Exception {
// 构造场景、策略、方法
String optDataExtend = buildOptDataExtend(sendManualDTO);
SchemeOptSendVO schemeOptSendVO = new SchemeOptSendVO(); SchemeOptSendVO schemeOptSendVO = new SchemeOptSendVO();
schemeOptSendVO.setDataExtend(optDataExtend);
Integer optTypeInt = sendManualDTO.getOptType(); Integer optTypeInt = sendManualDTO.getOptType();
String optTypeStr = String.valueOf(optTypeInt); String optTypeStr = String.valueOf(optTypeInt);
schemeOptSendVO.setOptType(optTypeStr); schemeOptSendVO.setOptType(optTypeStr);
...@@ -237,6 +241,24 @@ public class DiagnoServiceImpl implements DiagnoService { ...@@ -237,6 +241,24 @@ public class DiagnoServiceImpl implements DiagnoService {
feignProxyService.schemeOptSend(schemeOptSendVO); feignProxyService.schemeOptSend(schemeOptSendVO);
} }
private String buildOptDataExtend(SendManualDTO sendManualDTO) {
String crossId = sendManualDTO.getSendCrossId();
// 选择数据批次时间最大的记录
List<CrossSchemeOptLogPO> maxList = crossSchemeOptLogMapper.selectMaxByCrossId(crossId);
if (CollectionUtil.isEmpty(maxList)) {
throw new RuntimeException("没有该路口优化日志数据");
}
CrossSchemeOptLogPO crossSchemeOptLogPO = maxList.get(0);
String dataExtend = crossSchemeOptLogPO.getDataExtend();
OptDataExtend optDataExtendOld = gson.fromJson(dataExtend, OptDataExtend.class);
OptDataExtend optDataExtendNew = new OptDataExtend();
optDataExtendNew.setSceneName(optDataExtendOld.getSceneName());
optDataExtendNew.setStrategyName(optDataExtendOld.getStrategyName());
// todo 改为枚举值
optDataExtendNew.setIdeaName("手动干预");
return gson.toJson(optDataExtendNew);
}
private List<SchemeSendVO.Pattern> buildPatternList(String sendCrossId, Integer schemeId, private List<SchemeSendVO.Pattern> buildPatternList(String sendCrossId, Integer schemeId,
Map<String, Integer> phaseOffsetTimeMap) { Map<String, Integer> phaseOffsetTimeMap) {
List<SchemeSendVO.Pattern> patternList = new ArrayList<>(); List<SchemeSendVO.Pattern> patternList = new ArrayList<>();
......
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