diff --git a/zc-business/src/main/java/com/zc/business/controller/DcTrafficSurveyDataController.java b/zc-business/src/main/java/com/zc/business/controller/DcTrafficSurveyDataController.java index 6509d668..0e9b9804 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcTrafficSurveyDataController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcTrafficSurveyDataController.java @@ -21,6 +21,10 @@ import com.ruoyi.common.core.redis.RedisCache; import com.ruoyi.system.domain.SysLogininfor; import com.zc.business.constant.RedisKeyConstants; import com.zc.business.domain.*; +import com.zc.business.domain.export.DcTrafficVolumeCarTypeDataByWeek; +import com.zc.business.domain.export.DcTrafficVolumeDataByWeek; +import com.zc.business.domain.export.DcTrafficVolumeDirectionCarTypeDataByWeek; +import com.zc.business.domain.export.DcTrafficVolumeDirectionDataByWeek; import com.zc.business.enums.UniversalEnum; import com.zc.common.core.httpclient.exception.HttpException; import io.swagger.v3.oas.annotations.Parameter; @@ -425,6 +429,15 @@ public class DcTrafficSurveyDataController extends BaseController cell.setCellValue("合计"); cell.setCellStyle(headerStyle); + if (dcTrafficSurveyData.getType().equals("week")){ + cell = row.createCell(i + 3); + cell.setCellValue("周平均"); + cell.setCellStyle(headerStyle); + cell = row.createCell(i + 4); + cell.setCellValue("日均"); + cell.setCellStyle(headerStyle); + } + for (int j = 0; j < rowList.size(); j++) { Row subHeaderRow = sheet.createRow(j+1); @@ -444,6 +457,15 @@ public class DcTrafficSurveyDataController extends BaseController cell = subHeaderRow.createCell(k+2); cell.setCellValue(rowList.get(j).get("total").toString()); cell.setCellStyle(dataStyle); + + if (dcTrafficSurveyData.getType().equals("week")){ + cell = subHeaderRow.createCell(k+3); + cell.setCellValue(rowList.get(j).get("avgWeek").toString()); + cell.setCellStyle(dataStyle); + cell = subHeaderRow.createCell(k+4); + cell.setCellValue(rowList.get(j).get("avgDay").toString()); + cell.setCellStyle(dataStyle); + } } @@ -513,22 +535,56 @@ public class DcTrafficSurveyDataController extends BaseController AjaxResult ajaxResult = dcTrafficSurveyDataService.selectComprehensiveData(dcTrafficSurveyDataQueryParams); if (ajaxResult.get("code").equals(UniversalEnum.TWO_HUNDRED.getNumber())) { if (dcTrafficSurveyDataQueryParams.getDataType().equals("1")){ + if (dcTrafficSurveyDataQueryParams.getDirection().equals("2") && dcTrafficSurveyDataQueryParams.getCarType().equals("1")) { List dcTrafficVolumeData = (List) ajaxResult.get("data"); - ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeData.class); - util.exportExcel(response, dcTrafficVolumeData, "站点查询"); + if (dcTrafficSurveyDataQueryParams.getType().equals("5")){ + ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeDataByWeek.class); + List exportList = dcTrafficVolumeData.stream() + .map(DcTrafficVolumeDataByWeek::new) + .collect(Collectors.toList()); + util.exportExcel(response, exportList, "站点查询"); + } else { + ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeData.class); + util.exportExcel(response, dcTrafficVolumeData, "站点查询"); + } } else if (dcTrafficSurveyDataQueryParams.getDirection().equals("2") && dcTrafficSurveyDataQueryParams.getCarType().equals("2")) { List dcTrafficVolumeData = (List) ajaxResult.get("data"); - ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeCarTypeData.class); - util.exportExcel(response, dcTrafficVolumeData, "站点查询"); + if (dcTrafficSurveyDataQueryParams.getType().equals("5")) { + ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeCarTypeDataByWeek.class); + List exportList = dcTrafficVolumeData.stream() + .map(DcTrafficVolumeCarTypeDataByWeek::new) + .collect(Collectors.toList()); + util.exportExcel(response, exportList, "站点查询"); + } else { + ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeCarTypeData.class); + util.exportExcel(response, dcTrafficVolumeData, "站点查询"); + } } else if (dcTrafficSurveyDataQueryParams.getDirection().equals("1") && dcTrafficSurveyDataQueryParams.getCarType().equals("1")) { List dcTrafficVolumeData = (List) ajaxResult.get("data"); - ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeDirectionData.class); - util.exportExcel(response, dcTrafficVolumeData, "站点查询"); + + if (dcTrafficSurveyDataQueryParams.getType().equals("5")) { + ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeDirectionDataByWeek.class); + List exportList = dcTrafficVolumeData.stream() + .map(DcTrafficVolumeDirectionDataByWeek::new) + .collect(Collectors.toList()); + util.exportExcel(response, exportList, "站点查询"); + } else { + ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeDirectionData.class); + util.exportExcel(response, dcTrafficVolumeData, "站点查询"); + } } else if (dcTrafficSurveyDataQueryParams.getDirection().equals("1") && dcTrafficSurveyDataQueryParams.getCarType().equals("2")) { List dcTrafficVolumeData = (List) ajaxResult.get("data"); - ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeDirectionCarTypeData.class); - util.exportExcel(response, dcTrafficVolumeData, "站点查询"); + if (dcTrafficSurveyDataQueryParams.getType().equals("5")) { + ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeDirectionCarTypeDataByWeek.class); + List exportList = dcTrafficVolumeData.stream() + .map(DcTrafficVolumeDirectionCarTypeDataByWeek::new) + .collect(Collectors.toList()); + util.exportExcel(response, exportList, "站点查询"); + } else { + ExcelUtil util = new ExcelUtil<>(DcTrafficVolumeDirectionCarTypeData.class); + util.exportExcel(response, dcTrafficVolumeData, "站点查询"); + } } } else { if (dcTrafficSurveyDataQueryParams.getDirection().equals("2") && dcTrafficSurveyDataQueryParams.getCarType().equals("1")) { diff --git a/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeCarTypeData.java b/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeCarTypeData.java index d884ca8e..ddb741ff 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeCarTypeData.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeCarTypeData.java @@ -46,6 +46,15 @@ public class DcTrafficVolumeCarTypeData extends BaseEntity @Excel(name = "合计") private Integer trafficVolume; + /** 周日均 */ + private Integer avgDailyTrafficVolume; + + /** 同比增长率 */ + private String yoyGrowthRate; + + /** 环比增长率 */ + private String momGrowthRate; + public Long getId() { return id; } @@ -118,6 +127,30 @@ public class DcTrafficVolumeCarTypeData extends BaseEntity this.goodsCarRatio = goodsCarRatio; } + public Integer getAvgDailyTrafficVolume() { + return avgDailyTrafficVolume; + } + + public void setAvgDailyTrafficVolume(Integer avgDailyTrafficVolume) { + this.avgDailyTrafficVolume = avgDailyTrafficVolume; + } + + public String getYoyGrowthRate() { + return yoyGrowthRate; + } + + public void setYoyGrowthRate(String yoyGrowthRate) { + this.yoyGrowthRate = yoyGrowthRate; + } + + public String getMomGrowthRate() { + return momGrowthRate; + } + + public void setMomGrowthRate(String momGrowthRate) { + this.momGrowthRate = momGrowthRate; + } + public DcTrafficVolumeCarTypeData(){} public DcTrafficVolumeCarTypeData(Integer initData){ diff --git a/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeData.java b/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeData.java index ea6d800d..6a527aa4 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeData.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeData.java @@ -92,6 +92,16 @@ public class DcTrafficVolumeData extends BaseEntity // @Excel(name = "拖拉机") private Integer tractorTrafficVolume; + /** 周日均 */ +// @Excel(name = "周日均") + private Integer avgDailyTrafficVolume; + + /** 同比增长率 */ + private String yoyGrowthRate; + + /** 环比增长率 */ + private String momGrowthRate; + /** 合计 */ @Excel(name = "合计") private Integer trafficVolume; @@ -256,6 +266,30 @@ public class DcTrafficVolumeData extends BaseEntity this.extraLargeTrucksTrafficVolumeRatio = extraLargeTrucksTrafficVolumeRatio; } + public Integer getAvgDailyTrafficVolume() { + return avgDailyTrafficVolume; + } + + public void setAvgDailyTrafficVolume(Integer avgDailyTrafficVolume) { + this.avgDailyTrafficVolume = avgDailyTrafficVolume; + } + + public String getYoyGrowthRate() { + return yoyGrowthRate; + } + + public void setYoyGrowthRate(String yoyGrowthRate) { + this.yoyGrowthRate = yoyGrowthRate; + } + + public String getMomGrowthRate() { + return momGrowthRate; + } + + public void setMomGrowthRate(String momGrowthRate) { + this.momGrowthRate = momGrowthRate; + } + public DcTrafficVolumeData(){} public DcTrafficVolumeData(Integer initData){ diff --git a/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeDirectionCarTypeData.java b/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeDirectionCarTypeData.java index 230131b1..606cddf3 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeDirectionCarTypeData.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeDirectionCarTypeData.java @@ -78,6 +78,15 @@ public class DcTrafficVolumeDirectionCarTypeData extends BaseEntity @Excel(name = "总计车流量") private Integer allTrafficVolume; + /** 周日均 */ + private Integer avgDailyTrafficVolume; + + /** 同比增长率 */ + private String yoyGrowthRate; + + /** 环比增长率 */ + private String momGrowthRate; + public Long getId() { return id; } @@ -214,6 +223,30 @@ public class DcTrafficVolumeDirectionCarTypeData extends BaseEntity this.trafficVolumeRatioJN = trafficVolumeRatioJN; } + public Integer getAvgDailyTrafficVolume() { + return avgDailyTrafficVolume; + } + + public void setAvgDailyTrafficVolume(Integer avgDailyTrafficVolume) { + this.avgDailyTrafficVolume = avgDailyTrafficVolume; + } + + public String getYoyGrowthRate() { + return yoyGrowthRate; + } + + public void setYoyGrowthRate(String yoyGrowthRate) { + this.yoyGrowthRate = yoyGrowthRate; + } + + public String getMomGrowthRate() { + return momGrowthRate; + } + + public void setMomGrowthRate(String momGrowthRate) { + this.momGrowthRate = momGrowthRate; + } + public DcTrafficVolumeDirectionCarTypeData(){} public DcTrafficVolumeDirectionCarTypeData(Integer initData){ diff --git a/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeDirectionData.java b/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeDirectionData.java index 0481e115..7cbfabf6 100644 --- a/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeDirectionData.java +++ b/zc-business/src/main/java/com/zc/business/domain/DcTrafficVolumeDirectionData.java @@ -166,6 +166,15 @@ public class DcTrafficVolumeDirectionData extends BaseEntity @Excel(name = "总计车流量") private Integer allTrafficVolume; + /** 周日均 */ + private Integer avgDailyTrafficVolume; + + /** 同比增长率 */ + private String yoyGrowthRate; + + /** 环比增长率 */ + private String momGrowthRate; + public Long getId() { return id; } @@ -478,6 +487,30 @@ public class DcTrafficVolumeDirectionData extends BaseEntity this.trafficVolumeRatioJN = trafficVolumeRatioJN; } + public Integer getAvgDailyTrafficVolume() { + return avgDailyTrafficVolume; + } + + public void setAvgDailyTrafficVolume(Integer avgDailyTrafficVolume) { + this.avgDailyTrafficVolume = avgDailyTrafficVolume; + } + + public String getYoyGrowthRate() { + return yoyGrowthRate; + } + + public void setYoyGrowthRate(String yoyGrowthRate) { + this.yoyGrowthRate = yoyGrowthRate; + } + + public String getMomGrowthRate() { + return momGrowthRate; + } + + public void setMomGrowthRate(String momGrowthRate) { + this.momGrowthRate = momGrowthRate; + } + public DcTrafficVolumeDirectionData(){} public DcTrafficVolumeDirectionData(Integer initData){ @@ -502,5 +535,6 @@ public class DcTrafficVolumeDirectionData extends BaseEntity this.trafficVolumeJN = initData; this.trafficVolumeHZ = initData; this.allTrafficVolume = initData; + this.avgDailyTrafficVolume = initData; } } diff --git a/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeCarTypeDataByWeek.java b/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeCarTypeDataByWeek.java new file mode 100644 index 00000000..a32b9995 --- /dev/null +++ b/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeCarTypeDataByWeek.java @@ -0,0 +1,174 @@ +package com.zc.business.domain.export; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import com.zc.business.domain.DcTrafficVolumeCarTypeData; + +/** + * 一类交调数据对象 dc_traffic_survey_data + * + * @author liuwenge + * @date 2024-10-29 + */ +public class DcTrafficVolumeCarTypeDataByWeek extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 物联设备主键 */ + private String iotDeviceId; + + /** 方向 */ + private String direction; + + /** 时间 */ + @Excel(name = "时间") + private String time; + + /** 客车 */ + @Excel(name = "客车") + private Integer bus; + + /** 客车占比 */ + @Excel(name = "客车占比") + private String busRatio; + + /** 货车交通量 */ + @Excel(name = "货车") + private Integer goodsCar; + + /** 货车占比 */ + @Excel(name = "货车占比") + private String goodsCarRatio; + + /** 合计 */ + @Excel(name = "合计") + private Integer trafficVolume; + + /** 周日均 */ + @Excel(name = "周日均") + private Integer avgDailyTrafficVolume; + + /** 同比增长率 */ + @Excel(name = "同比增长率") + private String yoyGrowthRate; + + /** 环比增长率 */ + @Excel(name = "环比增长率") + private String momGrowthRate; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getIotDeviceId() { + return iotDeviceId; + } + + public void setIotDeviceId(String iotDeviceId) { + this.iotDeviceId = iotDeviceId; + } + + public String getDirection() { + return direction; + } + + public void setDirection(String direction) { + this.direction = direction; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public Integer getBus() { + return bus; + } + + public void setBus(Integer bus) { + this.bus = bus; + } + + public Integer getGoodsCar() { + return goodsCar; + } + + public void setGoodsCar(Integer goodsCar) { + this.goodsCar = goodsCar; + } + + public Integer getTrafficVolume() { + return trafficVolume; + } + + public void setTrafficVolume(Integer trafficVolume) { + this.trafficVolume = trafficVolume; + } + + public String getBusRatio() { + return busRatio; + } + + public void setBusRatio(String busRatio) { + this.busRatio = busRatio; + } + + public String getGoodsCarRatio() { + return goodsCarRatio; + } + + public void setGoodsCarRatio(String goodsCarRatio) { + this.goodsCarRatio = goodsCarRatio; + } + + public Integer getAvgDailyTrafficVolume() { + return avgDailyTrafficVolume; + } + + public void setAvgDailyTrafficVolume(Integer avgDailyTrafficVolume) { + this.avgDailyTrafficVolume = avgDailyTrafficVolume; + } + + public String getYoyGrowthRate() { + return yoyGrowthRate; + } + + public void setYoyGrowthRate(String yoyGrowthRate) { + this.yoyGrowthRate = yoyGrowthRate; + } + + public String getMomGrowthRate() { + return momGrowthRate; + } + + public void setMomGrowthRate(String momGrowthRate) { + this.momGrowthRate = momGrowthRate; + } + + public DcTrafficVolumeCarTypeDataByWeek(){} + + public DcTrafficVolumeCarTypeDataByWeek(DcTrafficVolumeCarTypeData initData){ + this.id = initData.getId(); + this.iotDeviceId = initData.getIotDeviceId(); + this.direction = initData.getDirection(); + this.time = initData.getTime(); + this.bus = initData.getBus(); + this.busRatio = initData.getBusRatio(); + this.goodsCar = initData.getGoodsCar(); + this.goodsCarRatio = initData.getGoodsCarRatio(); + this.trafficVolume = initData.getTrafficVolume(); + this.avgDailyTrafficVolume = initData.getAvgDailyTrafficVolume(); + this.yoyGrowthRate = initData.getYoyGrowthRate(); + this.momGrowthRate = initData.getMomGrowthRate(); + } +} diff --git a/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDataByWeek.java b/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDataByWeek.java new file mode 100644 index 00000000..2824cb70 --- /dev/null +++ b/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDataByWeek.java @@ -0,0 +1,317 @@ +package com.zc.business.domain.export; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import com.zc.business.domain.DcTrafficVolumeData; + +/** + * 一类交调数据对象 dc_traffic_survey_data + * + * @author liuwenge + * @date 2024-10-29 + */ +public class DcTrafficVolumeDataByWeek extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 物联设备主键 */ + private String iotDeviceId; + + /** 方向 */ + private String direction; + + /** 时间 */ + @Excel(name = "时间") + private String time; + + /** 中小客车交通量 */ + @Excel(name = "中小客车") + private Integer trafficNumberOfInAndSmall; + + /** 中小客车占比 */ + @Excel(name = "中小客车占比") + private String trafficNumberOfInAndSmallRatio; + + /** 大客车交通量 */ + @Excel(name = "大客车") + private Integer busTrafficVolume; + + /** 大客车占比 */ + @Excel(name = "大客车占比") + private String busTrafficVolumeRatio; + + /** 小型货车交通量 */ + @Excel(name = "小型货车") + private Integer trafficVolumeOfSmallTrucks; + + /** 小型货车占比 */ + @Excel(name = "小型货车占比") + private String trafficVolumeOfSmallTrucksRatio; + + /** 中型货车交通量 */ + @Excel(name = "中型货车") + private Integer mediumTruckTrafficVolume; + + /** 中型货车占比 */ + @Excel(name = "中型货车占比") + private String mediumTruckTrafficVolumeRatio; + + /** 大型货车交通量 */ + @Excel(name = "大型货车") + private Integer largeTruckTrafficVolume; + + /** 大型货车占比 */ + @Excel(name = "大型货车占比") + private String largeTruckTrafficVolumeRatio; + + /** 特大型货车交通量 */ + @Excel(name = "特大型货车") + private Integer extraLargeTrucksTrafficVolume; + + /** 特大型货车占比 */ + @Excel(name = "特大型货车占比") + private String extraLargeTrucksTrafficVolumeRatio; + + /** 集装箱车交通量 */ +// @Excel(name = "集装箱车") + private Integer containerTruckTrafficVolume; + + /** 摩托车交通量 */ +// @Excel(name = "摩托车") + private Integer motorcycleTrafficVolume; + + /** 拖拉机交通量 */ +// @Excel(name = "拖拉机") + private Integer tractorTrafficVolume; + + /** 合计 */ + @Excel(name = "合计") + private Integer trafficVolume; + + /** 周日均 */ + @Excel(name = "周日均") + private Integer avgDailyTrafficVolume; + + /** 同比增长率 */ + @Excel(name = "同比增长率") + private String yoyGrowthRate; + + /** 环比增长率 */ + @Excel(name = "环比增长率") + private String momGrowthRate; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getIotDeviceId() { + return iotDeviceId; + } + + public void setIotDeviceId(String iotDeviceId) { + this.iotDeviceId = iotDeviceId; + } + + public String getDirection() { + return direction; + } + + public void setDirection(String direction) { + this.direction = direction; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public Integer getTrafficNumberOfInAndSmall() { + return trafficNumberOfInAndSmall; + } + + public void setTrafficNumberOfInAndSmall(Integer trafficNumberOfInAndSmall) { + this.trafficNumberOfInAndSmall = trafficNumberOfInAndSmall; + } + + public Integer getBusTrafficVolume() { + return busTrafficVolume; + } + + public void setBusTrafficVolume(Integer busTrafficVolume) { + this.busTrafficVolume = busTrafficVolume; + } + + public Integer getTrafficVolumeOfSmallTrucks() { + return trafficVolumeOfSmallTrucks; + } + + public void setTrafficVolumeOfSmallTrucks(Integer trafficVolumeOfSmallTrucks) { + this.trafficVolumeOfSmallTrucks = trafficVolumeOfSmallTrucks; + } + + public Integer getMediumTruckTrafficVolume() { + return mediumTruckTrafficVolume; + } + + public void setMediumTruckTrafficVolume(Integer mediumTruckTrafficVolume) { + this.mediumTruckTrafficVolume = mediumTruckTrafficVolume; + } + + public Integer getLargeTruckTrafficVolume() { + return largeTruckTrafficVolume; + } + + public void setLargeTruckTrafficVolume(Integer largeTruckTrafficVolume) { + this.largeTruckTrafficVolume = largeTruckTrafficVolume; + } + + public Integer getExtraLargeTrucksTrafficVolume() { + return extraLargeTrucksTrafficVolume; + } + + public void setExtraLargeTrucksTrafficVolume(Integer extraLargeTrucksTrafficVolume) { + this.extraLargeTrucksTrafficVolume = extraLargeTrucksTrafficVolume; + } + + public Integer getContainerTruckTrafficVolume() { + return containerTruckTrafficVolume; + } + + public void setContainerTruckTrafficVolume(Integer containerTruckTrafficVolume) { + this.containerTruckTrafficVolume = containerTruckTrafficVolume; + } + + public Integer getMotorcycleTrafficVolume() { + return motorcycleTrafficVolume; + } + + public void setMotorcycleTrafficVolume(Integer motorcycleTrafficVolume) { + this.motorcycleTrafficVolume = motorcycleTrafficVolume; + } + + public Integer getTractorTrafficVolume() { + return tractorTrafficVolume; + } + + public void setTractorTrafficVolume(Integer tractorTrafficVolume) { + this.tractorTrafficVolume = tractorTrafficVolume; + } + + public Integer getTrafficVolume() { + return trafficVolume; + } + + public void setTrafficVolume(Integer trafficVolume) { + this.trafficVolume = trafficVolume; + } + + public String getTrafficNumberOfInAndSmallRatio() { + return trafficNumberOfInAndSmallRatio; + } + + public void setTrafficNumberOfInAndSmallRatio(String trafficNumberOfInAndSmallRatio) { + this.trafficNumberOfInAndSmallRatio = trafficNumberOfInAndSmallRatio; + } + + public String getBusTrafficVolumeRatio() { + return busTrafficVolumeRatio; + } + + public void setBusTrafficVolumeRatio(String busTrafficVolumeRatio) { + this.busTrafficVolumeRatio = busTrafficVolumeRatio; + } + + public String getTrafficVolumeOfSmallTrucksRatio() { + return trafficVolumeOfSmallTrucksRatio; + } + + public void setTrafficVolumeOfSmallTrucksRatio(String trafficVolumeOfSmallTrucksRatio) { + this.trafficVolumeOfSmallTrucksRatio = trafficVolumeOfSmallTrucksRatio; + } + + public String getMediumTruckTrafficVolumeRatio() { + return mediumTruckTrafficVolumeRatio; + } + + public void setMediumTruckTrafficVolumeRatio(String mediumTruckTrafficVolumeRatio) { + this.mediumTruckTrafficVolumeRatio = mediumTruckTrafficVolumeRatio; + } + + public String getLargeTruckTrafficVolumeRatio() { + return largeTruckTrafficVolumeRatio; + } + + public void setLargeTruckTrafficVolumeRatio(String largeTruckTrafficVolumeRatio) { + this.largeTruckTrafficVolumeRatio = largeTruckTrafficVolumeRatio; + } + + public String getExtraLargeTrucksTrafficVolumeRatio() { + return extraLargeTrucksTrafficVolumeRatio; + } + + public void setExtraLargeTrucksTrafficVolumeRatio(String extraLargeTrucksTrafficVolumeRatio) { + this.extraLargeTrucksTrafficVolumeRatio = extraLargeTrucksTrafficVolumeRatio; + } + + public Integer getAvgDailyTrafficVolume() { + return avgDailyTrafficVolume; + } + + public void setAvgDailyTrafficVolume(Integer avgDailyTrafficVolume) { + this.avgDailyTrafficVolume = avgDailyTrafficVolume; + } + + public String getYoyGrowthRate() { + return yoyGrowthRate; + } + + public void setYoyGrowthRate(String yoyGrowthRate) { + this.yoyGrowthRate = yoyGrowthRate; + } + + public String getMomGrowthRate() { + return momGrowthRate; + } + + public void setMomGrowthRate(String momGrowthRate) { + this.momGrowthRate = momGrowthRate; + } + + public DcTrafficVolumeDataByWeek(){} + + public DcTrafficVolumeDataByWeek(DcTrafficVolumeData initData){ + this.id = initData.getId(); + this.iotDeviceId = initData.getIotDeviceId(); + this.direction = initData.getDirection(); + this.time = initData.getTime(); + this.trafficNumberOfInAndSmall = initData.getTrafficNumberOfInAndSmall(); + this.trafficNumberOfInAndSmallRatio = initData.getTrafficNumberOfInAndSmallRatio(); + this.busTrafficVolume = initData.getBusTrafficVolume(); + this.busTrafficVolumeRatio = initData.getBusTrafficVolumeRatio(); + this.trafficVolumeOfSmallTrucks = initData.getTrafficVolumeOfSmallTrucks(); + this.trafficVolumeOfSmallTrucksRatio = initData.getTrafficVolumeOfSmallTrucksRatio(); + this.mediumTruckTrafficVolume = initData.getMediumTruckTrafficVolume(); + this.mediumTruckTrafficVolumeRatio = initData.getMediumTruckTrafficVolumeRatio(); + this.largeTruckTrafficVolume = initData.getLargeTruckTrafficVolume(); + this.largeTruckTrafficVolumeRatio = initData.getLargeTruckTrafficVolumeRatio(); + this.extraLargeTrucksTrafficVolume = initData.getExtraLargeTrucksTrafficVolume(); + this.extraLargeTrucksTrafficVolumeRatio = initData.getExtraLargeTrucksTrafficVolumeRatio(); + this.containerTruckTrafficVolume = initData.getContainerTruckTrafficVolume(); + this.motorcycleTrafficVolume = initData.getMotorcycleTrafficVolume(); + this.tractorTrafficVolume = initData.getTractorTrafficVolume(); + this.trafficVolume = initData.getTrafficVolume(); + this.avgDailyTrafficVolume = initData.getAvgDailyTrafficVolume(); + this.yoyGrowthRate = initData.getYoyGrowthRate(); + this.momGrowthRate = initData.getMomGrowthRate(); + } +} diff --git a/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDirectionCarTypeDataByWeek.java b/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDirectionCarTypeDataByWeek.java new file mode 100644 index 00000000..16e3fffb --- /dev/null +++ b/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDirectionCarTypeDataByWeek.java @@ -0,0 +1,278 @@ +package com.zc.business.domain.export; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import com.zc.business.domain.DcTrafficVolumeDirectionCarTypeData; + +/** + * 一类交调数据对象(区分方向) dc_traffic_survey_data + * + * @author liuwenge + * @date 2024-10-29 + */ +public class DcTrafficVolumeDirectionCarTypeDataByWeek extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 物联设备主键 */ + private String iotDeviceId; + + /** 方向 */ + private String direction; + + /** 时间 */ + @Excel(name = "时间") + private String time; + + /** 菏泽客车交通量 */ + @Excel(name = "客车-菏泽") + private Integer busHZ; + + /** 菏泽客车交通量 */ + @Excel(name = "客车占比-菏泽") + private String busRatioHZ; + + /** 济南客车交通量 */ + @Excel(name = "客车-济南") + private Integer busJN; + + /** 济南客车交通量 */ + @Excel(name = "客车占比-济南") + private String busRatioJN; + + /** 菏泽货车交通量 */ + @Excel(name = "货车-菏泽") + private Integer goodsCarHZ; + + /** 菏泽货车交通量 */ + @Excel(name = "货车占比-菏泽") + private String goodsCarRatioHZ; + + /** 济南货车交通量 */ + @Excel(name = "货车-济南") + private Integer goodsCarJN; + + /** 济南货车交通量 */ + @Excel(name = "货车占比-济南") + private String goodsCarRatioJN; + + /** 合计 */ + @Excel(name = "合计-菏泽") + private Integer trafficVolumeHZ; + + /** 合计 */ + @Excel(name = "合计占比-菏泽") + private String trafficVolumeRatioHZ; + + /** 合计 */ + @Excel(name = "合计-济南") + private Integer trafficVolumeJN; + + /** 合计 */ + @Excel(name = "合计占比-济南") + private String trafficVolumeRatioJN; + + /** 总计车流量 */ + @Excel(name = "总计车流量") + private Integer allTrafficVolume; + + /** 周日均 */ + @Excel(name = "周日均") + private Integer avgDailyTrafficVolume; + + /** 同比增长率 */ + @Excel(name = "同比增长率") + private String yoyGrowthRate; + + /** 环比增长率 */ + @Excel(name = "环比增长率") + private String momGrowthRate; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getIotDeviceId() { + return iotDeviceId; + } + + public void setIotDeviceId(String iotDeviceId) { + this.iotDeviceId = iotDeviceId; + } + + public String getDirection() { + return direction; + } + + public void setDirection(String direction) { + this.direction = direction; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public Integer getBusHZ() { + return busHZ; + } + + public void setBusHZ(Integer busHZ) { + this.busHZ = busHZ; + } + + public Integer getBusJN() { + return busJN; + } + + public void setBusJN(Integer busJN) { + this.busJN = busJN; + } + + public Integer getGoodsCarHZ() { + return goodsCarHZ; + } + + public void setGoodsCarHZ(Integer goodsCarHZ) { + this.goodsCarHZ = goodsCarHZ; + } + + public Integer getGoodsCarJN() { + return goodsCarJN; + } + + public void setGoodsCarJN(Integer goodsCarJN) { + this.goodsCarJN = goodsCarJN; + } + + public Integer getTrafficVolumeHZ() { + return trafficVolumeHZ; + } + + public void setTrafficVolumeHZ(Integer trafficVolumeHZ) { + this.trafficVolumeHZ = trafficVolumeHZ; + } + + public Integer getTrafficVolumeJN() { + return trafficVolumeJN; + } + + public void setTrafficVolumeJN(Integer trafficVolumeJN) { + this.trafficVolumeJN = trafficVolumeJN; + } + + public Integer getAllTrafficVolume() { + return allTrafficVolume; + } + + public void setAllTrafficVolume(Integer allTrafficVolume) { + this.allTrafficVolume = allTrafficVolume; + } + + public String getBusRatioHZ() { + return busRatioHZ; + } + + public void setBusRatioHZ(String busRatioHZ) { + this.busRatioHZ = busRatioHZ; + } + + public String getBusRatioJN() { + return busRatioJN; + } + + public void setBusRatioJN(String busRatioJN) { + this.busRatioJN = busRatioJN; + } + + public String getGoodsCarRatioHZ() { + return goodsCarRatioHZ; + } + + public void setGoodsCarRatioHZ(String goodsCarRatioHZ) { + this.goodsCarRatioHZ = goodsCarRatioHZ; + } + + public String getGoodsCarRatioJN() { + return goodsCarRatioJN; + } + + public void setGoodsCarRatioJN(String goodsCarRatioJN) { + this.goodsCarRatioJN = goodsCarRatioJN; + } + + public String getTrafficVolumeRatioHZ() { + return trafficVolumeRatioHZ; + } + + public void setTrafficVolumeRatioHZ(String trafficVolumeRatioHZ) { + this.trafficVolumeRatioHZ = trafficVolumeRatioHZ; + } + + public String getTrafficVolumeRatioJN() { + return trafficVolumeRatioJN; + } + + public void setTrafficVolumeRatioJN(String trafficVolumeRatioJN) { + this.trafficVolumeRatioJN = trafficVolumeRatioJN; + } + + public Integer getAvgDailyTrafficVolume() { + return avgDailyTrafficVolume; + } + + public void setAvgDailyTrafficVolume(Integer avgDailyTrafficVolume) { + this.avgDailyTrafficVolume = avgDailyTrafficVolume; + } + + public String getYoyGrowthRate() { + return yoyGrowthRate; + } + + public void setYoyGrowthRate(String yoyGrowthRate) { + this.yoyGrowthRate = yoyGrowthRate; + } + + public String getMomGrowthRate() { + return momGrowthRate; + } + + public void setMomGrowthRate(String momGrowthRate) { + this.momGrowthRate = momGrowthRate; + } + + public DcTrafficVolumeDirectionCarTypeDataByWeek(){} + + public DcTrafficVolumeDirectionCarTypeDataByWeek(DcTrafficVolumeDirectionCarTypeData initData){ + this.id = initData.getId(); + this.iotDeviceId = initData.getIotDeviceId(); + this.direction = initData.getDirection(); + this.time = initData.getTime(); + this.busHZ = initData.getBusHZ(); + this.busRatioHZ = initData.getBusRatioHZ(); + this.busJN = initData.getBusJN(); + this.busRatioJN = initData.getBusRatioJN(); + this.goodsCarHZ = initData.getGoodsCarHZ(); + this.goodsCarRatioHZ = initData.getGoodsCarRatioHZ(); + this.goodsCarJN = initData.getGoodsCarJN(); + this.goodsCarRatioJN = initData.getGoodsCarRatioJN(); + this.trafficVolumeHZ = initData.getTrafficVolumeHZ(); + this.trafficVolumeRatioHZ = initData.getTrafficVolumeRatioHZ(); + this.trafficVolumeJN = initData.getTrafficVolumeJN(); + this.trafficVolumeRatioJN = initData.getTrafficVolumeRatioJN(); + this.allTrafficVolume = initData.getAllTrafficVolume(); + this.avgDailyTrafficVolume = initData.getAvgDailyTrafficVolume(); + this.yoyGrowthRate = initData.getYoyGrowthRate(); + this.momGrowthRate = initData.getMomGrowthRate(); + } +} diff --git a/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDirectionDataByWeek.java b/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDirectionDataByWeek.java new file mode 100644 index 00000000..bdb20dc9 --- /dev/null +++ b/zc-business/src/main/java/com/zc/business/domain/export/DcTrafficVolumeDirectionDataByWeek.java @@ -0,0 +1,564 @@ +package com.zc.business.domain.export; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import com.zc.business.domain.DcTrafficVolumeDirectionData; + +/** + * 一类交调数据对象(区分方向) dc_traffic_survey_data + * + * @author liuwenge + * @date 2024-10-29 + */ +public class DcTrafficVolumeDirectionDataByWeek extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + /** $column.columnComment */ + private Long id; + + /** 物联设备主键 */ + private String iotDeviceId; + + /** 方向 */ + private String direction; + + /** 时间 */ + @Excel(name = "时间") + private String time; + + /** 中小客车交通量 */ + @Excel(name = "中小客车-菏泽") + private Integer trafficNumberOfInAndSmallHZ; + + /** 中小客车占比-菏泽 */ + @Excel(name = "中小客车占比-菏泽") + private String trafficNumberOfInAndSmallRatioHZ; + + /** 中小客车交通量 */ + @Excel(name = "中小客车-济南") + private Integer trafficNumberOfInAndSmallJN; + + /** 中小客车占比-济南 */ + @Excel(name = "中小客车占比-济南") + private String trafficNumberOfInAndSmallRatioJN; + + /** 大客车交通量 */ + @Excel(name = "大客车-菏泽") + private Integer busTrafficVolumeHZ; + + /** 大客车占比-菏泽 */ + @Excel(name = "大客车占比-菏泽") + private String busTrafficVolumeRatioHZ; + + /** 大客车交通量 */ + @Excel(name = "大客车-济南") + private Integer busTrafficVolumeJN; + + /** 大客车占比-济南 */ + @Excel(name = "大客车占比-济南") + private String busTrafficVolumeRatioJN; + + /** 小型货车交通量 */ + @Excel(name = "小型货车-菏泽") + private Integer trafficVolumeOfSmallTrucksHZ; + + /** 小型货车占比-菏泽 */ + @Excel(name = "小型货车占比-菏泽") + private String trafficVolumeOfSmallTrucksRatioHZ; + + /** 小型货车交通量 */ + @Excel(name = "小型货车-济南") + private Integer trafficVolumeOfSmallTrucksJN; + + /** 小型货车占比-济南 */ + @Excel(name = "小型货车占比-济南") + private String trafficVolumeOfSmallTrucksRatioJN; + + /** 中型货车交通量 */ + @Excel(name = "中型货车-菏泽") + private Integer mediumTruckTrafficVolumeHZ; + + /** 中型货车占比-菏泽 */ + @Excel(name = "中型货车占比-菏泽") + private String mediumTruckTrafficVolumeRatioHZ; + + /** 中型货车交通量 */ + @Excel(name = "中型货车-济南") + private Integer mediumTruckTrafficVolumeJN; + + /** 中型货车占比-济南 */ + @Excel(name = "中型货车占比-济南") + private String mediumTruckTrafficVolumeRatioJN; + + /** 大型货车交通量 */ + @Excel(name = "大型货车-菏泽") + private Integer largeTruckTrafficVolumeHZ; + + /** 大型货车占比-菏泽 */ + @Excel(name = "大型货车占比-菏泽") + private String largeTruckTrafficVolumeRatioHZ; + + /** 大型货车交通量 */ + @Excel(name = "大型货车-济南") + private Integer largeTruckTrafficVolumeJN; + + /** 大型货车占比-济南 */ + @Excel(name = "大型货车占比-济南") + private String largeTruckTrafficVolumeRatioJN; + + /** 特大型货车交通量 */ + @Excel(name = "特大型货车-菏泽") + private Integer extraLargeTrucksTrafficVolumeHZ; + + /** 特大型货车占比-菏泽 */ + @Excel(name = "特大型货车占比-菏泽") + private String extraLargeTrucksTrafficVolumeRatioHZ; + + /** 特大型货车交通量 */ + @Excel(name = "特大型货车-济南") + private Integer extraLargeTrucksTrafficVolumeJN; + + /** 特大型货车占比-济南 */ + @Excel(name = "特大型货车占比-济南") + private String extraLargeTrucksTrafficVolumeRatioJN; + + /** 集装箱车交通量 */ +// @Excel(name = "集装箱车-菏泽") + private Integer containerTruckTrafficVolumeHZ; + + /** 集装箱车交通量 */ +// @Excel(name = "集装箱车-济南") + private Integer containerTruckTrafficVolumeJN; + + /** 摩托车交通量 */ +// @Excel(name = "摩托车-菏泽") + private Integer motorcycleTrafficVolumeHZ; + + /** 摩托车交通量 */ +// @Excel(name = "摩托车-济南") + private Integer motorcycleTrafficVolumeJN; + + /** 拖拉机交通量 */ +// @Excel(name = "拖拉机-菏泽") + private Integer tractorTrafficVolumeHZ; + + /** 拖拉机交通量 */ +// @Excel(name = "拖拉机-济南") + private Integer tractorTrafficVolumeJN; + + /** 合计 */ + @Excel(name = "合计-菏泽") + private Integer trafficVolumeHZ; + + /** 菏泽占比 */ + @Excel(name = "合计占比-菏泽") + private String trafficVolumeRatioHZ; + + /** 合计 */ + @Excel(name = "合计-济南") + private Integer trafficVolumeJN; + + /** 合计占比-济南 */ + @Excel(name = "合计占比-济南") + private String trafficVolumeRatioJN; + + /** 总计车流量 */ + @Excel(name = "总计车流量") + private Integer allTrafficVolume; + + /** 周日均 */ + @Excel(name = "周日均") + private Integer avgDailyTrafficVolume; + + /** 同比增长率 */ + @Excel(name = "同比增长率") + private String yoyGrowthRate; + + /** 环比增长率 */ + @Excel(name = "环比增长率") + private String momGrowthRate; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getIotDeviceId() { + return iotDeviceId; + } + + public void setIotDeviceId(String iotDeviceId) { + this.iotDeviceId = iotDeviceId; + } + + public String getDirection() { + return direction; + } + + public void setDirection(String direction) { + this.direction = direction; + } + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public Integer getTrafficNumberOfInAndSmallJN() { + return trafficNumberOfInAndSmallJN; + } + + public void setTrafficNumberOfInAndSmallJN(Integer trafficNumberOfInAndSmallJN) { + this.trafficNumberOfInAndSmallJN = trafficNumberOfInAndSmallJN; + } + + public Integer getTrafficNumberOfInAndSmallHZ() { + return trafficNumberOfInAndSmallHZ; + } + + public void setTrafficNumberOfInAndSmallHZ(Integer trafficNumberOfInAndSmallHZ) { + this.trafficNumberOfInAndSmallHZ = trafficNumberOfInAndSmallHZ; + } + + public Integer getBusTrafficVolumeJN() { + return busTrafficVolumeJN; + } + + public void setBusTrafficVolumeJN(Integer busTrafficVolumeJN) { + this.busTrafficVolumeJN = busTrafficVolumeJN; + } + + public Integer getBusTrafficVolumeHZ() { + return busTrafficVolumeHZ; + } + + public void setBusTrafficVolumeHZ(Integer busTrafficVolumeHZ) { + this.busTrafficVolumeHZ = busTrafficVolumeHZ; + } + + public Integer getTrafficVolumeOfSmallTrucksJN() { + return trafficVolumeOfSmallTrucksJN; + } + + public void setTrafficVolumeOfSmallTrucksJN(Integer trafficVolumeOfSmallTrucksJN) { + this.trafficVolumeOfSmallTrucksJN = trafficVolumeOfSmallTrucksJN; + } + + public Integer getTrafficVolumeOfSmallTrucksHZ() { + return trafficVolumeOfSmallTrucksHZ; + } + + public void setTrafficVolumeOfSmallTrucksHZ(Integer trafficVolumeOfSmallTrucksHZ) { + this.trafficVolumeOfSmallTrucksHZ = trafficVolumeOfSmallTrucksHZ; + } + + public Integer getMediumTruckTrafficVolumeJN() { + return mediumTruckTrafficVolumeJN; + } + + public void setMediumTruckTrafficVolumeJN(Integer mediumTruckTrafficVolumeJN) { + this.mediumTruckTrafficVolumeJN = mediumTruckTrafficVolumeJN; + } + + public Integer getMediumTruckTrafficVolumeHZ() { + return mediumTruckTrafficVolumeHZ; + } + + public void setMediumTruckTrafficVolumeHZ(Integer mediumTruckTrafficVolumeHZ) { + this.mediumTruckTrafficVolumeHZ = mediumTruckTrafficVolumeHZ; + } + + public Integer getLargeTruckTrafficVolumeJN() { + return largeTruckTrafficVolumeJN; + } + + public void setLargeTruckTrafficVolumeJN(Integer largeTruckTrafficVolumeJN) { + this.largeTruckTrafficVolumeJN = largeTruckTrafficVolumeJN; + } + + public Integer getLargeTruckTrafficVolumeHZ() { + return largeTruckTrafficVolumeHZ; + } + + public void setLargeTruckTrafficVolumeHZ(Integer largeTruckTrafficVolumeHZ) { + this.largeTruckTrafficVolumeHZ = largeTruckTrafficVolumeHZ; + } + + public Integer getExtraLargeTrucksTrafficVolumeJN() { + return extraLargeTrucksTrafficVolumeJN; + } + + public void setExtraLargeTrucksTrafficVolumeJN(Integer extraLargeTrucksTrafficVolumeJN) { + this.extraLargeTrucksTrafficVolumeJN = extraLargeTrucksTrafficVolumeJN; + } + + public Integer getExtraLargeTrucksTrafficVolumeHZ() { + return extraLargeTrucksTrafficVolumeHZ; + } + + public void setExtraLargeTrucksTrafficVolumeHZ(Integer extraLargeTrucksTrafficVolumeHZ) { + this.extraLargeTrucksTrafficVolumeHZ = extraLargeTrucksTrafficVolumeHZ; + } + + public Integer getContainerTruckTrafficVolumeJN() { + return containerTruckTrafficVolumeJN; + } + + public void setContainerTruckTrafficVolumeJN(Integer containerTruckTrafficVolumeJN) { + this.containerTruckTrafficVolumeJN = containerTruckTrafficVolumeJN; + } + + public Integer getContainerTruckTrafficVolumeHZ() { + return containerTruckTrafficVolumeHZ; + } + + public void setContainerTruckTrafficVolumeHZ(Integer containerTruckTrafficVolumeHZ) { + this.containerTruckTrafficVolumeHZ = containerTruckTrafficVolumeHZ; + } + + public Integer getMotorcycleTrafficVolumeJN() { + return motorcycleTrafficVolumeJN; + } + + public void setMotorcycleTrafficVolumeJN(Integer motorcycleTrafficVolumeJN) { + this.motorcycleTrafficVolumeJN = motorcycleTrafficVolumeJN; + } + + public Integer getMotorcycleTrafficVolumeHZ() { + return motorcycleTrafficVolumeHZ; + } + + public void setMotorcycleTrafficVolumeHZ(Integer motorcycleTrafficVolumeHZ) { + this.motorcycleTrafficVolumeHZ = motorcycleTrafficVolumeHZ; + } + + public Integer getTractorTrafficVolumeJN() { + return tractorTrafficVolumeJN; + } + + public void setTractorTrafficVolumeJN(Integer tractorTrafficVolumeJN) { + this.tractorTrafficVolumeJN = tractorTrafficVolumeJN; + } + + public Integer getTractorTrafficVolumeHZ() { + return tractorTrafficVolumeHZ; + } + + public void setTractorTrafficVolumeHZ(Integer tractorTrafficVolumeHZ) { + this.tractorTrafficVolumeHZ = tractorTrafficVolumeHZ; + } + + public Integer getTrafficVolumeJN() { + return trafficVolumeJN; + } + + public void setTrafficVolumeJN(Integer trafficVolumeJN) { + this.trafficVolumeJN = trafficVolumeJN; + } + + public Integer getTrafficVolumeHZ() { + return trafficVolumeHZ; + } + + public void setTrafficVolumeHZ(Integer trafficVolumeHZ) { + this.trafficVolumeHZ = trafficVolumeHZ; + } + + public Integer getAllTrafficVolume() { + return allTrafficVolume; + } + + public void setAllTrafficVolume(Integer allTrafficVolume) { + this.allTrafficVolume = allTrafficVolume; + } + + public String getTrafficNumberOfInAndSmallRatioHZ() { + return trafficNumberOfInAndSmallRatioHZ; + } + + public void setTrafficNumberOfInAndSmallRatioHZ(String trafficNumberOfInAndSmallRatioHZ) { + this.trafficNumberOfInAndSmallRatioHZ = trafficNumberOfInAndSmallRatioHZ; + } + + public String getTrafficNumberOfInAndSmallRatioJN() { + return trafficNumberOfInAndSmallRatioJN; + } + + public void setTrafficNumberOfInAndSmallRatioJN(String trafficNumberOfInAndSmallRatioJN) { + this.trafficNumberOfInAndSmallRatioJN = trafficNumberOfInAndSmallRatioJN; + } + + public String getBusTrafficVolumeRatioHZ() { + return busTrafficVolumeRatioHZ; + } + + public void setBusTrafficVolumeRatioHZ(String busTrafficVolumeRatioHZ) { + this.busTrafficVolumeRatioHZ = busTrafficVolumeRatioHZ; + } + + public String getBusTrafficVolumeRatioJN() { + return busTrafficVolumeRatioJN; + } + + public void setBusTrafficVolumeRatioJN(String busTrafficVolumeRatioJN) { + this.busTrafficVolumeRatioJN = busTrafficVolumeRatioJN; + } + + public String getTrafficVolumeOfSmallTrucksRatioHZ() { + return trafficVolumeOfSmallTrucksRatioHZ; + } + + public void setTrafficVolumeOfSmallTrucksRatioHZ(String trafficVolumeOfSmallTrucksRatioHZ) { + this.trafficVolumeOfSmallTrucksRatioHZ = trafficVolumeOfSmallTrucksRatioHZ; + } + + public String getTrafficVolumeOfSmallTrucksRatioJN() { + return trafficVolumeOfSmallTrucksRatioJN; + } + + public void setTrafficVolumeOfSmallTrucksRatioJN(String trafficVolumeOfSmallTrucksRatioJN) { + this.trafficVolumeOfSmallTrucksRatioJN = trafficVolumeOfSmallTrucksRatioJN; + } + + public String getMediumTruckTrafficVolumeRatioHZ() { + return mediumTruckTrafficVolumeRatioHZ; + } + + public void setMediumTruckTrafficVolumeRatioHZ(String mediumTruckTrafficVolumeRatioHZ) { + this.mediumTruckTrafficVolumeRatioHZ = mediumTruckTrafficVolumeRatioHZ; + } + + public String getMediumTruckTrafficVolumeRatioJN() { + return mediumTruckTrafficVolumeRatioJN; + } + + public void setMediumTruckTrafficVolumeRatioJN(String mediumTruckTrafficVolumeRatioJN) { + this.mediumTruckTrafficVolumeRatioJN = mediumTruckTrafficVolumeRatioJN; + } + + public String getLargeTruckTrafficVolumeRatioHZ() { + return largeTruckTrafficVolumeRatioHZ; + } + + public void setLargeTruckTrafficVolumeRatioHZ(String largeTruckTrafficVolumeRatioHZ) { + this.largeTruckTrafficVolumeRatioHZ = largeTruckTrafficVolumeRatioHZ; + } + + public String getLargeTruckTrafficVolumeRatioJN() { + return largeTruckTrafficVolumeRatioJN; + } + + public void setLargeTruckTrafficVolumeRatioJN(String largeTruckTrafficVolumeRatioJN) { + this.largeTruckTrafficVolumeRatioJN = largeTruckTrafficVolumeRatioJN; + } + + public String getExtraLargeTrucksTrafficVolumeRatioHZ() { + return extraLargeTrucksTrafficVolumeRatioHZ; + } + + public void setExtraLargeTrucksTrafficVolumeRatioHZ(String extraLargeTrucksTrafficVolumeRatioHZ) { + this.extraLargeTrucksTrafficVolumeRatioHZ = extraLargeTrucksTrafficVolumeRatioHZ; + } + + public String getExtraLargeTrucksTrafficVolumeRatioJN() { + return extraLargeTrucksTrafficVolumeRatioJN; + } + + public void setExtraLargeTrucksTrafficVolumeRatioJN(String extraLargeTrucksTrafficVolumeRatioJN) { + this.extraLargeTrucksTrafficVolumeRatioJN = extraLargeTrucksTrafficVolumeRatioJN; + } + + public String getTrafficVolumeRatioHZ() { + return trafficVolumeRatioHZ; + } + + public void setTrafficVolumeRatioHZ(String trafficVolumeRatioHZ) { + this.trafficVolumeRatioHZ = trafficVolumeRatioHZ; + } + + public String getTrafficVolumeRatioJN() { + return trafficVolumeRatioJN; + } + + public void setTrafficVolumeRatioJN(String trafficVolumeRatioJN) { + this.trafficVolumeRatioJN = trafficVolumeRatioJN; + } + + public Integer getAvgDailyTrafficVolume() { + return avgDailyTrafficVolume; + } + + public void setAvgDailyTrafficVolume(Integer avgDailyTrafficVolume) { + this.avgDailyTrafficVolume = avgDailyTrafficVolume; + } + + public String getYoyGrowthRate() { + return yoyGrowthRate; + } + + public void setYoyGrowthRate(String yoyGrowthRate) { + this.yoyGrowthRate = yoyGrowthRate; + } + + public String getMomGrowthRate() { + return momGrowthRate; + } + + public void setMomGrowthRate(String momGrowthRate) { + this.momGrowthRate = momGrowthRate; + } + + public DcTrafficVolumeDirectionDataByWeek(){} + + public DcTrafficVolumeDirectionDataByWeek(DcTrafficVolumeDirectionData initData){ + this.id = initData.getId(); + this.iotDeviceId = initData.getIotDeviceId(); + this.direction = initData.getDirection(); + this.time = initData.getTime(); + this.trafficNumberOfInAndSmallHZ = initData.getTrafficNumberOfInAndSmallHZ(); + this.trafficNumberOfInAndSmallRatioHZ = initData.getTrafficNumberOfInAndSmallRatioHZ(); + this.trafficNumberOfInAndSmallJN = initData.getTrafficNumberOfInAndSmallJN(); + this.trafficNumberOfInAndSmallRatioJN = initData.getTrafficNumberOfInAndSmallRatioJN(); + this.busTrafficVolumeHZ = initData.getBusTrafficVolumeHZ(); + this.busTrafficVolumeRatioHZ = initData.getBusTrafficVolumeRatioHZ(); + this.busTrafficVolumeJN = initData.getBusTrafficVolumeJN(); + this.busTrafficVolumeRatioJN = initData.getBusTrafficVolumeRatioJN(); + this.trafficVolumeOfSmallTrucksHZ = initData.getTrafficVolumeOfSmallTrucksHZ(); + this.trafficVolumeOfSmallTrucksRatioHZ = initData.getTrafficVolumeOfSmallTrucksRatioHZ(); + this.trafficVolumeOfSmallTrucksJN = initData.getTrafficVolumeOfSmallTrucksJN(); + this.trafficVolumeOfSmallTrucksRatioJN = initData.getTrafficVolumeOfSmallTrucksRatioJN(); + this.mediumTruckTrafficVolumeHZ = initData.getMediumTruckTrafficVolumeHZ(); + this.mediumTruckTrafficVolumeRatioHZ = initData.getMediumTruckTrafficVolumeRatioHZ(); + this.mediumTruckTrafficVolumeJN = initData.getMediumTruckTrafficVolumeJN(); + this.mediumTruckTrafficVolumeRatioJN = initData.getMediumTruckTrafficVolumeRatioJN(); + this.largeTruckTrafficVolumeHZ = initData.getLargeTruckTrafficVolumeHZ(); + this.largeTruckTrafficVolumeRatioHZ = initData.getLargeTruckTrafficVolumeRatioHZ(); + this.largeTruckTrafficVolumeJN = initData.getLargeTruckTrafficVolumeJN(); + this.largeTruckTrafficVolumeRatioJN = initData.getLargeTruckTrafficVolumeRatioJN(); + this.extraLargeTrucksTrafficVolumeHZ = initData.getExtraLargeTrucksTrafficVolumeHZ(); + this.extraLargeTrucksTrafficVolumeRatioHZ = initData.getExtraLargeTrucksTrafficVolumeRatioHZ(); + this.extraLargeTrucksTrafficVolumeJN = initData.getExtraLargeTrucksTrafficVolumeJN(); + this.extraLargeTrucksTrafficVolumeRatioJN = initData.getExtraLargeTrucksTrafficVolumeRatioJN(); + this.containerTruckTrafficVolumeHZ = initData.getContainerTruckTrafficVolumeHZ(); + this.containerTruckTrafficVolumeJN = initData.getContainerTruckTrafficVolumeJN(); + this.motorcycleTrafficVolumeHZ = initData.getMotorcycleTrafficVolumeHZ(); + this.motorcycleTrafficVolumeJN = initData.getMotorcycleTrafficVolumeJN(); + this.tractorTrafficVolumeHZ = initData.getTractorTrafficVolumeHZ(); + this.tractorTrafficVolumeJN = initData.getTractorTrafficVolumeJN(); + this.trafficVolumeHZ = initData.getTrafficVolumeHZ(); + this.trafficVolumeRatioHZ = initData.getTrafficVolumeRatioHZ(); + this.trafficVolumeJN = initData.getTrafficVolumeJN(); + this.trafficVolumeRatioJN = initData.getTrafficVolumeRatioJN(); + this.allTrafficVolume = initData.getAllTrafficVolume(); + this.avgDailyTrafficVolume = initData.getAvgDailyTrafficVolume(); + this.yoyGrowthRate = initData.getYoyGrowthRate(); + this.momGrowthRate = initData.getMomGrowthRate(); + } +} diff --git a/zc-business/src/main/java/com/zc/business/mapper/DcTrafficSurveyDataMapper.java b/zc-business/src/main/java/com/zc/business/mapper/DcTrafficSurveyDataMapper.java index 4991899d..ce4a3cde 100644 --- a/zc-business/src/main/java/com/zc/business/mapper/DcTrafficSurveyDataMapper.java +++ b/zc-business/src/main/java/com/zc/business/mapper/DcTrafficSurveyDataMapper.java @@ -34,6 +34,7 @@ public interface DcTrafficSurveyDataMapper List selectMonth(DcTrafficSurveyData dcTrafficSurveyData); List selectYear(DcTrafficSurveyData dcTrafficSurveyData); List selectRange(DcTrafficSurveyData dcTrafficSurveyData); + List selectWeek(DcTrafficSurveyData dcTrafficSurveyData); /** * 新增一类交调数据 diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcTrafficSurveyDataServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcTrafficSurveyDataServiceImpl.java index a2505922..05e073f9 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcTrafficSurveyDataServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcTrafficSurveyDataServiceImpl.java @@ -4,6 +4,8 @@ import java.io.IOException; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.*; import java.util.stream.Collectors; @@ -70,6 +72,8 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi dataList = dcTrafficSurveyDataMapper.selectYear(dcTrafficSurveyData); } else if (dcTrafficSurveyData.getType().equals("range")){ dataList = dcTrafficSurveyDataMapper.selectRange(dcTrafficSurveyData); + } else if (dcTrafficSurveyData.getType().equals("week")){ + dataList = dcTrafficSurveyDataMapper.selectWeek(dcTrafficSurveyData); } Map>>> groupedData = dataList.stream() .collect(Collectors.groupingBy( @@ -209,6 +213,8 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi dataList = dcTrafficSurveyDataMapper.selectYear(dcTrafficSurveyData); } else if (dcTrafficSurveyData.getType().equals("range")){ dataList = dcTrafficSurveyDataMapper.selectRange(dcTrafficSurveyData); + } else if (dcTrafficSurveyData.getType().equals("week")){ + dataList = dcTrafficSurveyDataMapper.selectWeek(dcTrafficSurveyData); } Map>>> groupedData = dataList.stream() .collect(Collectors.groupingBy( @@ -281,6 +287,41 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi busRow.put("total",bus); goodsCarRow.put("total",goodsCar); totalRow.put("total",total); + + //查询周数据时,计算周平均、日均 + if (dcTrafficSurveyData.getType().equals("week")){ + LocalDate timestamp = dcTrafficSurveyData.getTimestamp().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate now = LocalDate.now(); + //查询的是当年 + if (now.getYear() == timestamp.getYear()){ + int dayOfYear = now.getDayOfYear(); + row.put("avgDay",total / dayOfYear); + busRow.put("avgDay",bus / dayOfYear); + goodsCarRow.put("avgDay",goodsCar / dayOfYear); + totalRow.put("avgDay",total / dayOfYear); + + int weekCount = (dayOfYear - 1) / 7 + 1; + row.put("avgWeek",total / weekCount); + busRow.put("avgWeek",bus / weekCount); + goodsCarRow.put("avgWeek",goodsCar / weekCount); + totalRow.put("avgWeek",total / weekCount); + } else { + int dayOfYear = timestamp.lengthOfYear(); + row.put("avgDay",total / dayOfYear); + busRow.put("avgDay",bus / dayOfYear); + goodsCarRow.put("avgDay",goodsCar / dayOfYear); + totalRow.put("avgDay",total / dayOfYear); + + row.put("avgWeek",total / 53); + busRow.put("avgWeek",bus / 53); + goodsCarRow.put("avgWeek",goodsCar / 53); + totalRow.put("avgWeek",total / 53); + } + + } + } else { for (Map columnMap : columnList) { row.put(columnMap.get("key"),0); @@ -320,6 +361,45 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi busRow.put("total",Integer.parseInt(busRow.get("total").toString()) + bus); goodsCarRow.put("total",Integer.parseInt(goodsCarRow.get("total").toString()) + goodsCar); totalRow.put("total",Integer.parseInt(totalRow.get("total").toString()) + total); + + //查询周数据时,计算周平均、日均 + if (dcTrafficSurveyData.getType().equals("week")){ + LocalDate timestamp = dcTrafficSurveyData.getTimestamp().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate now = LocalDate.now(); + + int busTotal = Integer.parseInt(busRow.get("total").toString()); + int goodsCarTotal = Integer.parseInt(goodsCarRow.get("total").toString()); + int totalRowTotal = Integer.parseInt(totalRow.get("total").toString()); + + //查询的是当年 + if (now.getYear() == timestamp.getYear()){ + int dayOfYear = now.getDayOfYear(); + row.put("avgDay",total / dayOfYear); + busRow.put("avgDay",busTotal / dayOfYear); + goodsCarRow.put("avgDay",goodsCarTotal / dayOfYear); + totalRow.put("avgDay",totalRowTotal / dayOfYear); + + int weekCount = (dayOfYear - 1) / 7 + 1; + row.put("avgWeek",total / weekCount); + busRow.put("avgWeek",busTotal / weekCount); + goodsCarRow.put("avgWeek",goodsCarTotal / weekCount); + totalRow.put("avgWeek",totalRowTotal / weekCount); + } else { + int dayOfYear = timestamp.lengthOfYear(); + row.put("avgDay",total / dayOfYear); + busRow.put("avgDay",busTotal / dayOfYear); + goodsCarRow.put("avgDay",goodsCarTotal / dayOfYear); + totalRow.put("avgDay",totalRowTotal / dayOfYear); + + row.put("avgWeek",total / 53); + busRow.put("avgWeek",busTotal / 53); + goodsCarRow.put("avgWeek",goodsCarTotal / 53); + totalRow.put("avgWeek",totalRowTotal / 53); + } + + } } else { for (Map columnMap : columnList) { row.put(columnMap.get("key"),0); @@ -347,8 +427,12 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi Integer allTotal = Integer.valueOf(totalRow.get("total").toString()); if (allTotal > 0){ busRatioRow.put("total",String.format("%.2f",(double) allBusTotal / allTotal * 100) + "%"); + busRatioRow.put("avgWeek",String.format("%.2f",(double) allBusTotal / allTotal * 100) + "%"); + busRatioRow.put("avgDay",String.format("%.2f",(double) allBusTotal / allTotal * 100) + "%"); } else { busRatioRow.put("total","0.00%"); + busRatioRow.put("avgWeek","0.00%"); + busRatioRow.put("avgDay","0.00%"); } rowList.add(busRatioRow); @@ -370,8 +454,12 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi Integer allGoodsCarTotal = Integer.valueOf(goodsCarRow.get("total").toString()); if (allTotal > 0){ goodsCarRatioRow.put("total",String.format("%.2f",(double) allGoodsCarTotal / allTotal * 100) + "%"); + goodsCarRatioRow.put("avgWeek",String.format("%.2f",(double) allGoodsCarTotal / allTotal * 100) + "%"); + goodsCarRatioRow.put("avgDay",String.format("%.2f",(double) allGoodsCarTotal / allTotal * 100) + "%"); } else { goodsCarRatioRow.put("total","0.00%"); + goodsCarRatioRow.put("avgWeek","0.00%"); + goodsCarRatioRow.put("avgDay","0.00%"); } rowList.add(goodsCarRatioRow); @@ -409,6 +497,34 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi } row.put("total",total); totalRow.put("total",total); + + //查询周数据时,计算周平均、日均 + if (dcTrafficSurveyData.getType().equals("week")){ + LocalDate timestamp = dcTrafficSurveyData.getTimestamp().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate now = LocalDate.now(); + + + //查询的是当年 + if (now.getYear() == timestamp.getYear()){ + int dayOfYear = now.getDayOfYear(); + row.put("avgDay",total / dayOfYear); + totalRow.put("avgDay",total / dayOfYear); + + int weekCount = (dayOfYear - 1) / 7 + 1; + row.put("avgWeek",total / weekCount); + totalRow.put("avgWeek",total / weekCount); + } else { + int dayOfYear = timestamp.lengthOfYear(); + row.put("avgDay",total / dayOfYear); + totalRow.put("avgDay",total / dayOfYear); + + row.put("avgWeek",total / 53); + totalRow.put("avgWeek",total / 53); + } + + } } else { for (Map columnMap : columnList) { row.put(columnMap.get("key"),0); @@ -438,6 +554,37 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi } row.put("total",total); totalRow.put("total",Integer.parseInt(totalRow.get("total").toString()) + total); + + //查询周数据时,计算周平均、日均 + if (dcTrafficSurveyData.getType().equals("week")){ + LocalDate timestamp = dcTrafficSurveyData.getTimestamp().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate now = LocalDate.now(); + + int totalRowTotal = Integer.parseInt(totalRow.get("total").toString()); + + //查询的是当年 + if (now.getYear() == timestamp.getYear()){ + int dayOfYear = now.getDayOfYear(); + row.put("avgDay",total / dayOfYear); + totalRow.put("avgDay",totalRowTotal / dayOfYear); + + int weekCount = (dayOfYear - 1) / 7 + 1; + row.put("avgWeek",total / weekCount); + totalRow.put("avgWeek",totalRowTotal / weekCount); + } else { + int dayOfYear = timestamp.lengthOfYear(); + row.put("avgDay",total / dayOfYear); + totalRow.put("avgDay",totalRowTotal / dayOfYear); + + row.put("avgWeek",total / 53); + totalRow.put("avgWeek",totalRowTotal / 53); + } + + } + + } else { for (Map columnMap : columnList) { row.put(columnMap.get("key"),0); @@ -497,6 +644,38 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi busRow.put("total",bus); goodsCarRow.put("total",goodsCar); totalRow.put("total",total); + + //查询周数据时,计算周平均、日均 + if (dcTrafficSurveyData.getType().equals("week")){ + LocalDate timestamp = dcTrafficSurveyData.getTimestamp().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate now = LocalDate.now(); + //查询的是当年 + if (now.getYear() == timestamp.getYear()){ + int dayOfYear = now.getDayOfYear(); + busRow.put("avgDay",bus / dayOfYear); + goodsCarRow.put("avgDay",goodsCar / dayOfYear); + totalRow.put("avgDay",total / dayOfYear); + + int weekCount = (dayOfYear - 1) / 7 + 1; + busRow.put("avgWeek",bus / weekCount); + goodsCarRow.put("avgWeek",goodsCar / weekCount); + totalRow.put("avgWeek",total / weekCount); + } else { + int dayOfYear = timestamp.lengthOfYear(); + row.put("avgDay",total / dayOfYear); + busRow.put("avgDay",bus / dayOfYear); + goodsCarRow.put("avgDay",goodsCar / dayOfYear); + totalRow.put("avgDay",total / dayOfYear); + + row.put("avgWeek",total / 53); + busRow.put("avgWeek",bus / 53); + goodsCarRow.put("avgWeek",goodsCar / 53); + totalRow.put("avgWeek",total / 53); + } + + } } //单个设备菏泽方向数据 @@ -523,6 +702,45 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi busRow.put("total",Integer.parseInt(busRow.get("total").toString()) + bus); goodsCarRow.put("total",Integer.parseInt(goodsCarRow.get("total").toString()) + goodsCar); totalRow.put("total",Integer.parseInt(totalRow.get("total").toString()) + total); + + //查询周数据时,计算周平均、日均 + if (dcTrafficSurveyData.getType().equals("week")){ + LocalDate timestamp = dcTrafficSurveyData.getTimestamp().toInstant() + .atZone(ZoneId.systemDefault()) + .toLocalDate(); + LocalDate now = LocalDate.now(); + + int busTotal = Integer.parseInt(busRow.get("total").toString()); + int goodsCarTotal = Integer.parseInt(goodsCarRow.get("total").toString()); + int totalRowTotal = Integer.parseInt(totalRow.get("total").toString()); + + //查询的是当年 + if (now.getYear() == timestamp.getYear()){ + int dayOfYear = now.getDayOfYear(); + row.put("avgDay",total / dayOfYear); + busRow.put("avgDay",busTotal / dayOfYear); + goodsCarRow.put("avgDay",goodsCarTotal / dayOfYear); + totalRow.put("avgDay",totalRowTotal / dayOfYear); + + int weekCount = (dayOfYear - 1) / 7 + 1; + row.put("avgWeek",total / weekCount); + busRow.put("avgWeek",busTotal / weekCount); + goodsCarRow.put("avgWeek",goodsCarTotal / weekCount); + totalRow.put("avgWeek",totalRowTotal / weekCount); + } else { + int dayOfYear = timestamp.lengthOfYear(); + row.put("avgDay",total / dayOfYear); + busRow.put("avgDay",busTotal / dayOfYear); + goodsCarRow.put("avgDay",goodsCarTotal / dayOfYear); + totalRow.put("avgDay",totalRowTotal / dayOfYear); + + row.put("avgWeek",total / 53); + busRow.put("avgWeek",busTotal / 53); + goodsCarRow.put("avgWeek",goodsCarTotal / 53); + totalRow.put("avgWeek",totalRowTotal / 53); + } + + } } //客车 @@ -544,8 +762,12 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi Integer allTotal = Integer.valueOf(totalRow.get("total").toString()); if (allTotal > 0){ busRatioRow.put("total",String.format("%.2f",(double) allBusTotal / allTotal * 100) + "%"); + busRatioRow.put("avgWeek",String.format("%.2f",(double) allBusTotal / allTotal * 100) + "%"); + busRatioRow.put("avgDay",String.format("%.2f",(double) allBusTotal / allTotal * 100) + "%"); } else { busRatioRow.put("total","0.00%"); + busRatioRow.put("avgWeek","0.00%"); + busRatioRow.put("avgDay","0.00%"); } rowList.add(busRatioRow); @@ -567,8 +789,12 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi Integer allGoodsCarTotal = Integer.valueOf(goodsCarRow.get("total").toString()); if (allTotal > 0){ goodsCarRatioRow.put("total",String.format("%.2f",(double) allGoodsCarTotal / allTotal * 100) + "%"); + goodsCarRatioRow.put("avgWeek",String.format("%.2f",(double) allGoodsCarTotal / allTotal * 100) + "%"); + goodsCarRatioRow.put("avgDay",String.format("%.2f",(double) allGoodsCarTotal / allTotal * 100) + "%"); } else { goodsCarRatioRow.put("total","0.00%"); + goodsCarRatioRow.put("avgWeek","0.00%"); + goodsCarRatioRow.put("avgDay","0.00%"); } rowList.add(goodsCarRatioRow); @@ -588,6 +814,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -597,6 +827,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -606,6 +840,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -615,6 +853,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -624,6 +866,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -633,6 +879,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); //单个设备合计数据 @@ -643,6 +893,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); } else if (dcTrafficSurveyData.getRowType().equals("2")) { row = new HashMap<>(); @@ -652,6 +906,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -661,6 +919,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); //单个设备合计数据 @@ -671,6 +933,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); } else { row = new HashMap<>(); @@ -680,6 +946,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -689,6 +959,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -698,6 +972,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); row = new HashMap<>(); @@ -707,6 +985,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); //单个设备合计数据 @@ -717,6 +999,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi row.put(columnMap.get("key"), 0); } row.put("total", 0); + if (dcTrafficSurveyData.getType().equals("week")){ + row.put("avgWeek", 0); + row.put("avgDay", 0); + } rowList.add(row); } } @@ -772,6 +1058,13 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi startCal.add(Calendar.DATE, 1); } + } else if (dcTrafficSurveyData.getType().equals("week")){ + for (int i = 1; i <= 53; i++) { + column = new HashMap<>(); + column.put("label","第"+i+"周"); + column.put("key",String.valueOf(i)); + columnList.add(column); + } } return columnList; } @@ -903,6 +1196,11 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi dcTrafficVolumeDirectionData.setTractorTrafficVolumeJN(trafficVolumeData.getTractorTrafficVolume()); dcTrafficVolumeDirectionData.setTrafficVolumeJN(trafficVolumeData.getTrafficVolume()); } + + if ("5".equals(dcTrafficSurveyDataQueryParams.getType())){ + dcTrafficVolumeDirectionData.setAvgDailyTrafficVolume(dcTrafficVolumeDirectionData.getAvgDailyTrafficVolume() + trafficVolumeData.getAvgDailyTrafficVolume()); + } + } dcTrafficVolumeDirectionData.setAllTrafficVolume(dcTrafficVolumeDirectionData.getTrafficVolumeHZ()+dcTrafficVolumeDirectionData.getTrafficVolumeJN()); @@ -910,6 +1208,7 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi result.add(dcTrafficVolumeDirectionData); } + //自然合计值 DcTrafficVolumeDirectionData naturalTotal = new DcTrafficVolumeDirectionData(0); naturalTotal.setTime("自然合计值"); @@ -936,6 +1235,8 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi naturalTotal.setTrafficVolumeJN(naturalTotal.getTrafficVolumeJN() + dcTrafficVolumeDirectionDatum.getTrafficVolumeJN()); naturalTotal.setAllTrafficVolume(naturalTotal.getTrafficVolumeJN() + naturalTotal.getTrafficVolumeHZ()); } + naturalTotal.setAvgDailyTrafficVolume(null); + //折算值 DcTrafficVolumeDirectionData conversionValue = new DcTrafficVolumeDirectionData(0); conversionValue.setTime("折算值"); @@ -972,6 +1273,7 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi conversionValue.getTractorTrafficVolumeJN(); conversionValue.setTrafficVolumeJN(trafficVolumeJN); conversionValue.setAllTrafficVolume(trafficVolumeHZ + trafficVolumeJN); + conversionValue.setAvgDailyTrafficVolume(null); //自然平均值 DcTrafficVolumeDirectionData naturalAvg = new DcTrafficVolumeDirectionData(0); @@ -1007,6 +1309,8 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi naturalAvg.getTractorTrafficVolumeJN(); naturalAvg.setTrafficVolumeJN(naturalAvgTrafficVolumeJN); naturalAvg.setAllTrafficVolume(naturalAvgTrafficVolumeHZ + naturalAvgTrafficVolumeJN); + naturalAvg.setAvgDailyTrafficVolume(null); + //折算平均值 DcTrafficVolumeDirectionData conversionAvg = new DcTrafficVolumeDirectionData(0); @@ -1042,8 +1346,17 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi conversionAvg.getTractorTrafficVolumeJN(); conversionAvg.setTrafficVolumeJN(conversionAvgTrafficVolumeJN); conversionAvg.setAllTrafficVolume(conversionAvgTrafficVolumeHZ + conversionAvgTrafficVolumeJN); + conversionAvg.setAvgDailyTrafficVolume(null); + + if ("5".equals(dcTrafficSurveyDataQueryParams.getType())){ + result = result.stream() + .sorted(Comparator.comparingInt(d -> extractWeekNumber(d.getTime()))) + .collect(Collectors.toList()); + calculateGrowthRates(result, dcTrafficSurveyDataQueryParams); + } else { + result = result.stream().sorted(Comparator.comparing(DcTrafficVolumeDirectionData::getTime)).collect(Collectors.toList()); + } - result = result.stream().sorted(Comparator.comparing(DcTrafficVolumeDirectionData::getTime)).collect(Collectors.toList()); result.add(naturalTotal); result.add(conversionValue); result.add(naturalAvg); @@ -1078,6 +1391,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi carTypeData.setGoodsCarRatioJN(String.format("%.2f", (double) carTypeData.getGoodsCarJN() / carTypeData.getTrafficVolumeJN() * 100) + "%"); carTypeData.setTrafficVolumeRatioHZ(String.format("%.2f", (double) carTypeData.getTrafficVolumeHZ() / carTypeData.getAllTrafficVolume() * 100) + "%"); carTypeData.setTrafficVolumeRatioJN(String.format("%.2f", (double) carTypeData.getTrafficVolumeJN() / carTypeData.getAllTrafficVolume() * 100) + "%"); + carTypeData.setAvgDailyTrafficVolume(dcTrafficVolumeDirectionData.getAvgDailyTrafficVolume()); + carTypeData.setYoyGrowthRate(dcTrafficVolumeDirectionData.getYoyGrowthRate()); + carTypeData.setMomGrowthRate(dcTrafficVolumeDirectionData.getMomGrowthRate()); + carTypeResult.add(carTypeData); } @@ -1176,6 +1493,10 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi conversionAvg.getTractorTrafficVolume(); conversionAvg.setTrafficVolume(conversionAvgTrafficVolume); + if ("5".equals(dcTrafficSurveyDataQueryParams.getType())){ + calculateGrowthRatesForNonDirection(dcTrafficVolumeData, dcTrafficSurveyDataQueryParams); + } + dcTrafficVolumeData.add(naturalTotal); dcTrafficVolumeData.add(conversionValue); dcTrafficVolumeData.add(naturalAvg); @@ -1204,6 +1525,9 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi carTypeData.setBusRatio(String.format("%.2f", (double) carTypeData.getBus() / carTypeData.getTrafficVolume() * 100) + "%"); carTypeData.setGoodsCarRatio(String.format("%.2f", (double) carTypeData.getGoodsCar() / carTypeData.getTrafficVolume() * 100) + "%"); + carTypeData.setAvgDailyTrafficVolume(dcTrafficVolumeDatum.getAvgDailyTrafficVolume()); + carTypeData.setYoyGrowthRate(dcTrafficVolumeDatum.getYoyGrowthRate()); + carTypeData.setMomGrowthRate(dcTrafficVolumeDatum.getMomGrowthRate()); carTypeResult.add(carTypeData); } @@ -1264,7 +1588,13 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi result.add(dcTrafficSpeedDirectionData); } - result = result.stream().sorted(Comparator.comparing(DcTrafficSpeedDirectionData::getTime)).collect(Collectors.toList()); + if ("5".equals(dcTrafficSurveyDataQueryParams.getType())){ + result = result.stream() + .sorted(Comparator.comparingInt(d -> extractWeekNumber(d.getTime()))) + .collect(Collectors.toList()); + } else { + result = result.stream().sorted(Comparator.comparing(DcTrafficSpeedDirectionData::getTime)).collect(Collectors.toList()); + } DcTrafficSpeedDirectionData avgSpeed = new DcTrafficSpeedDirectionData(0); avgSpeed.setTime("车速平均值"); @@ -1390,7 +1720,158 @@ public class DcTrafficSurveyDataServiceImpl implements IDcTrafficSurveyDataServi return AjaxResult.success(dcTrafficSpeedData); } } + private void calculateGrowthRates(List currentData, DcTrafficSurveyDataQueryParams params) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(params.getDate()); + int currentYear = calendar.get(Calendar.YEAR); + + DcTrafficSurveyDataQueryParams yoyParams = new DcTrafficSurveyDataQueryParams(); + yoyParams.setIotDeviceId(params.getIotDeviceId()); + yoyParams.setType("5"); + yoyParams.setDataType("1"); + yoyParams.setDirection("2"); + yoyParams.setCarType(params.getCarType()); + + Calendar yoyCalendar = Calendar.getInstance(); + yoyCalendar.set(currentYear - 1, 0, 1); + yoyParams.setDate(yoyCalendar.getTime()); + + List yoyAllData = dcTrafficSurveyDataMapper.selectTrafficVolume(yoyParams); + + Map yoyWeekMap = new HashMap<>(); + for (DcTrafficVolumeData data : yoyAllData) { + int weekNum = extractWeekNumber(data.getTime()); + yoyWeekMap.put(weekNum, yoyWeekMap.getOrDefault(weekNum, 0) + data.getTrafficVolume()); + } + + for (DcTrafficVolumeDirectionData current : currentData) { + String weekStr = current.getTime(); + int weekNum = extractWeekNumber(weekStr); + + DcTrafficSurveyDataQueryParams momParams = new DcTrafficSurveyDataQueryParams(); + momParams.setIotDeviceId(params.getIotDeviceId()); + momParams.setType("5"); + momParams.setDataType("1"); + momParams.setDirection("2"); + momParams.setCarType(params.getCarType()); + + Calendar momCalendar = Calendar.getInstance(); + momCalendar.setTime(params.getDate()); + momCalendar.add(Calendar.WEEK_OF_YEAR, -1); + momParams.setDate(momCalendar.getTime()); + + List momData = dcTrafficSurveyDataMapper.selectTrafficVolume(momParams); + + Integer currentAllTrafficVolume = current.getAllTrafficVolume(); + Integer yoyTrafficVolume = yoyWeekMap.getOrDefault(weekNum, 0); + Integer momTrafficVolume = 0; + + for (DcTrafficVolumeData data : momData) { + String momWeekStr = data.getTime(); + int momWeekNum = extractWeekNumber(momWeekStr); + if (momWeekNum == weekNum - 1 || (weekNum == 1 && momWeekNum == 52)) { + momTrafficVolume += data.getTrafficVolume(); + } + } + + if (yoyTrafficVolume > 0) { + double yoyRate = ((double)(currentAllTrafficVolume - yoyTrafficVolume) / yoyTrafficVolume) * 100; + current.setYoyGrowthRate(String.format("%.2f", yoyRate) + "%"); + } else { + current.setYoyGrowthRate("-"); + } + if (momTrafficVolume > 0) { + double momRate = ((double)(currentAllTrafficVolume - momTrafficVolume) / momTrafficVolume) * 100; + current.setMomGrowthRate(String.format("%.2f", momRate) + "%"); + } else { + current.setMomGrowthRate("-"); + } + } + } + private void calculateGrowthRatesForNonDirection(List currentData, DcTrafficSurveyDataQueryParams params) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(params.getDate()); + int currentYear = calendar.get(Calendar.YEAR); + + DcTrafficSurveyDataQueryParams yoyParams = new DcTrafficSurveyDataQueryParams(); + yoyParams.setIotDeviceId(params.getIotDeviceId()); + yoyParams.setType("5"); + yoyParams.setDataType("1"); + yoyParams.setDirection("2"); + yoyParams.setCarType(params.getCarType()); + + Calendar yoyCalendar = Calendar.getInstance(); + yoyCalendar.set(currentYear - 1, 0, 1); + yoyParams.setDate(yoyCalendar.getTime()); + + List yoyAllData = dcTrafficSurveyDataMapper.selectTrafficVolume(yoyParams); + + Map yoyWeekMap = new HashMap<>(); + for (DcTrafficVolumeData data : yoyAllData) { + int weekNum = extractWeekNumber(data.getTime()); + yoyWeekMap.put(weekNum, yoyWeekMap.getOrDefault(weekNum, 0) + data.getTrafficVolume()); + } + + for (DcTrafficVolumeData current : currentData) { + String weekStr = current.getTime(); + int weekNum = extractWeekNumber(weekStr); + + DcTrafficSurveyDataQueryParams momParams = new DcTrafficSurveyDataQueryParams(); + momParams.setIotDeviceId(params.getIotDeviceId()); + momParams.setType("5"); + momParams.setDataType("1"); + momParams.setDirection("2"); + momParams.setCarType(params.getCarType()); + + Calendar momCalendar = Calendar.getInstance(); + momCalendar.setTime(params.getDate()); + momCalendar.add(Calendar.WEEK_OF_YEAR, -1); + momParams.setDate(momCalendar.getTime()); + + List momData = dcTrafficSurveyDataMapper.selectTrafficVolume(momParams); + + Integer currentTrafficVolume = current.getTrafficVolume(); + Integer yoyTrafficVolume = yoyWeekMap.getOrDefault(weekNum, 0); + Integer momTrafficVolume = 0; + + for (DcTrafficVolumeData data : momData) { + String momWeekStr = data.getTime(); + int momWeekNum = extractWeekNumber(momWeekStr); + if (momWeekNum == weekNum - 1 || (weekNum == 1 && momWeekNum == 52)) { + momTrafficVolume += data.getTrafficVolume(); + } + } + + if (yoyTrafficVolume > 0) { + double yoyRate = ((double)(currentTrafficVolume - yoyTrafficVolume) / yoyTrafficVolume) * 100; + current.setYoyGrowthRate(String.format("%.2f", yoyRate) + "%"); + } else { + current.setYoyGrowthRate("-"); + } + + if (momTrafficVolume > 0) { + double momRate = ((double)(currentTrafficVolume - momTrafficVolume) / momTrafficVolume) * 100; + current.setMomGrowthRate(String.format("%.2f", momRate) + "%"); + } else { + current.setMomGrowthRate("-"); + } + } + } + private int getWeekNumber(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + return calendar.get(Calendar.WEEK_OF_YEAR); + } + + private int extractWeekNumber(String weekStr) { + try { + String num = weekStr.replaceAll("[^0-9]", ""); + return Integer.parseInt(num); + } catch (Exception e) { + return 0; + } + } @Override public DcTrafficSurveyData formatTrafficSurveyData(DcTrafficSurveyData dcTrafficSurveyData,JSONArray directionData){ Integer followingPercentage = 0; //跟车百分比 diff --git a/zc-business/src/main/resources/mapper/business/DcTrafficSurveyDataMapper.xml b/zc-business/src/main/resources/mapper/business/DcTrafficSurveyDataMapper.xml index c92a9b20..48a7418f 100644 --- a/zc-business/src/main/resources/mapper/business/DcTrafficSurveyDataMapper.xml +++ b/zc-business/src/main/resources/mapper/business/DcTrafficSurveyDataMapper.xml @@ -81,6 +81,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and DATE_FORMAT(`timestamp`,'%Y-%m-%d') <= DATE_FORMAT(#{endTime},'%Y-%m-%d') GROUP BY iot_device_id,direction,times +