Commit e861bbf3 authored by fengyasheng's avatar fengyasheng

干线周报 5.1干线优化总体分析修改为所有干线总和

parent c1d94601
...@@ -54,7 +54,7 @@ public class GreenWaveOptimizeAnalysisController { ...@@ -54,7 +54,7 @@ public class GreenWaveOptimizeAnalysisController {
public JsonViewObject getTotalityData(Integer year,Integer week,@RequestParam(required = false) String ids) { public JsonViewObject getTotalityData(Integer year,Integer week,@RequestParam(required = false) String ids) {
JsonViewObject jsonViewObject = JsonViewObject.newInstance(); JsonViewObject jsonViewObject = JsonViewObject.newInstance();
try { try {
List<GreenWaveOptimizeAnalysisResultResponseDTO> totalityData = analysisGreenWaveOptimizeWeekService.getTotalityData(year, week, ids); GreenWaveOptimizeAnalysisResultResponseDTO totalityData = analysisGreenWaveOptimizeWeekService.getTotalityData(year, week, ids);
jsonViewObject.success(totalityData); jsonViewObject.success(totalityData);
} catch (Exception e) { } catch (Exception e) {
jsonViewObject.fail(I18nResourceBundle.getConstants("GET_FAILED_MSG")); jsonViewObject.fail(I18nResourceBundle.getConstants("GET_FAILED_MSG"));
......
...@@ -52,7 +52,7 @@ public interface AnalysisGreenWaveOptimizeWeekMapper extends BaseMapper<Analysis ...@@ -52,7 +52,7 @@ public interface AnalysisGreenWaveOptimizeWeekMapper extends BaseMapper<Analysis
*/ */
void insertBatch(List<AnalysisGreenWaveOptimizeWeek> list); void insertBatch(List<AnalysisGreenWaveOptimizeWeek> list);
List<GreenWaveOptimizeAnalysisDataDTO> getTotalityData(@Param("yearWeek") Integer yearWeek); GreenWaveOptimizeAnalysisDataDTO getTotalityData(@Param("yearWeek") Integer yearWeek,@Param("greenIdList") List<Integer> greenIdList);
List<AnalysisGreenWaveOptimizeWeekVO> selectListByYearWeek(@Param("yearWeek") Integer yearWeek); List<AnalysisGreenWaveOptimizeWeekVO> selectListByYearWeek(@Param("yearWeek") Integer yearWeek);
} }
......
...@@ -53,7 +53,7 @@ public interface AnalysisGreenWaveOptimizeWeekService extends IService<AnalysisG ...@@ -53,7 +53,7 @@ public interface AnalysisGreenWaveOptimizeWeekService extends IService<AnalysisG
*/ */
void removes(List<Long> ids); void removes(List<Long> ids);
List<GreenWaveOptimizeAnalysisResultResponseDTO> getTotalityData(Integer year, Integer week, String ids); GreenWaveOptimizeAnalysisResultResponseDTO getTotalityData(Integer year, Integer week, String ids);
List<ImportGreenReportAnalysisResponseVO> getProblemDetail(Integer year, Integer week, String ids); List<ImportGreenReportAnalysisResponseVO> getProblemDetail(Integer year, Integer week, String ids);
} }
...@@ -102,7 +102,7 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -102,7 +102,7 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
private SimpleDateFormat format = new SimpleDateFormat("HH:mm"); private SimpleDateFormat format = new SimpleDateFormat("HH:mm");
@Override @Override
public List<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)); Integer yearWeekLast = Integer.valueOf(year + "" + (week - 1));
List<Integer> greenIdList = new ArrayList<>(); List<Integer> greenIdList = new ArrayList<>();
...@@ -116,131 +116,123 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys ...@@ -116,131 +116,123 @@ public class AnalysisGreenWaveOptimizeWeekServiceImpl extends ServiceImpl<Analys
.map(Integer::parseInt) // 转换为整数 .map(Integer::parseInt) // 转换为整数
.collect(Collectors.toList()); .collect(Collectors.toList());
} }
List<GreenWaveOptimizeAnalysisDataDTO> greenWaveOptimizeAnalysisDataVOS = analysisGreenWaveOptimizeWeekMapper.getTotalityData(yearWeek); GreenWaveOptimizeAnalysisDataDTO greenWaveOptimizeAnalysisDataDTO = analysisGreenWaveOptimizeWeekMapper.getTotalityData(yearWeek, greenIdList);
List<GreenWaveOptimizeAnalysisResultResponseDTO> resultResponseDTOList = new ArrayList<>();
for (Integer greenId : greenIdList) { GreenWaveOptimizeAnalysisResultResponseDTO optimizeAnalysisResultResponseDTO = new GreenWaveOptimizeAnalysisResultResponseDTO();
GreenWaveOptimizeAnalysisResultResponseDTO optimizeAnalysisResultResponseDTO = new GreenWaveOptimizeAnalysisResultResponseDTO(); List<GreenWaveOptimizeAnalysisDataVO> dataVOList = new ArrayList<>();
GreenwaveInfoPO greenwaveInfoPO = greenwaveInfoMapper.selectById(greenId); List<String> timeString = new ArrayList<>();
optimizeAnalysisResultResponseDTO.setGreenId(String.valueOf(greenId)); if (ObjectUtils.isEmpty(greenWaveOptimizeAnalysisDataDTO)) {
optimizeAnalysisResultResponseDTO.setGreenName(greenwaveInfoPO.getName()); optimizeAnalysisResultResponseDTO.setWeekOptimizeCount("0次");
List<GreenWaveOptimizeAnalysisDataVO> dataVOList = new ArrayList<>(); optimizeAnalysisResultResponseDTO.setWeekOptimizeDuration("0小时");
List<String> timeString = new ArrayList<>(); optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("无变化");
List<GreenWaveOptimizeAnalysisDataDTO> dataDTOS = greenWaveOptimizeAnalysisDataVOS.stream().filter(x -> { optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("无变化");
return x.getGreenId() == greenId; optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("无变化");
}).collect(Collectors.toList()); optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("无变化");
if (ObjectUtils.isEmpty(dataDTOS)) { optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("无变化");
optimizeAnalysisResultResponseDTO.setWeekOptimizeCount("0次"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("无变化");
optimizeAnalysisResultResponseDTO.setWeekOptimizeDuration("0小时"); } else {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("无变化"); optimizeAnalysisResultResponseDTO.setWeekOptimizeCount(String.valueOf(greenWaveOptimizeAnalysisDataDTO.getOptimizeCount()) + "次");
optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("无变化"); optimizeAnalysisResultResponseDTO.setWeekOptimizeDuration(String.valueOf(greenWaveOptimizeAnalysisDataDTO.getOptimizeDuration() / 60 / 60) + "小时");
optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("无变化"); GreenWaveOptimizeAnalysisDataDTO analysisDataDTO = greenWaveOptimizeAnalysisDataDTO;
optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("无变化"); GreenWaveOptimizeAnalysisDataVO analysisDataVO = new GreenWaveOptimizeAnalysisDataVO();
optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("无变化"); analysisDataVO.setCapacity(analysisDataDTO.getCapacity());
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("无变化"); analysisDataVO.setStopTimes(analysisDataDTO.getStopTimes());
analysisDataVO.setDelayTime(analysisDataDTO.getDelayTime());
analysisDataVO.setTravelTime(analysisDataDTO.getTravelTime());
analysisDataVO.setAvgSpeed(analysisDataDTO.getAvgSpeed());
dataVOList.add(getAnalysisDataLastVO(analysisDataVO));
timeString.add("本周");
timeString.add("上周");
GreenWaveOptimizeAnalysisDataVO analysisDataLastVO = new GreenWaveOptimizeAnalysisDataVO();
analysisDataLastVO.setCapacity(analysisDataDTO.getLastCapacity());
analysisDataLastVO.setStopTimes(analysisDataDTO.getLastStopTimes());
analysisDataLastVO.setDelayTime(analysisDataDTO.getLastDelayTime());
analysisDataLastVO.setTravelTime(analysisDataDTO.getLastTravelTime());
analysisDataLastVO.setAvgSpeed(analysisDataDTO.getLastAvgSpeed());
dataVOList.add(getAnalysisDataLastVO(analysisDataLastVO));
int weekCapacitySituation = 0;
long weekStopTimesSituation = 0;
int weekTravelTimeSituation = 0;
long weekDelayTimeSituation = 0;
long weekAvgSpeedSituation = 0;
//本周通行能力同比情况
if (analysisDataDTO.getLastCapacity() != 0) {
weekCapacitySituation = (analysisDataDTO.getCapacity() - analysisDataDTO.getLastCapacity()) * 100 / analysisDataDTO.getLastCapacity();
if (weekCapacitySituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("提升" + weekCapacitySituation + "%");
} else {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("降低" + Math.abs(weekCapacitySituation) + "%");
}
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekOptimizeCount(String.valueOf(dataDTOS.get(0).getOptimizeCount()) + "次"); optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("提升100%");
optimizeAnalysisResultResponseDTO.setWeekOptimizeDuration(String.valueOf(dataDTOS.get(0).getOptimizeDuration() / 60 / 60) + "小时"); }
GreenWaveOptimizeAnalysisDataDTO analysisDataDTO = dataDTOS.get(0); //本周通停车次数同比情况
GreenWaveOptimizeAnalysisDataVO analysisDataVO = new GreenWaveOptimizeAnalysisDataVO(); if (analysisDataDTO.getLastStopTimes() != 0) {
analysisDataVO.setCapacity(analysisDataDTO.getCapacity()); weekStopTimesSituation = Math.round((analysisDataDTO.getStopTimes() - analysisDataDTO.getLastStopTimes()) * 100 / analysisDataDTO.getLastStopTimes());
analysisDataVO.setStopTimes(analysisDataDTO.getStopTimes()); if (weekStopTimesSituation > 0) {
analysisDataVO.setDelayTime(analysisDataDTO.getDelayTime()); optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("增加" + weekStopTimesSituation + "%");
analysisDataVO.setTravelTime(analysisDataDTO.getTravelTime()); } else {
analysisDataVO.setAvgSpeed(analysisDataDTO.getAvgSpeed()); optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("减少" + Math.abs(weekStopTimesSituation) + "%");
dataVOList.add(getAnalysisDataLastVO(analysisDataVO)); }
timeString.add("本周"); }
timeString.add("上周"); //本周通行程时间数同比情况
GreenWaveOptimizeAnalysisDataVO analysisDataLastVO = new GreenWaveOptimizeAnalysisDataVO(); if (analysisDataDTO.getLastTravelTime() != 0) {
analysisDataLastVO.setCapacity(analysisDataDTO.getLastCapacity()); weekTravelTimeSituation = (analysisDataDTO.getTravelTime() - analysisDataDTO.getLastTravelTime()) * 100 / analysisDataDTO.getLastTravelTime();
analysisDataLastVO.setStopTimes(analysisDataDTO.getLastStopTimes()); if (weekTravelTimeSituation > 0) {
analysisDataLastVO.setDelayTime(analysisDataDTO.getLastDelayTime()); optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("增加" + weekTravelTimeSituation + "%");
analysisDataLastVO.setTravelTime(analysisDataDTO.getLastTravelTime()); } else {
analysisDataLastVO.setAvgSpeed(analysisDataDTO.getLastAvgSpeed()); optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("减少" + Math.abs(weekTravelTimeSituation) + "%");
dataVOList.add(getAnalysisDataLastVO(analysisDataLastVO)); }
int weekCapacitySituation = 0; }
long weekStopTimesSituation = 0; //本周通延误时间同比情况
int weekTravelTimeSituation = 0; if (analysisDataDTO.getLastDelayTime() != 0) {
long weekDelayTimeSituation = 0; weekDelayTimeSituation = Math.round((analysisDataDTO.getDelayTime() - analysisDataDTO.getLastDelayTime()) * 100 / analysisDataDTO.getLastDelayTime());
long weekAvgSpeedSituation = 0; if (weekDelayTimeSituation > 0) {
//本周通行能力同比情况 optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("增加" + weekDelayTimeSituation + "%");
if (analysisDataDTO.getLastCapacity() != 0) {
weekCapacitySituation = (analysisDataDTO.getCapacity() - analysisDataDTO.getLastCapacity()) * 100 / analysisDataDTO.getLastCapacity();
if (weekCapacitySituation > 0) {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("提升" + weekCapacitySituation + "%");
} else {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("降低" + Math.abs(weekCapacitySituation) + "%");
}
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekCapacitySituation("提升100%"); optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("减少" + Math.abs(weekDelayTimeSituation) + "%");
} }
//本周通停车次数同比情况 }
if (analysisDataDTO.getLastStopTimes() != 0) { //本周通平均速度同比情况
weekStopTimesSituation = Math.round((analysisDataDTO.getStopTimes() - analysisDataDTO.getLastStopTimes()) * 100 / analysisDataDTO.getLastStopTimes()); if (analysisDataDTO.getLastAvgSpeed() != 0) {
if (weekStopTimesSituation > 0) { weekAvgSpeedSituation = Math.round((analysisDataDTO.getAvgSpeed() - analysisDataDTO.getLastAvgSpeed()) * 100 / analysisDataDTO.getLastAvgSpeed());
optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("增加" + weekStopTimesSituation + "%"); if (weekAvgSpeedSituation > 0) {
} else { optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("提升" + weekAvgSpeedSituation + "%");
optimizeAnalysisResultResponseDTO.setWeekStopTimesSituation("减少" + Math.abs(weekStopTimesSituation) + "%"); } else {
} optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("降低" + Math.abs(weekAvgSpeedSituation) + "%");
} }
//本周通行程时间数同比情况 }
if (analysisDataDTO.getLastTravelTime() != 0) { //本周总体情况
weekTravelTimeSituation = (analysisDataDTO.getTravelTime() - analysisDataDTO.getLastTravelTime()) * 100 / analysisDataDTO.getLastTravelTime(); if (weekCapacitySituation >= 0 && weekTravelTimeSituation <= 0) {
if (weekTravelTimeSituation > 0) { if (weekCapacitySituation >= 5) {
optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("增加" + weekTravelTimeSituation + "%"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("明显提升");
} else { } else {
optimizeAnalysisResultResponseDTO.setWeekTravelTimeSituation("减少" + Math.abs(weekTravelTimeSituation) + "%"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有提升");
}
} }
//本周通延误时间同比情况 } else if (weekCapacitySituation >= 0 && weekTravelTimeSituation > 0) {
if (analysisDataDTO.getLastDelayTime() != 0) { if (weekCapacitySituation - weekTravelTimeSituation > 0) {
weekDelayTimeSituation = Math.round((analysisDataDTO.getDelayTime() - analysisDataDTO.getLastDelayTime()) * 100 / analysisDataDTO.getLastDelayTime()); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有提升");
if (weekDelayTimeSituation > 0) { } else {
optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("增加" + weekDelayTimeSituation + "%"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有下降");
} else {
optimizeAnalysisResultResponseDTO.setWeekDelayTimeSituation("减少" + Math.abs(weekDelayTimeSituation) + "%");
}
} }
//本周通平均速度同比情况 } else if (weekCapacitySituation < 0 && weekTravelTimeSituation <= 0) {
if (analysisDataDTO.getLastAvgSpeed() != 0) { if (weekCapacitySituation - weekTravelTimeSituation > 0) {
weekAvgSpeedSituation = Math.round((analysisDataDTO.getAvgSpeed() - analysisDataDTO.getLastAvgSpeed()) * 100 / analysisDataDTO.getLastAvgSpeed()); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有提升");
if (weekAvgSpeedSituation > 0) { } else {
optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("提升" + weekAvgSpeedSituation + "%"); optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有下降");
} else {
optimizeAnalysisResultResponseDTO.setWeekAvgSpeedSituation("降低" + Math.abs(weekAvgSpeedSituation) + "%");
}
} }
//本周总体情况 } else if (weekCapacitySituation < 0 && weekTravelTimeSituation > 0) {
if (weekCapacitySituation >= 0 && weekTravelTimeSituation <= 0) { if (Math.abs(weekCapacitySituation) >= 5) {
if (weekCapacitySituation >= 5) { optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("明显下降");
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("明显提升"); } else {
} else { optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有下降");
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有提升");
}
} else if (weekCapacitySituation >= 0 && weekTravelTimeSituation > 0) {
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) {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("明显下降");
} else {
optimizeAnalysisResultResponseDTO.setWeekTotalitySituation("略有下降");
}
} }
} }
optimizeAnalysisResultResponseDTO.setTimeList(timeString);
optimizeAnalysisResultResponseDTO.setDataList(dataVOList);
resultResponseDTOList.add(optimizeAnalysisResultResponseDTO);
} }
return resultResponseDTOList; optimizeAnalysisResultResponseDTO.setTimeList(timeString);
optimizeAnalysisResultResponseDTO.setDataList(dataVOList);
return optimizeAnalysisResultResponseDTO;
} }
private GreenWaveOptimizeAnalysisDataVO getAnalysisDataLastVO(GreenWaveOptimizeAnalysisDataVO analysisDataLastVO) { private GreenWaveOptimizeAnalysisDataVO getAnalysisDataLastVO(GreenWaveOptimizeAnalysisDataVO analysisDataLastVO) {
......
...@@ -173,16 +173,15 @@ ...@@ -173,16 +173,15 @@
<select id="getTotalityData" <select id="getTotalityData"
resultType="net.wanji.opt.controllerv2.report.vo.GreenWaveOptimizeAnalysisDataDTO"> resultType="net.wanji.opt.controllerv2.report.vo.GreenWaveOptimizeAnalysisDataDTO">
SELECT SELECT
green_id,
COALESCE(sum( optimize_count ),0) AS optimize_count, COALESCE(sum( optimize_count ),0) AS optimize_count,
COALESCE(sum( optimize_duration ),0) AS optimize_duration, COALESCE(sum( optimize_duration ),0) AS optimize_duration,
COALESCE (avg( capacity ),0) AS capacity, COALESCE (avg( capacity ),0) AS capacity,
COALESCE(sum( stop_times ),0) AS stop_times, COALESCE(avg( stop_times ),0) AS stop_times,
COALESCE(avg( delay_time ),0) AS delay_time, COALESCE(avg( delay_time ),0) AS delay_time,
COALESCE(avg( travel_time ),0) AS travel_time, COALESCE(avg( travel_time ),0) AS travel_time,
COALESCE(avg( speed ),0) AS avg_speed, COALESCE(avg( speed ),0) AS avg_speed,
COALESCE (avg( last_week_capacity ),0) AS last_capacity, COALESCE (avg( last_week_capacity ),0) AS last_capacity,
COALESCE(sum( last_week_stop_times ),0) AS last_stop_times, COALESCE(avg( last_week_stop_times ),0) AS last_stop_times,
COALESCE(avg( last_week_delay_time ),0) AS last_delay_time, COALESCE(avg( last_week_delay_time ),0) AS last_delay_time,
COALESCE(avg( last_week_travel_time ),0) AS last_travel_time, COALESCE(avg( last_week_travel_time ),0) AS last_travel_time,
COALESCE(avg( last_week_speed ),0) AS last_avg_speed COALESCE(avg( last_week_speed ),0) AS last_avg_speed
...@@ -190,8 +189,12 @@ ...@@ -190,8 +189,12 @@
t_analysis_green_wave_optimize_week t_analysis_green_wave_optimize_week
WHERE WHERE
year_week = #{yearWeek} year_week = #{yearWeek}
GROUP BY <if test="greenIdList != null">
green_id and green_id in
<foreach collection="greenIdList" open="(" separator="," close=")" item="greenId">
#{greenId}
</foreach>
</if>
</select> </select>
<select id="selectListByYearWeek" resultType="net.wanji.opt.controllerv2.report.vo.AnalysisGreenWaveOptimizeWeekVO"> <select id="selectListByYearWeek" resultType="net.wanji.opt.controllerv2.report.vo.AnalysisGreenWaveOptimizeWeekVO">
SELECT SELECT
......
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