检测计划相关功能代码-补充
This commit is contained in:
@@ -3,13 +3,10 @@ package com.njcn.gather.detection.controller;
|
|||||||
import com.njcn.common.pojo.annotation.OperateInfo;
|
import com.njcn.common.pojo.annotation.OperateInfo;
|
||||||
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
import com.njcn.common.pojo.enums.response.CommonResponseEnum;
|
||||||
import com.njcn.common.pojo.response.HttpResult;
|
import com.njcn.common.pojo.response.HttpResult;
|
||||||
import com.njcn.gather.detection.handler.SocketDevResponseService;
|
import com.njcn.gather.detection.pojo.param.ContrastDetectionParam;
|
||||||
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
||||||
import com.njcn.gather.detection.pojo.param.SimulateDetectionParam;
|
import com.njcn.gather.detection.pojo.param.SimulateDetectionParam;
|
||||||
import com.njcn.gather.detection.service.PreDetectionService;
|
import com.njcn.gather.detection.service.PreDetectionService;
|
||||||
import com.njcn.gather.detection.service.impl.DetectionServiceImpl;
|
|
||||||
import com.njcn.gather.device.service.IPqDevService;
|
|
||||||
import com.njcn.gather.script.service.IPqScriptDtlsService;
|
|
||||||
import com.njcn.web.controller.BaseController;
|
import com.njcn.web.controller.BaseController;
|
||||||
import com.njcn.web.utils.HttpResultUtil;
|
import com.njcn.web.utils.HttpResultUtil;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
@@ -35,6 +32,7 @@ public class PreDetectionController extends BaseController {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 开始检测通用入口
|
* 开始检测通用入口
|
||||||
|
*
|
||||||
* @param param 实体参数
|
* @param param 实体参数
|
||||||
*/
|
*/
|
||||||
@PostMapping("/startPreTest")
|
@PostMapping("/startPreTest")
|
||||||
@@ -130,4 +128,18 @@ public class PreDetectionController extends BaseController {
|
|||||||
preDetectionService.restartTemTest(param);
|
preDetectionService.restartTemTest(param);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 开始比对检测(包括预检测、正式检测)通用入口
|
||||||
|
*/
|
||||||
|
@PostMapping("/startContrastTest")
|
||||||
|
@OperateInfo
|
||||||
|
@ApiOperation("开始比对检测")
|
||||||
|
@ApiImplicitParam(name = "param", value = "查询参数", required = true)
|
||||||
|
public HttpResult<String> startContrastTest(@RequestBody @Validated ContrastDetectionParam param) {
|
||||||
|
String methodDescribe = getMethodDescribe("startContrastTest");
|
||||||
|
preDetectionService.startContrastTest(param);
|
||||||
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package com.njcn.gather.detection.handler;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import com.njcn.gather.detection.pojo.param.ContrastDetectionParam;
|
||||||
|
import com.njcn.gather.detection.util.socket.FormalTestManager;
|
||||||
|
import com.njcn.gather.plan.service.IAdPlanService;
|
||||||
|
import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum;
|
||||||
|
import com.njcn.gather.system.dictionary.pojo.po.DictData;
|
||||||
|
import com.njcn.gather.system.dictionary.service.IDictDataService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2025-07-18
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class SocketContrastResponseService {
|
||||||
|
|
||||||
|
private final IAdPlanService adPlanService;
|
||||||
|
private final IDictDataService dictDataService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据处理原则
|
||||||
|
*/
|
||||||
|
private DictDataEnum dataRule;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 初始化操作
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
*/
|
||||||
|
public void init(ContrastDetectionParam param) {
|
||||||
|
FormalTestManager.currentTestPlan = adPlanService.getById(param.getPlanId());
|
||||||
|
|
||||||
|
DictData dictData = dictDataService.getDictDataById(FormalTestManager.currentTestPlan.getDataRule());
|
||||||
|
if (ObjectUtil.isNotNull(dictData)) {
|
||||||
|
this.dataRule = DictDataEnum.getDictDataEnumByCode(dictData.getCode());
|
||||||
|
} else {
|
||||||
|
this.dataRule = DictDataEnum.SECTION_VALUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -65,13 +65,6 @@ import static com.njcn.gather.detection.util.socket.FormalTestManager.harmonicRe
|
|||||||
@Service
|
@Service
|
||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SocketDevResponseService {
|
public class SocketDevResponseService {
|
||||||
|
|
||||||
private final String handlerStr = "_Dev";
|
|
||||||
private final String handlerSourceStr = "_Source";
|
|
||||||
private final String stepTag = "&&";
|
|
||||||
private final String splitTag = "_";
|
|
||||||
private final String stepBegin = "_Start";
|
|
||||||
private final String stepEnd = "_End";
|
|
||||||
// ISO 8601格式
|
// ISO 8601格式
|
||||||
private final DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
|
private final DateTimeFormatter formatter = DateTimeFormatter.ISO_DATE_TIME;
|
||||||
|
|
||||||
@@ -99,8 +92,6 @@ public class SocketDevResponseService {
|
|||||||
@Value("${phaseAngle.isEnable}")
|
@Value("${phaseAngle.isEnable}")
|
||||||
private Boolean isPhaseAngle;
|
private Boolean isPhaseAngle;
|
||||||
|
|
||||||
// private final ExecutorService executorPool = Executors.newFixedThreadPool(10);
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 存储的装置相序数据
|
* 存储的装置相序数据
|
||||||
@@ -133,7 +124,7 @@ public class SocketDevResponseService {
|
|||||||
//标识当前检测小项是否结束
|
//标识当前检测小项是否结束
|
||||||
public void deal(PreDetectionParam param, String msg) throws Exception {
|
public void deal(PreDetectionParam param, String msg) throws Exception {
|
||||||
SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg);
|
SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg);
|
||||||
String[] tem = socketDataMsg.getRequestId().split(stepTag);
|
String[] tem = socketDataMsg.getRequestId().split(CnSocketUtil.STEP_TAG);
|
||||||
SourceOperateCodeEnum sourceOperateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(tem[0]);
|
SourceOperateCodeEnum sourceOperateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(tem[0]);
|
||||||
|
|
||||||
switch (Objects.requireNonNull(sourceOperateCodeEnum)) {
|
switch (Objects.requireNonNull(sourceOperateCodeEnum)) {
|
||||||
@@ -163,12 +154,12 @@ public class SocketDevResponseService {
|
|||||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||||
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
SocketManager.removeUser(param.getUserPageId() + handlerStr);
|
SocketManager.removeUser(param.getUserPageId() + CnSocketUtil.DEV_TAG);
|
||||||
break;
|
break;
|
||||||
case UNPROCESSED_BUSINESS:
|
case UNPROCESSED_BUSINESS:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
SocketManager.removeUser(param.getUserPageId() + handlerStr);
|
SocketManager.removeUser(param.getUserPageId() + CnSocketUtil.DEV_TAG);
|
||||||
System.out.println(socketDataMsg);
|
System.out.println(socketDataMsg);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -206,7 +197,7 @@ public class SocketDevResponseService {
|
|||||||
xiSocket.setRequestId(SourceOperateCodeEnum.Coefficient_Check.getValue());
|
xiSocket.setRequestId(SourceOperateCodeEnum.Coefficient_Check.getValue());
|
||||||
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||||
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(0)));
|
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(0)));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xiSocket));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(xiSocket));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -236,7 +227,7 @@ public class SocketDevResponseService {
|
|||||||
if (CollUtil.isNotEmpty(XiNumberManager.devXiList)) {
|
if (CollUtil.isNotEmpty(XiNumberManager.devXiList)) {
|
||||||
xiSocket.setOperateCode(SourceOperateCodeEnum.DATA_CHNFACTOR$02.getValue());
|
xiSocket.setOperateCode(SourceOperateCodeEnum.DATA_CHNFACTOR$02.getValue());
|
||||||
xiSocket.setData(JSON.toJSONString(XiNumberManager.devXiNumDataMap.get(XiNumberManager.devXiList.get(0))));
|
xiSocket.setData(JSON.toJSONString(XiNumberManager.devXiNumDataMap.get(XiNumberManager.devXiList.get(0))));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerStr, JSON.toJSONString(xiSocket));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.DEV_TAG, JSON.toJSONString(xiSocket));
|
||||||
} else {
|
} else {
|
||||||
if (XiNumberManager.stepNumber == 0) {
|
if (XiNumberManager.stepNumber == 0) {
|
||||||
//为空则认为所有装置都已经下发,开始进行小电压的申请,步骤进行+1
|
//为空则认为所有装置都已经下发,开始进行小电压的申请,步骤进行+1
|
||||||
@@ -247,7 +238,7 @@ public class SocketDevResponseService {
|
|||||||
System.out.println("第一步结束开始配置小电压电流参数下发给源----------------------");
|
System.out.println("第一步结束开始配置小电压电流参数下发给源----------------------");
|
||||||
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||||
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(1)));
|
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(1)));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xiSocket));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(xiSocket));
|
||||||
} else if (XiNumberManager.stepNumber == 1) {
|
} else if (XiNumberManager.stepNumber == 1) {
|
||||||
//小电流系数下发完毕;开始重新测试一次大电压
|
//小电流系数下发完毕;开始重新测试一次大电压
|
||||||
sendWebSocket(param.getUserPageId(), SourceOperateCodeEnum.Coefficient_Check.getValue(), SourceOperateCodeEnum.small_end.getValue(), XiNumberManager.devParameterList.get(0));
|
sendWebSocket(param.getUserPageId(), SourceOperateCodeEnum.Coefficient_Check.getValue(), SourceOperateCodeEnum.small_end.getValue(), XiNumberManager.devParameterList.get(0));
|
||||||
@@ -255,7 +246,7 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||||
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(0)));
|
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(0)));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xiSocket));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(xiSocket));
|
||||||
XiNumberManager.stepNumber = 2;
|
XiNumberManager.stepNumber = 2;
|
||||||
}
|
}
|
||||||
FormalTestManager.realDataXiList.clear();
|
FormalTestManager.realDataXiList.clear();
|
||||||
@@ -328,7 +319,7 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
private void processData(PreDetectionParam param, SocketMsg<String> xiSocket) {
|
private void processData(PreDetectionParam param, SocketMsg<String> xiSocket) {
|
||||||
System.out.println(XiNumberManager.stepNumber + "从装置中已经完成获取测试数据,准备开始计算----------------------");
|
System.out.println(XiNumberManager.stepNumber + "从装置中已经完成获取测试数据,准备开始计算----------------------");
|
||||||
Map<String, List<DevData>> realDataXiMap = FormalTestManager.realDataXiList.stream().collect(Collectors.groupingBy(it -> it.getId().split(splitTag)[0]));
|
Map<String, List<DevData>> realDataXiMap = FormalTestManager.realDataXiList.stream().collect(Collectors.groupingBy(it -> it.getId().split(CnSocketUtil.SPLIT_TAG)[0]));
|
||||||
realDataXiMap.forEach((devIp, dataList) -> processDeviceData(devIp, dataList, param));
|
realDataXiMap.forEach((devIp, dataList) -> processDeviceData(devIp, dataList, param));
|
||||||
|
|
||||||
handleStep(XiNumberManager.stepNumber, param, xiSocket);
|
handleStep(XiNumberManager.stepNumber, param, xiSocket);
|
||||||
@@ -359,7 +350,7 @@ public class SocketDevResponseService {
|
|||||||
xiSocket.setRequestId(SourceOperateCodeEnum.Coefficient_Check.getValue());
|
xiSocket.setRequestId(SourceOperateCodeEnum.Coefficient_Check.getValue());
|
||||||
xiSocket.setOperateCode(SourceOperateCodeEnum.DATA_CHNFACTOR$02.getValue());
|
xiSocket.setOperateCode(SourceOperateCodeEnum.DATA_CHNFACTOR$02.getValue());
|
||||||
xiSocket.setData(JSON.toJSONString(XiNumberManager.devXiNumDataMap.get(XiNumberManager.devXiList.get(0))));
|
xiSocket.setData(JSON.toJSONString(XiNumberManager.devXiNumDataMap.get(XiNumberManager.devXiList.get(0))));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerStr, JSON.toJSONString(xiSocket));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.DEV_TAG, JSON.toJSONString(xiSocket));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void handleSmallVoltageStep(PreDetectionParam param, SocketMsg<String> xiSocket) {
|
private void handleSmallVoltageStep(PreDetectionParam param, SocketMsg<String> xiSocket) {
|
||||||
@@ -376,7 +367,7 @@ public class SocketDevResponseService {
|
|||||||
if (CollUtil.isNotEmpty(XiNumberManager.devXiList)) {
|
if (CollUtil.isNotEmpty(XiNumberManager.devXiList)) {
|
||||||
xiSocket.setOperateCode(SourceOperateCodeEnum.DATA_CHNFACTOR$02.getValue());
|
xiSocket.setOperateCode(SourceOperateCodeEnum.DATA_CHNFACTOR$02.getValue());
|
||||||
xiSocket.setData(JSON.toJSONString(XiNumberManager.devXiNumDataMap.get(XiNumberManager.devXiList.get(0))));
|
xiSocket.setData(JSON.toJSONString(XiNumberManager.devXiNumDataMap.get(XiNumberManager.devXiList.get(0))));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerStr, JSON.toJSONString(xiSocket));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.DEV_TAG, JSON.toJSONString(xiSocket));
|
||||||
} else {
|
} else {
|
||||||
//存在小电压系数在误差范围内情况,直接结束。
|
//存在小电压系数在误差范围内情况,直接结束。
|
||||||
sendWebSocket(param.getUserPageId(), SourceOperateCodeEnum.Coefficient_Check.getValue(), SourceOperateCodeEnum.small_end.getValue(), XiNumberManager.devParameterList.get(1));
|
sendWebSocket(param.getUserPageId(), SourceOperateCodeEnum.Coefficient_Check.getValue(), SourceOperateCodeEnum.small_end.getValue(), XiNumberManager.devParameterList.get(1));
|
||||||
@@ -384,7 +375,7 @@ public class SocketDevResponseService {
|
|||||||
//小电流系数下发完毕;开始重新测试一次大电压
|
//小电流系数下发完毕;开始重新测试一次大电压
|
||||||
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||||
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(0)));
|
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(0)));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xiSocket));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(xiSocket));
|
||||||
XiNumberManager.stepNumber = 2;
|
XiNumberManager.stepNumber = 2;
|
||||||
FormalTestManager.realDataXiList.clear();
|
FormalTestManager.realDataXiList.clear();
|
||||||
successComm.clear();
|
successComm.clear();
|
||||||
@@ -399,7 +390,7 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
xiSocket.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||||
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(1)));
|
xiSocket.setData(JSON.toJSONString(XiNumberManager.xiSourceIssueList.get(1)));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xiSocket));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(xiSocket));
|
||||||
XiNumberManager.stepNumber = 3;
|
XiNumberManager.stepNumber = 3;
|
||||||
FormalTestManager.realDataXiList.clear();
|
FormalTestManager.realDataXiList.clear();
|
||||||
successComm.clear();
|
successComm.clear();
|
||||||
@@ -462,12 +453,12 @@ public class SocketDevResponseService {
|
|||||||
SocketManager.initMap(sourceIssueMap);
|
SocketManager.initMap(sourceIssueMap);
|
||||||
|
|
||||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssues.get(0).getType());
|
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssues.get(0).getType());
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||||
|
|
||||||
//告诉前端当前项开始了
|
//告诉前端当前项开始了
|
||||||
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
||||||
webSocketVO.setRequestId(sourceIssues.get(0).getType() + stepBegin);
|
webSocketVO.setRequestId(sourceIssues.get(0).getType() + CnSocketUtil.START_TAG);
|
||||||
webSocketVO.setDesc(null);
|
webSocketVO.setDesc(null);
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||||
} else {
|
} else {
|
||||||
@@ -552,7 +543,7 @@ public class SocketDevResponseService {
|
|||||||
DevXiNumData.F F = new DevXiNumData.F();
|
DevXiNumData.F F = new DevXiNumData.F();
|
||||||
CoefficientVO.DevParameter devParameter = getDevParameter();
|
CoefficientVO.DevParameter devParameter = getDevParameter();
|
||||||
|
|
||||||
assemblyEntity(list, F, gfMap.get(Integer.parseInt(monitorId.split(splitTag)[1]) - 1), coefficientVO, devParameter);
|
assemblyEntity(list, F, gfMap.get(Integer.parseInt(monitorId.split(CnSocketUtil.SPLIT_TAG)[1]) - 1), coefficientVO, devParameter);
|
||||||
if (Objects.nonNull(coefficientVO.getResultFlag()) && coefficientVO.getResultFlag() == 0) {
|
if (Objects.nonNull(coefficientVO.getResultFlag()) && coefficientVO.getResultFlag() == 0) {
|
||||||
xiFlag.set(false);
|
xiFlag.set(false);
|
||||||
}
|
}
|
||||||
@@ -568,7 +559,7 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
private CoefficientVO createCoefficientVO(String monitorId) {
|
private CoefficientVO createCoefficientVO(String monitorId) {
|
||||||
CoefficientVO coefficientVO = new CoefficientVO();
|
CoefficientVO coefficientVO = new CoefficientVO();
|
||||||
String[] splitStr = monitorId.split(splitTag);
|
String[] splitStr = monitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||||
if (XiNumberManager.stepNumber == 0 || XiNumberManager.stepNumber == 2) {
|
if (XiNumberManager.stepNumber == 0 || XiNumberManager.stepNumber == 2) {
|
||||||
coefficientVO.setType("big");
|
coefficientVO.setType("big");
|
||||||
} else {
|
} else {
|
||||||
@@ -586,7 +577,7 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
private DevXiNumData.GF createGFItem(String monitorId, DevXiNumData.F F) {
|
private DevXiNumData.GF createGFItem(String monitorId, DevXiNumData.F F) {
|
||||||
DevXiNumData.GF gfItem = new DevXiNumData.GF();
|
DevXiNumData.GF gfItem = new DevXiNumData.GF();
|
||||||
gfItem.setUMonitorPoint(Integer.parseInt(monitorId.split(splitTag)[1]) - 1);
|
gfItem.setUMonitorPoint(Integer.parseInt(monitorId.split(CnSocketUtil.SPLIT_TAG)[1]) - 1);
|
||||||
gfItem.setF(F);
|
gfItem.setF(F);
|
||||||
return gfItem;
|
return gfItem;
|
||||||
}
|
}
|
||||||
@@ -715,7 +706,7 @@ public class SocketDevResponseService {
|
|||||||
*/
|
*/
|
||||||
private void devComm(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
|
private void devComm(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
|
||||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||||
String s = param.getUserPageId() + handlerStr;
|
String s = param.getUserPageId() + CnSocketUtil.DEV_TAG;
|
||||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||||
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
@@ -806,7 +797,7 @@ public class SocketDevResponseService {
|
|||||||
private void protocolDeal(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
|
private void protocolDeal(SocketDataMsg socketDataMsg, PreDetectionParam param, String msg) {
|
||||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||||
String s = param.getUserPageId() + handlerStr;
|
String s = param.getUserPageId() + CnSocketUtil.DEV_TAG;
|
||||||
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
|
|
||||||
@@ -914,7 +905,7 @@ public class SocketDevResponseService {
|
|||||||
sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam);
|
sourceIssues = pqScriptDtlsService.listSourceIssue(issueParam);
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
|
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
|
||||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||||
} else if (param.getTestItemList().get(2)) {
|
} else if (param.getTestItemList().get(2)) {
|
||||||
// 后续做正式检测
|
// 后续做正式检测
|
||||||
if (param.getOperateType().equals(SourceOperateCodeEnum.RE_ERROR_TEST.getValue())) {
|
if (param.getOperateType().equals(SourceOperateCodeEnum.RE_ERROR_TEST.getValue())) {
|
||||||
@@ -954,12 +945,12 @@ public class SocketDevResponseService {
|
|||||||
SocketManager.initMap(sourceIssueMap);
|
SocketManager.initMap(sourceIssueMap);
|
||||||
|
|
||||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssues.get(0).getType());
|
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssues.get(0).getType());
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||||
|
|
||||||
//告诉前端当前项开始了
|
//告诉前端当前项开始了
|
||||||
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
||||||
webSocketVO.setRequestId(sourceIssues.get(0).getType() + stepBegin);
|
webSocketVO.setRequestId(sourceIssues.get(0).getType() + CnSocketUtil.START_TAG);
|
||||||
webSocketVO.setDesc(null);
|
webSocketVO.setDesc(null);
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||||
}
|
}
|
||||||
@@ -968,10 +959,10 @@ public class SocketDevResponseService {
|
|||||||
// System.out.println("进入暂停后的继续检测》》》》》》》》》》》》》》》》》》》》》》》》》》》" + "剩余检测小项" + SocketManager.getSourceList().size());
|
// System.out.println("进入暂停后的继续检测》》》》》》》》》》》》》》》》》》》》》》》》》》》" + "剩余检测小项" + SocketManager.getSourceList().size());
|
||||||
// if (CollUtil.isNotEmpty(SocketManager.getSourceList())) {
|
// if (CollUtil.isNotEmpty(SocketManager.getSourceList())) {
|
||||||
// SourceIssue sourceIssue = SocketManager.getSourceList().get(0);
|
// SourceIssue sourceIssue = SocketManager.getSourceList().get(0);
|
||||||
// socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssue.getType());
|
// socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssue.getType());
|
||||||
// socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
// socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||||
// socketMsg.setData(JSON.toJSONString(sourceIssue));
|
// socketMsg.setData(JSON.toJSONString(sourceIssue));
|
||||||
// SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
|
// SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||||
// }
|
// }
|
||||||
// } else {
|
// } else {
|
||||||
//
|
//
|
||||||
@@ -1087,7 +1078,7 @@ public class SocketDevResponseService {
|
|||||||
dataMsg.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
|
dataMsg.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
|
||||||
|
|
||||||
for (SourceCompareDev sourceCompareDev : info) {
|
for (SourceCompareDev sourceCompareDev : info) {
|
||||||
dataMsg.setData(sourceCompareDev.getDevName() + splitTag + sourceCompareDev.getLineNum() + "校验结果:" + sourceCompareDev.getDesc());
|
dataMsg.setData(sourceCompareDev.getDevName() + CnSocketUtil.SPLIT_TAG + sourceCompareDev.getLineNum() + "校验结果:" + sourceCompareDev.getDesc());
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(dataMsg));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(dataMsg));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1130,7 +1121,7 @@ public class SocketDevResponseService {
|
|||||||
map.put("devIP", preDetection.getDevIP());
|
map.put("devIP", preDetection.getDevIP());
|
||||||
map.put("chnNum", preDetection.getDevChns());
|
map.put("chnNum", preDetection.getDevChns());
|
||||||
socketMsg.setData(JSON.toJSONString(map));
|
socketMsg.setData(JSON.toJSONString(map));
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerStr, JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.DEV_TAG, JSON.toJSONString(socketMsg));
|
||||||
|
|
||||||
|
|
||||||
XiNumberManager.stepNumber = 0;
|
XiNumberManager.stepNumber = 0;
|
||||||
@@ -1184,13 +1175,13 @@ public class SocketDevResponseService {
|
|||||||
SocketManager.initMap(sourceIssueMap);
|
SocketManager.initMap(sourceIssueMap);
|
||||||
|
|
||||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssues.get(0).getType());
|
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssues.get(0).getType());
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||||
|
|
||||||
//告诉前端当前项开始了
|
//告诉前端当前项开始了
|
||||||
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
||||||
webSocketVO.setRequestId(sourceIssues.get(0).getType() + stepBegin);
|
webSocketVO.setRequestId(sourceIssues.get(0).getType() + CnSocketUtil.START_TAG);
|
||||||
webSocketVO.setDesc(null);
|
webSocketVO.setDesc(null);
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||||
} else {
|
} else {
|
||||||
@@ -1260,7 +1251,7 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
//当成功的通道数量和检测通道数量相同时进入
|
//当成功的通道数量和检测通道数量相同时进入
|
||||||
if (successComm.size() == FormalTestManager.monitorIdListComm.size()) {
|
if (successComm.size() == FormalTestManager.monitorIdListComm.size()) {
|
||||||
System.out.println(sourceIssue.getType() + splitTag + sourceIssue.getIndex() + "当前测试小项读取数据已经全部结束。。。。。。。。。");
|
System.out.println(sourceIssue.getType() + CnSocketUtil.SPLIT_TAG + sourceIssue.getIndex() + "当前测试小项读取数据已经全部结束。。。。。。。。。");
|
||||||
//修改装置为监测中
|
//修改装置为监测中
|
||||||
// adPlanService.updateTestState(param.getPlanId(), param.getDevIds());
|
// adPlanService.updateTestState(param.getPlanId(), param.getDevIds());
|
||||||
//开启线程进行入库原始数据操作
|
//开启线程进行入库原始数据操作
|
||||||
@@ -1275,7 +1266,7 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
//当小项结束后需要删除集合中的小项
|
//当小项结束后需要删除集合中的小项
|
||||||
SocketManager.delSource(sourceIssue.getIndex());
|
SocketManager.delSource(sourceIssue.getIndex());
|
||||||
System.out.println("当前小项结束进行删除============" + sourceIssue.getType() + splitTag + sourceIssue.getIndex());
|
System.out.println("当前小项结束进行删除============" + sourceIssue.getType() + CnSocketUtil.SPLIT_TAG + sourceIssue.getIndex());
|
||||||
|
|
||||||
//小项检测完后小项数减一,并更新map
|
//小项检测完后小项数减一,并更新map
|
||||||
long residueCount = SocketManager.getSourceTarget(sourceIssue.getType()) - 1;
|
long residueCount = SocketManager.getSourceTarget(sourceIssue.getType()) - 1;
|
||||||
@@ -1303,7 +1294,7 @@ public class SocketDevResponseService {
|
|||||||
resultList.add(devTem);
|
resultList.add(devTem);
|
||||||
});
|
});
|
||||||
allDevTestList.clear();
|
allDevTestList.clear();
|
||||||
CnSocketUtil.sendToWebSocket(param.getUserPageId(), socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd, null, resultList, null);
|
CnSocketUtil.sendToWebSocket(param.getUserPageId(), socketDataMsg.getRequestId().split(CnSocketUtil.STEP_TAG)[1] + CnSocketUtil.END_TAG, null, resultList, null);
|
||||||
}
|
}
|
||||||
//在这一步判断是否已经触发暂停按钮
|
//在这一步判断是否已经触发暂停按钮
|
||||||
if (FormalTestManager.stopFlag && CollUtil.isNotEmpty(SocketManager.getSourceList())) {
|
if (FormalTestManager.stopFlag && CollUtil.isNotEmpty(SocketManager.getSourceList())) {
|
||||||
@@ -1321,15 +1312,15 @@ public class SocketDevResponseService {
|
|||||||
SourceIssue sourceIssues = SocketManager.getSourceList().get(0);
|
SourceIssue sourceIssues = SocketManager.getSourceList().get(0);
|
||||||
// 如果上一个大项检测完成,则检测下一个大项,并向前端推送消息
|
// 如果上一个大项检测完成,则检测下一个大项,并向前端推送消息
|
||||||
if (residueCount == 0) {
|
if (residueCount == 0) {
|
||||||
CnSocketUtil.sendToWebSocket(param.getUserPageId(), sourceIssues.getType() + stepBegin, null, new ArrayList<>(), null);
|
CnSocketUtil.sendToWebSocket(param.getUserPageId(), sourceIssues.getType() + CnSocketUtil.START_TAG, null, new ArrayList<>(), null);
|
||||||
}
|
}
|
||||||
|
|
||||||
//控源下发下一个小项脚本
|
//控源下发下一个小项脚本
|
||||||
SocketMsg<String> xuMsg = new SocketMsg<>();
|
SocketMsg<String> xuMsg = new SocketMsg<>();
|
||||||
xuMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
xuMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||||
xuMsg.setData(JSON.toJSONString(sourceIssues));
|
xuMsg.setData(JSON.toJSONString(sourceIssues));
|
||||||
xuMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssues.getType());
|
xuMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssues.getType());
|
||||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(xuMsg));
|
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(xuMsg));
|
||||||
} else {
|
} else {
|
||||||
//TODO 是否最终检测完成需要推送给用户
|
//TODO 是否最终检测完成需要推送给用户
|
||||||
PqScriptCheckDataParam checkDataParam = new PqScriptCheckDataParam();
|
PqScriptCheckDataParam checkDataParam = new PqScriptCheckDataParam();
|
||||||
@@ -1391,7 +1382,7 @@ public class SocketDevResponseService {
|
|||||||
List<Integer> resultFlagList = new ArrayList<>();
|
List<Integer> resultFlagList = new ArrayList<>();
|
||||||
List<PreDetection.MonitorListDTO> monitorListDTOList = dev.getMonitorList();
|
List<PreDetection.MonitorListDTO> monitorListDTOList = dev.getMonitorList();
|
||||||
for (PreDetection.MonitorListDTO point : monitorListDTOList) {
|
for (PreDetection.MonitorListDTO point : monitorListDTOList) {
|
||||||
Integer resultFlag = textResult.get(dev.getDevIP() + splitTag + point.getLine());
|
Integer resultFlag = textResult.get(dev.getDevIP() + CnSocketUtil.SPLIT_TAG + point.getLine());
|
||||||
resultFlagList.add(resultFlag);
|
resultFlagList.add(resultFlag);
|
||||||
}
|
}
|
||||||
devLineTestResult.setChnResult(resultFlagList.toArray(new Integer[monitorListDTOList.size()]));
|
devLineTestResult.setChnResult(resultFlagList.toArray(new Integer[monitorListDTOList.size()]));
|
||||||
@@ -1406,7 +1397,7 @@ public class SocketDevResponseService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
|
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
|
||||||
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd);
|
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(CnSocketUtil.STEP_TAG)[1] + CnSocketUtil.END_TAG);
|
||||||
webSocketVO.setDesc(sourceIssue.getDesc());
|
webSocketVO.setDesc(sourceIssue.getDesc());
|
||||||
webSocketVO.setData(devListRes);
|
webSocketVO.setData(devListRes);
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||||
@@ -1465,7 +1456,7 @@ public class SocketDevResponseService {
|
|||||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||||
SourceOperateCodeEnum operateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getOperateCode());
|
SourceOperateCodeEnum operateCodeEnum = SourceOperateCodeEnum.getDictDataEnumByCode(socketDataMsg.getOperateCode());
|
||||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||||
String s = param.getUserPageId() + handlerStr;
|
String s = param.getUserPageId() + CnSocketUtil.DEV_TAG;
|
||||||
|
|
||||||
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
@@ -1603,7 +1594,7 @@ public class SocketDevResponseService {
|
|||||||
List<DevData.SqlDataDTO> dataV = sqlData.stream().filter(x -> type.get(0).equals(x.getDesc())).collect(Collectors.toList());
|
List<DevData.SqlDataDTO> dataV = sqlData.stream().filter(x -> type.get(0).equals(x.getDesc())).collect(Collectors.toList());
|
||||||
List<DevData.SqlDataDTO> dataVPhase = sqlData.stream().filter(x -> type.get(1).equals(x.getDesc())).collect(Collectors.toList());
|
List<DevData.SqlDataDTO> dataVPhase = sqlData.stream().filter(x -> type.get(1).equals(x.getDesc())).collect(Collectors.toList());
|
||||||
SourceCompareDev compareDev = new SourceCompareDev();
|
SourceCompareDev compareDev = new SourceCompareDev();
|
||||||
String[] split = key.split(splitTag);
|
String[] split = key.split(CnSocketUtil.SPLIT_TAG);
|
||||||
String devName = null;
|
String devName = null;
|
||||||
if (FormalTestManager.devNameMapComm.containsKey(split[0])) {
|
if (FormalTestManager.devNameMapComm.containsKey(split[0])) {
|
||||||
devName = FormalTestManager.devNameMapComm.get(split[0]);
|
devName = FormalTestManager.devNameMapComm.get(split[0]);
|
||||||
@@ -1642,7 +1633,7 @@ public class SocketDevResponseService {
|
|||||||
Boolean c = getaBoolean(sourceMap.get(type + "c"), CollUtil.isNotEmpty(data) ? data.get(0).getList().getC() : null,
|
Boolean c = getaBoolean(sourceMap.get(type + "c"), CollUtil.isNotEmpty(data) ? data.get(0).getList().getC() : null,
|
||||||
CollUtil.isNotEmpty(dataPhase) ? dataPhase.get(0).getList().getC() : null);
|
CollUtil.isNotEmpty(dataPhase) ? dataPhase.get(0).getList().getC() : null);
|
||||||
compareDev.setIsQualified(a && b && c);
|
compareDev.setIsQualified(a && b && c);
|
||||||
compareDev.setDesc(name + (compareDev.getIsQualified() ? "合格->" : "不合格->") + stepTag + desc + stepTag + devMessage(type, data, dataPhase));
|
compareDev.setDesc(name + (compareDev.getIsQualified() ? "合格->" : "不合格->") + CnSocketUtil.STEP_TAG + desc + CnSocketUtil.STEP_TAG + devMessage(type, data, dataPhase));
|
||||||
return compareDev;
|
return compareDev;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1831,8 +1822,8 @@ public class SocketDevResponseService {
|
|||||||
LocalDateTime localDateTime = timeFormat(data.getTime(), formatter);
|
LocalDateTime localDateTime = timeFormat(data.getTime(), formatter);
|
||||||
if (Objects.nonNull(localDateTime)) {
|
if (Objects.nonNull(localDateTime)) {
|
||||||
|
|
||||||
String[] splitArr = data.getId().split(splitTag);
|
String[] splitArr = data.getId().split(CnSocketUtil.SPLIT_TAG);
|
||||||
String temId = FormalTestManager.devIdMapComm.get(splitArr[0]) + splitTag + splitArr[1];
|
String temId = FormalTestManager.devIdMapComm.get(splitArr[0]) + CnSocketUtil.SPLIT_TAG + splitArr[1];
|
||||||
|
|
||||||
if (nonHarmonicList.contains(sourceIssue.getType())) {
|
if (nonHarmonicList.contains(sourceIssue.getType())) {
|
||||||
for (DevData.SqlDataDTO sqlDataDTO : data.getSqlData()) {
|
for (DevData.SqlDataDTO sqlDataDTO : data.getSqlData()) {
|
||||||
|
|||||||
@@ -33,18 +33,9 @@ public class SocketSourceResponseService {
|
|||||||
/**
|
/**
|
||||||
* 向webSocket客户端发送消息
|
* 向webSocket客户端发送消息
|
||||||
*/
|
*/
|
||||||
|
|
||||||
private final SocketDevResponseService socketDevResponseService;
|
private final SocketDevResponseService socketDevResponseService;
|
||||||
private final IPqDevService iPqDevService;
|
private final IPqDevService iPqDevService;
|
||||||
|
|
||||||
private final String DEV = "_Dev";
|
|
||||||
private final String source = "_Source";
|
|
||||||
|
|
||||||
private final String stepTag = "&&";
|
|
||||||
private final String stepBegin = "_Start";
|
|
||||||
private final String stepEnd = "_End";
|
|
||||||
|
|
||||||
|
|
||||||
@Value("${socket.device.ip}")
|
@Value("${socket.device.ip}")
|
||||||
private String ip;
|
private String ip;
|
||||||
|
|
||||||
@@ -57,7 +48,7 @@ public class SocketSourceResponseService {
|
|||||||
|
|
||||||
public void deal(PreDetectionParam param, String msg) throws Exception {
|
public void deal(PreDetectionParam param, String msg) throws Exception {
|
||||||
SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg);
|
SocketDataMsg socketDataMsg = MsgUtil.socketDataMsg(msg);
|
||||||
String[] tem = socketDataMsg.getRequestId().split(stepTag);
|
String[] tem = socketDataMsg.getRequestId().split(CnSocketUtil.STEP_TAG);
|
||||||
SourceOperateCodeEnum enumByCode = SourceOperateCodeEnum.getDictDataEnumByCode(tem[0]);
|
SourceOperateCodeEnum enumByCode = SourceOperateCodeEnum.getDictDataEnumByCode(tem[0]);
|
||||||
if (ObjectUtil.isNotNull(enumByCode)) {
|
if (ObjectUtil.isNotNull(enumByCode)) {
|
||||||
switch (enumByCode) {
|
switch (enumByCode) {
|
||||||
@@ -192,7 +183,7 @@ public class SocketSourceResponseService {
|
|||||||
//向前端推送信息
|
//向前端推送信息
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||||
|
|
||||||
String s = param.getUserPageId() + DEV;
|
String s = param.getUserPageId() + CnSocketUtil.DEV_TAG;
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.Coefficient_Check.getValue());
|
socketMsg.setRequestId(SourceOperateCodeEnum.Coefficient_Check.getValue());
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
|
||||||
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
|
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
|
||||||
@@ -233,7 +224,7 @@ public class SocketSourceResponseService {
|
|||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
//todo 前端推送收到的消息暂未处理好
|
//todo 前端推送收到的消息暂未处理好
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||||
String s = param.getUserPageId() + DEV;
|
String s = param.getUserPageId() + CnSocketUtil.DEV_TAG;
|
||||||
//开始设备通讯检测(发送设备初始化)
|
//开始设备通讯检测(发送设备初始化)
|
||||||
//List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
|
//List<PreDetection> devList = iPqDevService.getDevInfo(param.getDevIds());
|
||||||
Map<String, List<PreDetection>> map = new HashMap<>(1);
|
Map<String, List<PreDetection>> map = new HashMap<>(1);
|
||||||
@@ -307,7 +298,7 @@ public class SocketSourceResponseService {
|
|||||||
//向前端推送信息
|
//向前端推送信息
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||||
|
|
||||||
String s = param.getUserPageId() + DEV;
|
String s = param.getUserPageId() + CnSocketUtil.DEV_TAG;
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
|
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
|
||||||
List<PreDetection> pqDevList = iPqDevService.getDevInfo(param.getDevIds());
|
List<PreDetection> pqDevList = iPqDevService.getDevInfo(param.getDevIds());
|
||||||
@@ -356,11 +347,11 @@ public class SocketSourceResponseService {
|
|||||||
//向前端推送信息
|
//向前端推送信息
|
||||||
// webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
// webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||||
|
|
||||||
String s = param.getUserPageId() + DEV;
|
String s = param.getUserPageId() + CnSocketUtil.DEV_TAG;
|
||||||
SourceIssue sourceIssue = SocketManager.getSourceList().get(0);
|
SourceIssue sourceIssue = SocketManager.getSourceList().get(0);
|
||||||
List<String> comm = sourceIssue.getDevValueTypeList(); //形如:类型&小项code这种形式。例如:real$VRMS、real$IRMS
|
List<String> comm = sourceIssue.getDevValueTypeList(); //形如:类型&小项code这种形式。例如:real$VRMS、real$IRMS
|
||||||
System.out.println("向装置下发的参数>>>>>>>>" + comm);
|
System.out.println("向装置下发的参数>>>>>>>>" + comm);
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssue.getType());
|
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssue.getType());
|
||||||
int ignoreCount;
|
int ignoreCount;
|
||||||
int readData;
|
int readData;
|
||||||
if (DicDataEnum.F.getCode().equals(sourceIssue.getType())) {
|
if (DicDataEnum.F.getCode().equals(sourceIssue.getType())) {
|
||||||
@@ -401,7 +392,7 @@ public class SocketSourceResponseService {
|
|||||||
});
|
});
|
||||||
|
|
||||||
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
||||||
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepBegin);
|
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(CnSocketUtil.STEP_TAG)[1] + CnSocketUtil.START_TAG);
|
||||||
webSocketVO.setDesc(SocketManager.getSourceList().get(0).getDesc());
|
webSocketVO.setDesc(SocketManager.getSourceList().get(0).getDesc());
|
||||||
webSocketVO.setData(devListRes);
|
webSocketVO.setData(devListRes);
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||||
@@ -429,16 +420,16 @@ public class SocketSourceResponseService {
|
|||||||
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
||||||
case SUCCESS:
|
case SUCCESS:
|
||||||
//通讯校验成功
|
//通讯校验成功
|
||||||
SocketManager.removeUser(param.getUserPageId() + source);
|
SocketManager.removeUser(param.getUserPageId() + CnSocketUtil.SOURCE_TAG);
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||||
break;
|
break;
|
||||||
case UNPROCESSED_BUSINESS:
|
case UNPROCESSED_BUSINESS:
|
||||||
break;
|
break;
|
||||||
case MESSAGE_PARSING_ERROR:
|
case MESSAGE_PARSING_ERROR:
|
||||||
SocketManager.removeUser(param.getUserPageId() + source);
|
SocketManager.removeUser(param.getUserPageId() + CnSocketUtil.SOURCE_TAG);
|
||||||
break;
|
break;
|
||||||
case UNABLE_TO_RESPOND:
|
case UNABLE_TO_RESPOND:
|
||||||
SocketManager.removeUser(param.getUserPageId() + source);
|
SocketManager.removeUser(param.getUserPageId() + CnSocketUtil.SOURCE_TAG);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
CnSocketUtil.quitSendSource(param);
|
CnSocketUtil.quitSendSource(param);
|
||||||
|
|||||||
@@ -0,0 +1,41 @@
|
|||||||
|
package com.njcn.gather.detection.pojo.param;
|
||||||
|
|
||||||
|
import com.njcn.gather.pojo.constant.DetectionValidMessage;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotBlank;
|
||||||
|
import javax.validation.constraints.NotEmpty;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2025-07-18
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ContrastDetectionParam {
|
||||||
|
|
||||||
|
@ApiModelProperty("检测计划ID")
|
||||||
|
@NotBlank(message = DetectionValidMessage.PLAN_ID_NOT_BLANK)
|
||||||
|
private String planId;
|
||||||
|
|
||||||
|
@ApiModelProperty("用户ID,唯一标识")
|
||||||
|
private String userId;
|
||||||
|
|
||||||
|
@ApiModelProperty("被检设备ID列表")
|
||||||
|
@NotEmpty(message = DetectionValidMessage.DEV_IDS_NOT_EMPTY)
|
||||||
|
private List<String> devIds;
|
||||||
|
|
||||||
|
@ApiModelProperty("标准设备ID列表")
|
||||||
|
@NotEmpty(message = DetectionValidMessage.STANDARD_DEV_IDS_NOT_EMPTY)
|
||||||
|
private List<String> standardDevIds;
|
||||||
|
|
||||||
|
@ApiModelProperty("配对关系")
|
||||||
|
@NotEmpty(message = DetectionValidMessage.PAIRS_NOT_EMPTY)
|
||||||
|
private Map<String,String> pairs;
|
||||||
|
/**
|
||||||
|
* 检测项列表。第一个元素为预检测、第二个元素为系数校准、第三个元素为正式检测
|
||||||
|
*/
|
||||||
|
private List<Boolean> testItemList;
|
||||||
|
}
|
||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.njcn.gather.detection.service;
|
package com.njcn.gather.detection.service;
|
||||||
|
|
||||||
|
import com.njcn.gather.detection.pojo.param.ContrastDetectionParam;
|
||||||
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
||||||
import com.njcn.gather.detection.pojo.param.SimulateDetectionParam;
|
import com.njcn.gather.detection.pojo.param.SimulateDetectionParam;
|
||||||
|
|
||||||
@@ -49,4 +50,10 @@ public interface PreDetectionService {
|
|||||||
* @param param
|
* @param param
|
||||||
*/
|
*/
|
||||||
void closeTestSimulate(SimulateDetectionParam param);
|
void closeTestSimulate(SimulateDetectionParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
*/
|
||||||
|
void startContrastTest(ContrastDetectionParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,11 +6,13 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.njcn.common.pojo.exception.BusinessException;
|
import com.njcn.common.pojo.exception.BusinessException;
|
||||||
|
import com.njcn.gather.detection.handler.SocketContrastResponseService;
|
||||||
import com.njcn.gather.detection.handler.SocketDevResponseService;
|
import com.njcn.gather.detection.handler.SocketDevResponseService;
|
||||||
import com.njcn.gather.detection.handler.SocketSourceResponseService;
|
import com.njcn.gather.detection.handler.SocketSourceResponseService;
|
||||||
import com.njcn.gather.detection.pojo.constant.DetectionCommunicateConstant;
|
import com.njcn.gather.detection.pojo.constant.DetectionCommunicateConstant;
|
||||||
import com.njcn.gather.detection.pojo.enums.DetectionResponseEnum;
|
import com.njcn.gather.detection.pojo.enums.DetectionResponseEnum;
|
||||||
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
||||||
|
import com.njcn.gather.detection.pojo.param.ContrastDetectionParam;
|
||||||
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
||||||
import com.njcn.gather.detection.pojo.param.SimulateDetectionParam;
|
import com.njcn.gather.detection.pojo.param.SimulateDetectionParam;
|
||||||
import com.njcn.gather.detection.pojo.vo.SocketMsg;
|
import com.njcn.gather.detection.pojo.vo.SocketMsg;
|
||||||
@@ -65,6 +67,7 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
|||||||
|
|
||||||
private final SocketDevResponseService socketDevResponseService;
|
private final SocketDevResponseService socketDevResponseService;
|
||||||
private final SocketSourceResponseService socketSourceResponseService;
|
private final SocketSourceResponseService socketSourceResponseService;
|
||||||
|
private final SocketContrastResponseService socketContrastResponseService;
|
||||||
private final IPqScriptCheckDataService iPqScriptCheckDataService;
|
private final IPqScriptCheckDataService iPqScriptCheckDataService;
|
||||||
|
|
||||||
@Value("${socket.source.ip:192.168.1.138}")
|
@Value("${socket.source.ip:192.168.1.138}")
|
||||||
@@ -79,7 +82,7 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
|||||||
@Override
|
@Override
|
||||||
public void sourceCommunicationCheck(PreDetectionParam param) {
|
public void sourceCommunicationCheck(PreDetectionParam param) {
|
||||||
// 参数校验,目前仅检查IP是否重复,后续可在里面扩展
|
// 参数校验,目前仅检查IP是否重复,后续可在里面扩展
|
||||||
checkDevIp(param);
|
checkDevIp(param.getDevIds());
|
||||||
//用于处理异常导致的socket通道未关闭,socket交互异常
|
//用于处理异常导致的socket通道未关闭,socket交互异常
|
||||||
DetectionCommunicateUtil.checkCommunicateChannel(param);
|
DetectionCommunicateUtil.checkCommunicateChannel(param);
|
||||||
/*
|
/*
|
||||||
@@ -269,14 +272,48 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
|||||||
WebServiceManager.removePreDetectionParam();
|
WebServiceManager.removePreDetectionParam();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void startContrastTest(ContrastDetectionParam param) {
|
||||||
|
// 参数校验,目前仅检查IP是否重复,后续可在里面扩展
|
||||||
|
checkDevIp(param.getDevIds());
|
||||||
|
//用于处理异常导致的socket通道未关闭,socket交互异常
|
||||||
|
DetectionCommunicateUtil.checkContrastCommunicateChannel(param.getUserId());
|
||||||
|
socketContrastResponseService.init(param);
|
||||||
|
|
||||||
|
// 和通信模块进行连接
|
||||||
|
this.sendContrastSocket(param);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 比对式-与通信模块进行连接
|
||||||
|
*
|
||||||
|
* @param param
|
||||||
|
*/
|
||||||
|
private void sendContrastSocket(ContrastDetectionParam param) {
|
||||||
|
String s = param.getUserId() + CnSocketUtil.DEV_TAG;
|
||||||
|
|
||||||
|
// Map<String, List<PreDetection>> map = new HashMap<>(1);
|
||||||
|
// List<PreDetection> preDetections = BeanUtil.copyToList(FormalTestManager.devList, PreDetection.class);
|
||||||
|
// preDetections.forEach(x -> {
|
||||||
|
// x.setDevType(x.getIcdType());
|
||||||
|
// });
|
||||||
|
// map.put("deviceList", preDetections);
|
||||||
|
// String jsonString = JSON.toJSONString(map);
|
||||||
|
// socketMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
|
||||||
|
// socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_01.getValue());
|
||||||
|
// socketMsg.setData(jsonString);
|
||||||
|
// String json = JSON.toJSONString(socketMsg);
|
||||||
|
// SocketManager.sendMsg(s,json);
|
||||||
|
// NettyClient.socketClient(ip, port, param, json, new NettyDevClientHandler(param, socketDevResponseService));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 校验被检设备中是否存在IP重复的
|
* 校验被检设备中是否存在IP重复的
|
||||||
*/
|
*/
|
||||||
private void checkDevIp(PreDetectionParam param) {
|
private void checkDevIp(List<String> devIds) {
|
||||||
List<PqDev> pqDevList = iPqDevService.listByIds(param.getDevIds());
|
List<PqDev> pqDevList = iPqDevService.listByIds(devIds);
|
||||||
List<String> ipList = pqDevList.stream().map(PqDev::getIp).distinct().collect(Collectors.toList());
|
List<String> ipList = pqDevList.stream().map(PqDev::getIp).distinct().collect(Collectors.toList());
|
||||||
if (ipList.size() != param.getDevIds().size()) {
|
if (ipList.size() != devIds.size()) {
|
||||||
throw new BusinessException(DetectionResponseEnum.PLAN_DEV_IP_HAS);
|
throw new BusinessException(DetectionResponseEnum.PLAN_DEV_IP_HAS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,4 +54,30 @@ public class DetectionCommunicateUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 比对式-检测是否存在已有的Socket通道,有则强行关闭
|
||||||
|
*
|
||||||
|
* @param userId
|
||||||
|
*/
|
||||||
|
public static void checkContrastCommunicateChannel(String userId) {
|
||||||
|
Channel channel = SocketManager.getChannelByUserId(userId);
|
||||||
|
|
||||||
|
if (Objects.nonNull(channel) && channel.isActive()) {
|
||||||
|
System.out.println("存在已有的Socket通道,强行关闭。。。。。。。。");
|
||||||
|
CnSocketUtil.contrastSendquit(userId);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
Thread.sleep(4000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
SocketManager.removeUser(userId);
|
||||||
|
try {
|
||||||
|
Thread.sleep(2000);
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
log.error(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -14,8 +14,17 @@ import com.njcn.gather.detection.pojo.vo.WebSocketVO;
|
|||||||
*/
|
*/
|
||||||
public class CnSocketUtil {
|
public class CnSocketUtil {
|
||||||
|
|
||||||
private final static String devTag = "_Dev";
|
public final static String DEV_TAG = "_Dev";
|
||||||
private final static String sourceTag = "_Source";
|
|
||||||
|
public final static String SOURCE_TAG = "_Source";
|
||||||
|
|
||||||
|
public final static String START_TAG = "_Start";
|
||||||
|
|
||||||
|
public final static String END_TAG = "_End";
|
||||||
|
|
||||||
|
public final static String STEP_TAG = "&&";
|
||||||
|
|
||||||
|
public final static String SPLIT_TAG = "_";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 退出检测
|
* 退出检测
|
||||||
@@ -24,7 +33,7 @@ public class CnSocketUtil {
|
|||||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.QUITE.getValue());
|
socketMsg.setRequestId(SourceOperateCodeEnum.QUITE.getValue());
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.QUIT_INIT_03.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.QUIT_INIT_03.getValue());
|
||||||
SocketManager.sendMsg(param.getUserPageId() + devTag, JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(param.getUserPageId() + DEV_TAG, JSON.toJSONString(socketMsg));
|
||||||
WebServiceManager.removePreDetectionParam();
|
WebServiceManager.removePreDetectionParam();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -38,7 +47,7 @@ public class CnSocketUtil {
|
|||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
jsonObject.put("sourceId", param.getSourceId());
|
jsonObject.put("sourceId", param.getSourceId());
|
||||||
socketMsg.setData(jsonObject.toJSONString());
|
socketMsg.setData(jsonObject.toJSONString());
|
||||||
SocketManager.sendMsg(param.getUserPageId() + sourceTag, JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(param.getUserPageId() + SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||||
WebServiceManager.removePreDetectionParam();
|
WebServiceManager.removePreDetectionParam();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -65,4 +74,17 @@ public class CnSocketUtil {
|
|||||||
webSocketVO.setOperateCode(SourceOperateCodeEnum.UNKNOWN_OPERATE.getMsg());
|
webSocketVO.setOperateCode(SourceOperateCodeEnum.UNKNOWN_OPERATE.getMsg());
|
||||||
WebServiceManager.sendMessage(userId, webSocketVO);
|
WebServiceManager.sendMessage(userId, webSocketVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 比对式-退出检测
|
||||||
|
*/
|
||||||
|
public static void contrastSendquit(String userId) {
|
||||||
|
System.out.println("比对式-发送关闭备通讯模块指令。。。。。。。。");
|
||||||
|
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||||
|
socketMsg.setRequestId(SourceOperateCodeEnum.QUITE.getValue());
|
||||||
|
socketMsg.setOperateCode(SourceOperateCodeEnum.QUIT_INIT_03.getValue());
|
||||||
|
SocketManager.sendMsg(userId + DEV_TAG, JSON.toJSONString(socketMsg));
|
||||||
|
WebServiceManager.removePreDetectionParam();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,6 +2,7 @@ package com.njcn.gather.detection.util.socket;
|
|||||||
|
|
||||||
import com.njcn.gather.detection.pojo.po.DevData;
|
import com.njcn.gather.detection.pojo.po.DevData;
|
||||||
import com.njcn.gather.device.pojo.vo.PreDetection;
|
import com.njcn.gather.device.pojo.vo.PreDetection;
|
||||||
|
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
@@ -72,4 +73,8 @@ public class FormalTestManager {
|
|||||||
public static Map<String,String> harmonicRelationMap = new HashMap<>();
|
public static Map<String,String> harmonicRelationMap = new HashMap<>();
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 当前正在检测的计划
|
||||||
|
*/
|
||||||
|
public static AdPlan currentTestPlan;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,13 +23,8 @@ import java.util.concurrent.TimeUnit;
|
|||||||
* @Description: 心跳处理类
|
* @Description: 心跳处理类
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
public class HeartbeatHandler extends SimpleChannelInboundHandler<String> {
|
public class HeartbeatHandler extends SimpleChannelInboundHandler<String> {
|
||||||
private final ScheduledExecutorService heartbeatExecutor = Executors.newScheduledThreadPool(1);
|
private final ScheduledExecutorService heartbeatExecutor = Executors.newScheduledThreadPool(1);
|
||||||
|
|
||||||
private final String dev = "_Dev";
|
|
||||||
private final String sourceTag = "_Source";
|
|
||||||
|
|
||||||
private final PreDetectionParam param;
|
private final PreDetectionParam param;
|
||||||
private final String handlerType;
|
private final String handlerType;
|
||||||
|
|
||||||
@@ -74,7 +69,7 @@ public class HeartbeatHandler extends SimpleChannelInboundHandler<String> {
|
|||||||
if (consecutiveHeartbeatMisses >= MAX_HEARTBEAT_MISSES) {
|
if (consecutiveHeartbeatMisses >= MAX_HEARTBEAT_MISSES) {
|
||||||
// 连续三次未收到心跳响应,断开连接
|
// 连续三次未收到心跳响应,断开连接
|
||||||
System.out.println(handlerType + "连续三次未收到心跳响应,断开连接");
|
System.out.println(handlerType + "连续三次未收到心跳响应,断开连接");
|
||||||
if (dev.equals(handlerType)) {
|
if (CnSocketUtil.DEV_TAG.equals(handlerType)) {
|
||||||
//CnSocketUtil.sendToWebSocket(param.getUserPageId(),);
|
//CnSocketUtil.sendToWebSocket(param.getUserPageId(),);
|
||||||
CnSocketUtil.quitSend(param);
|
CnSocketUtil.quitSend(param);
|
||||||
} else {
|
} else {
|
||||||
@@ -86,7 +81,7 @@ public class HeartbeatHandler extends SimpleChannelInboundHandler<String> {
|
|||||||
Thread.currentThread().interrupt();
|
Thread.currentThread().interrupt();
|
||||||
System.err.println("线程中断异常: " + e.getMessage());
|
System.err.println("线程中断异常: " + e.getMessage());
|
||||||
}
|
}
|
||||||
String key = dev.equals(handlerType) ? param.getUserPageId() + dev : param.getUserPageId() + sourceTag;
|
String key = CnSocketUtil.DEV_TAG.equals(handlerType) ? param.getUserPageId() + CnSocketUtil.DEV_TAG : param.getUserPageId() + CnSocketUtil.SOURCE_TAG;
|
||||||
SocketManager.removeUser(key);
|
SocketManager.removeUser(key);
|
||||||
consecutiveHeartbeatMisses = 0; // 重置连续心跳丢失次数
|
consecutiveHeartbeatMisses = 0; // 重置连续心跳丢失次数
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,9 +31,6 @@ import java.util.concurrent.TimeUnit;
|
|||||||
@Getter
|
@Getter
|
||||||
public class NettyClient {
|
public class NettyClient {
|
||||||
|
|
||||||
private static final String dev = "_Dev";
|
|
||||||
private static final String source = "_Source";
|
|
||||||
|
|
||||||
public static void socketClient(String ip, Integer port, PreDetectionParam param, String msg, SimpleChannelInboundHandler<String> handler) {
|
public static void socketClient(String ip, Integer port, PreDetectionParam param, String msg, SimpleChannelInboundHandler<String> handler) {
|
||||||
NioEventLoopGroup group = new NioEventLoopGroup();
|
NioEventLoopGroup group = new NioEventLoopGroup();
|
||||||
Bootstrap bootstrap = new Bootstrap();
|
Bootstrap bootstrap = new Bootstrap();
|
||||||
@@ -52,7 +49,7 @@ public class NettyClient {
|
|||||||
// .addLast(new IdleStateHandler(0, 10, 0, TimeUnit.SECONDS))
|
// .addLast(new IdleStateHandler(0, 10, 0, TimeUnit.SECONDS))
|
||||||
.addLast(new StringDecoder(CharsetUtil.UTF_8))
|
.addLast(new StringDecoder(CharsetUtil.UTF_8))
|
||||||
.addLast(new StringEncoder(CharsetUtil.UTF_8))
|
.addLast(new StringEncoder(CharsetUtil.UTF_8))
|
||||||
.addLast(new HeartbeatHandler(param, source))
|
.addLast(new HeartbeatHandler(param, CnSocketUtil.SOURCE_TAG))
|
||||||
.addLast(handler);
|
.addLast(handler);
|
||||||
} else {
|
} else {
|
||||||
ch.pipeline()
|
ch.pipeline()
|
||||||
@@ -61,7 +58,7 @@ public class NettyClient {
|
|||||||
.addLast(new LineBasedFrameDecoder(10240))
|
.addLast(new LineBasedFrameDecoder(10240))
|
||||||
.addLast(new StringDecoder(CharsetUtil.UTF_8))
|
.addLast(new StringDecoder(CharsetUtil.UTF_8))
|
||||||
.addLast(new StringEncoder(CharsetUtil.UTF_8))
|
.addLast(new StringEncoder(CharsetUtil.UTF_8))
|
||||||
.addLast(new HeartbeatHandler(param, dev))
|
.addLast(new HeartbeatHandler(param, CnSocketUtil.DEV_TAG))
|
||||||
//空闲状态的handler
|
//空闲状态的handler
|
||||||
//readerIdleTimeSeconds:在指定的秒数内如果没有读取到任何数据,则触发IdleState.READER_IDLE事件。
|
//readerIdleTimeSeconds:在指定的秒数内如果没有读取到任何数据,则触发IdleState.READER_IDLE事件。
|
||||||
//writerIdleTimeSeconds:在指定的秒数内如果没有写入任何数据,则触发IdleState.WRITER_IDLE事件。
|
//writerIdleTimeSeconds:在指定的秒数内如果没有写入任何数据,则触发IdleState.WRITER_IDLE事件。
|
||||||
@@ -81,17 +78,17 @@ public class NettyClient {
|
|||||||
} else {
|
} else {
|
||||||
System.out.println("链接服务端成功...");
|
System.out.println("链接服务端成功...");
|
||||||
if (handler instanceof NettySourceClientHandler) {
|
if (handler instanceof NettySourceClientHandler) {
|
||||||
NioEventLoopGroup groupByUserId = SocketManager.getGroupByUserId(param.getUserPageId() + source);
|
NioEventLoopGroup groupByUserId = SocketManager.getGroupByUserId(param.getUserPageId() + CnSocketUtil.SOURCE_TAG);
|
||||||
if (ObjectUtil.isNotNull(groupByUserId)) {
|
if (ObjectUtil.isNotNull(groupByUserId)) {
|
||||||
groupByUserId.shutdownGracefully().sync();
|
groupByUserId.shutdownGracefully().sync();
|
||||||
}
|
}
|
||||||
SocketManager.addGroup(param.getUserPageId() + source, group);
|
SocketManager.addGroup(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, group);
|
||||||
} else {
|
} else {
|
||||||
NioEventLoopGroup groupByUserId = SocketManager.getGroupByUserId(param.getUserPageId() + dev);
|
NioEventLoopGroup groupByUserId = SocketManager.getGroupByUserId(param.getUserPageId() + CnSocketUtil.DEV_TAG);
|
||||||
if (ObjectUtil.isNotNull(groupByUserId)) {
|
if (ObjectUtil.isNotNull(groupByUserId)) {
|
||||||
groupByUserId.shutdownGracefully().sync();
|
groupByUserId.shutdownGracefully().sync();
|
||||||
}
|
}
|
||||||
SocketManager.addGroup(param.getUserPageId() + dev, group);
|
SocketManager.addGroup(param.getUserPageId() + CnSocketUtil.DEV_TAG, group);
|
||||||
}
|
}
|
||||||
|
|
||||||
System.out.println("客户端向服务端发送消息:" + port + msg);
|
System.out.println("客户端向服务端发送消息:" + port + msg);
|
||||||
|
|||||||
@@ -0,0 +1,23 @@
|
|||||||
|
package com.njcn.gather.detection.util.socket.cilent;
|
||||||
|
|
||||||
|
import com.njcn.gather.detection.handler.SocketContrastResponseService;
|
||||||
|
import io.netty.channel.ChannelHandlerContext;
|
||||||
|
import io.netty.channel.SimpleChannelInboundHandler;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @data 2025-07-18
|
||||||
|
*/
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class NettyContrastClientHandler extends SimpleChannelInboundHandler<String> {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private final SocketContrastResponseService socketContrastResponseService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void channelRead0(ChannelHandlerContext channelHandlerContext, String s) throws Exception {
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -213,12 +213,15 @@ public class PqDevParam {
|
|||||||
@Data
|
@Data
|
||||||
public static class BindPlanParam {
|
public static class BindPlanParam {
|
||||||
@ApiModelProperty("检测计划ID")
|
@ApiModelProperty("检测计划ID")
|
||||||
@NotNull(message = DetectionValidMessage.PLAN_ID_NOT_NULL)
|
@NotBlank(message = DetectionValidMessage.PLAN_ID_NOT_BLANK)
|
||||||
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PLAN_ID_FORMAT_ERROR)
|
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PLAN_ID_FORMAT_ERROR)
|
||||||
private String planId;
|
private String planId;
|
||||||
|
|
||||||
@ApiModelProperty("被检设备ID列表")
|
@ApiModelProperty("被检设备ID列表")
|
||||||
@NotNull(message = DetectionValidMessage.PQ_DEV_IDS_NOT_NULL)
|
@NotNull(message = DetectionValidMessage.PQ_DEV_IDS_NOT_NULL)
|
||||||
private List<String> devIds;
|
private List<String> devIds;
|
||||||
|
|
||||||
|
@ApiModelProperty("0-解绑、1-绑定")
|
||||||
|
private Integer bindFlag;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -103,7 +103,7 @@ public class PreDetection {
|
|||||||
/**
|
/**
|
||||||
* 监测点线路号
|
* 监测点线路号
|
||||||
*/
|
*/
|
||||||
@JSONField(name = "pt") //todo 是否改为ct
|
@JSONField(name = "ct") //todo 是否改为ct
|
||||||
private Integer ct;
|
private Integer ct;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -40,7 +40,6 @@ import java.util.List;
|
|||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author caozehui
|
* @author caozehui
|
||||||
* @date 2024-12-09
|
* @date 2024-12-09
|
||||||
@@ -186,7 +185,6 @@ public class AdPlanController extends BaseController {
|
|||||||
adPlanService.analyse(ids);
|
adPlanService.analyse(ids);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/listByPlanId")
|
@PostMapping("/listByPlanId")
|
||||||
@ApiOperation("查询出所有已绑定的设备")
|
@ApiOperation("查询出所有已绑定的设备")
|
||||||
@@ -247,7 +245,7 @@ public class AdPlanController extends BaseController {
|
|||||||
for (PqDevVO pqDevVO : pqDevVOPage.getRecords()) {
|
for (PqDevVO pqDevVO : pqDevVOPage.getRecords()) {
|
||||||
if (StrUtil.isNotBlank(pqDevVO.getPlanId())) {
|
if (StrUtil.isNotBlank(pqDevVO.getPlanId())) {
|
||||||
AdPlan plan1 = planList.stream().filter(p -> p.getId().equals(pqDevVO.getPlanId())).findFirst().get();
|
AdPlan plan1 = planList.stream().filter(p -> p.getId().equals(pqDevVO.getPlanId())).findFirst().get();
|
||||||
if (!ObjectUtil.isNotNull(plan1) && plan.getId().equals(plan1.getFatherPlanId())) {
|
if (ObjectUtil.isNotNull(plan1) && plan.getId().equals(plan1.getFatherPlanId())) {
|
||||||
pqDevVO.setBoundPlanName(plan1.getName());
|
pqDevVO.setBoundPlanName(plan1.getName());
|
||||||
pqDevVO.setAssign(DataStateEnum.ENABLE.getCode());
|
pqDevVO.setAssign(DataStateEnum.ENABLE.getCode());
|
||||||
} else {
|
} else {
|
||||||
@@ -317,7 +315,6 @@ public class AdPlanController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
|
||||||
@PostMapping("/updateBindDev")
|
@PostMapping("/updateBindDev")
|
||||||
@ApiOperation("子计划绑定/解绑被检设备")
|
@ApiOperation("子计划绑定/解绑被检设备")
|
||||||
@@ -326,7 +323,7 @@ public class AdPlanController extends BaseController {
|
|||||||
String methodDescribe = getMethodDescribe("updateBindDev");
|
String methodDescribe = getMethodDescribe("updateBindDev");
|
||||||
LogUtil.njcnDebug(log, "{},绑定/解绑参数为:{}", methodDescribe, param);
|
LogUtil.njcnDebug(log, "{},绑定/解绑参数为:{}", methodDescribe, param);
|
||||||
|
|
||||||
boolean result = adPlanService.updateBindDev(param.getPlanId(), param.getDevIds());
|
boolean result = adPlanService.updateBindDev(param);
|
||||||
if (result) {
|
if (result) {
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, true, methodDescribe);
|
||||||
} else {
|
} else {
|
||||||
@@ -334,7 +331,6 @@ public class AdPlanController extends BaseController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DELETE)
|
// @OperateInfo(info = LogEnum.BUSINESS_COMMON, operateType = OperateType.DELETE)
|
||||||
// @PostMapping("/deleteSubPlan")
|
// @PostMapping("/deleteSubPlan")
|
||||||
// @ApiOperation("删除子计划")
|
// @ApiOperation("删除子计划")
|
||||||
|
|||||||
@@ -163,7 +163,7 @@ public interface IAdPlanService extends IService<AdPlan> {
|
|||||||
* @param pqDevIds
|
* @param pqDevIds
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
boolean updateBindDev(String planId, List<String> pqDevIds);
|
boolean updateBindDev(PqDevParam.BindPlanParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 子计划绑定/解绑标准设备
|
* 子计划绑定/解绑标准设备
|
||||||
|
|||||||
@@ -324,12 +324,25 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
|||||||
// 修改检测计划、检测源关联
|
// 修改检测计划、检测源关联
|
||||||
adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds());
|
adPlanSourceService.updateAdPlanSource(param.getId(), param.getSourceIds());
|
||||||
}
|
}
|
||||||
|
// 若修改了名称,则修改相关子计划的来源字段
|
||||||
|
if (!plan1.getName().equals(param.getName()) && CommonEnum.FATHER_ID.getValue().equals(plan1.getFatherPlanId())) {
|
||||||
|
this.lambdaUpdate().in(AdPlan::getFatherPlanId, plan1.getId()).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode())
|
||||||
|
.set(AdPlan::getOrigin, param.getName()).update();
|
||||||
|
}
|
||||||
return this.updateById(plan2);
|
return this.updateById(plan2);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean deleteAdPlan(List<String> ids, String pattern) {
|
public boolean deleteAdPlan(List<String> ids, String pattern) {
|
||||||
|
for (String id : ids) {
|
||||||
|
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
|
||||||
|
queryParam.setPlanIdList(Arrays.asList(id));
|
||||||
|
if (ObjectUtils.isNotEmpty(pqDevService.listByPlanId(queryParam))) {
|
||||||
|
throw new BusinessException(DetectionResponseEnum.PLAN_HAS_DEVICE_BIND);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
DictData dictData = dictDataService.getDictDataById(pattern);
|
DictData dictData = dictDataService.getDictDataById(pattern);
|
||||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||||
List<AdPlan> planList = this.lambdaQuery().in(AdPlan::getFatherPlanId, ids).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode()).list();
|
List<AdPlan> planList = this.lambdaQuery().in(AdPlan::getFatherPlanId, ids).eq(AdPlan::getState, DataStateEnum.ENABLE.getCode()).list();
|
||||||
@@ -339,22 +352,13 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
|||||||
|
|
||||||
// 删除检测计划、标准设备关联
|
// 删除检测计划、标准设备关联
|
||||||
adPlanStandardDevService.deleteAdPlanStandardDev(ids);
|
adPlanStandardDevService.deleteAdPlanStandardDev(ids);
|
||||||
}
|
} else {
|
||||||
|
|
||||||
for (String id : ids) {
|
|
||||||
PqDevParam.QueryParam queryParam = new PqDevParam.QueryParam();
|
|
||||||
queryParam.setPlanIdList(Arrays.asList(id));
|
|
||||||
if (ObjectUtils.isNotEmpty(pqDevService.listByPlanId(queryParam))) {
|
|
||||||
throw new BusinessException(DetectionResponseEnum.PLAN_HAS_DEVICE_BIND);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 删除检测计划、检测源关联
|
|
||||||
adPlanSourceService.deleteAdPlanSourceByPlanIds(ids);
|
|
||||||
|
|
||||||
// 删除相关检测表格
|
// 删除相关检测表格
|
||||||
List<String> codeList = this.listByIds(ids).stream().map(plan -> String.valueOf(plan.getCode())).collect(Collectors.toList());
|
List<String> codeList = this.listByIds(ids).stream().map(plan -> String.valueOf(plan.getCode())).collect(Collectors.toList());
|
||||||
tableGenService.deleteTable(codeList);
|
tableGenService.deleteTable(codeList);
|
||||||
|
// 删除检测计划、检测源关联
|
||||||
|
adPlanSourceService.deleteAdPlanSourceByPlanIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
return this.lambdaUpdate().in(AdPlan::getId, ids).set(AdPlan::getState, DataStateEnum.DELETED.getCode()).update();
|
return this.lambdaUpdate().in(AdPlan::getId, ids).set(AdPlan::getState, DataStateEnum.DELETED.getCode()).update();
|
||||||
}
|
}
|
||||||
@@ -702,26 +706,39 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
|
|||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public boolean updateSubPlanName(String planId, String name) {
|
public boolean updateSubPlanName(String planId, String name) {
|
||||||
AdPlan plan = new AdPlan();
|
AdPlan plan = this.getById(planId);
|
||||||
plan.setId(planId);
|
|
||||||
plan.setName(name);
|
plan.setName(name);
|
||||||
|
|
||||||
return this.updateById(plan);
|
return this.updateById(plan);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean updateBindDev(String planId, List<String> pqDevIds) {
|
public boolean updateBindDev(PqDevParam.BindPlanParam param) {
|
||||||
|
|
||||||
List<AdPlan> list = new ArrayList<>();
|
List<AdPlan> list = new ArrayList<>();
|
||||||
AdPlan plan = this.getById(planId);
|
AdPlan plan = this.getById(param.getPlanId());
|
||||||
plan.setTestState(pqDevService.bind(planId, pqDevIds));
|
AdPlan fatherPlan = this.getById(plan.getFatherPlanId());
|
||||||
|
|
||||||
|
List<PqDev> pqDevList1 = pqDevService.list(new QueryWrapper<PqDev>().eq("Plan_Id", param.getPlanId()).eq("State", DataStateEnum.ENABLE.getCode()));
|
||||||
|
List<String> devIds1 = pqDevList1.stream().map(PqDev::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<PqDev> pqDevList2 = pqDevService.list(new QueryWrapper<PqDev>().eq("Plan_Id", fatherPlan.getId()).eq("State", DataStateEnum.ENABLE.getCode()));
|
||||||
|
List<String> devIds2 = pqDevList2.stream().map(PqDev::getId).collect(Collectors.toList());
|
||||||
|
|
||||||
|
if (param.getBindFlag().equals(1)) {
|
||||||
|
devIds1.addAll(param.getDevIds());
|
||||||
|
devIds2.removeAll(param.getDevIds());
|
||||||
|
} else {
|
||||||
|
devIds1.removeAll(param.getDevIds());
|
||||||
|
devIds2.addAll(param.getDevIds());
|
||||||
|
}
|
||||||
|
|
||||||
|
plan.setTestState(pqDevService.bind(param.getPlanId(), devIds1));
|
||||||
list.add(plan);
|
list.add(plan);
|
||||||
|
|
||||||
// 同时修改父计划的绑定
|
fatherPlan.setTestState(pqDevService.bind(fatherPlan.getId(), devIds2));
|
||||||
AdPlan fatherPlan = this.getById(plan.getFatherPlanId());
|
|
||||||
if (ObjectUtil.isNotNull(fatherPlan)) {
|
|
||||||
fatherPlan.setTestState(pqDevService.bind(fatherPlan.getId(), pqDevIds));
|
|
||||||
list.add(fatherPlan);
|
list.add(fatherPlan);
|
||||||
}
|
|
||||||
return this.updateBatchById(list);
|
return this.updateBatchById(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ public interface DetectionValidMessage {
|
|||||||
|
|
||||||
String RECHECK_NUM_NOT_NULL = "检测次数不能为空,请检查reCheckNum参数";
|
String RECHECK_NUM_NOT_NULL = "检测次数不能为空,请检查reCheckNum参数";
|
||||||
|
|
||||||
String PLAN_ID_NOT_NULL = "检测计划ID不能为空,请检查planId参数";
|
String PLAN_ID_NOT_BLANK = "检测计划ID不能为空,请检查planId参数";
|
||||||
|
|
||||||
String PQ_DEV_IDS_NOT_NULL = "设备ID集合不能为null,请检查pqDevIds参数";
|
String PQ_DEV_IDS_NOT_NULL = "设备ID集合不能为null,请检查pqDevIds参数";
|
||||||
|
|
||||||
@@ -196,4 +196,7 @@ public interface DetectionValidMessage {
|
|||||||
String INSPECT_DATE_NOT_NULL = "定检日期不能为空";
|
String INSPECT_DATE_NOT_NULL = "定检日期不能为空";
|
||||||
String HARM_SYS_ID_NOT_BLANK = "谐波系统设备id不能为空";
|
String HARM_SYS_ID_NOT_BLANK = "谐波系统设备id不能为空";
|
||||||
String FATHER_PLAN_ID_FORMAT_ERROR = "父计划ID格式错误";
|
String FATHER_PLAN_ID_FORMAT_ERROR = "父计划ID格式错误";
|
||||||
|
String DEV_IDS_NOT_EMPTY = "被检设备不能为空";
|
||||||
|
String STANDARD_DEV_IDS_NOT_EMPTY = "标准设备不能为空";
|
||||||
|
String PAIRS_NOT_EMPTY = "配对关系不能为空";
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ public class ResultParam {
|
|||||||
public static class QueryParam {
|
public static class QueryParam {
|
||||||
|
|
||||||
@ApiModelProperty(value = "检测计划Id", required = true)
|
@ApiModelProperty(value = "检测计划Id", required = true)
|
||||||
@NotBlank(message = DetectionValidMessage.PLAN_ID_NOT_NULL)
|
@NotBlank(message = DetectionValidMessage.PLAN_ID_NOT_BLANK)
|
||||||
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PLAN_ID_FORMAT_ERROR)
|
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PLAN_ID_FORMAT_ERROR)
|
||||||
private String planId;
|
private String planId;
|
||||||
|
|
||||||
@@ -68,7 +68,7 @@ public class ResultParam {
|
|||||||
@Data
|
@Data
|
||||||
public static class ChangeErrorSystemParam {
|
public static class ChangeErrorSystemParam {
|
||||||
@ApiModelProperty(value = "检测计划Id", required = true)
|
@ApiModelProperty(value = "检测计划Id", required = true)
|
||||||
@NotBlank(message = DetectionValidMessage.PLAN_ID_NOT_NULL)
|
@NotBlank(message = DetectionValidMessage.PLAN_ID_NOT_BLANK)
|
||||||
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PLAN_ID_FORMAT_ERROR)
|
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PLAN_ID_FORMAT_ERROR)
|
||||||
private String planId;
|
private String planId;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user