diff --git a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/CustomReportServiceImpl.java b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/CustomReportServiceImpl.java index 6223ee98f..e8580eb22 100644 --- a/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/CustomReportServiceImpl.java +++ b/pqs-harmonic/harmonic-boot/src/main/java/com/njcn/harmonic/service/report/impl/CustomReportServiceImpl.java @@ -1,5 +1,6 @@ package com.njcn.harmonic.service.report.impl; +import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.LocalDateTimeUtil; @@ -20,6 +21,9 @@ import com.njcn.csdevice.api.WlRecordFeignClient; import com.njcn.csdevice.pojo.po.WlRecord; import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.pojo.po.PqsDeviceUnit; +import com.njcn.device.pq.pojo.vo.PqsDeviceUnitVo; +import com.njcn.harmonic.common.pojo.dto.DeviceUnitCommDTO; +import com.njcn.harmonic.common.service.CustomReportTableService; import com.njcn.harmonic.enums.HarmonicResponseEnum; import com.njcn.harmonic.mapper.DeptTempMapper; import com.njcn.harmonic.mapper.EleEpdMapper; @@ -98,6 +102,8 @@ public class CustomReportServiceImpl implements CustomReportService { private final CsCommTerminalFeignClient csCommTerminalFeignClient; + private final CustomReportTableService customReportTableService; + private final WlRecordFeignClient wlRecordFeignClient; private final ExecutorService executorService = Executors.newFixedThreadPool(Runtime.getRuntime().availableProcessors() + 1); @@ -114,15 +120,20 @@ public class CustomReportServiceImpl implements CustomReportService { @Override public void getCustomReport(ReportSearchParam reportSearchParam, HttpServletResponse response) { TimeInterval timeInterval = new TimeInterval(); - ExcelRptTemp excelRptTemp = excelRptTempMapper.selectById(reportSearchParam.getTempId()); - if (Objects.isNull(excelRptTemp)) { - throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE); - } + if (Objects.isNull(reportSearchParam.getCustomType())) { //通用报表 - analyzeReport(reportSearchParam, excelRptTemp, response); + PqsDeviceUnit deviceUnit = commTerminalGeneralClient.lineUnitDetail(reportSearchParam.getLineId()).getData(); + DeviceUnitCommDTO deviceUnitCommDTO = BeanUtil.copyProperties(deviceUnit, DeviceUnitCommDTO.class); + + Map finalTerminalMap = convertKeysToUpperCase(commTerminalGeneralClient.getCustomDetailByLineId(reportSearchParam.getLineId()).getData()); + customReportTableService.getCustomReport(reportSearchParam,finalTerminalMap,deviceUnitCommDTO, response); } else { //浙江无线报表 + ExcelRptTemp excelRptTemp = excelRptTempMapper.selectById(reportSearchParam.getTempId()); + if (Objects.isNull(excelRptTemp)) { + throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_ACTIVE); + } analyzeReportZhejiang(reportSearchParam, excelRptTemp, response); } @@ -859,6 +870,7 @@ public class CustomReportServiceImpl implements CustomReportService { * @date 2023/10/8 */ +/* private void analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp, HttpServletResponse response) { //定义一个线程集合 List> futures = new ArrayList<>(); @@ -1029,13 +1041,14 @@ public class CustomReportServiceImpl implements CustomReportService { downReport(jsonArray, response); } +*/ /** * 解析模板 * @author cdf * @date 2023/10/20 */ - private void parseTemplate(JSONArray jsonArray, List reportTemplateDTOList, List reportLimitList, List terminalList) { + /* private void parseTemplate(JSONArray jsonArray, List reportTemplateDTOList, List reportLimitList, List terminalList) { try { //通过文件服务器获取 jsonArray.forEach(item -> { @@ -1103,7 +1116,7 @@ public class CustomReportServiceImpl implements CustomReportService { throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON); } } - +*/ /** * 获取测点限值 diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/CustomReportTableService.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/CustomReportTableService.java index faf5f5f63..f6480bbc0 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/CustomReportTableService.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/CustomReportTableService.java @@ -1,5 +1,6 @@ package com.njcn.harmonic.common.service; +import com.njcn.harmonic.common.pojo.dto.DeviceUnitCommDTO; import com.njcn.harmonic.pojo.param.ReportSearchParam; import javax.servlet.http.HttpServletResponse; @@ -22,5 +23,5 @@ public interface CustomReportTableService { * @author qijian * @date 2022/10/18 */ - void getCustomReport(ReportSearchParam reportSearchParam, Map newMap, HttpServletResponse response); + void getCustomReport(ReportSearchParam reportSearchParam, Map newMap, DeviceUnitCommDTO deviceUnitCommDTO, HttpServletResponse response); } diff --git a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java index e07a61c56..45976e1f3 100644 --- a/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java +++ b/pqs-harmonic/harmonic-common/src/main/java/com/njcn/harmonic/common/service/impl/CustomReportTableServiceImpl.java @@ -20,6 +20,7 @@ import com.njcn.common.pojo.exception.BusinessException; import com.njcn.csdevice.api.CsCommTerminalFeignClient; import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.pojo.po.PqsDeviceUnit; +import com.njcn.harmonic.common.pojo.dto.DeviceUnitCommDTO; import com.njcn.harmonic.enums.HarmonicResponseEnum; import com.njcn.harmonic.pojo.dto.ReportTemplateDTO; import com.njcn.harmonic.pojo.param.ReportSearchParam; @@ -92,7 +93,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { private final String VOLTAGE_DEV = "VOLTAGE_DEV"; @Override - public void getCustomReport(ReportSearchParam reportSearchParam,Map newMap, HttpServletResponse response) { + public void getCustomReport(ReportSearchParam reportSearchParam,Map newMap,DeviceUnitCommDTO deviceUnitCommDTO, HttpServletResponse response) { TimeInterval timeInterval = new TimeInterval(); ExcelRptTemp excelRptTemp = excelRptTempMapper.selectById(reportSearchParam.getTempId()); if (Objects.isNull(excelRptTemp)) { @@ -100,7 +101,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { } if (Objects.isNull(reportSearchParam.getCustomType())) { //通用报表 - analyzeReport(reportSearchParam, excelRptTemp, newMap,response); + analyzeReport(reportSearchParam, excelRptTemp, newMap,deviceUnitCommDTO,response); log.info("报表执行时间{}秒", timeInterval.intervalSecond()); } @@ -114,7 +115,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { * @date 2023/10/8 */ - private void analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp,Map newMap, HttpServletResponse response) { + private void analyzeReport(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp,Map newMap,DeviceUnitCommDTO deviceUnitCommDTO, HttpServletResponse response) { //定义一个线程集合 List> futures = new ArrayList<>(); //指标 @@ -202,7 +203,7 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { //处理指标最终判定合格还是不合格 dealTargetResult(assNoPassMap, limitTargetMapX, endList); } - resultAssemble(endList,reportSearchParam,terminalList,newMap,jsonArray); + resultAssemble(endList,reportSearchParam,newMap,deviceUnitCommDTO,jsonArray); //导出自定义报表 downReport(jsonArray, response); } @@ -624,17 +625,8 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { /** * 数据单位信息 - * - * @param reportSearchParam - * @return */ - private Map unitMap(ReportSearchParam reportSearchParam) { - PqsDeviceUnit deviceUnit; - if (Objects.isNull(reportSearchParam.getResourceType())) { - deviceUnit = commTerminalGeneralClient.lineUnitDetail(reportSearchParam.getLineId()).getData(); - } else { - deviceUnit = csCommTerminalFeignClient.lineUnitDetail(reportSearchParam.getLineId()).getData(); - } + private Map unitMap(DeviceUnitCommDTO deviceUnit) { List dictData = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEVICE_UNIT.getCode()).getData(); Map unit = new HashMap<>(); List list = dictData.stream().map(DictData::getCode).collect(Collectors.toList()); @@ -690,10 +682,10 @@ public class CustomReportTableServiceImpl implements CustomReportTableService { * @author cdf * @date 2026/1/16 */ - public void resultAssemble(List endList,ReportSearchParam reportSearchParam,List terminalList,Map finalTerminalMap,JSONArray jsonArray){ + public void resultAssemble(List endList,ReportSearchParam reportSearchParam,Map finalTerminalMap,DeviceUnitCommDTO deviceUnitCommDTO,JSONArray jsonArray){ if (CollUtil.isNotEmpty(endList)) { //数据单位信息 - Map unit = unitMap(reportSearchParam); + Map unit = unitMap(deviceUnitCommDTO); //进行反向赋值到模板 //1、根据itemName分组 Map> assMap = endList.stream().collect(Collectors.groupingBy(ReportTemplateDTO::getItemName));