代码调整

This commit is contained in:
2025-01-14 19:40:46 +08:00
parent 4416459877
commit 3afa32bda4
7 changed files with 85 additions and 28 deletions

View File

@@ -463,6 +463,12 @@ public class SocketDevResponseService {
return percentage <= limit; return percentage <= limit;
} }
private BigDecimal rangeNum(double num1, double num2){
double diff = Math.abs(num1 - num2);
double larger = Math.max(num1, num2);
return BigDecimal.valueOf(diff / larger).setScale(4,RoundingMode.HALF_UP);
}
private void assemblyEntity(List<DevData> deList, DevXiNumData.F F, CoefficientVO coefficientVO, CoefficientVO.DevParameter devParameter) { private void assemblyEntity(List<DevData> deList, DevXiNumData.F F, CoefficientVO coefficientVO, CoefficientVO.DevParameter devParameter) {
@@ -522,6 +528,14 @@ public class SocketDevResponseService {
coefficientVO.setAIeXi(isWithinTenPercent(optionalIA, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格"); coefficientVO.setAIeXi(isWithinTenPercent(optionalIA, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格");
coefficientVO.setBIeXi(isWithinTenPercent(optionalIB, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格"); coefficientVO.setBIeXi(isWithinTenPercent(optionalIB, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格");
coefficientVO.setCIeXi(isWithinTenPercent(optionalIC, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格"); coefficientVO.setCIeXi(isWithinTenPercent(optionalIC, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格");
coefficientVO.setAV(rangeNum(optionalA, devParameter.getDevVolt()).toString());
coefficientVO.setBV(rangeNum(optionalB, devParameter.getDevVolt()).toString());
coefficientVO.setCV(rangeNum(optionalC, devParameter.getDevVolt()).toString());
coefficientVO.setAI(rangeNum(optionalIA, devParameter.getDevVolt()).toString());
coefficientVO.setBI(rangeNum(optionalIB, devParameter.getDevVolt()).toString());
coefficientVO.setCI(rangeNum(optionalIC, devParameter.getDevVolt()).toString());
if("不合格".equals(coefficientVO.getAVuXi()) ||"不合格".equals(coefficientVO.getBVuXi()) ||"不合格".equals(coefficientVO.getCVuXi()) ||"不合格".equals(coefficientVO.getAIeXi()) ||"不合格".equals(coefficientVO.getBIeXi()) ||"不合格".equals(coefficientVO.getCIeXi())){ if("不合格".equals(coefficientVO.getAVuXi()) ||"不合格".equals(coefficientVO.getBVuXi()) ||"不合格".equals(coefficientVO.getCVuXi()) ||"不合格".equals(coefficientVO.getAIeXi()) ||"不合格".equals(coefficientVO.getBIeXi()) ||"不合格".equals(coefficientVO.getCIeXi())){
coefficientVO.setResultFlag(0); coefficientVO.setResultFlag(0);
}else { }else {
@@ -726,6 +740,7 @@ public class SocketDevResponseService {
SocketManager.addSourceList(sourceIssues); SocketManager.addSourceList(sourceIssues);
Map<String, Long> sourceIssueMap = sourceIssues.stream().collect(Collectors.groupingBy(SourceIssue::getType, Collectors.counting())); Map<String, Long> sourceIssueMap = sourceIssues.stream().collect(Collectors.groupingBy(SourceIssue::getType, Collectors.counting()));
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() + stepTag + sourceIssues.get(0).getType());
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg)); SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
@@ -825,9 +840,18 @@ 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() + "校验结果:" + (sourceCompareDev.getIsQualified() ? "合格" : "不合格")); dataMsg.setData(sourceCompareDev.getDevName() + splitTag + sourceCompareDev.getLineNum() + SocketManager.valueTypeMap.get(sourceCompareDev.getDesc()) + "校验结果:" + (sourceCompareDev.getIsQualified() ? "合格" : "不合格"));
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(dataMsg)); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(dataMsg));
} }
if(info.stream().anyMatch(it -> !it.getIsQualified())){
WebSocketVO<String> webSocketVO = new WebSocketVO<>();
webSocketVO.setRequestId(SourceOperateCodeEnum.YJC_XUJY.getValue());
webSocketVO.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
webSocketVO.setCode(SourceResponseCodeEnum.PHASE_CHECK_FAIL.getCode());
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
return;
}
} }
//向前端推送消息 //向前端推送消息
@@ -839,7 +863,7 @@ public class SocketDevResponseService {
successComm.clear(); successComm.clear();
if (param.getOperateType().equals(SourceOperateCodeEnum.PRE_TEST.getValue())) { if (param.getOperateType().equals(SourceOperateCodeEnum.PRE_TEST.getValue())) {
System.out.println("预检测流程接受-----------------关闭源"); System.out.println("预检测流程结束-----------------关闭源");
//同时关闭设备三个步骤 //同时关闭设备三个步骤
CnSocketUtil.quitSend(param); CnSocketUtil.quitSend(param);
} else if (param.getOperateType().equals(SourceOperateCodeEnum.COEFFICIENT_TEST.getValue())) { } else if (param.getOperateType().equals(SourceOperateCodeEnum.COEFFICIENT_TEST.getValue())) {
@@ -916,7 +940,7 @@ public class SocketDevResponseService {
if (successComm.size() == FormalTestManager.monitorIdListComm.size()) { if (successComm.size() == FormalTestManager.monitorIdListComm.size()) {
//TODO 理论上遇到返回code10200的数量与监测点数量一致则认为数据返回结束但是会存在缺失数据情况,例如有部分装置是没有暂降功能的
System.out.println(sourceIssue.getType() + splitTag + sourceIssue.getIndex() + "当前测试小项读取数据已经全部结束。。。。。。。。。"); System.out.println(sourceIssue.getType() + splitTag + sourceIssue.getIndex() + "当前测试小项读取数据已经全部结束。。。。。。。。。");
//修改装置为监测中 //修改装置为监测中
adPlanService.updateTestState(param.getPlanId(), param.getDevIds()); adPlanService.updateTestState(param.getPlanId(), param.getDevIds());
@@ -925,9 +949,7 @@ public class SocketDevResponseService {
//调用判断方法 //调用判断方法
Map<String, Integer> textResult = detectionServiceImpl.processing(realDataXiList, param, FormalTestManager.devIdMapComm, sourceIssue, dataRule); Map<String, Integer> textResult = detectionServiceImpl.processing(realDataXiList, param, FormalTestManager.devIdMapComm, sourceIssue, dataRule);
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd);
webSocketVO.setDesc(sourceIssue.getDesc());
//组装实体推送给前台 //组装实体推送给前台
List<DevLineTestResult> devListRes = new ArrayList<>(); List<DevLineTestResult> devListRes = new ArrayList<>();
FormalTestManager.devList.forEach(dev -> { FormalTestManager.devList.forEach(dev -> {
@@ -944,15 +966,20 @@ public class SocketDevResponseService {
devLineTestResult.setChnResult(resultFlagList.toArray(new Integer[monitorListDTOList.size()])); devLineTestResult.setChnResult(resultFlagList.toArray(new Integer[monitorListDTOList.size()]));
devListRes.add(devLineTestResult); devListRes.add(devLineTestResult);
}); });
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd);
webSocketVO.setDesc(sourceIssue.getDesc());
webSocketVO.setData(devListRes); webSocketVO.setData(devListRes);
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
//当小项结束后需要删除集合中的小项
SocketManager.delSource(sourceIssue.getIndex());
System.out.println("当前小项结束进行删除============" + sourceIssue.getType() + splitTag + sourceIssue.getIndex());
long tem = SocketManager.getSourceTarget(sourceIssue.getType()) - 1; long tem = SocketManager.getSourceTarget(sourceIssue.getType()) - 1;
SocketManager.addTargetMap(sourceIssue.getType(), tem); SocketManager.addTargetMap(sourceIssue.getType(), tem);
System.out.println("该大项还有" + tem + "个小项没有进行检测!!!!!!!!"); System.out.println("该大项还有" + tem + "个小项没有进行检测!!!!!!!!");
if (tem == 0) { if (tem == 0) {
System.out.println(sourceIssue.getType() + sourceIssue.getIndex() + "当前测试大项已经全部结束》》》》》》》》"); System.out.println(sourceIssue.getType() + sourceIssue.getIndex() + "当前测试大项已经全部结束》》》》》》》》");
//当val为0则认为大项中的小项已经全部跑完开始组装信息推送给前端 //当val为0则认为大项中的小项已经全部跑完开始组装信息推送给前端
@@ -960,13 +987,10 @@ public class SocketDevResponseService {
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd); webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd);
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
} }
System.out.println("当前小项结束进行删除============" + sourceIssue.getType() + splitTag + sourceIssue.getIndex());
//当小项结束后需要删除集合中的小项
SocketManager.delSource(sourceIssue.getIndex());
//在这一步判断是否已经触发暂停按钮 //在这一步判断是否已经触发暂停按钮
if (FormalTestManager.stopFlag) { if (FormalTestManager.stopFlag && CollUtil.isNotEmpty(SocketManager.getSourceList())) {
// CnSocketUtil.quitSend(param); FormalTestManager.stopTime = 0;
successComm.clear(); successComm.clear();
realDataXiList.clear(); realDataXiList.clear();
sendWebSocket(param.getUserPageId(), "preStopTest", "stop", null); sendWebSocket(param.getUserPageId(), "preStopTest", "stop", null);
@@ -976,8 +1000,13 @@ public class SocketDevResponseService {
//开始进行下一项检测 //开始进行下一项检测
List<SourceIssue> sourceIssueList = SocketManager.getSourceList(); List<SourceIssue> sourceIssueList = SocketManager.getSourceList();
if (CollUtil.isNotEmpty(sourceIssueList)) { if (CollUtil.isNotEmpty(sourceIssueList)) {
SourceIssue sourceIssues = SocketManager.getSourceList().get(0); SourceIssue sourceIssues = SocketManager.getSourceList().get(0);
if(tem == 0){
webSocketVO.setRequestId(sourceIssues.getType()+ stepBegin);
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
}
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));
@@ -1198,6 +1227,7 @@ public class SocketDevResponseService {
successComm.clear(); successComm.clear();
successDevComm.clear(); successDevComm.clear();
failDevComm.clear(); failDevComm.clear();
FormalTestManager.stopFlag = false;
//初始化相序集合 //初始化相序集合
this.devInfo.clear(); this.devInfo.clear();

View File

@@ -315,10 +315,7 @@ public class SocketSourceResponseService {
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg)); SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
//告诉前端当前项开始了
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1]+stepBegin);
webSocketVO.setDesc(SocketManager.getSourceList().get(0).getDesc());
List<DevLineTestResult> devListRes = new ArrayList<>(); List<DevLineTestResult> devListRes = new ArrayList<>();
devList.forEach(item->{ devList.forEach(item->{
DevLineTestResult devLineTestResult = new DevLineTestResult(); DevLineTestResult devLineTestResult = new DevLineTestResult();
@@ -326,6 +323,15 @@ public class SocketSourceResponseService {
devLineTestResult.setDeviceName(item.getDevName()); devLineTestResult.setDeviceName(item.getDevName());
devListRes.add(devLineTestResult); devListRes.add(devLineTestResult);
}); });
//告诉前端当前项开始了
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1]+stepBegin);
webSocketVO.setData(devListRes);
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1]+stepBegin);
webSocketVO.setDesc(SocketManager.getSourceList().get(0).getDesc());
webSocketVO.setData(devListRes); webSocketVO.setData(devListRes);
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO)); webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));

View File

@@ -38,7 +38,7 @@ public enum SourceResponseCodeEnum {
SOCKET_ERROR(25000,"服务端连接失败"), SOCKET_ERROR(25000,"服务端连接失败"),
DEV_COMM_ALL_SUCCESS(25001,"校验成功"), DEV_COMM_ALL_SUCCESS(25001,"校验成功"),
DEV_COMM_TEST_FAIL(25002,"设备通讯校验失败"), DEV_COMM_TEST_FAIL(25002,"设备通讯校验失败"),
PHASE_CHECK_FAIL(25003,"相序校验未通过"),

View File

@@ -63,6 +63,25 @@ public class CoefficientVO {
private String cIeXi; private String cIeXi;
@JSONField(name = "aV", ordinal = 16)
private String aV;
@JSONField(name = "bV", ordinal = 17)
private String bV;
@JSONField(name = "cV", ordinal = 18)
private String cV;
@JSONField(name = "aI", ordinal = 19)
private String aI;
@JSONField(name = "bI", ordinal = 20)
private String bI;
@JSONField(name = "cI", ordinal = 21)
private String cI;
/** /**
* 标识校验不合格的为 0 合格项为 1 * 标识校验不合格的为 0 合格项为 1

View File

@@ -42,5 +42,7 @@ public class FormalTestManager {
public static Boolean stopFlag = false; public static Boolean stopFlag = false;
public static Integer stopTime = 0;
} }

View File

@@ -87,6 +87,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
@Override @Override
public void channelInactive(ChannelHandlerContext ctx) { public void channelInactive(ChannelHandlerContext ctx) {
System.out.println("设备通讯客户端断线"); System.out.println("设备通讯客户端断线");
ctx.close();
SocketManager.removeUser(param.getUserPageId() + dev); SocketManager.removeUser(param.getUserPageId() + dev);
} }
@@ -139,6 +140,13 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
CnSocketUtil.quitSend(param); CnSocketUtil.quitSend(param);
} }
System.out.println("已经等了一分钟了。。。。。。。。。。。。"); System.out.println("已经等了一分钟了。。。。。。。。。。。。");
}else {
//如果是暂停操作后
FormalTestManager.stopTime+=60;
System.out.println("当前进入暂停操作超时函数-----------------"+FormalTestManager.stopTime);
if(FormalTestManager.stopTime > 600){
CnSocketUtil.quitSend(param);
}
} }
} }
} }

View File

@@ -72,15 +72,7 @@ public class NettySourceClientHandler extends SimpleChannelInboundHandler<String
@Override @Override
public void channelInactive(ChannelHandlerContext ctx) throws Exception{ public void channelInactive(ChannelHandlerContext ctx) throws Exception{
System.out.println("源通讯客户端断线"); System.out.println("源通讯客户端断线");
ctx.close();
Channel channel = SocketManager.getChannelByUserId(webUser.getUserPageId()+sourceTag);
if(Objects.nonNull(channel)){
try {
channel.close().sync();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
SocketManager.removeUser(webUser.getUserPageId()+sourceTag); SocketManager.removeUser(webUser.getUserPageId()+sourceTag);
// System.out.println("断线了......" + ctx.channel()); // System.out.println("断线了......" + ctx.channel());
// ctx.channel().eventLoop().schedule(() -> { // ctx.channel().eventLoop().schedule(() -> {