From f9359a3c2d801396542244ec1a0d0fa469ace925 Mon Sep 17 00:00:00 2001 From: wangsixiang <2970484253@qq.com> Date: Thu, 22 Aug 2024 17:10:26 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=AB=E7=99=BD=E5=AF=BC=E5=87=BA=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/DcSdhsEventController.java | 78 ++- .../com/zc/business/enums/UniversalEnum.java | 9 +- .../business/service/IDcSdhsEventService.java | 22 + .../service/impl/DcSdhsEventServiceImpl.java | 458 ++++++++++++++++++ .../resources/wordTemplate/charSection.docx | Bin 24051 -> 24296 bytes .../wordTemplate/congestedLocation.docx | Bin 0 -> 23840 bytes .../wordTemplate/congestionTime.docx | Bin 0 -> 24136 bytes .../resources/wordTemplate/typeAnalysis.docx | Bin 24109 -> 24342 bytes 8 files changed, 562 insertions(+), 5 deletions(-) create mode 100644 zc-business/src/main/resources/wordTemplate/congestedLocation.docx create mode 100644 zc-business/src/main/resources/wordTemplate/congestionTime.docx diff --git a/zc-business/src/main/java/com/zc/business/controller/DcSdhsEventController.java b/zc-business/src/main/java/com/zc/business/controller/DcSdhsEventController.java index 2e1f0c9e..6ca262f8 100644 --- a/zc-business/src/main/java/com/zc/business/controller/DcSdhsEventController.java +++ b/zc-business/src/main/java/com/zc/business/controller/DcSdhsEventController.java @@ -2,6 +2,9 @@ package com.zc.business.controller; import com.ruoyi.common.config.RuoYiConfig; import com.ruoyi.common.core.domain.AjaxResult; +import com.zc.business.domain.DcSdhsEvent; +import com.zc.business.domain.DcSdhsEventQuery; +import com.zc.business.enums.UniversalEnum; import com.zc.business.domain.DcSdhsEventQuery; import com.zc.business.enums.UniversalEnum; import com.ruoyi.common.utils.SecurityUtils; @@ -12,6 +15,16 @@ import com.zc.business.service.IDcSdhsEventService; import com.zc.business.utils.PoiUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.xwpf.usermodel.XWPFChart; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFTable; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth; import io.swagger.annotations.ApiParam; import org.apache.poi.xwpf.usermodel.ParagraphAlignment; import org.apache.poi.xwpf.usermodel.XWPFDocument; @@ -26,8 +39,24 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.apache.poi.xwpf.usermodel.*; import org.openxmlformats.schemas.wordprocessingml.x2006.main.*; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import sun.reflect.generics.tree.VoidDescriptor; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.InputStream; +import java.math.BigInteger; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import static com.zc.business.utils.PoiUtil.mergeChart; +import static com.zc.business.utils.PoiUtil.setTableFonts; import javax.servlet.http.HttpServletResponse; import java.io.FileOutputStream; @@ -81,6 +110,47 @@ public class DcSdhsEventController { return dcSdhsEventService.importData(fileName,fileUrl); } + //事故多发路段分析 + @ApiOperation("查询事故多发路段分析") + @PostMapping("/sectionAnalysis") + public AjaxResult sectionAnalysis(@RequestBody DcSdhsEventQuery dcSdhsEventQuery){ + return AjaxResult.success(dcSdhsEventService.accidentSectionAnalysis(dcSdhsEventQuery)); + } + //事故类型分析 + @ApiOperation("查询事故类型分析") + @PostMapping("/typeAnalysis") + public AjaxResult accidentTypeAnalysis(@RequestBody DcSdhsEventQuery dcSdhsEventQuery){ + return AjaxResult.success(dcSdhsEventService.accidentTypeAnalysis(dcSdhsEventQuery)); + } + //事故拥堵时间 + @ApiOperation("查询事故拥堵时间分析") + @PostMapping("/congestedTime") + public AjaxResult accidentCongestedTime(@RequestBody DcSdhsEventQuery dcSdhsEventQuery){ + return AjaxResult.success(dcSdhsEventService.accidentCongestedTime(dcSdhsEventQuery)); + } + //事故拥堵地点 + @ApiOperation("查询事故拥堵地点分析") + @PostMapping("/congestedLocation") + public AjaxResult accidentCongestedLocation(@RequestBody DcSdhsEventQuery dcSdhsEventQuery){ + return AjaxResult.success(dcSdhsEventService.accidentCongestedLocation(dcSdhsEventQuery)); + } + + //事故多发路段、类型分析导出 + @PostMapping("/sectionTypeAnalysisExport") + public void sectionTypeAnalysisExport(HttpServletResponse response,@RequestBody DcSdhsEventQuery dcSdhsEventQuery) throws IOException { + // 读取Word模板 + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.EXPORT_TRAFFIC_REPORT.getValue()); + XWPFDocument newDoc = new XWPFDocument(inputStream); + dcSdhsEventService.sectionAnalysisExport(newDoc,dcSdhsEventQuery); + dcSdhsEventService.accidentTypeAnalysisExport(newDoc,dcSdhsEventQuery); + dcSdhsEventService.accidentCongestedTimeExport(newDoc,dcSdhsEventQuery); + dcSdhsEventService.accidentCongestedLocationExport(newDoc,dcSdhsEventQuery); + // 不保存直接返回文件流 + newDoc.write(response.getOutputStream()); + // 关闭文档 + newDoc.close(); + System.out.println("生成通行情况快报成功!"); + } @PostMapping("/export") @ApiOperation("导出") public void trafficSituationReport(HttpServletResponse response,@RequestBody DcSdhsEventQuery dcSdhsEventQuery) throws Exception { @@ -113,10 +183,10 @@ public class DcSdhsEventController { for (String trafficIncidentType : exportKey) { if ("1".equals(trafficIncidentType)){ //事故多发路段 - + dcSdhsEventService.sectionAnalysisExport(newDoc,dcSdhsEventQuery); } else if ("2".equals(trafficIncidentType)){ //事件类型分析 - + dcSdhsEventService.accidentTypeAnalysisExport(newDoc,dcSdhsEventQuery); } else if ("3".equals(trafficIncidentType)){ //事故车型分析 //事故车型 @@ -165,10 +235,10 @@ public class DcSdhsEventController { for (String trafficIncidentType : exportKey) { if ("11".equals(trafficIncidentType)){ //拥堵地点统计 - + dcSdhsEventService.accidentCongestedLocationExport(newDoc,dcSdhsEventQuery); } else if ("12".equals(trafficIncidentType)){ //路段平均拥堵时长 - + dcSdhsEventService.accidentCongestedTimeExport(newDoc,dcSdhsEventQuery); } } diff --git a/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java b/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java index 0ae7cf56..93eb0450 100644 --- a/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java +++ b/zc-business/src/main/java/com/zc/business/enums/UniversalEnum.java @@ -105,7 +105,14 @@ public enum UniversalEnum { // 图模板2 DRAWING_TEMPLATE_2(0, "wordTemplate/chartTemplate2.docx"), - + // 路段事故模板 + CHAR_SECTION(0, "wordTemplate/charSection.docx"), + // 事件类型模板 + TYPE_ANALYSIS(0, "wordTemplate/typeAnalysis.docx"), + //事故拥堵时长模板 + CONGESTION_TIME(0, "wordTemplate/congestionTime.docx"), + //事故拥堵地点模板 + CONGESTED_LOCATION(0, "wordTemplate/congestedLocation.docx"), // 总体情况 GENERAL_SITUATION(0, "总体情况"), diff --git a/zc-business/src/main/java/com/zc/business/service/IDcSdhsEventService.java b/zc-business/src/main/java/com/zc/business/service/IDcSdhsEventService.java index 1b030d7e..39f38e4a 100644 --- a/zc-business/src/main/java/com/zc/business/service/IDcSdhsEventService.java +++ b/zc-business/src/main/java/com/zc/business/service/IDcSdhsEventService.java @@ -1,6 +1,10 @@ package com.zc.business.service; import com.ruoyi.common.core.domain.AjaxResult; +import com.zc.business.domain.DcSdhsEvent; +import com.zc.business.domain.DcSdhsEventQuery; +import org.apache.poi.xddf.usermodel.XDDFAdjustHandleXY; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import com.zc.business.domain.*; import org.apache.poi.xwpf.usermodel.XWPFDocument; import com.zc.business.domain.DcSdhsEventQuery; @@ -26,6 +30,24 @@ public interface IDcSdhsEventService AjaxResult getFileInfo(); + + //事故多发路段分析 + public Map accidentSectionAnalysis(DcSdhsEventQuery dcSdhsEventQuery); + //事故类型分析 + public Map accidentTypeAnalysis(DcSdhsEventQuery dcSdhsEventQuery); + //事故拥堵地点 + public Map accidentCongestedLocation(DcSdhsEventQuery dcSdhsEventQuery); + //事故拥堵时间 + public Map accidentCongestedTime(DcSdhsEventQuery dcSdhsEventQuery); + //事故多发路段分析导出 + public void sectionAnalysisExport(XWPFDocument doc,DcSdhsEventQuery dcSdhsEventQuery); + //事故类型分析导出 + public void accidentTypeAnalysisExport(XWPFDocument doc,DcSdhsEventQuery dcSdhsEventQuery); + //事故拥堵时长导出 + void accidentCongestedTimeExport(XWPFDocument doc,DcSdhsEventQuery dcSdhsEventQuery); + //事故拥堵地点导出 + void accidentCongestedLocationExport(XWPFDocument doc,DcSdhsEventQuery dcSdhsEventQuery); + AjaxResult selectRegionAnalysis(DcSdhsEventQuery dcSdhsEventQuery); void exportRegionAnalysis(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery); diff --git a/zc-business/src/main/java/com/zc/business/service/impl/DcSdhsEventServiceImpl.java b/zc-business/src/main/java/com/zc/business/service/impl/DcSdhsEventServiceImpl.java index 5b50cd82..8c11a9bb 100644 --- a/zc-business/src/main/java/com/zc/business/service/impl/DcSdhsEventServiceImpl.java +++ b/zc-business/src/main/java/com/zc/business/service/impl/DcSdhsEventServiceImpl.java @@ -20,6 +20,17 @@ import com.zc.business.utils.PoiUtil; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellType; import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.xssf.usermodel.XSSFSheet; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.apache.poi.xwpf.usermodel.XWPFChart; +import org.apache.poi.xwpf.usermodel.XWPFDocument; +import org.apache.poi.xwpf.usermodel.XWPFTable; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth; +import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth; +import com.zc.business.utils.PoiUtil; +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; @@ -34,6 +45,16 @@ import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.math.BigInteger; +import java.text.DecimalFormat; +import java.util.ArrayList; + + +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.io.InputStream; +import java.math.BigInteger; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; @@ -48,6 +69,9 @@ import java.util.stream.Collectors; import static com.zc.business.utils.PoiUtil.*; +import static com.zc.business.utils.PoiUtil.mergeChart; +import static com.zc.business.utils.PoiUtil.setTableFonts; + /** * 高速云事件分析Service业务层处理 * @@ -160,6 +184,440 @@ public class DcSdhsEventServiceImpl implements IDcSdhsEventService { redisCache.setCacheMapValue(RedisKeyConstants.SDHS_EVENT_FILE, now.getTime(), fileInfo); return AjaxResult.success("导入成功"); } + //事故多发路段分析 + @Override + public Map accidentSectionAnalysis(DcSdhsEventQuery dcSdhsEventQuery) { + List cacheList = redisCache.getCacheList(RedisKeyConstants.SDHS_EVENT); + Map groupCountMap = new HashMap<>(); + try { + long startTimeMillis = dcSdhsEventQuery.getStartTime().getTime(); + long endTimeMillis = dcSdhsEventQuery.getEndTime().getTime(); +// String direction = dcSdhsEventQuery.getDirection();//方向 + for (DcSdhsEvent event : cacheList) { + if (event.getStartTime() == null || event.getEndTime() == null || event.getStakeMark() == null) { + continue; + } + + if (!(event.getStartTime().getTime() >= startTimeMillis && event.getEndTime().getTime() <= endTimeMillis)) { + continue; + } + String kmStr = event.getStakeMark().substring(1); // 假设总是以"K"开头 + if (org.apache.commons.lang3.StringUtils.isBlank(kmStr)) { + continue; + } + int km = Integer.parseInt(kmStr.split("\\+")[0]); // 假设+后面还有其他内容,我们只取+前面的部分 + + // 计算分组startKm,确保是5的倍数且不大于km + int startKm = ((km / 10) * 10) + (km % 10 >= 5 ? 10 : 0); + startKm = startKm - startKm % 5; // 确保startKm是5的倍数 + if (startKm%5==0){ + if ((startKm / 5) % 2 == 0) { + startKm -= 5; + } + } + // 计算分组endKm,找到比startKm大、最接近的、以5结尾的数 + int endKm = startKm + 10; + while (endKm % 5 != 0) { + endKm++; + } + // 构造分组key + String groupKey = "K" + startKm + "-" + "K" + endKm; + //groupCountMap.put(groupKey, groupCountMap.getOrDefault(groupKey, 0) + 1); + if (groupCountMap.get(groupKey)==null){ //事件还为存入map + groupCountMap.putIfAbsent(groupKey, UniversalEnum.ONE.getNumber());//事件类型不存在存1 + }else { + Integer currentSum = groupCountMap.get(groupKey); + groupCountMap.put(groupKey, currentSum +1 ); + } + } + List> entries = new ArrayList<>(groupCountMap.entrySet()); + entries.sort(Comparator.comparingInt(e -> { + String[] parts = e.getKey().split("-"); + int start = Integer.parseInt(parts[0].substring(1)); // 去掉'K'并解析为整数 + int end = Integer.parseInt(parts[1].substring(1)); // 去掉'K'并解析为整数 + return start + end; // 返回两个数字之和 + })); + // 将排序后的 List 转换回 LinkedHashMap 以保持顺序 + LinkedHashMap sortedMap = new LinkedHashMap<>(); + for (Map.Entry entry : entries) { + sortedMap.put(entry.getKey(), entry.getValue()); + } + return sortedMap; + } catch (Exception e) { + e.printStackTrace(); + } + return groupCountMap; + } + //事故类型分析 + @Override + public Map accidentTypeAnalysis(DcSdhsEventQuery dcSdhsEventQuery) { + List cacheList = redisCache.getCacheList(RedisKeyConstants.SDHS_EVENT); + Map groupCountMap = new HashMap<>(); + try { + long startTimeMillis = dcSdhsEventQuery.getStartTime().getTime(); + long endTimeMillis = dcSdhsEventQuery.getEndTime().getTime(); +// String direction = dcSdhsEventQuery.getDirection();//方向 + for (DcSdhsEvent event : cacheList) { + if (event.getStartTime() == null || event.getEndTime() == null || event.getStakeMark() == null) { + continue; + } + if (!(event.getStartTime().getTime() >= startTimeMillis && event.getEndTime().getTime() <= endTimeMillis)) { + continue; + } + String eventType = event.getEventType();//事件类型 + if (groupCountMap.get(eventType)==null){ //事件还为存入map + groupCountMap.putIfAbsent(eventType, UniversalEnum.ONE.getNumber());//事件类型不存在存1 + }else { + Integer currentSum = groupCountMap.get(eventType); + groupCountMap.put(eventType, currentSum +1 ); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return groupCountMap; + } + + //事故拥堵地点 + @Override + public Map accidentCongestedLocation(DcSdhsEventQuery dcSdhsEventQuery) { + List cacheList = redisCache.getCacheList(RedisKeyConstants.SDHS_EVENT); + Map groupCountMap = new HashMap<>(); + try { + long startTimeMillis = dcSdhsEventQuery.getStartTime().getTime(); + long endTimeMillis = dcSdhsEventQuery.getEndTime().getTime(); + for (DcSdhsEvent event : cacheList) { + if (event.getStartTime() == null || event.getEndTime() == null || event.getStakeMark() == null) { + continue; + } + if (!(event.getStartTime().getTime() >= startTimeMillis && event.getEndTime().getTime() <= endTimeMillis)) { + continue; + } + String eventType = event.getEventType();//事件类型 + if (!"交通拥堵".equals(eventType)){ + continue; + } + String kmStr = event.getStakeMark().substring(1); // 假设总是以"K"开头 + if (org.apache.commons.lang3.StringUtils.isBlank(kmStr)) { + continue; + } + String eventSubclass = event.getEventSubclass();//事件子类型 + if (groupCountMap.get(eventSubclass)==null){ //事件还为存入map + groupCountMap.putIfAbsent(eventSubclass, UniversalEnum.ONE.getNumber());//事件类型不存在存1 + }else { + Integer currentSum = Integer.valueOf(groupCountMap.get(eventSubclass).toString()); + groupCountMap.put(eventSubclass, currentSum +1 ); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + return groupCountMap; + } + //事故拥堵时间 + @Override + public Map accidentCongestedTime(DcSdhsEventQuery dcSdhsEventQuery) { + List cacheList = redisCache.getCacheList(RedisKeyConstants.SDHS_EVENT); + Map averageMap = new HashMap<>(); + Map map = new HashMap<>(); + Map groupCountMap = new HashMap<>(); + try { + long startTimeMillis = dcSdhsEventQuery.getStartTime().getTime(); + long endTimeMillis = dcSdhsEventQuery.getEndTime().getTime(); + for (DcSdhsEvent event : cacheList) { + if (event.getStartTime() == null || event.getEndTime() == null || event.getStakeMark() == null) { + continue; + } + if (!(event.getStartTime().getTime() >= startTimeMillis && event.getEndTime().getTime() <= endTimeMillis)) { + continue; + } + String eventType = event.getEventType();//事件类型 + if (!"交通拥堵".equals(eventType)){ + continue; + } + String kmStr = event.getStakeMark().substring(1); // 假设总是以"K"开头 + if (org.apache.commons.lang3.StringUtils.isBlank(kmStr)) { + continue; + } + int km = Integer.parseInt(kmStr.split("\\+")[0]); // 假设+后面还有其他内容,我们只取+前面的部分 + // 计算分组startKm,确保是5的倍数且不大于km + int startKm = ((km / 10) * 10) + (km % 10 >= 5 ? 10 : 0); + startKm = startKm - startKm % 5; // 确保startKm是5的倍数 + if (startKm%5==0){ + if ((startKm / 5) % 2 == 0) { + startKm -= 5; + } + } + // 计算分组endKm,找到比startKm大、最接近的、以5结尾的数 + int endKm = startKm + 10; + while (endKm % 5 != 0) { + endKm++; + } + // 构造分组key + String groupKey = "K" + startKm + "-" + "K" + endKm; + long differenceInMilliseconds = event.getEndTime().getTime() - event.getStartTime().getTime(); + long differenceInMinutes = differenceInMilliseconds / 60000;//时间分钟 + Integer differenceInMinute = (int)differenceInMinutes; + + if (averageMap.get(groupKey)==null){ //事件还为存入map + averageMap.putIfAbsent(groupKey, UniversalEnum.ONE.getNumber());//事件类型不存在存1 + }else { + Integer currentSum = averageMap.get(groupKey); + averageMap.put(groupKey, currentSum +differenceInMinute ); + } + if (map.get(groupKey)==null){ //事件还为存入map + map.putIfAbsent(groupKey, UniversalEnum.ONE.getNumber());//事件类型不存在存1 + }else { + Integer currentSum = map.get(groupKey); + map.put(groupKey, currentSum +1 ); + } + + } + for (String key:averageMap.keySet()){ + if (map.containsKey(key)){ + double average = (double) averageMap.get(key) / map.get(key); + DecimalFormat df = new DecimalFormat("#.00"); + String formattedAverage = df.format(average); + groupCountMap.put(key, formattedAverage); + }else { + continue; + } + } + List> entries = new ArrayList<>(groupCountMap.entrySet()); + entries.sort(Comparator.comparingInt(e -> { + String[] parts = e.getKey().split("-"); + int start = Integer.parseInt(parts[0].substring(1)); // 去掉'K'并解析为整数 + int end = Integer.parseInt(parts[1].substring(1)); // 去掉'K'并解析为整数 + return start + end; // 返回两个数字之和 + })); + // 将排序后的 List 转换回 LinkedHashMap 以保持顺序 + LinkedHashMap sortedMap = new LinkedHashMap<>(); + for (Map.Entry entry : entries) { + sortedMap.put(entry.getKey(), entry.getValue()); + } + return sortedMap; + } catch (Exception e) { + e.printStackTrace(); + } + return null; + } + + //事故多发路段分析导出 + @Override + public void sectionAnalysisExport(XWPFDocument doc,DcSdhsEventQuery dcSdhsEventQuery) { + + Map map =accidentSectionAnalysis(dcSdhsEventQuery); +// String direction = dcSdhsEventQuery.getDirection();//方向 + String title="事故路段分布图"; +// if ("广州方向".equals(direction)){ +// title="事故路段分布图-广州方向"; +// }else { +// title="事故路段分布图-济南方向"; +// } + PoiUtil.createHeading2(doc, title); + XWPFTable table = doc.createTable(map.size()+1,2); + //列宽自动分割 + CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); + infoTableWidth.setType(STTblWidth.DXA); + infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); + //插入表头 + setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段"); + setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "事故发生数量"); + + List> entries = new ArrayList<>(map.entrySet()); + //excel + for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ + setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey()); + setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString()); + } + try{ + // 复制Word模板 + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CHAR_SECTION.getValue()); + XWPFDocument copiedTemplate = new XWPFDocument(inputStream); + //获取word中所有图表对象 + List charts = copiedTemplate.getCharts(); + XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber()); + XSSFWorkbook workbook = chart.getWorkbook(); + XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber()); + //系列信息 + String[] singleBarSeriesNames = {"数量"}; + //分类信息 + for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ + sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey()); + sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString())); + } + for (int i = sheet.getLastRowNum(); i > entries.size();i--){ + sheet.removeRow(sheet.getRow(i)); + } + PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet ); + // 追加到同一个Word文档中 + mergeChart(chart,doc); + // 关闭复制的模板文档 + copiedTemplate.close(); + + }catch (Exception e){ + e.printStackTrace(); + } + } + //事故类型分析导出 + @Override + public void accidentTypeAnalysisExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) { + Map map =accidentTypeAnalysis(dcSdhsEventQuery); +// String direction = dcSdhsEventQuery.getDirection();//方向 + String title="事件类型分布图"; +// if ("广州方向".equals(direction)){ +// title="事件类型分布图-广州方向"; +// }else { +// title="事件类型分布图-济南方向"; +// } + PoiUtil.createHeading2(doc, title); + XWPFTable table = doc.createTable(map.size()+1,2); + //列宽自动分割 + CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); + infoTableWidth.setType(STTblWidth.DXA); + infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); + //插入表头 + setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "类型"); + setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量"); + + List> entries = new ArrayList<>(map.entrySet()); + //excel + for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ + setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey()); + setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString()); + } + try{ + // 复制Word模板 + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.TYPE_ANALYSIS.getValue()); + XWPFDocument copiedTemplate = new XWPFDocument(inputStream); + + //获取word中所有图表对象 + List charts = copiedTemplate.getCharts(); + XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber()); + XSSFWorkbook workbook = chart.getWorkbook(); + XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber()); + //系列信息 + String[] singleBarSeriesNames = {"事件类型"}; + //分类信息 + for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ + sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ZERO.getNumber()).setCellValue(entries.get(i).getKey()); + sheet.getRow(i+UniversalEnum.ONE.getNumber()).getCell(UniversalEnum.ONE.getNumber()).setCellValue(Long.parseLong(entries.get(i).getValue().toString())); + } + for (int i = sheet.getLastRowNum(); i > entries.size();i--){ + sheet.removeRow(sheet.getRow(i)); + } + PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet ); + // 追加到同一个Word文档中 + mergeChart(chart,doc); + // 关闭复制的模板文档 + copiedTemplate.close(); + + }catch (Exception e){ + e.printStackTrace(); + } + } + //事故拥堵时间导出 + @Override + public void accidentCongestedTimeExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) { + Map map =accidentCongestedTime(dcSdhsEventQuery); + String title="事故拥堵时长分布图"; + PoiUtil.createHeading2(doc, title); + XWPFTable table = doc.createTable(map.size()+1,2); + //列宽自动分割 + CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); + infoTableWidth.setType(STTblWidth.DXA); + infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); + //插入表头 + setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "路段"); + setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "时长(分钟)"); + + List> entries = new ArrayList<>(map.entrySet()); + //excel + for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ + setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey()); + setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString()); + } + try{ + // 复制Word模板 + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTION_TIME.getValue()); + XWPFDocument copiedTemplate = new XWPFDocument(inputStream); + + //获取word中所有图表对象 + List charts = copiedTemplate.getCharts(); + XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber()); + XSSFWorkbook workbook = chart.getWorkbook(); + XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber()); + //系列信息 + String[] singleBarSeriesNames = {"事故拥堵时长"}; + //分类信息 + for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ + sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey()); + sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(Double.valueOf(entries.get(i).getValue())); + } + for (int i = sheet.getLastRowNum(); i > entries.size();i--){ + sheet.removeRow(sheet.getRow(i)); + } + PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet ); + // 追加到同一个Word文档中 + mergeChart(chart,doc); + // 关闭复制的模板文档 + copiedTemplate.close(); + + }catch (Exception e){ + e.printStackTrace(); + } + } + //事故拥堵地点导出 + @Override + public void accidentCongestedLocationExport(XWPFDocument doc, DcSdhsEventQuery dcSdhsEventQuery) { + Map map =accidentCongestedLocation(dcSdhsEventQuery); + String title="事故拥堵地点分布图"; + PoiUtil.createHeading2(doc, title); + XWPFTable table = doc.createTable(map.size()+1,2); + //列宽自动分割 + CTTblWidth infoTableWidth = table.getCTTbl().addNewTblPr().addNewTblW(); + infoTableWidth.setType(STTblWidth.DXA); + infoTableWidth.setW(BigInteger.valueOf(UniversalEnum.NINE_THOUSAND_AND_SEVENTY_TWO.getNumber())); + //插入表头 + setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ZERO.getNumber()), "地点"); + setTableFonts(table.getRow(UniversalEnum.ZERO.getNumber()).getCell(UniversalEnum.ONE.getNumber()), "数量"); + + List> entries = new ArrayList<>(map.entrySet()); + //excel + for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ + setTableFonts(table.getRow(i+1).getCell(0), entries.get(i).getKey()); + setTableFonts(table.getRow(i+1).getCell(1), entries.get(i).getValue().toString()); + } + try{ + // 复制Word模板 + InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream(UniversalEnum.CONGESTED_LOCATION.getValue()); + XWPFDocument copiedTemplate = new XWPFDocument(inputStream); + + //获取word中所有图表对象 + List charts = copiedTemplate.getCharts(); + XWPFChart chart = charts.get(UniversalEnum.ZERO.getNumber()); + XSSFWorkbook workbook = chart.getWorkbook(); + XSSFSheet sheet = workbook.getSheetAt(UniversalEnum.ZERO.getNumber()); + //系列信息 + String[] singleBarSeriesNames = {"事故拥堵地点"}; + //分类信息 + for (int i = UniversalEnum.ZERO.getNumber(); i < entries.size(); i++){ + sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(0).setCellValue(entries.get(i).getKey()); + sheet.getRow(i + UniversalEnum.ONE.getNumber()).getCell(1).setCellValue(entries.get(i).getValue()); + } + for (int i = sheet.getLastRowNum(); i > entries.size();i--){ + sheet.removeRow(sheet.getRow(i)); + } + PoiUtil.wordExportChar(chart, title, singleBarSeriesNames,sheet ); + // 追加到同一个Word文档中 + mergeChart(chart,doc); + // 关闭复制的模板文档 + copiedTemplate.close(); + + }catch (Exception e){ + e.printStackTrace(); + } + } /*public AjaxResult importData(MultipartFile file) throws IOException { List importData = new ArrayList<>(); diff --git a/zc-business/src/main/resources/wordTemplate/charSection.docx b/zc-business/src/main/resources/wordTemplate/charSection.docx index e189db738e2aaed176932e99fd0e2e04079dbb61..f2338f4d64654ddae0a72a17a609de8f828b2a2c 100644 GIT binary patch delta 12898 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 delta 12618 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 diff --git a/zc-business/src/main/resources/wordTemplate/congestedLocation.docx b/zc-business/src/main/resources/wordTemplate/congestedLocation.docx new file mode 100644 index 0000000000000000000000000000000000000000..430f32d5e6751defda2813c9294ce0230babcf8a GIT binary patch literal 23840 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 nb)(}8-&hk{SS%kZ4oiH5X8zzj)L+7CCr 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 PfC#V$jUHmpu0a0>{Jbry literal 0 HcmV?d00001 diff --git a/zc-business/src/main/resources/wordTemplate/typeAnalysis.docx b/zc-business/src/main/resources/wordTemplate/typeAnalysis.docx index db896b4e3c5e7d032b545ca36ac5b0e40d972742..ef78289a109bc9462143ccc174c4f5b51c3abdb3 100644 GIT binary patch delta 14338 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