Commit b9153f7c authored by duanruiming's avatar duanruiming

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

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