Commit b9153f7c authored by duanruiming's avatar duanruiming

[update] 实时监控->优化相位转向

parent 26c3bc7f
...@@ -16,7 +16,6 @@ import org.springframework.stereotype.Component; ...@@ -16,7 +16,6 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalTime; import java.time.LocalTime;
import java.util.*; import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
...@@ -27,7 +26,7 @@ import java.util.stream.Collectors; ...@@ -27,7 +26,7 @@ import java.util.stream.Collectors;
@Slf4j @Slf4j
public class CrossDirTurnPhaseCache implements CommandLineRunner { public class CrossDirTurnPhaseCache implements CommandLineRunner {
private static Map<String, CrossPhaseDTO> phaseMap = new ConcurrentHashMap<>(); private static Map<String, CrossPhaseDTO> phaseMap = new HashMap<>();
@Resource @Resource
CrossSchedulesService crossSchedulesService; CrossSchedulesService crossSchedulesService;
...@@ -44,6 +43,13 @@ public class CrossDirTurnPhaseCache implements CommandLineRunner { ...@@ -44,6 +43,13 @@ public class CrossDirTurnPhaseCache implements CommandLineRunner {
return phaseMap; return phaseMap;
} }
/**
* 使用前刷新当前缓存,当前缓存获取当前运行路口运行方案的相位车道信息
*/
public void refresh() {
init();
}
@Override @Override
public void run(String... args) { public void run(String... args) {
init(); init();
......
...@@ -27,8 +27,11 @@ public class CrossSchemeOptLogPO { ...@@ -27,8 +27,11 @@ public class CrossSchemeOptLogPO {
private String optReason; private String optReason;
private Date startTime; private Date startTime;
private Date endTime; private Date endTime;
private String isRelation; private String relationFlag;
private String relationCrossId; private String relationCrossId;
/**
* 优化结果:1-成功 2-失败
*/
private String optResult; private String optResult;
private String optResultDesc; private String optResultDesc;
private int dataBatchTime; private int dataBatchTime;
......
...@@ -96,6 +96,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService { ...@@ -96,6 +96,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
try { try {
// 相位配时信息,key: 路口编号_方向类型_转向类型,value: 相位配时信息 // 相位配时信息,key: 路口编号_方向类型_转向类型,value: 相位配时信息
crossDirTurnPhaseCache.refresh();
Map<String, CrossPhaseDTO> phaseMap = crossDirTurnPhaseCache.getPhaseDirTurnMap(); Map<String, CrossPhaseDTO> phaseMap = crossDirTurnPhaseCache.getPhaseDirTurnMap();
setTurnList(abnormalCrossList, phaseMap); setTurnList(abnormalCrossList, phaseMap);
setTurnList(crossDataRealtimePOList, phaseMap); setTurnList(crossDataRealtimePOList, phaseMap);
...@@ -104,6 +105,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService { ...@@ -104,6 +105,7 @@ public class CrossOptimizeServiceImpl implements CrossOptimizeService {
Map<String, List<CrossTurnDataRealtimeDTO>> turnDataRealtime = listTurnDataRealtime(crossDataRealtimePOList); Map<String, List<CrossTurnDataRealtimeDTO>> turnDataRealtime = listTurnDataRealtime(crossDataRealtimePOList);
// 恢复优化路口原始方案:上一批次优化后,路口正常需要恢复原始方案 // 恢复优化路口原始方案:上一批次优化后,路口正常需要恢复原始方案
// todo 方案运行时间,恢复时当前时间是否在远方案运行时间内,否则phaseMap数据不准确
restoreOptCrossOriSchema(abnormalCrossList, phaseMap); restoreOptCrossOriSchema(abnormalCrossList, phaseMap);
Map<Integer, List<CrossDataRealtimePO>> crossDataMap = abnormalCrossList.stream().collect(Collectors.groupingBy(CrossDataRealtimePO::getStatus)); Map<Integer, List<CrossDataRealtimePO>> crossDataMap = abnormalCrossList.stream().collect(Collectors.groupingBy(CrossDataRealtimePO::getStatus));
......
...@@ -117,7 +117,7 @@ public class FeignProxyServiceImpl implements FeignProxyService { ...@@ -117,7 +117,7 @@ public class FeignProxyServiceImpl implements FeignProxyService {
crossSchemeOptLogPO.setOptType(schemeOptSendVO.getOptType()); crossSchemeOptLogPO.setOptType(schemeOptSendVO.getOptType());
crossSchemeOptLogPO.setOptReason(schemeOptSendVO.getOptReason()); crossSchemeOptLogPO.setOptReason(schemeOptSendVO.getOptReason());
crossSchemeOptLogPO.setStartTime(new Date()); crossSchemeOptLogPO.setStartTime(new Date());
crossSchemeOptLogPO.setIsRelation(schemeOptSendVO.getRelationFlag()); crossSchemeOptLogPO.setRelationFlag(schemeOptSendVO.getRelationFlag());
crossSchemeOptLogPO.setRelationCrossId(schemeOptSendVO.getRelationCrossId()); crossSchemeOptLogPO.setRelationCrossId(schemeOptSendVO.getRelationCrossId());
crossSchemeOptLogPO.setOptResult("1"); crossSchemeOptLogPO.setOptResult("1");
crossSchemeOptLogPO.setOptResultDesc(StatusCodeEnum.STATUS_00200.getDetail()); crossSchemeOptLogPO.setOptResultDesc(StatusCodeEnum.STATUS_00200.getDetail());
......
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<result property="optReason" column="opt_reason"/> <result property="optReason" column="opt_reason"/>
<result property="startTime" column="start_time"/> <result property="startTime" column="start_time"/>
<result property="endTime" column="end_time"/> <result property="endTime" column="end_time"/>
<result property="isRelation" column="is_relation"/> <result property="relationFlag" column="is_relation"/>
<result property="relationCrossId" column="relation_cross_id"/> <result property="relationCrossId" column="relation_cross_id"/>
<result property="optResult" column="opt_result"/> <result property="optResult" column="opt_result"/>
<result property="optResultDesc" column="opt_result_desc"/> <result property="optResultDesc" column="opt_result_desc"/>
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
end_time, is_relation, relation_cross_id, opt_result, opt_result_desc, end_time, is_relation, relation_cross_id, opt_result, opt_result_desc,
data_batch_time, restore_result, data_extend) data_batch_time, restore_result, data_extend)
values (#{crossId}, #{schemeNo}, #{dirType}, #{turnType}, #{offset}, #{ringNo}, #{phaseNo}, #{phaseOrderId}, values (#{crossId}, #{schemeNo}, #{dirType}, #{turnType}, #{offset}, #{ringNo}, #{phaseNo}, #{phaseOrderId},
#{oriGreenTime}, #{optTime}, #{optType}, #{optReason}, #{startTime}, #{endTime}, #{isRelation}, #{oriGreenTime}, #{optTime}, #{optType}, #{optReason}, #{startTime}, #{endTime}, #{relationFlag},
#{relationCrossId}, #{optResult}, #{optResultDesc}, #{dataBatchTime}, #{restoreResult}, #{dataExtend}) #{relationCrossId}, #{optResult}, #{optResultDesc}, #{dataBatchTime}, #{restoreResult}, #{dataExtend})
</insert> </insert>
...@@ -73,7 +73,7 @@ ...@@ -73,7 +73,7 @@
values values
<foreach collection="list" item="entity" separator=","> <foreach collection="list" item="entity" separator=",">
(#{entity.crossId}, #{entity.schemeNo}, #{entity.dirType}, #{entity.turnType}, #{entity.offset}, #{entity.ringNo}, #{entity.phaseNo}, #{entity.phaseOrderId}, (#{entity.crossId}, #{entity.schemeNo}, #{entity.dirType}, #{entity.turnType}, #{entity.offset}, #{entity.ringNo}, #{entity.phaseNo}, #{entity.phaseOrderId},
#{entity.oriGreenTime}, #{entity.optTime}, #{entity.optType}, #{entity.optReason}, #{entity.startTime}, #{entity.endTime}, #{entity.isRelation}, #{entity.oriGreenTime}, #{entity.optTime}, #{entity.optType}, #{entity.optReason}, #{entity.startTime}, #{entity.endTime}, #{entity.relationFlag},
#{entity.relationCrossId}, #{entity.optResult}, #{entity.optResultDesc}, #{entity.dataBatchTime}, #{entity.restoreResult}, #{entity.dataExtend}) #{entity.relationCrossId}, #{entity.optResult}, #{entity.optResultDesc}, #{entity.dataBatchTime}, #{entity.restoreResult}, #{entity.dataExtend})
</foreach> </foreach>
</insert> </insert>
......
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