From 64187da4fb6ab2676a95968ef836449ad5168907 Mon Sep 17 00:00:00 2001 From: chendaofei <857448963@qq.com> Date: Thu, 26 Sep 2024 16:42:25 +0800 Subject: [PATCH] =?UTF-8?q?1.=E8=87=AA=E5=AE=9A=E4=B9=89=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...mTerminalGeneralClientFallbackFactory.java | 2 +- .../harmonic/pojo/vo/ReportTemplateVO.java | 2 + .../mapper/mapping/ExcelRptTempMapper.xml | 6 +- .../service/impl/CustomReportServiceImpl.java | 96 ++++++++----------- 4 files changed, 46 insertions(+), 60 deletions(-) diff --git a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java index ea72f755c..f0d1744c3 100644 --- a/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java +++ b/pqs-device/common-device-biz/src/main/java/com/njcn/device/biz/commApi/fallback/CommTerminalGeneralClientFallbackFactory.java @@ -136,7 +136,7 @@ public class CommTerminalGeneralClientFallbackFactory implements FallbackFactory @Override public HttpResult lineUnitDetail(String lineId) { - log.error("{}异常,降级处理,异常为:{}", "获取监测点详细信息集合", throwable.toString()); + log.error("{}异常,降级处理,异常为:{}", "根据监测点获取测点数据单位", throwable.toString()); throw new BusinessException(finalExceptionEnum); } diff --git a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ReportTemplateVO.java b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ReportTemplateVO.java index 2d96e9fe6..c7b7e7dc3 100644 --- a/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ReportTemplateVO.java +++ b/pqs-harmonic/harmonic-api/src/main/java/com/njcn/harmonic/pojo/vo/ReportTemplateVO.java @@ -27,6 +27,8 @@ public class ReportTemplateVO extends BaseEntity { private String deptName; + private String reportType; + private String reportForm; } diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ExcelRptTempMapper.xml b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ExcelRptTempMapper.xml index 45ba1ff13..bb0a0bc59 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ExcelRptTempMapper.xml +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/mapper/mapping/ExcelRptTempMapper.xml @@ -28,7 +28,11 @@ a.id, a.NAME, a.update_time, - d.NAME updateBy + a.create_time, + d.NAME updateBy, + a.Activation, + a.Report_Type, + a.Report_Form FROM sys_excel_rpt_temp a LEFT JOIN sys_user d ON a.update_by = d.id diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java index 19df2d563..83c5cd040 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/impl/CustomReportServiceImpl.java @@ -238,22 +238,8 @@ public class CustomReportServiceImpl implements CustomReportService { if (Objects.isNull(excelRptTemp)) { throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE); } - //先查询库里是否存在已解析的报表数据,存在直接返回/不存在解析数据 - /* LambdaQueryWrapper lambdaQuery = new LambdaQueryWrapper<>(); - lambdaQuery - .eq(ExcelRpt::getLineId, reportSearchParam.getLineId()) - .eq(ExcelRpt::getTempId, reportSearchParam.getTempId()) - //年季月周日 - .eq(ExcelRpt::getType, reportSearchParam.getType()) - //报表日期 - .eq(ExcelRpt::getDataDate, reportSearchParam.getStartTime());*/ try { - /* List excelRpts = excelRptMapper.selectList(lambdaQuery); - if (CollUtil.isNotEmpty(excelRpts)) { - fileStorageUtil.downloadStream(response, excelRpts.get(0).getContent()); - } else {*/ analyzeReport(reportSearchParam, excelRptTemp, response); - /*}*/ } catch (Exception exception) { log.error(exception.getMessage()); exception.printStackTrace(); @@ -604,12 +590,11 @@ public class CustomReportServiceImpl implements CustomReportService { System.out.println(sql); - - if (data.get(0).getTemplateName().equals("freq_dev") || data.get(0).getTemplateName().equals("freq")) { - System.out.println(sql); - } - + long l = System.currentTimeMillis(); List> mapList = SqlRunner.db().selectList(sql.toString()); + + long la = System.currentTimeMillis(); + System.out.println("当前sql结束花费时长:"+(la-l)+"ms"); if (CollUtil.isEmpty(mapList)) { data = data.stream().peek(item -> item.setValue("/")).collect(Collectors.toList()); } else { @@ -695,7 +680,7 @@ public class CustomReportServiceImpl implements CustomReportService { List endList = new ArrayList<>(); if (CollUtil.isNotEmpty(reportTemplateDTOList)) { - long deal = System.currentTimeMillis(); + //开始组织sql reportTemplateDTOList = reportTemplateDTOList.stream() @@ -704,6 +689,7 @@ public class CustomReportServiceImpl implements CustomReportService { Map> classMap = reportTemplateDTOList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getResourceId)); Map assNoPassMap = new HashMap<>(); + long deal = System.currentTimeMillis(); classMap.forEach((classKey, templateValue) -> { Map> valueTypeMap = templateValue.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getStatMethod)); @@ -757,13 +743,10 @@ public class CustomReportServiceImpl implements CustomReportService { } - - - if (CollUtil.isNotEmpty(endList)) { long jie = System.currentTimeMillis(); //数据单位信息 - Map unit = unitMap(reportSearchParam.getLineId()); + //Map unit = unitMap(reportSearchParam.getLineId()); //进行反向赋值到模板 //1、根据itemName分组 Map> assMap = endList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getItemName)); @@ -832,7 +815,7 @@ public class CustomReportServiceImpl implements CustomReportService { //解决数据单位问题 @指标#类型@ if (v.charAt(0) == '@' && v.contains("#")) { String replace = v.replace("@", ""); - son.set("v", unit.getOrDefault(replace, "/")); + // son.set("v", unit.getOrDefault(replace, "/")); } } @@ -846,38 +829,10 @@ public class CustomReportServiceImpl implements CustomReportService { long daochu = System.currentTimeMillis(); - - InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8); - //String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json")); - - response.setContentType("application/octet-stream;charset=UTF-8"); - response.setHeader("Content-Disposition", "attachment;filename=" + "aa"); - //入库前判断是否有了,有了就更新 - /* ExcelRpt excelRpt = new ExcelRpt(); - excelRpt.setName(excelRptTemp.getName()); - excelRpt.setLineId(reportSearchParam.getLineId()); - excelRpt.setDataDate(DateUtil.parse(reportSearchParam.getStartTime())); - excelRpt.setTempId(excelRptTemp.getId()); - excelRpt.setContent(newContent); - excelRpt.setType(reportSearchParam.getType()); - excelRpt.setState(DataStateEnum.ENABLE.getCode()); - - excelRptMapper.insert(excelRpt);*/ - OutputStream toClient = null; - try { - toClient = new BufferedOutputStream(response.getOutputStream()); - //通过IOUtils对接输入输出流,实现文件下载 - IOUtils.copy(reportStream, toClient); - toClient.flush(); - } catch (Exception e) { - throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_STREAM_ERROR); - } finally { - IOUtils.closeQuietly(reportStream); - IOUtils.closeQuietly(toClient); - long daochuEnd = System.currentTimeMillis(); - - System.out.println("导出耗时 " + (daochuEnd - daochu) / 1000 + "S"); - } + //导出自定义报表 + downReport(jsonArray,response); + long daochuEnd = System.currentTimeMillis(); + System.out.println("导出耗时 " + (daochuEnd - daochu) / 1000 + "S"); } @@ -963,6 +918,7 @@ public class CustomReportServiceImpl implements CustomReportService { /** + * 获取测点限值 * @author cdf * @date 2023/10/23 */ @@ -977,7 +933,6 @@ public class CustomReportServiceImpl implements CustomReportService { sql.append(reportLimitList.get(i).getTemplateName()).append(","); } } - sql.append(" from ").append(reportLimitList.get(0).getResourceId()).append(" where id ='").append(reportSearchParam.getLineId()).append("'"); limitMap = excelRptTempMapper.dynamicSqlMap(sql.toString()); @@ -990,6 +945,31 @@ public class CustomReportServiceImpl implements CustomReportService { return limitMap; } + /** + * 报告下载 + */ + private void downReport(JSONArray jsonArray,HttpServletResponse response){ + InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8); + //String newContent = fileStorageUtil.uploadStream(reportStream, OssPath.HARMONIC_EXCEL_REPORT, FileUtil.generateFileName("json")); + + response.setContentType("application/octet-stream;charset=UTF-8"); + response.setHeader("Content-Disposition", "attachment;filename=" + "aa"); + //入库前判断是否有了,有了就更新 + + OutputStream toClient = null; + try { + toClient = new BufferedOutputStream(response.getOutputStream()); + //通过IOUtils对接输入输出流,实现文件下载 + IOUtils.copy(reportStream, toClient); + toClient.flush(); + } catch (Exception e) { + throw new BusinessException(OssResponseEnum.DOWNLOAD_FILE_STREAM_ERROR); + } finally { + IOUtils.closeQuietly(reportStream); + IOUtils.closeQuietly(toClient); + } + } + }