Commit f67f4c22 authored by zhoushiguang's avatar zhoushiguang

Merge remote-tracking branch 'origin/master'

parents 55f0893f 99cc37b2
...@@ -50,7 +50,12 @@ public class HisenseSchemeRingPhaseInfoTask { ...@@ -50,7 +50,12 @@ public class HisenseSchemeRingPhaseInfoTask {
for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) { for (GreenCrossDirDTO greenCrossDirDTO : greenCrossDirCache) {
Integer greenId = greenCrossDirDTO.getGreenId(); Integer greenId = greenCrossDirDTO.getGreenId();
String greenCrossId = greenCrossDirDTO.getCrossId(); String greenCrossId = greenCrossDirDTO.getCrossId();
String greenDirStr = greenCrossDirDTO.getGreenDir(); String greenDirStr = null;
if (Objects.equals(3, greenId)) {
greenDirStr = "1,3,5,7";
} else {
greenDirStr = greenCrossDirDTO.getGreenDir();
}
// 神思下发绿波时不需要优化 // 神思下发绿波时不需要优化
if (isGreenOptSend(greenId)) { if (isGreenOptSend(greenId)) {
continue; continue;
......
...@@ -54,11 +54,11 @@ ...@@ -54,11 +54,11 @@
select * from t_config_peak_hours; select * from t_config_peak_hours;
</select> </select>
<select id="selectGreenWaveWeekDataByTime" resultType="net.wanji.opt.entity.report.GreenWaveWeekData"> <select id="selectGreenWaveWeekDataByTime" resultType="net.wanji.opt.entity.report.GreenWaveWeekData">
SELECT green_id,road_direction,max(traffic_index) max_congest_index,avg(traffic_index) congest_index,sum(status>=3 and status &lt;=4)*60*5 congest_duration,avg(speed) speed,sum(trval_time) travel_time SELECT green_id,road_direction,max(traffic_index) max_congest_index,avg(traffic_index) congest_index,sum(status>=3 and status &lt;=4)*60*5 congest_duration,avg(speed) speed,avg(trval_time) travel_time
from t_greenwave_hist where start_time BETWEEN #{startDate} AND #{endDate} AND TIME( start_time ) BETWEEN #{startTime} AND #{endTime} GROUP BY green_id,road_direction from t_greenwave_hist where start_time BETWEEN #{startDate} AND #{endDate} AND TIME( start_time ) BETWEEN #{startTime} AND #{endTime} GROUP BY green_id,road_direction
</select> </select>
<select id="selectGreenWaveWeekData" resultType="net.wanji.opt.entity.report.GreenWaveWeekData"> <select id="selectGreenWaveWeekData" resultType="net.wanji.opt.entity.report.GreenWaveWeekData">
SELECT green_id,road_direction,max(traffic_index) max_congest_index,avg(traffic_index) congest_index,sum(status>=3 and status&lt;=4)*60*5 congest_duration,avg(speed) speed,sum(trval_time) travel_time SELECT green_id,road_direction,max(traffic_index) max_congest_index,avg(traffic_index) congest_index,sum(status>=3 and status&lt;=4)*60*5 congest_duration,avg(speed) speed,avg(trval_time) travel_time
from t_greenwave_hist where start_time BETWEEN #{startDate} AND #{endDate} GROUP BY green_id,road_direction from t_greenwave_hist where start_time BETWEEN #{startDate} AND #{endDate} GROUP BY green_id,road_direction
</select> </select>
......
...@@ -22,6 +22,6 @@ public class GreenReportProblemDetailVO { ...@@ -22,6 +22,6 @@ public class GreenReportProblemDetailVO {
private Double avgSpeed; private Double avgSpeed;
@ApiModelProperty(value = "行程时间,单位分钟", example = "10") @ApiModelProperty(value = "行程时间,单位分钟", example = "10")
private Integer travelTime; private double travelTime;
} }
\ No newline at end of file
...@@ -25,5 +25,11 @@ public class CrossRidLaneDTO { ...@@ -25,5 +25,11 @@ public class CrossRidLaneDTO {
private Integer outDir; private Integer outDir;
@ApiModelProperty(value = "驶入方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北" ) @ApiModelProperty(value = "驶入方向:1北;2东北;3东;4东南;5南;6西南;7西;8西北" )
private Integer inDir; private Integer inDir;
@ApiModelProperty(value = "车道类型:1路段车道;2进口车道;3出口车道;4左转弯待转区;6直行待行区" )
private Integer laneType;
@ApiModelProperty(value = "开始路口编号" )
private String startCrossId;
@ApiModelProperty(value = "结束路口编号" )
private String endCrossId;
} }
...@@ -139,13 +139,18 @@ public class TrendServiceV2Impl implements TrendServiceV2 { ...@@ -139,13 +139,18 @@ public class TrendServiceV2Impl implements TrendServiceV2 {
if (StringUtils.endsWithIgnoreCase(crossId, lastWeekCrossId)) { if (StringUtils.endsWithIgnoreCase(crossId, lastWeekCrossId)) {
if (trafficIndex > lastWeekTrafficIndex) { if (trafficIndex > lastWeekTrafficIndex) {
result.setTrafficIndexUpDown(1); result.setTrafficIndexUpDown(1);
} else { } else if (trafficIndex < lastWeekTrafficIndex){
result.setTrafficIndexUpDown(0); result.setTrafficIndexUpDown(0);
} else {
result.setTrafficIndexUpDown(2);
} }
if (queueLength > lastWeekQueueLength) { if (queueLength > lastWeekQueueLength) {
result.setQueueLengthUpDown(1); result.setQueueLengthUpDown(1);
} else { } else if (queueLength < lastWeekQueueLength) {
result.setQueueLengthUpDown(0); result.setQueueLengthUpDown(0);
} else {
result.setQueueLengthUpDown(2);
} }
} }
} }
...@@ -187,18 +192,24 @@ public class TrendServiceV2Impl implements TrendServiceV2 { ...@@ -187,18 +192,24 @@ public class TrendServiceV2Impl implements TrendServiceV2 {
if (trafficIndex > curTrafficIndex) { if (trafficIndex > curTrafficIndex) {
greenOptDTO.setTrafficIndexUpDown(1); greenOptDTO.setTrafficIndexUpDown(1);
} else { } else if (trafficIndex < curTrafficIndex){
greenOptDTO.setTrafficIndexUpDown(0); greenOptDTO.setTrafficIndexUpDown(0);
} else {
greenOptDTO.setTrafficIndexUpDown(2);
} }
if (speed > curSpeed.intValue()) { if (speed > curSpeed.intValue()) {
greenOptDTO.setSpeedUpDown(1); greenOptDTO.setSpeedUpDown(1);
} else { } else if (speed < curSpeed.intValue()) {
greenOptDTO.setSpeedUpDown(0); greenOptDTO.setSpeedUpDown(0);
} else {
greenOptDTO.setSpeedUpDown(2);
} }
if (travelTime > curTravelTime) { if (travelTime > curTravelTime) {
greenOptDTO.setTravelUpDown(1); greenOptDTO.setTravelUpDown(1);
} else { } else if (travelTime < curTravelTime) {
greenOptDTO.setTravelUpDown(0); greenOptDTO.setTravelUpDown(0);
} else {
greenOptDTO.setTravelUpDown(2);
} }
} }
......
...@@ -263,12 +263,20 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo ...@@ -263,12 +263,20 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo
//按拥堵指数降序排序 //按拥堵指数降序排序
// List<AnalysisGreenCongestionPeriodVO> periodVOS = voList.stream().sorted(Comparator.comparing(AnalysisGreenCongestionPeriodVO::getCongestIndex).reversed()) // List<AnalysisGreenCongestionPeriodVO> periodVOS = voList.stream().sorted(Comparator.comparing(AnalysisGreenCongestionPeriodVO::getCongestIndex).reversed())
// .collect(Collectors.toList()); // .collect(Collectors.toList());
// List<GreenReportProblemOverallDataVO> overallDataVOS = greenList.stream().sorted(Comparator.comparing(x -> {
// double congestIndexAll = 0;
// for (GreenWaveDirProblemDataVO dataVO : x.getList()) {
// congestIndexAll += dataVO.getCongestIndex();
// }
// return - congestIndexAll/x.getList().size();
// })).collect(Collectors.toList());
//按拥堵次数降序排序
List<GreenReportProblemOverallDataVO> overallDataVOS = greenList.stream().sorted(Comparator.comparing(x -> { List<GreenReportProblemOverallDataVO> overallDataVOS = greenList.stream().sorted(Comparator.comparing(x -> {
double congestIndexAll = 0; double congestCountAll = 0;
for (GreenWaveDirProblemDataVO dataVO : x.getList()) { for (GreenWaveDirProblemDataVO dataVO : x.getList()) {
congestIndexAll += dataVO.getCongestIndex(); congestCountAll += dataVO.getCongestCount();
} }
return - congestIndexAll/x.getList().size(); return - congestCountAll;
})).collect(Collectors.toList()); })).collect(Collectors.toList());
List<Integer> greenIds = new ArrayList<>(); List<Integer> greenIds = new ArrayList<>();
for (GreenReportProblemOverallDataVO periodVO : overallDataVOS) { for (GreenReportProblemOverallDataVO periodVO : overallDataVOS) {
...@@ -477,7 +485,7 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo ...@@ -477,7 +485,7 @@ public class AnalysisGreenCongestionPeriodServiceImpl implements AnalysisGreenCo
greenReportProblemDetail.setProblemSpan(getTimeString(periodVO)); greenReportProblemDetail.setProblemSpan(getTimeString(periodVO));
greenReportProblemDetail.setStatus(ConsgestionStatusEnum.getDesc(periodVO.getStatus())); greenReportProblemDetail.setStatus(ConsgestionStatusEnum.getDesc(periodVO.getStatus()));
greenReportProblemDetail.setAvgSpeed(Math.round(periodVO.getSpeed() * 100) / 100.0); greenReportProblemDetail.setAvgSpeed(Math.round(periodVO.getSpeed() * 100) / 100.0);
greenReportProblemDetail.setTravelTime(periodVO.getTravelTime() / 60); greenReportProblemDetail.setTravelTime(Math.round(periodVO.getTravelTime()*10 / 60.0)/10.0);
greenReportProblemDetail.setCongestIndex(Math.round(periodVO.getCongestIndex() * 100) / 100.0); greenReportProblemDetail.setCongestIndex(Math.round(periodVO.getCongestIndex() * 100) / 100.0);
return greenReportProblemDetail; return greenReportProblemDetail;
} }
......
...@@ -104,7 +104,6 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -104,7 +104,6 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
@Override @Override
public GreenWaveOptimizeAnalysisResultResponseDTO getTotalityData(Integer year, Integer week, String ids) { public GreenWaveOptimizeAnalysisResultResponseDTO getTotalityData(Integer year, Integer week, String ids) {
Integer yearWeek = Integer.valueOf(year + "" + week); Integer yearWeek = Integer.valueOf(year + "" + week);
Integer yearWeekLast = Integer.valueOf(year + "" + (week - 1));
List<Integer> greenIdList = new ArrayList<>(); List<Integer> greenIdList = new ArrayList<>();
if (ObjectUtils.isEmpty(ids)) { if (ObjectUtils.isEmpty(ids)) {
List<GreenwaveInfoPO> greenwaveInfoPOList = greenwaveInfoMapper.selectAll(); List<GreenwaveInfoPO> greenwaveInfoPOList = greenwaveInfoMapper.selectAll();
...@@ -124,12 +123,12 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -124,12 +123,12 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
if (ObjectUtils.isEmpty(greenWaveOptimizeAnalysisDataDTO)) { if (ObjectUtils.isEmpty(greenWaveOptimizeAnalysisDataDTO)) {
optimizeAnalysisResultResponseDTO.setWeekOptimizeCount("0次"); optimizeAnalysisResultResponseDTO.setWeekOptimizeCount("0次");
optimizeAnalysisResultResponseDTO.setWeekOptimizeDuration("0小时"); optimizeAnalysisResultResponseDTO.setWeekOptimizeDuration("0小时");
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("无变化"); optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("持平");
optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("无变化"); optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("持平");
optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("无变化"); optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("持平");
optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("无变化"); optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("持平");
optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("无变化"); optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("持平");
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("无变化"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("持平");
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekOptimizeCount(String.valueOf(greenWaveOptimizeAnalysisDataDTO.getOptimizeCount()) + "次"); optimizeAnalysisResultResponseDTO.setWeekOptimizeCount(String.valueOf(greenWaveOptimizeAnalysisDataDTO.getOptimizeCount()) + "次");
optimizeAnalysisResultResponseDTO.setWeekOptimizeDuration(String.valueOf(greenWaveOptimizeAnalysisDataDTO.getOptimizeDuration() / 60 / 60) + "小时"); optimizeAnalysisResultResponseDTO.setWeekOptimizeDuration(String.valueOf(greenWaveOptimizeAnalysisDataDTO.getOptimizeDuration() / 60 / 60) + "小时");
...@@ -160,6 +159,8 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -160,6 +159,8 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
weekCapacitySituation = (analysisDataDTO.getCapacity() - analysisDataDTO.getLastCapacity()) * 100 / analysisDataDTO.getLastCapacity(); weekCapacitySituation = (analysisDataDTO.getCapacity() - analysisDataDTO.getLastCapacity()) * 100 / analysisDataDTO.getLastCapacity();
if (weekCapacitySituation > 0) { if (weekCapacitySituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("提升" + weekCapacitySituation + "%"); optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("提升" + weekCapacitySituation + "%");
}else if (weekCapacitySituation == 0) {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("持平");
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("降低" + Math.abs(weekCapacitySituation) + "%"); optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("降低" + Math.abs(weekCapacitySituation) + "%");
} }
...@@ -171,6 +172,8 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -171,6 +172,8 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
weekStopTimesSituation = Math.round((analysisDataDTO.getStopTimes() - analysisDataDTO.getLastStopTimes()) * 100 / analysisDataDTO.getLastStopTimes()); weekStopTimesSituation = Math.round((analysisDataDTO.getStopTimes() - analysisDataDTO.getLastStopTimes()) * 100 / analysisDataDTO.getLastStopTimes());
if (weekStopTimesSituation > 0) { if (weekStopTimesSituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("增加" + weekStopTimesSituation + "%"); optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("增加" + weekStopTimesSituation + "%");
}else if (weekStopTimesSituation == 0) {
optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("持平");
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("减少" + Math.abs(weekStopTimesSituation) + "%"); optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("减少" + Math.abs(weekStopTimesSituation) + "%");
} }
...@@ -180,6 +183,8 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -180,6 +183,8 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
weekTravelTimeSituation = (analysisDataDTO.getTravelTime() - analysisDataDTO.getLastTravelTime()) * 100 / analysisDataDTO.getLastTravelTime(); weekTravelTimeSituation = (analysisDataDTO.getTravelTime() - analysisDataDTO.getLastTravelTime()) * 100 / analysisDataDTO.getLastTravelTime();
if (weekTravelTimeSituation > 0) { if (weekTravelTimeSituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("增加" + weekTravelTimeSituation + "%"); optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("增加" + weekTravelTimeSituation + "%");
}else if (weekTravelTimeSituation == 0) {
optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("持平");
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("减少" + Math.abs(weekTravelTimeSituation) + "%"); optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("减少" + Math.abs(weekTravelTimeSituation) + "%");
} }
...@@ -189,6 +194,8 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -189,6 +194,8 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
weekDelayTimeSituation = Math.round((analysisDataDTO.getDelayTime() - analysisDataDTO.getLastDelayTime()) * 100 / analysisDataDTO.getLastDelayTime()); weekDelayTimeSituation = Math.round((analysisDataDTO.getDelayTime() - analysisDataDTO.getLastDelayTime()) * 100 / analysisDataDTO.getLastDelayTime());
if (weekDelayTimeSituation > 0) { if (weekDelayTimeSituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("增加" + weekDelayTimeSituation + "%"); optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("增加" + weekDelayTimeSituation + "%");
}else if (weekDelayTimeSituation == 0) {
optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("持平");
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("减少" + Math.abs(weekDelayTimeSituation) + "%"); optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("减少" + Math.abs(weekDelayTimeSituation) + "%");
} }
...@@ -198,30 +205,20 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -198,30 +205,20 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
weekAvgSpeedSituation = Math.round((analysisDataDTO.getAvgSpeed() - analysisDataDTO.getLastAvgSpeed()) * 100 / analysisDataDTO.getLastAvgSpeed()); weekAvgSpeedSituation = Math.round((analysisDataDTO.getAvgSpeed() - analysisDataDTO.getLastAvgSpeed()) * 100 / analysisDataDTO.getLastAvgSpeed());
if (weekAvgSpeedSituation > 0) { if (weekAvgSpeedSituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("提升" + weekAvgSpeedSituation + "%"); optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("提升" + weekAvgSpeedSituation + "%");
}else if (weekAvgSpeedSituation == 0) {
optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("持平");
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("降低" + Math.abs(weekAvgSpeedSituation) + "%"); optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("降低" + Math.abs(weekAvgSpeedSituation) + "%");
} }
} }
//本周总体情况 //本周总体情况
if (weekCapacitySituation >= 0 && weekTravelTimeSituation <= 0) { if (weekCapacitySituation >= 0) {
if (weekCapacitySituation >= 5) { if (weekCapacitySituation >= 5) {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("明显提升"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("明显提升");
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有提升"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有提升");
} }
} else if (weekCapacitySituation >= 0 && weekTravelTimeSituation > 0) { } else{
if (weekCapacitySituation - weekTravelTimeSituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有提升");
} else {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有下降");
}
} else if (weekCapacitySituation < 0 && weekTravelTimeSituation <= 0) {
if (weekCapacitySituation - weekTravelTimeSituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有提升");
} else {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有下降");
}
} else if (weekCapacitySituation < 0 && weekTravelTimeSituation > 0) {
if (Math.abs(weekCapacitySituation) >= 5) { if (Math.abs(weekCapacitySituation) >= 5) {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("明显下降"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("明显下降");
} else { } else {
......
...@@ -359,24 +359,24 @@ public class GreenWaveWeekDataServiceImpl extends ServiceImpl<GreenWaveWeekDataM ...@@ -359,24 +359,24 @@ public class GreenWaveWeekDataServiceImpl extends ServiceImpl<GreenWaveWeekDataM
greenReportSamePeriodData.setPeakFlow(greenWaveWeekData.getFlow()); greenReportSamePeriodData.setPeakFlow(greenWaveWeekData.getFlow());
greenReportSamePeriodData.setCongestIndex(Math.round(greenWaveWeekData.getCongestIndex()*100)/100.0); greenReportSamePeriodData.setCongestIndex(Math.round(greenWaveWeekData.getCongestIndex()*100)/100.0);
greenReportSamePeriodData.setAvgSpeed(Math.round(greenWaveWeekData.getSpeed()*100)/100.0); greenReportSamePeriodData.setAvgSpeed(Math.round(greenWaveWeekData.getSpeed()*100)/100.0);
greenReportSamePeriodData.setTravelTime(Double.valueOf(greenWaveWeekData.getTravelTime())); greenReportSamePeriodData.setTravelTime(Math.round(greenWaveWeekData.getTravelTime()*100/60.0)/100.0);
double speed = greenWaveWeekData.getSpeed() - waveWeekData.getSpeed(); double speed = greenWaveWeekData.getSpeed() - waveWeekData.getSpeed();
double flow = greenWaveWeekData.getFlow() - waveWeekData.getFlow(); double flow = greenWaveWeekData.getFlow() - waveWeekData.getFlow();
double travelTime = greenWaveWeekData.getTravelTime() - waveWeekData.getTravelTime(); double travelTime = greenWaveWeekData.getTravelTime() - waveWeekData.getTravelTime();
double congestIndex = greenWaveWeekData.getCongestIndex() - waveWeekData.getCongestIndex(); double congestIndex = greenWaveWeekData.getCongestIndex() - waveWeekData.getCongestIndex();
if(flow<0){ if(flow<0){
samePeriodData.setAmPeakSituation("减"); samePeriodData.setAmPeakSituation("减");
}else if(flow == 0){ }else if(flow == 0){
samePeriodData.setAmPeakSituation("相等"); samePeriodData.setAmPeakSituation("相等");
}else { }else {
samePeriodData.setAmPeakSituation("增加"); samePeriodData.setAmPeakSituation("增加");
} }
if(travelTime<0){ if(travelTime<0){
samePeriodData.setAmTravelTimeSituation("减少"); samePeriodData.setAmTravelTimeSituation("减少"+Math.abs(travelTime)+"s");
}else if(travelTime == 0){ }else if(travelTime == 0){
samePeriodData.setAmTravelTimeSituation("相等"); samePeriodData.setAmTravelTimeSituation("相等");
}else { }else {
samePeriodData.setAmTravelTimeSituation("增加"); samePeriodData.setAmTravelTimeSituation("增加"+Math.abs(travelTime)+"s");
} }
if(waveWeekData.getSpeed()!=0){ if(waveWeekData.getSpeed()!=0){
greenReportSamePeriodData.setAvgSpeedRatio(Math.round((speed/waveWeekData.getSpeed()*10000))/100.0); greenReportSamePeriodData.setAvgSpeedRatio(Math.round((speed/waveWeekData.getSpeed()*10000))/100.0);
...@@ -413,24 +413,24 @@ public class GreenWaveWeekDataServiceImpl extends ServiceImpl<GreenWaveWeekDataM ...@@ -413,24 +413,24 @@ public class GreenWaveWeekDataServiceImpl extends ServiceImpl<GreenWaveWeekDataM
greenReportSamePeriodData.setPeakFlow(greenWaveWeekData.getFlow()); greenReportSamePeriodData.setPeakFlow(greenWaveWeekData.getFlow());
greenReportSamePeriodData.setCongestIndex(Math.round(greenWaveWeekData.getCongestIndex()*100)/100.0); greenReportSamePeriodData.setCongestIndex(Math.round(greenWaveWeekData.getCongestIndex()*100)/100.0);
greenReportSamePeriodData.setAvgSpeed(Math.round(greenWaveWeekData.getSpeed()*100)/100.0); greenReportSamePeriodData.setAvgSpeed(Math.round(greenWaveWeekData.getSpeed()*100)/100.0);
greenReportSamePeriodData.setTravelTime(Double.valueOf(greenWaveWeekData.getTravelTime())); greenReportSamePeriodData.setTravelTime(Math.round(greenWaveWeekData.getTravelTime()*100/60.0)/100.0);
double speed = greenWaveWeekData.getSpeed() - waveWeekData.getSpeed(); double speed = greenWaveWeekData.getSpeed() - waveWeekData.getSpeed();
double flow = greenWaveWeekData.getFlow() - waveWeekData.getFlow(); double flow = greenWaveWeekData.getFlow() - waveWeekData.getFlow();
double travelTime = greenWaveWeekData.getTravelTime() - waveWeekData.getTravelTime(); double travelTime = greenWaveWeekData.getTravelTime() - waveWeekData.getTravelTime();
double congestIndex = greenWaveWeekData.getCongestIndex() - waveWeekData.getCongestIndex(); double congestIndex = greenWaveWeekData.getCongestIndex() - waveWeekData.getCongestIndex();
if(flow<0){ if(flow<0){
samePeriodData.setPmPeakSituation("减"); samePeriodData.setPmPeakSituation("减");
}else if(flow == 0){ }else if(flow == 0){
samePeriodData.setPmPeakSituation("相等"); samePeriodData.setPmPeakSituation("相等");
}else { }else {
samePeriodData.setPmPeakSituation("增加"); samePeriodData.setPmPeakSituation("增加");
} }
if(travelTime<0){ if(travelTime<0){
samePeriodData.setPmTravelTimeSituation("减少"); samePeriodData.setPmTravelTimeSituation("减少"+Math.abs(travelTime)+"s");
}else if(travelTime == 0){ }else if(travelTime == 0){
samePeriodData.setPmTravelTimeSituation("相等"); samePeriodData.setPmTravelTimeSituation("相等");
}else { }else {
samePeriodData.setPmTravelTimeSituation("增加"); samePeriodData.setPmTravelTimeSituation("增加"+Math.abs(travelTime)+"s");
} }
if(waveWeekData.getSpeed()!=0){ if(waveWeekData.getSpeed()!=0){
greenReportSamePeriodData.setAvgSpeedRatio(Math.round((speed/waveWeekData.getSpeed()*10000))/100.0); greenReportSamePeriodData.setAvgSpeedRatio(Math.round((speed/waveWeekData.getSpeed()*10000))/100.0);
...@@ -467,7 +467,7 @@ public class GreenWaveWeekDataServiceImpl extends ServiceImpl<GreenWaveWeekDataM ...@@ -467,7 +467,7 @@ public class GreenWaveWeekDataServiceImpl extends ServiceImpl<GreenWaveWeekDataM
greenReportSamePeriodData.setPeakFlow(greenWaveWeekData.getFlow()); greenReportSamePeriodData.setPeakFlow(greenWaveWeekData.getFlow());
greenReportSamePeriodData.setCongestIndex(Math.round(greenWaveWeekData.getCongestIndex()*100)/100.0); greenReportSamePeriodData.setCongestIndex(Math.round(greenWaveWeekData.getCongestIndex()*100)/100.0);
greenReportSamePeriodData.setAvgSpeed(Math.round(greenWaveWeekData.getSpeed()*100)/100.0); greenReportSamePeriodData.setAvgSpeed(Math.round(greenWaveWeekData.getSpeed()*100)/100.0);
greenReportSamePeriodData.setTravelTime(Double.valueOf(greenWaveWeekData.getTravelTime())); greenReportSamePeriodData.setTravelTime(Math.round(greenWaveWeekData.getTravelTime()*100/60.0)/100.0);
double speed = greenWaveWeekData.getSpeed() - waveWeekData.getSpeed(); double speed = greenWaveWeekData.getSpeed() - waveWeekData.getSpeed();
double flow = greenWaveWeekData.getFlow() - waveWeekData.getFlow(); double flow = greenWaveWeekData.getFlow() - waveWeekData.getFlow();
double travelTime = greenWaveWeekData.getTravelTime() - waveWeekData.getTravelTime(); double travelTime = greenWaveWeekData.getTravelTime() - waveWeekData.getTravelTime();
......
...@@ -469,11 +469,11 @@ public class StrategyPriorityServiceImpl extends ServiceImpl<StrategyPriorityMap ...@@ -469,11 +469,11 @@ public class StrategyPriorityServiceImpl extends ServiceImpl<StrategyPriorityMap
String trunkName = infos.get(0).getWaveName(); String trunkName = infos.get(0).getWaveName();
// 按路口 ID 分组并合并日计划详情 // 按干线 ID 分组并合并日计划详情
Map<String, Set<String>> crossGroupedDetails = infos.stream() Map<Integer, Set<String>> crossGroupedDetails = infos.stream()
.filter(info -> info.getDailyPlanDetails() != null) .filter(info -> info.getDailyPlanDetails() != null)
.collect(Collectors.groupingBy( .collect(Collectors.groupingBy(
StrategyPriorityDailyInfo::getCrossId, StrategyPriorityDailyInfo::getGreenId,
Collectors.mapping(StrategyPriorityDailyInfo::getDailyPlanDetails, Collectors.toSet()))); // 去重 Collectors.mapping(StrategyPriorityDailyInfo::getDailyPlanDetails, Collectors.toSet()))); // 去重
// 合并每个路口的日计划详情 // 合并每个路口的日计划详情
......
...@@ -401,7 +401,7 @@ ...@@ -401,7 +401,7 @@
t2.daily_plan_details as dailyPlanDetails t2.daily_plan_details as dailyPlanDetails
FROM t_greenwave_info t4 FROM t_greenwave_info t4
LEFT JOIN t_greenwave_cross t1 on t1.green_id = t4.id LEFT JOIN t_greenwave_cross t1 on t1.green_id = t4.id
LEFT JOIN t_strategy_priority_daily_info t2 on t1.cross_id = t2.cross_id and t2.type=2 LEFT JOIN t_strategy_priority_daily_info t2 on t1.green_id = t2.green_id and t2.type=2
LEFT JOIN t_base_cross_info t3 on t1.cross_id = t3.id LEFT JOIN t_base_cross_info t3 on t1.cross_id = t3.id
</select> </select>
<select id="selectGreenPriorityTable" parameterType="map" resultType="net.wanji.opt.entity.strategy.StrategyPriorityConfig"> <select id="selectGreenPriorityTable" parameterType="map" resultType="net.wanji.opt.entity.strategy.StrategyPriorityConfig">
......
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