|
@ -6,14 +6,20 @@ import com.zc.business.domain.DcEventListQuery; |
|
|
import com.zc.business.domain.export.*; |
|
|
import com.zc.business.domain.export.*; |
|
|
import com.zc.business.enums.UniversalEnum; |
|
|
import com.zc.business.enums.UniversalEnum; |
|
|
import com.zc.business.service.IDcTrafficIncidentsService; |
|
|
import com.zc.business.service.IDcTrafficIncidentsService; |
|
|
|
|
|
import com.zc.common.core.httpclient.exception.HttpException; |
|
|
import io.swagger.annotations.Api; |
|
|
import io.swagger.annotations.Api; |
|
|
import io.swagger.annotations.ApiOperation; |
|
|
import io.swagger.annotations.ApiOperation; |
|
|
import io.swagger.annotations.ApiParam; |
|
|
import io.swagger.annotations.ApiParam; |
|
|
import org.apache.ibatis.annotations.Param; |
|
|
import org.apache.ibatis.annotations.Param; |
|
|
|
|
|
import org.apache.poi.ss.usermodel.*; |
|
|
|
|
|
import org.apache.poi.ss.util.CellRangeAddress; |
|
|
|
|
|
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.beans.factory.annotation.Autowired; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
import org.springframework.web.bind.annotation.*; |
|
|
|
|
|
|
|
|
|
|
|
import javax.servlet.ServletOutputStream; |
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
import javax.servlet.http.HttpServletResponse; |
|
|
|
|
|
import java.io.IOException; |
|
|
import java.util.ArrayList; |
|
|
import java.util.ArrayList; |
|
|
import java.util.Date; |
|
|
import java.util.Date; |
|
|
import java.util.List; |
|
|
import java.util.List; |
|
@ -255,6 +261,297 @@ public class DcTrafficIncidentsController { |
|
|
return trafficIncidentsService.selectTollStationAnalysis(searchType,facilityIdList,controlType,startTime,endTime); |
|
|
return trafficIncidentsService.selectTollStationAnalysis(searchType,facilityIdList,controlType,startTime,endTime); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@ApiOperation(value="导出收费站统计分析table",tags = {"ECharts导出"}) |
|
|
|
|
|
@GetMapping("/exportSelectTollStationAnalysis") |
|
|
|
|
|
public void exportSelectTollStationAnalysis(HttpServletResponse response, |
|
|
|
|
|
@ApiParam(value="查询条件(1:站点,2:原因)", name="searchType", required=true) @RequestParam ("searchType") String searchType, |
|
|
|
|
|
@ApiParam(value="站点id", name="facilityId", required=false) @RequestParam (name="facilityId",required = false) String[] facilityIdList, |
|
|
|
|
|
@ApiParam(value="类型(1:封闭,2:限行)", name="controlType", required=false) @RequestParam (name="controlType",required = false) String controlType, |
|
|
|
|
|
@ApiParam(value="开始时间", name="startTime", required=true) @RequestParam ("startTime") String startTime, |
|
|
|
|
|
@ApiParam(value="结束时间", name="endTime", required=true) @RequestParam ("endTime") String endTime) throws IOException, HttpException { |
|
|
|
|
|
AjaxResult ajaxResult = trafficIncidentsService.selectTollStationAnalysis(searchType,facilityIdList,controlType,startTime,endTime); |
|
|
|
|
|
if ("1".equals(searchType)){ |
|
|
|
|
|
List<SelectTollStationAnalysis> list = new ArrayList<>(); |
|
|
|
|
|
if (ajaxResult.get("code").equals(UniversalEnum.TWO_HUNDRED.getNumber())) { |
|
|
|
|
|
List<Map<String,Object>> data = (List<Map<String,Object>>) ajaxResult.get("data"); |
|
|
|
|
|
|
|
|
|
|
|
Integer closeTotal = 0; |
|
|
|
|
|
Integer restrictionTotal = 0; |
|
|
|
|
|
Integer total = 0; |
|
|
|
|
|
for (Map<String, Object> datum : data) { |
|
|
|
|
|
SelectTollStationAnalysis selectTollStationAnalysis = new SelectTollStationAnalysis(); |
|
|
|
|
|
Integer facilityClose = Integer.parseInt(datum.get("facilityClose").toString()); |
|
|
|
|
|
Integer facilityRestriction = Integer.parseInt(datum.get("facilityRestriction").toString()); |
|
|
|
|
|
Integer sum = facilityClose + facilityRestriction; |
|
|
|
|
|
selectTollStationAnalysis.setFacilityName(datum.get("facilityName").toString()); |
|
|
|
|
|
selectTollStationAnalysis.setFacilityClose(facilityClose.toString()); |
|
|
|
|
|
selectTollStationAnalysis.setFacilityRestriction(facilityRestriction.toString()); |
|
|
|
|
|
selectTollStationAnalysis.setSum(sum.toString()); |
|
|
|
|
|
list.add(selectTollStationAnalysis); |
|
|
|
|
|
|
|
|
|
|
|
closeTotal += facilityClose; |
|
|
|
|
|
restrictionTotal += facilityRestriction; |
|
|
|
|
|
total += sum; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
SelectTollStationAnalysis selectTollStationAnalysis = new SelectTollStationAnalysis(); |
|
|
|
|
|
selectTollStationAnalysis.setFacilityName("合计"); |
|
|
|
|
|
selectTollStationAnalysis.setFacilityClose(closeTotal.toString()); |
|
|
|
|
|
selectTollStationAnalysis.setFacilityRestriction(restrictionTotal.toString()); |
|
|
|
|
|
selectTollStationAnalysis.setSum(total.toString()); |
|
|
|
|
|
list.add(selectTollStationAnalysis); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
ExcelUtil<SelectTollStationAnalysis> util = new ExcelUtil<>(SelectTollStationAnalysis.class); |
|
|
|
|
|
util.exportExcel(response, list, "收费站统计分析列表"); |
|
|
|
|
|
} else { |
|
|
|
|
|
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); |
|
|
|
|
|
headerStyle.setBorderRight(BorderStyle.THIN); |
|
|
|
|
|
headerStyle.setRightBorderColor(IndexedColors.WHITE.getIndex()); |
|
|
|
|
|
headerStyle.setBorderLeft(BorderStyle.THIN); |
|
|
|
|
|
headerStyle.setLeftBorderColor(IndexedColors.WHITE.getIndex()); |
|
|
|
|
|
headerStyle.setBorderTop(BorderStyle.THIN); |
|
|
|
|
|
headerStyle.setTopBorderColor(IndexedColors.WHITE.getIndex()); |
|
|
|
|
|
headerStyle.setBorderBottom(BorderStyle.THIN); |
|
|
|
|
|
headerStyle.setBottomBorderColor(IndexedColors.WHITE.getIndex()); |
|
|
|
|
|
|
|
|
|
|
|
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()); |
|
|
|
|
|
String[] row1 = new String[]{}; |
|
|
|
|
|
if ("2".equals(controlType)){ |
|
|
|
|
|
row1 = new String[]{"限行原因","","限行站次","","","","","限行时长","","","",""}; |
|
|
|
|
|
} else { |
|
|
|
|
|
row1 = new String[]{"封闭原因","","封闭站次","","","","","封闭时长","","","",""}; |
|
|
|
|
|
} |
|
|
|
|
|
for (int i = 0; i < row1.length; i++) { |
|
|
|
|
|
Cell cell = row.createCell(i); |
|
|
|
|
|
cell.setCellValue(row1[i]); |
|
|
|
|
|
cell.setCellStyle(headerStyle); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 添加第二层级表头(与第一层级对齐)
|
|
|
|
|
|
String[] row2 = new String[]{"","","目标时段","","去年同期时段","","同比(%)","目标时段","","去年同期时段","","同比(%)"}; |
|
|
|
|
|
Row subHeaderRow1 = sheet.createRow(UniversalEnum.ONE.getNumber()); |
|
|
|
|
|
for (int i = 0; i < row2.length; i++) { |
|
|
|
|
|
Cell cell = subHeaderRow1.createCell(i); |
|
|
|
|
|
cell.setCellValue(row2[i]); |
|
|
|
|
|
cell.setCellStyle(headerStyle); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// 添加第三层级表头
|
|
|
|
|
|
String[] row3 = new String[]{"","","站次","占比(%)","站次","占比(%)","","站次","占比(%)","站次","占比(%)",""}; |
|
|
|
|
|
Row subHeaderRow2 = sheet.createRow(UniversalEnum.TWO.getNumber()); |
|
|
|
|
|
for (int i = 0; i < row3.length; i++) { |
|
|
|
|
|
Cell cell = subHeaderRow2.createCell(i); |
|
|
|
|
|
cell.setCellValue(row3[i]); |
|
|
|
|
|
cell.setCellStyle(headerStyle); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//合并表头单元格,参数依次为起始行,结束行,起始列,结束列 (从0开始)
|
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ZERO.getNumber(), UniversalEnum.TWO.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ONE.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ZERO.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.TWO.getNumber(), UniversalEnum.SIX.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ZERO.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.SEVEN.getNumber(), UniversalEnum.ELEVEN.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ONE.getNumber(), UniversalEnum.ONE.getNumber(), UniversalEnum.TWO.getNumber(), UniversalEnum.THREE.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ONE.getNumber(), UniversalEnum.ONE.getNumber(), UniversalEnum.FOUR.getNumber(), UniversalEnum.FIVE.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ONE.getNumber(), UniversalEnum.TWO.getNumber(), UniversalEnum.SIX.getNumber(), UniversalEnum.SIX.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ONE.getNumber(), UniversalEnum.ONE.getNumber(), UniversalEnum.SEVEN.getNumber(), UniversalEnum.EIGHT.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ONE.getNumber(), UniversalEnum.ONE.getNumber(), UniversalEnum.NINE.getNumber(), UniversalEnum.TEN.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ONE.getNumber(), UniversalEnum.TWO.getNumber(), UniversalEnum.ELEVEN.getNumber(), UniversalEnum.ELEVEN.getNumber())); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (ajaxResult.get("code").equals(UniversalEnum.TWO_HUNDRED.getNumber())) { |
|
|
|
|
|
List<Map<String, Object>> data = (List<Map<String, Object>>) ajaxResult.get("data"); |
|
|
|
|
|
//行号
|
|
|
|
|
|
int rowIndex = 3; |
|
|
|
|
|
//先塞入恶劣天气类型数据
|
|
|
|
|
|
for (int i = 2; i < 9; i++) { |
|
|
|
|
|
Map<String, Object> map = data.get(i); |
|
|
|
|
|
Row subHeaderRow = sheet.createRow(rowIndex); |
|
|
|
|
|
Cell cell = subHeaderRow.createCell(UniversalEnum.ZERO.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("controlCauseName").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.ONE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("causeTypeName").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.TWO.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("num").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.THREE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("numRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.FOUR.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearNum").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.FIVE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearNumRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.SIX.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("yearNumRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.SEVEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("minuteTime").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.EIGHT.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("timeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.NINE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearTime").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.TEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearTimeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.ELEVEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("yearTimeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
|
|
|
|
|
|
rowIndex++; |
|
|
|
|
|
} |
|
|
|
|
|
//再塞入车流量大、交通事故
|
|
|
|
|
|
for (int i = 0; i < 2; i++) { |
|
|
|
|
|
Map<String, Object> map = data.get(i); |
|
|
|
|
|
Row subHeaderRow = sheet.createRow(rowIndex); |
|
|
|
|
|
Cell cell = subHeaderRow.createCell(UniversalEnum.ZERO.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("controlCauseName").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.ONE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("causeTypeName").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.TWO.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("num").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.THREE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("numRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.FOUR.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearNum").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.FIVE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearNumRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.SIX.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("yearNumRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.SEVEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("minuteTime").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.EIGHT.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("timeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.NINE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearTime").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.TEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearTimeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.ELEVEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("yearTimeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
|
|
|
|
|
|
rowIndex++; |
|
|
|
|
|
} |
|
|
|
|
|
//最后塞入施工、警备任务、其他
|
|
|
|
|
|
for (int i = 9; i < 12; i++) { |
|
|
|
|
|
Map<String, Object> map = data.get(i); |
|
|
|
|
|
Row subHeaderRow = sheet.createRow(rowIndex); |
|
|
|
|
|
Cell cell = subHeaderRow.createCell(UniversalEnum.ZERO.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("controlCauseName").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.ONE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("causeTypeName").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.TWO.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("num").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.THREE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("numRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.FOUR.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearNum").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.FIVE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearNumRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.SIX.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("yearNumRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.SEVEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("minuteTime").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.EIGHT.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("timeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.NINE.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearTime").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.TEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("lastYearTimeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
cell = subHeaderRow.createCell(UniversalEnum.ELEVEN.getNumber()); |
|
|
|
|
|
cell.setCellValue(map.get("yearTimeRatio").toString()); |
|
|
|
|
|
cell.setCellStyle(dataStyle); |
|
|
|
|
|
|
|
|
|
|
|
rowIndex++; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//合并数据单元格,参数依次为起始行,结束行,起始列,结束列 (从0开始)
|
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.THREE.getNumber(), UniversalEnum.NINE.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ZERO.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.TEN.getNumber(), UniversalEnum.TEN.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ONE.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.ELEVEN.getNumber(), UniversalEnum.ELEVEN.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ONE.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.TWELVE.getNumber(), UniversalEnum.TWELVE.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ONE.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.THIRTEEN.getNumber(), UniversalEnum.THIRTEEN.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ONE.getNumber())); |
|
|
|
|
|
sheet.addMergedRegion(new CellRangeAddress(UniversalEnum.FOURTEEN.getNumber(), UniversalEnum.FOURTEEN.getNumber(), UniversalEnum.ZERO.getNumber(), UniversalEnum.ONE.getNumber())); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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); |
|
|
|
|
|
// 写入文件
|
|
|
|
|
|
try (ServletOutputStream outputStream = response.getOutputStream()){ |
|
|
|
|
|
workbook.write(outputStream); |
|
|
|
|
|
} finally { |
|
|
|
|
|
workbook.close(); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
/** |
|
|
/** |
|
|
* @Description 路网管控-事件管控分析-收费站统计分析echarts(当月) |
|
|
* @Description 路网管控-事件管控分析-收费站统计分析echarts(当月) |
|
|
* |
|
|
* |
|
|