增加正式监测流程,监测状态变更

This commit is contained in:
wr
2025-01-13 15:57:45 +08:00
parent db8205fbaa
commit 92887b773c
8 changed files with 152 additions and 32 deletions

View File

@@ -465,12 +465,12 @@ public class SocketDevResponseService {
coefficientVO.setCIeData(String.valueOf(optionalIC));
if (XiNumberManager.stepNumber == 0 || XiNumberManager.stepNumber == 1) {
Integer aXi = (int) ((2-(optionalA / devParameter.getDevVolt())) * 10000);
Integer bXi = (int) ((2-(optionalB / devParameter.getDevVolt())) * 10000);
Integer cXi = (int) ((2-(optionalC / devParameter.getDevVolt())) * 10000);
Integer aIXi = (int) ((2-(optionalIA / devParameter.getDevCurr())) * 10000);
Integer bIXi = (int) ((2-(optionalIB / devParameter.getDevCurr())) * 10000);
Integer cIXi = (int) ((2-(optionalIC / devParameter.getDevCurr())) * 10000);
Integer aXi = (int) ((2 - (optionalA / devParameter.getDevVolt())) * 10000);
Integer bXi = (int) ((2 - (optionalB / devParameter.getDevVolt())) * 10000);
Integer cXi = (int) ((2 - (optionalC / devParameter.getDevVolt())) * 10000);
Integer aIXi = (int) ((2 - (optionalIA / devParameter.getDevCurr())) * 10000);
Integer bIXi = (int) ((2 - (optionalIB / devParameter.getDevCurr())) * 10000);
Integer cIXi = (int) ((2 - (optionalIC / devParameter.getDevCurr())) * 10000);
coefficientVO.setAVuXi(aXi.toString());
coefficientVO.setBVuXi(bXi.toString());
@@ -551,7 +551,6 @@ public class SocketDevResponseService {
completeJudgment(param);
break;
case UNPROCESSED_BUSINESS:
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
@@ -592,14 +591,14 @@ public class SocketDevResponseService {
}
private void completeJudgment(PreDetectionParam param){
if(successDevComm.size()+failDevComm.size() == FormalTestManager.devList.size() && successComm.size() + failComm.size() == FormalTestManager.monitorIdListComm.size()){
private void completeJudgment(PreDetectionParam param) {
if (successDevComm.size() + failDevComm.size() == FormalTestManager.devList.size() && successComm.size() + failComm.size() == FormalTestManager.monitorIdListComm.size()) {
//全部装置返回
if(!failDevComm.isEmpty()){
if (!failDevComm.isEmpty()) {
CnSocketUtil.quitSend(param);
WebSocketVO<String> webSocketVO = new WebSocketVO<>();
webSocketVO.setRequestId(SourceOperateCodeEnum.ERROR_FLOW_END.getValue());
webSocketHandler.sendMsgToUser(param.getUserPageId(),JSON.toJSONString(webSocketVO));
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
}
successDevComm.clear();
failDevComm.clear();
@@ -648,7 +647,6 @@ public class SocketDevResponseService {
completeJudgment(param);
} else if (socketDataMsg.getOperateCode().equals(SourceOperateCodeEnum.DEV_INIT_GATHER_03.getValue())) {
successDevComm.add(socketDataMsg.getData().split(splitTag)[0]);
successComm.add(socketDataMsg.getData());
@@ -673,7 +671,7 @@ public class SocketDevResponseService {
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())){
if (param.getOperateType().equals(SourceOperateCodeEnum.RE_ERROR_TEST.getValue())) {
//不合格项复检
StorageParam storageParam = new StorageParam();
storageParam.setCode(Integer.valueOf(param.getPlanCode()));
@@ -681,7 +679,7 @@ public class SocketDevResponseService {
List<Integer> indexes = adHarmonicService.getIndex(storageParam);
issueParam.setIndexList(indexes);
issueParam.setIsPhaseSequence(SourceOperateCodeEnum.COEFFICIENT_TEST.getValue());
}else {
} else {
issueParam.setIsPhaseSequence(SourceOperateCodeEnum.FORMAL_TEST.getValue());
}
//正式检测
@@ -694,7 +692,7 @@ public class SocketDevResponseService {
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssues.get(0).getType());
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
} else if (SourceOperateCodeEnum.PRE_TEST.getValue().equals(param.getOperateType())||SourceOperateCodeEnum.COEFFICIENT_TEST.getValue().equals(param.getOperateType())) {
} 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);
@@ -873,21 +871,22 @@ public class SocketDevResponseService {
//FormalTestManager.devXiNumDataMap.put(devData.getId(),)
if(SocketManager.clockMap.containsKey(sourceIssue.getIndex())){
SocketManager.clockMap.put(sourceIssue.getIndex(),0L);
if (SocketManager.clockMap.containsKey(sourceIssue.getIndex())) {
SocketManager.clockMap.put(sourceIssue.getIndex(), 0L);
}
if (successComm.size() == FormalTestManager.monitorIdListComm.size()) {
//TODO 理论上遇到返回code10200的数量与监测点数量一致则认为数据返回结束但是会存在缺失数据情况,例如有部分装置是没有暂降功能的
System.out.println(sourceIssue.getType() + splitTag + sourceIssue.getIndex() + "当前测试小项读取数据已经全部结束。。。。。。。。。");
//修改装置为监测中
iPqDevService.updateCheckState(param.getDevIds());
//开启线程进行入库原始数据操作
baseDataInsert(realDataXiList, sourceIssue, param, SocketManager.valueTypeMap);
//调用判断方法
Map<String, Integer> textResult = detectionServiceImpl.processing(realDataXiList, param, FormalTestManager.devIdMapComm, sourceIssue, dataRule);
long tem = SocketManager.getSourceTarget(sourceIssue.getType()) - 1;
SocketManager.addTargetMap(sourceIssue.getType(), tem);
System.out.println("该大项还有" + tem + "个小项没有进行检测!!!!!!!!");
@@ -940,9 +939,9 @@ public class SocketDevResponseService {
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xuMsg));
} else {
//TODO 是否最终检测完成需要推送给用户
iPqDevService.updateResult(param.getDevIds(), param.getCode());
CnSocketUtil.quitSend(param);
}
successComm.clear();
realDataXiList.clear();
@@ -977,7 +976,6 @@ public class SocketDevResponseService {
}
/**
* 退出检测返回
*/
@@ -1157,7 +1155,7 @@ public class SocketDevResponseService {
List<PreDetection> pqDevList = iPqDevService.getDevInfo(param.getDevIds());
FormalTestManager.devList = pqDevList;
FormalTestManager.devMapMonitorNum = pqDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP,it->it.getMonitorList().stream().map(PreDetection.MonitorListDTO::getLineId).collect(Collectors.toList())));
FormalTestManager.devMapMonitorNum = pqDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP, it -> it.getMonitorList().stream().map(PreDetection.MonitorListDTO::getLineId).collect(Collectors.toList())));
FormalTestManager.monitorIdListComm = pqDevList.stream().flatMap(x -> x.getMonitorList().stream()).map(PreDetection.MonitorListDTO::getLineId).collect(Collectors.toList());
FormalTestManager.devNameMapComm = pqDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP, PreDetection::getDevName));
@@ -1175,7 +1173,7 @@ public class SocketDevResponseService {
//字典树
SocketManager.valueTypeMap = iPqScriptCheckDataService.getValueTypeMap(param.getScriptId());
if(param.getOperateType().equals(SourceOperateCodeEnum.COEFFICIENT_TEST.getValue())){
if (param.getOperateType().equals(SourceOperateCodeEnum.COEFFICIENT_TEST.getValue())) {
initXiManager(param);
}
}
@@ -1204,7 +1202,7 @@ public class SocketDevResponseService {
issueParam.setDevIds(param.getDevIds());
issueParam.setScriptId(param.getScriptId());
issueParam.setIsPhaseSequence(SourceOperateCodeEnum.COEFFICIENT_TEST.getValue());
issueParam.setIndexList(Stream.of(-2,-3).collect(Collectors.toList()));
issueParam.setIndexList(Stream.of(-2, -3).collect(Collectors.toList()));
List<SourceIssue> sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam);
for (int j = 0; j < sourceIssues.size(); j++) {
if (j == 0) {
@@ -1290,7 +1288,7 @@ public class SocketDevResponseService {
adHarmonicResult.setDataType("avg");
if (!DicDataEnum.HI.getCode().equals(sourceIssue.getType()) && !DicDataEnum.HSI.getCode().equals(sourceIssue.getType()) && !DicDataEnum.HP.getCode().equals(sourceIssue.getType())) {
if(CollUtil.isNotEmpty(data.getSqlData())){
if (CollUtil.isNotEmpty(data.getSqlData())) {
DevData.SqlDataDTO.ListDTO vvv = data.getSqlData().get(0).getList();
Double aV = vvv.getA();
Double bV = vvv.getB();

View File

@@ -286,11 +286,11 @@ public class SocketSourceResponseService {
int readData;
if(sourceIssue.getType().equals(DicDataEnum.F.getCode())){
ignoreCount = 1;
readData = 1;
readData = 2;
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_01.getValue());
}else if(sourceIssue.getType().equals(DicDataEnum.HP.getCode())){
ignoreCount = 2;
readData = 3;
readData = 5;
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_01.getValue());
}else if(DicDataEnum.VOLTAGE.getCode().equals(sourceIssue.getType())){
ignoreCount = 5;