From 8fa69a6876737ff74606cdc9be9365b9a6578672 Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Tue, 14 Jan 2025 13:27:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=AD=A3=E5=BC=8F=E6=A3=80=E6=B5=8B=E6=A3=80?= =?UTF-8?q?=E6=B5=8B=E5=A2=9E=E5=8A=A0=E5=9B=9E=E9=80=80=E7=8A=B6=E6=80=81?= =?UTF-8?q?=EF=BC=8C=E6=8E=A8=E9=80=81=E6=B6=88=E6=81=AF=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../handler/SocketDevResponseService.java | 76 +++++++++++-------- .../detection/util/socket/CnSocketUtil.java | 3 +- .../gather/plan/service/IAdPlanService.java | 11 ++- .../plan/service/impl/AdPlanServiceImpl.java | 29 ++++++- .../gather/device/device/pojo/po/PqDev.java | 5 +- .../device/device/service/IPqDevService.java | 6 -- .../device/service/impl/PqDevServiceImpl.java | 14 +--- .../impl/DetectionDataServiceImpl.java | 3 +- 8 files changed, 88 insertions(+), 59 deletions(-) diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java index 865af837..f98f3126 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketDevResponseService.java @@ -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 sourceIssues = scriptDtlsService.listSourceIssue(sourceParam); List 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 textResult = detectionServiceImpl.processing(realDataXiList, param, FormalTestManager.devIdMapComm, sourceIssue, dataRule); - + WebSocketVO> webSocketVO = new WebSocketVO<>(); + webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd); + webSocketVO.setDesc(sourceIssue.getDesc()); + //组装实体推送给前台 + List devListRes = new ArrayList<>(); + FormalTestManager.devList.forEach(dev -> { + DevLineTestResult devLineTestResult = new DevLineTestResult(); + devLineTestResult.setDeviceId(dev.getDevId()); + devLineTestResult.setDeviceName(dev.getDevName()); + + List resultFlagList = new ArrayList<>(); + List 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> webSocketVO = new WebSocketVO<>(); + webSocketVO = new WebSocketVO<>(); webSocketVO.setRequestId(socketDataMsg.getRequestId().split(stepTag)[1] + stepEnd); - //组装实体推送给前台 - List devListRes = new ArrayList<>(); - FormalTestManager.devList.forEach(dev -> { - DevLineTestResult devLineTestResult = new DevLineTestResult(); - devLineTestResult.setDeviceId(dev.getDevId()); - devLineTestResult.setDeviceName(dev.getDevName()); - - List resultFlagList = new ArrayList<>(); - List 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> map = adNonHarmonicResultList.stream().collect(Collectors.groupingBy(x -> x.getMonitorId() + x.getTimeId() + x.getScriptId() + x.getSort() + x.getAdType() + x.getDataType())); - List info=new ArrayList<>(); - map.forEach((key,value)->{ - if(value.size()>1){ - System.err.println("重复时间戳->"+key+value); - }else{ + List 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> map = adHarmonicResultList.stream().collect(Collectors.groupingBy(x -> x.getMonitorId() + x.getTimeId() + x.getScriptId() + x.getSort() + x.getAdType() + x.getDataType())); - List info=new ArrayList<>(); - map.forEach((key,value)->{ - if(value.size()>1){ - System.err.println("重复时间戳->"+key+value); - }else{ + List 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()); + } + } } diff --git a/detection/src/main/java/com/njcn/gather/detection/util/socket/CnSocketUtil.java b/detection/src/main/java/com/njcn/gather/detection/util/socket/CnSocketUtil.java index 0f0011d5..a654893e 100644 --- a/detection/src/main/java/com/njcn/gather/detection/util/socket/CnSocketUtil.java +++ b/detection/src/main/java/com/njcn/gather/detection/util/socket/CnSocketUtil.java @@ -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)); } - } diff --git a/detection/src/main/java/com/njcn/gather/plan/service/IAdPlanService.java b/detection/src/main/java/com/njcn/gather/plan/service/IAdPlanService.java index 66006b9e..eeb71aa6 100644 --- a/detection/src/main/java/com/njcn/gather/plan/service/IAdPlanService.java +++ b/detection/src/main/java/com/njcn/gather/plan/service/IAdPlanService.java @@ -96,9 +96,18 @@ public interface IAdPlanService extends IService { /** * 修改计划状态 * @param planId + * @param devIds * @return */ - boolean updateTestState(String planId); + boolean updateTestState(String planId,List devIds); + + /** + * 数据状态回退 + * @param planId + * @param devIds + * @return + */ + boolean updateBackTestState(String planId,List devIds); void finishPlan(String planId); } diff --git a/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java b/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java index e2f91745..9ad1b13c 100644 --- a/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/plan/service/impl/AdPlanServiceImpl.java @@ -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 impleme } @Override - public boolean updateTestState(String planId) { + public boolean updateTestState(String planId, List devIds) { + if (CollUtil.isNotEmpty(devIds)) { + pqDevService.update(new LambdaUpdateWrapper() + .set(PqDev::getCheckState, CheckStateEnum.CHECKING.getValue()) + .in(PqDev::getId, devIds)); + } return this.update(new LambdaUpdateWrapper() - .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 devIds) { + pqDevService.update(new LambdaUpdateWrapper() + .set(PqDev::getCheckState, CheckStateEnum.UNCHECKED.getValue()) + .in(PqDev::getId, devIds)); + + List list = pqDevService.list(new LambdaQueryWrapper().in(PqDev::getPlanId, planId)); + List collect = list.stream().filter(x -> !x.getCheckState().equals(CheckStateEnum.UNCHECKED.getValue())).collect(Collectors.toList()); + if (CollUtil.isEmpty(collect)) { + return this.update(new LambdaUpdateWrapper() + .set(AdPlan::getTestState, CheckStateEnum.UNCHECKED.getValue()) + .eq(AdPlan::getId, planId)); + } + return false; } @Override diff --git a/device/src/main/java/com/njcn/gather/device/device/pojo/po/PqDev.java b/device/src/main/java/com/njcn/gather/device/device/pojo/po/PqDev.java index 71b586b0..74b6ecd5 100644 --- a/device/src/main/java/com/njcn/gather/device/device/pojo/po/PqDev.java +++ b/device/src/main/java/com/njcn/gather/device/device/pojo/po/PqDev.java @@ -9,12 +9,12 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer; import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer; import com.njcn.db.mybatisplus.bo.BaseEntity; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import java.io.Serializable; import java.time.LocalDate; +import java.time.LocalDateTime; /** * @author caozehui @@ -206,6 +206,7 @@ public class PqDev extends BaseEntity implements Serializable { private String icdId; -// private String power; + @TableField("Check_Time") + private LocalDateTime checkTime; } diff --git a/device/src/main/java/com/njcn/gather/device/device/service/IPqDevService.java b/device/src/main/java/com/njcn/gather/device/device/service/IPqDevService.java index c9d5acfb..b5a85d85 100644 --- a/device/src/main/java/com/njcn/gather/device/device/service/IPqDevService.java +++ b/device/src/main/java/com/njcn/gather/device/device/service/IPqDevService.java @@ -172,12 +172,6 @@ public interface IPqDevService extends IService { */ boolean documented(List id); - /** - * 修改监测状态 - * @param ids - * @return - */ - boolean updateCheckState(List ids); /** diff --git a/device/src/main/java/com/njcn/gather/device/device/service/impl/PqDevServiceImpl.java b/device/src/main/java/com/njcn/gather/device/device/service/impl/PqDevServiceImpl.java index a02c70fb..b8b62f5f 100644 --- a/device/src/main/java/com/njcn/gather/device/device/service/impl/PqDevServiceImpl.java +++ b/device/src/main/java/com/njcn/gather/device/device/service/impl/PqDevServiceImpl.java @@ -39,6 +39,7 @@ import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDateTime; import java.util.*; import java.util.stream.Collectors; @@ -435,7 +436,7 @@ public class PqDevServiceImpl extends ServiceImpl implements monitorListDTO.setLineId(preDetection.getDevIP() + "_" + i); monitorListDTO.setLine(i); monitorListDTO.setPt(1); - monitorListDTO.setPt(1); + monitorListDTO.setCt(1); monitorList.add(monitorListDTO); } preDetection.setMonitorList(monitorList); @@ -483,16 +484,6 @@ public class PqDevServiceImpl extends ServiceImpl implements return true; } - @Override - public boolean updateCheckState(List ids) { - if (CollUtil.isNotEmpty(ids)) { - return this.update(new LambdaUpdateWrapper() - .set(PqDev::getCheckState, CheckStateEnum.CHECKING.getValue()) - .in(PqDev::getId, ids)); - } else { - return false; - } - } @Override public boolean updateResult(List ids, String code) { @@ -505,6 +496,7 @@ public class PqDevServiceImpl extends ServiceImpl implements .set(PqDev::getReCheckNum, pqDev.getReCheckNum() + 1) .set(PqDev::getCheckState, CheckStateEnum.CHECKED.getValue()) .set(PqDev::getCheckResult, result.get(pqDev.getId())) + .set(PqDev::getCheckTime, LocalDateTime.now()) .set(PqDev::getReportState, DevReportStateEnum.NOT_GENERATED.getValue()) .eq(PqDev::getId, pqDev.getId())); } diff --git a/storage/src/main/java/com/njcn/gather/storage/service/impl/DetectionDataServiceImpl.java b/storage/src/main/java/com/njcn/gather/storage/service/impl/DetectionDataServiceImpl.java index 19b57240..7457382d 100644 --- a/storage/src/main/java/com/njcn/gather/storage/service/impl/DetectionDataServiceImpl.java +++ b/storage/src/main/java/com/njcn/gather/storage/service/impl/DetectionDataServiceImpl.java @@ -1,9 +1,7 @@ package com.njcn.gather.storage.service.impl; import cn.hutool.core.collection.CollUtil; -import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.njcn.db.mybatisplus.handler.DynamicTableNameHandler; import com.njcn.db.mybatisplus.service.impl.ReplenishMybatisServiceImpl; import com.njcn.gather.storage.mapper.DetectionDataDealMapper; @@ -133,6 +131,7 @@ public class DetectionDataServiceImpl extends ReplenishMybatisServiceImpl resultFlags) { // 检测结果(0:不符合 1:符合 2:/[未检测无结果]) + //脚本结果是 1.符合 2.不符合 4.未检测无结果 resultFlags = resultFlags.stream().filter(x->4!=x).distinct().collect(Collectors.toList()); if (CollUtil.isNotEmpty(resultFlags)) { if (resultFlags.contains(2)) {