Compare commits
6 Commits
2025-09
...
cd486f419f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
cd486f419f | ||
|
|
7394762e28 | ||
|
|
2f75fe062b | ||
|
|
d4e09a09cf | ||
|
|
d58452012d | ||
|
|
014ac7931e |
@@ -139,6 +139,12 @@
|
||||
<artifactId>report-generator</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
<!--激活工具-->
|
||||
<dependency>
|
||||
<groupId>com.njcn.gather</groupId>
|
||||
<artifactId>activate-tool</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
|
||||
|
||||
@@ -175,7 +175,12 @@ public class SocketContrastResponseService {
|
||||
FormalTestManager.preNumTestResultList.clear();
|
||||
|
||||
checkResult = false;
|
||||
|
||||
FormalTestManager.isTesting = true;
|
||||
FormalTestManager.realProtocol = false;
|
||||
FormalTestManager.statisticsProtocol = false;
|
||||
FormalTestManager.voltageProtocol = false;
|
||||
FormalTestManager.pstDataType = null;
|
||||
FormalTestManager.isPstData = false;
|
||||
FormalTestManager.isWaveCheck = false;
|
||||
FormalTestManager.nonWaveDataSourceEnum = null;
|
||||
|
||||
@@ -413,8 +418,8 @@ public class SocketContrastResponseService {
|
||||
//开始模型一致性校验
|
||||
System.out.println("装置通信成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始模型一致性校验》》》》》》》》》》》》》》》》");
|
||||
List<String> allDataType = this.getAllDataType();
|
||||
if (allDataType.contains(getPrefixEnum().getCode() + DetectionCodeEnum.PST.getCode())) {
|
||||
allDataType.remove(getPrefixEnum().getCode() + DetectionCodeEnum.PST.getCode());
|
||||
if (allDataType.contains(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode())) {
|
||||
allDataType.remove(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode());
|
||||
}
|
||||
if (CollUtil.isNotEmpty(allDataType)) {
|
||||
this.sendModelDeal(s, allDataType);
|
||||
@@ -444,12 +449,15 @@ public class SocketContrastResponseService {
|
||||
voltage = SourceOperateCodeEnum.DEV_INIT_GATHER_03.getValue().equals(socketDataMsg.getOperateCode());
|
||||
if (real) {
|
||||
msg = "实时协议校验成功!";
|
||||
FormalTestManager.realProtocol = true;
|
||||
}
|
||||
if (voltage) {
|
||||
msg = "暂态协议校验成功!";
|
||||
FormalTestManager.voltageProtocol = true;
|
||||
}
|
||||
if (statistics) {
|
||||
msg = "统计协议校验成功!";
|
||||
FormalTestManager.statisticsProtocol = true;
|
||||
}
|
||||
MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1);
|
||||
socketDataMsg.setData(socketDataMsg.getData() + msg);
|
||||
@@ -457,9 +465,27 @@ public class SocketContrastResponseService {
|
||||
|
||||
System.out.println(msg + successComm.size() + "=====" + FormalTestManager.monitorMap.size());
|
||||
if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
||||
if (FormalTestManager.testItemMap.keySet().stream().anyMatch(key -> DetectionCodeEnum.PST.getCode().equals(key.split("\\$")[1]))) {
|
||||
if (!FormalTestManager.statisticsProtocol) {
|
||||
successComm.clear();
|
||||
failComm.clear();
|
||||
|
||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||
// 进行统计协议校验
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_01.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));
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
if (voltage) {
|
||||
if (FormalTestManager.voltageProtocol) {
|
||||
successComm.clear();
|
||||
failComm.clear();
|
||||
|
||||
@@ -467,6 +493,9 @@ public class SocketContrastResponseService {
|
||||
this.sendRecordWave(s);
|
||||
return;
|
||||
} else {
|
||||
successComm.clear();
|
||||
failComm.clear();
|
||||
|
||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||
// 进行暂态协议校验
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
||||
@@ -488,8 +517,8 @@ public class SocketContrastResponseService {
|
||||
System.out.println("装置通信成功!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》开始模型一致性校验》》》》》》》》》》》》》》》》");
|
||||
|
||||
List<String> allDataType = this.getAllDataType();
|
||||
if (allDataType.contains(getPrefixEnum().getCode() + DetectionCodeEnum.PST.getCode())) {
|
||||
allDataType.remove(getPrefixEnum().getCode() + DetectionCodeEnum.PST.getCode());
|
||||
if (allDataType.contains(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode())) {
|
||||
allDataType.remove(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode());
|
||||
}
|
||||
if (CollUtil.isNotEmpty(allDataType)) {
|
||||
this.sendModelDeal(s, allDataType);
|
||||
@@ -526,8 +555,12 @@ public class SocketContrastResponseService {
|
||||
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_03.getValue());
|
||||
System.out.println("无效的录波指令!");
|
||||
|
||||
if (FormalTestManager.statisticsProtocol && quitOperateCode == SourceOperateCodeEnum.QUIT_INIT_02) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
|
||||
Collection<String> disjunction = CollectionUtil.disjunction(FormalTestManager.monitorMap.keySet(), successComm);
|
||||
// 向前端推送
|
||||
@@ -549,36 +582,52 @@ public class SocketContrastResponseService {
|
||||
}
|
||||
break;
|
||||
case DEV_ERROR:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0));
|
||||
failComm.addAll(FormalTestManager.devMapMonitorNum.get(socketDataMsg.getData()));
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0));
|
||||
completeJudgment(param);
|
||||
if (voltage) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case DEV_TARGET:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
|
||||
failComm.add(socketDataMsg.getData());
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
|
||||
completeJudgment(param);
|
||||
if (voltage) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case RE_OPERATE:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
if (voltage) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case NO_INIT_DEV:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
if (voltage) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
default:
|
||||
WebServiceManager.sendUnknownErrorMessage(param.getUserPageId());
|
||||
@@ -629,10 +678,14 @@ public class SocketContrastResponseService {
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 0));
|
||||
|
||||
System.out.println("模型一致性校验失败!》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》");
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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());
|
||||
@@ -666,31 +719,47 @@ public class SocketContrastResponseService {
|
||||
break;
|
||||
case DEV_ERROR:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case DEV_TARGET:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case RE_OPERATE:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case NO_INIT_DEV:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
default:
|
||||
WebServiceManager.sendUnknownErrorMessage(param.getUserPageId());
|
||||
@@ -737,10 +806,14 @@ public class SocketContrastResponseService {
|
||||
FormalTestManager.scheduledFuture = FormalTestManager.scheduler.schedule(() -> {
|
||||
if (!checkResult) {
|
||||
System.out.println(delay + "s内数据对齐校验失败!");
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
FormalTestManager.isTesting = false;
|
||||
Collection<String> disjunction = CollectionUtil.disjunction(FormalTestManager.pairsIpMap.keySet(), successPair.keySet());
|
||||
// 向前端推送实时数据对齐失败的配对项
|
||||
for (String key : disjunction) {
|
||||
@@ -837,31 +910,47 @@ public class SocketContrastResponseService {
|
||||
break;
|
||||
case DEV_ERROR:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case DEV_TARGET:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case RE_OPERATE:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case NO_INIT_DEV:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
default:
|
||||
WebServiceManager.sendUnknownErrorMessage(param.getUserPageId());
|
||||
@@ -942,7 +1031,21 @@ public class SocketContrastResponseService {
|
||||
socketMsg.setOperateCode(requestOperateCode.getValue());
|
||||
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
|
||||
phaseSequenceParam.setMoniterIdList(Arrays.asList(FormalTestManager.monitorMap.keySet().toArray(new String[FormalTestManager.monitorMap.size()])));
|
||||
phaseSequenceParam.setDataType(this.getAllDataType());
|
||||
List<String> allDataType = this.getAllDataType();
|
||||
FormalTestManager.pstDataType = new ArrayList<>();
|
||||
if (allDataType.contains(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode())) {
|
||||
FormalTestManager.pstDataType.add(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode());
|
||||
allDataType.remove(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode());
|
||||
}
|
||||
if (CollUtil.isNotEmpty(allDataType)) {
|
||||
phaseSequenceParam.setDataType(allDataType);
|
||||
} else {
|
||||
if (CollUtil.isNotEmpty(FormalTestManager.pstDataType)) {
|
||||
FormalTestManager.isPstData = true;
|
||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_01.getValue());
|
||||
phaseSequenceParam.setDataType(FormalTestManager.pstDataType);
|
||||
}
|
||||
}
|
||||
phaseSequenceParam.setReadCount(this.getReadCount(this.getTargetCount()));
|
||||
phaseSequenceParam.setIgnoreCount(0);
|
||||
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
|
||||
@@ -952,6 +1055,9 @@ public class SocketContrastResponseService {
|
||||
this.resetTimer();
|
||||
checkResult = false;
|
||||
} else if (FormalTestManager.isWaveCheck) {
|
||||
if (FormalTestManager.statisticsProtocol && quitOperateCode == SourceOperateCodeEnum.QUIT_INIT_02) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||
}
|
||||
// 录波数据
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
successComm.clear();
|
||||
@@ -961,10 +1067,14 @@ public class SocketContrastResponseService {
|
||||
this.sendRecordWave(s);
|
||||
}
|
||||
} else {
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
FormalTestManager.isTesting = false;
|
||||
}
|
||||
}
|
||||
} else if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
||||
@@ -976,14 +1086,17 @@ public class SocketContrastResponseService {
|
||||
webSend.setOperateCode(requestOperateCode.getValue());
|
||||
webSend.setCode(SourceResponseCodeEnum.ALL_FAIL.getCode()); //最终错误推送
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
FormalTestManager.isTesting = false;
|
||||
}
|
||||
} else {
|
||||
Integer maxReadCount = getReadCount(1);
|
||||
Integer maxReadCount = this.getReadCount(1);
|
||||
WebSocketVO webSend = new WebSocketVO();
|
||||
webSend.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
|
||||
webSend.setOperateCode(requestOperateCode.getValue());
|
||||
@@ -992,10 +1105,14 @@ public class SocketContrastResponseService {
|
||||
webSend.setData(MsgUtil.getPairStr(devMonitorId, standardDevMonitorId, FormalTestManager.devNameMapComm) + " 数据对齐失败!");
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
FormalTestManager.isTesting = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1006,24 +1123,36 @@ public class SocketContrastResponseService {
|
||||
break;
|
||||
case DEV_ERROR:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case DEV_TARGET:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case RE_OPERATE:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
default:
|
||||
WebServiceManager.sendUnknownErrorMessage(param.getUserPageId());
|
||||
@@ -1065,35 +1194,40 @@ public class SocketContrastResponseService {
|
||||
type = 2;
|
||||
}
|
||||
}
|
||||
if (Objects.isNull(FormalTestManager.scheduler)) {
|
||||
FormalTestManager.scheduler = Executors.newScheduledThreadPool(1);
|
||||
long delay = this.getDelay(targetCount);
|
||||
FormalTestManager.scheduledFuture = FormalTestManager.scheduler.schedule(() -> {
|
||||
if (!checkResult) {
|
||||
System.out.println("正式检测-" + delay + "s内收集数据不完整!");
|
||||
// 断开与设备的连接,但是不要将Socket移除
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
|
||||
this.clearData();
|
||||
|
||||
Collection<String> disjunction = CollectionUtil.disjunction(FormalTestManager.pairsIpMap.keySet(), successPair.keySet());
|
||||
// 向前端推送收集数据不完整的配对项
|
||||
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());//最终错误推送
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
}
|
||||
FormalTestManager.scheduler.shutdown();
|
||||
FormalTestManager.scheduler = null;
|
||||
}, delay, TimeUnit.SECONDS);
|
||||
}
|
||||
this.setScheduler(targetCount, param.getUserPageId(), requestOperateCode, quitOperateCode);
|
||||
// if (Objects.isNull(FormalTestManager.scheduler)) {
|
||||
// FormalTestManager.scheduler = Executors.newScheduledThreadPool(1);
|
||||
// long delay = this.getDelay(targetCount);
|
||||
// FormalTestManager.scheduledFuture = FormalTestManager.scheduler.schedule(() -> {
|
||||
// if (!checkResult) {
|
||||
// System.out.println("正式检测-" + delay + "s内收集数据不完整!");
|
||||
// // 断开与设备的连接,但是不要将Socket移除
|
||||
// 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_03, false);
|
||||
// }
|
||||
// CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
// FormalTestManager.isTesting = false;
|
||||
//
|
||||
// this.clearData();
|
||||
//
|
||||
// Collection<String> disjunction = CollectionUtil.disjunction(FormalTestManager.pairsIpMap.keySet(), successPair.keySet());
|
||||
// // 向前端推送收集数据不完整的配对项
|
||||
// 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());//最终错误推送
|
||||
// WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
// }
|
||||
// FormalTestManager.scheduler.shutdown();
|
||||
// FormalTestManager.scheduler = null;
|
||||
// }, delay, TimeUnit.SECONDS);
|
||||
// }
|
||||
|
||||
String monitorId1 = devData.getId();
|
||||
String devMonitorId = monitorId1;
|
||||
@@ -1102,14 +1236,26 @@ public class SocketContrastResponseService {
|
||||
if (FormalTestManager.devDataMap.containsKey(monitorId1)) {
|
||||
standardDevMonitorId = FormalTestManager.pairsIpMap.get(monitorId1);
|
||||
if (!successPair.containsKey(devMonitorId)) {
|
||||
FormalTestManager.devDataMap.get(monitorId1).add(devData);
|
||||
if (FormalTestManager.isPstData) {
|
||||
if (devData.getSqlData().stream().anyMatch(obj -> DetectionCodeEnum.PST.getCode().equals(obj.getDesc()))) {
|
||||
FormalTestManager.devDataMap.get(monitorId1).add(devData);
|
||||
}
|
||||
} else {
|
||||
FormalTestManager.devDataMap.get(monitorId1).add(devData);
|
||||
}
|
||||
Collections.sort(FormalTestManager.devDataMap.get(monitorId1), Comparator.comparing(obj -> DetectionUtil.getMillis(obj.getTime())));
|
||||
}
|
||||
}
|
||||
if (FormalTestManager.standardDevDataMap.containsKey(monitorId1)) {
|
||||
devMonitorId = FormalTestManager.pairsIpMap.inverse().get(monitorId1);
|
||||
if (!successPair.containsKey(devMonitorId)) {
|
||||
FormalTestManager.standardDevDataMap.get(monitorId1).add(devData);
|
||||
if (FormalTestManager.isPstData) {
|
||||
if (devData.getSqlData().stream().anyMatch(obj -> DetectionCodeEnum.PST.getCode().equals(obj.getDesc()))) {
|
||||
FormalTestManager.standardDevDataMap.get(monitorId1).add(devData);
|
||||
}
|
||||
} else {
|
||||
FormalTestManager.standardDevDataMap.get(monitorId1).add(devData);
|
||||
}
|
||||
Collections.sort(FormalTestManager.standardDevDataMap.get(monitorId1), Comparator.comparing(obj -> DetectionUtil.getMillis(obj.getTime())));
|
||||
}
|
||||
}
|
||||
@@ -1131,8 +1277,6 @@ public class SocketContrastResponseService {
|
||||
FormalTestManager.standardDevDataMap.get(standardDevMonitorId).addAll(singleMonitorAlignData.get(1));
|
||||
|
||||
if (successPair.keySet().containsAll(FormalTestManager.pairsIpMap.keySet())) {
|
||||
// 断开与设备的连接,但是不要将Socket移除
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
checkResult = true;
|
||||
FormalTestManager.scheduledFuture.cancel(true);
|
||||
FormalTestManager.scheduler.shutdown();
|
||||
@@ -1148,28 +1292,61 @@ public class SocketContrastResponseService {
|
||||
baseDataInsert(false, null, FormalTestManager.nonWaveDataSourceEnum, devDataList, FormalTestManager.numMap, prefixEnum, code);
|
||||
baseDataInsert(true, null, FormalTestManager.nonWaveDataSourceEnum, standardDevDataList, FormalTestManager.numMap, prefixEnum, code);
|
||||
|
||||
List<String> testItem = null;
|
||||
if (FormalTestManager.isPstData) {
|
||||
testItem = FormalTestManager.testItemMap.keySet().stream().filter(a -> DetectionCodeEnum.PST.getCode().equals(a.split("\\$")[1])).collect(Collectors.toList());
|
||||
} else {
|
||||
testItem = FormalTestManager.testItemMap.keySet().stream().filter(a -> !DetectionCodeEnum.PST.getCode().equals(a.split("\\$")[1])).collect(Collectors.toList());
|
||||
}
|
||||
// 进行误差计算
|
||||
List<DevLineTestResult> allResultList = detectionService.processing(
|
||||
devDataList,
|
||||
standardDevDataList,
|
||||
FormalTestManager.pairsIpMap,
|
||||
FormalTestManager.devIdMapComm,
|
||||
FormalTestManager.testItemMap.keySet().stream().collect(Collectors.toList()),
|
||||
testItem,
|
||||
errorSysId, FormalTestManager.dataRule, FormalTestManager.numMap, code, null, FormalTestManager.nonWaveDataSourceEnum);
|
||||
|
||||
this.clearData();
|
||||
|
||||
webSend.setData(JSON.toJSONString(allResultList));
|
||||
|
||||
List<String> adTypes = FormalTestManager.testItemMap.values().stream().collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(FormalTestManager.pstDataType)) {
|
||||
if (!FormalTestManager.isPstData) {
|
||||
webSend.setCode(SourceResponseCodeEnum.FLICKER_DATA_START.getCode());
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
|
||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_01.getValue());
|
||||
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
|
||||
phaseSequenceParam.setMoniterIdList(Arrays.asList(FormalTestManager.monitorMap.keySet().toArray(new String[FormalTestManager.monitorMap.size()])));
|
||||
FormalTestManager.isPstData = true;
|
||||
phaseSequenceParam.setDataType(FormalTestManager.pstDataType);
|
||||
phaseSequenceParam.setReadCount(this.getReadCount(this.getTargetCount()));
|
||||
phaseSequenceParam.setIgnoreCount(0);
|
||||
socketMsg.setData(JSON.toJSONString(phaseSequenceParam));
|
||||
|
||||
FormalTestManager.currentStep = SourceOperateCodeEnum.FORMAL_REAL;
|
||||
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||
this.resetTimer();
|
||||
this.setScheduler(targetCount, param.getUserPageId(), requestOperateCode, quitOperateCode);
|
||||
checkResult = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (FormalTestManager.statisticsProtocol && quitOperateCode == SourceOperateCodeEnum.QUIT_INIT_02) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||
}
|
||||
// 断开与设备的连接,但是不要将Socket移除
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, false);
|
||||
|
||||
List<String> adTypes = FormalTestManager.testItemMap.values().stream().collect(Collectors.toList());
|
||||
|
||||
Map<String, Integer> result = detectionDataDealService.devResult(true, FormalTestManager.pairsIdMap.keySet().stream().collect(Collectors.toList()), adTypes, code);
|
||||
// 若有不符合的
|
||||
if (result.values().stream().anyMatch(r -> r.equals(ResultEnum.NOT_QUALIFIED.getValue()))) {
|
||||
// 最终将检测结果推送到前端
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
if (FormalTestManager.nonWaveDataSourceEnum == DataSourceEnum.WAVE_DATA) {
|
||||
if (FormalTestManager.nonWaveDataSourceEnum == DataSourceEnum.REAL_DATA) {
|
||||
webSend.setCode(SourceResponseCodeEnum.REAL_DATA_CHECK_FAIL.getCode());
|
||||
} else {
|
||||
webSend.setCode(SourceResponseCodeEnum.STATISTICS_DATA_CHECK_FAIL.getCode());
|
||||
@@ -1214,6 +1391,9 @@ public class SocketContrastResponseService {
|
||||
// 配对关系入库
|
||||
this.pairDataInsert();
|
||||
|
||||
if (FormalTestManager.isPstData) {
|
||||
webSend.setRequestId(SourceOperateCodeEnum.FLICKER_DATA_CHECK.getValue());
|
||||
}
|
||||
// 最终将检测结果推送到前端
|
||||
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
@@ -1222,11 +1402,15 @@ public class SocketContrastResponseService {
|
||||
pqMonitorService.updateMonitorResult(id1, adTypes, FormalTestManager.nonWaveDataSourceEnum, FormalTestManager.numMap.get(id1), null, code);
|
||||
pqDevService.updateResult(id1.split(CnSocketUtil.SPLIT_TAG)[0], param.getUserId());
|
||||
});
|
||||
FormalTestManager.isTesting = false;
|
||||
}
|
||||
} else {
|
||||
// 配对关系入库
|
||||
this.pairDataInsert();
|
||||
|
||||
if (FormalTestManager.isPstData) {
|
||||
webSend.setRequestId(SourceOperateCodeEnum.FLICKER_DATA_CHECK.getValue());
|
||||
}
|
||||
// 最终将检测结果推送到前端
|
||||
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
@@ -1236,9 +1420,10 @@ public class SocketContrastResponseService {
|
||||
pqDevService.updateResult(id1.split(CnSocketUtil.SPLIT_TAG)[0], param.getUserId());
|
||||
});
|
||||
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
if (FormalTestManager.voltageProtocol) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
}
|
||||
FormalTestManager.isTesting = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1250,24 +1435,36 @@ public class SocketContrastResponseService {
|
||||
break;
|
||||
case DEV_ERROR:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 0));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case DEV_TARGET:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
case RE_OPERATE:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
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_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), quitOperateCode, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
default:
|
||||
WebServiceManager.sendUnknownErrorMessage(param.getUserPageId());
|
||||
@@ -1316,14 +1513,14 @@ 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)) {
|
||||
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));
|
||||
} else {
|
||||
flag.set(true);
|
||||
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
|
||||
webSend.setData(MsgUtil.getPairStr(devMonitorId, stdDevMonitorId, FormalTestManager.devNameMapComm) + " 录波对齐失败!");
|
||||
webSend.setData(MsgUtil.getPairStr(devMonitorId, stdDevMonitorId, FormalTestManager.devNameMapComm) + " 录波数据异常!");
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
}
|
||||
}
|
||||
@@ -1404,6 +1601,7 @@ public class SocketContrastResponseService {
|
||||
} else {
|
||||
// 断开与设备的连接,但是不要将Socket移除
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
FormalTestManager.isTesting = false;
|
||||
|
||||
// 配对关系入库
|
||||
this.pairDataInsert();
|
||||
@@ -1425,11 +1623,12 @@ public class SocketContrastResponseService {
|
||||
}
|
||||
} else {
|
||||
webSend.setCode(SourceResponseCodeEnum.ALL_FAIL.getCode());
|
||||
webSend.setData("录波对齐失败!");
|
||||
webSend.setData("录波数据异常!");
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
|
||||
// 断开与设备的连接,但是不要将Socket移除
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
FormalTestManager.isTesting = false;
|
||||
}
|
||||
|
||||
successComm.clear();
|
||||
@@ -1450,6 +1649,7 @@ public class SocketContrastResponseService {
|
||||
System.out.println("无效的录波指令!");
|
||||
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
|
||||
Collection<String> disjunction = CollectionUtil.disjunction(FormalTestManager.monitorMap.keySet(), successComm);
|
||||
// 向前端推送
|
||||
@@ -1474,6 +1674,7 @@ public class SocketContrastResponseService {
|
||||
case RECORD_WAVE_FAILED:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||
FormalTestManager.isTesting = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1526,7 +1727,10 @@ public class SocketContrastResponseService {
|
||||
if (successComm.size() + failComm.size() == FormalTestManager.monitorMap.size()) {
|
||||
//全部装置返回
|
||||
if (!failComm.isEmpty()) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
FormalTestManager.isTesting = false;
|
||||
WebSocketVO<String> webSocketVO = new WebSocketVO<>();
|
||||
webSocketVO.setRequestId(SourceOperateCodeEnum.ERROR_FLOW_END.getValue());
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||
@@ -1570,6 +1774,10 @@ public class SocketContrastResponseService {
|
||||
if (testCodes.contains(prefixEnum.getCode() + DetectionCodeEnum.I2_50.getCode())) {
|
||||
testCodes.add(prefixEnum.getCode() + DetectionCodeEnum.I1.getCode());
|
||||
}
|
||||
if (testCodes.contains(prefixEnum.getCode() + DetectionCodeEnum.PST.getCode())) {
|
||||
testCodes.remove(prefixEnum.getCode() + DetectionCodeEnum.PST.getCode());
|
||||
testCodes.add(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode());
|
||||
}
|
||||
return testCodes.stream().sorted().collect(Collectors.toList());
|
||||
}
|
||||
|
||||
@@ -1626,6 +1834,9 @@ public class SocketContrastResponseService {
|
||||
* @return
|
||||
*/
|
||||
private long getDelay(int targetCount) {
|
||||
if (FormalTestManager.isPstData) {
|
||||
return 60 * 10;
|
||||
}
|
||||
if (ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
|
||||
if (FormalTestManager.nonWaveDataSourceEnum == DataSourceEnum.REAL_DATA) {
|
||||
return (int) (Math.ceil(targetCount / 5.0) * 60);
|
||||
@@ -1642,6 +1853,9 @@ public class SocketContrastResponseService {
|
||||
* @return
|
||||
*/
|
||||
private Integer getTargetCount() {
|
||||
if (FormalTestManager.isPstData) {
|
||||
return FormalTestManager.curretntTestPlanConfig.getFlicker();
|
||||
}
|
||||
if (ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
|
||||
if (FormalTestManager.nonWaveDataSourceEnum == DataSourceEnum.REAL_DATA) {
|
||||
return FormalTestManager.curretntTestPlanConfig.getRealTime();
|
||||
@@ -1652,6 +1866,46 @@ public class SocketContrastResponseService {
|
||||
return -1;
|
||||
}
|
||||
|
||||
private void setScheduler(int targetCount, String userPageId, SourceOperateCodeEnum requestOperateCode, SourceOperateCodeEnum quitOperateCode) {
|
||||
if (Objects.isNull(FormalTestManager.scheduler)) {
|
||||
SocketDataMsg webSend = new SocketDataMsg();
|
||||
webSend.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue());
|
||||
webSend.setOperateCode(requestOperateCode.getValue());
|
||||
|
||||
FormalTestManager.scheduler = Executors.newScheduledThreadPool(1);
|
||||
long delay = this.getDelay(targetCount);
|
||||
FormalTestManager.scheduledFuture = FormalTestManager.scheduler.schedule(() -> {
|
||||
if (!checkResult) {
|
||||
System.out.println("正式检测-" + delay + "s内收集数据不完整!");
|
||||
// 断开与设备的连接,但是不要将Socket移除
|
||||
if (FormalTestManager.statisticsProtocol && quitOperateCode == SourceOperateCodeEnum.QUIT_INIT_02) {
|
||||
CnSocketUtil.contrastSendquit(userPageId, SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||
}
|
||||
if (FormalTestManager.voltageProtocol) {
|
||||
CnSocketUtil.contrastSendquit(userPageId, SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(userPageId, quitOperateCode, false);
|
||||
FormalTestManager.isTesting = false;
|
||||
|
||||
this.clearData();
|
||||
|
||||
Collection<String> disjunction = CollectionUtil.disjunction(FormalTestManager.pairsIpMap.keySet(), successPair.keySet());
|
||||
// 向前端推送收集数据不完整的配对项
|
||||
for (String key : disjunction) {
|
||||
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
|
||||
webSend.setData(MsgUtil.getPairStr(key, FormalTestManager.pairsIpMap.inverse().get(key), FormalTestManager.devNameMapComm) + " 数据收集不完整!");
|
||||
WebServiceManager.sendMsg(userPageId, JSON.toJSONString(webSend));
|
||||
}
|
||||
// 推送最终失败结果
|
||||
webSend.setCode(SourceResponseCodeEnum.ALL_FAIL.getCode());//最终错误推送
|
||||
WebServiceManager.sendMsg(userPageId, JSON.toJSONString(webSend));
|
||||
}
|
||||
FormalTestManager.scheduler.shutdown();
|
||||
FormalTestManager.scheduler = null;
|
||||
}, delay, TimeUnit.SECONDS);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 实时数据对齐-将数据推送给前端
|
||||
*/
|
||||
@@ -1857,8 +2111,8 @@ public class SocketContrastResponseService {
|
||||
webSend.setRequestId(SourceOperateCodeEnum.YJC_MXYZXJY.getValue());
|
||||
webSend.setData(k);
|
||||
List<String> allTestItem = this.getAllDataType();
|
||||
if (allTestItem.contains(prefixEnum.getCode() + DetectionCodeEnum.PST.getCode())) {
|
||||
allTestItem.remove(prefixEnum.getCode() + DetectionCodeEnum.PST.getCode());
|
||||
if (allTestItem.contains(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode())) {
|
||||
allTestItem.remove(DetectionCodeEnum.AVG_PREFIX.getCode() + DetectionCodeEnum.PST.getCode());
|
||||
}
|
||||
if (DetectionCodeEnum.STAR.getCode().equals(monitorListDTO.getConnection())) {
|
||||
// 移除相关线电压测试项
|
||||
@@ -2185,14 +2439,15 @@ public class SocketContrastResponseService {
|
||||
*/
|
||||
private boolean voltageOrCurrentCheck(Double a, Double b, Double c, Double aStd, Double bStd, Double cStd, boolean isVoltage) {
|
||||
if (isVoltage) {
|
||||
|
||||
return NumberUtil.isIn(BigDecimal.valueOf(a), BigDecimal.valueOf(aStd * 0.99), BigDecimal.valueOf(aStd * 1.01))
|
||||
&& NumberUtil.isIn(BigDecimal.valueOf(b), BigDecimal.valueOf(bStd * 0.99), BigDecimal.valueOf(bStd * 1.01))
|
||||
&& NumberUtil.isIn(BigDecimal.valueOf(c), BigDecimal.valueOf(cStd * 0.99), BigDecimal.valueOf(cStd * 1.01));
|
||||
// return true;
|
||||
} else {
|
||||
return NumberUtil.isIn(BigDecimal.valueOf(a), BigDecimal.valueOf(aStd * 0.90), BigDecimal.valueOf(aStd * 1.10))
|
||||
&& NumberUtil.isIn(BigDecimal.valueOf(b), BigDecimal.valueOf(bStd * 0.90), BigDecimal.valueOf(bStd * 1.10))
|
||||
&& NumberUtil.isIn(BigDecimal.valueOf(c), BigDecimal.valueOf(cStd * 0.90), BigDecimal.valueOf(cStd * 1.10));
|
||||
// return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2206,9 +2461,11 @@ public class SocketContrastResponseService {
|
||||
*/
|
||||
private boolean unbalanceCheck(Double devData, Double stdData, boolean isVoltage) {
|
||||
if (isVoltage) {
|
||||
return NumberUtil.isIn(BigDecimal.valueOf(devData), BigDecimal.valueOf(stdData * 0.95), BigDecimal.valueOf(stdData * 1.05));
|
||||
// return NumberUtil.isIn(BigDecimal.valueOf(devData), BigDecimal.valueOf(stdData * 0.95), BigDecimal.valueOf(stdData * 1.05));
|
||||
return true;
|
||||
} else {
|
||||
return NumberUtil.isIn(BigDecimal.valueOf(devData), BigDecimal.valueOf(stdData * 0.90), BigDecimal.valueOf(stdData * 1.10));
|
||||
// return NumberUtil.isIn(BigDecimal.valueOf(devData), BigDecimal.valueOf(stdData * 0.90), BigDecimal.valueOf(stdData * 1.10));
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -67,6 +67,8 @@ public enum SourceOperateCodeEnum {
|
||||
SERVER_ERROR("server_error","服务端主动关闭连接,请稍后再试"),
|
||||
DEVICE_ERROR("device_error","设备主动关闭连接,请稍后再试"),
|
||||
|
||||
FLICKER_DATA_CHECK("flicker_data_check","闪变数据校验"),
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -43,7 +43,8 @@ public enum SourceResponseCodeEnum {
|
||||
ALL_FAIL(25003,"校验失败"),
|
||||
RECEIVE_DATA_TIME_OUT(25004,"接收数据超时"),
|
||||
REAL_DATA_CHECK_FAIL(25005,"实时数据校验失败"),
|
||||
STATISTICS_DATA_CHECK_FAIL(25006,"统计数据校验失败")
|
||||
STATISTICS_DATA_CHECK_FAIL(25006,"统计数据校验失败"),
|
||||
FLICKER_DATA_START(25007,"开始接收闪变数据")
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1605,13 +1605,13 @@ public class DetectionServiceImpl {
|
||||
|
||||
switch (anEnum) {
|
||||
case FREQ:
|
||||
if (ObjectUtil.isNull(waveNum)) {
|
||||
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);
|
||||
}));
|
||||
}
|
||||
// if (ObjectUtil.isNull(waveNum)) {
|
||||
// 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, dataSourceEnum));
|
||||
break;
|
||||
case VRMS:
|
||||
@@ -1654,7 +1654,7 @@ public class DetectionServiceImpl {
|
||||
resultMap.put(PowerIndexEnum.HSI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, INHARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||
break;
|
||||
case PST:
|
||||
resultMap.put(PowerIndexEnum.PST.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn , DetectionCodeEnum.PST.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum, dataSourceEnum));
|
||||
resultMap.put(PowerIndexEnum.F.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn , DetectionCodeEnum.PST.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum, DataSourceEnum.MINUTE_STATISTICS_AVG));
|
||||
break;
|
||||
case UNKNOWN_ERROR:
|
||||
break;
|
||||
@@ -1852,6 +1852,9 @@ public class DetectionServiceImpl {
|
||||
}
|
||||
|
||||
Map<String, List<Map<Double, List<Double>>>> devMap = devHarmListMap(devDataList, standardDevDataList, fundCode, harmCode, harmonicFlag, dataRule);
|
||||
if (ObjectUtil.isNull(devMap)) {
|
||||
return 4;
|
||||
}
|
||||
ContrastHarmonicResult result = new ContrastHarmonicResult();
|
||||
result.setWaveNum(waveNum);
|
||||
|
||||
@@ -2106,9 +2109,12 @@ public class DetectionServiceImpl {
|
||||
fund2 = first2.get();
|
||||
}
|
||||
|
||||
List<DevData.SqlDataHarmDTO> devHarmList = dev.get(i).getSqlDataHarm().stream().filter(x -> x.getDesc().equals(harmCode)).collect(Collectors.toList());
|
||||
List<DevData.SqlDataHarmDTO> stdDevHarmList = standardDev.get(i).getSqlDataHarm().stream().filter(x -> x.getDesc().equals(harmCode)).collect(Collectors.toList());
|
||||
List<DevData.SqlDataHarmDTO> devHarmList = dev.get(i).getSqlDataHarm().stream().filter(x -> harmCode.equals(x.getDesc())).collect(Collectors.toList());
|
||||
List<DevData.SqlDataHarmDTO> stdDevHarmList = standardDev.get(i).getSqlDataHarm().stream().filter(x -> harmCode.equals(x.getDesc())).collect(Collectors.toList());
|
||||
|
||||
if (CollUtil.isEmpty(devHarmList) || CollUtil.isEmpty(stdDevHarmList)) {
|
||||
return null;
|
||||
}
|
||||
// // 如果角型接法中,不存在线电压谐波电压含有率,则取相电压谐波电压含有率进行计算
|
||||
// if (CollUtil.isEmpty(devHarmList)) {
|
||||
// if (DetectionCodeEnum.PV2_50.getCode().equals(harmCode)) {
|
||||
|
||||
@@ -180,4 +180,19 @@ public class FormalTestManager {
|
||||
|
||||
|
||||
public static boolean isWaveCheck;
|
||||
|
||||
public static List<String> pstDataType;
|
||||
|
||||
public static boolean isPstData;
|
||||
|
||||
/**
|
||||
* 是否在检测中
|
||||
*/
|
||||
public static boolean isTesting;
|
||||
|
||||
public static boolean realProtocol;
|
||||
|
||||
public static boolean statisticsProtocol;
|
||||
|
||||
public static boolean voltageProtocol;
|
||||
}
|
||||
|
||||
@@ -88,20 +88,33 @@ public class NettyContrastClientHandler extends SimpleChannelInboundHandler<Stri
|
||||
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
|
||||
if (evt instanceof IdleStateEvent) { //IdleState.在一段时间内没有收到任何消息时,会触发该事件
|
||||
if (((IdleStateEvent) evt).state() == IdleState.READER_IDLE) {
|
||||
System.out.println(LocalDateTime.now() + "contrastClientHandler触发读超时函数**************************************");
|
||||
if (FormalTestManager.isTesting) {
|
||||
System.out.println(LocalDateTime.now() + "contrastClientHandler触发读超时函数**************************************");
|
||||
|
||||
if (!FormalTestManager.isRemoveSocket && ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
|
||||
long time = SocketManager.contrastClockMap.get(FormalTestManager.nonWaveDataSourceEnum) + 60L;
|
||||
SocketManager.contrastClockMap.put(FormalTestManager.nonWaveDataSourceEnum, time);
|
||||
if (!FormalTestManager.isRemoveSocket && ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
|
||||
long time = SocketManager.contrastClockMap.get(FormalTestManager.nonWaveDataSourceEnum) + 60L;
|
||||
SocketManager.contrastClockMap.put(FormalTestManager.nonWaveDataSourceEnum, time);
|
||||
|
||||
if (DataSourceEnum.REAL_DATA == FormalTestManager.nonWaveDataSourceEnum) {
|
||||
if (time >= 60) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
||||
timeoutSend(SourceOperateCodeEnum.QUIT_INIT_02);
|
||||
if (FormalTestManager.isPstData) {
|
||||
if (time > 60 * 10) {
|
||||
if (DataSourceEnum.REAL_DATA == FormalTestManager.nonWaveDataSourceEnum) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
||||
}
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||
}
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, true);
|
||||
timeoutSend(SourceOperateCodeEnum.QUIT_INIT_01);
|
||||
}
|
||||
} else if (DataSourceEnum.REAL_DATA == FormalTestManager.nonWaveDataSourceEnum) {
|
||||
if (time >= 60) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
||||
timeoutSend(SourceOperateCodeEnum.QUIT_INIT_02);
|
||||
}
|
||||
} else if (time >= FormalTestManager.maxTime) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, true);
|
||||
timeoutSend(SourceOperateCodeEnum.QUIT_INIT_01);
|
||||
}
|
||||
} else if (time >= FormalTestManager.maxTime) {
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, true);
|
||||
timeoutSend(SourceOperateCodeEnum.QUIT_INIT_01);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -380,21 +380,27 @@ public class WebSocketHandler extends SimpleChannelInboundHandler<TextWebSocketF
|
||||
}
|
||||
} else {
|
||||
if (FormalTestManager.currentStep == SourceOperateCodeEnum.RECORD_WAVE_STEP1) {
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
} else if (FormalTestManager.currentStep != SourceOperateCodeEnum.QUITE) {
|
||||
if (ObjectUtil.isNotNull(FormalTestManager.nonWaveDataSourceEnum)) {
|
||||
if (FormalTestManager.nonWaveDataSourceEnum == DataSourceEnum.REAL_DATA) {
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
||||
if (FormalTestManager.statisticsProtocol) {
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||
}
|
||||
} else {
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||
}
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
}
|
||||
} else {
|
||||
if (FormalTestManager.statisticsProtocol) {
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_01, false);
|
||||
}
|
||||
if (FormalTestManager.isWaveCheck) {
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_02, false);
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, true);
|
||||
CnSocketUtil.contrastSendquit(preDetectionParam.getUserPageId(), SourceOperateCodeEnum.QUIT_INIT_03, false);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.gather.detection.pojo.enums.DetectionCodeEnum;
|
||||
import com.njcn.gather.err.mapper.PqErrSysMapper;
|
||||
import com.njcn.gather.err.pojo.param.PqErrSysDtlsParam;
|
||||
import com.njcn.gather.err.pojo.param.PqErrSysParam;
|
||||
@@ -18,6 +19,7 @@ import com.njcn.gather.err.pojo.vo.PqErrSysDtlsVO;
|
||||
import com.njcn.gather.err.service.IPqErrSysDtlsService;
|
||||
import com.njcn.gather.err.service.IPqErrSysService;
|
||||
import com.njcn.gather.pojo.enums.DetectionResponseEnum;
|
||||
import com.njcn.gather.report.pojo.enums.PowerIndexEnum;
|
||||
import com.njcn.gather.system.dictionary.pojo.po.DictData;
|
||||
import com.njcn.gather.system.dictionary.pojo.po.DictTree;
|
||||
import com.njcn.gather.system.dictionary.service.IDictDataService;
|
||||
@@ -219,7 +221,9 @@ public class PqErrSysServiceImpl extends ServiceImpl<PqErrSysMapper, PqErrSys> i
|
||||
List<DictTree> parentDictTreeList = dictTreeService.listByIds(pids);
|
||||
Map<String, String> map = new HashMap<>();
|
||||
parentDictTreeList.forEach(dictTree -> {
|
||||
map.put(dictTree.getId(), dictTree.getName());
|
||||
if(!dictTree.getCode().equals(PowerIndexEnum.VOLTAGE.getKey())&&!dictTree.getCode().equals(PowerIndexEnum.P.getKey())){
|
||||
map.put(dictTree.getId(), dictTree.getName());
|
||||
}
|
||||
});
|
||||
return map;
|
||||
}
|
||||
|
||||
@@ -52,7 +52,7 @@ public class PqMonitorParam {
|
||||
private Integer statInterval;
|
||||
|
||||
@ApiModelProperty(value = "谐波系统监测点id")
|
||||
@NotBlank(message = DetectionValidMessage.MONITOR_ID_NOT_BLANK)
|
||||
// @NotBlank(message = DetectionValidMessage.MONITOR_ID_NOT_BLANK)
|
||||
private String harmSysId;
|
||||
|
||||
@ApiModelProperty(value = "是否做检测")
|
||||
|
||||
@@ -630,7 +630,7 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
||||
|| datasourceId.contains(DataSourceEnum.MINUTE_STATISTICS_MAX.getValue())
|
||||
|| datasourceId.contains(DataSourceEnum.MINUTE_STATISTICS_MIN.getValue())) {
|
||||
String[] split = adPlan.getTestItem().split(StrUtil.COMMA);
|
||||
List<DictTree> dictTreeList = dictTreeService.list(new QueryWrapper<DictTree>().in("id", split).eq("state", DataStateEnum.DELETED.getCode()));
|
||||
List<DictTree> dictTreeList = dictTreeService.list(new QueryWrapper<DictTree>().in("id", split).eq("state", DataStateEnum.DELETED.getCode()).orderByAsc("sort"));
|
||||
|
||||
for (DictTree dictTree : dictTreeList) {
|
||||
Map<String, String> map = new HashMap<>();
|
||||
|
||||
@@ -99,6 +99,8 @@ import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import static com.njcn.gather.plan.pojo.enums.DataSourceEnum.*;
|
||||
|
||||
/**
|
||||
* @author caozehui
|
||||
* @data 2024-12-30
|
||||
@@ -111,6 +113,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
private final IAdPlanService adPlanService;
|
||||
private final IAdPlanTestConfigService adPlanTestConfigService;
|
||||
private final IPqDevService pqDevService;
|
||||
private final IPqStandardDevService pqStandardDevService;
|
||||
private final SimAndDigNonHarmonicService simAndDigNonHarmonicService;
|
||||
private final SimAndDigHarmonicService simAndDigHarmonicService;
|
||||
private final ContrastHarmonicService contrastHarmonicService;
|
||||
@@ -2705,7 +2708,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
if (CollUtil.isNotEmpty(contrastHarmonicResults)) {
|
||||
ContrastHarmonicResult contrastHarmonicResult = contrastHarmonicResults.get(0);
|
||||
List<Double> harmonicNum = null;
|
||||
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
|
||||
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode()) || DicDataEnum.HP.getCode().equals(dictTree.getCode())) {
|
||||
harmonicNum = Stream.iterate(2.0, n -> n + 1).limit(49).collect(Collectors.toList());
|
||||
}
|
||||
if (DicDataEnum.HSV.getCode().equals(dictTree.getCode()) || DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
|
||||
@@ -2789,7 +2792,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
if (CollUtil.isNotEmpty(devHarmonicRawDataList) && CollUtil.isNotEmpty(stdDevHarmonicRawDataList)) {
|
||||
List<Double> harmonicNum = null;
|
||||
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
|
||||
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode()) || DicDataEnum.HP.getCode().equals(dictTree.getCode())) {
|
||||
harmonicNum = Stream.iterate(2.0, n -> n + 1).limit(49).collect(Collectors.toList());
|
||||
}
|
||||
if (DicDataEnum.HSV.getCode().equals(dictTree.getCode()) || DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
|
||||
@@ -3043,18 +3046,19 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
DataSourceEnum nonWaveDataSourceEnum = DataSourceEnum.REAL_DATA;
|
||||
for (String ds : dataSourceIds) {
|
||||
switch (DataSourceEnum.valueOf(ds)) {
|
||||
DataSourceEnum dataSourceEnum = DataSourceEnum.ofByValue(ds);
|
||||
switch (dataSourceEnum) {
|
||||
case MINUTE_STATISTICS_MIN:
|
||||
nonWaveDataSourceEnum = DataSourceEnum.MINUTE_STATISTICS_MIN;
|
||||
nonWaveDataSourceEnum = MINUTE_STATISTICS_MIN;
|
||||
break;
|
||||
case MINUTE_STATISTICS_MAX:
|
||||
nonWaveDataSourceEnum = DataSourceEnum.MINUTE_STATISTICS_MAX;
|
||||
nonWaveDataSourceEnum = MINUTE_STATISTICS_MAX;
|
||||
break;
|
||||
case MINUTE_STATISTICS_AVG:
|
||||
nonWaveDataSourceEnum = DataSourceEnum.MINUTE_STATISTICS_AVG;
|
||||
break;
|
||||
case MINUTE_STATISTICS_CP95:
|
||||
nonWaveDataSourceEnum = DataSourceEnum.MINUTE_STATISTICS_CP95;
|
||||
nonWaveDataSourceEnum = MINUTE_STATISTICS_CP95;
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -3107,6 +3111,7 @@ public class ResultServiceImpl implements IResultService {
|
||||
parsId.put(dev.getId() + CnSocketUtil.SPLIT_TAG + split1[1], standardDev.getId() + CnSocketUtil.SPLIT_TAG + split2[1]);
|
||||
numMap.put(devMonitorId, num);
|
||||
numMap.put(adPair.getStdDevMonitorId(), num);
|
||||
devIdMapComm.put(standardDev.getIp(), standardDev.getId());
|
||||
});
|
||||
|
||||
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, null, false, 0, deviceId, null);
|
||||
@@ -3114,8 +3119,8 @@ public class ResultServiceImpl implements IResultService {
|
||||
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, 0, deviceId, null);
|
||||
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, null, false, 1, deviceId, null);
|
||||
|
||||
List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
|
||||
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
|
||||
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);
|
||||
|
||||
@@ -3132,8 +3137,8 @@ public class ResultServiceImpl implements IResultService {
|
||||
devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, 0, deviceId, null);
|
||||
stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, 1, deviceId, null);
|
||||
|
||||
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
|
||||
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
|
||||
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap, 0);
|
||||
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap, 1);
|
||||
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, oldCode, i, DataSourceEnum.WAVE_DATA);
|
||||
}
|
||||
|
||||
@@ -3230,58 +3235,79 @@ public class ResultServiceImpl implements IResultService {
|
||||
return info;
|
||||
}
|
||||
|
||||
private List<DevData> contrastToList(List<ContrastNonHarmonicResult> nonHarm, List<ContrastHarmonicResult> harm, BiMap<String, String> testItemMap) {
|
||||
private List<DevData> contrastToList(List<ContrastNonHarmonicResult> nonHarm, List<ContrastHarmonicResult> harm, BiMap<String, String> testItemMap, Integer flag) {
|
||||
List<DevData> info = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(nonHarm)) {
|
||||
Map<String, List<ContrastNonHarmonicResult>> devMonitorIdMap = nonHarm.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getDevMonitorId, Collectors.toList()));
|
||||
devMonitorIdMap.forEach((devMonitorId, value) -> {
|
||||
|
||||
Map<String, List<ContrastNonHarmonicResult>> devMonitorIdMap1 = null;
|
||||
if (flag == 0) {
|
||||
devMonitorIdMap1 = nonHarm.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getDevMonitorId, Collectors.toList()));
|
||||
} else {
|
||||
devMonitorIdMap1 = nonHarm.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getStdDevMonitorId, Collectors.toList()));
|
||||
}
|
||||
devMonitorIdMap1.forEach((devMonitorId, value) -> {
|
||||
Map<LocalDateTime, List<ContrastNonHarmonicResult>> timeListMap = value.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getTimeId, Collectors.toList()));
|
||||
timeListMap.forEach((time, value1) -> {
|
||||
DevData devData = new DevData();
|
||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||
PqDev dev = pqDevService.getById(split[0]);
|
||||
devData.setId(dev.getIp() + CnSocketUtil.SPLIT_TAG + split[1]);
|
||||
Map<LocalDateTime, List<ContrastNonHarmonicResult>> timeListMap = value.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getTimeId, Collectors.toList()));
|
||||
timeListMap.forEach((time, value1) -> {
|
||||
List<DevData.SqlDataDTO> sqlData = new ArrayList<>();
|
||||
devData.setTime(time.format(DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN)));
|
||||
if (flag == 0) {
|
||||
PqDev dev = pqDevService.getById(split[0]);
|
||||
devData.setId(dev.getIp() + CnSocketUtil.SPLIT_TAG + split[1]);
|
||||
} else {
|
||||
PqStandardDev standardDev = pqStandardDevService.getById(split[0]);
|
||||
devData.setId(standardDev.getIp() + CnSocketUtil.SPLIT_TAG + split[1]);
|
||||
}
|
||||
devData.setTime(time.format(DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN)));
|
||||
List<DevData.SqlDataDTO> sqlData = new ArrayList<>();
|
||||
|
||||
value1.forEach(x -> {
|
||||
DevData.SqlDataDTO sqlDataDTO = new DevData.SqlDataDTO();
|
||||
DevData.SqlDataDTO.ListDTO listDTO = new DevData.SqlDataDTO.ListDTO();
|
||||
listDTO.setA(StrUtil.isNotBlank(x.getAValue()) ? Double.valueOf(x.getAValue()) : null);
|
||||
listDTO.setB(StrUtil.isNotBlank(x.getBValue()) ? Double.valueOf(x.getBValue()) : null);
|
||||
listDTO.setC(StrUtil.isNotBlank(x.getCValue()) ? Double.valueOf(x.getCValue()) : null);
|
||||
listDTO.setT(StrUtil.isNotBlank(x.getTValue()) ? Double.valueOf(x.getTValue()) : null);
|
||||
sqlDataDTO.setType(x.getDataType());
|
||||
sqlDataDTO.setDesc(testItemMap.inverse().get(x.getAdType()).replace(DetectionCodeEnum.REAL_PREFIX.getCode(), ""));
|
||||
sqlDataDTO.setList(listDTO);
|
||||
sqlData.add(sqlDataDTO);
|
||||
});
|
||||
devData.setSqlData(sqlData);
|
||||
value1.forEach(x -> {
|
||||
DevData.SqlDataDTO sqlDataDTO = new DevData.SqlDataDTO();
|
||||
DevData.SqlDataDTO.ListDTO listDTO = new DevData.SqlDataDTO.ListDTO();
|
||||
listDTO.setA(StrUtil.isNotBlank(x.getAValue()) ? Double.valueOf(x.getAValue()) : null);
|
||||
listDTO.setB(StrUtil.isNotBlank(x.getBValue()) ? Double.valueOf(x.getBValue()) : null);
|
||||
listDTO.setC(StrUtil.isNotBlank(x.getCValue()) ? Double.valueOf(x.getCValue()) : null);
|
||||
listDTO.setT(StrUtil.isNotBlank(x.getTValue()) ? Double.valueOf(x.getTValue()) : null);
|
||||
sqlDataDTO.setType(x.getDataType());
|
||||
sqlDataDTO.setDesc(testItemMap.inverse().get(x.getAdType()).replace(DetectionCodeEnum.REAL_PREFIX.getCode(), ""));
|
||||
sqlDataDTO.setList(listDTO);
|
||||
sqlData.add(sqlDataDTO);
|
||||
});
|
||||
devData.setSqlData(sqlData);
|
||||
info.add(devData);
|
||||
});
|
||||
});
|
||||
|
||||
Map<String, List<ContrastHarmonicResult>> devMonitorIdMap2 = null;
|
||||
if (flag == 0) {
|
||||
devMonitorIdMap2 = harm.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getDevMonitorId, Collectors.toList()));
|
||||
} else {
|
||||
devMonitorIdMap2 = harm.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getStdDevMonitorId, Collectors.toList()));
|
||||
}
|
||||
if (CollUtil.isNotEmpty(harm)) {
|
||||
Map<String, List<ContrastHarmonicResult>> devMonitorIdMap = harm.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getDevMonitorId, Collectors.toList()));
|
||||
devMonitorIdMap.forEach((devMonitorId, value) -> {
|
||||
DevData devData = new DevData();
|
||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||
PqDev dev = pqDevService.getById(split[0]);
|
||||
devData.setId(dev.getIp() + CnSocketUtil.SPLIT_TAG + split[1]);
|
||||
Map<LocalDateTime, List<ContrastHarmonicResult>> timeListMap = value.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getTimeId, Collectors.toList()));
|
||||
|
||||
timeListMap.forEach((time, value1) -> {
|
||||
devMonitorIdMap2.forEach((devMonitorId, value) -> {
|
||||
Map<LocalDateTime, List<ContrastHarmonicResult>> timeListMap = value.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getTimeId, Collectors.toList()));
|
||||
|
||||
timeListMap.forEach((time, value1) -> {
|
||||
DevData devData = info.stream().filter(x -> x.getTime().equals(time.format(DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN)))).findFirst().orElse(null);
|
||||
if (ObjectUtil.isNotNull(devData)) {
|
||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||
if (flag == 0) {
|
||||
PqDev dev = pqDevService.getById(split[0]);
|
||||
devData.setId(dev.getIp() + CnSocketUtil.SPLIT_TAG + split[1]);
|
||||
} else {
|
||||
PqStandardDev standardDev = pqStandardDevService.getById(split[0]);
|
||||
devData.setId(standardDev.getIp() + CnSocketUtil.SPLIT_TAG + split[1]);
|
||||
}
|
||||
|
||||
devData.setTime(time.format(DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN)));
|
||||
List<DevData.SqlDataDTO> sqlData = new ArrayList<>();
|
||||
List<DevData.SqlDataDTO> sqlData = devData.getSqlData();
|
||||
List<DevData.SqlDataHarmDTO> sqlDataHarm = new ArrayList<>();
|
||||
|
||||
value1.forEach(x -> {
|
||||
DevData.SqlDataHarmDTO dataHarmDTO = new DevData.SqlDataHarmDTO();
|
||||
dataHarmDTO.setType(x.getDataType());
|
||||
String desc = testItemMap.inverse().get(x.getAdType()).replace(DetectionCodeEnum.REAL_PREFIX.getCode(), "");
|
||||
dataHarmDTO.setDesc(desc);
|
||||
boolean notContainBaseHarm = false;
|
||||
if (DetectionCodeEnum.V2_50.getCode().equals(desc) || DetectionCodeEnum.PV2_50.getCode().equals(desc) || DetectionCodeEnum.I2_50.getCode().equals(desc)) {
|
||||
if (DetectionCodeEnum.V2_50.getCode().equals(desc) || DetectionCodeEnum.PV2_50.getCode().equals(desc) || DetectionCodeEnum.I2_50.getCode().equals(desc) || DetectionCodeEnum.P2_50.getCode().equals(desc)) {
|
||||
dataHarmDTO.setNum(49);
|
||||
notContainBaseHarm = true;
|
||||
}
|
||||
@@ -3316,12 +3342,13 @@ public class ResultServiceImpl implements IResultService {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
devData.setSqlDataHarm(sqlDataHarm);
|
||||
devData.setSqlData(sqlData);
|
||||
});
|
||||
info.add(devData);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
|
||||
@@ -6,12 +6,12 @@ spring:
|
||||
datasource:
|
||||
druid:
|
||||
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||
# url: jdbc:mysql://192.168.1.24:13306/pqs9100?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
|
||||
# username: root
|
||||
# password: njcnpqs
|
||||
url: jdbc:mysql://localhost:13306/pqs9100member?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
|
||||
url: jdbc:mysql://192.168.1.24:13306/pqs9100_client1?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true
|
||||
username: root
|
||||
password: njcnpqs
|
||||
# url: jdbc:mysql://localhost:3306/pqs91001?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=CTT
|
||||
# username: root
|
||||
# password: root
|
||||
#初始化建立物理连接的个数、最小、最大连接数
|
||||
initial-size: 5
|
||||
min-idle: 5
|
||||
@@ -118,3 +118,7 @@ power-quality:
|
||||
harmonic-times: 50 # 谐波次数
|
||||
ib-add: false # 电流基波叠加标志
|
||||
uharm-add: false # 电压谐波叠加标志
|
||||
# 激活配置
|
||||
activate:
|
||||
private-key: "MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCcUyYhVqczGxblL+o/xZzF/8nf+LjrfUE/dS1aRHM7uMDD0cgCArhjtfneFePrMxt+Z7W8yNBzSarub8qsfhaVNikV7Es7oaeTygfjQXTi2n4AFkir3fM07J08RpWhl5M8f8uWTCuvFUYAw00gq55typqmnbkmJa2VIUy/iQf+cMCP7abz4/jNhUzUR3qA7TV4oMRgTdIEDUp63YF8dOC+JH8XxYrCVeHXV6fLCwmesdMzl0lB2VTEKMfLbXhOmF5g7P9y/16VCcN8UBuZlbyYfn+GAxJOSbeHi5HshOKfoSuD7Jz+3WQZpNavOWjIFExKIU38/CvnJCOP7XBCqpSTAgMBAAECggEAYeWokWRE3TpvwiOZnUpR/aVMdVi75a3ROL5XIpqPV61B+t/bU3cEpl0GF9C5pUeiRi0IoStZb3mI9D1KPW/REKyUWkhabQO1gFYbTnRlkNOn6MILzKX4cwJjDaZeeo4EBPU7N+qHyOOXrU6hdH5FfxhMdV983ajm5eeuupxER1C2kAcIklTeVpTX6EKOgZb5LBp5ssOVm2P42pOauvcRozRcvZmqnErXmukv0H4l3EVNt4rHpTn9riHUC63e8JfiYzVaF6zuNUxv6nHEft0/SRMw11XSTnNfDzcKqgjz6ksFBS/6eQQYKESk+ONC53HUuYHFAknkwsPupDCT2W8FIQKBgQDLHT/xCU3nxGr4vFKBDNaO2D5oK20ECbBO4oDvLWWmQG7f+6TsMy8PgVdMnoL4RfqGlwFAKEpS6KVFHnBVqnNEhcdy9uCI7x7Xx8UnyUtxj1EDTm76uta9Ki9OrlqB6tImDM9+Ya3vGktW37ht4WOx2OsJRhG1dbf6RLwFlH7DWwKBgQDFBxvi5I1BR6hg6Tj7xd2SqOT2Y+BED3xuSYENhWbmMhLJDResaB7mjztbxlYaY2mOE0holWm2uDmVFFhMh4jYXik4hYH8nmDzq9mDpZCZ9pyjYqnAP8THoAa8EbgrUWB8A6BPH4iL3KbMnBfBKY0pIr2xrvnjQjNBAgta7KDRKQKBgCe6oe4wxrdF2TKsC2tIqpMoQxS3Icy/ZGgZr+SYuaBKTCWtoDW/UT40K3JGMxIDBhzbXphBCUCsVt9tM8Xd4EwP6tJW7dZ7B0pnve2pVwNwaAVAiz6p2yUHIle+jN+Koe5lZRSwYIg7WW81tWpwwsJfzqFyvjYDP6hJV4mz4ROvAoGAaRcdnKvjXApomShMqJ4lTPChD3q+SA8qg3jZSOj6tZXHx00gb2kp8jg7pPvpOTIFPy6x1Ha9aCRjMk0ju84fA6lVuzwa1S907wOehUVuF3Eeo1cgy9Y3k3KbpPyeixxgpkUY4JslLdSHc2NemD0dee951qhJyRmqVOZOQDUuoeECgYEAqBw2cAFk3vM97WY06TSldGA8ajVHx3BYRjj+zl62NTQthy8fw3tqxb3c5e8toOmZWKjZvDhg2TRLhsDDQWEYg3LZG87REqVIjgEPcpjNLidjygGX8n3JF2o0O5I/EMvl0s/+LVQONfduOBvhwDqr8QNisbLsyneiAq7umewMolo="
|
||||
public-key: "MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnFMmIVanMxsW5S/qP8Wcxf/J3/i4631BP3UtWkRzO7jAw9HIAgK4Y7X53hXj6zMbfme1vMjQc0mq7m/KrH4WlTYpFexLO6Gnk8oH40F04tp+ABZIq93zNOydPEaVoZeTPH/LlkwrrxVGAMNNIKuebcqapp25JiWtlSFMv4kH/nDAj+2m8+P4zYVM1Ed6gO01eKDEYE3SBA1Ket2BfHTgviR/F8WKwlXh11enywsJnrHTM5dJQdlUxCjHy214TpheYOz/cv9elQnDfFAbmZW8mH5/hgMSTkm3h4uR7ITin6Erg+yc/t1kGaTWrzloyBRMSiFN/Pwr5yQjj+1wQqqUkwIDAQAB"
|
||||
50
tools/activate-tool/pom.xml
Normal file
50
tools/activate-tool/pom.xml
Normal file
@@ -0,0 +1,50 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.njcn.gather</groupId>
|
||||
<artifactId>CN_Gather</artifactId>
|
||||
<version>1.0.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>activate-tool</artifactId>
|
||||
|
||||
<properties>
|
||||
<maven.compiler.source>8</maven.compiler.source>
|
||||
<maven.compiler.target>8</maven.compiler.target>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>njcn-common</artifactId>
|
||||
<version>0.0.1</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.njcn</groupId>
|
||||
<artifactId>spingboot2.3.12</artifactId>
|
||||
<version>2.3.12</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<configuration>
|
||||
<excludes>
|
||||
<exclude>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok</artifactId>
|
||||
</exclude>
|
||||
</excludes>
|
||||
</configuration>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.njcn.gather.tool.active.config;
|
||||
|
||||
import cn.hutool.system.SystemUtil;
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
|
||||
import java.io.File;
|
||||
|
||||
@Data
|
||||
@ConfigurationProperties(prefix = "activate")
|
||||
public class ActivateProperties {
|
||||
private final String LICENSE_FILE_NAME = "license.key";
|
||||
|
||||
/**
|
||||
* RSA公钥
|
||||
*/
|
||||
private String publicKey;
|
||||
/**
|
||||
* RSA私钥
|
||||
*/
|
||||
private String privateKey;
|
||||
|
||||
/**
|
||||
* 密钥文件所在目录,默认为当前项目目录
|
||||
*/
|
||||
private String licenseDir = System.getProperty(SystemUtil.USER_DIR);
|
||||
|
||||
public String getLicenseFilePath() {
|
||||
return licenseDir + File.separator + LICENSE_FILE_NAME;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,110 @@
|
||||
package com.njcn.gather.tool.active.controller;
|
||||
|
||||
import cn.hutool.core.net.NetUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||
import com.njcn.common.pojo.enums.common.LogEnum;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.response.HttpResult;
|
||||
import com.njcn.common.utils.LogUtil;
|
||||
import com.njcn.gather.tool.active.service.ActivateService;
|
||||
import com.njcn.gather.tool.active.vo.ActivationCodePlaintext;
|
||||
import com.njcn.gather.tool.active.vo.ApplicationCodePlaintext;
|
||||
import com.njcn.web.controller.BaseController;
|
||||
import com.njcn.web.utils.HttpResultUtil;
|
||||
import io.swagger.annotations.*;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@Slf4j
|
||||
@Api(tags = "设备激活管理")
|
||||
@RestController
|
||||
@RequestMapping("/activate")
|
||||
@RequiredArgsConstructor
|
||||
public class ActivateController extends BaseController {
|
||||
|
||||
private final ActivateService activateService;
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("生成设备申请码")
|
||||
@ApiImplicitParam(name = "data", value = "生成设备申请码参数", required = true)
|
||||
@PostMapping("/generateApplicationCode")
|
||||
public HttpResult generateApplicationCode(@RequestBody ApplicationCodePlaintext data) {
|
||||
String methodDescribe = getMethodDescribe("generateApplicationCode");
|
||||
LogUtil.njcnDebug(log, "{},生成设备申请码:{}", methodDescribe, JSONUtil.toJsonStr(data));
|
||||
String applicationCode = activateService.generateApplicationCode(data);
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, applicationCode, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("验证设备激活码")
|
||||
@ApiImplicitParam(name = "params", value = "验证设备激活码参数", required = true)
|
||||
@PostMapping("/verifyActivationCode")
|
||||
public HttpResult verifyActivationCode(@RequestBody VerifyActivationCodeParams params) {
|
||||
String methodDescribe = getMethodDescribe("verifyActivationCode");
|
||||
LogUtil.njcnDebug(log, "{},验证设备激活码\":{}", methodDescribe, JSONUtil.toJsonStr(params));
|
||||
ActivationCodePlaintext activationCodePlaintext = activateService.verifyActivationCode(params.getActivationCode());
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, activationCodePlaintext, methodDescribe);
|
||||
}
|
||||
|
||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||
@ApiOperation("获取许可信息")
|
||||
@PostMapping("/getLicense")
|
||||
public HttpResult getLicense() {
|
||||
String methodDescribe = getMethodDescribe("checkLicense");
|
||||
LogUtil.njcnDebug(log, "{},获取许可信息", methodDescribe);
|
||||
ActivationCodePlaintext activationCodePlaintext = activateService.readLicenseFile();
|
||||
String macAddress = NetUtil.getLocalMacAddress();
|
||||
if (activationCodePlaintext == null) {
|
||||
activationCodePlaintext = new ActivationCodePlaintext();
|
||||
activationCodePlaintext.setMacAddress(macAddress);
|
||||
activationCodePlaintext.init();
|
||||
} else {
|
||||
// 校验mac地址
|
||||
String licenseMacAddress = activationCodePlaintext.getMacAddress();
|
||||
if (StrUtil.isNotEmpty(licenseMacAddress)) {
|
||||
if (!StrUtil.equals(licenseMacAddress, macAddress)) {
|
||||
log.error("mac地址不匹配,无效的许可文件,本机mac:{},许可mac:{}", macAddress, licenseMacAddress);
|
||||
methodDescribe = "mac地址不匹配,无效的许可文件";
|
||||
activationCodePlaintext = new ActivationCodePlaintext();
|
||||
activationCodePlaintext.setMacAddress(macAddress);
|
||||
activationCodePlaintext.init();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, activationCodePlaintext, methodDescribe);
|
||||
}
|
||||
|
||||
@ApiModel("验证设备激活码参数")
|
||||
@Data
|
||||
public static class VerifyActivationCodeParams {
|
||||
@ApiModelProperty(value = "激活码")
|
||||
private String activationCode;
|
||||
}
|
||||
|
||||
|
||||
@ApiOperation("生成设备激活码")
|
||||
@ApiImplicitParam(name = "params", value = "参数", required = true, dataType = "ApplicationCodeParams")
|
||||
@PostMapping("/generateActivationCode")
|
||||
public HttpResult generateActivationCode(@RequestBody ApplicationCodeParams params) {
|
||||
String activationCode = activateService.generateActivationCode(params.getApplicationCode(), params.getPermanently());
|
||||
return HttpResultUtil.assembleResult(CommonResponseEnum.SUCCESS.getCode(), activationCode, "");
|
||||
}
|
||||
|
||||
@ApiModel("生成设备激活码参数")
|
||||
@Data
|
||||
public static class ApplicationCodeParams {
|
||||
@ApiModelProperty(value = "设备申请码", required = true)
|
||||
private String applicationCode;
|
||||
@ApiModelProperty(value = "是否永久激活", example = "1", required = true)
|
||||
private int permanently;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.njcn.gather.tool.active.service;
|
||||
|
||||
import com.njcn.gather.tool.active.vo.ActivationCodePlaintext;
|
||||
import com.njcn.gather.tool.active.vo.ApplicationCodePlaintext;
|
||||
|
||||
public interface ActivateService {
|
||||
|
||||
|
||||
/**
|
||||
* 生成设备申请码
|
||||
*
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
String generateApplicationCode(ApplicationCodePlaintext data);
|
||||
|
||||
/**
|
||||
* 验证激活码
|
||||
*
|
||||
* @param activationCode
|
||||
* @return
|
||||
*/
|
||||
ActivationCodePlaintext verifyActivationCode(String activationCode);
|
||||
|
||||
/**
|
||||
* 读取授权文件
|
||||
*
|
||||
* @return
|
||||
*/
|
||||
ActivationCodePlaintext readLicenseFile();
|
||||
|
||||
/**
|
||||
* 生成设备激活码
|
||||
*
|
||||
* @param applicationCode 申请码
|
||||
* @param permanently 是否永久激活
|
||||
* @return
|
||||
*/
|
||||
String generateActivationCode(String applicationCode, int permanently);
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,185 @@
|
||||
package com.njcn.gather.tool.active.service.impl;
|
||||
|
||||
import cn.hutool.core.io.FileUtil;
|
||||
import cn.hutool.core.net.NetUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.utils.RSAUtil;
|
||||
import com.njcn.gather.tool.active.config.ActivateProperties;
|
||||
import com.njcn.gather.tool.active.service.ActivateService;
|
||||
import com.njcn.gather.tool.active.vo.ActivationCodePlaintext;
|
||||
import com.njcn.gather.tool.active.vo.ActivationModule;
|
||||
import com.njcn.gather.tool.active.vo.ApplicationCodePlaintext;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@EnableConfigurationProperties(ActivateProperties.class)
|
||||
@RequiredArgsConstructor
|
||||
@Slf4j
|
||||
@Service
|
||||
public class ActivateServiceImpl implements ActivateService {
|
||||
|
||||
private final ActivateProperties props;
|
||||
|
||||
@Override
|
||||
public String generateApplicationCode(ApplicationCodePlaintext data) {
|
||||
// 获取当前设备MAC地址
|
||||
String macAddress = NetUtil.getLocalMacAddress();
|
||||
log.debug("当前设备MAC地址:{}", macAddress);
|
||||
data.setMacAddress(macAddress);
|
||||
String plaintext = JSONUtil.toJsonStr(data);
|
||||
// RSA 加密
|
||||
try {
|
||||
return RSAUtil.encrypt(plaintext, RSAUtil.stringToPublicKey(props.getPublicKey()));
|
||||
} catch (Exception e) {
|
||||
log.error("申请码加密失败", e);
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "申请码生成失败");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActivationCodePlaintext verifyActivationCode(String activationCode) {
|
||||
String plaintext;
|
||||
try {
|
||||
plaintext = RSAUtil.decrypt(activationCode, RSAUtil.stringToPrivateKey(props.getPrivateKey()));
|
||||
} catch (Exception e) {
|
||||
log.error("授权码解密失败", e);
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "无效的激活码");
|
||||
}
|
||||
log.info("新授权码解密:{}", JSONUtil.toJsonStr(plaintext));
|
||||
ActivationCodePlaintext activationCodePlaintext = JSONUtil.toBean(plaintext, ActivationCodePlaintext.class);
|
||||
String macAddress = NetUtil.getLocalMacAddress();
|
||||
if (!StrUtil.equals(activationCodePlaintext.getMacAddress(), macAddress)) {
|
||||
log.error("mac地址不匹配");
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "无效的激活码");
|
||||
}
|
||||
return addOrUpdateLicenseFile(activationCodePlaintext, activationCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public ActivationCodePlaintext readLicenseFile() {
|
||||
String licenseFilePath = props.getLicenseFilePath();
|
||||
log.info("读取授权文件,{}", licenseFilePath);
|
||||
if (FileUtil.exist(licenseFilePath)) {
|
||||
String content = FileUtil.readUtf8String(licenseFilePath);
|
||||
String plaintext;
|
||||
try {
|
||||
plaintext = RSAUtil.decrypt(content, RSAUtil.stringToPrivateKey(props.getPrivateKey()));
|
||||
} catch (Exception e) {
|
||||
log.error("授权文件内容解密失败", e);
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "许可信息读取失败");
|
||||
}
|
||||
return JSONUtil.toBean(plaintext, ActivationCodePlaintext.class);
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String generateActivationCode(String applicationCode, int permanently) {
|
||||
// RSA 解密
|
||||
String plaintext;
|
||||
try {
|
||||
plaintext = RSAUtil.decrypt(applicationCode, RSAUtil.stringToPrivateKey(props.getPrivateKey()));
|
||||
} catch (Exception e) {
|
||||
log.error("申请码解密失败", e);
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "无效的申请码");
|
||||
}
|
||||
ActivationCodePlaintext activationCodePlaintext = JSONUtil.toBean(plaintext, ActivationCodePlaintext.class);
|
||||
if (activationCodePlaintext == null) {
|
||||
log.error("申请码内容为空");
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "无效的申请码");
|
||||
}
|
||||
// 激活码明文
|
||||
ActivationModule contrast = activationCodePlaintext.getContrast();
|
||||
ActivationModule simulate = activationCodePlaintext.getSimulate();
|
||||
ActivationModule digital = activationCodePlaintext.getDigital();
|
||||
if (contrast.isApply()) {
|
||||
contrast.setPermanently(permanently);
|
||||
activationCodePlaintext.setContrast(contrast);
|
||||
}
|
||||
if (simulate.isApply()) {
|
||||
simulate.setPermanently(permanently);
|
||||
activationCodePlaintext.setSimulate(simulate);
|
||||
}
|
||||
if (digital.isApply()) {
|
||||
digital.setPermanently(permanently);
|
||||
activationCodePlaintext.setDigital(digital);
|
||||
}
|
||||
// RSA 加密
|
||||
String jsonStr = JSONUtil.toJsonStr(activationCodePlaintext);
|
||||
log.info("生成激活码明文:{}", jsonStr);
|
||||
try {
|
||||
return RSAUtil.encrypt(jsonStr, RSAUtil.stringToPublicKey(props.getPublicKey()));
|
||||
} catch (Exception e) {
|
||||
log.error("生成激活码失败", e);
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "生成激活码失败");
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加或更新授权文件
|
||||
*
|
||||
* @param newActivationCodePlaintext 新授权码明文
|
||||
* @param activationCode 授权码
|
||||
* @return 最新授权码明文
|
||||
*/
|
||||
private ActivationCodePlaintext addOrUpdateLicenseFile(ActivationCodePlaintext newActivationCodePlaintext, String activationCode) {
|
||||
|
||||
log.info("新授权码明文:{}", JSONUtil.toJsonStr(newActivationCodePlaintext));
|
||||
ActivationModule newContrast = newActivationCodePlaintext.getContrast();
|
||||
ActivationModule newDigital = newActivationCodePlaintext.getDigital();
|
||||
ActivationModule newSimulate = newActivationCodePlaintext.getSimulate();
|
||||
boolean verifyStatus = false;
|
||||
if (newContrast.isApply() && newContrast.isPermanently()) {
|
||||
verifyStatus = true;
|
||||
}
|
||||
if (newDigital.isApply() && newDigital.isPermanently()) {
|
||||
verifyStatus = true;
|
||||
}
|
||||
if (newSimulate.isApply() && newSimulate.isPermanently()) {
|
||||
verifyStatus = true;
|
||||
}
|
||||
if (!verifyStatus) {
|
||||
log.error("授权码格式错误");
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "无效的激活码");
|
||||
}
|
||||
String licenseFilePath = props.getLicenseFilePath();
|
||||
log.info("授权文件路径:{}", licenseFilePath);
|
||||
ActivationCodePlaintext oldActivationCodePlaintext = this.readLicenseFile();
|
||||
if (oldActivationCodePlaintext == null) {
|
||||
// 如果文件不存在,创建新文件
|
||||
FileUtil.touch(licenseFilePath);
|
||||
// 写入授权文件
|
||||
FileUtil.writeUtf8String(activationCode, licenseFilePath);
|
||||
return newActivationCodePlaintext;
|
||||
} else {
|
||||
log.info("旧授权码明文:{}", JSONUtil.toJsonStr(oldActivationCodePlaintext));
|
||||
oldActivationCodePlaintext.setMacAddress(newActivationCodePlaintext.getMacAddress());
|
||||
if (newContrast.isApply()) {
|
||||
oldActivationCodePlaintext.setContrast(newContrast);
|
||||
}
|
||||
if (newDigital.isApply()) {
|
||||
oldActivationCodePlaintext.setDigital(newDigital);
|
||||
}
|
||||
if (newSimulate.isApply()) {
|
||||
oldActivationCodePlaintext.setSimulate(newSimulate);
|
||||
}
|
||||
log.info("最新授权码明文:{}", JSONUtil.toJsonStr(oldActivationCodePlaintext));
|
||||
String updateContent;
|
||||
// 重新加密
|
||||
try {
|
||||
updateContent = RSAUtil.encrypt(JSONUtil.toJsonStr(oldActivationCodePlaintext), RSAUtil.stringToPublicKey(props.getPublicKey()));
|
||||
} catch (Exception e) {
|
||||
log.error("授权文件内容加密失败", e);
|
||||
throw new BusinessException(CommonResponseEnum.FAIL, "激活失败,请联系管理员");
|
||||
}
|
||||
FileUtil.writeUtf8String(updateContent, licenseFilePath);
|
||||
return oldActivationCodePlaintext;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.njcn.gather.tool.active.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ActivationCodePlaintext {
|
||||
/**
|
||||
* mac地址
|
||||
*/
|
||||
private String macAddress;
|
||||
|
||||
/**
|
||||
* 模拟式模块
|
||||
*/
|
||||
private ActivationModule simulate;
|
||||
|
||||
/**
|
||||
* 数字式模块
|
||||
*/
|
||||
private ActivationModule digital;
|
||||
|
||||
/**
|
||||
* 比对式模块
|
||||
*/
|
||||
private ActivationModule contrast;
|
||||
|
||||
|
||||
public void init() {
|
||||
simulate = new ActivationModule();
|
||||
digital = new ActivationModule();
|
||||
contrast = new ActivationModule();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.njcn.gather.tool.active.vo;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Data
|
||||
public class ActivationModule extends ApplicationModule {
|
||||
|
||||
/**
|
||||
* 是否永久授权
|
||||
*/
|
||||
private int permanently;
|
||||
|
||||
public boolean isPermanently() {
|
||||
return permanently == 1;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.njcn.gather.tool.active.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@ApiModel("申请码明文")
|
||||
@Data
|
||||
public class ApplicationCodePlaintext {
|
||||
/**
|
||||
* mac地址
|
||||
*/
|
||||
@ApiModelProperty(value = "mac地址", hidden = true)
|
||||
private String macAddress;
|
||||
|
||||
/**
|
||||
* 模拟式模块
|
||||
*/
|
||||
@ApiModelProperty("模拟式模块")
|
||||
private ApplicationModule simulate;
|
||||
|
||||
/**
|
||||
* 数字式模块
|
||||
*/
|
||||
@ApiModelProperty("数字式模块")
|
||||
private ApplicationModule digital;
|
||||
|
||||
/**
|
||||
* 比对式模块
|
||||
*/
|
||||
@ApiModelProperty("比对式模块")
|
||||
private ApplicationModule contrast;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
package com.njcn.gather.tool.active.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
@Data
|
||||
public class ApplicationModule {
|
||||
/**
|
||||
* 是否申请 1是 0否
|
||||
*/
|
||||
@ApiModelProperty(value = "是否申请 1是 0否")
|
||||
private int apply;
|
||||
|
||||
public boolean isApply() {
|
||||
return apply == 1;
|
||||
}
|
||||
}
|
||||
@@ -18,6 +18,7 @@
|
||||
<modules>
|
||||
<module>report-generator</module>
|
||||
<module>wave-comtrade</module>
|
||||
<module>activate-tool</module>
|
||||
</modules>
|
||||
|
||||
</project>
|
||||
Reference in New Issue
Block a user