UPDATE: 完善。

This commit is contained in:
贾同学
2025-09-25 11:10:50 +08:00
parent 2dcf90d6c7
commit dc34bd9b44
4 changed files with 50 additions and 19 deletions

View File

@@ -1,5 +1,6 @@
package com.njcn.gather.device.pojo.po; package com.njcn.gather.device.pojo.po;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.njcn.db.mybatisplus.bo.BaseEntity; import com.njcn.db.mybatisplus.bo.BaseEntity;
import lombok.Data; import lombok.Data;
@@ -72,5 +73,8 @@ public class PqStandardDev extends BaseEntity implements Serializable {
private String devKey; private String devKey;
private Integer state; private Integer state;
@TableField(exist = false)
private boolean disabled;
} }

View File

@@ -18,6 +18,8 @@ import com.njcn.common.pojo.exception.BusinessException;
import com.njcn.common.pojo.poi.PullDown; import com.njcn.common.pojo.poi.PullDown;
import com.njcn.common.utils.EncryptionUtil; import com.njcn.common.utils.EncryptionUtil;
import com.njcn.gather.device.mapper.PqStandardDevMapper; 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.param.PqStandardDevParam;
import com.njcn.gather.device.pojo.po.PqStandardDev; import com.njcn.gather.device.pojo.po.PqStandardDev;
import com.njcn.gather.device.pojo.vo.PqStandardDevExcel; import com.njcn.gather.device.pojo.vo.PqStandardDevExcel;
@@ -316,27 +318,30 @@ public class PqStandardDevServiceImpl extends ServiceImpl<PqStandardDevMapper, P
// 获取对应检测计划 // 获取对应检测计划
List<String> planIds = boundList.stream().map(AdPlanStandardDev::getPlanId).collect(Collectors.toList()); List<String> planIds = boundList.stream().map(AdPlanStandardDev::getPlanId).collect(Collectors.toList());
IAdPlanService adPlanService = SpringUtil.getBean(IAdPlanService.class); IAdPlanService adPlanService = SpringUtil.getBean(IAdPlanService.class);
List<AdPlan> planList = adPlanService.listByIds(planIds); List<AdPlan> planList = adPlanService.lambdaQuery().in(AdPlan::getId, planIds).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode()).list();
// 区分主计划和子计划 // 区分主计划和子计划
List<AdPlan> mainPlanList = planList.stream().filter(plan -> plan.getFatherPlanId() == null).collect(Collectors.toList()); List<AdPlan> mainPlanList = planList.stream().filter(plan -> plan.getFatherPlanId().equals(CommonEnum.FATHER_ID.getValue())).collect(Collectors.toList());
List<AdPlan> subPlanList = planList.stream().filter(plan -> plan.getFatherPlanId() != null).collect(Collectors.toList()); List<AdPlan> subPlanList = planList.stream().filter(plan -> !plan.getFatherPlanId().equals(CommonEnum.FATHER_ID.getValue())).collect(Collectors.toList());
List<String> excludePlanIds = new ArrayList<>(); List<String> excludePlanIds = new ArrayList<>();
// 主计划直接排除 // 主计划未完成直接排除
if (CollectionUtil.isNotEmpty(mainPlanList)) { if (CollectionUtil.isNotEmpty(mainPlanList)) {
List<String> excludeMainPlanIds = mainPlanList.stream().filter(plan -> plan.getTestState() != 2).map(plan -> plan.getId()).collect(Collectors.toList()); List<String> excludeMainPlanIds = mainPlanList.stream().filter(plan -> !plan.getTestState().equals(CheckStateEnum.CHECKED.getValue())).map(AdPlan::getId).collect(Collectors.toList());
if (CollectionUtil.isNotEmpty(excludeMainPlanIds)) {
excludePlanIds.addAll(excludeMainPlanIds); excludePlanIds.addAll(excludeMainPlanIds);
} }
}
// 子计划需要判断其主计划, 如果主计划未完成则排除 // 子计划需要判断其主计划, 如果主计划未完成则排除
if (CollectionUtil.isNotEmpty(subPlanList)) { if (CollectionUtil.isNotEmpty(subPlanList)) {
List<String> fatherPlanIds = subPlanList.stream().map(plan -> plan.getFatherPlanId()).collect(Collectors.toList()); List<String> fatherPlanIds = subPlanList.stream().map(AdPlan::getFatherPlanId).distinct().collect(Collectors.toList());
List<AdPlan> fatherPlanList = adPlanService.listByIds(fatherPlanIds); List<AdPlan> fatherPlanList = adPlanService.listByIds(fatherPlanIds);
List<String> excludeFatherPlanIds = fatherPlanList.stream() List<String> excludeFatherPlanIds = fatherPlanList.stream()
.filter(plan -> plan.getTestState() != 2) .filter(plan -> !plan.getTestState().equals(CheckStateEnum.CHECKED.getValue()))
.map(plan -> plan.getId()).collect(Collectors.toList()); .map(AdPlan::getId).collect(Collectors.toList());
List<String> excludeSubPlanIds = subPlanList.stream() List<String> excludeSubPlanIds = subPlanList.stream()
.filter(plan -> excludeFatherPlanIds.contains(plan.getFatherPlanId())) .filter(plan -> excludeFatherPlanIds.contains(plan.getFatherPlanId()))
.map(plan -> plan.getId()).collect(Collectors.toList()); .map(AdPlan::getId).collect(Collectors.toList());
excludePlanIds.addAll(excludeSubPlanIds); excludePlanIds.addAll(excludeSubPlanIds);
} }
if (CollectionUtil.isNotEmpty(excludePlanIds)) { if (CollectionUtil.isNotEmpty(excludePlanIds)) {
@@ -346,10 +351,12 @@ public class PqStandardDevServiceImpl extends ServiceImpl<PqStandardDevMapper, P
excludeStandardDevIds = excludeBoundList.stream().map(AdPlanStandardDev::getStandardDevId).collect(Collectors.toList()); excludeStandardDevIds = excludeBoundList.stream().map(AdPlanStandardDev::getStandardDevId).collect(Collectors.toList());
} }
} }
List<PqStandardDev> list = this.lambdaQuery()
return this.lambdaQuery()
.eq(PqStandardDev::getState, DataStateEnum.ENABLE.getCode()) .eq(PqStandardDev::getState, DataStateEnum.ENABLE.getCode())
.notIn(CollectionUtil.isNotEmpty(excludeStandardDevIds), PqStandardDev::getId, excludeStandardDevIds)
.list(); .list();
for (PqStandardDev pqStandardDev : list) {
pqStandardDev.setDisabled(excludeStandardDevIds.contains(pqStandardDev.getId()));
}
return list;
} }
} }

View File

@@ -9,6 +9,7 @@ import cn.hutool.json.JSONConfig;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; 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.common.pojo.enums.response.CommonResponseEnum;
import com.njcn.gather.detection.pojo.po.AdPair; import com.njcn.gather.detection.pojo.po.AdPair;
import com.njcn.gather.detection.service.IAdPariService; import com.njcn.gather.detection.service.IAdPariService;
@@ -89,6 +90,12 @@ public class AsyncPlanHandler {
List<String> devIdList = devList.stream().map(PqDev::getId).collect(Collectors.toList()); List<String> devIdList = devList.stream().map(PqDev::getId).collect(Collectors.toList());
// 被检设备状态统计 // 被检设备状态统计
List<PqDevSub> devSubList = pqDevSubService.list(new LambdaQueryWrapper<PqDevSub>().in(PqDevSub::getDevId, devIdList)); List<PqDevSub> devSubList = pqDevSubService.list(new LambdaQueryWrapper<PqDevSub>().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); planCheckDataVO.setDevSubList(devSubList);
// 被检设备监测点信息 // 被检设备监测点信息
List<PqMonitor> monitorList = pqMonitorService.list(new LambdaQueryWrapper<PqMonitor>().in(PqMonitor::getDevId, devIdList)); List<PqMonitor> monitorList = pqMonitorService.list(new LambdaQueryWrapper<PqMonitor>().in(PqMonitor::getDevId, devIdList));
@@ -310,7 +317,9 @@ public class AsyncPlanHandler {
adPlanService.updateById(subPlan); adPlanService.updateById(subPlan);
progress.addAndGet(1); progress.addAndGet(1);
sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始同步计划设备信息,请耐心等待...")); sseClient.sendMessage(uid, planId, HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), progress, "开始同步计划设备信息,请耐心等待..."));
// 更新监测点数据
List<PqMonitor> monitorList = planCheckDataVO.getMonitorList();
pqMonitorService.updateBatchById(monitorList);
// 批量更新被检设备信息 // 批量更新被检设备信息
// 不更新导入标志 // 不更新导入标志
devList.forEach(dev -> dev.setImportFlag(null)); devList.forEach(dev -> dev.setImportFlag(null));
@@ -325,7 +334,7 @@ public class AsyncPlanHandler {
// 同步检测数据 // 同步检测数据
List<AdPair> pairList = planCheckDataVO.getPairList(); List<AdPair> pairList = planCheckDataVO.getPairList();
adPairService.updateBatchById(pairList); adPairService.saveOrUpdateBatch(pairList);
// 主计划 // 主计划
AdPlan plan = adPlanService.getById(planId); AdPlan plan = adPlanService.getById(planId);
if (CollUtil.isNotEmpty(docxFiles)) { if (CollUtil.isNotEmpty(docxFiles)) {

View File

@@ -193,8 +193,18 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
adPlanVO.setSourceName(pqSourceList.stream().map(PqSource::getName).collect(Collectors.toList())); adPlanVO.setSourceName(pqSourceList.stream().map(PqSource::getName).collect(Collectors.toList()));
PqDevParam.QueryParam queryParam1 = new PqDevParam.QueryParam(); PqDevParam.QueryParam queryParam1 = new PqDevParam.QueryParam();
if (adPlan.getFatherPlanId().equals(CommonEnum.FATHER_ID.getValue())) {
List<String> 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())); queryParam1.setPlanIdList(Collections.singletonList(adPlan.getId()));
}
List<PqDevVO> pqDevVOList = pqDevMapper.selectByQueryParam(queryParam1); List<PqDevVO> pqDevVOList = pqDevMapper.selectByQueryParam(queryParam1);
if (CollUtil.isNotEmpty(pqDevVOList)) { if (CollUtil.isNotEmpty(pqDevVOList)) {
long count = pqDevVOList.stream().filter(pqDev -> CheckStateEnum.CHECKED.getValue().equals(pqDev.getCheckState())).count(); long count = pqDevVOList.stream().filter(pqDev -> CheckStateEnum.CHECKED.getValue().equals(pqDev.getCheckState())).count();
@@ -2068,6 +2078,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
/** /**
* 比对模式下计划的检测项获取 * 比对模式下计划的检测项获取
*
* @param planId 计划ID * @param planId 计划ID
* @return 检测项 * @return 检测项
*/ */
@@ -2078,7 +2089,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
String pattern = adPlan.getPattern(); String pattern = adPlan.getPattern();
DictData dictData = dictDataService.getDictDataById(pattern); DictData dictData = dictDataService.getDictDataById(pattern);
if (ObjectUtil.isNotNull(dictData)) { if (ObjectUtil.isNotNull(dictData)) {
if(dictData.getCode().equalsIgnoreCase("Contrast")){ if (dictData.getCode().equalsIgnoreCase("Contrast")) {
String[] items = adPlan.getTestItem().split(","); String[] items = adPlan.getTestItem().split(",");
scriptList = new ArrayList<>(Arrays.asList(items)); scriptList = new ArrayList<>(Arrays.asList(items));
} }