Commit e861bbf3 authored by fengyasheng's avatar fengyasheng

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

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