diff --git a/detection/src/main/java/com/njcn/gather/plan/pojo/enums/DataSourceEnum.java b/detection/src/main/java/com/njcn/gather/plan/pojo/enums/DataSourceEnum.java index f9e5075d..151831f9 100644 --- a/detection/src/main/java/com/njcn/gather/plan/pojo/enums/DataSourceEnum.java +++ b/detection/src/main/java/com/njcn/gather/plan/pojo/enums/DataSourceEnum.java @@ -2,6 +2,8 @@ package com.njcn.gather.plan.pojo.enums; import lombok.Getter; +import java.util.Objects; + /** * @author caozehui * @data 2024-12-12 @@ -24,21 +26,29 @@ public enum DataSourceEnum { this.msg = msg; } - public static String getMsgByValue(String value) { + public static DataSourceEnum ofByValue(String value) { for (DataSourceEnum dataSourceEnum : DataSourceEnum.values()) { if (dataSourceEnum.getValue().equals(value)) { - return dataSourceEnum.getMsg(); + return dataSourceEnum; } } return null; } - public static String getValueByMsg(String msg) { + public static DataSourceEnum ofByMsg(String msg) { for (DataSourceEnum dataSourceEnum : DataSourceEnum.values()) { if (dataSourceEnum.getMsg().equals(msg)) { - return dataSourceEnum.getValue(); + return dataSourceEnum; } } return null; } + + public static String getMsgByValue(String value) { + return Objects.requireNonNull(ofByValue(value)).getMsg(); + } + + public static String getValueByMsg(String msg) { + return Objects.requireNonNull(ofByMsg(msg)).getMsg(); + } } 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 31d012dd..2708c207 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 @@ -154,11 +154,11 @@ public class ResultController extends BaseController { @PostMapping("/getMonitorResult") @ApiOperation("获取监测点的检测结果") @ApiImplicitParam(name = "param", value = "查询参数", required = true) - public HttpResult getMonitorResult(@RequestParam("devId") String devId) { + public HttpResult> getMonitorResult(@RequestParam("devId") String devId) { String methodDescribe = getMethodDescribe("getMonitorResult"); LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, devId); - MonitorResultVO result = resultService.getMonitorResult(devId); + List result = resultService.getMonitorResult(devId); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } diff --git a/detection/src/main/java/com/njcn/gather/result/pojo/vo/MonitorResultVO.java b/detection/src/main/java/com/njcn/gather/result/pojo/vo/MonitorResultVO.java index ece85455..00ccb2fe 100644 --- a/detection/src/main/java/com/njcn/gather/result/pojo/vo/MonitorResultVO.java +++ b/detection/src/main/java/com/njcn/gather/result/pojo/vo/MonitorResultVO.java @@ -12,7 +12,7 @@ public class MonitorResultVO { /** * 监测点id */ - private Integer monitorId; + private String monitorId; /** * 监测点序号 @@ -48,4 +48,12 @@ public class MonitorResultVO { * 结论来源 */ private String resultOrigin; + /** + * 哪次 + */ + private String whichTime; + /** + * 数据源类型 + */ + private String resultType; } 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 88f30716..4c4c8d48 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 @@ -60,7 +60,6 @@ public interface IResultService { * 更换误差体系 * * @param param - * */ void changeErrorSystem(ResultParam.ChangeErrorSystemParam param); @@ -114,7 +113,7 @@ public interface IResultService { ContrastResultVO getContrastResult(ResultParam.QueryParam queryParam); - MonitorResultVO getMonitorResult(String devId); + List getMonitorResult(String devId); 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 9c76bf75..da41ad3d 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 @@ -10,6 +10,8 @@ import cn.hutool.core.util.ReflectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.alibaba.fastjson.JSON; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.google.common.collect.BiMap; import com.google.common.collect.HashBiMap; @@ -30,6 +32,9 @@ import com.njcn.gather.device.pojo.enums.CommonEnum; import com.njcn.gather.device.pojo.enums.PatternEnum; import com.njcn.gather.device.pojo.po.PqDev; import com.njcn.gather.device.service.IPqDevService; +import com.njcn.gather.err.service.IPqErrSysService; +import com.njcn.gather.monitor.pojo.po.PqMonitor; +import com.njcn.gather.monitor.service.IPqMonitorService; import com.njcn.gather.plan.pojo.enums.DataSourceEnum; import com.njcn.gather.plan.pojo.po.AdPlan; import com.njcn.gather.plan.pojo.po.AdPlanTestConfig; @@ -113,6 +118,8 @@ public class ResultServiceImpl implements IResultService { private final IPqScriptCheckDataService iPqScriptCheckDataService; private final IPqDevService iPqDevService; private final IAdPariService adPairService; + private final IPqMonitorService pqMonitorService; + private final IPqErrSysService pqErrSysService; /** * 谐波类code,取树形字典表中的code @@ -1637,9 +1644,56 @@ public class ResultServiceImpl implements IResultService { @Override - public MonitorResultVO getMonitorResult(String devId) { + public List getMonitorResult(String devId) { + PqDev dev = pqDevService.getById(devId); + AdPlan plan = adPlanService.getById(dev.getPlanId()); + String errorSysName = pqErrSysService.getPqErrSysById(plan.getErrorSysId()).getName(); - return null; + List pqMonitorList = pqMonitorService.lambdaQuery().eq(PqMonitor::getDevId, devId).isNotNull(PqMonitor::getResultType).list(); + List list = new ArrayList<>(); + MonitorResultVO result; + for (PqMonitor pqMonitor : pqMonitorList) { + result = new MonitorResultVO(); + result.setMonitorId(pqMonitor.getDevId() + CnSocketUtil.SPLIT_TAG + pqMonitor.getNum()); + result.setErrorSysName(errorSysName); + result.setMonitorNum(pqMonitor.getNum()); + + result.setQualifiedNum(pqMonitor.getQualifiedNum()); + + List records = adPairService.page(new Page<>(1, 1), + new LambdaQueryWrapper().eq(AdPair::getDevMonitorId, result.getMonitorId()) + .eq(AdPair::getPlanId, plan.getId()).orderByDesc(AdPair::getNum)) + .getRecords(); + if (CollUtil.isNotEmpty(records)) { + result.setTotalNum(records.get(0).getNum()); + result.setUnQualifiedNum(result.getTotalNum() - result.getQualifiedNum()); + } + + String resultType = pqMonitor.getResultType(); + result.setResultType(resultType); + DataSourceEnum dataSourceEnum = DataSourceEnum.ofByValue(resultType); + switch (Objects.requireNonNull(dataSourceEnum)) { + case REAL_DATA: + result.setCheckResult(pqMonitor.getRealtimeResult()); + result.setWhichTime(pqMonitor.getRealtimeNum()); + result.setResultOrigin(dataSourceEnum.getMsg()); + break; + case WAVE_DATA: + result.setCheckResult(pqMonitor.getRecordedResult()); + List waveData = StrUtil.split(pqMonitor.getRecordedNum(), CnSocketUtil.SPLIT_TAG); + result.setWhichTime(waveData.get(0)); + result.setResultType(resultType + CnSocketUtil.SPLIT_TAG + waveData.get(1)); + result.setResultOrigin(dataSourceEnum.getMsg() + waveData.get(1)); + break; + default: + break; + } + + + list.add(result); + + } + return list; } @Override @@ -1651,12 +1705,17 @@ public class ResultServiceImpl implements IResultService { PqDev dev = pqDevService.getById(split[0]); String planId = dev.getPlanId(); AdPlan plan = adPlanService.getById(planId); + if (!plan.getFatherPlanId().equals(CommonEnum.FATHER_ID.getValue())) { + plan = adPlanService.getById(plan.getFatherPlanId()); + } + AdPlan finalPlan = plan; // 实时数据结果 - List nonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(plan.getCode()), null, null, false, monitorId, null); + List nonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(finalPlan.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<>(); @@ -1668,7 +1727,7 @@ public class ResultServiceImpl implements IResultService { dataSourceResultVOList.add(realDataSourceResultVO); // 录波数据结果 - List waveNonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(plan.getCode()), num, null, true, monitorId, null); + List waveNonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(finalPlan.getCode()), num, null, true, monitorId, null); Map> waveNumMap = waveNonHarmonicResults.stream() .sorted(Comparator.comparing(ContrastNonHarmonicResult::getWaveNum)) .collect(Collectors.groupingBy(ContrastNonHarmonicResult::getWaveNum, LinkedHashMap::new, Collectors.toList()));