diff --git a/detection/src/main/java/com/njcn/gather/device/pojo/param/PqDevParam.java b/detection/src/main/java/com/njcn/gather/device/pojo/param/PqDevParam.java index 8c526b7f..f555d487 100644 --- a/detection/src/main/java/com/njcn/gather/device/pojo/param/PqDevParam.java +++ b/detection/src/main/java/com/njcn/gather/device/pojo/param/PqDevParam.java @@ -6,14 +6,12 @@ import com.njcn.gather.pojo.constant.DetectionValidMessage; import com.njcn.web.pojo.annotation.DateTimeStrValid; import com.njcn.web.pojo.param.BaseParam; import io.swagger.annotations.ApiModelProperty; -import io.swagger.models.auth.In; import lombok.Data; import lombok.EqualsAndHashCode; import org.hibernate.validator.constraints.Range; import javax.validation.Valid; import javax.validation.constraints.*; -import java.time.LocalDate; import java.util.List; /** @@ -137,6 +135,7 @@ public class PqDevParam { @ApiModelProperty("是否为导入设备") private Integer importFlag; + /** * 更新操作实体 */ @@ -197,6 +196,12 @@ public class PqDevParam { @ApiModelProperty("是否分配") private Integer assign; + @ApiModelProperty("关键词") + private String keywords; + @ApiModelProperty("主计划ID") + private String planId; + @ApiModelProperty("是否分配子计划") + private Integer assignSub; } @Data diff --git a/detection/src/main/java/com/njcn/gather/device/service/impl/PqDevServiceImpl.java b/detection/src/main/java/com/njcn/gather/device/service/impl/PqDevServiceImpl.java index 8e9af9cf..16d52808 100644 --- a/detection/src/main/java/com/njcn/gather/device/service/impl/PqDevServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/device/service/impl/PqDevServiceImpl.java @@ -396,12 +396,21 @@ public class PqDevServiceImpl extends ServiceImpl implements .in(CollectionUtil.isNotEmpty(queryParam.getPlanIdList()), "pq_dev.Plan_Id", queryParam.getPlanIdList()) .isNotNull(DataStateEnum.ENABLE.getCode().equals(queryParam.getAssign()), "pq_dev.Plan_Id") .isNull(DataStateEnum.DELETED.getCode().equals(queryParam.getAssign()), "pq_dev.Plan_Id") + .eq(DataStateEnum.DELETED.getCode().equals(queryParam.getAssignSub()), "pq_dev.Plan_Id", queryParam.getPlanId()) + .ne(DataStateEnum.ENABLE.getCode().equals(queryParam.getAssignSub()), "pq_dev.Plan_Id", queryParam.getPlanId()) .between(ObjectUtil.isAllNotEmpty(queryParam.getSearchBeginTime(), queryParam.getSearchEndTime()), "pq_dev.Create_Date", queryParam.getSearchBeginTime(), queryParam.getSearchEndTime()); if (StrUtil.isNotBlank(queryParam.getRegion())) { queryWrapper.and(w -> w.like(StrUtil.isNotBlank(queryParam.getRegion()), "pq_dev.City_Name", queryParam.getRegion()) .or().like(StrUtil.isNotBlank(queryParam.getRegion()), "pq_dev.Gd_Name", queryParam.getRegion()) .or().like(StrUtil.isNotBlank(queryParam.getRegion()), "pq_dev.Sub_Name", queryParam.getRegion())); } + if (StrUtil.isNotBlank(queryParam.getKeywords())) { + queryWrapper.and(w -> w.like(StrUtil.isNotBlank(queryParam.getKeywords()), "pq_dev.City_Name", queryParam.getKeywords()) + .or().like(StrUtil.isNotBlank(queryParam.getKeywords()), "pq_dev.Gd_Name", queryParam.getKeywords()) + .or().like(StrUtil.isNotBlank(queryParam.getKeywords()), "pq_dev.Sub_Name", queryParam.getKeywords()) + .or().like(StrUtil.isNotBlank(queryParam.getKeywords()), "pq_dev.name", queryParam.getKeywords()) + ); + } //排序 if (ObjectUtil.isAllNotEmpty(queryParam.getSortBy(), queryParam.getOrderBy())) { queryWrapper.orderBy(true, queryParam.getOrderBy().equals(DbConstant.ASC), StrUtil.toUnderlineCase(queryParam.getSortBy())); diff --git a/detection/src/main/java/com/njcn/gather/plan/controller/AdPlanController.java b/detection/src/main/java/com/njcn/gather/plan/controller/AdPlanController.java index fa5da17e..a4313b16 100644 --- a/detection/src/main/java/com/njcn/gather/plan/controller/AdPlanController.java +++ b/detection/src/main/java/com/njcn/gather/plan/controller/AdPlanController.java @@ -250,6 +250,7 @@ public class AdPlanController extends BaseController { List planIdList = planList.stream().map(AdPlan::getId).collect(Collectors.toList()); param.getPlanIdList().addAll(planIdList); } + param.setPlanId(plan.getId()); Page pqDevVOPage = pqDevService.listPqDevs(param); List planList = adPlanService.listByIds(param.getPlanIdList()); 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 e6f0b420..af40c4d8 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 @@ -1777,7 +1777,12 @@ public class AdPlanServiceImpl extends ServiceImpl 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 devList = subPlanMetaDataVO.getDevList(); List standardDevList = subPlanMetaDataVO.getStandardDevList(); @@ -1789,8 +1794,14 @@ public class AdPlanServiceImpl extends ServiceImpl impleme // 批量更新被检设备信息 // 设置导入标志为 1 devList.forEach(dev -> dev.setImportFlag(1)); - pqDevService.saveOrUpdateBatch(devList); - devList.forEach(dev -> { + // 排除已存在的,再入库 + List devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList()); + List pqDevSubs = pqDevSubService.lambdaQuery().in(PqDevSub::getDevId, devIds).list(); + List hadDevIds = pqDevSubs.stream().map(PqDevSub::getDevId).collect(Collectors.toList()); + // 新增被检设备 + List 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 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().eq(PqDevSub::getDevId, dev.getId())); - } + pqDevSubService.save(pqDevSub); }); - List devIds = devList.stream().map(PqDev::getId).collect(Collectors.toList()); - // 守时检测 - pqDevService.updatePqDevTimeCheckResult(devIds, TimeCheckResultEnum.UNKNOWN); - + // 移除未检测的被检设备 + List uncheckedDevIds = pqDevSubs.stream() + .filter(pqDevSub -> pqDevSub.getCheckState().equals(CheckStateEnum.UNCHECKED.getValue())) + .map(PqDevSub::getDevId) + .collect(Collectors.toList()); + 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)); + } // 批量更新标准设备信息 pqStandardDevService.saveOrUpdateBatch(standardDevList); List standardDevIds = standardDevList.stream().map(PqStandardDev::getId).collect(Collectors.toList()); diff --git a/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java b/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java index 04c0541c..e7647ce2 100644 --- a/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java @@ -1616,7 +1616,12 @@ public class ResultServiceImpl implements IResultService { List pqMonitorList = pqMonitorService.lambdaQuery().eq(PqMonitor::getDevId, devId).isNotNull(PqMonitor::getResultType).list(); List list = new ArrayList<>(); + if (CollUtil.isEmpty(pqMonitorList)) { + return list; + } MonitorResultVO result; + // 根据通道号排序 + pqMonitorList.sort(Comparator.comparing(PqMonitor::getNum)); for (PqMonitor pqMonitor : pqMonitorList) { result = new MonitorResultVO(); result.setMonitorId(pqMonitor.getDevId() + CnSocketUtil.SPLIT_TAG + pqMonitor.getNum());