From 12edb5758164a045caa646c5c0b8afb9f1a6f887 Mon Sep 17 00:00:00 2001 From: caozehui <2427765068@qq.com> Date: Fri, 12 Sep 2025 10:47:25 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=9F=E6=88=90=E6=8A=A5=E5=91=8A=E7=9B=91?= =?UTF-8?q?=E6=B5=8B=E7=82=B9=E7=BB=93=E6=9E=9C=E4=B8=8B=E6=8B=89=E6=A1=86?= =?UTF-8?q?=E5=B1=95=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SocketContrastResponseService.java | 5 +- .../service/impl/DetectionServiceImpl.java | 34 +++--------- .../result/controller/ResultController.java | 4 +- .../gather/result/service/IResultService.java | 2 +- .../service/impl/ResultServiceImpl.java | 53 ++++++++++++++++--- .../impl/ContrastNonHarmonicServiceImpl.java | 3 +- .../impl/SimAndDigHarmonicServiceImpl.java | 34 +----------- .../com/njcn/gather/util/StorageUtil.java | 39 ++++++++++++++ 8 files changed, 101 insertions(+), 73 deletions(-) diff --git a/detection/src/main/java/com/njcn/gather/detection/handler/SocketContrastResponseService.java b/detection/src/main/java/com/njcn/gather/detection/handler/SocketContrastResponseService.java index 9ea5a405..3fa2f33f 100644 --- a/detection/src/main/java/com/njcn/gather/detection/handler/SocketContrastResponseService.java +++ b/detection/src/main/java/com/njcn/gather/detection/handler/SocketContrastResponseService.java @@ -49,6 +49,7 @@ import com.njcn.gather.system.dictionary.service.IDictTreeService; import com.njcn.gather.tools.comtrade.comparewave.core.model.CompareWaveDTO; import com.njcn.gather.tools.comtrade.comparewave.core.model.PqsDataStruct; import com.njcn.gather.tools.comtrade.comparewave.service.ICompareWaveService; +import com.njcn.gather.util.StorageUtil; import com.njcn.web.utils.ExcelUtil; import lombok.RequiredArgsConstructor; import org.springframework.beans.factory.annotation.Value; @@ -1141,7 +1142,7 @@ public class SocketContrastResponseService { devLineTestResult.setScriptName(DataSourceEnum.WAVE_DATA.getValue()); Integer[] chnResult = new Integer[chnMap.size()]; chnMap.forEach((chn, resultSet) -> { - Integer result = detectionService.getInteger(resultSet.stream().collect(Collectors.toList())); + Integer result = StorageUtil.getInteger(resultSet.stream().collect(Collectors.toList())); chnResult[chn - 1] = result; }); @@ -1149,7 +1150,7 @@ public class SocketContrastResponseService { if (ObjectUtil.isNotNull(devLineTestResult1)) { Integer[] chnResult1 = devLineTestResult1.getChnResult(); for (int i = 0; i < chnResult1.length; i++) { - Integer result = detectionService.getInteger(Arrays.asList(chnResult1[i], chnResult[i])); + Integer result = StorageUtil.getInteger(Arrays.asList(chnResult1[i], chnResult[i])); chnResult1[i] = result; } } else { diff --git a/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java b/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java index 2b642b3a..807bb9b5 100644 --- a/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/detection/service/impl/DetectionServiceImpl.java @@ -35,6 +35,7 @@ import com.njcn.gather.storage.service.DetectionDataDealService; import com.njcn.gather.system.cfg.pojo.po.SysTestConfig; import com.njcn.gather.system.cfg.service.ISysTestConfigService; import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum; +import com.njcn.gather.util.StorageUtil; import lombok.RequiredArgsConstructor; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; @@ -216,7 +217,7 @@ public class DetectionServiceImpl { } if (CollUtil.isNotEmpty(info)) { detectionDataDealService.acceptHarmonicResult(info, code); - return getInteger(info.stream().map(x -> x.getResultFlag()).distinct().collect(Collectors.toList())); + return StorageUtil.getInteger(info.stream().map(x -> x.getResultFlag()).distinct().collect(Collectors.toList())); } return 4; } @@ -461,7 +462,7 @@ public class DetectionServiceImpl { if (CollUtil.isNotEmpty(info)) { detectionDataDealService.acceptNonHarmonicResult(info, code); List resultFlag = info.stream().map(SimAndDigNonHarmonicResult::getResultFlag).distinct().collect(Collectors.toList()); - return getInteger(resultFlag); + return StorageUtil.getInteger(resultFlag); } return 4; } @@ -671,7 +672,7 @@ public class DetectionServiceImpl { } detectionDataDealService.acceptNonHarmonicResult(Arrays.asList(magResult, durResult), code); List numbers = Arrays.asList(magResult.getResultFlag(), durResult.getResultFlag()).stream().distinct().collect(Collectors.toList()); - return getInteger(numbers); + return StorageUtil.getInteger(numbers); } /** @@ -835,30 +836,9 @@ public class DetectionServiceImpl { private Integer setResultFlag(List numbers) { List isData = numbers.stream().filter(x -> ObjectUtil.isNotNull(x.getData())).map(DetectionData::getIsData).distinct().collect(Collectors.toList()); - return getInteger(isData); + return StorageUtil.getInteger(isData); } - public Integer getInteger(List isData) { - if (CollUtil.isNotEmpty(isData)) { - List isQualified = isData.stream().filter(x -> ResultEnum.QUALIFIED.getValue() == x || ResultEnum.NOT_QUALIFIED.getValue() == x).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(isQualified)) { - if (isQualified.size() > 1) { - if (isQualified.contains(ResultEnum.NOT_QUALIFIED.getValue())) { - return ResultEnum.NOT_QUALIFIED.getValue(); - } - } - return isQualified.get(0); - } else { - if (isData.contains(ResultEnum.NO_ERROR_SYS.getValue())) { - return ResultEnum.NO_ERROR_SYS.getValue(); - } - if (isData.contains(ResultEnum.NO_COMPARE_ERROR_SYS.getValue())) { - return ResultEnum.NO_COMPARE_ERROR_SYS.getValue(); - } - } - } - return ResultEnum.NO_ERROR_SYS.getValue(); - } /** * 处理非谐波类型取值 @@ -1775,7 +1755,7 @@ public class DetectionServiceImpl { detectionDataDealService.acceptNonHarmonicResult(info, code); List resultFlag = info.stream().map(ContrastNonHarmonicResult::getResultFlag).distinct().collect(Collectors.toList()); - return getInteger(resultFlag); + return StorageUtil.getInteger(resultFlag); } @@ -1875,7 +1855,7 @@ public class DetectionServiceImpl { detectionDataDealService.acceptHarmonicResult(info, code); List resultFlag = info.stream().map(ContrastHarmonicResult::getResultFlag).distinct().collect(Collectors.toList()); - return getInteger(resultFlag); + return StorageUtil.getInteger(resultFlag); } diff --git a/detection/src/main/java/com/njcn/gather/result/controller/ResultController.java b/detection/src/main/java/com/njcn/gather/result/controller/ResultController.java index ea2e1dcf..31d012dd 100644 --- a/detection/src/main/java/com/njcn/gather/result/controller/ResultController.java +++ b/detection/src/main/java/com/njcn/gather/result/controller/ResultController.java @@ -167,11 +167,11 @@ public class ResultController extends BaseController { @GetMapping("/getMonitorDataSourceResult") @ApiOperation("获取监测点的检测结果下拉框") @ApiImplicitParam(name = "param", value = "查询参数", required = true) - public HttpResult> getMonitorDataSourceResult(@RequestParam("monitorId") String monitorId) { + public HttpResult>> getMonitorDataSourceResult(@RequestParam("monitorId") String monitorId) { String methodDescribe = getMethodDescribe("getMonitorDataSourceResult"); LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, monitorId); - Map result = resultService.getMonitorDataSourceResult(monitorId); + Map> result = resultService.getMonitorDataSourceResult(monitorId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } } diff --git a/detection/src/main/java/com/njcn/gather/result/service/IResultService.java b/detection/src/main/java/com/njcn/gather/result/service/IResultService.java index d8761cba..88f30716 100644 --- a/detection/src/main/java/com/njcn/gather/result/service/IResultService.java +++ b/detection/src/main/java/com/njcn/gather/result/service/IResultService.java @@ -116,5 +116,5 @@ public interface IResultService { MonitorResultVO getMonitorResult(String devId); - Map getMonitorDataSourceResult(String monitorId); + Map> getMonitorDataSourceResult(String monitorId); } diff --git a/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java b/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java index 7b8c8469..11591393 100644 --- a/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java +++ b/detection/src/main/java/com/njcn/gather/result/service/impl/ResultServiceImpl.java @@ -65,7 +65,6 @@ import com.njcn.gather.storage.service.ContrastHarmonicService; import com.njcn.gather.storage.service.ContrastNonHarmonicService; import com.njcn.gather.storage.service.SimAndDigHarmonicService; import com.njcn.gather.storage.service.SimAndDigNonHarmonicService; -import com.njcn.gather.storage.service.impl.SimAndDigHarmonicServiceImpl; import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum; import com.njcn.gather.system.dictionary.pojo.po.DictData; import com.njcn.gather.system.dictionary.pojo.po.DictTree; @@ -1644,8 +1643,48 @@ public class ResultServiceImpl implements IResultService { } @Override - public Map getMonitorDataSourceResult(String monitorId) { - return null; + public Map> getMonitorDataSourceResult(String monitorId) { + // key为第几次检测,value为所对应的下拉框内容 + Map> result = new HashMap<>(); + + String[] split = monitorId.split(CnSocketUtil.SPLIT_TAG); + PqDev dev = pqDevService.getById(split[0]); + String planId = dev.getPlanId(); + AdPlan plan = adPlanService.getById(planId); + // 实时数据结果 + List nonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(plan.getCode()), null, null, false, monitorId, null); + Map> numMap = nonHarmonicResults.stream() + .sorted(Comparator.comparing(ContrastNonHarmonicResult::getNum)) + .collect(Collectors.groupingBy(ContrastNonHarmonicResult::getNum, LinkedHashMap::new, Collectors.toList())); + + numMap.forEach((num, resultList) -> { + List dataSourceResultVOList = new ArrayList<>(); + + DataSourceResultVO realDataSourceResultVO = new DataSourceResultVO(); + realDataSourceResultVO.setDataSourceCode(DataSourceEnum.REAL_DATA.getValue()); + realDataSourceResultVO.setDataSourceName(DataSourceEnum.REAL_DATA.getMsg()); + List resultFlagList = resultList.stream().map(ContrastNonHarmonicResult::getResultFlag).distinct().collect(Collectors.toList()); + realDataSourceResultVO.setCheckResult(StorageUtil.getInteger(resultFlagList)); + dataSourceResultVOList.add(realDataSourceResultVO); + + // 录波数据结果 + List waveNonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(plan.getCode()), num, null, true, monitorId, null); + Map> waveNumMap = waveNonHarmonicResults.stream() + .sorted(Comparator.comparing(ContrastNonHarmonicResult::getWaveNum)) + .collect(Collectors.groupingBy(ContrastNonHarmonicResult::getWaveNum, LinkedHashMap::new, Collectors.toList())); + + waveNumMap.forEach((waveNum, resultList1) -> { + DataSourceResultVO waveDataSourceResultVO = new DataSourceResultVO(); + waveDataSourceResultVO.setDataSourceCode(DataSourceEnum.WAVE_DATA.getValue() + CnSocketUtil.SPLIT_TAG + waveNum); + waveDataSourceResultVO.setDataSourceName(DataSourceEnum.WAVE_DATA.getMsg() + StrUtil.SPACE + waveNum); + List tempResultFlagList = resultList1.stream().map(ContrastNonHarmonicResult::getResultFlag).distinct().collect(Collectors.toList()); + waveDataSourceResultVO.setCheckResult(StorageUtil.getInteger(tempResultFlagList)); + }); + + result.put(num, dataSourceResultVOList); + }); + + return result; } private Map> getResultMap(DictTree dictTree, List adTypeList, String monitorId, String unit, Integer num, Integer waveNum, Boolean isWave, String code) { @@ -1670,7 +1709,7 @@ public class ResultServiceImpl implements IResultService { dataVO.setDataB(bList.get(i)); dataVO.setDataC(cList.get(i)); dataVO.setRadius(aList.get(i).getRadius()); - dataVO.setIsData(SimAndDigHarmonicServiceImpl.setResultFlag(Arrays.asList(aList.get(i), bList.get(i), cList.get(i)))); + dataVO.setIsData(StorageUtil.setResultFlag(Arrays.asList(aList.get(i), bList.get(i), cList.get(i)))); rawResultDataVOList.add(dataVO); } } else if (CollUtil.isNotEmpty(bList)) { @@ -1679,7 +1718,7 @@ public class ResultServiceImpl implements IResultService { dataVO.setUnit(unit); dataVO.setDataB(bList.get(i)); dataVO.setRadius(bList.get(i).getRadius()); - dataVO.setIsData(SimAndDigHarmonicServiceImpl.setResultFlag(Arrays.asList(bList.get(i)))); + dataVO.setIsData(StorageUtil.setResultFlag(Arrays.asList(bList.get(i)))); rawResultDataVOList.add(dataVO); } } else if (CollUtil.isNotEmpty(tList)) { @@ -1688,7 +1727,7 @@ public class ResultServiceImpl implements IResultService { dataVO.setUnit(unit); dataVO.setDataT(tList.get(i)); dataVO.setRadius(tList.get(i).getRadius()); - dataVO.setIsData(SimAndDigHarmonicServiceImpl.setResultFlag(Arrays.asList(tList.get(i)))); + dataVO.setIsData(StorageUtil.setResultFlag(Arrays.asList(tList.get(i)))); rawResultDataVOList.add(dataVO); } } @@ -1729,7 +1768,7 @@ public class ResultServiceImpl implements IResultService { dataVO.setDataB(bList.get(j)); dataVO.setDataC(cList.get(j)); dataVO.setRadius(aList.get(j).getRadius()); - dataVO.setIsData(SimAndDigHarmonicServiceImpl.setResultFlag(Arrays.asList(aList.get(j), bList.get(j), cList.get(j)))); + dataVO.setIsData(StorageUtil.setResultFlag(Arrays.asList(aList.get(j), bList.get(j), cList.get(j)))); rawResultDataVOList.add(dataVO); } resultMap.put(String.valueOf(n), rawResultDataVOList); diff --git a/storage/src/main/java/com/njcn/gather/storage/service/impl/ContrastNonHarmonicServiceImpl.java b/storage/src/main/java/com/njcn/gather/storage/service/impl/ContrastNonHarmonicServiceImpl.java index 316faba8..649aa81b 100644 --- a/storage/src/main/java/com/njcn/gather/storage/service/impl/ContrastNonHarmonicServiceImpl.java +++ b/storage/src/main/java/com/njcn/gather/storage/service/impl/ContrastNonHarmonicServiceImpl.java @@ -50,7 +50,8 @@ public class ContrastNonHarmonicServiceImpl extends ServiceImpl numbers) { - List isData = numbers.stream().filter(Objects::nonNull) - .filter(x -> ObjectUtil.isNotNull(x.getData())) - .map(RawResultDataVO.DetectionData::getIsData) - .distinct() - .collect(Collectors.toList()); - return getInteger(isData); - } - - public static Integer getInteger(List isData) { - if (CollUtil.isNotEmpty(isData)) { - List isQualified = isData.stream().filter(x -> 1 == x || 2 == x).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(isQualified)) { - if (isQualified.size() > 1) { - if (isQualified.contains(2)) { - return 2; - } - } - return isQualified.get(0); - } else { - if (isData.contains(4)) { - return 4; - } - if (isData.contains(5)) { - return 5; - } - } - } - return 4; - } - } diff --git a/storage/src/main/java/com/njcn/gather/util/StorageUtil.java b/storage/src/main/java/com/njcn/gather/util/StorageUtil.java index 7aba4f9f..466bc3d2 100644 --- a/storage/src/main/java/com/njcn/gather/util/StorageUtil.java +++ b/storage/src/main/java/com/njcn/gather/util/StorageUtil.java @@ -1,5 +1,13 @@ package com.njcn.gather.util; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import com.njcn.gather.storage.pojo.vo.RawResultDataVO; + +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + /** * @author caozehui * @data 2025-08-21 @@ -113,4 +121,35 @@ public class StorageUtil { } return unit; } + + public static Integer setResultFlag(List numbers) { + List isData = numbers.stream().filter(Objects::nonNull) + .filter(x -> ObjectUtil.isNotNull(x.getData())) + .map(RawResultDataVO.DetectionData::getIsData) + .distinct() + .collect(Collectors.toList()); + return getInteger(isData); + } + + public static Integer getInteger(List isData) { + if (CollUtil.isNotEmpty(isData)) { + List isQualified = isData.stream().filter(x -> 1 == x || 2 == x).collect(Collectors.toList()); + if (CollUtil.isNotEmpty(isQualified)) { + if (isQualified.size() > 1) { + if (isQualified.contains(2)) { + return 2; + } + } + return isQualified.get(0); + } else { + if (isData.contains(4)) { + return 4; + } + if (isData.contains(5)) { + return 5; + } + } + } + return 4; + } }