From 35e52e072267550132d31b3493b84944b2092a03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=BE=E5=90=8C=E5=AD=A6?= Date: Tue, 23 Sep 2025 15:44:46 +0800 Subject: [PATCH] =?UTF-8?q?UPDATE:=20=E6=B7=BB=E5=8A=A0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E5=90=88=E5=B9=B6=E6=97=B6=E6=9B=B4=E6=96=B0=E4=B8=BB=E8=AE=A1?= =?UTF-8?q?=E5=88=92=E6=A3=80=E6=B5=8B=E7=8A=B6=E6=80=81=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gather/plan/service/AsyncPlanHandler.java | 27 ++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/detection/src/main/java/com/njcn/gather/plan/service/AsyncPlanHandler.java b/detection/src/main/java/com/njcn/gather/plan/service/AsyncPlanHandler.java index e7348dcf..5e4217b7 100644 --- a/detection/src/main/java/com/njcn/gather/plan/service/AsyncPlanHandler.java +++ b/detection/src/main/java/com/njcn/gather/plan/service/AsyncPlanHandler.java @@ -12,6 +12,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.gather.detection.pojo.po.AdPair; import com.njcn.gather.detection.service.IAdPariService; +import com.njcn.gather.device.pojo.enums.CheckStateEnum; import com.njcn.gather.device.pojo.po.PqDev; import com.njcn.gather.device.pojo.po.PqDevSub; import com.njcn.gather.device.service.IPqDevService; @@ -325,8 +326,8 @@ public class AsyncPlanHandler { // 同步检测数据 List pairList = planCheckDataVO.getPairList(); adPairService.updateBatchById(pairList); - - + // 主计划 + AdPlan plan = adPlanService.getById(planId); if (CollUtil.isNotEmpty(docxFiles)) { progress.addAndGet(1); sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始同步检测报告文件")); @@ -345,7 +346,6 @@ public class AsyncPlanHandler { } } if (CollUtil.isNotEmpty(dataFiles)) { - AdPlan plan = adPlanService.getById(planId); Integer planCode = plan.getCode(); progress.addAndGet(1); sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始同步检测数据信息,请耐心等待...")); @@ -420,6 +420,27 @@ public class AsyncPlanHandler { // 删除临时目录 FileUtil.del(tempDir); + // 更新主计划状态 + List planIds = adPlanService.lambdaQuery().eq(AdPlan::getFatherPlanId, planId).list().stream().map(AdPlan::getId).collect(Collectors.toList()); + planIds.add(planId); + List devIds = pqDevService.lambdaQuery().in(PqDev::getPlanId, planIds).list().stream().map(PqDev::getId).collect(Collectors.toList()); + List devSubs = pqDevSubService.lambdaQuery().in(PqDevSub::getDevId, devIds).list(); + long checkedCount = devSubs.stream().filter(sub -> sub.getCheckState().equals(CheckStateEnum.CHECKED.getValue())).count(); + if (checkedCount > 0) { + plan.setTestState(CheckStateEnum.CHECKING.getValue()); + // 都已检测完成 + if (checkedCount == devSubs.size()) { + plan.setTestState(CheckStateEnum.CHECKED.getValue()); + } + } else { + plan.setTestState(CheckStateEnum.UNCHECKED.getValue()); + // 是否有检测中 + long checkingCount = devSubs.stream().filter(sub -> sub.getCheckState().equals(CheckStateEnum.CHECKING.getValue())).count(); + if (checkingCount > 0) { + plan.setTestState(CheckStateEnum.CHECKING.getValue()); + } + } + adPlanService.updateById(plan); LocalDateTime endTime = LocalDateTime.now(); log.info("数据合并完成,耗时:{}s", Duration.between(startTime, endTime).getSeconds()); progress.set(100);