icd校验
This commit is contained in:
@@ -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<String> dataTypeList;
|
||||
|
||||
private List<String> icdTypeList;
|
||||
|
||||
private final List<String> 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<String> 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<String> failComm = new HashSet<>();
|
||||
|
||||
/**
|
||||
* 存放从装置收到的icd校验数据。key为icdType,value为IcdCheckData
|
||||
*/
|
||||
Map<String, IcdCheckData> 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<SourceIssue> 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<Integer> 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<String, List<SourceIssue>> 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<String, Long> 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<Object> 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<String, Object> 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<String, Object> map = new HashMap<>(2);
|
||||
map.put("icdType", icdCheckData.getIcdType());
|
||||
DetectionCodeEnum anEnum = DetectionCodeEnum.getDetectionCodeByCode(item.getDesc());
|
||||
map.put("dataType", anEnum.getMessage());
|
||||
WebSocketVO<String> 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<SourceIssue> 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<Integer> 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<String, List<SourceIssue>> 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<String, Long> 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<Object> 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<String, Object> 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());
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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> resultData;
|
||||
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
public static class ResultData {
|
||||
private String type;
|
||||
|
||||
private String desc;
|
||||
|
||||
private DevData.SqlDataDTO.ListDTO phaseResult;
|
||||
}
|
||||
}
|
||||
@@ -155,7 +155,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> 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<PqDevMapper, PqDev> 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<PqDevMapper, PqDev> implements
|
||||
if (result.containsKey(pqDev.getId())) {
|
||||
Integer checkState;
|
||||
int i;
|
||||
LambdaUpdateWrapper<PqDev> wrapper = new LambdaUpdateWrapper<PqDev>()
|
||||
.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<PqDev>()
|
||||
.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<PqDev> 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<PqDev> queryWrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
queryWrapper.eq(PqDev::getPlanId, pqDev.getPlanId())
|
||||
.eq(PqDev::getState, DataStateEnum.ENABLE.getCode());
|
||||
|
||||
List<PqDev> pqDevList = this.list(queryWrapper);
|
||||
if (CollUtil.isNotEmpty(pqDevList)) {
|
||||
Set<Integer> set = pqDevList.stream().map(PqDev::getCheckResult).collect(Collectors.toSet());
|
||||
@@ -579,15 +567,23 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> 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;
|
||||
|
||||
@@ -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<DevPhaseSequenceParam> 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<Map<String, Object>> getIcdCheckInfo2(@RequestBody PreDetectionParam param) {
|
||||
String methodDescribe = getMethodDescribe("getIcdCheckInfo2");
|
||||
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe);
|
||||
Map<String, Object> result = pqScriptDtlsService.getScriptToIcdCheckInfo(param);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -44,4 +44,12 @@ public interface IPqScriptCheckDataService extends IService<PqScriptCheckData> {
|
||||
* @param indexList 脚本下标集合
|
||||
*/
|
||||
List<PqScriptCheckData> listCheckData(String scriptId, List<Integer> indexList);
|
||||
|
||||
/**
|
||||
* 根据脚本id删除数据
|
||||
*
|
||||
* @param ids
|
||||
* @return
|
||||
*/
|
||||
boolean deleteByScriptIds(List<String> ids);
|
||||
}
|
||||
|
||||
@@ -128,19 +128,12 @@ public interface IPqScriptDtlsService extends IService<PqScriptDtls> {
|
||||
String getScriptDtlsDesc(ScriptParam.Desc param);
|
||||
|
||||
/**
|
||||
* 获取脚本与设备校验所需要的信息
|
||||
* 获取脚本与icd校验所需要的信息
|
||||
*
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
DevPhaseSequenceParam getScriptToDeviceCheckInfo(PreDetectionParam param);
|
||||
|
||||
/**
|
||||
* 获取脚本与icd校验时所需要的信息
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
Map<String, Object> getScriptToIcdCheckInfo(PreDetectionParam param);
|
||||
List<String> getScriptToIcdCheckInfo(PreDetectionParam param);
|
||||
/**
|
||||
* 根据脚本id获取脚本详情数据
|
||||
* @param scriptId 脚本id
|
||||
|
||||
@@ -134,5 +134,8 @@ public class PqScriptCheckDataServiceImpl extends ServiceImpl<PqScriptCheckDataM
|
||||
return this.list(queryWrapper);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean deleteByScriptIds(List<String> ids) {
|
||||
return this.remove(new LambdaQueryWrapper<PqScriptCheckData>().in(PqScriptCheckData::getScriptId, ids));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -691,8 +691,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
||||
}
|
||||
|
||||
@Override
|
||||
public DevPhaseSequenceParam getScriptToDeviceCheckInfo(PreDetectionParam param) {
|
||||
Map<String, Object> map = new HashMap<>();
|
||||
public List<String> getScriptToIcdCheckInfo(PreDetectionParam param) {
|
||||
|
||||
PqScriptIssueParam issueParam = new PqScriptIssueParam();
|
||||
// issueParam.setPlanId(param.getPlanId());
|
||||
@@ -701,44 +700,13 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
||||
issueParam.setScriptId(param.getScriptId());
|
||||
issueParam.setIsPhaseSequence(SourceOperateCodeEnum.FORMAL_TEST.getValue());
|
||||
List<SourceIssue> 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<String> dataTypeList = new ArrayList<>();
|
||||
sourceIssues.forEach(x -> {
|
||||
dataTypeList.addAll(x.getDevValueTypeList());
|
||||
});
|
||||
phaseSequenceParam.setIgnoreCount(0);
|
||||
phaseSequenceParam.setReadCount(1);
|
||||
phaseSequenceParam.setDataType(dataTypeList);
|
||||
|
||||
return phaseSequenceParam;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> getScriptToIcdCheckInfo(PreDetectionParam param) {
|
||||
Map<String, Object> 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<SourceIssue> 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<PqDev> devList = pqDevService.listByIds(param.getDevIds());
|
||||
// // 是否存在多个设备类型?
|
||||
// List<String> 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
|
||||
|
||||
@@ -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<PqScriptMapper, PqScript> implements IPqScriptService {
|
||||
|
||||
private final IPqScriptDtlsService pqScriptDtlsService;
|
||||
private final IPqScriptCheckDataService pqScriptCheckDataService;
|
||||
|
||||
@Override
|
||||
public Page<PqScript> listPqScript(PqScriptParam.QueryParam param) {
|
||||
@@ -88,6 +90,8 @@ public class PqScriptServiceImpl extends ServiceImpl<PqScriptMapper, PqScript> i
|
||||
}
|
||||
//删除对应的脚本详情
|
||||
pqScriptDtlsService.deletePqScriptDtlsByScriptId(ids);
|
||||
//删除对应的checkdata
|
||||
pqScriptCheckDataService.deleteByScriptIds(ids);
|
||||
LambdaUpdateWrapper<PqScript> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.set(PqScript::getState, DataStateEnum.DELETED.getCode())
|
||||
.in(PqScript::getId, ids);
|
||||
|
||||
Reference in New Issue
Block a user