UPDATE: 1、子计划管理,筛选条件改成搜索、设备厂家、是否分配;

2、重复导入子计划时,增量被检设备并删除未检设备。
This commit is contained in:
贾同学
2025-09-25 08:59:36 +08:00
parent ac1c5fd43e
commit 2dcf90d6c7
5 changed files with 50 additions and 15 deletions

View File

@@ -250,6 +250,7 @@ public class AdPlanController extends BaseController {
List<String> planIdList = planList.stream().map(AdPlan::getId).collect(Collectors.toList());
param.getPlanIdList().addAll(planIdList);
}
param.setPlanId(plan.getId());
Page<PqDevVO> pqDevVOPage = pqDevService.listPqDevs(param);
List<AdPlan> planList = adPlanService.listByIds(param.getPlanIdList());

View File

@@ -1777,7 +1777,12 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 更新检测计划信息
plan.setImportFlag(1);
plan.setFatherPlanId(CommonEnum.FATHER_ID.getValue());
saveOrUpdate(plan);
AdPlan oldPlan = this.getById(plan.getId());
// 不存在,则入库
if (oldPlan == null) {
this.save(plan);
}
List<PqDev> devList = subPlanMetaDataVO.getDevList();
List<PqStandardDev> standardDevList = subPlanMetaDataVO.getStandardDevList();
@@ -1789,8 +1794,14 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
// 批量更新被检设备信息
// 设置导入标志为 1
devList.forEach(dev -> dev.setImportFlag(1));
pqDevService.saveOrUpdateBatch(devList);
devList.forEach(dev -> {
// 排除已存在的,再入库
List<String> devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList());
List<PqDevSub> pqDevSubs = pqDevSubService.lambdaQuery().in(PqDevSub::getDevId, devIds).list();
List<String> hadDevIds = pqDevSubs.stream().map(PqDevSub::getDevId).collect(Collectors.toList());
// 新增被检设备
List<PqDev> saveDevList = devList.stream().filter(dev -> !hadDevIds.contains(dev.getId())).collect(Collectors.toList());
pqDevService.saveBatch(saveDevList);
saveDevList.forEach(dev -> {
pqMonitorService.saveOrUpdateBatch(dev.getMonitorList());
// 新增时默认设置
PqDevSub pqDevSub = new PqDevSub();
@@ -1800,17 +1811,21 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
pqDevSub.setCheckState(CheckStateEnum.UNCHECKED.getValue());
pqDevSub.setReportState(DevReportStateEnum.UNCHECKED.getValue());
pqDevSub.setCheckResult(CheckResultEnum.UNCHECKED.getValue());
Integer count = pqDevSubService.lambdaQuery().eq(PqDevSub::getDevId, dev.getId()).count();
if (count.intValue() == 0) {
pqDevSubService.save(pqDevSub);
} else {
pqDevSubService.update(pqDevSub, new LambdaUpdateWrapper<PqDevSub>().eq(PqDevSub::getDevId, dev.getId()));
}
pqDevSubService.save(pqDevSub);
});
List<String> devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList());
// 守时检测
pqDevService.updatePqDevTimeCheckResult(devIds, TimeCheckResultEnum.UNKNOWN);
// 移除未检测的被检设备
List<String> uncheckedDevIds = pqDevSubs.stream()
.filter(pqDevSub -> pqDevSub.getCheckState().equals(CheckStateEnum.UNCHECKED.getValue()))
.map(PqDevSub::getDevId)
.collect(Collectors.toList());
List<String> removeDevIds = uncheckedDevIds.stream()
.filter(devId -> !devIds.contains(devId))
.collect(Collectors.toList());
if (CollUtil.isNotEmpty(removeDevIds)) {
pqDevService.removeByIds(removeDevIds);
pqDevSubService.remove(new LambdaQueryWrapper<PqDevSub>().in(PqDevSub::getDevId, removeDevIds));
}
// 批量更新标准设备信息
pqStandardDevService.saveOrUpdateBatch(standardDevList);
List<String> standardDevIds = standardDevList.stream().map(PqStandardDev::getId).collect(Collectors.toList());