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; }