diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java index 79c50d4a..a05ef1cf 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java @@ -7,11 +7,13 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.njcn.gather.detection.pojo.dto.DevXiNumData; +import com.njcn.gather.detection.pojo.enums.DetectionCodeEnum; import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum; import com.njcn.gather.detection.pojo.enums.SourceResponseCodeEnum; import com.njcn.gather.detection.pojo.param.DevPhaseSequenceParam; import com.njcn.gather.detection.pojo.param.PreDetectionParam; import com.njcn.gather.detection.pojo.po.DevData; +import com.njcn.gather.detection.pojo.po.IcdCheckData; import com.njcn.gather.detection.pojo.po.SourceCompareDev; import com.njcn.gather.detection.pojo.vo.*; import com.njcn.gather.detection.service.impl.DetectionServiceImpl; @@ -70,6 +72,9 @@ public class SocketDevResponseService { private DevPhaseSequenceParam devPhaseSequenceParam; + private List dataTypeList; + + private List icdTypeList; private final List nonHarmonicList = Stream.of(DicDataEnum.FREQ.getCode(), DicDataEnum.V.getCode(), DicDataEnum.I.getCode(), DicDataEnum.IMBV.getCode(), DicDataEnum.IMBA.getCode(), DicDataEnum.VOLTAGE.getCode(), DicDataEnum.F.getCode()).collect(Collectors.toList()); private final List harmonicList = Stream.of(DicDataEnum.HV.getCode(), DicDataEnum.HI.getCode(), DicDataEnum.HP.getCode(), DicDataEnum.HSV.getCode(), DicDataEnum.HSI.getCode()).collect(Collectors.toList()); @@ -108,6 +113,11 @@ public class SocketDevResponseService { */ Set failComm = new HashSet<>(); + /** + * 存放从装置收到的icd校验数据。key为icdType,value为IcdCheckData + */ + Map icdCheckDataMap = new HashMap<>(); + /** * 保存成功的协议 */ @@ -764,95 +774,149 @@ public class SocketDevResponseService { System.out.println(successComm.size() + "=====" + FormalTestManager.monitorIdListComm.size()); if (successComm.size() == FormalTestManager.monitorIdListComm.size()) { - SocketDataMsg temMsg = new SocketDataMsg(); - temMsg.setCode(SourceResponseCodeEnum.DEV_COMM_ALL_SUCCESS.getCode()); - temMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_03.getValue()); - temMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue()); - WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(temMsg)); - - //开始下源控制脚本 - PqScriptIssueParam issueParam = new PqScriptIssueParam(); - issueParam.setPlanId(param.getPlanId()); - issueParam.setSourceId(param.getSourceId()); - issueParam.setDevIds(param.getDevIds()); - issueParam.setScriptId(param.getScriptId()); - - socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue()); - List sourceIssues; - if (SourceOperateCodeEnum.FORMAL_TEST.getValue().equals(param.getOperateType()) || SourceOperateCodeEnum.RE_ERROR_TEST.getValue().equals(param.getOperateType())) { - - if (param.getOperateType().equals(SourceOperateCodeEnum.RE_ERROR_TEST.getValue())) { - //不合格项复检 - StorageParam storageParam = new StorageParam(); - storageParam.setCode(param.getCode()); - storageParam.setScriptId(param.getScriptId()); - List indexes = adHarmonicService.getIndex(storageParam, true); - issueParam.setIndexList(indexes); - issueParam.setIsPhaseSequence(SourceOperateCodeEnum.RE_ERROR_TEST.getValue()); - } else { - issueParam.setIsPhaseSequence(SourceOperateCodeEnum.FORMAL_TEST.getValue()); - } - //正式检测 - sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam); - sourceIssues = sourceIssues.stream().sorted(Comparator.comparing(SourceIssue::getIndex)).collect(Collectors.toList()); - // 使用 LinkedHashMap 保持分组顺序 - Map> groupedIssues = sourceIssues.stream() - .collect(Collectors.groupingBy( - SourceIssue::getType, - LinkedHashMap::new, - Collectors.toList() - )); - - // 将分组后的元素合并成一个新的集合,保持原有顺序 - sourceIssues = groupedIssues.values().stream() - .flatMap(List::stream) - .collect(Collectors.toList()); - // 存放所有检测小项 - SocketManager.addSourceList(sourceIssues); - // 按照大项分组。key为大项code,value为小项个数 - Map sourceIssueMap = sourceIssues.stream().collect(Collectors.groupingBy(SourceIssue::getType, Collectors.counting())); - SocketManager.initMap(sourceIssueMap); - - socketMsg.setData(JSON.toJSONString(sourceIssues.get(0))); - socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssues.get(0).getType()); - SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg)); - - - //告诉前端当前项开始了 - WebSocketVO webSocketVO = new WebSocketVO<>(); - webSocketVO.setRequestId(sourceIssues.get(0).getType() + stepBegin); - webSocketVO.setDesc(null); - WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO)); - - - } else if (SourceOperateCodeEnum.PRE_TEST.getValue().equals(param.getOperateType()) || SourceOperateCodeEnum.COEFFICIENT_TEST.getValue().equals(param.getOperateType())) { - //预检测的相序检测 以及系数校验都需要进行相序检测 - issueParam.setIsPhaseSequence(SourceOperateCodeEnum.PHASE_TEST.getValue()); - sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam); - socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue()); - socketMsg.setData(JSON.toJSONString(sourceIssues.get(0))); - SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg)); - } else if (SourceOperateCodeEnum.TEST_TEM_START.getValue().equals(param.getOperateType())) { - //暂停检测后的继续检测 - System.out.println("进入暂停后的继续检测》》》》》》》》》》》》》》》》》》》》》》》》》》》" + "剩余检测小项" + SocketManager.getSourceList().size()); - if (CollUtil.isNotEmpty(SocketManager.getSourceList())) { - SourceIssue sourceIssue = SocketManager.getSourceList().get(0); - socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssue.getType()); - socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue()); - socketMsg.setData(JSON.toJSONString(sourceIssue)); - SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg)); - } - } else { - - } successComm.clear(); failComm.clear(); + if (CollUtil.isEmpty(dataTypeList)) { + dataTypeList = pqScriptDtlsService.getScriptToIcdCheckInfo(param); + } + if (CollUtil.isEmpty(icdTypeList)) { + icdTypeList = FormalTestManager.devList.stream().map(PreDetection::getIcdType).distinct().collect(Collectors.toList()); + } + + socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue()); + socketMsg.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue()); + Map map = new HashMap<>(2); + map.put("dataType", dataTypeList); + map.put("icdType", icdTypeList.get(0)); + socketMsg.setData(JSON.toJSONString(map)); + System.out.println("开始脚本与icd校验:++++++++++"); + SocketManager.sendMsg(s, JSON.toJSONString(socketMsg)); } completeJudgment(param); + } else if (socketDataMsg.getOperateCode().equals(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue())) { + String data = socketDataMsg.getData(); + IcdCheckData icdCheckData = JSON.parseObject(data, IcdCheckData.class); + + boolean isContinue = true; + for (int i = 0; i < icdCheckData.getResultData().size(); i++) { + IcdCheckData.ResultData item = icdCheckData.getResultData().get(i); + Integer errorType = getErrorType(item.getDesc(), item.getPhaseResult()); + // 校验脚本与icd校验失败 + if (errorType.equals(0)) { + isContinue = false; + Map map = new HashMap<>(2); + map.put("icdType", icdCheckData.getIcdType()); + DetectionCodeEnum anEnum = DetectionCodeEnum.getDetectionCodeByCode(item.getDesc()); + map.put("dataType", anEnum.getMessage()); + WebSocketVO webSocketVO = new WebSocketVO<>(); + webSocketVO.setData(JSON.toJSONString(map)); + webSocketVO.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue()); + webSocketVO.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue()); + webSocketVO.setCode(SourceResponseCodeEnum.SUCCESS.getCode()); + WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO)); + CnSocketUtil.quitSend(param); + break; + } + } + + icdCheckDataMap.put(icdCheckData.getIcdType(), icdCheckData); + + if (isContinue) { + if (icdCheckDataMap.size() == icdTypeList.size()) { + SocketDataMsg temMsg = new SocketDataMsg(); + temMsg.setCode(SourceResponseCodeEnum.DEV_COMM_ALL_SUCCESS.getCode()); + temMsg.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue()); + temMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue()); + WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(temMsg)); + + //开始下源控制脚本 + PqScriptIssueParam issueParam = new PqScriptIssueParam(); + issueParam.setPlanId(param.getPlanId()); + issueParam.setSourceId(param.getSourceId()); + issueParam.setDevIds(param.getDevIds()); + issueParam.setScriptId(param.getScriptId()); + + socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue()); + List sourceIssues; + if (SourceOperateCodeEnum.FORMAL_TEST.getValue().equals(param.getOperateType()) || SourceOperateCodeEnum.RE_ERROR_TEST.getValue().equals(param.getOperateType())) { + + if (param.getOperateType().equals(SourceOperateCodeEnum.RE_ERROR_TEST.getValue())) { + //不合格项复检 + StorageParam storageParam = new StorageParam(); + storageParam.setCode(param.getCode()); + storageParam.setScriptId(param.getScriptId()); + List indexes = adHarmonicService.getIndex(storageParam, true); + issueParam.setIndexList(indexes); + issueParam.setIsPhaseSequence(SourceOperateCodeEnum.RE_ERROR_TEST.getValue()); + } else { + issueParam.setIsPhaseSequence(SourceOperateCodeEnum.FORMAL_TEST.getValue()); + } + //正式检测 + sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam); + sourceIssues = sourceIssues.stream().sorted(Comparator.comparing(SourceIssue::getIndex)).collect(Collectors.toList()); + // 使用 LinkedHashMap 保持分组顺序 + Map> groupedIssues = sourceIssues.stream() + .collect(Collectors.groupingBy( + SourceIssue::getType, + LinkedHashMap::new, + Collectors.toList() + )); + + // 将分组后的元素合并成一个新的集合,保持原有顺序 + sourceIssues = groupedIssues.values().stream() + .flatMap(List::stream) + .collect(Collectors.toList()); + // 存放所有检测小项 + SocketManager.addSourceList(sourceIssues); + // 按照大项分组。key为大项code,value为小项个数 + Map sourceIssueMap = sourceIssues.stream().collect(Collectors.groupingBy(SourceIssue::getType, Collectors.counting())); + SocketManager.initMap(sourceIssueMap); + + socketMsg.setData(JSON.toJSONString(sourceIssues.get(0))); + socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssues.get(0).getType()); + SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg)); + + + //告诉前端当前项开始了 + WebSocketVO webSocketVO = new WebSocketVO<>(); + webSocketVO.setRequestId(sourceIssues.get(0).getType() + stepBegin); + webSocketVO.setDesc(null); + WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO)); + + + } else if (SourceOperateCodeEnum.PRE_TEST.getValue().equals(param.getOperateType()) || SourceOperateCodeEnum.COEFFICIENT_TEST.getValue().equals(param.getOperateType())) { + //预检测的相序检测 以及系数校验都需要进行相序检测 + issueParam.setIsPhaseSequence(SourceOperateCodeEnum.PHASE_TEST.getValue()); + sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam); + socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue()); + socketMsg.setData(JSON.toJSONString(sourceIssues.get(0))); + SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg)); + } else if (SourceOperateCodeEnum.TEST_TEM_START.getValue().equals(param.getOperateType())) { + //暂停检测后的继续检测 + System.out.println("进入暂停后的继续检测》》》》》》》》》》》》》》》》》》》》》》》》》》》" + "剩余检测小项" + SocketManager.getSourceList().size()); + if (CollUtil.isNotEmpty(SocketManager.getSourceList())) { + SourceIssue sourceIssue = SocketManager.getSourceList().get(0); + socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssue.getType()); + socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue()); + socketMsg.setData(JSON.toJSONString(sourceIssue)); + SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg)); + } + } else { + + } + } else { + // 发送下一个脚本与icd校验 + Map map = new HashMap<>(2); + map.put("dataType", dataTypeList); + String icdType = icdTypeList.stream().filter(it -> !icdCheckDataMap.containsKey(it)).findFirst().get(); + map.put("icdType", icdType); + socketMsg.setData(JSON.toJSONString(map)); + System.out.println("开始脚本与icd校验:++++++++++"); + SocketManager.sendMsg(s, JSON.toJSONString(socketMsg)); + } + } } - - break; case UNPROCESSED_BUSINESS: WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg)); @@ -879,6 +943,34 @@ public class SocketDevResponseService { } } + /** + * 获取错误类型 + * + * @param desc + * @param list + * @return + */ + private Integer getErrorType(String desc, DevData.SqlDataDTO.ListDTO list) { + if (ObjectUtil.isNotNull(list)) { + if (DetectionCodeEnum.MAG.getCode().equals(desc) || DetectionCodeEnum.DUR.getCode().equals(desc)) { + if (ObjectUtil.isNull(list.getA()) && ObjectUtil.isNull(list.getB()) && ObjectUtil.isNull(list.getC()) && ObjectUtil.isNull(list.getT())) { + return 0; + } else { + return 1; + } + } else if (DetectionCodeEnum.I_UNBAN.getCode().equals(desc) || DetectionCodeEnum.V_UNBAN.getCode().equals(desc)) { + if (ObjectUtil.isNotNull(list.getA()) && list.getA().equals(0.0) && ObjectUtil.isNotNull(list.getB()) && list.getB().equals(1.0) && ObjectUtil.isNotNull(list.getC()) && list.getC().equals(1.0) || ObjectUtil.isNotNull(list.getT()) && list.getT().equals(1.0)) { + return 1; + } + } else { + if (ObjectUtil.isNotNull(list.getA()) && list.getA().equals(1.0) && ObjectUtil.isNotNull(list.getB()) && list.getB().equals(1.0) && ObjectUtil.isNotNull(list.getC()) && list.getC().equals(1.0) || ObjectUtil.isNotNull(list.getT()) && list.getT().equals(1.0)) { + return 1; // 装置上送错误 + } + } + } + return 0; // icd文件与脚本不匹配 + } + /** * 相序校验 @@ -1775,7 +1867,7 @@ public class SocketDevResponseService { * @param param * @param socketDataMsg */ - public void scriptToDeviceCheck(PreDetectionParam param,SocketDataMsg socketDataMsg) { + public void scriptToDeviceCheck(PreDetectionParam param, SocketDataMsg socketDataMsg) { String data = socketDataMsg.getData(); DevData devData = JSON.parseObject(data, DevData.class); SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode()); diff --git a/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceOperateCodeEnum.java b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceOperateCodeEnum.java index bee82542..2ad1796d 100644 --- a/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceOperateCodeEnum.java +++ b/detection/src/main/java/com/njcn/gather/detection/pojo/enums/SourceOperateCodeEnum.java @@ -38,6 +38,8 @@ public enum SourceOperateCodeEnum { DATA_CHNFACTOR$01("DATA_CHNFACTOR$01","校验系数获取"), DATA_CHNFACTOR$02("DATA_CHNFACTOR$02","校验系数下发"), + VERIFY_MAPPING$01("VERIFY_MAPPING$01","脚本与icd校验"), + /** * 请求操作类型对应实体中 requestId diff --git a/detection/src/main/java/com/njcn/gather/detection/pojo/po/IcdCheckData.java b/detection/src/main/java/com/njcn/gather/detection/pojo/po/IcdCheckData.java new file mode 100644 index 00000000..3b18014d --- /dev/null +++ b/detection/src/main/java/com/njcn/gather/detection/pojo/po/IcdCheckData.java @@ -0,0 +1,29 @@ +package com.njcn.gather.detection.pojo.po; + +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +/** + * @author caozehui + * @data 2025-04-10 + */ +@NoArgsConstructor +@Data +public class IcdCheckData { + + private String icdType; + + private List resultData; + + @NoArgsConstructor + @Data + public static class ResultData { + private String type; + + private String desc; + + private DevData.SqlDataDTO.ListDTO phaseResult; + } +} 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 822133bd..9f060640 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 @@ -155,7 +155,7 @@ public class PqDevServiceImpl extends ServiceImpl implements } switch (sceneEnum) { case PROVINCE_PLATFORM: - if(!Pattern.matches(PatternRegex.PROVINCE_DEV_NAME_REGEX, pqDev.getName())){ + if (!Pattern.matches(PatternRegex.PROVINCE_DEV_NAME_REGEX, pqDev.getName())) { throw new BusinessException(DetectionResponseEnum.PROVINCE_DEV_NAME_FORMAT_ERROR); } break; @@ -414,7 +414,7 @@ public class PqDevServiceImpl extends ServiceImpl implements @Override public PqDevVO getPqDevById(String id) { PqDev pqDev = this.getById(id); - if(StrUtil.isNotBlank(pqDev.getCheckBy())){ + if (StrUtil.isNotBlank(pqDev.getCheckBy())) { pqDev.setCheckBy(userService.getById(pqDev.getCheckBy()).getName()); } PqDevVO pqDevVO = new PqDevVO(); @@ -531,43 +531,31 @@ public class PqDevServiceImpl extends ServiceImpl implements if (result.containsKey(pqDev.getId())) { Integer checkState; int i; + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper() + .set(PqDev::getCheckResult, result.get(pqDev.getId())) + .set(PqDev::getCheckBy, userId) + .set(PqDev::getCheckTime, LocalDateTime.now()) + .eq(PqDev::getId, pqDev.getId()); if (pqDev.getReCheckNum() >= config.getMaxTime()) { // 装置报告生成 todo... - this.baseMapper.updateReportState(pqDev.getId()); + //this.baseMapper.updateReportState(pqDev.getId()); + wrapper.set(PqDev::getReportState, DevReportStateEnum.GENERATED.getValue()); // 装置归档 checkState = CheckStateEnum.DOCUMENTED.getValue(); i = pqDev.getReCheckNum(); } else { checkState = CheckStateEnum.CHECKED.getValue(); i = pqDev.getReCheckNum() + 1; + wrapper.set(PqDev::getReportState, DevReportStateEnum.NOT_GENERATED.getValue()); } - this.update(new LambdaUpdateWrapper() - .set(PqDev::getReCheckNum, i) - .set(PqDev::getCheckState, checkState) - .set(PqDev::getCheckResult, result.get(pqDev.getId())) - .set(PqDev::getCheckBy, userId) - .set(PqDev::getCheckTime, LocalDateTime.now()) - .set(PqDev::getReportState, DevReportStateEnum.NOT_GENERATED.getValue()) - .eq(PqDev::getId, pqDev.getId())); - - if (checkState.equals(CheckStateEnum.DOCUMENTED.getValue())) { - // 判断计划下所有设备是否都已归档,如果是则将计划改为已完成 - // 查询该计划下所有设备的检测状态,是否有不为归档的 - LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(PqDev::getPlanId, pqDev.getPlanId()) - .eq(PqDev::getState, DataStateEnum.ENABLE.getCode()) - .ne(PqDev::getCheckState, CheckStateEnum.DOCUMENTED.getValue()); - int count = this.count(queryWrapper); - if (count == 0) { - // 如果非归档状态的设备数量为0,则更新计划已完成 - this.baseMapper.finishPlan(pqDev.getPlanId()); - } - } + wrapper.set(PqDev::getReCheckNum, i) + .set(PqDev::getCheckState, checkState); + this.update(wrapper); LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(PqDev::getPlanId, pqDev.getPlanId()) .eq(PqDev::getState, DataStateEnum.ENABLE.getCode()); + List pqDevList = this.list(queryWrapper); if (CollUtil.isNotEmpty(pqDevList)) { Set set = pqDevList.stream().map(PqDev::getCheckResult).collect(Collectors.toSet()); @@ -579,15 +567,23 @@ public class PqDevServiceImpl extends ServiceImpl implements this.baseMapper.updatePlanCheckResult(pqDev.getPlanId(), CheckResultEnum.ACCORD.getValue()); } -// set = pqDevList.stream().map(PqDev::getCheckState).collect(Collectors.toSet()); -// if (set.contains(CheckStateEnum.UNCHECKED.getValue())) { -// this.baseMapper.updatePlanTestState(pqDev.getPlanId(), CheckStateEnum.UNCHECKED.getValue()); -// } else { -// this.baseMapper.updatePlanTestState(pqDev.getPlanId(), CheckStateEnum.CHECKED.getValue()); -// } + set = pqDevList.stream().map(PqDev::getCheckState).collect(Collectors.toSet()); + if (set.contains(CheckStateEnum.UNCHECKED.getValue())) { + this.baseMapper.updatePlanTestState(pqDev.getPlanId(), CheckStateEnum.CHECKING.getValue()); + } else { + if (checkState.equals(CheckStateEnum.DOCUMENTED.getValue())) { + queryWrapper.ne(PqDev::getCheckState, CheckStateEnum.DOCUMENTED.getValue()); + int count = this.count(queryWrapper); + if (count == 0) { + // 如果非归档状态的设备数量为0,则更新计划已完成 + this.baseMapper.finishPlan(pqDev.getPlanId()); + } + } else { + this.baseMapper.updatePlanTestState(pqDev.getPlanId(), CheckStateEnum.CHECKING.getValue()); + } + } } } - } } return true; diff --git a/detection/src/main/java/com/njcn/gather/script/controller/PqScriptController.java b/detection/src/main/java/com/njcn/gather/script/controller/PqScriptController.java index 1419c981..8850b8ff 100644 --- a/detection/src/main/java/com/njcn/gather/script/controller/PqScriptController.java +++ b/detection/src/main/java/com/njcn/gather/script/controller/PqScriptController.java @@ -219,27 +219,5 @@ public class PqScriptController extends BaseController { String checkData = pqScriptDtlsService.getScriptDtlsDesc(param); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, checkData, methodDescribe); } - - - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/getCheckInfo1") - @ApiOperation("获取脚本与设备校验所需要的信息") - public HttpResult getIcdCheckInfo1(@RequestBody PreDetectionParam param) { - String methodDescribe = getMethodDescribe("getIcdCheckInfo1"); - LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe); - DevPhaseSequenceParam result = pqScriptDtlsService.getScriptToDeviceCheckInfo(param); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); - } - - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/getCheckInfo2") - @ApiOperation("获取脚本与icd校验所需要的信息") - public HttpResult> getIcdCheckInfo2(@RequestBody PreDetectionParam param) { - String methodDescribe = getMethodDescribe("getIcdCheckInfo2"); - LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe); - Map result = pqScriptDtlsService.getScriptToIcdCheckInfo(param); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); - } - } diff --git a/detection/src/main/java/com/njcn/gather/script/service/IPqScriptCheckDataService.java b/detection/src/main/java/com/njcn/gather/script/service/IPqScriptCheckDataService.java index fe737e16..f0f22be7 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/IPqScriptCheckDataService.java +++ b/detection/src/main/java/com/njcn/gather/script/service/IPqScriptCheckDataService.java @@ -44,4 +44,12 @@ public interface IPqScriptCheckDataService extends IService { * @param indexList 脚本下标集合 */ List listCheckData(String scriptId, List indexList); + + /** + * 根据脚本id删除数据 + * + * @param ids + * @return + */ + boolean deleteByScriptIds(List ids); } diff --git a/detection/src/main/java/com/njcn/gather/script/service/IPqScriptDtlsService.java b/detection/src/main/java/com/njcn/gather/script/service/IPqScriptDtlsService.java index f784820e..45f67d77 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/IPqScriptDtlsService.java +++ b/detection/src/main/java/com/njcn/gather/script/service/IPqScriptDtlsService.java @@ -128,19 +128,12 @@ public interface IPqScriptDtlsService extends IService { String getScriptDtlsDesc(ScriptParam.Desc param); /** - * 获取脚本与设备校验所需要的信息 + * 获取脚本与icd校验所需要的信息 * * @param param * @return */ - DevPhaseSequenceParam getScriptToDeviceCheckInfo(PreDetectionParam param); - - /** - * 获取脚本与icd校验时所需要的信息 - * - * @return - */ - Map getScriptToIcdCheckInfo(PreDetectionParam param); + List getScriptToIcdCheckInfo(PreDetectionParam param); /** * 根据脚本id获取脚本详情数据 * @param scriptId 脚本id diff --git a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptCheckDataServiceImpl.java b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptCheckDataServiceImpl.java index 408596c8..2bb07a63 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptCheckDataServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptCheckDataServiceImpl.java @@ -134,5 +134,8 @@ public class PqScriptCheckDataServiceImpl extends ServiceImpl ids) { + return this.remove(new LambdaQueryWrapper().in(PqScriptCheckData::getScriptId, ids)); + } } diff --git a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptDtlsServiceImpl.java b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptDtlsServiceImpl.java index cd172ab7..f6e23853 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptDtlsServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptDtlsServiceImpl.java @@ -691,8 +691,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl map = new HashMap<>(); + public List getScriptToIcdCheckInfo(PreDetectionParam param) { PqScriptIssueParam issueParam = new PqScriptIssueParam(); // issueParam.setPlanId(param.getPlanId()); @@ -701,44 +700,13 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl sourceIssues = this.listSourceIssue(issueParam); - sourceIssues = sourceIssues.stream().filter(x -> !DicDataEnum.F.getCode().equals(x.getType()) && !DicDataEnum.VOLTAGE.getCode().equals(x.getType()) && !DicDataEnum.HP.getCode().equals(x.getType())).collect(Collectors.toList()); - DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam(); List dataTypeList = new ArrayList<>(); sourceIssues.forEach(x -> { dataTypeList.addAll(x.getDevValueTypeList()); }); - phaseSequenceParam.setIgnoreCount(0); - phaseSequenceParam.setReadCount(1); - phaseSequenceParam.setDataType(dataTypeList); - return phaseSequenceParam; - } - - @Override - public Map getScriptToIcdCheckInfo(PreDetectionParam param) { - Map map = new HashMap<>(); - - PqScriptIssueParam issueParam = new PqScriptIssueParam(); -// issueParam.setPlanId(param.getPlanId()); - issueParam.setSourceId(param.getSourceId()); - issueParam.setDevIds(param.getDevIds()); - issueParam.setScriptId(param.getScriptId()); - issueParam.setIsPhaseSequence(SourceOperateCodeEnum.FORMAL_TEST.getValue()); - List sourceIssues = this.listSourceIssue(issueParam); - sourceIssues = sourceIssues.stream().filter(x -> !DicDataEnum.F.getCode().equals(x.getType()) && !DicDataEnum.VOLTAGE.getCode().equals(x.getType()) && !DicDataEnum.HP.getCode().equals(x.getType())).collect(Collectors.toList()); - - map.put("scriptList", sourceIssues); - -// List devList = pqDevService.listByIds(param.getDevIds()); -// // 是否存在多个设备类型? -// List devTypeList = devList.stream().map(PqDev::getDevType).distinct().collect(Collectors.toList()); -// if (devTypeList.size() == 1) { -// DevType devType = devTypeService.getById(devTypeList.get(0)); -// PqIcdPath icd = pqIcdPathService.getIcdByDevType(devType.getId()); -// map.put("icdName", icd.getName()); -// } - return map; + return dataTypeList; } @Override diff --git a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptServiceImpl.java b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptServiceImpl.java index 01ad6444..0d76d7aa 100644 --- a/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/script/service/impl/PqScriptServiceImpl.java @@ -13,6 +13,7 @@ import com.njcn.gather.pojo.enums.DetectionResponseEnum; import com.njcn.gather.script.mapper.PqScriptMapper; import com.njcn.gather.script.pojo.param.PqScriptParam; import com.njcn.gather.script.pojo.po.PqScript; +import com.njcn.gather.script.service.IPqScriptCheckDataService; import com.njcn.gather.script.service.IPqScriptDtlsService; import com.njcn.gather.script.service.IPqScriptService; import com.njcn.web.factory.PageFactory; @@ -38,6 +39,7 @@ import java.util.stream.Collectors; public class PqScriptServiceImpl extends ServiceImpl implements IPqScriptService { private final IPqScriptDtlsService pqScriptDtlsService; + private final IPqScriptCheckDataService pqScriptCheckDataService; @Override public Page listPqScript(PqScriptParam.QueryParam param) { @@ -88,6 +90,8 @@ public class PqScriptServiceImpl extends ServiceImpl i } //删除对应的脚本详情 pqScriptDtlsService.deletePqScriptDtlsByScriptId(ids); + //删除对应的checkdata + pqScriptCheckDataService.deleteByScriptIds(ids); LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); updateWrapper.set(PqScript::getState, DataStateEnum.DELETED.getCode()) .in(PqScript::getId, ids);