Commit 5c91161c authored by duanruiming's avatar duanruiming

[update] review-阻塞list判断优化

parent f6282a24
package net.wanji.opt.service.impl; package net.wanji.opt.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.google.gson.GsonBuilder; import com.google.gson.GsonBuilder;
...@@ -24,6 +23,8 @@ import org.springframework.stereotype.Service; ...@@ -24,6 +23,8 @@ import org.springframework.stereotype.Service;
import java.util.*; import java.util.*;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static cn.hutool.core.collection.CollUtil.isNotEmpty;
/** /**
* @author Kent HAN * @author Kent HAN
* @date 2023/3/10 10:47 * @date 2023/3/10 10:47
...@@ -119,13 +120,13 @@ public class EvaluateServiceImpl implements EvaluateService { ...@@ -119,13 +120,13 @@ public class EvaluateServiceImpl implements EvaluateService {
EvaluateMetricsVO.EffusionRateElement effusionRateElement = new EvaluateMetricsVO.EffusionRateElement(); EvaluateMetricsVO.EffusionRateElement effusionRateElement = new EvaluateMetricsVO.EffusionRateElement();
effusionRateElement.setDir(dir); effusionRateElement.setDir(dir);
List<CrossDirDataRealtimePO> realtimeObj = dirObjMapRealtime.get(dir); List<CrossDirDataRealtimePO> realtimeObj = dirObjMapRealtime.get(dir);
if (CollectionUtil.isNotEmpty(realtimeObj)) { if (isNotEmpty(realtimeObj)) {
CrossDirDataRealtimePO crossDirDataRealtimePO = realtimeObj.get(0); CrossDirDataRealtimePO crossDirDataRealtimePO = realtimeObj.get(0);
Double effusionRate = crossDirDataRealtimePO.getEffusionRate(); Double effusionRate = crossDirDataRealtimePO.getEffusionRate();
effusionRateElement.setCurrentRate(effusionRate); effusionRateElement.setCurrentRate(effusionRate);
} }
List<CrossDirDataHistAvgBO> histObj = dirObjMapHist.get(dir); List<CrossDirDataHistAvgBO> histObj = dirObjMapHist.get(dir);
if (CollectionUtil.isNotEmpty(histObj)) { if (isNotEmpty(histObj)) {
CrossDirDataHistAvgBO crossDirDataHistAvgBO = histObj.get(0); CrossDirDataHistAvgBO crossDirDataHistAvgBO = histObj.get(0);
Double avgEffusionRate = crossDirDataHistAvgBO.getAvgEffusionRate(); Double avgEffusionRate = crossDirDataHistAvgBO.getAvgEffusionRate();
effusionRateElement.setCompareRate(avgEffusionRate); effusionRateElement.setCompareRate(avgEffusionRate);
...@@ -147,12 +148,12 @@ public class EvaluateServiceImpl implements EvaluateService { ...@@ -147,12 +148,12 @@ public class EvaluateServiceImpl implements EvaluateService {
EvaluateMetricsVO.TrafficIndexElement trafficIndexElement = new EvaluateMetricsVO.TrafficIndexElement(); EvaluateMetricsVO.TrafficIndexElement trafficIndexElement = new EvaluateMetricsVO.TrafficIndexElement();
trafficIndexElement.setDir(dir); trafficIndexElement.setDir(dir);
List<CrossDirDataRealtimePO> realtimeObj = dirObjMapRealtime.get(dir); List<CrossDirDataRealtimePO> realtimeObj = dirObjMapRealtime.get(dir);
if (CollectionUtil.isNotEmpty(realtimeObj)) { if (isNotEmpty(realtimeObj)) {
CrossDirDataRealtimePO crossDirDataRealtimePO = realtimeObj.get(0); CrossDirDataRealtimePO crossDirDataRealtimePO = realtimeObj.get(0);
trafficIndexElement.setCurrentIndex(crossDirDataRealtimePO.getTrafficIndex()); trafficIndexElement.setCurrentIndex(crossDirDataRealtimePO.getTrafficIndex());
} }
List<CrossDirDataHistAvgBO> histObj = dirObjMapHist.get(dir); List<CrossDirDataHistAvgBO> histObj = dirObjMapHist.get(dir);
if (CollectionUtil.isNotEmpty(histObj)) { if (isNotEmpty(histObj)) {
CrossDirDataHistAvgBO crossDirDataHistAvgBO = histObj.get(0); CrossDirDataHistAvgBO crossDirDataHistAvgBO = histObj.get(0);
trafficIndexElement.setCompareIndex(crossDirDataHistAvgBO.getAvgIndex()); trafficIndexElement.setCompareIndex(crossDirDataHistAvgBO.getAvgIndex());
} }
...@@ -173,12 +174,12 @@ public class EvaluateServiceImpl implements EvaluateService { ...@@ -173,12 +174,12 @@ public class EvaluateServiceImpl implements EvaluateService {
EvaluateMetricsVO.QueueLengthElement queueLengthElement = new EvaluateMetricsVO.QueueLengthElement(); EvaluateMetricsVO.QueueLengthElement queueLengthElement = new EvaluateMetricsVO.QueueLengthElement();
queueLengthElement.setDir(dir); queueLengthElement.setDir(dir);
List<CrossDirDataRealtimePO> realtimeObj = dirObjMapRealtime.get(dir); List<CrossDirDataRealtimePO> realtimeObj = dirObjMapRealtime.get(dir);
if (CollectionUtil.isNotEmpty(realtimeObj)) { if (isNotEmpty(realtimeObj)) {
CrossDirDataRealtimePO crossDirDataRealtimePO = realtimeObj.get(0); CrossDirDataRealtimePO crossDirDataRealtimePO = realtimeObj.get(0);
queueLengthElement.setCurrentLength(crossDirDataRealtimePO.getLength()); queueLengthElement.setCurrentLength(crossDirDataRealtimePO.getLength());
} }
List<CrossDirDataHistAvgBO> histObj = dirObjMapHist.get(dir); List<CrossDirDataHistAvgBO> histObj = dirObjMapHist.get(dir);
if (CollectionUtil.isNotEmpty(histObj)) { if (isNotEmpty(histObj)) {
CrossDirDataHistAvgBO crossDirDataHistAvgBO = histObj.get(0); CrossDirDataHistAvgBO crossDirDataHistAvgBO = histObj.get(0);
queueLengthElement.setCompareLength(crossDirDataHistAvgBO.getAvgQueueLength()); queueLengthElement.setCompareLength(crossDirDataHistAvgBO.getAvgQueueLength());
} }
...@@ -199,13 +200,13 @@ public class EvaluateServiceImpl implements EvaluateService { ...@@ -199,13 +200,13 @@ public class EvaluateServiceImpl implements EvaluateService {
EvaluateMetricsVO.CrossFlowElement crossFlowElement = new EvaluateMetricsVO.CrossFlowElement(); EvaluateMetricsVO.CrossFlowElement crossFlowElement = new EvaluateMetricsVO.CrossFlowElement();
crossFlowElement.setDir(dir); crossFlowElement.setDir(dir);
List<CrossDirDataRealtimePO> realtimeObj = dirObjMapRealtime.get(dir); List<CrossDirDataRealtimePO> realtimeObj = dirObjMapRealtime.get(dir);
if (CollectionUtil.isNotEmpty(realtimeObj)) { if (isNotEmpty(realtimeObj)) {
CrossDirDataRealtimePO crossDirDataRealtimePO = realtimeObj.get(0); CrossDirDataRealtimePO crossDirDataRealtimePO = realtimeObj.get(0);
crossFlowElement.setCurrentCapacity(crossDirDataRealtimePO.getCapacity()); crossFlowElement.setCurrentCapacity(crossDirDataRealtimePO.getCapacity());
crossFlowElement.setCurrentFlow(crossDirDataRealtimePO.getFlow()); crossFlowElement.setCurrentFlow(crossDirDataRealtimePO.getFlow());
} }
List<CrossDirDataHistAvgBO> histObj = dirObjMapHist.get(dir); List<CrossDirDataHistAvgBO> histObj = dirObjMapHist.get(dir);
if (CollectionUtil.isNotEmpty(histObj)) { if (isNotEmpty(histObj)) {
CrossDirDataHistAvgBO crossDirDataHistAvgBO = histObj.get(0); CrossDirDataHistAvgBO crossDirDataHistAvgBO = histObj.get(0);
crossFlowElement.setCompareCapacity(crossDirDataHistAvgBO.getAvgCapacity()); crossFlowElement.setCompareCapacity(crossDirDataHistAvgBO.getAvgCapacity());
crossFlowElement.setCompareFlow(crossDirDataHistAvgBO.getAvgFlow()); crossFlowElement.setCompareFlow(crossDirDataHistAvgBO.getAvgFlow());
...@@ -251,7 +252,7 @@ public class EvaluateServiceImpl implements EvaluateService { ...@@ -251,7 +252,7 @@ public class EvaluateServiceImpl implements EvaluateService {
long currentSeconds = DateUtil.currentSeconds(); long currentSeconds = DateUtil.currentSeconds();
long preSeconds = currentSeconds - (minutes + 5) * 60L; long preSeconds = currentSeconds - (minutes + 5) * 60L;
List<CrossDataHistPO> crossDataHistPOS = crossDataHistMapper.selectByCrossIdAndTimestamp(crossId, preSeconds); List<CrossDataHistPO> crossDataHistPOS = crossDataHistMapper.selectByCrossIdAndTimestamp(crossId, preSeconds);
if (CollectionUtil.isNotEmpty(crossDataHistPOS)) { if (isNotEmpty(crossDataHistPOS)) {
// 路口流量 // 路口流量
double avg = crossDataHistPOS.stream() double avg = crossDataHistPOS.stream()
.mapToInt(CrossDataHistPO::getFlow) .mapToInt(CrossDataHistPO::getFlow)
......
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