结果展示调整

This commit is contained in:
caozehui
2025-09-17 09:08:23 +08:00
parent d220ee0187
commit 213d940ff1
12 changed files with 192 additions and 25 deletions

View File

@@ -1603,12 +1603,14 @@ public class DetectionServiceImpl {
switch (anEnum) {
case FREQ:
devDataList.stream().forEach(devData -> devData.getSqlData().stream().filter(sqlData -> sqlData.getDesc().equals(DetectionCodeEnum.FREQ.getCode())).findFirst().ifPresent(sqlData -> {
DevData.SqlDataDTO.ListDTO listDTO = sqlData.getList();
listDTO.setT(55.0);
sqlData.setList(listDTO);
}));
resultMap.put(PowerIndexEnum.FREQ.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fHz, DetectionCodeEnum.FREQ.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
if (ObjectUtil.isNull(waveNum)) {
devDataList.stream().forEach(devData -> devData.getSqlData().stream().filter(sqlData -> sqlData.getDesc().equals(DetectionCodeEnum.FREQ.getCode())).findFirst().ifPresent(sqlData -> {
DevData.SqlDataDTO.ListDTO listDTO = sqlData.getList();
listDTO.setT(55.0);
sqlData.setList(listDTO);
}));
resultMap.put(PowerIndexEnum.FREQ.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fHz, DetectionCodeEnum.FREQ.getCode(), dataRule, num, code, oneConfig.getScale(), waveNum));
}
break;
case VRMS:
case PVRMS:

View File

@@ -517,6 +517,7 @@ public class PqDevServiceImpl extends ServiceImpl<PqDevMapper, PqDev> implements
pqDevSubService.lambdaUpdate()
.set(PqDevSub::getCheckState, checkState)
.set(PqDevSub::getCheckResult, checkResult)
.set(StrUtil.isNotBlank(userId), PqDevSub::getCheckBy, userId)
.eq(PqDevSub::getDevId, devId).update();
PqDevParam.QueryParam param = new PqDevParam.QueryParam();

View File

@@ -55,6 +55,9 @@ public class PqMonitorParam {
@NotBlank(message = DetectionValidMessage.MONITOR_ID_NOT_BLANK)
private String harmSysId;
@ApiModelProperty(value = "是否做检测")
private Integer checkFlag;
/**
* 分页查询实体

View File

@@ -108,5 +108,7 @@ public class PqMonitor implements Serializable {
private String resultType;
private Integer qualifiedNum; // 合格次数
private Integer checkFlag; // 是否做检测
}

View File

@@ -231,7 +231,8 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
@Override
public Integer getDevCheckState(String devId) {
QueryWrapper<PqMonitor> wrapper = new QueryWrapper<>();
wrapper.eq("pq_monitor.Dev_Id", devId);
wrapper.eq("pq_monitor.Dev_Id", devId)
.eq("pq_monitor.Check_Flag", 1);
List<PqMonitor> monitorList = this.list(wrapper);
if (CollUtil.isNotEmpty(monitorList)) {
List<Integer> allNumList = monitorList.stream().map(PqMonitor::getNum).collect(Collectors.toList());
@@ -251,7 +252,8 @@ public class PqMonitorServiceImpl extends ServiceImpl<PqMonitorMapper, PqMonitor
@Override
public Integer getDevCheckResult(String devId) {
QueryWrapper<PqMonitor> wrapper = new QueryWrapper<>();
wrapper.eq("pq_monitor.Dev_Id", devId);
wrapper.eq("pq_monitor.Dev_Id", devId)
.eq("pq_monitor.Check_Flag", 1);
List<PqMonitor> monitorList = this.list(wrapper);
List<Integer> allResultFlags = new ArrayList<>();

View File

@@ -9,6 +9,7 @@ import com.njcn.common.pojo.response.HttpResult;
import com.njcn.common.utils.LogUtil;
import com.njcn.gather.detection.service.IAdPariService;
import com.njcn.gather.detection.util.socket.CnSocketUtil;
import com.njcn.gather.result.pojo.param.MonitorQueryParam;
import com.njcn.gather.result.pojo.param.ResultParam;
import com.njcn.gather.result.pojo.vo.*;
import com.njcn.gather.result.service.IResultService;
@@ -166,7 +167,7 @@ public class ResultController extends BaseController {
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@GetMapping("/getMonitorDataSourceResult")
@ApiOperation("获取监测点的检测结果下拉框")
@ApiImplicitParam(name = "param", value = "查询参数", required = true)
@ApiImplicitParam(name = "monitorId", value = "监测点id", required = true)
public HttpResult<Map<Integer, List<DataSourceResultVO>>> getMonitorDataSourceResult(@RequestParam("monitorId") String monitorId) {
String methodDescribe = getMethodDescribe("getMonitorDataSourceResult");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, monitorId);
@@ -187,4 +188,17 @@ public class ResultController extends BaseController {
boolean result = resultService.updateMonitorResult(resultParams);
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
@OperateInfo(info = LogEnum.BUSINESS_COMMON)
@PostMapping("/getCheckItem")
@ApiOperation("获取监测点的检测项")
@ApiImplicitParam(name = "monitorQueryParam", value = "监测点查询参数", required = true)
public HttpResult<List<ContrastTestItemVO>> getCheckItem(@RequestBody MonitorQueryParam monitorQueryParam) {
String methodDescribe = getMethodDescribe("getCheckItem");
LogUtil.njcnDebug(log, "{},查询数据为:{}", methodDescribe, monitorQueryParam);
List<ContrastTestItemVO> result = resultService.getCheckItem(monitorQueryParam.getDevId(),monitorQueryParam.getChnNum(), monitorQueryParam.getNum());
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
}
}

View File

@@ -0,0 +1,18 @@
package com.njcn.gather.result.pojo.param;
import lombok.Data;
/**
* @author caozehui
* @data 2025-09-16
*/
@Data
public class MonitorQueryParam {
private String devId;
private String chnNum;
private Integer num;
private Integer waveNum;
}

View File

@@ -0,0 +1,22 @@
package com.njcn.gather.result.pojo.vo;
import lombok.Data;
import java.util.List;
/**
* @author caozehui
* @data 2025-09-16
*/
@Data
public class ContrastTestItemVO {
private String id;
private String scriptName;
private String code;
private Integer resultFlag;
private List<ContrastTestItemVO> subItems;
}

View File

@@ -118,4 +118,14 @@ public interface IResultService {
Map<Integer, List<DataSourceResultVO>> getMonitorDataSourceResult(String monitorId);
Boolean updateMonitorResult(MonitorResultVO result);
/**
* 获取检测项
*
* @param devId
* @param chnNum
* @param num
* @return
*/
List<ContrastTestItemVO> getCheckItem(String devId, String chnNum, Integer num);
}

View File

@@ -29,6 +29,7 @@ import com.njcn.gather.detection.pojo.vo.DetectionData;
import com.njcn.gather.detection.service.IAdPariService;
import com.njcn.gather.detection.service.impl.DetectionServiceImpl;
import com.njcn.gather.detection.util.socket.CnSocketUtil;
import com.njcn.gather.detection.util.socket.FormalTestManager;
import com.njcn.gather.device.pojo.enums.CommonEnum;
import com.njcn.gather.device.pojo.enums.PatternEnum;
import com.njcn.gather.device.pojo.po.PqDev;
@@ -1565,16 +1566,19 @@ public class ResultServiceImpl implements IResultService {
formContentVO.setErrorSysId(plan.getErrorSysId());
List<DictTree> dictTreeList = null;
if (DataSourceEnum.WAVE_DATA.getValue().equals(queryParam.getScriptType())) {
List<Map<String, String>> bigTestItem = adPlanService.getBigTestItem(1, queryParam.getPlanId(), Collections.singletonList(queryParam.getDeviceId()), queryParam.getPatternId(), DataSourceEnum.WAVE_DATA.getValue());
List<String> ids = bigTestItem.stream().filter(x -> !DetectionCodeEnum.FREQ.getCode().equals(x.get("code"))).map(x -> x.get("id")).collect(Collectors.toList());
dictTreeList = dictTreeService.getDictTreeById(ids);
} else {
dictTreeList = dictTreeService.getDictTreeById(Collections.singletonList(queryParam.getScriptType()));
List<String> adTypeList = null;
if (StrUtil.isNotBlank(queryParam.getScriptType())) {
if (DataSourceEnum.WAVE_DATA.getValue().equals(queryParam.getScriptType())) {
List<Map<String, String>> bigTestItem = adPlanService.getBigTestItem(1, queryParam.getPlanId(), Collections.singletonList(queryParam.getDeviceId()), queryParam.getPatternId(), DataSourceEnum.WAVE_DATA.getValue());
List<String> ids = bigTestItem.stream().filter(x -> !DetectionCodeEnum.FREQ.getCode().equals(x.get("code"))).map(x -> x.get("id")).collect(Collectors.toList());
dictTreeList = dictTreeService.getDictTreeById(ids);
} else {
dictTreeList = dictTreeService.getDictTreeById(Collections.singletonList(queryParam.getScriptType()));
}
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
}
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
List<ContrastBaseResult> allResultList = new ArrayList<>();
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(String.valueOf(plan.getCode()), null, null, false, queryParam.getDeviceId(), adTypeList);
@@ -1778,6 +1782,63 @@ public class ResultServiceImpl implements IResultService {
return pqMonitorService.updateById(monitor);
}
@Override
public List<ContrastTestItemVO> getCheckItem(String devId, String chnNum, Integer num) {
PqDev dev = pqDevService.getById(devId);
AdPlan plan = adPlanService.getById(dev.getPlanId());
String code = String.valueOf(plan.getCode());
String monitorId = devId + CnSocketUtil.SPLIT_TAG + chnNum;
List<ContrastNonHarmonicResult> realNoHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, null, false, monitorId, null);
List<ContrastHarmonicResult> realHarmonicResults = contrastHarmonicService.listAllResultData(code, num, null, false, monitorId, null);
Map<String, List<Integer>> checkItemResultMap = realNoHarmonicResults.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getAdType, Collectors.mapping(ContrastNonHarmonicResult::getResultFlag, Collectors.toList())));
checkItemResultMap.putAll(realHarmonicResults.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getAdType, Collectors.mapping(ContrastHarmonicResult::getResultFlag, Collectors.toList()))));
List<ContrastTestItemVO> result = new ArrayList<>();
checkItemResultMap.forEach((adType, resultList) -> {
ContrastTestItemVO contrastTestItemVO = new ContrastTestItemVO();
DictTree childDictTree = dictTreeService.getById(adType);
DictTree fatherDictTree = dictTreeService.getById(childDictTree.getPid());
contrastTestItemVO.setId(fatherDictTree.getId());
contrastTestItemVO.setCode(fatherDictTree.getCode());
contrastTestItemVO.setScriptName(fatherDictTree.getName());
contrastTestItemVO.setResultFlag(StorageUtil.getInteger(resultList));
result.add(contrastTestItemVO);
});
checkItemResultMap.clear();
List<ContrastNonHarmonicResult> waveNoHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, null, true, monitorId, null);
List<ContrastHarmonicResult> waveHarmonicResults = contrastHarmonicService.listAllResultData(code, num, null, true, monitorId, null);
checkItemResultMap.putAll(waveNoHarmonicResults.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getAdType, Collectors.mapping(ContrastNonHarmonicResult::getResultFlag, Collectors.toList()))));
checkItemResultMap.putAll(waveHarmonicResults.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getAdType, Collectors.mapping(ContrastHarmonicResult::getResultFlag, Collectors.toList()))));
ContrastTestItemVO contrastTestItemVO = new ContrastTestItemVO();
contrastTestItemVO.setId(DataSourceEnum.WAVE_DATA.getValue());
contrastTestItemVO.setCode(DataSourceEnum.WAVE_DATA.getValue());
contrastTestItemVO.setScriptName(DataSourceEnum.WAVE_DATA.getMsg());
List<ContrastTestItemVO> setSubItems = new ArrayList<>();
checkItemResultMap.forEach((adType, resultList) -> {
ContrastTestItemVO subContrastTestItemVO = new ContrastTestItemVO();
DictTree childDictTree = dictTreeService.getById(adType);
DictTree fatherDictTree = dictTreeService.getById(childDictTree.getPid());
subContrastTestItemVO.setId(fatherDictTree.getId());
subContrastTestItemVO.setCode(fatherDictTree.getCode());
subContrastTestItemVO.setScriptName(fatherDictTree.getName());
subContrastTestItemVO.setResultFlag(StorageUtil.getInteger(resultList));
setSubItems.add(subContrastTestItemVO);
});
contrastTestItemVO.setResultFlag(StorageUtil.getInteger(checkItemResultMap.values().stream().flatMap(List::stream).distinct().collect(Collectors.toList())));
contrastTestItemVO.setSubItems(setSubItems);
result.add(contrastTestItemVO);
return result;
}
private Map<String, List<RawResultDataVO>> getResultMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, Integer waveNum, Boolean isWave, String code) {
Map<String, List<RawResultDataVO>> resultMap = new LinkedHashMap<>();
@@ -2183,6 +2244,7 @@ public class ResultServiceImpl implements IResultService {
Map<Integer, List<AdPair>> numAdPairsMap = adPairList.stream().collect(Collectors.groupingBy(AdPair::getNum, Collectors.toList()));
numAdPairsMap.forEach((num, pairList) -> {
BiMap<String, String> parsIp = HashBiMap.create();
BiMap<String, String> parsId = HashBiMap.create();
Map<String, Integer> numMap = new HashMap<>();
Map<String, List<AdPair>> devMonitroIdMap = pairList.stream().collect(Collectors.groupingBy(AdPair::getDevMonitorId, Collectors.toList()));
devMonitroIdMap.forEach((devMonitorId, pairList1) -> {
@@ -2192,6 +2254,7 @@ public class ResultServiceImpl implements IResultService {
PqDev stdDev = pqDevService.getById(split2[1]);
parsIp.put(dev.getIp() + split1[1], stdDev.getIp() + split2[1]);
parsId.put(dev.getId() + split1[1], stdDev.getId() + split2[1]);
numMap.put(devMonitorId, num);
numMap.put(adPair.getStdDevMonitorId(), num);
});
@@ -2206,6 +2269,12 @@ public class ResultServiceImpl implements IResultService {
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, null);
parsId.forEach((devMonitorId, stdDevMonitorId) -> {
pqMonitorService.updateMonitorResult(devMonitorId, null, DataSourceEnum.REAL_DATA, FormalTestManager.numMap.get(devMonitorId), null, oldCode);
pqDevService.updateResult(devMonitorId.split(CnSocketUtil.SPLIT_TAG)[0], null);
});
boolean waveFlag = true;
AdPlanTestConfig adPlanTestConfig = adPlanTestConfigService.getByPlanId(planId);
for (int i = 1; i <= adPlanTestConfig.getWaveRecord(); i++) {
devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, i, true, 0, deviceId, null);
@@ -2213,10 +2282,23 @@ public class ResultServiceImpl implements IResultService {
devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, 0, deviceId, null);
stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, i, true, 1, deviceId, null);
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
if (CollUtil.isNotEmpty(devNonHarmonicRawDataList) && CollUtil.isNotEmpty(stdDevNonHarmonicRawDataList) && CollUtil.isNotEmpty(devHarmonicRawDataList) && CollUtil.isNotEmpty(stdDevHarmonicRawDataList)) {
devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, oldCode, i);
} else {
waveFlag = false;
break;
}
}
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code, i);
if (waveFlag) {
parsId.forEach((devMonitorId, stdDevMonitorId) -> {
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
String id = FormalTestManager.devIdMapComm.get(split[0]);
pqMonitorService.updateMonitorResult(devMonitorId, null, DataSourceEnum.WAVE_DATA, num, adPlanTestConfig.getWaveRecord(), oldCode);
pqDevService.updateResult(id, null);
});
}
});
}

View File

@@ -32,7 +32,11 @@ public class ContrastHarmonicServiceImpl extends ServiceImpl<ContrastHarmonicMap
.in(CollUtil.isNotEmpty(adTypeList), ContrastHarmonicResult::getAdType, adTypeList)
.orderByAsc(ContrastHarmonicResult::getTimeId);
if (isWave) {
wrapper.eq(ObjectUtil.isNotNull(waveNum), ContrastHarmonicResult::getWaveNum, waveNum);
if (ObjectUtil.isNotNull(waveNum)) {
wrapper.eq(ContrastHarmonicResult::getWaveNum, waveNum);
} else {
wrapper.isNotNull(ContrastHarmonicResult::getWaveNum);
}
} else {
wrapper.isNull(ContrastHarmonicResult::getWaveNum);
}
@@ -47,10 +51,13 @@ public class ContrastHarmonicServiceImpl extends ServiceImpl<ContrastHarmonicMap
DynamicTableNameHandler.setTableName(prefix);
LambdaQueryChainWrapper<ContrastHarmonicResult> wrapper = this.lambdaQuery().likeRight(ContrastHarmonicResult::getDevMonitorId, devId)
.eq(ObjectUtil.isNotNull(num), ContrastHarmonicResult::getNum, num)
.eq(ObjectUtil.isNotNull(waveNum), ContrastHarmonicResult::getWaveNum, waveNum)
.in(CollUtil.isNotEmpty(adTypeList), ContrastHarmonicResult::getAdType, adTypeList);
if (isWave) {
wrapper.eq(ObjectUtil.isNotNull(waveNum), ContrastHarmonicResult::getWaveNum, waveNum);
if (ObjectUtil.isNotNull(waveNum)) {
wrapper.eq(ContrastHarmonicResult::getWaveNum, waveNum);
} else {
wrapper.isNotNull(ContrastHarmonicResult::getWaveNum);
}
} else {
wrapper.isNull(ContrastHarmonicResult::getWaveNum);
}

View File

@@ -32,7 +32,11 @@ public class ContrastNonHarmonicServiceImpl extends ServiceImpl<ContrastNonHarmo
.in(CollUtil.isNotEmpty(adTypeList), ContrastNonHarmonicResult::getAdType, adTypeList)
.orderByAsc(ContrastNonHarmonicResult::getTimeId);
if (isWave) {
wrapper.eq(ObjectUtil.isNotNull(waveNum), ContrastNonHarmonicResult::getWaveNum, waveNum);
if (ObjectUtil.isNotNull(waveNum)) {
wrapper.eq(ContrastNonHarmonicResult::getWaveNum, waveNum);
} else {
wrapper.isNotNull(ContrastNonHarmonicResult::getWaveNum);
}
} else {
wrapper.isNull(ContrastNonHarmonicResult::getWaveNum);
}