From 7b7cd4eb8f5abbdeac51b4566448424fabc79ebd Mon Sep 17 00:00:00 2001 From: lau572 <1010031226@qq.com> Date: Mon, 1 Jul 2024 15:25:40 +0800 Subject: [PATCH] =?UTF-8?q?echarts=E6=95=B0=E6=8D=AE=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../DcTrafficStatisticsController.java | 330 +++++++++++++++++- .../export/PassIndicatorTimeDistribution.java | 111 ++++++ .../export/RadarMapOfTrafficIndicators.java | 62 ++++ 3 files changed, 488 insertions(+), 15 deletions(-) create mode 100644 zc-business/src/main/java/com/zc/business/domain/export/PassIndicatorTimeDistribution.java create mode 100644 zc-business/src/main/java/com/zc/business/domain/export/RadarMapOfTrafficIndicators.java diff --git a/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java b/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java index 2558b1a3..957a3c72 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcTrafficStatisticsController.java @@ -11,10 +11,7 @@ import com.ruoyi.common.utils.StakeMarkUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.poi.ExcelUtil; import com.zc.business.domain.*; -import com.zc.business.domain.export.RealTimeTrafficFlow; -import com.zc.business.domain.export.SectionTrafficIndexAnalysis; -import com.zc.business.domain.export.SectionTrafficRanking; -import com.zc.business.domain.export.TrafficPeriodAnalysis; +import com.zc.business.domain.export.*; import com.zc.business.enums.StakeMarkRange; import com.zc.business.enums.UniversalEnum; import com.zc.business.request.DcTrafficMetricsDataRequest; @@ -32,9 +29,11 @@ import org.springframework.web.bind.annotation.*; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.text.DecimalFormat; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.*; +import java.util.function.Function; import java.util.stream.Collectors; @@ -454,7 +453,7 @@ public AjaxResult realTimeTrafficFlow(String startDate, String direction,String String sectionName = value.getDescription(); SectionTrafficIndexAnalysis sectionTrafficIndexAnalysis = new SectionTrafficIndexAnalysis(); sectionTrafficIndexAnalysis.setName(value.getDescription()); - if (thisYearData.containsKey(sectionName)){ + if (thisYearData != null && thisYearData.containsKey(sectionName)){ Map sectionData = thisYearData.get(sectionName).get(UniversalEnum.ZERO.getNumber()); sectionTrafficIndexAnalysis.setCrowdingRate(sectionData.get("crowdingRate").toString()); sectionTrafficIndexAnalysis.setSaturationRate(sectionData.get("saturationRate").toString()); @@ -465,7 +464,7 @@ public AjaxResult realTimeTrafficFlow(String startDate, String direction,String sectionTrafficIndexAnalysis.setTrafficCompositionRate(UniversalEnum.ZERO.getValue()); } - if (lastYearData.containsKey(sectionName)){ + if (lastYearData != null && lastYearData.containsKey(sectionName)){ Map sectionData = lastYearData.get(sectionName).get(UniversalEnum.ZERO.getNumber()); sectionTrafficIndexAnalysis.setCrowdingRateLastYear(sectionData.get("crowdingRate").toString()); sectionTrafficIndexAnalysis.setSaturationRateLastYear(sectionData.get("saturationRate").toString()); @@ -491,6 +490,73 @@ public AjaxResult realTimeTrafficFlow(String startDate, String direction,String // 将查询结果封装为成功响应并返回 return AjaxResult.success(mapList); } + + @ApiOperation(value="导出交通指标时间分布",tags = {"ECharts导出"}) + @GetMapping("/history/exportPassIndicatorTimeDistribution") + public void exportPassIndicatorTimeDistribution(HttpServletResponse response,String startDate, String direction,String periodType){ + List list = new ArrayList<>(); + + String endDate = UniversalEnum.EMPTY_STRING.getValue(); + if (UniversalEnum.FOUR.getValue().equals(periodType)){ + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UniversalEnum.TIME_FORMAT_YEARS_MONTH_DAY.getValue()); + LocalDate inputDate = LocalDate.parse(startDate, formatter); + // 获取一年前的日期 + LocalDate end = inputDate.minusYears(1); + endDate = end.format(formatter); + } else if (UniversalEnum.THREE.getValue().equals(periodType)){ + String[] parts = startDate.split(UniversalEnum.SHORT_BAR.getValue()); + int year = Integer.parseInt(parts[UniversalEnum.ZERO.getNumber()]); + int month = Integer.parseInt(parts[UniversalEnum.ONE.getNumber()]); + + // 计算一年前的年份和月份 + year -= UniversalEnum.ONE.getNumber(); + // 如果计算后月份为0,则调整为上一年的12月 + if (month == UniversalEnum.ZERO.getNumber()) { + year -= UniversalEnum.ONE.getNumber(); + month = UniversalEnum.TWELVE.getNumber(); + } + endDate = String.format("%04d-%02d", year, month); + } else if (UniversalEnum.ONE.getValue().equals(periodType)){ + int year = Integer.parseInt(startDate) - UniversalEnum.ONE.getNumber(); + endDate = String.valueOf(year); + } + List> thisYearList = dcGantryMetricsStatisticsDataService.passIndicatorTimeDistribution(startDate,direction,periodType); + Map>> thisYearData = thisYearList.stream().collect(Collectors.groupingBy(item -> item.get("groupTime").toString())); + List> lastYearList = dcGantryMetricsStatisticsDataService.passIndicatorTimeDistribution(endDate,direction,periodType); + Map>> lastYearData = lastYearList.stream().collect(Collectors.groupingBy(item -> item.get("groupTime").toString())); + + Set allKey = new HashSet<>(); + if (thisYearData != null){ + allKey.addAll(thisYearData.keySet()); + } + if (lastYearData != null){ + allKey.addAll(lastYearData.keySet()); + } + + for (String key : allKey) { + PassIndicatorTimeDistribution passIndicatorTimeDistribution = new PassIndicatorTimeDistribution(); + passIndicatorTimeDistribution.setTime(key); + if (thisYearData != null && thisYearData.containsKey(key)){ + Map sectionData = thisYearData.get(key).get(UniversalEnum.ZERO.getNumber()); + passIndicatorTimeDistribution.setCrowdingRate(sectionData.get("crowdingRate").toString()); + passIndicatorTimeDistribution.setSaturationRate(sectionData.get("saturationRate").toString()); + passIndicatorTimeDistribution.setTrafficCompositionRate(sectionData.get("trafficCompositionRate").toString()); + } + + if (lastYearData != null && lastYearData.containsKey(key)){ + Map sectionData = lastYearData.get(key).get(UniversalEnum.ZERO.getNumber()); + passIndicatorTimeDistribution.setCrowdingRateLastYear(sectionData.get("crowdingRate").toString()); + passIndicatorTimeDistribution.setSaturationRateLastYear(sectionData.get("saturationRate").toString()); + passIndicatorTimeDistribution.setTrafficCompositionRateLastYear(sectionData.get("trafficCompositionRate").toString()); + } + list.add(passIndicatorTimeDistribution); + } + + ExcelUtil util = new ExcelUtil<>(PassIndicatorTimeDistribution.class); + util.exportExcel(response, list, "交通指标时间分布"); + // 将查询结果封装为成功响应并返回 + } + @ApiOperation("交通指标雷达图") @GetMapping("/history/radarMapOfTrafficIndicators") public AjaxResult radarMapOfTrafficIndicators(String startDate, String direction,String periodType ){ @@ -498,6 +564,73 @@ public AjaxResult realTimeTrafficFlow(String startDate, String direction,String // 将查询结果封装为成功响应并返回 return AjaxResult.success(map); } + + @ApiOperation(value="导出交通指标雷达图",tags = {"ECharts导出"}) + @GetMapping("/history/exportRadarMapOfTrafficIndicators") + public void exportRadarMapOfTrafficIndicators(HttpServletResponse response,String startDate, String direction,String periodType,Long ranking){ + List list = new ArrayList<>(); + + String endDate = UniversalEnum.EMPTY_STRING.getValue(); + if (UniversalEnum.FOUR.getValue().equals(periodType)){ + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UniversalEnum.TIME_FORMAT_YEARS_MONTH_DAY.getValue()); + LocalDate inputDate = LocalDate.parse(startDate, formatter); + // 获取一年前的日期 + LocalDate end = inputDate.minusYears(1); + endDate = end.format(formatter); + } else if (UniversalEnum.THREE.getValue().equals(periodType)){ + String[] parts = startDate.split(UniversalEnum.SHORT_BAR.getValue()); + int year = Integer.parseInt(parts[UniversalEnum.ZERO.getNumber()]); + int month = Integer.parseInt(parts[UniversalEnum.ONE.getNumber()]); + + // 计算一年前的年份和月份 + year -= UniversalEnum.ONE.getNumber(); + // 如果计算后月份为0,则调整为上一年的12月 + if (month == UniversalEnum.ZERO.getNumber()) { + year -= UniversalEnum.ONE.getNumber(); + month = UniversalEnum.TWELVE.getNumber(); + } + endDate = String.format("%04d-%02d", year, month); + } else if (UniversalEnum.ONE.getValue().equals(periodType)){ + int year = Integer.parseInt(startDate) - UniversalEnum.ONE.getNumber(); + endDate = String.valueOf(year); + } + Map map = dcGantryMetricsStatisticsDataService.radarMapOfTrafficIndicators(startDate,direction,periodType); + Map mapLastYear = dcGantryMetricsStatisticsDataService.radarMapOfTrafficIndicators(endDate,direction,periodType); + + RadarMapOfTrafficIndicators radarMapOfTrafficIndicators = new RadarMapOfTrafficIndicators(); + radarMapOfTrafficIndicators.setName("拥挤度"); + radarMapOfTrafficIndicators.setCurrentData(map.get("crowdingRate").toString()); + radarMapOfTrafficIndicators.setContemporaneousData(mapLastYear.get("crowdingRate").toString()); + list.add(radarMapOfTrafficIndicators); + + radarMapOfTrafficIndicators = new RadarMapOfTrafficIndicators(); + radarMapOfTrafficIndicators.setName("饱和度"); + if (map.get("saturationRate") instanceof Double){ + double saturationRate = (Double)map.get("saturationRate"); + radarMapOfTrafficIndicators.setCurrentData(String.format("%.4f", saturationRate)); + } else { + radarMapOfTrafficIndicators.setCurrentData("0"); + } + + if (mapLastYear.get("saturationRate") instanceof Double){ + double saturationRate = (Double)mapLastYear.get("saturationRate"); + radarMapOfTrafficIndicators.setContemporaneousData(String.format("%.4f", saturationRate)); + } else { + radarMapOfTrafficIndicators.setContemporaneousData("0"); + } + list.add(radarMapOfTrafficIndicators); + + radarMapOfTrafficIndicators = new RadarMapOfTrafficIndicators(); + radarMapOfTrafficIndicators.setName("交通特征组成指数"); + radarMapOfTrafficIndicators.setCurrentData(map.get("trafficCompositionRate").toString()); + radarMapOfTrafficIndicators.setContemporaneousData(mapLastYear.get("trafficCompositionRate").toString()); + list.add(radarMapOfTrafficIndicators); + + + ExcelUtil util = new ExcelUtil<>(RadarMapOfTrafficIndicators.class); + util.exportExcel(response, list, "交通指标雷达图"); + } + @ApiOperation("综合指标查询") @GetMapping("/history/comprehensiveIndexQuery") public TableDataInfo comprehensiveIndexQuery(ComprehensiveIndexQuery comprehensiveIndexQuery){ @@ -630,6 +763,182 @@ public AjaxResult trafficFlowAtTollStationEntranceHour(String startDate, String return AjaxResult.success(jsonArray); } + /** + * 导出收费站出入口实时车流量 + */ + @ApiOperation(value = "导出收费站出入口实时车流量",tags = {"ECharts导出"}) + @GetMapping("/history/exportTrafficFlowAtTollStationEntranceHour") + public void exportTrafficFlowAtTollStationEntranceHour(HttpServletResponse response) throws IOException, HttpException { + + response.setContentType(UniversalEnum.DERIVE_THE_TWO_WAY_REAL_TIME_TRAFFIC_FLOW_OF_THE_WHOLE_SECTION.getValue()); + response.setCharacterEncoding(UniversalEnum.LOWERCASE_UTF_8.getValue()); + String fileName = "收费站出入口实时车流量.xlsx"; + response.setHeader("Content-Disposition", "attachment; filename=" + fileName); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UniversalEnum.TIME_FORMAT_YEARS_MONTH_DAY.getValue()); + LocalDate currentDate = LocalDate.now(); + String now = currentDate.format(formatter); + + // 获取一年前的日期 + LocalDate oneYearAgo = currentDate.minusYears(UniversalEnum.ONE.getNumber()); + String lastYear = oneYearAgo.format(formatter); + + Set stationList = new HashSet<>(); + + // 本期入口 + List> thisYearEntrance = dcTrafficStatisticsService.trafficFlowAtTollStationEntrance(now, now, "1"); + Map>> thisYearEntranceData = new HashMap<>(); + if (thisYearEntrance != null && thisYearEntrance.size() > 0){ + thisYearEntranceData = thisYearEntrance.stream().collect(Collectors.groupingBy(item -> item.get("name"))); + stationList.addAll(thisYearEntranceData.keySet()); + } + + // 本期出口 + List> thisYearExport = dcTrafficStatisticsService.trafficFlowAtTollStationEntrance(now, now, "2"); + Map>> thisYearExportData = new HashMap<>(); + if (thisYearExport != null && thisYearExport.size() > 0){ + thisYearExportData = thisYearExport.stream().collect(Collectors.groupingBy(item -> item.get("name"))); + stationList.addAll(thisYearExportData.keySet()); + } + + // 去年入口 + List> lastYearEntrance = dcTrafficStatisticsService.trafficFlowAtTollStationEntrance(lastYear, lastYear, "1"); + Map>> lastYearEntranceData = new HashMap<>(); + if (lastYearEntrance != null && lastYearEntrance.size() > 0) { + lastYearEntranceData = lastYearEntrance.stream().collect(Collectors.groupingBy(item -> item.get("name"))); + stationList.addAll(lastYearEntranceData.keySet()); + } + + // 去年出口 + List> lastYearExport = dcTrafficStatisticsService.trafficFlowAtTollStationEntrance(lastYear, lastYear, "2"); + Map>> lastYearExportData = new HashMap<>(); + if (lastYearExport != null && lastYearExport.size() > 0) { + lastYearExportData = lastYearExport.stream().collect(Collectors.groupingBy(item -> item.get("name"))); + stationList.addAll(lastYearExportData.keySet()); + } + XSSFWorkbook workbook = new XSSFWorkbook(); // 创建工作簿 + Sheet sheet = workbook.createSheet(UniversalEnum.THE_WHOLE_SECTION_TWO_WAY_REAL_TIME_TRAFFIC_FLOW.getValue()); // 创建工作表 + + // 创建数据行样式 + CellStyle dataStyle = workbook.createCellStyle(); + dataStyle.setAlignment(HorizontalAlignment.CENTER); + dataStyle.setVerticalAlignment(VerticalAlignment.CENTER); + dataStyle.setBorderRight(BorderStyle.THIN); + dataStyle.setRightBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + dataStyle.setBorderLeft(BorderStyle.THIN); + dataStyle.setLeftBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + dataStyle.setBorderTop(BorderStyle.THIN); + dataStyle.setTopBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + dataStyle.setBorderBottom(BorderStyle.THIN); + dataStyle.setBottomBorderColor(IndexedColors.GREY_50_PERCENT.getIndex()); + Font dataFont = workbook.createFont(); + dataFont.setFontName(UniversalEnum.ARIAL.getValue()); + dataFont.setFontHeightInPoints((short) UniversalEnum.TEN.getNumber()); + dataStyle.setFont(dataFont); + + // 创建表头样式 + CellStyle headerStyle = workbook.createCellStyle(); + headerStyle.cloneStyleFrom(dataStyle); + headerStyle.setAlignment(HorizontalAlignment.CENTER); + headerStyle.setVerticalAlignment(VerticalAlignment.CENTER); + headerStyle.setFillForegroundColor(IndexedColors.GREY_50_PERCENT.getIndex()); + headerStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND); + Font headerFont = workbook.createFont(); + headerFont.setFontName(UniversalEnum.ARIAL.getValue()); + headerFont.setFontHeightInPoints((short) UniversalEnum.TEN.getNumber()); + headerFont.setBold(true); + headerFont.setColor(IndexedColors.WHITE.getIndex()); + headerStyle.setFont(headerFont); + + // 添加第一层级表头 + Row row = sheet.createRow(UniversalEnum.ZERO.getNumber()); + Cell cell = row.createCell(UniversalEnum.ZERO.getNumber()); + cell.setCellValue(UniversalEnum.TOLL_STATION.getValue()); + cell.setCellStyle(headerStyle); + cell = row.createCell(UniversalEnum.ONE.getNumber()); + cell.setCellValue(UniversalEnum.ENTRANCE.getValue()); + cell.setCellStyle(headerStyle); + cell = row.createCell(UniversalEnum.TWO.getNumber()); + cell.setCellValue(UniversalEnum.EMPTY_STRING.getValue()); + cell.setCellStyle(headerStyle);; + cell = row.createCell(UniversalEnum.THREE.getNumber()); + cell.setCellValue(UniversalEnum.EXIT.getValue()); + cell.setCellStyle(headerStyle); + cell = row.createCell(UniversalEnum.FOUR.getNumber()); + cell.setCellValue(UniversalEnum.EMPTY_STRING.getValue()); + cell.setCellStyle(headerStyle); + + // 添加第二层级表头(与第一层级对齐) + Row subHeaderRow1 = sheet.createRow(UniversalEnum.ONE.getNumber()); + cell = subHeaderRow1.createCell(UniversalEnum.ZERO.getNumber()); + cell.setCellValue(UniversalEnum.EMPTY_STRING.getValue()); + cell.setCellStyle(headerStyle); + cell = subHeaderRow1.createCell(UniversalEnum.ONE.getNumber()); + cell.setCellValue(UniversalEnum.CURRENT_TRAFFIC_FLOW.getValue()); + cell.setCellStyle(headerStyle); + + cell = subHeaderRow1.createCell(UniversalEnum.TWO.getNumber()); + cell.setCellValue(UniversalEnum.THE_SAME_PERIOD_LAST_YEAR.getValue()); + cell.setCellStyle(headerStyle); + cell = subHeaderRow1.createCell(UniversalEnum.THREE.getNumber()); + cell.setCellValue(UniversalEnum.CURRENT_TRAFFIC_FLOW.getValue()); + cell.setCellStyle(headerStyle); + + cell = subHeaderRow1.createCell(UniversalEnum.FOUR.getNumber()); + cell.setCellValue(UniversalEnum.THE_SAME_PERIOD_LAST_YEAR.getValue()); + cell.setCellStyle(headerStyle); + + //合并单元格,参数依次为起始行,结束行,起始列,结束列 (从0开始) + //路段名称 + sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ZERO.getNumber(), UniversalEnum.ONE.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ZERO.getNumber())); + //济南方向 + sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ZERO.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ONE.getNumber(), UniversalEnum.TWO.getNumber())); + //菏泽方向 + sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ZERO.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.THREE.getNumber(), UniversalEnum.FOUR.getNumber())); + + int i = 2; + for (String station : stationList) { + Row subHeaderRow = sheet.createRow(i); + cell = subHeaderRow.createCell(UniversalEnum.ZERO.getNumber()); + cell.setCellValue(station); + cell.setCellStyle(dataStyle); + + if (thisYearEntranceData.containsKey(station)){ + cell = subHeaderRow.createCell(UniversalEnum.ONE.getNumber()); + cell.setCellValue(thisYearEntranceData.get(station).get(0).get("value")); + cell.setCellStyle(dataStyle); + } + + if (lastYearEntranceData.containsKey(station)){ + cell = subHeaderRow.createCell(UniversalEnum.TWO.getNumber()); + cell.setCellValue(lastYearEntranceData.get(station).get(0).get("value")); + cell.setCellStyle(dataStyle); + } + + if (thisYearExportData.containsKey(station)){ + cell = subHeaderRow.createCell(UniversalEnum.THREE.getNumber()); + cell.setCellValue(thisYearExportData.get(station).get(0).get("value")); + cell.setCellStyle(dataStyle); + } + + if (lastYearExportData.containsKey(station)){ + cell = subHeaderRow.createCell(UniversalEnum.THREE.getNumber()); + cell.setCellValue(lastYearExportData.get(station).get(0).get("value")); + cell.setCellStyle(dataStyle); + } + i++; + } + + // 写入文件 + try (ServletOutputStream outputStream = response.getOutputStream()){ + workbook.write(outputStream); + } finally { + workbook.close(); + } + + + } + /** * 各收费站入口分车型小时车流量 */ @@ -685,15 +994,6 @@ public AjaxResult trafficFlowAtTollStationEntrance(String startDate, String endD String fileName = UniversalEnum.REAL_TIME_TRAFFIC_FLOW_IN_BOTH_DIRECTIONS_XLSX.name(); response.setHeader("Content-Disposition", "attachment; filename=" + fileName); - - DateTimeFormatter formatter = DateTimeFormatter.ofPattern(UniversalEnum.TIME_FORMAT_YEARS_MONTH_DAY.getValue()); - LocalDate currentDate = LocalDate.now(); - String now = currentDate.format(formatter); - - // 获取一年前的日期 - LocalDate oneYearAgo = currentDate.minusYears(UniversalEnum.ONE.getNumber()); - String lastYear = oneYearAgo.format(formatter); - Map>> map = dcTrafficStatisticsService.realTimeTrafficFlowHour(); if (map != null){ List> thisYearHZ = map.get(UniversalEnum.ONE.getValue()); diff --git a/zc-business/src/main/java/com/zc/business/domain/export/PassIndicatorTimeDistribution.java b/zc-business/src/main/java/com/zc/business/domain/export/PassIndicatorTimeDistribution.java new file mode 100644 index 00000000..d7e9865a --- /dev/null +++ b/zc-business/src/main/java/com/zc/business/domain/export/PassIndicatorTimeDistribution.java @@ -0,0 +1,111 @@ +package com.zc.business.domain.export; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 导出交通指标时间分布对象 + * + * @author ruoyi + * @date 2024-01-13 + */ +public class PassIndicatorTimeDistribution extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + + /** 时间 */ + @Excel(name = "时间") + private String time; + + /** 饱和度 */ + @Excel(name = "饱和度") + private String saturationRate; + /** 拥挤度 */ + @Excel(name = "拥挤度") + private String crowdingRate; + /** 交通组成特征指数 */ + @Excel(name = "交通组成特征指数") + private String trafficCompositionRate; + + /** 饱和度去年同期 */ + @Excel(name = "饱和度去年同期") + private String saturationRateLastYear; + /** 拥挤度去年同期 */ + @Excel(name = "拥挤度去年同期") + private String crowdingRateLastYear; + /** 交通组成特征指数去年同期 */ + @Excel(name = "交通组成特征指数去年同期") + private String trafficCompositionRateLastYear; + + public String getTime() { + return time; + } + + public void setTime(String time) { + this.time = time; + } + + public String getSaturationRate() { + return saturationRate; + } + + public void setSaturationRate(String saturationRate) { + this.saturationRate = saturationRate; + } + + public String getCrowdingRate() { + return crowdingRate; + } + + public void setCrowdingRate(String crowdingRate) { + this.crowdingRate = crowdingRate; + } + + public String getTrafficCompositionRate() { + return trafficCompositionRate; + } + + public void setTrafficCompositionRate(String trafficCompositionRate) { + this.trafficCompositionRate = trafficCompositionRate; + } + + public String getSaturationRateLastYear() { + return saturationRateLastYear; + } + + public void setSaturationRateLastYear(String saturationRateLastYear) { + this.saturationRateLastYear = saturationRateLastYear; + } + + public String getCrowdingRateLastYear() { + return crowdingRateLastYear; + } + + public void setCrowdingRateLastYear(String crowdingRateLastYear) { + this.crowdingRateLastYear = crowdingRateLastYear; + } + + public String getTrafficCompositionRateLastYear() { + return trafficCompositionRateLastYear; + } + + public void setTrafficCompositionRateLastYear(String trafficCompositionRateLastYear) { + this.trafficCompositionRateLastYear = trafficCompositionRateLastYear; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("time", getTime()) + .append("saturationRate", getSaturationRate()) + .append("crowdingRate", getCrowdingRate()) + .append("trafficCompositionRate", getTrafficCompositionRate()) + .append("saturationRateLastYear", getSaturationRateLastYear()) + .append("crowdingRateLastYear", getCrowdingRateLastYear()) + .append("trafficCompositionRateLastYear", getTrafficCompositionRateLastYear()) + .toString(); + } +} diff --git a/zc-business/src/main/java/com/zc/business/domain/export/RadarMapOfTrafficIndicators.java b/zc-business/src/main/java/com/zc/business/domain/export/RadarMapOfTrafficIndicators.java new file mode 100644 index 00000000..5ec3e42a --- /dev/null +++ b/zc-business/src/main/java/com/zc/business/domain/export/RadarMapOfTrafficIndicators.java @@ -0,0 +1,62 @@ +package com.zc.business.domain.export; + +import com.ruoyi.common.annotation.Excel; +import com.ruoyi.common.core.domain.BaseEntity; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +/** + * 导出交通指标雷达图对象 + * + * @author ruoyi + * @date 2024-01-13 + */ +public class RadarMapOfTrafficIndicators extends BaseEntity +{ + private static final long serialVersionUID = 1L; + + + /** 名称 */ + @Excel(name = "名称") + private String name; + + /** 本期指标 */ + @Excel(name = "本期指标") + private String currentData; + /** 去年同期 */ + @Excel(name = "去年同期") + private String contemporaneousData; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCurrentData() { + return currentData; + } + + public void setCurrentData(String currentData) { + this.currentData = currentData; + } + + public String getContemporaneousData() { + return contemporaneousData; + } + + public void setContemporaneousData(String contemporaneousData) { + this.contemporaneousData = contemporaneousData; + } + + @Override + public String toString() { + return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE) + .append("name", getName()) + .append("currentData", getCurrentData()) + .append("contemporaneousData", getContemporaneousData()) + .toString(); + } +}