代码调整
This commit is contained in:
@@ -5,6 +5,7 @@ import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.njcn.gather.detection.pojo.dto.DevXiNumData;
|
||||
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
||||
import com.njcn.gather.detection.pojo.enums.SourceResponseCodeEnum;
|
||||
@@ -15,6 +16,7 @@ import com.njcn.gather.detection.pojo.vo.*;
|
||||
import com.njcn.gather.detection.service.impl.DetectionServiceImpl;
|
||||
import com.njcn.gather.detection.util.socket.*;
|
||||
import com.njcn.gather.detection.util.socket.web.WebSocketHandler;
|
||||
import com.njcn.gather.device.device.pojo.po.PqDev;
|
||||
import com.njcn.gather.device.device.pojo.vo.PreDetection;
|
||||
import com.njcn.gather.device.device.service.IPqDevService;
|
||||
import com.njcn.gather.device.script.pojo.param.PqScriptIssueParam;
|
||||
@@ -46,6 +48,7 @@ import java.time.format.DateTimeParseException;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.ExecutorService;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
@@ -250,6 +253,8 @@ public class SocketDevResponseService {
|
||||
//获取数据流程结束,先把所有数据存到内存中
|
||||
Map<String, List<DevData>> realDataXiMap = realDataXiList.stream().collect(Collectors.groupingBy(it -> it.getId().split(splitTag)[0]));
|
||||
realDataXiMap.forEach((devIp, dataList) -> {
|
||||
AtomicBoolean xiFlag = new AtomicBoolean(true);
|
||||
|
||||
XiNumberManager.devXiList.add(devIp);
|
||||
Map<String, List<DevData>> monitorMap = dataList.stream().collect(Collectors.groupingBy(DevData::getId));
|
||||
|
||||
@@ -274,6 +279,9 @@ public class SocketDevResponseService {
|
||||
coefficientVO.setDesc((XiNumberManager.stepNumber == 0 || XiNumberManager.stepNumber == 1) ? "系数下装" : "系数校准");
|
||||
|
||||
assemblyEntity(list, F, coefficientVO, devParameter);
|
||||
if(Objects.nonNull(coefficientVO.getResultFlag()) && coefficientVO.getResultFlag() == 0){
|
||||
xiFlag.set(false);
|
||||
}
|
||||
|
||||
DevXiNumData.GF gfItem = new DevXiNumData.GF();
|
||||
gfItem.setUMonitorPoint(Integer.parseInt(splitStr[1]) - 1);
|
||||
@@ -291,10 +299,15 @@ public class SocketDevResponseService {
|
||||
devXiNumData.setChnNum(0);
|
||||
devXiNumData.setDevIP(devIp);
|
||||
devXiNumData.setGf(gf);
|
||||
if(xiFlag.get()){
|
||||
devXiNumData.setResultFlag(1);
|
||||
}else {
|
||||
devXiNumData.setResultFlag(0);
|
||||
}
|
||||
|
||||
if (XiNumberManager.stepNumber == 0) {
|
||||
if (XiNumberManager.stepNumber == 0||XiNumberManager.stepNumber == 2) {
|
||||
XiNumberManager.devXiNumDataMap.put(devIp, devXiNumData);
|
||||
} else if (XiNumberManager.stepNumber == 1) {
|
||||
} else if (XiNumberManager.stepNumber == 1||XiNumberManager.stepNumber == 3) {
|
||||
XiNumberManager.smallDevXiNumDataMap.put(devIp, devXiNumData);
|
||||
}
|
||||
});
|
||||
@@ -330,8 +343,6 @@ public class SocketDevResponseService {
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
System.out.println(devIp);
|
||||
flag = false;
|
||||
//继续下发一轮
|
||||
if (!ia) {
|
||||
@@ -399,6 +410,19 @@ public class SocketDevResponseService {
|
||||
sendWebSocket(param.getUserPageId(), SourceOperateCodeEnum.Coefficient_Check.getValue(), SourceOperateCodeEnum.small_comp_end.getValue(), XiNumberManager.devParameterList.get(1));
|
||||
System.out.println("-------------------------已经全部结束----------------------");
|
||||
CnSocketUtil.quitSend(param);
|
||||
//修改设备表Factor_Check_Result字段
|
||||
XiNumberManager.devXiNumDataMap.forEach((key,val)->{
|
||||
DevXiNumData small = XiNumberManager.smallDevXiNumDataMap.get(key);
|
||||
LambdaUpdateWrapper<PqDev> updateWrapper = new LambdaUpdateWrapper<>();
|
||||
updateWrapper.eq(PqDev::getId,FormalTestManager.devIdMapComm.get(key));
|
||||
if(val.getResultFlag() == 0 || small.getResultFlag() == 0){
|
||||
updateWrapper.set(PqDev::getFactorCheckResult,0);
|
||||
}else {
|
||||
updateWrapper.set(PqDev::getFactorCheckResult,1);
|
||||
}
|
||||
iPqDevService.update(updateWrapper);
|
||||
updateWrapper.clear();
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
@@ -441,6 +465,7 @@ public class SocketDevResponseService {
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void assemblyEntity(List<DevData> deList, DevXiNumData.F F, CoefficientVO coefficientVO, CoefficientVO.DevParameter devParameter) {
|
||||
//表示接收完成,必须保证10个数
|
||||
if (deList.size() >= 10) {
|
||||
@@ -498,6 +523,11 @@ public class SocketDevResponseService {
|
||||
coefficientVO.setAIeXi(isWithinTenPercent(optionalIA, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格");
|
||||
coefficientVO.setBIeXi(isWithinTenPercent(optionalIB, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格");
|
||||
coefficientVO.setCIeXi(isWithinTenPercent(optionalIC, devParameter.getDevCurr(), iLimit) ? "合格" : "不合格");
|
||||
if("不合格".equals(coefficientVO.getAVuXi()) ||"不合格".equals(coefficientVO.getBVuXi()) ||"不合格".equals(coefficientVO.getCVuXi()) ||"不合格".equals(coefficientVO.getAIeXi()) ||"不合格".equals(coefficientVO.getBIeXi()) ||"不合格".equals(coefficientVO.getCIeXi())){
|
||||
coefficientVO.setResultFlag(0);
|
||||
}else {
|
||||
coefficientVO.setResultFlag(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -523,18 +553,23 @@ public class SocketDevResponseService {
|
||||
case SUCCESS:
|
||||
String result = socketDataMsg.getData();
|
||||
//通讯校验成功
|
||||
|
||||
if(!param.getOperateType().equals(SourceOperateCodeEnum.TEST_TEM_START.getValue())) {
|
||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), MsgUtil.msgToWebData(socketDataMsg, FormalTestManager.devNameMapComm, 1));
|
||||
}
|
||||
successDevComm.add(result.split(splitTag)[0]);
|
||||
successComm.add(result);
|
||||
System.out.println("设备通讯校验全部成功!" + successComm.size() + "=====" + FormalTestManager.monitorIdListComm.size());
|
||||
System.out.println("设备通讯校验!" + successComm.size() + "=====" + FormalTestManager.monitorIdListComm.size());
|
||||
|
||||
|
||||
if (successComm.size() == FormalTestManager.monitorIdListComm.size()) {
|
||||
if(!param.getOperateType().equals(SourceOperateCodeEnum.TEST_TEM_START.getValue())) {
|
||||
SocketDataMsg temMsg = new SocketDataMsg();
|
||||
temMsg.setCode(SourceResponseCodeEnum.DEV_COMM_ALL_SUCCESS.getCode());
|
||||
temMsg.setOperateCode(SourceOperateCodeEnum.DEV_INIT_GATHER_01.getValue());
|
||||
temMsg.setRequestId(SourceOperateCodeEnum.YJC_SBTXJY.getValue());
|
||||
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(temMsg));
|
||||
}
|
||||
|
||||
//开始进行协议校验
|
||||
successComm.clear();
|
||||
@@ -932,10 +967,11 @@ public class SocketDevResponseService {
|
||||
SocketManager.delSource(sourceIssue.getIndex());
|
||||
//在这一步判断是否已经触发暂停按钮
|
||||
if (FormalTestManager.stopFlag) {
|
||||
CnSocketUtil.quitSend(param);
|
||||
// CnSocketUtil.quitSend(param);
|
||||
successComm.clear();
|
||||
realDataXiList.clear();
|
||||
sendWebSocket(param.getUserPageId(), "preStopTest", "stop", null);
|
||||
return;
|
||||
}
|
||||
|
||||
//开始进行下一项检测
|
||||
|
||||
@@ -19,6 +19,9 @@ public class DevXiNumData {
|
||||
|
||||
private List<GF> gf;
|
||||
|
||||
private Integer resultFlag;
|
||||
|
||||
|
||||
@Data
|
||||
public static class GF{
|
||||
|
||||
|
||||
@@ -64,6 +64,13 @@ public class CoefficientVO {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 标识校验不合格的为 0 合格项为 1
|
||||
*/
|
||||
private Integer resultFlag;
|
||||
|
||||
|
||||
|
||||
@Data
|
||||
public static class DevParameter{
|
||||
|
||||
|
||||
@@ -181,7 +181,7 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
||||
@Override
|
||||
public boolean restartTemTest(PreDetectionParam param) {
|
||||
FormalTestManager.stopFlag = false;
|
||||
specialDeal(param);
|
||||
/* specialDeal(param);
|
||||
AdPlanSource planSource = adPlanSourceService.getOne(new LambdaQueryWrapper<AdPlanSource>().eq(AdPlanSource::getPlanId, param.getPlanId()));
|
||||
if (ObjectUtil.isNotNull(planSource)) {
|
||||
SourceInitialize sourceParam = pqSourceService.getSourceInitializeParam(planSource.getSourceId());
|
||||
@@ -203,7 +203,21 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
||||
}
|
||||
} else {
|
||||
throw new BusinessException(DetectionResponseEnum.PLAN_AND_SOURCE_NOT);
|
||||
}*/
|
||||
List<SourceIssue> sourceIssueList = SocketManager.getSourceList();
|
||||
if (CollUtil.isNotEmpty(sourceIssueList)) {
|
||||
SourceIssue sourceIssues = SocketManager.getSourceList().get(0);
|
||||
SocketMsg<String> xuMsg = new SocketMsg<>();
|
||||
xuMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||
xuMsg.setData(JSON.toJSONString(sourceIssues));
|
||||
xuMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + "&&" + sourceIssues.getType());
|
||||
SocketManager.sendMsg(param.getUserPageId() + source, JSON.toJSONString(xuMsg));
|
||||
} else {
|
||||
//TODO 是否最终检测完成需要推送给用户
|
||||
iPqDevService.updateResult(param.getDevIds(), param.getCode());
|
||||
CnSocketUtil.quitSend(param);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -87,14 +87,6 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
|
||||
@Override
|
||||
public void channelInactive(ChannelHandlerContext ctx) {
|
||||
System.out.println("设备通讯客户端断线");
|
||||
Channel channel = SocketManager.getChannelByUserId(param.getUserPageId() + dev);
|
||||
if (Objects.nonNull(channel)) {
|
||||
try {
|
||||
channel.close().sync();
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
SocketManager.removeUser(param.getUserPageId() + dev);
|
||||
}
|
||||
|
||||
@@ -108,6 +100,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
|
||||
public void userEventTriggered(ChannelHandlerContext ctx, Object evt) {
|
||||
if (evt instanceof IdleStateEvent) {
|
||||
if (((IdleStateEvent) evt).state() == IdleState.READER_IDLE) {
|
||||
if(!FormalTestManager.stopFlag) {
|
||||
if (CollUtil.isNotEmpty(SocketManager.getSourceList())) {
|
||||
SourceIssue sourceIssue = SocketManager.getSourceList().get(0);
|
||||
if (SocketManager.clockMap.containsKey(sourceIssue.getIndex())) {
|
||||
@@ -148,6 +141,7 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
|
||||
System.out.println("已经等了一分钟了。。。。。。。。。。。。");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -188,6 +182,8 @@ public class NettyDevClientHandler extends SimpleChannelInboundHandler<String> {
|
||||
// 可以记录未知异常信息
|
||||
}
|
||||
ctx.close();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user