代码调整
This commit is contained in:
@@ -463,6 +463,12 @@ public class SocketDevResponseService {
|
||||
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) {
|
||||
@@ -522,6 +528,14 @@ public class SocketDevResponseService {
|
||||
coefficientVO.setAIeXi(isWithinTenPercent(optionalIA, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格");
|
||||
coefficientVO.setBIeXi(isWithinTenPercent(optionalIB, 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())){
|
||||
coefficientVO.setResultFlag(0);
|
||||
}else {
|
||||
@@ -726,6 +740,7 @@ public class SocketDevResponseService {
|
||||
SocketManager.addSourceList(sourceIssues);
|
||||
Map<String, Long> sourceIssueMap = sourceIssues.stream().collect(Collectors.groupingBy(SourceIssue::getType, Collectors.counting()));
|
||||
SocketManager.initMap(sourceIssueMap);
|
||||
|
||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssues.get(0).getType());
|
||||
SocketManager.sendMsg(param.getUserPageId() + handlerSourceStr, JSON.toJSONString(socketMsg));
|
||||
@@ -825,9 +840,18 @@ public class SocketDevResponseService {
|
||||
dataMsg.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
|
||||
|
||||
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));
|
||||
}
|
||||
|
||||
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();
|
||||
if (param.getOperateType().equals(SourceOperateCodeEnum.PRE_TEST.getValue())) {
|
||||
System.out.println("预检测流程接受-----------------关闭源");
|
||||
System.out.println("预检测流程结束-----------------关闭源");
|
||||
//同时关闭设备三个步骤
|
||||
CnSocketUtil.quitSend(param);
|
||||
} else if (param.getOperateType().equals(SourceOperateCodeEnum.COEFFICIENT_TEST.getValue())) {
|
||||
@@ -916,7 +940,7 @@ public class SocketDevResponseService {
|
||||
|
||||
|
||||
if (successComm.size() == FormalTestManager.monitorIdListComm.size()) {
|
||||
//TODO 理论上遇到返回code10200的数量与监测点数量一致则认为数据返回结束,但是会存在缺失数据情况,例如有部分装置是没有暂降功能的
|
||||
|
||||
System.out.println(sourceIssue.getType() + splitTag + sourceIssue.getIndex() + "当前测试小项读取数据已经全部结束。。。。。。。。。");
|
||||
//修改装置为监测中
|
||||
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);
|
||||
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
|
||||
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd);
|
||||
webSocketVO.setDesc(sourceIssue.getDesc());
|
||||
|
||||
//组装实体推送给前台
|
||||
List<DevLineTestResult> devListRes = new ArrayList<>();
|
||||
FormalTestManager.devList.forEach(dev -> {
|
||||
@@ -944,15 +966,20 @@ public class SocketDevResponseService {
|
||||
devLineTestResult.setChnResult(resultFlagList.toArray(new Integer[monitorListDTOList.size()]));
|
||||
devListRes.add(devLineTestResult);
|
||||
});
|
||||
|
||||
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
|
||||
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd);
|
||||
webSocketVO.setDesc(sourceIssue.getDesc());
|
||||
webSocketVO.setData(devListRes);
|
||||
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;
|
||||
SocketManager.addTargetMap(sourceIssue.getType(), tem);
|
||||
System.out.println("该大项还有" + tem + "个小项没有进行检测!!!!!!!!");
|
||||
|
||||
if (tem == 0) {
|
||||
System.out.println(sourceIssue.getType() + sourceIssue.getIndex() + "当前测试大项已经全部结束》》》》》》》》");
|
||||
//当val为0则认为大项中的小项已经全部跑完,开始组装信息推送给前端
|
||||
@@ -960,13 +987,10 @@ public class SocketDevResponseService {
|
||||
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd);
|
||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||
}
|
||||
System.out.println("当前小项结束进行删除============" + sourceIssue.getType() + splitTag + sourceIssue.getIndex());
|
||||
|
||||
//当小项结束后需要删除集合中的小项
|
||||
SocketManager.delSource(sourceIssue.getIndex());
|
||||
//在这一步判断是否已经触发暂停按钮
|
||||
if (FormalTestManager.stopFlag) {
|
||||
// CnSocketUtil.quitSend(param);
|
||||
if (FormalTestManager.stopFlag && CollUtil.isNotEmpty(SocketManager.getSourceList())) {
|
||||
FormalTestManager.stopTime = 0;
|
||||
successComm.clear();
|
||||
realDataXiList.clear();
|
||||
sendWebSocket(param.getUserPageId(), "preStopTest", "stop", null);
|
||||
@@ -976,8 +1000,13 @@ public class SocketDevResponseService {
|
||||
//开始进行下一项检测
|
||||
List<SourceIssue> sourceIssueList = SocketManager.getSourceList();
|
||||
if (CollUtil.isNotEmpty(sourceIssueList)) {
|
||||
|
||||
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<>();
|
||||
xuMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||
xuMsg.setData(JSON.toJSONString(sourceIssues));
|
||||
@@ -1198,6 +1227,7 @@ public class SocketDevResponseService {
|
||||
successComm.clear();
|
||||
successDevComm.clear();
|
||||
failDevComm.clear();
|
||||
FormalTestManager.stopFlag = false;
|
||||
|
||||
//初始化相序集合
|
||||
this.devInfo.clear();
|
||||
|
||||
@@ -315,10 +315,7 @@ public class SocketSourceResponseService {
|
||||
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<>();
|
||||
devList.forEach(item->{
|
||||
DevLineTestResult devLineTestResult = new DevLineTestResult();
|
||||
@@ -326,6 +323,15 @@ public class SocketSourceResponseService {
|
||||
devLineTestResult.setDeviceName(item.getDevName());
|
||||
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);
|
||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||
|
||||
|
||||
@@ -38,7 +38,7 @@ public enum SourceResponseCodeEnum {
|
||||
SOCKET_ERROR(25000,"服务端连接失败"),
|
||||
DEV_COMM_ALL_SUCCESS(25001,"校验成功"),
|
||||
DEV_COMM_TEST_FAIL(25002,"设备通讯校验失败"),
|
||||
|
||||
PHASE_CHECK_FAIL(25003,"相序校验未通过"),
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -63,6 +63,25 @@ public class CoefficientVO {
|
||||
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
|
||||
|
||||
@@ -42,5 +42,7 @@ public class FormalTestManager {
|
||||
|
||||
public static Boolean stopFlag = false;
|
||||
|
||||
public static Integer stopTime = 0;
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -87,6 +87,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
|
||||
@Override
|
||||
public void channelInactive(ChannelHandlerContext ctx) {
|
||||
System.out.println("设备通讯客户端断线");
|
||||
ctx.close();
|
||||
SocketManager.removeUser(param.getUserPageId() + dev);
|
||||
}
|
||||
|
||||
@@ -139,6 +140,13 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
|
||||
CnSocketUtil.quitSend(param);
|
||||
}
|
||||
System.out.println("已经等了一分钟了。。。。。。。。。。。。");
|
||||
}else {
|
||||
//如果是暂停操作后
|
||||
FormalTestManager.stopTime+=60;
|
||||
System.out.println("当前进入暂停操作超时函数-----------------"+FormalTestManager.stopTime);
|
||||
if(FormalTestManager.stopTime > 600){
|
||||
CnSocketUtil.quitSend(param);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -72,15 +72,7 @@ public class NettySourceClientHandler extends SimpleChannelInboundHandler<String
|
||||
@Override
|
||||
public void channelInactive(ChannelHandlerContext ctx) throws Exception{
|
||||
System.out.println("源通讯客户端断线");
|
||||
|
||||
Channel channel = SocketManager.getChannelByUserId(webUser.getUserPageId()+sourceTag);
|
||||
if(Objects.nonNull(channel)){
|
||||
try {
|
||||
channel.close().sync();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
ctx.close();
|
||||
SocketManager.removeUser(webUser.getUserPageId()+sourceTag);
|
||||
// System.out.println("断线了......" + ctx.channel());
|
||||
// ctx.channel().eventLoop().schedule(() -> {
|
||||
|
||||
Reference in New Issue
Block a user