| | |
| | | |
| | | /** |
| | | * 报告模板 |
| | | * |
| | | * @author WWW |
| | | * @date 2024-03-06 |
| | | */ |
| | | @Service |
| | | public class ReportService implements ReportMapper { |
| | |
| | | */ |
| | | private void generateReport(String source, String target, ReportEntity re) { |
| | | if (StaticData.S1.equals(re.getType())) { |
| | | switch (re.getCode()) { |
| | | case "countOperates": |
| | | createCountOperatesWord(source, target); |
| | | break; |
| | | case "countSizes": |
| | | createCountSizesWord(source, target); |
| | | break; |
| | | case "countServices": |
| | | createCountServicesWord(source, target); |
| | | break; |
| | | case "countExplorationPoints": |
| | | createCountExplorationPointsWord(source, target); |
| | | break; |
| | | case "countSizesByType": |
| | | createCountSizesByTypeWord(source, target); |
| | | break; |
| | | case "countSizesByPrj": |
| | | createCountSizesByPrjWord(source, target); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | | createWord(source, target, re); |
| | | } else { |
| | | switch (re.getCode()) { |
| | | case "countOperates": |
| | | createCountOperatesExcel(source, target); |
| | | break; |
| | | case "countSizes": |
| | | createCountSizesExcel(source, target); |
| | | break; |
| | | case "countServices": |
| | | createCountServicesExcel(source, target); |
| | | break; |
| | | case "countExplorationPoints": |
| | | createCountExplorationPointsExcel(source, target); |
| | | break; |
| | | case "countSizesByType": |
| | | createCountSizesByTypeExcel(source, target); |
| | | break; |
| | | case "countSizesByPrj": |
| | | createCountSizesByPrjExcel(source, target); |
| | | break; |
| | | default: |
| | | break; |
| | | createExcel(source, target, re); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 生成Word |
| | | */ |
| | | private void createWord(String source, String target, ReportEntity re) { |
| | | // |
| | | } |
| | | |
| | | /** |
| | | * 生成Excel |
| | | */ |
| | | private void createExcel(String source, String target, ReportEntity re) { |
| | | List<CountEntity> list = countExplorationPoints();// |
| | | if (null == list || list.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | int rows = 1, allCount = 0; |
| | | Double allSize = 0d, allArea = 0d; |
| | | for (CountEntity ce : list) { |
| | | ce.setNo(rows++); |
| | | ce.setM2(FileHelper.getSizes(ce.getSizes())); |
| | | ce.setM3(FileHelper.getSquareMeter(ce.getArea())); |
| | | allCount += ce.getCount(); |
| | | allSize += ce.getSizes(); |
| | | allArea += ce.getArea(); |
| | | } |
| | | if (list.size() > 0) { |
| | | CountEntity ce = new CountEntity(); |
| | | ce.setNo(rows); |
| | | ce.setM1("总计"); |
| | | ce.setCount((long) allCount); |
| | | ce.setM2(FileHelper.getSizes(allSize)); |
| | | ce.setM3(FileHelper.getSquareMeter(allArea)); |
| | | list.add(ce); |
| | | } |
| | | |
| | | Map<String, List<CountEntity>> map = new HashMap<>(1); |
| | | map.put("data", list); |
| | | |
| | | ExcelHelper.writeToTemplate(source, target, map); |
| | | } |
| | | |
| | | /** |
| | | * 获取下载实体类 |
| | | */ |
| | | private DownloadEntity getDownloadEntity(UserEntity ue, String file) { |
| | | DownloadEntity de = new DownloadEntity(); |
| | | de.setName(FileHelper.getFileName(file)); |
| | | // 1-Shp文件,2-专题图,3-元数据,4-业务数据,5-管道分析,6-统计报告,7-附件文件,8-瓦片文件 |
| | | de.setType(6); |
| | | de.setSizes(FileHelper.sizeToMb(new File(file).length())); |
| | | de.setDepid(ue.getDepid()); |
| | | de.setDcount(1); |
| | | de.setPwd(null); |
| | | de.setUrl(FileHelper.getRelativePath(file)); |
| | | de.setDescr("统计报告"); |
| | | de.setGuid(FileHelper.getFileMd5(file)); |
| | | de.setCreateUser(ue.getId()); |
| | | // de.setGeom(null) |
| | | |
| | | return de; |
| | | } |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | WordHelper.generateWord(source, target, null, addList); |
| | | } |
| | | |
| | | /** |
| | | * 创建 用户流量统计 Excel |
| | | */ |
| | | public void createCountOperatesExcel(String source, String target) { |
| | | List<CountEntity> list = countOperates(); |
| | | if (null == list || list.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | int rows = 1, allCount = 0; |
| | | for (CountEntity ce : list) { |
| | | ce.setNo(rows++); |
| | | allCount += ce.getCount(); |
| | | } |
| | | if (list.size() > 0) { |
| | | CountEntity ce = new CountEntity(); |
| | | ce.setNo(rows); |
| | | ce.setM1("总计"); |
| | | ce.setCount((long) allCount); |
| | | list.add(ce); |
| | | } |
| | | |
| | | Map<String, List<CountEntity>> map = new HashMap<>(1); |
| | | map.put("data", list); |
| | | |
| | | ExcelHelper.writeToTemplate(source, target, map); |
| | | } |
| | | |
| | | /** |
| | | * 创建 数据量统计 Excel |
| | | */ |
| | | public void createCountSizesExcel(String source, String target) { |
| | | List<CountEntity> list = countSizes(); |
| | | if (null == list || list.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | int rows = 1; |
| | | Double allSize = 0d; |
| | | for (CountEntity ce : list) { |
| | | ce.setNo(rows++); |
| | | ce.setM2(FileHelper.getSizes(ce.getSizes())); |
| | | allSize += ce.getSizes(); |
| | | } |
| | | if (list.size() > 0) { |
| | | CountEntity ce = new CountEntity(); |
| | | ce.setNo(rows); |
| | | ce.setM1("总计"); |
| | | ce.setM2(FileHelper.getSizes(allSize)); |
| | | list.add(ce); |
| | | } |
| | | |
| | | Map<String, List<CountEntity>> map = new HashMap<>(1); |
| | | map.put("data", list); |
| | | |
| | | ExcelHelper.writeToTemplate(source, target, map); |
| | | } |
| | | |
| | | /** |
| | | * 创建 服务调用量统计 Excel |
| | | */ |
| | | public void createCountServicesExcel(String source, String target) { |
| | | List<CountEntity> list = countServices(); |
| | | if (null == list || list.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | int rows = 1, allCount = 0; |
| | | for (CountEntity ce : list) { |
| | | ce.setNo(rows++); |
| | | allCount += ce.getCount(); |
| | | } |
| | | if (list.size() > 0) { |
| | | CountEntity ce = new CountEntity(); |
| | | ce.setNo(rows); |
| | | ce.setM1("总计"); |
| | | ce.setCount((long) allCount); |
| | | list.add(ce); |
| | | } |
| | | |
| | | Map<String, List<CountEntity>> map = new HashMap<>(1); |
| | | map.put("data", list); |
| | | |
| | | ExcelHelper.writeToTemplate(source, target, map); |
| | | } |
| | | |
| | | /** |
| | | * 创建 钻孔数据统计 Excel |
| | | */ |
| | | public void createCountExplorationPointsExcel(String source, String target) { |
| | | List<CountEntity> list = countExplorationPoints(); |
| | | if (null == list || list.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | int rows = 1, allCount = 0; |
| | | Double allSize = 0d, allArea = 0d; |
| | | for (CountEntity ce : list) { |
| | | ce.setNo(rows++); |
| | | ce.setM2(FileHelper.getSizes(ce.getSizes())); |
| | | ce.setM3(FileHelper.getSquareMeter(ce.getArea())); |
| | | allCount += ce.getCount(); |
| | | allSize += ce.getSizes(); |
| | | allArea += ce.getArea(); |
| | | } |
| | | if (list.size() > 0) { |
| | | CountEntity ce = new CountEntity(); |
| | | ce.setNo(rows); |
| | | ce.setM1("总计"); |
| | | ce.setCount((long) allCount); |
| | | ce.setM2(FileHelper.getSizes(allSize)); |
| | | ce.setM3(FileHelper.getSquareMeter(allArea)); |
| | | list.add(ce); |
| | | } |
| | | |
| | | Map<String, List<CountEntity>> map = new HashMap<>(1); |
| | | map.put("data", list); |
| | | |
| | | ExcelHelper.writeToTemplate(source, target, map); |
| | | } |
| | | |
| | | /** |
| | | * 创建 数据格式统计 Excel |
| | | */ |
| | | public void createCountSizesByTypeExcel(String source, String target) { |
| | | List<CountEntity> list = countSizesByType(); |
| | | if (null == list || list.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | int rows = 1, allCount = 0; |
| | | Double allSize = 0d; |
| | | for (CountEntity ce : list) { |
| | | ce.setNo(rows++); |
| | | ce.setM2(FileHelper.getSizes(ce.getSizes())); |
| | | allCount += ce.getCount(); |
| | | allSize += ce.getSizes(); |
| | | } |
| | | if (list.size() > 0) { |
| | | CountEntity ce = new CountEntity(); |
| | | ce.setNo(rows); |
| | | ce.setM1("总计"); |
| | | ce.setCount((long) allCount); |
| | | ce.setM2(FileHelper.getSizes(allSize)); |
| | | list.add(ce); |
| | | } |
| | | |
| | | Map<String, List<CountEntity>> map = new HashMap<>(1); |
| | | map.put("data", list); |
| | | |
| | | ExcelHelper.writeToTemplate(source, target, map); |
| | | } |
| | | |
| | | /** |
| | | * 创建 项目数据统计 Excel |
| | | */ |
| | | public void createCountSizesByPrjExcel(String source, String target) { |
| | | List<CountEntity> list = countSizesByPrj(); |
| | | if (null == list || list.isEmpty()) { |
| | | return; |
| | | } |
| | | |
| | | int rows = 1, allCount = 0; |
| | | Double allSize = 0d; |
| | | for (CountEntity ce : list) { |
| | | ce.setNo(rows++); |
| | | ce.setM2(FileHelper.getSizes(ce.getSizes())); |
| | | allCount += ce.getCount(); |
| | | allSize += ce.getSizes(); |
| | | } |
| | | if (list.size() > 0) { |
| | | CountEntity ce = new CountEntity(); |
| | | ce.setNo(rows); |
| | | ce.setM1("总计"); |
| | | ce.setCount((long) allCount); |
| | | ce.setM2(FileHelper.getSizes(allSize)); |
| | | list.add(ce); |
| | | } |
| | | |
| | | Map<String, List<CountEntity>> map = new HashMap<>(1); |
| | | map.put("data", list); |
| | | |
| | | ExcelHelper.writeToTemplate(source, target, map); |
| | | } |
| | | |
| | | /** |
| | | * 获取下载实体类 |
| | | */ |
| | | private DownloadEntity getDownloadEntity(UserEntity ue, String file) { |
| | | DownloadEntity de = new DownloadEntity(); |
| | | de.setName(FileHelper.getFileName(file)); |
| | | // 1-Shp文件,2-专题图,3-元数据,4-业务数据,5-管道分析,6-统计报告,7-附件文件,8-瓦片文件 |
| | | de.setType(6); |
| | | de.setSizes(FileHelper.sizeToMb(new File(file).length())); |
| | | de.setDepid(ue.getDepid()); |
| | | de.setDcount(1); |
| | | de.setPwd(null); |
| | | de.setUrl(FileHelper.getRelativePath(file)); |
| | | de.setDescr("统计报告"); |
| | | de.setGuid(FileHelper.getFileMd5(file)); |
| | | de.setCreateUser(ue.getId()); |
| | | // de.setGeom(null) |
| | | |
| | | return de; |
| | | } |
| | | } |