From 20cb78eb064eb8b6ef5d3db556724f1f9e732661 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B4=BE=E5=90=8C=E5=AD=A6?= Date: Fri, 26 Sep 2025 14:25:33 +0800 Subject: [PATCH] =?UTF-8?q?UPDATE:=20=E5=AD=90=E8=AE=A1=E5=88=92=E7=BB=91?= =?UTF-8?q?=E5=AE=9A=E6=88=96=E8=A7=A3=E7=BB=91=E8=A2=AB=E6=A3=80=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=EF=BC=8C=E6=A3=80=E6=B5=8B=E7=8A=B6=E6=80=81=E6=9B=B4?= =?UTF-8?q?=E6=96=B0=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plan/service/impl/AdPlanServiceImpl.java | 34 ++++++++++++++++--- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java b/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java index 3ab70982..99fa97f2 100644 --- a/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java @@ -381,8 +381,7 @@ public class AdPlanServiceImpl extends ServiceImpl impleme // 把排除绑定到主计划 fatherNowDevIds.addAll(unionDevIds); - fatherPlan.setTestState(pqDevService.bind(fatherPlanId, fatherNowDevIds)); - list.add(fatherPlan); + pqDevService.bind(fatherPlanId, fatherNowDevIds); } else { if (CollUtil.isNotEmpty(oldDevIds)) { @@ -390,10 +389,20 @@ public class AdPlanServiceImpl extends ServiceImpl impleme List fatherNowDevIds = fatherNowDevList.stream().map(PqDev::getId).collect(Collectors.toList()); fatherNowDevIds.addAll(oldDevIds); // 把原始都绑定到主计划 - fatherPlan.setTestState(pqDevService.bind(fatherPlanId, fatherNowDevIds)); - list.add(fatherPlan); + pqDevService.bind(fatherPlanId, fatherNowDevIds); } } + PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam(); + queryParam.setPlanIdList(Collections.singletonList(plan1.getId())); + List pqDevVOS = pqDevService.listByPlanId(queryParam); + long checkedCount = pqDevVOS.stream().filter(pqDevVO -> pqDevVO.getCheckState().equals(CheckStateEnum.CHECKED.getValue())).count(); + plan1.setTestState(CheckStateEnum.UNCHECKED.getValue()); + if (checkedCount == pqDevVOS.size()) { + plan1.setTestState(CheckStateEnum.CHECKED.getValue()); + } else if (checkedCount > 0) { + plan1.setTestState(CheckStateEnum.CHECKING.getValue()); + } + list.add(plan1); return this.updateBatchById(list); } @@ -929,8 +938,25 @@ public class AdPlanServiceImpl extends ServiceImpl impleme // 0-解绑、1-绑定 if (param.getBindFlag().equals(1)) { pqDevService.lambdaUpdate().set(PqDev::getPlanId, plan.getId()).in(PqDev::getId, param.getDevIds()).update(); + // 绑定被检设备,若检测计划已检测完成,则修改为检测中 + if (plan.getTestState().equals(CheckStateEnum.CHECKED.getValue())) { + plan.setTestState(CheckStateEnum.CHECKING.getValue()); + this.updateById(plan); + } } else { pqDevService.lambdaUpdate().set(PqDev::getPlanId, plan.getFatherPlanId()).in(PqDev::getId, param.getDevIds()).update(); + // 解绑被检设备,若检测计划检测中,且所有设备已检测完成,则修改为检测完成 + if (plan.getTestState().equals(CheckStateEnum.CHECKING.getValue())) { + PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam(); + queryParam.setPlanIdList(Collections.singletonList(plan.getId())); + List pqDevVOS = pqDevService.listByPlanId(queryParam); + long checkedCount = pqDevVOS.stream().filter(pqDevVO -> pqDevVO.getCheckState().equals(CheckStateEnum.CHECKED.getValue())).count(); + if (checkedCount == pqDevVOS.size()) { + plan.setTestState(CheckStateEnum.CHECKED.getValue()); + this.updateById(plan); + } + + } } return true; }