From a1be8199d62edc2e09d1e9d3f8598a7f4bb62ac0 Mon Sep 17 00:00:00 2001 From: WangGuangYuan Date: Fri, 8 Aug 2025 17:45:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B7=A1=E8=A7=86=E5=BD=92=E6=A1=A3=E6=B2=A1?= =?UTF-8?q?=E6=9C=89=E7=BC=BA=E9=99=B7=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/IPatrolResultService.java | 2 +- .../service/impl/PatrolResultServiceImpl.java | 22 +++++++++++----- .../PatrolTaskResultMainController.java | 25 ++++++++++++++++--- 3 files changed, 38 insertions(+), 11 deletions(-) diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java index 9e1bad4..4b15b4a 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/IPatrolResultService.java @@ -81,7 +81,7 @@ public interface IPatrolResultService { List select6FsResultValue(PatrolResult patrolResult); - List saveReport(PatrolTaskResultMain resultMain, List lineIds, Long currentLineId, List resultList); + List saveReport(PatrolTaskResultMain resultMain, List lineIds, Long currentLineId, List resultList, int aiQxNum, int csQxNum); List saveReportV2(PatrolTaskResultMain patrolTaskResultMain, List patrolResultList); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java index d3ac0cf..b2115d7 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/partrolresult/service/impl/PatrolResultServiceImpl.java @@ -322,7 +322,7 @@ public class PatrolResultServiceImpl implements IPatrolResultService { } @Transactional - public List saveReport(PatrolTaskResultMain resultMain, List lineIds, Long currentLineId, List resultList) { + public List saveReport(PatrolTaskResultMain resultMain, List lineIds, Long currentLineId, List resultList, int aiQxNum, int csQxNum) { long startTime = System.currentTimeMillis(); // String mainId = String.valueOf(resultMain.getLineId()); for (Long lineId : lineIds) { @@ -334,7 +334,7 @@ public class PatrolResultServiceImpl implements IPatrolResultService { } PrintUtil.useTime("AMENDING DATA", startTime); resultMain.setLineId(currentLineId); - return saveReportData(resultList, resultMain, lineIds); + return saveReportData(resultList, resultMain, lineIds, aiQxNum, csQxNum); } @Transactional @@ -350,7 +350,7 @@ public class PatrolResultServiceImpl implements IPatrolResultService { return reportIds; } - public List saveReportData(List resultList, PatrolTaskResultMain resultMain, List lineIds) { + public List saveReportData(List resultList, PatrolTaskResultMain resultMain, List lineIds, int aiQxNum, int csQxNum) { long startTime = System.currentTimeMillis(); String mainId = String.valueOf(resultMain.getLineId()); // String analyseNum = statisticsAnalyseNum(lineIds, resultList.size()); @@ -394,6 +394,16 @@ public class PatrolResultServiceImpl implements IPatrolResultService { String stationType = stationMap.get("station_type"); String voltLevel = stationMap.get("volt_level"); for (int i = 0; i < nums.length; i++) { + if ("0".equals(exportReportFlag) && i == 0 && aiQxNum == 0) { + continue; + } + if ("0".equals(exportReportFlag) && i == 1 && csQxNum == 0) { + continue; + } + List patrolResultRefs = patrolResultMapper.selectResultRefByLineIds(lineIds, String.valueOf(i)); + if (patrolResultRefs.isEmpty()) { + continue; + } InspectionReport report = new InspectionReport(); resetReport(report, nums[i], mainId, task, taskStatus); report.setTaskId(String.valueOf(task.getTaskId())); @@ -408,7 +418,7 @@ public class PatrolResultServiceImpl implements IPatrolResultService { report.setStationType(stationType); inspectionReportMapper.insertInspectionReport(report); PrintUtil.useTime("NEW TASK REPORT", startTime); - batchInsertReportData(String.valueOf(report.getLineId()), lineIds, String.valueOf(i)); + batchInsertReportData(String.valueOf(report.getLineId()), lineIds, String.valueOf(i), patrolResultRefs); PrintUtil.useTime("BATCH INSERT DETAIL", startTime); log.info("[ARCHIVE] reportId: {}", report.getLineId()); Long lineId = report.getLineId(); @@ -521,11 +531,11 @@ public class PatrolResultServiceImpl implements IPatrolResultService { report.setInspectionEndTime(DateUtil.parseDateTime(taskStatus.getEndTime())); } - public void batchInsertReportData(String reportId, List mainIds, String filter) { + public void batchInsertReportData(String reportId, List mainIds, String filter, List patrolResultRefs) { log.info("batchInsertReportData reportId:" + reportId + ", mainIds:" + mainIds + ", filter:" + filter); long startTime = System.currentTimeMillis(); // List patrolResultRefs = patrolResultMapper.selectResultRefByLineId(mainId); - List patrolResultRefs = patrolResultMapper.selectResultRefByLineIds(mainIds, filter); +// List patrolResultRefs = patrolResultMapper.selectResultRefByLineIds(mainIds, filter); if ("0".equals(exportReportFlag)) { // 导出缺陷 patrolResultRefs = patrolResultRefs.stream().filter((item) -> "0".equals(item.getResultType())).collect(Collectors.toList()); diff --git a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java index 37873ea..a493ede 100644 --- a/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java +++ b/inspect-main/inspect-main-task/src/main/java/com/inspect/resultmain/controller/PatrolTaskResultMainController.java @@ -79,6 +79,9 @@ public class PatrolTaskResultMainController extends BaseController { @Value("${sftp.stationCode}") private String stationCode; + @Value("${inspect.task.report.all:0}") + private String exportReportFlag; + private final IPatrolTaskResultMainService patrolTaskResultMainService; private final IPatrolResultService patrolResultService; private final IInspectionReportDataService inspectionReportDataService; @@ -190,11 +193,23 @@ public class PatrolTaskResultMainController extends BaseController { // List resultList = patrolResultService.selectPatrolResultList(new PatrolResult(mainId)); List resultList = patrolResultService.selectPatrolResultListByMainIds(lineIds); if (resultList.isEmpty()) { - final String result = "[ARCHIVE] Fail, Data is gathering, Please wait!"; - logger.error(result); - return AjaxResult.error(result); + logger.error("[归档]失败, 数据采集中..."); + return AjaxResult.error("数据采集中请稍后...."); + } + ResultAnalysis resultAnalysis = new ResultAnalysis(); + int csQxNum = 0, aiQxNum = 0; + List taskPatrolledIds = resultList.stream().map(PatrolResult::getTaskPatrolledId).distinct().collect(Collectors.toList()); + for (String taskPatrolledId : taskPatrolledIds) { + resultAnalysis.setTaskPatrolledId(taskPatrolledId); + ResultAnalysis ras = patrolResultService.selectTaskAbnormalData(resultAnalysis); + csQxNum += ras.getCsQxNum(); + aiQxNum += ras.getAiQxNum(); } + if("0".equals(exportReportFlag) && 0 == csQxNum && 0 == aiQxNum) { + logger.error("[归档]没有缺陷数据, 无需归档!"); + return AjaxResult.error("没有缺陷数据, 无需归档!"); + } // List patrolResultAuxList = iPatrolResultAuxService.selectPatrolResultAuxListByMainId(new PatrolResultAux(mainId)); List patrolResultAuxList = iPatrolResultAuxService.selectPatrolResultAuxListByMainIds(lineIds); for (PatrolResultAux aux : patrolResultAuxList) { @@ -216,9 +231,11 @@ public class PatrolTaskResultMainController extends BaseController { logger.info("[ARCHIVE] Id: {}, collectNum: {}, analyseNum: {}, modifyNum:{}", mainId, collectNum, analyseNum, modifyNum.get()); // 使用CompletableFuture异步执行saveReport + int finalAiQxNum = aiQxNum; + int finalCsQxNum = csQxNum; CompletableFuture> saveReportFuture = CompletableFuture.supplyAsync(() -> { logger.info("[ARCHIVE] Start saving reports"); - return patrolResultService.saveReport(resultMain, lineIds, lineId, resultList); + return patrolResultService.saveReport(resultMain, lineIds, lineId, resultList, finalAiQxNum, finalCsQxNum); }, executor).exceptionally(ex -> { logger.error("Report saving failed", ex); return Collections.emptyList();