UPDATE: 子计划绑定或解绑被检设备,检测状态更新。

This commit is contained in:
贾同学
2025-09-26 14:25:33 +08:00
parent f3e9cb7171
commit 20cb78eb06

View File

@@ -381,8 +381,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 把排除绑定到主计划 // 把排除绑定到主计划
fatherNowDevIds.addAll(unionDevIds); fatherNowDevIds.addAll(unionDevIds);
fatherPlan.setTestState(pqDevService.bind(fatherPlanId, fatherNowDevIds)); pqDevService.bind(fatherPlanId, fatherNowDevIds);
list.add(fatherPlan);
} else { } else {
if (CollUtil.isNotEmpty(oldDevIds)) { if (CollUtil.isNotEmpty(oldDevIds)) {
@@ -390,10 +389,20 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
List<String> fatherNowDevIds = fatherNowDevList.stream().map(PqDev::getId).collect(Collectors.toList()); List<String> fatherNowDevIds = fatherNowDevList.stream().map(PqDev::getId).collect(Collectors.toList());
fatherNowDevIds.addAll(oldDevIds); fatherNowDevIds.addAll(oldDevIds);
// 把原始都绑定到主计划 // 把原始都绑定到主计划
fatherPlan.setTestState(pqDevService.bind(fatherPlanId, fatherNowDevIds)); pqDevService.bind(fatherPlanId, fatherNowDevIds);
list.add(fatherPlan);
} }
} }
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
queryParam.setPlanIdList(Collections.singletonList(plan1.getId()));
List<PqDevVO> 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); list.add(plan1);
return this.updateBatchById(list); return this.updateBatchById(list);
} }
@@ -929,8 +938,25 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 0-解绑、1-绑定 // 0-解绑、1-绑定
if (param.getBindFlag().equals(1)) { if (param.getBindFlag().equals(1)) {
pqDevService.lambdaUpdate().set(PqDev::getPlanId, plan.getId()).in(PqDev::getId, param.getDevIds()).update(); 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 { } else {
pqDevService.lambdaUpdate().set(PqDev::getPlanId, plan.getFatherPlanId()).in(PqDev::getId, param.getDevIds()).update(); 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<PqDevVO> 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; return true;
} }