预检测时进行录波校验、完善监测点结果修改逻辑
This commit is contained in:
@@ -217,6 +217,7 @@ public class SocketContrastResponseService {
|
|||||||
failComm.clear();
|
failComm.clear();
|
||||||
successPair.clear();
|
successPair.clear();
|
||||||
FormalTestManager.isRemoveSocket = false;
|
FormalTestManager.isRemoveSocket = false;
|
||||||
|
FormalTestManager.waveCheckFlag = false;
|
||||||
|
|
||||||
HashBiMap<String, String> hashBiMap = HashBiMap.create(param.getPairs());
|
HashBiMap<String, String> hashBiMap = HashBiMap.create(param.getPairs());
|
||||||
FormalTestManager.pairsIdMap.clear();
|
FormalTestManager.pairsIdMap.clear();
|
||||||
@@ -370,7 +371,6 @@ public class SocketContrastResponseService {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 装置通讯检测
|
* 装置通讯检测
|
||||||
*/
|
*/
|
||||||
@@ -382,40 +382,132 @@ public class SocketContrastResponseService {
|
|||||||
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
|
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
|
||||||
switch (dictDataEnumByCode) {
|
switch (dictDataEnumByCode) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
String result = socketDataMsg.getData();
|
if (SourceOperateCodeEnum.RECORD_WAVE_STEP2.getValue().equals(socketDataMsg.getRequestId())) {
|
||||||
successComm.add(result);
|
WaveResultDTO waveResultDTO = JSON.parseObject(socketDataMsg.getData(), WaveResultDTO.class);
|
||||||
//单个测点通讯成功
|
FormalTestManager.waveResultDTOMap.put(waveResultDTO.getId(), waveResultDTO);
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
|
successComm.add(waveResultDTO.getId());
|
||||||
|
|
||||||
System.out.println("设备通讯校验!" + successComm.size() + "=====" + FormalTestManager.monitorMap.size());
|
|
||||||
if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
||||||
// 通知前端整个装置通讯检测过程成功
|
scheduledFuture.cancel(true);
|
||||||
SocketDataMsg temMsg = new SocketDataMsg();
|
scheduler.shutdown();
|
||||||
temMsg.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());
|
scheduler = null;
|
||||||
temMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_02.getValue());
|
|
||||||
temMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
|
SocketDataMsg webSend = new SocketDataMsg();
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(temMsg));
|
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));
|
||||||
|
|
||||||
|
successComm.clear();
|
||||||
|
failComm.clear();
|
||||||
|
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||||
|
|
||||||
//开始模型一致性校验
|
//开始模型一致性校验
|
||||||
System.out.println("装置通信成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始模型一致性校验》》》》》》》》》》》》》》》》");
|
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));
|
||||||
|
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
|
System.out.println(msg + successComm.size() + "=====" + FormalTestManager.monitorMap.size());
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
|
if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
||||||
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
|
String datasourceId = FormalTestManager.currentTestPlan.getDatasourceId();
|
||||||
phaseSequenceParam.setMoniterIdList(Arrays.asList(FormalTestManager.monitorMap.keySet().toArray(new String[FormalTestManager.monitorMap.size()])));
|
boolean isWaveCheck = datasourceId.contains(DataSourceEnum.WAVE_DATA.getValue());
|
||||||
phaseSequenceParam.setDataType(this.getAllDataType());
|
|
||||||
phaseSequenceParam.setReadCount(1);
|
|
||||||
phaseSequenceParam.setIgnoreCount(1); // 刚一开始实时数据申请后,第一组数据为空数据,忽略掉
|
|
||||||
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
|
|
||||||
|
|
||||||
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_MXYZXJY;
|
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));
|
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||||
// 实时数据开始计时
|
} else {
|
||||||
SocketManager.contrastClockMap.put(DataSourceEnum.REAL_DATA, 0L);
|
//开始模型一致性校验
|
||||||
|
System.out.println("装置通信成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始模型一致性校验》》》》》》》》》》》》》》》》");
|
||||||
|
|
||||||
|
this.sendModelDeal(s);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
completeJudgment(param);
|
completeJudgment(param);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case UNPROCESSED_BUSINESS:
|
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));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||||
break;
|
break;
|
||||||
case DEV_ERROR:
|
case DEV_ERROR:
|
||||||
@@ -453,6 +545,7 @@ public class SocketContrastResponseService {
|
|||||||
DevData devData = JSON.parseObject(socketDataMsg.getData(), DevData.class);
|
DevData devData = JSON.parseObject(socketDataMsg.getData(), DevData.class);
|
||||||
socketDataMsg.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
|
socketDataMsg.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
|
||||||
|
|
||||||
|
if (!SourceOperateCodeEnum.QUIT_INIT_03.getValue().equals(socketDataMsg.getOperateCode()) && !SourceOperateCodeEnum.RDRE$01.getValue().equals(socketDataMsg.getOperateCode())) {
|
||||||
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
|
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
|
||||||
switch (dictDataEnumByCode) {
|
switch (dictDataEnumByCode) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
@@ -539,6 +632,7 @@ public class SocketContrastResponseService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 实时数据对齐校验
|
* 实时数据对齐校验
|
||||||
@@ -1071,7 +1165,6 @@ public class SocketContrastResponseService {
|
|||||||
FormalTestManager.waveResultDTOMap.put(waveResultDTO.getId(), waveResultDTO);
|
FormalTestManager.waveResultDTOMap.put(waveResultDTO.getId(), waveResultDTO);
|
||||||
successComm.add(waveResultDTO.getId());
|
successComm.add(waveResultDTO.getId());
|
||||||
|
|
||||||
|
|
||||||
if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
||||||
FormalTestManager.waveNum += 1;
|
FormalTestManager.waveNum += 1;
|
||||||
scheduledFuture.cancel(true);
|
scheduledFuture.cancel(true);
|
||||||
@@ -1082,7 +1175,7 @@ public class SocketContrastResponseService {
|
|||||||
webSend.setRequestId(SourceOperateCodeEnum.RECORD_WAVE_STEP2.getValue());
|
webSend.setRequestId(SourceOperateCodeEnum.RECORD_WAVE_STEP2.getValue());
|
||||||
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_03.getValue());
|
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_03.getValue());
|
||||||
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
|
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
|
||||||
webSend.setData("第" + FormalTestManager.waveNum + "录波成功!");
|
webSend.setData("第" + FormalTestManager.waveNum + "次录波完成!");
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||||
|
|
||||||
String errorSysId = FormalTestManager.currentTestPlan.getErrorSysId();
|
String errorSysId = FormalTestManager.currentTestPlan.getErrorSysId();
|
||||||
@@ -1196,7 +1289,7 @@ public class SocketContrastResponseService {
|
|||||||
if (FormalTestManager.monitorMap.containsKey(ip1)) {
|
if (FormalTestManager.monitorMap.containsKey(ip1)) {
|
||||||
String[] split = ip1.split(CnSocketUtil.SPLIT_TAG);
|
String[] split = ip1.split(CnSocketUtil.SPLIT_TAG);
|
||||||
String id = FormalTestManager.devIdMapComm.get(split[0]);
|
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());
|
pqDevService.updateResult(id, param.getUserId());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -2208,6 +2301,23 @@ public class SocketContrastResponseService {
|
|||||||
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
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) {
|
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 stdDevCfgPath = stdDevWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG", ".cfg");
|
||||||
String devCfgPath = devWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG", ".cfg");
|
String devCfgPath = devWaveResultDTO.getPath().replaceAll("\\\\", "/").replace(".CFG", ".cfg");
|
||||||
|
|||||||
@@ -1603,6 +1603,11 @@ public class DetectionServiceImpl {
|
|||||||
|
|
||||||
switch (anEnum) {
|
switch (anEnum) {
|
||||||
case FREQ:
|
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));
|
resultMap.put(PowerIndexEnum.FREQ.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fHz, DetectionCodeEnum.FREQ.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
|
||||||
break;
|
break;
|
||||||
case VRMS:
|
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));
|
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;
|
break;
|
||||||
case IRMS:
|
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));
|
resultMap.put(PowerIndexEnum.I.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fIn, DetectionCodeEnum.IRMS.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
|
||||||
break;
|
break;
|
||||||
case V_UNBAN:
|
case V_UNBAN:
|
||||||
|
|||||||
@@ -186,6 +186,7 @@ public class DetectionUtil {
|
|||||||
return getMillis(localDateTime);
|
return getMillis(localDateTime);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取LocalDateTime对应的UTC毫秒时间戳
|
* 获取LocalDateTime对应的UTC毫秒时间戳
|
||||||
* <p>
|
* <p>
|
||||||
|
|||||||
@@ -127,7 +127,12 @@ public class FormalTestManager {
|
|||||||
/**
|
/**
|
||||||
* 是否要移除和通信模块的socket连接
|
* 是否要移除和通信模块的socket连接
|
||||||
*/
|
*/
|
||||||
public static Boolean isRemoveSocket = true;
|
public static Boolean isRemoveSocket;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 录波功能校验
|
||||||
|
*/
|
||||||
|
public static Boolean waveCheckFlag;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 第几次监测 key为设备监测点id,value为第几次监测
|
* 第几次监测 key为设备监测点id,value为第几次监测
|
||||||
@@ -148,4 +153,5 @@ public class FormalTestManager {
|
|||||||
* 每次录波检测结果
|
* 每次录波检测结果
|
||||||
*/
|
*/
|
||||||
public static List<DevLineTestResult> preNumTestResultList = new ArrayList<>();
|
public static List<DevLineTestResult> preNumTestResultList = new ArrayList<>();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,6 +27,8 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -133,7 +135,6 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateMonitorResult(String monitorId, List<String> adTypes, DataSourceEnum dataSourceEnum, Integer num, Integer waveNum, String code) {
|
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);
|
String[] split = monitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||||
QueryWrapper<PqMonitor> wrapper = new QueryWrapper<>();
|
QueryWrapper<PqMonitor> wrapper = new QueryWrapper<>();
|
||||||
wrapper.eq("pq_monitor.Dev_Id", split[0])
|
wrapper.eq("pq_monitor.Dev_Id", split[0])
|
||||||
@@ -142,11 +143,35 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
|
|||||||
PqMonitor monitor = this.getOne(wrapper);
|
PqMonitor monitor = this.getOne(wrapper);
|
||||||
String resultType = monitor.getResultType();
|
String resultType = monitor.getResultType();
|
||||||
Integer qualifiedNum = monitor.getQualifiedNum();
|
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)) {
|
if (StrUtil.isBlank(resultType)) {
|
||||||
updateFlag = true;
|
updateFlag = true;
|
||||||
if (CheckResultEnum.ACCORD.getValue().equals(newMonitorResult)) {
|
if (newMonitorResult.equals(CheckResultEnum.ACCORD.getValue())) {
|
||||||
qualifiedNum += 1;
|
qualifiedNum += 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@@ -175,33 +200,31 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
|
|||||||
if (updateFlag) {
|
if (updateFlag) {
|
||||||
monitor.setResultType(dataSourceEnum.getValue());
|
monitor.setResultType(dataSourceEnum.getValue());
|
||||||
|
|
||||||
if (DataSourceEnum.REAL_DATA.getValue().equals(dataSourceEnum.getValue())) {
|
switch (dataSourceEnum) {
|
||||||
|
case REAL_DATA:
|
||||||
monitor.setRealtimeResult(newMonitorResult);
|
monitor.setRealtimeResult(newMonitorResult);
|
||||||
monitor.setRealtimeNum(String.valueOf(num));
|
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)) {
|
|
||||||
monitor.setRecordedResult(null);
|
monitor.setRecordedResult(null);
|
||||||
monitor.setRecordedNum(null);
|
monitor.setRecordedNum(null);
|
||||||
} else {
|
|
||||||
monitor.setStatisticsResult(null);
|
monitor.setStatisticsResult(null);
|
||||||
monitor.setStatisticsNum(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);
|
monitor.setQualifiedNum(qualifiedNum);
|
||||||
}
|
|
||||||
|
|
||||||
return this.updateById(monitor);
|
return this.updateById(monitor);
|
||||||
|
} else {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1753,14 +1753,26 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
monitor.setResultType(resultType.substring(0, resultType.lastIndexOf(CnSocketUtil.SPLIT_TAG)));
|
monitor.setResultType(resultType.substring(0, resultType.lastIndexOf(CnSocketUtil.SPLIT_TAG)));
|
||||||
monitor.setRecordedResult(checkResult);
|
monitor.setRecordedResult(checkResult);
|
||||||
monitor.setRecordedNum(whichTime + resultType.substring(resultType.lastIndexOf(CnSocketUtil.SPLIT_TAG)));
|
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())) {
|
} else if (StrUtil.equals(resultType, DataSourceEnum.REAL_DATA.getValue())) {
|
||||||
monitor.setResultType(resultType);
|
monitor.setResultType(resultType);
|
||||||
monitor.setRealtimeResult(checkResult);
|
monitor.setRealtimeResult(checkResult);
|
||||||
monitor.setRealtimeNum(whichTime);
|
monitor.setRealtimeNum(whichTime);
|
||||||
|
monitor.setRecordedResult(null);
|
||||||
|
monitor.setRecordedNum(null);
|
||||||
|
monitor.setStatisticsResult(null);
|
||||||
|
monitor.setStatisticsNum(null);
|
||||||
} else {
|
} else {
|
||||||
monitor.setResultType(resultType);
|
monitor.setResultType(resultType);
|
||||||
monitor.setStatisticsResult(checkResult);
|
monitor.setStatisticsResult(checkResult);
|
||||||
monitor.setStatisticsNum(whichTime);
|
monitor.setStatisticsNum(whichTime);
|
||||||
|
monitor.setRealtimeResult(null);
|
||||||
|
monitor.setRealtimeNum(null);
|
||||||
|
monitor.setRecordedResult(null);
|
||||||
|
monitor.setRecordedNum(null);
|
||||||
}
|
}
|
||||||
|
|
||||||
return pqMonitorService.updateById(monitor);
|
return pqMonitorService.updateById(monitor);
|
||||||
|
|||||||
@@ -41,4 +41,15 @@ public interface DetectionDataDealService extends IReplenishMybatisService<SimAn
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Integer getMonitorResult(String monitorId, List<String> adTypes, String dataSource, Integer num, Integer waveNum, String code);
|
Integer getMonitorResult(String monitorId, List<String> adTypes, String dataSource, Integer num, Integer waveNum, String code);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取指定检测次数下,最后一次合格录波的组数,如果没有合格的录波,则返回-1
|
||||||
|
*
|
||||||
|
* @param monitorId
|
||||||
|
* @param adTypes
|
||||||
|
* @param num
|
||||||
|
* @param code
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Map<Integer, Integer> getWaveNumResultMap(String monitorId, List<String> adTypes, Integer num, String code);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ import org.springframework.transaction.annotation.Transactional;
|
|||||||
|
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
import java.util.stream.Stream;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 接收检测的原始数据以及计算后的结果
|
* 接收检测的原始数据以及计算后的结果
|
||||||
@@ -227,8 +228,11 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
|
|||||||
.like(ContrastNonHarmonicResult::getDevMonitorId, monitorId)
|
.like(ContrastNonHarmonicResult::getDevMonitorId, monitorId)
|
||||||
.in(CollUtil.isNotEmpty(adTypes), ContrastNonHarmonicResult::getAdType, adTypes)
|
.in(CollUtil.isNotEmpty(adTypes), ContrastNonHarmonicResult::getAdType, adTypes)
|
||||||
.eq(ContrastNonHarmonicResult::getDataType, dataSource)
|
.eq(ContrastNonHarmonicResult::getDataType, dataSource)
|
||||||
.eq(ContrastNonHarmonicResult::getNum, num)
|
.eq(ContrastNonHarmonicResult::getNum, num);
|
||||||
.eq(ObjectUtil.isNotEmpty(waveNum), ContrastNonHarmonicResult::getWaveNum, waveNum);
|
if (ObjectUtil.isNotEmpty(waveNum)) {
|
||||||
|
List<Integer> waveNumList = Stream.iterate(1, i -> i + 1).limit(waveNum).collect(Collectors.toList());
|
||||||
|
wrapper1.in(ContrastNonHarmonicResult::getWaveNum, waveNumList);
|
||||||
|
}
|
||||||
|
|
||||||
List<ContrastNonHarmonicResult> nonHarmonicResultList = contrastNonHarmonicService.list(wrapper1);
|
List<ContrastNonHarmonicResult> nonHarmonicResultList = contrastNonHarmonicService.list(wrapper1);
|
||||||
DynamicTableNameHandler.remove();
|
DynamicTableNameHandler.remove();
|
||||||
@@ -250,13 +254,59 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl<Detect
|
|||||||
return isResultFlag(resultFlagList);
|
return isResultFlag(resultFlagList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Integer, Integer> getWaveNumResultMap(String monitorId, List<String> adTypes, Integer num, String code) {
|
||||||
|
DynamicTableNameHandler.setTableName("ad_non_harmonic_result_" + code);
|
||||||
|
LambdaQueryWrapper<ContrastNonHarmonicResult> wrapper1 = new LambdaQueryWrapper<ContrastNonHarmonicResult>()
|
||||||
|
.like(ContrastNonHarmonicResult::getDevMonitorId, monitorId)
|
||||||
|
.in(CollUtil.isNotEmpty(adTypes), ContrastNonHarmonicResult::getAdType, adTypes)
|
||||||
|
.isNotNull(ContrastNonHarmonicResult::getWaveNum)
|
||||||
|
.eq(ContrastNonHarmonicResult::getNum, num);
|
||||||
|
|
||||||
|
List<ContrastNonHarmonicResult> nonHarmonicResultList = contrastNonHarmonicService.list(wrapper1);
|
||||||
|
DynamicTableNameHandler.remove();
|
||||||
|
|
||||||
|
DynamicTableNameHandler.setTableName("ad_harmonic_result_" + code);
|
||||||
|
LambdaQueryWrapper<ContrastHarmonicResult> wrapper2 = new LambdaQueryWrapper<ContrastHarmonicResult>()
|
||||||
|
.like(ContrastHarmonicResult::getDevMonitorId, monitorId)
|
||||||
|
.in(CollUtil.isNotEmpty(adTypes), ContrastHarmonicResult::getAdType, adTypes)
|
||||||
|
.isNotNull(ContrastHarmonicResult::getWaveNum)
|
||||||
|
.eq(ContrastHarmonicResult::getNum, num);
|
||||||
|
|
||||||
|
List<ContrastHarmonicResult> harmonicResultList = contrastHarmonicService.list(wrapper2);
|
||||||
|
DynamicTableNameHandler.remove();
|
||||||
|
|
||||||
|
TreeMap<Integer, List<ContrastNonHarmonicResult>> waveMap1 = nonHarmonicResultList.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getWaveNum, TreeMap::new, Collectors.toList()));
|
||||||
|
TreeMap<Integer, List<ContrastHarmonicResult>> waveMap2 = harmonicResultList.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getWaveNum, TreeMap::new, Collectors.toList()));
|
||||||
|
|
||||||
|
Map<Integer, List<Integer>> waveResultMap = new HashMap<>();
|
||||||
|
waveMap1.forEach((waveNum, vList) -> {
|
||||||
|
List<Integer> resultFlagList = waveResultMap.getOrDefault(waveNum, new ArrayList<>());
|
||||||
|
resultFlagList.addAll(vList.stream().map(ContrastNonHarmonicResult::getResultFlag).collect(Collectors.toList()));
|
||||||
|
waveResultMap.put(waveNum, resultFlagList);
|
||||||
|
});
|
||||||
|
waveMap2.forEach((waveNum, vList) -> {
|
||||||
|
List<Integer> resultFlagList = waveResultMap.getOrDefault(waveNum, new ArrayList<>());
|
||||||
|
resultFlagList.addAll(vList.stream().map(ContrastHarmonicResult::getResultFlag).collect(Collectors.toList()));
|
||||||
|
waveResultMap.put(waveNum, resultFlagList);
|
||||||
|
});
|
||||||
|
|
||||||
|
Map<Integer, Integer> result = new TreeMap<>();
|
||||||
|
waveResultMap.forEach((waveNum, resultFlagList) -> {
|
||||||
|
Integer resultFlag = isResultFlag(resultFlagList);
|
||||||
|
result.put(waveNum, resultFlag);
|
||||||
|
});
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
public static Integer isResultFlag(List<Integer> resultFlags) {
|
public static Integer isResultFlag(List<Integer> resultFlags) {
|
||||||
// 检测结果(0:不符合 1:符合 2:/[未检测无结果])
|
// 检测结果(0:不符合 1:符合 2:/[未检测无结果])
|
||||||
//脚本结果是 1.符合 2.不符合 4.未检测无结果 5.不参与误差比较
|
//脚本结果是 1.符合 2.不符合 4.未检测无结果 5.不参与误差比较
|
||||||
resultFlags = resultFlags.stream().filter(x -> 4 != x && 5 != x).distinct().collect(Collectors.toList());
|
resultFlags = resultFlags.stream().filter(x -> 4 != x && 5 != x).distinct().collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(resultFlags)) {
|
if (CollUtil.isNotEmpty(resultFlags)) {
|
||||||
if (resultFlags.contains(2)) {
|
if (resultFlags.contains(2)) {
|
||||||
return 0;
|
return 2;
|
||||||
} else {
|
} else {
|
||||||
switch (resultFlags.get(0)) {
|
switch (resultFlags.get(0)) {
|
||||||
case 1:
|
case 1:
|
||||||
|
|||||||
Reference in New Issue
Block a user