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