diff --git a/detection/src/main/java/com/njcn/gather/device/pojo/po/PqStandardDev.java b/detection/src/main/java/com/njcn/gather/device/pojo/po/PqStandardDev.java index 963e3615..34e03bc2 100644 --- a/detection/src/main/java/com/njcn/gather/device/pojo/po/PqStandardDev.java +++ b/detection/src/main/java/com/njcn/gather/device/pojo/po/PqStandardDev.java @@ -1,5 +1,6 @@ package com.njcn.gather.device.pojo.po; +import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.njcn.db.mybatisplus.bo.BaseEntity; import lombok.Data; @@ -72,5 +73,8 @@ public class PqStandardDev extends BaseEntity implements Serializable { private String devKey; private Integer state; + + @TableField(exist = false) + private boolean disabled; } diff --git a/detection/src/main/java/com/njcn/gather/device/service/impl/PqStandardDevServiceImpl.java b/detection/src/main/java/com/njcn/gather/device/service/impl/PqStandardDevServiceImpl.java index 359e1684..cd8db8ce 100644 --- a/detection/src/main/java/com/njcn/gather/device/service/impl/PqStandardDevServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/device/service/impl/PqStandardDevServiceImpl.java @@ -18,6 +18,8 @@ import com.njcn.common.pojo.exception.BusinessException; import com.njcn.common.pojo.poi.PullDown; import com.njcn.common.utils.EncryptionUtil; import com.njcn.gather.device.mapper.PqStandardDevMapper; +import com.njcn.gather.device.pojo.enums.CheckStateEnum; +import com.njcn.gather.device.pojo.enums.CommonEnum; import com.njcn.gather.device.pojo.param.PqStandardDevParam; import com.njcn.gather.device.pojo.po.PqStandardDev; import com.njcn.gather.device.pojo.vo.PqStandardDevExcel; @@ -316,27 +318,30 @@ public class PqStandardDevServiceImpl extends ServiceImpl planIds = boundList.stream().map(AdPlanStandardDev::getPlanId).collect(Collectors.toList()); IAdPlanService adPlanService = SpringUtil.getBean(IAdPlanService.class); - List planList = adPlanService.listByIds(planIds); + List planList = adPlanService.lambdaQuery().in(AdPlan::getId, planIds).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode()).list(); // 区分主计划和子计划 - List mainPlanList = planList.stream().filter(plan -> plan.getFatherPlanId() == null).collect(Collectors.toList()); - List subPlanList = planList.stream().filter(plan -> plan.getFatherPlanId() != null).collect(Collectors.toList()); + List mainPlanList = planList.stream().filter(plan -> plan.getFatherPlanId().equals(CommonEnum.FATHER_ID.getValue())).collect(Collectors.toList()); + List subPlanList = planList.stream().filter(plan -> !plan.getFatherPlanId().equals(CommonEnum.FATHER_ID.getValue())).collect(Collectors.toList()); List excludePlanIds = new ArrayList<>(); - // 主计划直接排除 + // 主计划未完成直接排除 if (CollectionUtil.isNotEmpty(mainPlanList)) { - List excludeMainPlanIds = mainPlanList.stream().filter(plan -> plan.getTestState() != 2).map(plan -> plan.getId()).collect(Collectors.toList()); - excludePlanIds.addAll(excludeMainPlanIds); + List excludeMainPlanIds = mainPlanList.stream().filter(plan -> !plan.getTestState().equals(CheckStateEnum.CHECKED.getValue())).map(AdPlan::getId).collect(Collectors.toList()); + if (CollectionUtil.isNotEmpty(excludeMainPlanIds)) { + excludePlanIds.addAll(excludeMainPlanIds); + } + } // 子计划需要判断其主计划, 如果主计划未完成则排除 if (CollectionUtil.isNotEmpty(subPlanList)) { - List fatherPlanIds = subPlanList.stream().map(plan -> plan.getFatherPlanId()).collect(Collectors.toList()); + List fatherPlanIds = subPlanList.stream().map(AdPlan::getFatherPlanId).distinct().collect(Collectors.toList()); List fatherPlanList = adPlanService.listByIds(fatherPlanIds); List excludeFatherPlanIds = fatherPlanList.stream() - .filter(plan -> plan.getTestState() != 2) - .map(plan -> plan.getId()).collect(Collectors.toList()); + .filter(plan -> !plan.getTestState().equals(CheckStateEnum.CHECKED.getValue())) + .map(AdPlan::getId).collect(Collectors.toList()); List excludeSubPlanIds = subPlanList.stream() .filter(plan -> excludeFatherPlanIds.contains(plan.getFatherPlanId())) - .map(plan -> plan.getId()).collect(Collectors.toList()); + .map(AdPlan::getId).collect(Collectors.toList()); excludePlanIds.addAll(excludeSubPlanIds); } if (CollectionUtil.isNotEmpty(excludePlanIds)) { @@ -346,10 +351,12 @@ public class PqStandardDevServiceImpl extends ServiceImpl list = this.lambdaQuery() .eq(PqStandardDev::getState, DataStateEnum.ENABLE.getCode()) - .notIn(CollectionUtil.isNotEmpty(excludeStandardDevIds), PqStandardDev::getId, excludeStandardDevIds) .list(); + for (PqStandardDev pqStandardDev : list) { + pqStandardDev.setDisabled(excludeStandardDevIds.contains(pqStandardDev.getId())); + } + return list; } } diff --git a/detection/src/main/java/com/njcn/gather/plan/service/AsyncPlanHandler.java b/detection/src/main/java/com/njcn/gather/plan/service/AsyncPlanHandler.java index 5e4217b7..9eae9f49 100644 --- a/detection/src/main/java/com/njcn/gather/plan/service/AsyncPlanHandler.java +++ b/detection/src/main/java/com/njcn/gather/plan/service/AsyncPlanHandler.java @@ -9,6 +9,7 @@ import cn.hutool.json.JSONConfig; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.gather.detection.pojo.po.AdPair; import com.njcn.gather.detection.service.IAdPariService; @@ -89,6 +90,12 @@ public class AsyncPlanHandler { List devIdList = devList.stream().map(PqDev::getId).collect(Collectors.toList()); // 被检设备状态统计 List devSubList = pqDevSubService.list(new LambdaQueryWrapper().in(PqDevSub::getDevId, devIdList)); + for (PqDevSub devSub : devSubList) { + // 不导出报告,设置报告状态为未生成 + if (ObjectUtil.isNull(report) || report.equals(DataStateEnum.DELETED.getCode())) { + devSub.setReportState(DataStateEnum.DELETED.getCode()); + } + } planCheckDataVO.setDevSubList(devSubList); // 被检设备监测点信息 List monitorList = pqMonitorService.list(new LambdaQueryWrapper().in(PqMonitor::getDevId, devIdList)); @@ -310,7 +317,9 @@ public class AsyncPlanHandler { adPlanService.updateById(subPlan); progress.addAndGet(1); sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始同步计划设备信息,请耐心等待...")); - + // 更新监测点数据 + List monitorList = planCheckDataVO.getMonitorList(); + pqMonitorService.updateBatchById(monitorList); // 批量更新被检设备信息 // 不更新导入标志 devList.forEach(dev -> dev.setImportFlag(null)); @@ -325,7 +334,7 @@ public class AsyncPlanHandler { // 同步检测数据 List pairList = planCheckDataVO.getPairList(); - adPairService.updateBatchById(pairList); + adPairService.saveOrUpdateBatch(pairList); // 主计划 AdPlan plan = adPlanService.getById(planId); if (CollUtil.isNotEmpty(docxFiles)) { 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 af40c4d8..6fbfa6fa 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 @@ -193,8 +193,18 @@ public class AdPlanServiceImpl extends ServiceImpl impleme adPlanVO.setSourceName(pqSourceList.stream().map(PqSource::getName).collect(Collectors.toList())); PqDevParam.QueryParam queryParam1 = new PqDevParam.QueryParam(); - queryParam1.setPlanIdList(Collections.singletonList(adPlan.getId())); - + if (adPlan.getFatherPlanId().equals(CommonEnum.FATHER_ID.getValue())) { + List planIds = this.lambdaQuery() + .eq(AdPlan::getFatherPlanId, adPlan.getId()) + .eq(AdPlan::getState, DataStateEnum.ENABLE.getCode()) + .select(AdPlan::getId) + .list() + .stream().map(AdPlan::getId).collect(Collectors.toList()); + planIds.add(adPlan.getId()); + queryParam1.setPlanIdList(planIds); + } else { + queryParam1.setPlanIdList(Collections.singletonList(adPlan.getId())); + } List pqDevVOList = pqDevMapper.selectByQueryParam(queryParam1); if (CollUtil.isNotEmpty(pqDevVOList)) { long count = pqDevVOList.stream().filter(pqDev -> CheckStateEnum.CHECKED.getValue().equals(pqDev.getCheckState())).count(); @@ -1821,7 +1831,7 @@ public class AdPlanServiceImpl extends ServiceImpl impleme List removeDevIds = uncheckedDevIds.stream() .filter(devId -> !devIds.contains(devId)) .collect(Collectors.toList()); - + if (CollUtil.isNotEmpty(removeDevIds)) { pqDevService.removeByIds(removeDevIds); pqDevSubService.remove(new LambdaQueryWrapper().in(PqDevSub::getDevId, removeDevIds)); @@ -2068,6 +2078,7 @@ public class AdPlanServiceImpl extends ServiceImpl impleme /** * 比对模式下计划的检测项获取 + * * @param planId 计划ID * @return 检测项 */ @@ -2078,7 +2089,7 @@ public class AdPlanServiceImpl extends ServiceImpl impleme String pattern = adPlan.getPattern(); DictData dictData = dictDataService.getDictDataById(pattern); if (ObjectUtil.isNotNull(dictData)) { - if(dictData.getCode().equalsIgnoreCase("Contrast")){ + if (dictData.getCode().equalsIgnoreCase("Contrast")) { String[] items = adPlan.getTestItem().split(","); scriptList = new ArrayList<>(Arrays.asList(items)); }