Commit 1ea1cf93 authored by duanruiming's avatar duanruiming

[add] 重点路口流量问题

parent 275e5985
...@@ -130,8 +130,7 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService { ...@@ -130,8 +130,7 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService {
vo.setStartTime(controlTime); vo.setStartTime(controlTime);
String crossGreenDetail = entity.getCrossGreenDetail(); String crossGreenDetail = entity.getCrossGreenDetail();
Integer cycle = entity.getCycle(); Integer cycle = entity.getCycle();
List<GreenBeltInfoVO.CrossGreenDetail> crossGreenDetails = mapper.readValue(crossGreenDetail, new TypeReference<List<GreenBeltInfoVO.CrossGreenDetail>>() { List<GreenBeltInfoVO.CrossGreenDetail> crossGreenDetails = mapper.readValue(crossGreenDetail, new TypeReference<List<GreenBeltInfoVO.CrossGreenDetail>>() {});
});
if (!CollectionUtils.isEmpty(crossGreenDetails)) { if (!CollectionUtils.isEmpty(crossGreenDetails)) {
List<GreenBeltInfoVO.CrossGreenDetail> keyCrossDetail = crossGreenDetails.stream().filter(details -> StringUtils.equalsIgnoreCase(keyCross, details.getCrossId())).collect(Collectors.toList()); List<GreenBeltInfoVO.CrossGreenDetail> keyCrossDetail = crossGreenDetails.stream().filter(details -> StringUtils.equalsIgnoreCase(keyCross, details.getCrossId())).collect(Collectors.toList());
if (!CollectionUtils.isEmpty(keyCrossDetail)) { if (!CollectionUtils.isEmpty(keyCrossDetail)) {
...@@ -159,7 +158,7 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService { ...@@ -159,7 +158,7 @@ public class GreenBeltServiceImpl implements GreenBeltInfoService {
Integer flow = crossDataHistPO.getFlow(); Integer flow = crossDataHistPO.getFlow();
GreenBeltKeyCrossFlowTimeVO resultVO = new GreenBeltKeyCrossFlowTimeVO(); GreenBeltKeyCrossFlowTimeVO resultVO = new GreenBeltKeyCrossFlowTimeVO();
resultVO.setStartTime(minuteDate); resultVO.setStartTime(minuteDate);
resultVO.setFlow(0); resultVO.setFlow(flow);
resultVO.setGreenTimeRatio(0.0); resultVO.setGreenTimeRatio(0.0);
resultVO.setCrossId(tempCrossId); resultVO.setCrossId(tempCrossId);
resultVO.setDirName("未执行"); resultVO.setDirName("未执行");
......
...@@ -103,12 +103,12 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService { ...@@ -103,12 +103,12 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
@Override @Override
public List<GreenBeltStopTimesQueueLengthVO> greenBeltStopTimeQueueLength(Integer greenId) { public List<GreenBeltStopTimesQueueLengthVO> greenBeltStopTimeQueueLength(Integer greenId) {
long currentTimeMillis = System.currentTimeMillis();
LambdaQueryWrapper<GreenwaveHistPO> queryWrapper = new LambdaQueryWrapper(); LambdaQueryWrapper<GreenwaveHistPO> queryWrapper = new LambdaQueryWrapper();
queryWrapper.eq(GreenwaveHistPO::getGreenId, greenId); queryWrapper.eq(GreenwaveHistPO::getGreenId, greenId);
// 查询两个小时之前的 LocalDate currentDate = LocalDate.now();
Integer startTime = (int) (currentTimeMillis / 1000) - 3600 * 2; LocalTime startTime = LocalTime.MIDNIGHT;
queryWrapper.ge(GreenwaveHistPO::getStartTime, new Date(startTime * 1000L)); LocalDateTime startOfDay = LocalDateTime.of(currentDate, startTime);
queryWrapper.ge(GreenwaveHistPO::getStartTime, startOfDay);
List<GreenwaveHistPO> greenwaveHistPOS = greenwaveHistMapper.selectList(queryWrapper); List<GreenwaveHistPO> greenwaveHistPOS = greenwaveHistMapper.selectList(queryWrapper);
List<GreenBeltStopTimesQueueLengthVO> results = new ArrayList<>(); List<GreenBeltStopTimesQueueLengthVO> results = new ArrayList<>();
if (!CollectionUtils.isEmpty(greenwaveHistPOS)) { if (!CollectionUtils.isEmpty(greenwaveHistPOS)) {
...@@ -120,6 +120,7 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService { ...@@ -120,6 +120,7 @@ public class StrategyGreenBeltServiceImpl implements StrategyGreenBeltService {
vo.setStopTimes(greenwaveHistPO.getStopTimes()); vo.setStopTimes(greenwaveHistPO.getStopTimes());
vo.setCordQueueRatio(Objects.isNull(greenwaveHistPO.getCordQueueRatio()) ? 0.0 : greenwaveHistPO.getCordQueueRatio() * 100); vo.setCordQueueRatio(Objects.isNull(greenwaveHistPO.getCordQueueRatio()) ? 0.0 : greenwaveHistPO.getCordQueueRatio() * 100);
vo.setTravelTime(greenwaveHistPO.getTrvalTime()); vo.setTravelTime(greenwaveHistPO.getTrvalTime());
vo.setRoadDirection(GreenBeltDirEnum.getDesc(greenwaveHistPO.getRoadDirection()));
results.add(vo); results.add(vo);
} }
} }
......
...@@ -37,28 +37,28 @@ public class CrossMonitorTask { ...@@ -37,28 +37,28 @@ public class CrossMonitorTask {
* 路口实时监测 * 路口实时监测
* *
*/ */
@Scheduled(fixedRate = 1 * 60 * 1000) //@Scheduled(fixedRate = 1 * 60 * 1000)
public void realtimeMonitor() { //public void realtimeMonitor() {
log.info("路口实时监测任务..."); // log.info("路口实时监测任务...");
// 获取路口实时监测数据 // 获取路口实时监测数据
List<CrossDataRealtimePO> crossDataRealtimePOList = listCrossDataRealtime(); //List<CrossDataRealtimePO> crossDataRealtimePOList = listCrossDataRealtime();
log.info("路口实时数据:{}条", crossDataRealtimePOList.size()); //log.info("路口实时数据:{}条", crossDataRealtimePOList.size());
// 测试时无数据暂时注释 // 测试时无数据暂时注释
// if(crossDataRealtimePOList.isEmpty()) { // if(crossDataRealtimePOList.isEmpty()) {
// return ; // return ;
// } // }
// 获取所有信控路口异常数据(失衡/拥堵/溢出/死锁) // 获取所有信控路口异常数据(失衡/拥堵/溢出/死锁)
List<CrossDataRealtimePO> abnormalCrossList = listAbnormalCross(crossDataRealtimePOList); //List<CrossDataRealtimePO> abnormalCrossList = listAbnormalCross(crossDataRealtimePOList);
log.info("加载异常路口:{}条", abnormalCrossList.size()); //log.info("加载异常路口:{}条", abnormalCrossList.size());
// if(abnormalCrossList.isEmpty()) { // if(abnormalCrossList.isEmpty()) {
// return ; // return ;
// } // }
// 调用路口实时优化 // 调用路口实时优化
crossOptimizeService.realtimeOptimize(abnormalCrossList, crossDataRealtimePOList); //crossOptimizeService.realtimeOptimize(abnormalCrossList, crossDataRealtimePOList);
} //}
/** /**
* 获取异常路口数据 * 获取异常路口数据
......
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