正式检测检测增加回退状态,推送消息优化

This commit is contained in:
wr
2025-01-14 13:27:37 +08:00
parent ec6e90e37a
commit 8fa69a6876
8 changed files with 88 additions and 59 deletions

View File

@@ -3,6 +3,7 @@ package com.njcn.gather.detection.handler;
import cn.hutool.core.collection.CollUtil;
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.njcn.gather.detection.pojo.dto.DevXiNumData;
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
@@ -774,6 +775,7 @@ public class SocketDevResponseService {
sourceParam.setPlanId(param.getPlanId());
sourceParam.setDevIds(param.getDevIds());
sourceParam.setIsPhaseSequence(SourceOperateCodeEnum.PHASE_TEST.getValue());
sourceParam.setScriptId(param.getScriptId());
sourceParam.setSourceId(param.getSourceId());
List<SourceIssue> sourceIssues = scriptDtlsService.listSourceIssue(sourceParam);
List<SourceCompareDev> info = new ArrayList<>();
@@ -883,14 +885,36 @@ public class SocketDevResponseService {
//TODO 理论上遇到返回code10200的数量与监测点数量一致则认为数据返回结束但是会存在缺失数据情况,例如有部分装置是没有暂降功能的
System.out.println(sourceIssue.getType() + splitTag + sourceIssue.getIndex() + "当前测试小项读取数据已经全部结束。。。。。。。。。");
//修改装置为监测中
iPqDevService.updateCheckState(param.getDevIds());
adPlanService.updateTestState(param.getPlanId());
adPlanService.updateTestState(param.getPlanId(), param.getDevIds());
//开启线程进行入库原始数据操作
baseDataInsert(realDataXiList, sourceIssue, param, SocketManager.valueTypeMap);
//调用判断方法
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 -> {
DevLineTestResult devLineTestResult = new DevLineTestResult();
devLineTestResult.setDeviceId(dev.getDevId());
devLineTestResult.setDeviceName(dev.getDevName());
List<Integer> resultFlagList = new ArrayList<>();
List<PreDetection.MonitorListDTO> monitorListDTOList = dev.getMonitorList();
for (PreDetection.MonitorListDTO point : monitorListDTOList) {
Integer resultFlag = textResult.get(dev.getDevIP() + splitTag + point.getLine());
resultFlagList.add(resultFlag);
}
devLineTestResult.setChnResult(resultFlagList.toArray(new Integer[monitorListDTOList.size()]));
devListRes.add(devLineTestResult);
});
webSocketVO.setData(devListRes);
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
long tem = SocketManager.getSourceTarget(sourceIssue.getType()) - 1;
SocketManager.addTargetMap(sourceIssue.getType(), tem);
System.out.println("该大项还有" + tem + "个小项没有进行检测!!!!!!!!");
@@ -898,25 +922,8 @@ public class SocketDevResponseService {
if (tem == 0) {
System.out.println(sourceIssue.getType() + sourceIssue.getIndex() + "当前测试大项已经全部结束》》》》》》》》");
//当val为0则认为大项中的小项已经全部跑完开始组装信息推送给前端
WebSocketVO<List<DevLineTestResult>> webSocketVO = new WebSocketVO<>();
webSocketVO = new WebSocketVO<>();
webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd);
//组装实体推送给前台
List<DevLineTestResult> devListRes = new ArrayList<>();
FormalTestManager.devList.forEach(dev -> {
DevLineTestResult devLineTestResult = new DevLineTestResult();
devLineTestResult.setDeviceId(dev.getDevId());
devLineTestResult.setDeviceName(dev.getDevName());
List<Integer> resultFlagList = new ArrayList<>();
List<PreDetection.MonitorListDTO> monitorListDTOList = dev.getMonitorList();
for (PreDetection.MonitorListDTO point : monitorListDTOList) {
Integer resultFlag = textResult.get(dev.getDevIP() + splitTag + point.getLine());
resultFlagList.add(resultFlag);
}
devLineTestResult.setChnResult(resultFlagList.toArray(new Integer[monitorListDTOList.size()]));
devListRes.add(devLineTestResult);
});
webSocketVO.setData(devListRes);
webSocketHandler.sendMsgToUser(param.getUserPageId(), JSON.toJSONString(webSocketVO));
}
System.out.println("当前小项结束进行删除============" + sourceIssue.getType() + splitTag + sourceIssue.getIndex());
@@ -1345,11 +1352,11 @@ public class SocketDevResponseService {
if (CollUtil.isNotEmpty(adNonHarmonicResultList)) {
Map<String, List<AdNonHarmonicResult>> map = adNonHarmonicResultList.stream().collect(Collectors.groupingBy(x -> x.getMonitorId() + x.getTimeId() + x.getScriptId() + x.getSort() + x.getAdType() + x.getDataType()));
List<AdNonHarmonicResult> info=new ArrayList<>();
map.forEach((key,value)->{
if(value.size()>1){
System.err.println("重复时间戳->"+key+value);
}else{
List<AdNonHarmonicResult> info = new ArrayList<>();
map.forEach((key, value) -> {
if (value.size() > 1) {
System.err.println("重复时间戳->" + key + value);
} else {
info.addAll(value);
}
});
@@ -1358,11 +1365,11 @@ public class SocketDevResponseService {
}
if (CollUtil.isNotEmpty(adHarmonicResultList)) {
Map<String, List<AdHarmonicResult>> map = adHarmonicResultList.stream().collect(Collectors.groupingBy(x -> x.getMonitorId() + x.getTimeId() + x.getScriptId() + x.getSort() + x.getAdType() + x.getDataType()));
List<AdHarmonicResult> info=new ArrayList<>();
map.forEach((key,value)->{
if(value.size()>1){
System.err.println("重复时间戳->"+key+value);
}else{
List<AdHarmonicResult> info = new ArrayList<>();
map.forEach((key, value) -> {
if (value.size() > 1) {
System.err.println("重复时间戳->" + key + value);
} else {
info.addAll(value);
}
});
@@ -1404,5 +1411,10 @@ public class SocketDevResponseService {
webSocketHandler.sendMsgToUser(userId, JSON.toJSONString(webSocketVO));
}
public void backCheckState(PreDetectionParam param) {
if (CollUtil.isNotEmpty(param.getDevIds()) && StrUtil.isNotBlank(param.getPlanId())) {
adPlanService.updateBackTestState(param.getPlanId(),param.getDevIds());
}
}
}

View File

@@ -34,9 +34,8 @@ public class CnSocketUtil {
socketMsg.setRequestId(SourceOperateCodeEnum.QUITE_SOURCE.getValue());
socketMsg.setOperateCode(SourceOperateCodeEnum.CLOSE_GATHER.getValue());
JSONObject jsonObject = new JSONObject();
jsonObject.put("sourceId",param.getSourceId());
jsonObject.put("sourceId", param.getSourceId());
socketMsg.setData(jsonObject.toJSONString());
SocketManager.sendMsg(param.getUserPageId() + sourceTag, JSON.toJSONString(socketMsg));
}
}

View File

@@ -96,9 +96,18 @@ public interface IAdPlanService extends IService<AdPlan> {
/**
* 修改计划状态
* @param planId
* @param devIds
* @return
*/
boolean updateTestState(String planId);
boolean updateTestState(String planId,List<String> devIds);
/**
* 数据状态回退
* @param planId
* @param devIds
* @return
*/
boolean updateBackTestState(String planId,List<String> devIds);
void finishPlan(String planId);
}

View File

@@ -1,9 +1,11 @@
package com.njcn.gather.plan.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -331,10 +333,31 @@ public class AdPlanServiceImpl extends ServiceImpl<AdPlanMapper, AdPlan> impleme
}
@Override
public boolean updateTestState(String planId) {
public boolean updateTestState(String planId, List<String> devIds) {
if (CollUtil.isNotEmpty(devIds)) {
pqDevService.update(new LambdaUpdateWrapper<PqDev>()
.set(PqDev::getCheckState, CheckStateEnum.CHECKING.getValue())
.in(PqDev::getId, devIds));
}
return this.update(new LambdaUpdateWrapper<AdPlan>()
.set(AdPlan::getTestState,CheckStateEnum.CHECKING.getValue())
.eq(AdPlan::getId,planId));
.set(AdPlan::getTestState, CheckStateEnum.CHECKING.getValue())
.eq(AdPlan::getId, planId));
}
@Override
public boolean updateBackTestState(String planId, List<String> devIds) {
pqDevService.update(new LambdaUpdateWrapper<PqDev>()
.set(PqDev::getCheckState, CheckStateEnum.UNCHECKED.getValue())
.in(PqDev::getId, devIds));
List<PqDev> list = pqDevService.list(new LambdaQueryWrapper<PqDev>().in(PqDev::getPlanId, planId));
List<PqDev> collect = list.stream().filter(x -> !x.getCheckState().equals(CheckStateEnum.UNCHECKED.getValue())).collect(Collectors.toList());
if (CollUtil.isEmpty(collect)) {
return this.update(new LambdaUpdateWrapper<AdPlan>()
.set(AdPlan::getTestState, CheckStateEnum.UNCHECKED.getValue())
.eq(AdPlan::getId, planId));
}
return false;
}
@Override