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);
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<AdPlanMapper, AdPlan> impleme
List<String> 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<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);
return this.updateBatchById(list);
}
@@ -929,8 +938,25 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> 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<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;
}