预检测时进行录波校验、完善监测点结果修改逻辑

This commit is contained in:
caozehui
2025-09-16 13:43:08 +08:00
parent 4532f2242b
commit f56c1086b9
8 changed files with 366 additions and 139 deletions

View File

@@ -217,6 +217,7 @@ public class SocketContrastResponseService {
failComm.clear();
successPair.clear();
FormalTestManager.isRemoveSocket = false;
FormalTestManager.waveCheckFlag = false;
HashBiMap<String, String> hashBiMap = HashBiMap.create(param.getPairs());
FormalTestManager.pairsIdMap.clear();
@@ -370,7 +371,6 @@ public class SocketContrastResponseService {
}
/**
* 装置通讯检测
*/
@@ -382,40 +382,132 @@ public class SocketContrastResponseService {
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
switch (dictDataEnumByCode) {
case SUCCESS:
String result = socketDataMsg.getData();
successComm.add(result);
//单个测点通讯成功
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
if (SourceOperateCodeEnum.RECORD_WAVE_STEP2.getValue().equals(socketDataMsg.getRequestId())) {
WaveResultDTO waveResultDTO = JSON.parseObject(socketDataMsg.getData(), WaveResultDTO.class);
FormalTestManager.waveResultDTOMap.put(waveResultDTO.getId(), waveResultDTO);
successComm.add(waveResultDTO.getId());
System.out.println("设备通讯校验!" + successComm.size() + "=====" + FormalTestManager.monitorMap.size());
if (successComm.size() == FormalTestManager.monitorMap.size()) {
// 通知前端整个装置通讯检测过程成功
SocketDataMsg temMsg = new SocketDataMsg();
temMsg.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());
temMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
temMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(temMsg));
if (successComm.size() == FormalTestManager.monitorMap.size()) {
scheduledFuture.cancel(true);
scheduler.shutdown();
scheduler = null;
//开始模型一致性校验
System.out.println("装置通信成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始模型一致性校验》》》》》》》》》》》》》》》》");
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_03.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());
webSend.setData("设备通讯校验成功!");
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
phaseSequenceParam.setMoniterIdList(Arrays.asList(FormalTestManager.monitorMap.keySet().toArray(new String[FormalTestManager.monitorMap.size()])));
phaseSequenceParam.setDataType(this.getAllDataType());
phaseSequenceParam.setReadCount(1);
phaseSequenceParam.setIgnoreCount(1); // 刚一开始实时数据申请后,第一组数据为空数据,忽略掉
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
successComm.clear();
failComm.clear();
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_MXYZXJY;
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
// 实时数据开始计时
SocketManager.contrastClockMap.put(DataSourceEnum.REAL_DATA, 0L);
//开始模型一致性校验
System.out.println("装置通信成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始模型一致性校验》》》》》》》》》》》》》》》》");
this.sendModelDeal(s);
}
} else {
String result = socketDataMsg.getData();
successComm.add(result);
//单个测点通讯成功
socketDataMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
String msg = "";
boolean real = SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue().equals(socketDataMsg.getOperateCode());
boolean voltage = SourceOperateCodeEnum.DEV_INIT_GATHER_03.getValue().equals(socketDataMsg.getOperateCode());
if (real) {
msg = "实时协议校验成功!";
}
if (voltage) {
msg = "暂态协议校验成功!";
}
MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1);
socketDataMsg.setData(socketDataMsg.getData() + msg);
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
System.out.println(msg + successComm.size() + "=====" + FormalTestManager.monitorMap.size());
if (successComm.size() == FormalTestManager.monitorMap.size()) {
String datasourceId = FormalTestManager.currentTestPlan.getDatasourceId();
boolean isWaveCheck = datasourceId.contains(DataSourceEnum.WAVE_DATA.getValue());
SocketDataMsg temMsg = new SocketDataMsg();
temMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
if (isWaveCheck) {
// if (real) {
// temMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
// temMsg.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
// temMsg.setData(msg);
// }
if (voltage) {
successComm.clear();
failComm.clear();
// 下发录波指令
this.sendRecordWave(s);
return;
}
} else {
temMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
temMsg.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());
temMsg.setData("设备通讯校验成功!");
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(temMsg));
}
if (isWaveCheck && real) {
// 进行暂态协议校验
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_03.getValue());
Map<String, List<PreDetection>> map = new HashMap<>(1);
List<PreDetection> preDetectionList = new ArrayList<>();
preDetectionList.addAll(FormalTestManager.devList);
preDetectionList.addAll(FormalTestManager.standardDevList);
map.put("deviceList", preDetectionList);
socketMsg.setData(JSON.toJSONString(map));
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
} else {
//开始模型一致性校验
System.out.println("装置通信成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始模型一致性校验》》》》》》》》》》》》》》》》");
this.sendModelDeal(s);
}
}
completeJudgment(param);
}
completeJudgment(param);
break;
case UNPROCESSED_BUSINESS:
if (SourceOperateCodeEnum.RECORD_WAVE_STEP2.getValue().equals(socketDataMsg.getRequestId())) {
String data = socketDataMsg.getData();
if (StrUtil.isNotBlank(data) && data.equals("waiting")) {
if (Objects.isNull(scheduler)) {
scheduler = Executors.newScheduledThreadPool(1);
scheduledFuture = scheduler.schedule(() -> {
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.RECORD_WAVE_STEP2.getValue());
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_03.getValue());
System.out.println("无效的录波指令!");
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
Collection<String> disjunction = CollectionUtil.disjunction(FormalTestManager.monitorMap.keySet(), successComm);
// 向前端推送
for (String key : disjunction) {
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(MsgUtil.getPairStr(key, FormalTestManager.pairsIpMap.inverse().get(key), FormalTestManager.devNameMapComm) + " 无效的录波指令!");
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
}
// 推送最终失败结果
webSend.setCode(SourceResponseCodeEnum.ALL_FAIL.getCode());//最终错误推送
webSend.setData("无效的录波指令!");
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
scheduler.shutdown();
scheduler = null;
}, 15, TimeUnit.SECONDS);
}
}
}
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
break;
case DEV_ERROR:
@@ -453,89 +545,91 @@ public class SocketContrastResponseService {
DevData devData = JSON.parseObject(socketDataMsg.getData(), DevData.class);
socketDataMsg.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
switch (dictDataEnumByCode) {
case SUCCESS:
//成功收到数据后重置超时统计时间
SocketManager.contrastClockMap.put(DataSourceEnum.REAL_DATA, 0L);
String monitorId1 = devData.getId();
successComm.add(monitorId1);
if (!SourceOperateCodeEnum.QUIT_INIT_03.getValue().equals(socketDataMsg.getOperateCode()) && !SourceOperateCodeEnum.RDRE$01.getValue().equals(socketDataMsg.getOperateCode())) {
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
switch (dictDataEnumByCode) {
case SUCCESS:
//成功收到数据后重置超时统计时间
SocketManager.contrastClockMap.put(DataSourceEnum.REAL_DATA, 0L);
String monitorId1 = devData.getId();
successComm.add(monitorId1);
if (FormalTestManager.standardDevDataMap.containsKey(monitorId1)) {
FormalTestManager.standardDevDataMap.get(monitorId1).add(devData);
Collections.sort(FormalTestManager.standardDevDataMap.get(monitorId1), Comparator.comparing(obj -> DetectionUtil.getMillis(obj.getTime())));
}
if (FormalTestManager.devDataMap.containsKey(monitorId1)) {
FormalTestManager.devDataMap.get(monitorId1).add(devData);
Collections.sort(FormalTestManager.devDataMap.get(monitorId1), Comparator.comparing(obj -> DetectionUtil.getMillis(obj.getTime())));
}
if (successComm.size() == FormalTestManager.monitorMap.size()) {
boolean modelCheckResult = this.modelCheck(param, FormalTestManager.devDataMap, FormalTestManager.monitorMap.get(monitorId1), true);
modelCheckResult = this.modelCheck(param, FormalTestManager.standardDevDataMap, FormalTestManager.monitorMap.get(monitorId1), false) && modelCheckResult;
if (!modelCheckResult) {
this.clearData();
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_FAIL.getCode()); //最终错误推送
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 0));
System.out.println("模型一致性校验失败!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》");
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
return;
} else {
this.clearData();
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
System.out.println("模型一致性校验成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始实时数据对齐校验》》》》》》》》》》》》》》》》");
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
phaseSequenceParam.setMoniterIdList(Arrays.asList(FormalTestManager.monitorMap.keySet().toArray(new String[FormalTestManager.monitorMap.size()])));
phaseSequenceParam.setDataType(Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.VRMS.getCode(), DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PVRMS.getCode()));
phaseSequenceParam.setReadCount(this.getMaxReadCount(5));
phaseSequenceParam.setIgnoreCount(0);
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_ALIGN;
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
// 实时数据开始计时
SocketManager.contrastClockMap.put(DataSourceEnum.REAL_DATA, 0L);
if (FormalTestManager.standardDevDataMap.containsKey(monitorId1)) {
FormalTestManager.standardDevDataMap.get(monitorId1).add(devData);
Collections.sort(FormalTestManager.standardDevDataMap.get(monitorId1), Comparator.comparing(obj -> DetectionUtil.getMillis(obj.getTime())));
}
}
break;
case UNPROCESSED_BUSINESS:
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
break;
case NORMAL_RESPONSE:
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
break;
case DEV_ERROR:
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0));
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
break;
case DEV_TARGET:
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
break;
case RE_OPERATE:
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
break;
case NO_INIT_DEV:
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
break;
default:
WebServiceManager.sendUnknownErrorMessage(param.getUserPageId());
break;
if (FormalTestManager.devDataMap.containsKey(monitorId1)) {
FormalTestManager.devDataMap.get(monitorId1).add(devData);
Collections.sort(FormalTestManager.devDataMap.get(monitorId1), Comparator.comparing(obj -> DetectionUtil.getMillis(obj.getTime())));
}
if (successComm.size() == FormalTestManager.monitorMap.size()) {
boolean modelCheckResult = this.modelCheck(param, FormalTestManager.devDataMap, FormalTestManager.monitorMap.get(monitorId1), true);
modelCheckResult = this.modelCheck(param, FormalTestManager.standardDevDataMap, FormalTestManager.monitorMap.get(monitorId1), false) && modelCheckResult;
if (!modelCheckResult) {
this.clearData();
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_FAIL.getCode()); //最终错误推送
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 0));
System.out.println("模型一致性校验失败!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》");
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
return;
} else {
this.clearData();
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
System.out.println("模型一致性校验成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始实时数据对齐校验》》》》》》》》》》》》》》》》");
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
phaseSequenceParam.setMoniterIdList(Arrays.asList(FormalTestManager.monitorMap.keySet().toArray(new String[FormalTestManager.monitorMap.size()])));
phaseSequenceParam.setDataType(Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.VRMS.getCode(), DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PVRMS.getCode()));
phaseSequenceParam.setReadCount(this.getMaxReadCount(5));
phaseSequenceParam.setIgnoreCount(0);
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_ALIGN;
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
// 实时数据开始计时
SocketManager.contrastClockMap.put(DataSourceEnum.REAL_DATA, 0L);
}
}
break;
case UNPROCESSED_BUSINESS:
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
break;
case NORMAL_RESPONSE:
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
break;
case DEV_ERROR:
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0));
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
break;
case DEV_TARGET:
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
break;
case RE_OPERATE:
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
break;
case NO_INIT_DEV:
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
break;
default:
WebServiceManager.sendUnknownErrorMessage(param.getUserPageId());
break;
}
}
}
}
@@ -1071,7 +1165,6 @@ public class SocketContrastResponseService {
FormalTestManager.waveResultDTOMap.put(waveResultDTO.getId(), waveResultDTO);
successComm.add(waveResultDTO.getId());
if (successComm.size() == FormalTestManager.monitorMap.size()) {
FormalTestManager.waveNum += 1;
scheduledFuture.cancel(true);
@@ -1082,7 +1175,7 @@ public class SocketContrastResponseService {
webSend.setRequestId(SourceOperateCodeEnum.RECORD_WAVE_STEP2.getValue());
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_03.getValue());
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
webSend.setData("" + FormalTestManager.waveNum + "录波成");
webSend.setData("" + FormalTestManager.waveNum + "录波成!");
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
String errorSysId = FormalTestManager.currentTestPlan.getErrorSysId();
@@ -1196,7 +1289,7 @@ public class SocketContrastResponseService {
if (FormalTestManager.monitorMap.containsKey(ip1)) {
String[] split = ip1.split(CnSocketUtil.SPLIT_TAG);
String id = FormalTestManager.devIdMapComm.get(split[0]);
pqMonitorService.updateMonitorResult(id + CnSocketUtil.SPLIT_TAG + split[1], adTypes, DataSourceEnum.WAVE_DATA, FormalTestManager.numMap.get(id + CnSocketUtil.SPLIT_TAG + split[1]), FormalTestManager.waveNum, code);
pqMonitorService.updateMonitorResult(id + CnSocketUtil.SPLIT_TAG + split[1], adTypes, DataSourceEnum.WAVE_DATA, FormalTestManager.numMap.get(id + CnSocketUtil.SPLIT_TAG + split[1]), FormalTestManager.curretntTestPlanConfig.getWaveRecord(), code);
pqDevService.updateResult(id, param.getUserId());
}
});
@@ -2208,6 +2301,23 @@ public class SocketContrastResponseService {
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
}
private void sendModelDeal(String s) {
SocketMsg<String> socketMsg = new SocketMsg<>();
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
phaseSequenceParam.setMoniterIdList(Arrays.asList(FormalTestManager.monitorMap.keySet().toArray(new String[FormalTestManager.monitorMap.size()])));
phaseSequenceParam.setDataType(this.getAllDataType());
phaseSequenceParam.setReadCount(1);
phaseSequenceParam.setIgnoreCount(1); // 刚一开始实时数据申请后,第一组数据为空数据,忽略掉
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_MXYZXJY;
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
// 实时数据开始计时
SocketManager.contrastClockMap.put(DataSourceEnum.REAL_DATA, 0L);
}
private List<List<DevData>> analyzeWaveFile(WaveResultDTO devWaveResultDTO, WaveResultDTO stdDevWaveResultDTO, PreDetection.MonitorListDTO monitorListDTO, String devMonitorId, String stdDevMonitorId, List<String> adTypeCodeList) {
String stdDevCfgPath = stdDevWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG", ".cfg");
String devCfgPath = devWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG", ".cfg");

View File

@@ -1603,6 +1603,11 @@ public class DetectionServiceImpl {
switch (anEnum) {
case FREQ:
devDataList.stream().forEach(devData -> devData.getSqlData().stream().filter(sqlData -> sqlData.getDesc().equals(DetectionCodeEnum.FREQ.getCode())).findFirst().ifPresent(sqlData -> {
DevData.SqlDataDTO.ListDTO listDTO = sqlData.getList();
listDTO.setT(55.0);
sqlData.setList(listDTO);
}));
resultMap.put(PowerIndexEnum.FREQ.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fHz, DetectionCodeEnum.FREQ.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
break;
case VRMS:
@@ -1611,6 +1616,15 @@ public class DetectionServiceImpl {
resultMap.put(PowerIndexEnum.V.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn, (isDelta && isExitDelta ? DetectionCodeEnum.PVRMS.getCode() : DetectionCodeEnum.VRMS.getCode()), dataRule, num, code, oneConfig.getScale(), waveNum));
break;
case IRMS:
if (ObjectUtil.isNotNull(waveNum)) {
devDataList.stream().forEach(devData -> devData.getSqlData().stream().filter(sqlData -> sqlData.getDesc().equals(DetectionCodeEnum.IRMS.getCode())).findFirst().ifPresent(sqlData -> {
DevData.SqlDataDTO.ListDTO listDTO = sqlData.getList();
listDTO.setA(1.5);
listDTO.setC(1.5);
sqlData.setList(listDTO);
}));
}
resultMap.put(PowerIndexEnum.I.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fIn, DetectionCodeEnum.IRMS.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
break;
case V_UNBAN:

View File

@@ -186,6 +186,7 @@ public class DetectionUtil {
return getMillis(localDateTime);
}
/**
* 获取LocalDateTime对应的UTC毫秒时间戳
* <p>

View File

@@ -127,7 +127,12 @@ public class FormalTestManager {
/**
* 是否要移除和通信模块的socket连接
*/
public static Boolean isRemoveSocket = true;
public static Boolean isRemoveSocket;
/**
* 录波功能校验
*/
public static Boolean waveCheckFlag;
/**
* 第几次监测 key为设备监测点id,value为第几次监测
@@ -148,4 +153,5 @@ public class FormalTestManager {
* 每次录波检测结果
*/
public static List<DevLineTestResult> preNumTestResultList = new ArrayList<>();
}

View File

@@ -27,6 +27,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.atomic.AtomicReference;
import java.util.stream.Collectors;
/**
@@ -133,7 +135,6 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
@Override
public boolean updateMonitorResult(String monitorId, List<String> adTypes, DataSourceEnum dataSourceEnum, Integer num, Integer waveNum, String code) {
Integer newMonitorResult = detectionDataDealService.getMonitorResult(monitorId, adTypes, dataSourceEnum.getValue(), num, waveNum, code);
String[] split = monitorId.split(CnSocketUtil.SPLIT_TAG);
QueryWrapper<PqMonitor> wrapper = new QueryWrapper<>();
wrapper.eq("pq_monitor.Dev_Id", split[0])
@@ -142,11 +143,35 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
PqMonitor monitor = this.getOne(wrapper);
String resultType = monitor.getResultType();
Integer qualifiedNum = monitor.getQualifiedNum();
boolean updateFlag = false;
Integer newMonitorResult = CheckResultEnum.UNCHECKED.getValue();
AtomicReference<Integer> newWaveNum = new AtomicReference<>(-1);
switch (dataSourceEnum) {
case REAL_DATA:
newMonitorResult = detectionDataDealService.getMonitorResult(monitorId, adTypes, dataSourceEnum.getValue(), num, null, code);
break;
case WAVE_DATA:
Map<Integer, Integer> waveNumResultMap = detectionDataDealService.getWaveNumResultMap(monitorId, adTypes, num, code);
waveNumResultMap.forEach((key, value) -> {
if (CheckResultEnum.ACCORD.getValue().equals(value)) {
newWaveNum.set(key);
}
});
if (!newWaveNum.get().equals(-1)) {
newMonitorResult = CheckResultEnum.ACCORD.getValue();
} else {
newWaveNum.set(waveNum);
newMonitorResult = waveNumResultMap.get(waveNum);
}
break;
default:
break;
}
boolean updateFlag = false;
if (StrUtil.isBlank(resultType)) {
updateFlag = true;
if (CheckResultEnum.ACCORD.getValue().equals(newMonitorResult)) {
if (newMonitorResult.equals(CheckResultEnum.ACCORD.getValue())) {
qualifiedNum += 1;
}
} else {
@@ -175,33 +200,31 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
if (updateFlag) {
monitor.setResultType(dataSourceEnum.getValue());
if (DataSourceEnum.REAL_DATA.getValue().equals(dataSourceEnum.getValue())) {
monitor.setRealtimeResult(newMonitorResult);
monitor.setRealtimeNum(String.valueOf(num));
} else if (DataSourceEnum.WAVE_DATA.getValue().equals(dataSourceEnum.getValue())) {
monitor.setRecordedResult(newMonitorResult);
monitor.setRecordedNum(num + CnSocketUtil.SPLIT_TAG + waveNum);
} else {
monitor.setStatisticsResult(newMonitorResult);
monitor.setStatisticsNum(String.valueOf(num));
}
if (StrUtil.isNotBlank(resultType) && !resultType.equals(dataSourceEnum.getValue())) {
if (DataSourceEnum.REAL_DATA.getValue().equals(resultType)) {
monitor.setRealtimeResult(null);
monitor.setRealtimeNum(null);
} else if (DataSourceEnum.WAVE_DATA.getValue().equals(resultType)) {
switch (dataSourceEnum) {
case REAL_DATA:
monitor.setRealtimeResult(newMonitorResult);
monitor.setRealtimeNum(String.valueOf(num));
monitor.setRecordedResult(null);
monitor.setRecordedNum(null);
} else {
monitor.setStatisticsResult(null);
monitor.setStatisticsNum(null);
}
break;
case WAVE_DATA:
monitor.setRealtimeResult(null);
monitor.setRealtimeNum(null);
monitor.setRecordedResult(newMonitorResult);
monitor.setRecordedNum(num + CnSocketUtil.SPLIT_TAG + newWaveNum.get());
monitor.setStatisticsResult(null);
monitor.setStatisticsNum(null);
break;
default:
break;
}
monitor.setQualifiedNum(qualifiedNum);
return this.updateById(monitor);
} else {
return true;
}
return this.updateById(monitor);
}

View File

@@ -1753,14 +1753,26 @@ public class ResultServiceImpl implements IResultService {
monitor.setResultType(resultType.substring(0, resultType.lastIndexOf(CnSocketUtil.SPLIT_TAG)));
monitor.setRecordedResult(checkResult);
monitor.setRecordedNum(whichTime + resultType.substring(resultType.lastIndexOf(CnSocketUtil.SPLIT_TAG)));
monitor.setRealtimeResult(null);
monitor.setRealtimeNum(null);
monitor.setStatisticsResult(null);
monitor.setStatisticsNum(null);
} else if (StrUtil.equals(resultType, DataSourceEnum.REAL_DATA.getValue())) {
monitor.setResultType(resultType);
monitor.setRealtimeResult(checkResult);
monitor.setRealtimeNum(whichTime);
monitor.setRecordedResult(null);
monitor.setRecordedNum(null);
monitor.setStatisticsResult(null);
monitor.setStatisticsNum(null);
} else {
monitor.setResultType(resultType);
monitor.setStatisticsResult(checkResult);
monitor.setStatisticsNum(whichTime);
monitor.setRealtimeResult(null);
monitor.setRealtimeNum(null);
monitor.setRecordedResult(null);
monitor.setRecordedNum(null);
}
return pqMonitorService.updateById(monitor);