自定义报表多线程查询报错解决
This commit is contained in:
@@ -78,10 +78,7 @@ import java.time.LocalDateTime;
|
|||||||
import java.time.LocalTime;
|
import java.time.LocalTime;
|
||||||
import java.time.format.DateTimeFormatter;
|
import java.time.format.DateTimeFormatter;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.concurrent.ExecutionException;
|
import java.util.concurrent.*;
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.Executors;
|
|
||||||
import java.util.concurrent.Future;
|
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import java.util.stream.Stream;
|
import java.util.stream.Stream;
|
||||||
@@ -869,7 +866,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
//存放限值指标的map
|
//存放限值指标的map
|
||||||
Map<String, ReportTemplateDTO> limitTargetMapX = reportLimitList.stream().collect(Collectors.toMap(ReportTemplateDTO::getItemName, Function.identity()));
|
Map<String, ReportTemplateDTO> limitTargetMapX = reportLimitList.stream().collect(Collectors.toMap(ReportTemplateDTO::getItemName, Function.identity()));
|
||||||
|
|
||||||
List<ReportTemplateDTO> endList = new ArrayList<>();
|
List<ReportTemplateDTO> endList = new CopyOnWriteArrayList<>();
|
||||||
if (CollUtil.isNotEmpty(reportTemplateDTOList)) {
|
if (CollUtil.isNotEmpty(reportTemplateDTOList)) {
|
||||||
//开始组织sql
|
//开始组织sql
|
||||||
reportTemplateDTOList = new LinkedHashSet<>(reportTemplateDTOList).stream().sorted(Comparator.comparing(ReportTemplateDTO::getItemName)).collect(Collectors.toList());
|
reportTemplateDTOList = new LinkedHashSet<>(reportTemplateDTOList).stream().sorted(Comparator.comparing(ReportTemplateDTO::getItemName)).collect(Collectors.toList());
|
||||||
@@ -1121,12 +1118,8 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
*/
|
*/
|
||||||
private void downReport(JSONArray jsonArray, HttpServletResponse response) {
|
private void downReport(JSONArray jsonArray, HttpServletResponse response) {
|
||||||
InputStream reportStream = IoUtil.toStream(jsonArray.toString(), CharsetUtil.UTF_8);
|
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.setContentType("application/octet-stream;charset=UTF-8");
|
||||||
response.setHeader("Content-Disposition", "attachment;filename=" + "aa");
|
response.setHeader("Content-Disposition", "attachment;filename=" + "aa");
|
||||||
//入库前判断是否有了,有了就更新
|
|
||||||
|
|
||||||
OutputStream toClient = null;
|
OutputStream toClient = null;
|
||||||
try {
|
try {
|
||||||
toClient = new BufferedOutputStream(response.getOutputStream());
|
toClient = new BufferedOutputStream(response.getOutputStream());
|
||||||
@@ -1142,9 +1135,7 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void analyzeReportZhejiang(ReportSearchParam reportSearchParam, ExcelRptTemp
|
private void analyzeReportZhejiang(ReportSearchParam reportSearchParam, ExcelRptTemp excelRptTemp, HttpServletResponse response) {
|
||||||
excelRptTemp, HttpServletResponse response) {
|
|
||||||
|
|
||||||
//指标
|
//指标
|
||||||
List<ReportTemplateDTO> reportTemplateDTOList = new ArrayList<>();
|
List<ReportTemplateDTO> reportTemplateDTOList = new ArrayList<>();
|
||||||
//限值
|
//限值
|
||||||
@@ -1159,7 +1150,6 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
|
throw new BusinessException(HarmonicResponseEnum.CUSTOM_REPORT_JSON);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
DictData pqdDic = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.PQD.getCode(), DicDataTypeEnum.CS_DATA_TYPE.getCode()).getData();
|
DictData pqdDic = dicDataFeignClient.getDicDataByCodeAndType(DicDataEnum.PQD.getCode(), DicDataTypeEnum.CS_DATA_TYPE.getCode()).getData();
|
||||||
List<EleEpdPqd> eleEpdPqdList = eleEpdMapper.selectList(new LambdaQueryWrapper<EleEpdPqd>().eq(EleEpdPqd::getDataType, pqdDic.getId()).isNotNull(EleEpdPqd::getPrimaryFormula));
|
List<EleEpdPqd> eleEpdPqdList = eleEpdMapper.selectList(new LambdaQueryWrapper<EleEpdPqd>().eq(EleEpdPqd::getDataType, pqdDic.getId()).isNotNull(EleEpdPqd::getPrimaryFormula));
|
||||||
Map<String, List<EleEpdPqd>> pqdMap = eleEpdPqdList.stream().filter(item -> StrUtil.isNotBlank(item.getPrimaryFormula())).collect(Collectors.groupingBy(EleEpdPqd::getName));
|
Map<String, List<EleEpdPqd>> pqdMap = eleEpdPqdList.stream().filter(item -> StrUtil.isNotBlank(item.getPrimaryFormula())).collect(Collectors.groupingBy(EleEpdPqd::getName));
|
||||||
@@ -1217,14 +1207,11 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
//处理指标最终判定合格还是不合格
|
//处理指标最终判定合格还是不合格
|
||||||
dealTargetResult(assNoPassMap, limitTargetMapX, endList);
|
dealTargetResult(assNoPassMap, limitTargetMapX, endList);
|
||||||
|
|
||||||
long dealEnd = System.currentTimeMillis();
|
long dealEnd = System.currentTimeMillis();
|
||||||
System.out.println("查询数据库花费时间" + (dealEnd - deal) / 1000 + "S");
|
System.out.println("查询数据库花费时间" + (dealEnd - deal) / 1000 + "S");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(endList)) {
|
if (CollUtil.isNotEmpty(endList)) {
|
||||||
long jie = System.currentTimeMillis();
|
long jie = System.currentTimeMillis();
|
||||||
//数据单位信息
|
//数据单位信息
|
||||||
@@ -1253,11 +1240,9 @@ public class CustomReportServiceImpl implements CustomReportService {
|
|||||||
}else {
|
}else {
|
||||||
finalTerminalMap = new HashMap<>();
|
finalTerminalMap = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|
||||||
//2、把itemName的value赋给v和m
|
//2、把itemName的value赋给v和m
|
||||||
dealExcelResult(jsonArray, assMap, unit,finalTerminalMap);
|
dealExcelResult(jsonArray, assMap, unit,finalTerminalMap);
|
||||||
long jieEnd = System.currentTimeMillis();
|
long jieEnd = System.currentTimeMillis();
|
||||||
|
|
||||||
System.out.println("组装信息耗时 " + (jieEnd - jie) / 1000 + "S");
|
System.out.println("组装信息耗时 " + (jieEnd - jie) / 1000 + "S");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user