Bug修改

This commit is contained in:
caozehui
2025-10-21 15:23:13 +08:00
parent 6357cde72b
commit b0a4458c56
8 changed files with 238 additions and 144 deletions

View File

@@ -534,6 +534,15 @@ public class SocketContrastResponseService {
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_ALIGN;
// if (FormalTestManager.isWaveCheck) {
// System.out.println("(仅有闪变、录波)模型一致性校验成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始相序校验》》》》》》》》》》》》》》》》");
// this.sendXu(s);
// FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_XUJY;
// } else {
// System.out.println("(仅有闪变)模型一致性校验成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始数据对齐校验》》》》》》》》》》》》》》》》");
// this.sendAlignData(s, requestOperateCode);
// FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_ALIGN;
// }
this.resetTimer();
}
}
@@ -644,7 +653,9 @@ public class SocketContrastResponseService {
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
String s = param.getUserPageId() + CnSocketUtil.CONTRAST_DEV_TAG;
DevData devData = JSON.parseObject(socketDataMsg.getData(), DevData.class);
socketDataMsg.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
if (SourceOperateCodeEnum.FORMAL_REAL.getValue().equals(socketDataMsg.getRequestId())) {
socketDataMsg.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
}
if (ObjectUtil.isNotNull(dictDataEnumByCode)) {
SourceOperateCodeEnum requestOperateCode = this.getRequestOperateCode();
@@ -652,61 +663,63 @@ public class SocketContrastResponseService {
switch (dictDataEnumByCode) {
case SUCCESS:
//成功收到数据后重置超时统计时间
this.resetTimer();
String monitorId1 = devData.getId();
successComm.add(monitorId1);
if (SourceOperateCodeEnum.YJC_MXYZXJY.getValue().equals(socketDataMsg.getRequestId())) {
//成功收到数据后重置超时统计时间
this.resetTimer();
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 (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 (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;
this.clearData();
if (!modelCheckResult) {
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_FAIL.getCode()); //最终错误推送
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 0));
this.clearData();
if (!modelCheckResult) {
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_FAIL.getCode()); //最终错误推送
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 0));
System.out.println("模型一致性校验失败!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》");
if (FormalTestManager.statisticsProtocol && quitOperateCode == SourceOperateCodeEnum.QUIT_INIT_02) {
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
}
if (FormalTestManager.voltageProtocol) {
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
}
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
FormalTestManager.isTesting = false;
} else {
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
System.out.println("模型一致性校验失败!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》");
if (FormalTestManager.statisticsProtocol && quitOperateCode == SourceOperateCodeEnum.QUIT_INIT_02) {
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
}
if (FormalTestManager.voltageProtocol) {
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
}
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
FormalTestManager.isTesting = false;
} else {
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
if (ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
System.out.println("模型一致性校验成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始数据对齐校验》》》》》》》》》》》》》》》》");
if (ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
System.out.println("模型一致性校验成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始数据对齐校验》》》》》》》》》》》》》》》》");
this.sendAlignData(s, requestOperateCode);
this.sendAlignData(s, requestOperateCode);
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_ALIGN;
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_ALIGN;
this.resetTimer();
} else if (FormalTestManager.isWaveCheck) {
System.out.println("(仅有录波)模型一致性校验成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》开始相序校验》》》》》》》》》》》》》》》》》》》》》》》》》》》");
this.resetTimer();
} else if (FormalTestManager.isWaveCheck) {
System.out.println("(仅有录波)模型一致性校验成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》开始相序校验》》》》》》》》》》》》》》》》》》》》》》》》》》》");
this.sendXu(s);
this.resetTimer();
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_XUJY;
this.sendXu(s);
this.resetTimer();
FormalTestManager.currentStep = SourceOperateCodeEnum.YJC_XUJY;
}
}
}
}
@@ -1513,7 +1526,7 @@ public class SocketContrastResponseService {
PreDetection.MonitorListDTO monitorListDTO = FormalTestManager.monitorMap.get(devMonitorId);
List<List<DevData>> lists = this.analyzeWaveFile(waveResultDTO1, waveResultDTO2, monitorListDTO, devMonitorId, stdDevMonitorId, FormalTestManager.testItemMap.keySet().stream().collect(Collectors.toList()));
if (CollUtil.isNotEmpty(lists) && lists.stream().flatMap(List::stream).allMatch(devData -> CollUtil.isNotEmpty(devData.getSqlData()) || CollUtil.isNotEmpty(devData.getSqlDataHarm()))) {
if (CollUtil.isNotEmpty(lists) && lists.stream().flatMap(List::stream).allMatch(devData -> CollUtil.isNotEmpty(devData.getSqlData()) && CollUtil.isNotEmpty(devData.getSqlDataHarm()))) {
// if (false) {
FormalTestManager.devDataMap.put(devMonitorId, lists.get(0));
FormalTestManager.standardDevDataMap.put(stdDevMonitorId, lists.get(1));
@@ -2222,12 +2235,19 @@ public class SocketContrastResponseService {
*/
private boolean singleMonitorXuCheck(String devMonitorId, String standardDevMonitorId, PreDetection.MonitorListDTO monitorListDTO, List<DevData> devData, List<DevData> stdData, Map<String, String> devNameMapComm, String userId) {
DecimalFormat df = new DecimalFormat("0.000000");
Boolean flag = true;
Boolean flagU = true;
Boolean flagI = true;
Boolean flagIMBV = true;
Boolean flagIMBA = true;
Boolean flagPhase = true;
// 获取被检设备的额定电流
Double ratedCurrent = Double.valueOf(monitorListDTO.getCtStr().split("\\:")[1]);
String pairStr = MsgUtil.getPairStr(devMonitorId, standardDevMonitorId, devNameMapComm);
SocketDataMsg webSend = new SocketDataMsg();
webSend.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
String detail = "数据为空!";
boolean isStar = DetectionCodeEnum.STAR.getCode().equals(monitorListDTO.getConnection());
boolean isDelta = DetectionCodeEnum.DELTA.getCode().equals(monitorListDTO.getConnection());
@@ -2245,6 +2265,7 @@ public class SocketContrastResponseService {
uStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.PVRMS.getCode());
}
String detail = "数据为空!";
if (CollUtil.isNotEmpty(uDev) && CollUtil.isNotEmpty(uStd)) {
DevData.SqlDataDTO.ListDTO uDevList = uDev.get(0).getList();
DevData.SqlDataDTO.ListDTO uStdList = uStd.get(0).getList();
@@ -2255,7 +2276,7 @@ public class SocketContrastResponseService {
", " + (isDelta ? "Ubc" : "Ub") + "=" + df.format(uStdList.getB()) +
", " + (isDelta ? "Uca" : "Uc") + "=" + df.format(uStdList.getC());
if (!voltageOrCurrentCheck(uDevList.getA(), uDevList.getB(), uDevList.getC(), uStdList.getA(), uStdList.getB(), uStdList.getC(), true)) {
flag = false;
flagU = false;
// 单个检测点电压校验失败,推送失败消息
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":电压校验失败!" + detail);
@@ -2264,7 +2285,7 @@ public class SocketContrastResponseService {
webSend.setData(pairStr + ":电压校验成功!" + detail);
}
} else {
flag = false;
flagU = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":电压校验失败!" + (isDelta ? "线" : "") + "电压" + detail);
}
@@ -2278,22 +2299,30 @@ public class SocketContrastResponseService {
if (CollUtil.isNotEmpty(iDev) && CollUtil.isNotEmpty(iStd)) {
DevData.SqlDataDTO.ListDTO iDevList = iDev.get(0).getList();
DevData.SqlDataDTO.ListDTO iStdList = iStd.get(0).getList();
detail = "被检设备Ia=" + df.format(iDevList.getA()) + ",Ib=" + df.format(iDevList.getB()) + ",Ic=" + df.format(iDevList.getC()) + "标准设备Ia=" + df.format(iStdList.getA()) + ",Ib=" + df.format(iStdList.getB()) + ",Ic=" + df.format(iStdList.getC());
if (!voltageOrCurrentCheck(iDevList.getA(), iDevList.getB(), iDevList.getC(), iStdList.getA(), iStdList.getB(), iStdList.getC(), false)) {
// 单个检测点电流校验失败,推送失败消息
flag = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":电流校验失败!" + detail);
if (!DetectionUtil.isZero(iDevList.getA(), ratedCurrent) && !DetectionUtil.isZero(iDevList.getB(), ratedCurrent) && !DetectionUtil.isZero(iDevList.getC(), ratedCurrent) && !DetectionUtil.isZero(iStdList.getA(), ratedCurrent) && !DetectionUtil.isZero(iStdList.getB(), ratedCurrent) && !DetectionUtil.isZero(iStdList.getC(), ratedCurrent)) {
detail = "被检设备Ia=" + df.format(iDevList.getA()) + ",Ib=" + df.format(iDevList.getB()) + ",Ic=" + df.format(iDevList.getC()) + "标准设备Ia=" + df.format(iStdList.getA()) + ",Ib=" + df.format(iStdList.getB()) + ",Ic=" + df.format(iStdList.getC());
if (!voltageOrCurrentCheck(iDevList.getA(), iDevList.getB(), iDevList.getC(), iStdList.getA(), iStdList.getB(), iStdList.getC(), false)) {
// 单个检测点电流校验失败,推送失败消息
flagI = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":电流校验失败!" + detail);
WebServiceManager.sendMsg(userId, JSON.toJSONString(webSend));
} else {
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
webSend.setData(pairStr + ":电流校验成功!" + detail);
WebServiceManager.sendMsg(userId, JSON.toJSONString(webSend));
}
} else {
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
webSend.setData(pairStr + ":电流校验成功!" + detail);
// 什么都不做,不推送消息
}
} else {
flag = false;
flagI = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":电流校验失败!" + detail);
WebServiceManager.sendMsg(userId, JSON.toJSONString(webSend));
}
WebServiceManager.sendMsg(userId, JSON.toJSONString(webSend));
// 根据接线方式(星型、角型)来决定是否进行三项不平衡校验
detail = "数据为空!";
@@ -2308,7 +2337,7 @@ public class SocketContrastResponseService {
detail = "被检设备IMBV=" + df.format(uUnblanceDevList.getB()) + "标准设备IMBV=" + df.format(uUnblanceStdList.getB());
if (!unbalanceCheck(uUnblanceDevList.getB(), uUnblanceStdList.getB(), true)) {
// 单个检测点三项电压不平衡校验失败,推送失败消息
flag = false;
flagIMBV = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":三项电压不平衡校验失败!" + detail);
} else {
@@ -2316,7 +2345,7 @@ public class SocketContrastResponseService {
webSend.setData(pairStr + ":三项电压不平衡校验成功!" + detail);
}
} else {
flag = false;
flagIMBV = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":三项电压不平衡校验失败!" + detail);
}
@@ -2329,7 +2358,7 @@ public class SocketContrastResponseService {
DevData.SqlDataDTO.ListDTO iUnblanceStdList = iUnblanceStd.get(0).getList();
detail = "被检设备IMBA=" + df.format(iUnblanceDevList.getB()) + "标准设备IMBA=" + df.format(iUnblanceStdList.getB());
if (!unbalanceCheck(iUnblanceDevList.getB(), iUnblanceStdList.getB(), false)) {
flag = false;
flagIMBA = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":三项电流不平衡校验失败!" + detail);
} else {
@@ -2337,7 +2366,7 @@ public class SocketContrastResponseService {
webSend.setData(pairStr + ":三项电流不平衡校验成功!" + detail);
}
} else {
flag = false;
flagIMBA = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":三项电流不平衡校验失败!" + detail);
}
@@ -2352,66 +2381,69 @@ public class SocketContrastResponseService {
// 动态调控是否支持相角差校验
if (isPhaseAngle) {
// 获取被检设备的额定电流
Double ratedCurrent = Double.valueOf(monitorListDTO.getCtStr().split("\\:")[1]);
// 是否存在电流
boolean notHasCurrent = iDev.stream().allMatch(
p -> p.getList().getA() != null && DetectionUtil.isZero(p.getList().getA(), ratedCurrent)
&& p.getList().getB() != null && DetectionUtil.isZero(p.getList().getB(), ratedCurrent)
&& p.getList().getC() != null && DetectionUtil.isZero(p.getList().getC(), ratedCurrent));
if (!notHasCurrent) {
detail = "数据为空!";
// 相角差校验
List<DevData.SqlDataDTO> vaDev = null;
List<DevData.SqlDataDTO> vaStd = null;
List<DevData.SqlDataDTO> iaDev = null;
List<DevData.SqlDataDTO> iaStd = null;
if (isStar) {
vaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.VA.getCode());
vaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.VA.getCode());
iaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.IA.getCode());
iaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.IA.getCode());
if (CollUtil.isEmpty(vaDev) && CollUtil.isEmpty(vaStd) && CollUtil.isEmpty(iaDev) && CollUtil.isEmpty(iaStd)) {
vaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.U1A.getCode());
vaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.U1A.getCode());
if (flagIMBV && flagIMBA) {
// 是否存在电流
boolean hasCurrent = iDev.stream().allMatch(
p -> p.getList().getA() != null && !DetectionUtil.isZero(p.getList().getA(), ratedCurrent)
&& p.getList().getB() != null && !DetectionUtil.isZero(p.getList().getB(), ratedCurrent)
&& p.getList().getC() != null && !DetectionUtil.isZero(p.getList().getC(), ratedCurrent));
hasCurrent = hasCurrent && iStd.stream().allMatch(
p -> p.getList().getA() != null && !DetectionUtil.isZero(p.getList().getA(), ratedCurrent)
&& p.getList().getB() != null && !DetectionUtil.isZero(p.getList().getB(), ratedCurrent)
&& p.getList().getC() != null && !DetectionUtil.isZero(p.getList().getC(), ratedCurrent));
if (hasCurrent) {
detail = "数据为空!";
// 相角差校验
List<DevData.SqlDataDTO> vaDev = null;
List<DevData.SqlDataDTO> vaStd = null;
List<DevData.SqlDataDTO> iaDev = null;
List<DevData.SqlDataDTO> iaStd = null;
if (isStar) {
vaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.VA.getCode());
vaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.VA.getCode());
iaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.IA.getCode());
iaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.IA.getCode());
if (CollUtil.isEmpty(vaDev) && CollUtil.isEmpty(vaStd) && CollUtil.isEmpty(iaDev) && CollUtil.isEmpty(iaStd)) {
vaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.U1A.getCode());
vaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.U1A.getCode());
iaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.I1A.getCode());
iaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.I1A.getCode());
}
}
if (isDelta) {
vaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.PU1A.getCode());
vaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.PU1A.getCode());
iaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.I1A.getCode());
iaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.I1A.getCode());
}
}
if (isDelta) {
vaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.PU1A.getCode());
vaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.PU1A.getCode());
iaDev = getSingleMonitorSqlData(devData, DetectionCodeEnum.I1A.getCode());
iaStd = getSingleMonitorSqlData(stdData, DetectionCodeEnum.I1A.getCode());
}
if (CollUtil.isNotEmpty(vaDev) && CollUtil.isNotEmpty(vaStd) && CollUtil.isNotEmpty(iaDev) && CollUtil.isNotEmpty(iaStd)) {
DevData.SqlDataDTO.ListDTO vaDevList = vaDev.get(0).getList();
DevData.SqlDataDTO.ListDTO vaStdList = vaDev.get(0).getList();
DevData.SqlDataDTO.ListDTO iaDevList = vaDev.get(0).getList();
DevData.SqlDataDTO.ListDTO iaStdList = vaDev.get(0).getList();
if (CollUtil.isNotEmpty(vaDev) && CollUtil.isNotEmpty(vaStd) && CollUtil.isNotEmpty(iaDev) && CollUtil.isNotEmpty(iaStd)) {
DevData.SqlDataDTO.ListDTO vaDevList = vaDev.get(0).getList();
DevData.SqlDataDTO.ListDTO vaStdList = vaDev.get(0).getList();
DevData.SqlDataDTO.ListDTO iaDevList = vaDev.get(0).getList();
DevData.SqlDataDTO.ListDTO iaStdList = vaDev.get(0).getList();
detail = "被检设备a=" + (vaDevList.getA() - iaDevList.getA()) + "°,b=" + (vaDevList.getB() - iaDevList.getB()) + "°,c=" + (vaDevList.getC() - iaDevList.getC()) + "标准设备a=" + (vaStdList.getA() - iaStdList.getA()) + "°,b=" + (vaStdList.getB() - iaStdList.getB()) + "°,c=" + (vaStdList.getC() - iaStdList.getC());
detail = "被检设备a=" + (vaDevList.getA() - iaDevList.getA()) + "°,b=" + (vaDevList.getB() - iaDevList.getB()) + "°,c=" + (vaDevList.getC() - iaDevList.getC()) + "标准设备a=" + (vaStdList.getA() - iaStdList.getA()) + "°,b=" + (vaStdList.getB() - iaStdList.getB()) + "°,c=" + (vaStdList.getC() - iaStdList.getC());
if (!phaseCheck(vaDevList, iaDevList, vaStdList, iaStdList)) {
// 单个检测点相角校验失败,推送失败消息
flag = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":相角差校验失败!" + detail);
if (!phaseCheck(vaDevList, iaDevList, vaStdList, iaStdList)) {
// 单个检测点相角校验失败,推送失败消息
flagPhase = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":相角差校验失败!" + detail);
} else {
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
webSend.setData(pairStr + ":相角差校验成功!" + detail);
}
} else {
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
webSend.setData(pairStr + ":相角差校验成功!" + detail);
flagPhase = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":相角差校验失败!相角差" + detail);
}
} else {
flag = false;
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
webSend.setData(pairStr + ":相角差校验失败!相角差" + detail);
WebServiceManager.sendMsg(userId, JSON.toJSONString(webSend));
}
WebServiceManager.sendMsg(userId, JSON.toJSONString(webSend));
}
}
return flag;
return flagU && flagI && flagIMBV && flagIMBA && flagPhase;
}
/**
@@ -2909,6 +2941,18 @@ public class SocketContrastResponseService {
targetDatStream,
isStar ? 0 : isDelta ? 1 : 2);
if (ObjectUtil.isNotNull(compareWaveDTO) && ObjectUtil.isNotNull(compareWaveDTO.getSourceResults()) && ObjectUtil.isNotNull(compareWaveDTO.getTargetResults())) {
// DetectionCodeEnum prefixEnum = this.getPrefixEnum();
// adTypeCodeList = Arrays.asList(prefixEnum.getCode() + DetectionCodeEnum.VRMS.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.PVRMS.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.IRMS.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.V_UNBAN.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.I_UNBAN.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.V2_50.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.P2_50.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.PV2_50.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.SV_1_49.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.SI_1_49.getCode(),
// prefixEnum.getCode() + DetectionCodeEnum.I2_50.getCode());
return this.getDevData(compareWaveDTO.getSourceResults(), compareWaveDTO.getTargetResults(), devMonitorId, stdDevMonitorId, adTypeCodeList);
} else {
return null;
@@ -2934,8 +2978,8 @@ public class SocketContrastResponseService {
List<DevData> stdDevDataList = new ArrayList<>();
int dataPoints = Math.min(sourceDataList.size(), targetDataList.size());
for (int i = 0; i < dataPoints; i++) {
devDataList.add(getSinglePointDevData(sourceDataList.get(i), devMonitorId, adTypeCodeList));
stdDevDataList.add(getSinglePointDevData(targetDataList.get(i), stdDevMonitorId, adTypeCodeList));
devDataList.add(getSinglePointDevData(targetDataList.get(i), devMonitorId, adTypeCodeList));
stdDevDataList.add(getSinglePointDevData(sourceDataList.get(i), stdDevMonitorId, adTypeCodeList));
}
result.add(devDataList);
result.add(stdDevDataList);
@@ -2975,7 +3019,7 @@ public class SocketContrastResponseService {
List<String> cListI = null;
for (String adTypeCode : adTypeCodeList) {
String code = adTypeCode.replace(DetectionCodeEnum.REAL_PREFIX.getCode(), "");
String code = adTypeCode.replace(this.getPrefixEnum().getCode(), "");
DetectionCodeEnum detectionCodeEnum = DetectionCodeEnum.getDetectionCodeByCode(code);
switch (detectionCodeEnum) {
// case FREQ:
@@ -2992,7 +3036,7 @@ public class SocketContrastResponseService {
// 相电压有效值
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.VRMS.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setA((double) pointDevData.getRms()[0]);
listDTO.setB((double) pointDevData.getRms()[1]);
@@ -3004,7 +3048,7 @@ public class SocketContrastResponseService {
// 线电压有效值
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.PVRMS.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setA((double) pointDevData.getRms()[6]);
listDTO.setB((double) pointDevData.getRms()[7]);
@@ -3016,7 +3060,7 @@ public class SocketContrastResponseService {
// 相电流有效值
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.IRMS.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setA((double) pointDevData.getRms()[3]);
listDTO.setB((double) pointDevData.getRms()[4]);
@@ -3028,7 +3072,7 @@ public class SocketContrastResponseService {
// 三项电压不平衡度
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.V_UNBAN.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setB((double) pointDevData.getUiSeq()[0][4]);
sqlDataDTO.setList(listDTO);
@@ -3038,7 +3082,7 @@ public class SocketContrastResponseService {
// 三项电流不平衡度
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.I_UNBAN.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setB((double) pointDevData.getUiSeq()[1][4]);
sqlDataDTO.setList(listDTO);
@@ -3048,7 +3092,7 @@ public class SocketContrastResponseService {
// 谐波电压含有率
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.U1.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
u1A = (double) pointDevData.getFuHarm()[0][0];
u1B = (double) pointDevData.getFuHarm()[1][0];
@@ -3061,7 +3105,7 @@ public class SocketContrastResponseService {
sqlDataHarmDTOV = new DevData.SqlDataHarmDTO();
sqlDataHarmDTOV.setDesc(DetectionCodeEnum.V2_50.getCode());
sqlDataHarmDTOV.setType("real");
sqlDataHarmDTOV.setType("wave");
listDTOHarmV = new DevData.SqlDataHarmDTO.ListDTO();
aListV = new ArrayList<>();
@@ -3086,7 +3130,7 @@ public class SocketContrastResponseService {
// 谐波电流幅值
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.I1.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setA((double) pointDevData.getInHarm()[3][0]);
listDTO.setB((double) pointDevData.getInHarm()[4][0]);
@@ -3096,7 +3140,7 @@ public class SocketContrastResponseService {
DevData.SqlDataHarmDTO sqlDataHarmDTOI = new DevData.SqlDataHarmDTO();
sqlDataHarmDTOI.setDesc(DetectionCodeEnum.I2_50.getCode());
sqlDataHarmDTOI.setType("real");
sqlDataHarmDTOI.setType("wave");
DevData.SqlDataHarmDTO.ListDTO listDTOHarmI = new DevData.SqlDataHarmDTO.ListDTO();
aListI = new ArrayList<>();
@@ -3142,7 +3186,7 @@ public class SocketContrastResponseService {
// 间谐波电压含有率
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.U1.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
u1A = (double) pointDevData.getFuHarm()[0][0];
u1B = (double) pointDevData.getFuHarm()[1][0];
@@ -3155,7 +3199,7 @@ public class SocketContrastResponseService {
sqlDataHarmDTOV = new DevData.SqlDataHarmDTO();
sqlDataHarmDTOV.setDesc(DetectionCodeEnum.SV_1_49.getCode());
sqlDataHarmDTOV.setType("real");
sqlDataHarmDTOV.setType("wave");
listDTOHarmV = new DevData.SqlDataHarmDTO.ListDTO();
aListV = new ArrayList<>();
@@ -3179,7 +3223,7 @@ public class SocketContrastResponseService {
case SI_1_49:
sqlDataDTO = new DevData.SqlDataDTO();
sqlDataDTO.setDesc(DetectionCodeEnum.I1.getCode());
sqlDataDTO.setType("real");
sqlDataDTO.setType("wave");
listDTO = new DevData.SqlDataDTO.ListDTO();
listDTO.setA((double) pointDevData.getInHarm()[3][0]);
listDTO.setB((double) pointDevData.getInHarm()[4][0]);
@@ -3190,7 +3234,7 @@ public class SocketContrastResponseService {
// 间谐波电流幅值
sqlDataHarmDTOI = new DevData.SqlDataHarmDTO();
sqlDataHarmDTOI.setDesc(DetectionCodeEnum.SI_1_49.getCode());
sqlDataHarmDTOI.setType("real");
sqlDataHarmDTOI.setType("wave");
listDTOHarmI = new DevData.SqlDataHarmDTO.ListDTO();
aListI = new ArrayList<>();

View File

@@ -42,8 +42,8 @@ public enum SourceResponseCodeEnum {
FAIL(25002,"失败"),
ALL_FAIL(25003,"校验失败"),
RECEIVE_DATA_TIME_OUT(25004,"接收数据超时"),
REAL_DATA_CHECK_FAIL(25005,"实时数据校验失败"),
STATISTICS_DATA_CHECK_FAIL(25006,"统计数据校验失败"),
REAL_DATA_CHECK_FAIL(25005,"实时数据不符合"),
STATISTICS_DATA_CHECK_FAIL(25006,"统计数据不符合"),
FLICKER_DATA_START(25007,"开始接收闪变数据")

View File

@@ -134,7 +134,7 @@
#{item}
</foreach>
</if>
order by dev.Create_Time DESC,dev.Name
order by dev.Create_Time DESC, dev.Name ASC
</select>
</mapper>

View File

@@ -111,4 +111,9 @@ public class PqDevVO extends PqDev {
* 是否已经分配。0-未分配、1-已分配、2-所有
*/
private Integer assign;
/**
* 检测点结果
*/
private List<Integer> monitorResults;
}

View File

@@ -37,6 +37,7 @@ import com.njcn.gather.device.service.IPqDevSubService;
import com.njcn.gather.monitor.pojo.po.PqMonitor;
import com.njcn.gather.monitor.pojo.vo.PqMonitorExcel;
import com.njcn.gather.monitor.service.IPqMonitorService;
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
import com.njcn.gather.pojo.enums.DetectionResponseEnum;
import com.njcn.gather.storage.service.DetectionDataDealService;
import com.njcn.gather.system.cfg.pojo.enums.SceneEnum;
@@ -216,7 +217,8 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
if (PatternEnum.CONTRAST.getValue().equals(dictDataService.getDictDataById(param.getPattern()).getCode())) {
for (String id : param.getIds()) {
if (ObjectUtils.isNotEmpty(pqMonitorService.listPqMonitorByDevIds(Collections.singletonList(id)))) {
throw new BusinessException(DetectionResponseEnum.PQ_DEV_HAS_MONITOR);
// throw new BusinessException(DetectionResponseEnum.PQ_DEV_HAS_MONITOR);
pqMonitorService.removeByDevId(id);
}
}
}
@@ -290,6 +292,33 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
return Collections.emptyList();
}
List<PqDevVO> pqDevList = this.baseMapper.selectByQueryParam(param);
pqDevList.forEach(pqDev -> {
List<PqMonitor> monitorList = pqMonitorService.listPqMonitorByDevIds(Collections.singletonList(pqDev.getId()));
List<PqMonitor> enabledMonitorList = monitorList.stream().filter(x -> x.getCheckFlag() == 1).collect(Collectors.toList());
pqDev.setMonitorResults(enabledMonitorList.stream().map(x -> {
if (ObjectUtil.isNull(x.getResultType())) {
return CheckResultEnum.UNCHECKED.getValue();
} else {
DataSourceEnum dataSourceEnum = DataSourceEnum.ofByValue(x.getResultType());
switch (dataSourceEnum) {
case REAL_DATA:
return x.getRealtimeResult();
case MINUTE_STATISTICS_AVG:
case MINUTE_STATISTICS_CP95:
case MINUTE_STATISTICS_MIN:
case MINUTE_STATISTICS_MAX:
return x.getStatisticsResult();
case WAVE_DATA:
return x.getRecordedResult();
default:
break;
}
}
return CheckResultEnum.UNCHECKED.getValue();
}).collect(Collectors.toList()));
});
return pqDevList;
}
@@ -1254,9 +1283,9 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
}
// 校验监测点数量
int devChns = devType.getDevChns();
if (pqMonitorExcelList.size() != devChns) {
throw new BusinessException(DetectionResponseEnum.IMPORT_DATA_FAIL, "" + name + "】的设备类型必须具备" + devChns + "个监测点信息!");
}
// if (pqMonitorExcelList.size() != devChns) {
// throw new BusinessException(DetectionResponseEnum.IMPORT_DATA_FAIL, "【" + name + "】的设备类型必须具备" + devChns + "个监测点信息!");
// }
List<Integer> numList = pqMonitorExcelList.stream().map(PqMonitorExcel::getNum).collect(Collectors.toList());
// 判断是否有重复的num
Set<Integer> uniqueNumSet = new HashSet<>(numList);

View File

@@ -6,7 +6,6 @@ import com.njcn.gather.monitor.pojo.po.PqMonitor;
import com.njcn.gather.plan.pojo.enums.DataSourceEnum;
import java.util.List;
import java.util.Map;
/**
* @author caozehui
@@ -112,4 +111,11 @@ public interface IPqMonitorService extends IService<PqMonitor> {
*/
Integer getDevCheckResult(String devId);
/**
* 根据被检设备id删除监测点信息
*
* @param devId
* @return
*/
boolean removeByDevId(String devId);
}

View File

@@ -280,4 +280,11 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
return DetectionDataServiceImpl.isResultFlag(allResultFlags);
}
@Override
public boolean removeByDevId(String devId) {
QueryWrapper<PqMonitor> wrapper = new QueryWrapper<>();
wrapper.eq("pq_monitor.Dev_Id", devId);
return this.remove(wrapper);
}
}

View File

@@ -2932,6 +2932,7 @@ public class ResultServiceImpl implements IResultService {
"A_Value_0 json NULL COMMENT 'A相基波有效值',\n" +
"B_Value_0 json NULL COMMENT 'B相基波有效值',\n" +
"C_Value_0 json NULL COMMENT 'B相基波有效值',\n" +
"Wave_Num tinyint(1) unsigned DEFAULT null COMMENT '录波数据第几组',\n"+
"PRIMARY KEY (Id)\n"
:
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',\n" +
@@ -3130,13 +3131,15 @@ public class ResultServiceImpl implements IResultService {
List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0);
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1);
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, null, finalNonWaveDataSourceEnum);
if(CollUtil.isNotEmpty(devData)&&CollUtil.isNotEmpty(standardDevData)){
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, null, finalNonWaveDataSourceEnum);
parsId.forEach((devMonitorId, stdDevMonitorId) -> {
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
pqMonitorService.updateMonitorResult(devMonitorId, null, finalNonWaveDataSourceEnum, num, null, oldCode);
pqDevService.updateResult(split[0], null);
});
parsId.forEach((devMonitorId, stdDevMonitorId) -> {
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
pqMonitorService.updateMonitorResult(devMonitorId, null, finalNonWaveDataSourceEnum, num, null, oldCode);
pqDevService.updateResult(split[0], null);
});
}
AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(planId);
for (int i = 1; i <= adPlanTestConfig.getWaveRecord(); i++) {