Commit f0f150fb authored by duanruiming's avatar duanruiming

[update] 实时监控->当前运行方案相位参数优化

parent d72234de
......@@ -10,6 +10,7 @@ import net.wanji.opt.common.exception.OptServiceException;
import net.wanji.opt.dto.*;
import net.wanji.opt.service.CrossSchedulesService;
import net.wanji.opt.service.CrossSchemeService;
import org.springframework.beans.BeanUtils;
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;
......@@ -104,11 +105,12 @@ public class CrossDirTurnPhaseCache implements CommandLineRunner {
turnSet.addAll(Arrays.stream(turnArr).collect(Collectors.toSet()));
}
for (String turn : turnSet) {
CrossPhaseDTO crossPhaseDTO = new CrossPhaseDTO();
BeanUtils.copyProperties(phase, crossPhaseDTO);
key = crossId + Constants.SystemParam.SEPARATOR_UNDER_LINE + dir + Constants.SystemParam.SEPARATOR_UNDER_LINE + turn;
phase.setDirType(dir);
phase.setTurnType(turn);
phaseMap.put(key, phase);
crossPhaseDTO.setDirType(dir);
crossPhaseDTO.setTurnType(turn);
phaseMap.put(key, crossPhaseDTO);
}
turnSet.clear();
}
......
......@@ -317,7 +317,6 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
}
}
/**
* 当前路口异常转向列表 element:进口方向
*
......@@ -425,6 +424,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
} else {
phaseTimeOptResultMap = getPhaseTimeOptMap(phaseTimeOffset);
}
if (!phaseTimeOptResultMap.isEmpty()) {
// 修改原始方案绿灯时间为优化后时间,方案下发
SchemeSendVO schemeSendVO = getSchemeSendVO(crossId, phaseMap, phaseTimeOptResultMap);
JsonViewObject jsonViewObject = utcFeignClients.schemeSend(schemeSendVO);
......@@ -439,6 +439,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
// 将优化记录插入方案优化记录表
insertCrossSchemeOptLog(phaseTimeOptResultMap, phaseMap, optType);
}
}
/**
* 将优化记录数据[按路口相位转向]插入到优化记录表这种
......@@ -454,6 +455,9 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
CrossSchemeOptLogPO crossSchemeOptLogPO = new CrossSchemeOptLogPO();
CrossPhaseDTO crossPhaseDTO = item.getValue();
String phaseNo = crossPhaseDTO.getPhaseNo();
for (Map.Entry<String, Integer> entry : phaseTimeOptResultMap.entrySet()) {
if (Objects.equals(phaseNo, entry.getKey())) {
BeanUtils.copyProperties(crossPhaseDTO, crossSchemeOptLogPO);
crossSchemeOptLogPO.setSchemeId(crossPhaseDTO.getSchemeId());
crossSchemeOptLogPO.setPhaseOrderId(crossPhaseDTO.getSort());
......@@ -467,14 +471,11 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
// todo 测试数据
crossSchemeOptLogPO.setDataExtend("{\"sceneName\": \"测试JSON\",\"strategyName\": \"测试JSON\",\"ideaName\": \"测试JSON\"}");// todo 需要通过场景策略方法
String phaseNo = crossPhaseDTO.getPhaseNo();
for (Map.Entry<String, Integer> entry : phaseTimeOptResultMap.entrySet()) {
if (Objects.equals(phaseNo, entry.getKey())) {
crossSchemeOptLogPO.setOptTime(entry.getValue());
crossSchemeOptLogPO.setOriGreenTime(crossPhaseDTO.getGreenTime());
insertList.add(crossSchemeOptLogPO);
}
}
insertList.add(crossSchemeOptLogPO);
}
crossSchemeOptLogMapper.insertBatch(insertList);
}
......@@ -697,7 +698,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
}
private Integer getRealOptGreenTime(Double passTime, CrossPhaseDTO crossPhaseDTO) {
int passTimeInt = passTime == null ? 0 : passTime.intValue();
Integer passTimeInt = passTime == null ? 0 : passTime.intValue();
if (passTimeInt <= crossPhaseDTO.getMinGreenTime()) {
passTimeInt = crossPhaseDTO.getMinGreenTime();
}
......
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