微调
This commit is contained in:
@@ -1,6 +1,5 @@
|
|||||||
package com.njcn.gather.detection.handler;
|
package com.njcn.gather.detection.handler;
|
||||||
|
|
||||||
import cn.hutool.core.collection.CollUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
||||||
@@ -287,11 +286,11 @@ public class SocketSourceResponseService {
|
|||||||
int readData;
|
int readData;
|
||||||
if(sourceIssue.getType().equals(DicDataEnum.F.getCode())){
|
if(sourceIssue.getType().equals(DicDataEnum.F.getCode())){
|
||||||
ignoreCount = 1;
|
ignoreCount = 1;
|
||||||
readData = 2;
|
readData = 1;
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_01.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_01.getValue());
|
||||||
}else if(sourceIssue.getType().equals(DicDataEnum.HP.getCode())){
|
}else if(sourceIssue.getType().equals(DicDataEnum.HP.getCode())){
|
||||||
ignoreCount = 2;
|
ignoreCount = 2;
|
||||||
readData = 5;
|
readData = 3;
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_01.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_01.getValue());
|
||||||
}else if(DicDataEnum.VOLTAGE.getCode().equals(sourceIssue.getType())){
|
}else if(DicDataEnum.VOLTAGE.getCode().equals(sourceIssue.getType())){
|
||||||
ignoreCount = 5;
|
ignoreCount = 5;
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import com.njcn.gather.detection.pojo.po.DevData;
|
|||||||
import com.njcn.gather.detection.pojo.vo.DetectionData;
|
import com.njcn.gather.detection.pojo.vo.DetectionData;
|
||||||
import com.njcn.gather.device.err.pojo.param.PqErrSysParam;
|
import com.njcn.gather.device.err.pojo.param.PqErrSysParam;
|
||||||
import com.njcn.gather.device.err.pojo.po.PqErrSysDtls;
|
import com.njcn.gather.device.err.pojo.po.PqErrSysDtls;
|
||||||
|
import com.njcn.gather.device.err.pojo.vo.ErrDtlsCheckDataVO;
|
||||||
import com.njcn.gather.device.err.service.IPqErrSysDtlsService;
|
import com.njcn.gather.device.err.service.IPqErrSysDtlsService;
|
||||||
import com.njcn.gather.device.script.pojo.po.PqScriptCheckData;
|
import com.njcn.gather.device.script.pojo.po.PqScriptCheckData;
|
||||||
import com.njcn.gather.device.script.pojo.po.SourceIssue;
|
import com.njcn.gather.device.script.pojo.po.SourceIssue;
|
||||||
@@ -27,6 +28,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.math.RoundingMode;
|
import java.math.RoundingMode;
|
||||||
|
import java.text.NumberFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.util.function.Function;
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -84,76 +86,70 @@ public class DetectionServiceImpl {
|
|||||||
param.setIndex(sourceIssue.getIndex());
|
param.setIndex(sourceIssue.getIndex());
|
||||||
param.setScriptId(sourceIssue.getScriptId());
|
param.setScriptId(sourceIssue.getScriptId());
|
||||||
param.setErrorSysId(errorSysId);
|
param.setErrorSysId(errorSysId);
|
||||||
List<PqErrSysDtls> pqErrSysDtls = pqErrSysDtlsService.listPqErrSysDtlsByPqErrSysIdAndTypes(param);
|
List<ErrDtlsCheckDataVO> errDtlsCheckData = pqErrSysDtlsService.listByPqErrSysIdAndTypes(param);
|
||||||
switch (sourceIssue.getType()) {
|
switch (sourceIssue.getType()) {
|
||||||
/**
|
/**
|
||||||
* 频率
|
* 频率
|
||||||
*/
|
*/
|
||||||
case "FREQ":
|
case "FREQ":
|
||||||
AdNonHarmonicResult freq = isQualified(dev, devIdMapComm, pqErrSysDtls, F, sourceIssue, dataRule, "FREQ");
|
return isQualified(dev, devIdMapComm, errDtlsCheckData, F, sourceIssue, dataRule, code);
|
||||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(freq), code);
|
|
||||||
return freq.getResultFlag();
|
|
||||||
/**
|
/**
|
||||||
* 电压
|
* 电压
|
||||||
*/
|
*/
|
||||||
case "V":
|
case "V":
|
||||||
AdNonHarmonicResult vrms = isQualified(dev, devIdMapComm, pqErrSysDtls, U, sourceIssue, dataRule, "VRMS");
|
return isQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, code);
|
||||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(vrms), code);
|
|
||||||
return vrms.getResultFlag();
|
|
||||||
/**
|
/**
|
||||||
* 电流
|
* 电流
|
||||||
*/
|
*/
|
||||||
case "I":
|
case "I":
|
||||||
AdNonHarmonicResult irms = isQualified(dev, devIdMapComm, pqErrSysDtls, I, sourceIssue, dataRule, "IRMS");
|
return isQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, code);
|
||||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(irms), code);
|
|
||||||
return irms.getResultFlag();
|
|
||||||
/**
|
/**
|
||||||
* 谐波电压
|
* 谐波电压
|
||||||
*/
|
*/
|
||||||
case "HV":
|
case "HV":
|
||||||
AdHarmonicResult harmV = isHarmQualified(dev, devIdMapComm, pqErrSysDtls, U, sourceIssue, dataRule, 2);
|
AdHarmonicResult harmV = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, 2);
|
||||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmV), code);
|
detectionDataDealService.acceptAdResult(Arrays.asList(harmV), code);
|
||||||
return harmV.getResultFlag();
|
return harmV.getResultFlag();
|
||||||
/**
|
/**
|
||||||
* 谐波电流
|
* 谐波电流
|
||||||
*/
|
*/
|
||||||
case "HI":
|
case "HI":
|
||||||
AdHarmonicResult harmI = isHarmQualified(dev, devIdMapComm, pqErrSysDtls, I, sourceIssue, dataRule, 2);
|
AdHarmonicResult harmI = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, 2);
|
||||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmI), code);
|
detectionDataDealService.acceptAdResult(Arrays.asList(harmI), code);
|
||||||
return harmI.getResultFlag();
|
return harmI.getResultFlag();
|
||||||
/**
|
/**
|
||||||
* 间谐波电压
|
* 间谐波电压
|
||||||
*/
|
*/
|
||||||
case "HSV":
|
case "HSV":
|
||||||
AdHarmonicResult harmInV = isHarmQualified(dev, devIdMapComm, pqErrSysDtls, U, sourceIssue, dataRule, 1);
|
AdHarmonicResult harmInV = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, 1);
|
||||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmInV), code);
|
detectionDataDealService.acceptAdResult(Arrays.asList(harmInV), code);
|
||||||
return harmInV.getResultFlag();
|
return harmInV.getResultFlag();
|
||||||
/**
|
/**
|
||||||
* 间谐波电流
|
* 间谐波电流
|
||||||
*/
|
*/
|
||||||
case "HSI":
|
case "HSI":
|
||||||
AdHarmonicResult harmInI = isHarmQualified(dev, devIdMapComm, pqErrSysDtls, I, sourceIssue, dataRule, 1);
|
AdHarmonicResult harmInI = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, 1);
|
||||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmInI), code);
|
detectionDataDealService.acceptAdResult(Arrays.asList(harmInI), code);
|
||||||
return harmInI.getResultFlag();
|
return harmInI.getResultFlag();
|
||||||
/**
|
/**
|
||||||
* 三相电压不平衡度
|
* 三相电压不平衡度
|
||||||
*/
|
*/
|
||||||
case "IMBV":
|
case "IMBV":
|
||||||
AdNonHarmonicResult vUnban = isUnBalanceOrFlickerQualified(dev, devIdMapComm, pqErrSysDtls, U, sourceIssue, dataRule, "V_UNBAN");
|
AdNonHarmonicResult vUnban = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, U, sourceIssue, dataRule, "V_UNBAN");
|
||||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(vUnban), code);
|
detectionDataDealService.acceptAdNonResult(Arrays.asList(vUnban), code);
|
||||||
return vUnban.getResultFlag();
|
return vUnban.getResultFlag();
|
||||||
/**
|
/**
|
||||||
* 三相电流不平衡度
|
* 三相电流不平衡度
|
||||||
*/
|
*/
|
||||||
case "IMBA":
|
case "IMBA":
|
||||||
AdNonHarmonicResult iUnban = isUnBalanceOrFlickerQualified(dev, devIdMapComm, pqErrSysDtls, I, sourceIssue, dataRule, "I_UNBAN");
|
AdNonHarmonicResult iUnban = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, I, sourceIssue, dataRule, "I_UNBAN");
|
||||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(iUnban), code);
|
detectionDataDealService.acceptAdNonResult(Arrays.asList(iUnban), code);
|
||||||
return iUnban.getResultFlag();
|
return iUnban.getResultFlag();
|
||||||
/**
|
/**
|
||||||
* 谐波有功功率
|
* 谐波有功功率
|
||||||
*/
|
*/
|
||||||
case "HP":
|
case "HP":
|
||||||
AdHarmonicResult harmP = isHarmQualified(dev, devIdMapComm, pqErrSysDtls, P, sourceIssue, dataRule, 2);
|
AdHarmonicResult harmP = isHarmQualified(dev, devIdMapComm, errDtlsCheckData, P, sourceIssue, dataRule, 2);
|
||||||
detectionDataDealService.acceptAdResult(Arrays.asList(harmP), code);
|
detectionDataDealService.acceptAdResult(Arrays.asList(harmP), code);
|
||||||
return harmP.getResultFlag();
|
return harmP.getResultFlag();
|
||||||
/**
|
/**
|
||||||
@@ -165,14 +161,14 @@ public class DetectionServiceImpl {
|
|||||||
* 闪变
|
* 闪变
|
||||||
*/
|
*/
|
||||||
case "F":
|
case "F":
|
||||||
AdNonHarmonicResult pst = isUnBalanceOrFlickerQualified(dev, devIdMapComm, pqErrSysDtls, null, sourceIssue, dataRule, "PST");
|
AdNonHarmonicResult pst = isUnBalanceOrFlickerQualified(dev, devIdMapComm, errDtlsCheckData, null, sourceIssue, dataRule, "PST");
|
||||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(pst), code);
|
detectionDataDealService.acceptAdNonResult(Arrays.asList(pst), code);
|
||||||
return pst.getResultFlag();
|
return pst.getResultFlag();
|
||||||
/**
|
/**
|
||||||
* 暂态
|
* 暂态
|
||||||
*/
|
*/
|
||||||
case "VOLTAGE":
|
case "VOLTAGE":
|
||||||
return isVoltageQualified(dev, devIdMapComm, pqErrSysDtls, sourceIssue, dataRule, code);
|
return isVoltageQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code);
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
@@ -181,21 +177,24 @@ public class DetectionServiceImpl {
|
|||||||
* 判断值是否在误差范围内,有则进行判断否则则不进行计算(非谐波类型)
|
* 判断值是否在误差范围内,有则进行判断否则则不进行计算(非谐波类型)
|
||||||
*
|
*
|
||||||
* @param dev 处理过后的数据
|
* @param dev 处理过后的数据
|
||||||
* @param pqErrSysDtls 误差体系
|
* @param errDtlsCheckData 误差体系
|
||||||
* @param type (电压还是电流)
|
* @param type (电压还是电流)
|
||||||
* @param sourceIssue 源下发所对应的参数
|
* @param sourceIssue 源下发所对应的参数
|
||||||
* @param dataRule 数据处理原则
|
* @param dataRule 数据处理原则
|
||||||
* @param code 源下发的装置通道code(->desc)
|
* @param code 源下发的装置通道code(->desc)
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public AdNonHarmonicResult isQualified(List<DevData> dev,
|
public Integer isQualified(List<DevData> dev,
|
||||||
Map<String, String> devIdMapComm,
|
Map<String, String> devIdMapComm,
|
||||||
List<PqErrSysDtls> pqErrSysDtls,
|
List<ErrDtlsCheckDataVO> errDtlsCheckData,
|
||||||
String type,
|
String type,
|
||||||
SourceIssue sourceIssue,
|
SourceIssue sourceIssue,
|
||||||
DictDataEnum dataRule,
|
DictDataEnum dataRule,
|
||||||
String code) {
|
String code) {
|
||||||
Map<String, List<Double>> map = devListMap(dev, dataRule, code);
|
List<AdNonHarmonicResult> info = new ArrayList<>();
|
||||||
|
List<String> devValueTypeList = sourceIssue.getDevValueTypeList();
|
||||||
|
for (String s : devValueTypeList) {
|
||||||
|
Map<String, List<Double>> map = devListMap(dev, dataRule, s.split("\\$")[1]);
|
||||||
Double fData = 1.0;
|
Double fData = 1.0;
|
||||||
if (U.equals(type)) {
|
if (U.equals(type)) {
|
||||||
fData = sourceIssue.getFUn();
|
fData = sourceIssue.getFUn();
|
||||||
@@ -212,7 +211,15 @@ public class DetectionServiceImpl {
|
|||||||
result.setMonitorId(devID + "_" + split[1]);
|
result.setMonitorId(devID + "_" + split[1]);
|
||||||
result.setScriptId(sourceIssue.getScriptId());
|
result.setScriptId(sourceIssue.getScriptId());
|
||||||
result.setSort(sourceIssue.getIndex());
|
result.setSort(sourceIssue.getIndex());
|
||||||
result.setAdType(pqErrSysDtls.get(0).getScriptType());
|
List<PqErrSysDtls> pqErrSysDtls = new ArrayList<>();
|
||||||
|
if (CollUtil.isNotEmpty(errDtlsCheckData)) {
|
||||||
|
result.setAdType(errDtlsCheckData.get(0).getValueType());
|
||||||
|
if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) {
|
||||||
|
pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls();
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
return 4;
|
||||||
|
}
|
||||||
result.setDataType("avg");
|
result.setDataType("avg");
|
||||||
if (map.containsKey(TYPE_T)) {
|
if (map.containsKey(TYPE_T)) {
|
||||||
DetectionData t = rangeComparisonList(map.get(TYPE_T), pqErrSysDtls, fData, fData, dataRule);
|
DetectionData t = rangeComparisonList(map.get(TYPE_T), pqErrSysDtls, fData, fData, dataRule);
|
||||||
@@ -240,14 +247,21 @@ public class DetectionServiceImpl {
|
|||||||
|
|
||||||
result.setResultFlag(setResultFlag(Arrays.asList(a, b, c)));
|
result.setResultFlag(setResultFlag(Arrays.asList(a, b, c)));
|
||||||
}
|
}
|
||||||
return result;
|
info.add(result);
|
||||||
|
}
|
||||||
|
if (CollUtil.isNotEmpty(info)) {
|
||||||
|
detectionDataDealService.acceptAdNonResult(info, code);
|
||||||
|
List<Integer> resultFlag = info.stream().map(AdNonHarmonicResult::getResultFlag).collect(Collectors.toList());
|
||||||
|
return getInteger(resultFlag);
|
||||||
|
}
|
||||||
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 判断值是否在误差范围内,有则进行判断否则则不进行计算(谐波类型)
|
* 判断值是否在误差范围内,有则进行判断否则则不进行计算(谐波类型)
|
||||||
*
|
*
|
||||||
* @param dev 处理过后的数据
|
* @param dev 处理过后的数据
|
||||||
* @param pqErrSysDtls 误差体系
|
* @param errDtlsCheckData 误差体系
|
||||||
* @param type (电压还是电流)
|
* @param type (电压还是电流)
|
||||||
* @param sourceIssue 源下发所对应的参数
|
* @param sourceIssue 源下发所对应的参数
|
||||||
* @param dataRule 数据处理原则
|
* @param dataRule 数据处理原则
|
||||||
@@ -256,7 +270,7 @@ public class DetectionServiceImpl {
|
|||||||
*/
|
*/
|
||||||
public AdHarmonicResult isHarmQualified(List<DevData> dev,
|
public AdHarmonicResult isHarmQualified(List<DevData> dev,
|
||||||
Map<String, String> devIdMapComm,
|
Map<String, String> devIdMapComm,
|
||||||
List<PqErrSysDtls> pqErrSysDtls,
|
List<ErrDtlsCheckDataVO> errDtlsCheckData,
|
||||||
String type,
|
String type,
|
||||||
SourceIssue sourceIssue,
|
SourceIssue sourceIssue,
|
||||||
DictDataEnum dataRule,
|
DictDataEnum dataRule,
|
||||||
@@ -273,16 +287,23 @@ public class DetectionServiceImpl {
|
|||||||
fData = sourceIssue.getFIn() * sourceIssue.getFUn() * 0.01;
|
fData = sourceIssue.getFIn() * sourceIssue.getFUn() * 0.01;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<DetectionData> integerBooleanA = harmRangeComparison(pqErrSysDtls, type, TYPE_A, sourceIssue, dataRule, devMap.get(TYPE_A), fData, num);
|
|
||||||
List<DetectionData> integerBooleanB = harmRangeComparison(pqErrSysDtls, type, TYPE_B, sourceIssue, dataRule, devMap.get(TYPE_B), fData, num);
|
|
||||||
List<DetectionData> integerBooleanC = harmRangeComparison(pqErrSysDtls, type, TYPE_C, sourceIssue, dataRule, devMap.get(TYPE_C), fData, num);
|
|
||||||
AdHarmonicResult harmonicResult = new AdHarmonicResult();
|
AdHarmonicResult harmonicResult = new AdHarmonicResult();
|
||||||
String[] split = dev.get(0).getId().split("_");
|
String[] split = dev.get(0).getId().split("_");
|
||||||
String devID = devIdMapComm.get(split[0]);
|
String devID = devIdMapComm.get(split[0]);
|
||||||
harmonicResult.setMonitorId(devID + "_" + split[1]);
|
harmonicResult.setMonitorId(devID + "_" + split[1]);
|
||||||
harmonicResult.setScriptId(sourceIssue.getScriptId());
|
harmonicResult.setScriptId(sourceIssue.getScriptId());
|
||||||
harmonicResult.setSort(sourceIssue.getIndex());
|
harmonicResult.setSort(sourceIssue.getIndex());
|
||||||
harmonicResult.setAdType(pqErrSysDtls.get(0).getScriptType());
|
List<PqErrSysDtls> pqErrSysDtls = new ArrayList<>();
|
||||||
|
if (CollUtil.isNotEmpty(errDtlsCheckData)) {
|
||||||
|
harmonicResult.setAdType(errDtlsCheckData.get(0).getValueType());
|
||||||
|
if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) {
|
||||||
|
pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
List<DetectionData> integerBooleanA = harmRangeComparison(pqErrSysDtls, type, TYPE_A, sourceIssue, dataRule, devMap.get(TYPE_A), fData, num);
|
||||||
|
List<DetectionData> integerBooleanB = harmRangeComparison(pqErrSysDtls, type, TYPE_B, sourceIssue, dataRule, devMap.get(TYPE_B), fData, num);
|
||||||
|
List<DetectionData> integerBooleanC = harmRangeComparison(pqErrSysDtls, type, TYPE_C, sourceIssue, dataRule, devMap.get(TYPE_C), fData, num);
|
||||||
harmonicResult.setDataType("avg");
|
harmonicResult.setDataType("avg");
|
||||||
reflectHarmonic("a", integerBooleanA, harmonicResult, num);
|
reflectHarmonic("a", integerBooleanA, harmonicResult, num);
|
||||||
reflectHarmonic("b", integerBooleanB, harmonicResult, num);
|
reflectHarmonic("b", integerBooleanB, harmonicResult, num);
|
||||||
@@ -292,7 +313,6 @@ public class DetectionServiceImpl {
|
|||||||
list.addAll(integerBooleanB.stream().distinct().collect(Collectors.toList()));
|
list.addAll(integerBooleanB.stream().distinct().collect(Collectors.toList()));
|
||||||
list.addAll(integerBooleanC.stream().distinct().collect(Collectors.toList()));
|
list.addAll(integerBooleanC.stream().distinct().collect(Collectors.toList()));
|
||||||
harmonicResult.setResultFlag(setResultFlag(list));
|
harmonicResult.setResultFlag(setResultFlag(list));
|
||||||
|
|
||||||
return harmonicResult;
|
return harmonicResult;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -301,7 +321,7 @@ public class DetectionServiceImpl {
|
|||||||
* 判断值是否在误差范围内,有则进行判断否则则不进行计算(三相不平衡和闪变)
|
* 判断值是否在误差范围内,有则进行判断否则则不进行计算(三相不平衡和闪变)
|
||||||
*
|
*
|
||||||
* @param dev 处理过后的数据
|
* @param dev 处理过后的数据
|
||||||
* @param pqErrSysDtls 误差体系
|
* @param errDtlsCheckData 误差体系
|
||||||
* @param type (电压还是电流)
|
* @param type (电压还是电流)
|
||||||
* @param sourceIssue 源下发所对应的参数
|
* @param sourceIssue 源下发所对应的参数
|
||||||
* @param dataRule 数据处理原则
|
* @param dataRule 数据处理原则
|
||||||
@@ -309,7 +329,7 @@ public class DetectionServiceImpl {
|
|||||||
*/
|
*/
|
||||||
public AdNonHarmonicResult isUnBalanceOrFlickerQualified(List<DevData> dev,
|
public AdNonHarmonicResult isUnBalanceOrFlickerQualified(List<DevData> dev,
|
||||||
Map<String, String> devIdMapComm,
|
Map<String, String> devIdMapComm,
|
||||||
List<PqErrSysDtls> pqErrSysDtls,
|
List<ErrDtlsCheckDataVO> errDtlsCheckData,
|
||||||
String type,
|
String type,
|
||||||
SourceIssue sourceIssue,
|
SourceIssue sourceIssue,
|
||||||
DictDataEnum dataRule,
|
DictDataEnum dataRule,
|
||||||
@@ -332,7 +352,13 @@ public class DetectionServiceImpl {
|
|||||||
result.setMonitorId(devID + "_" + split[1]);
|
result.setMonitorId(devID + "_" + split[1]);
|
||||||
result.setScriptId(sourceIssue.getScriptId());
|
result.setScriptId(sourceIssue.getScriptId());
|
||||||
result.setSort(sourceIssue.getIndex());
|
result.setSort(sourceIssue.getIndex());
|
||||||
result.setAdType(pqErrSysDtls.get(0).getScriptType());
|
List<PqErrSysDtls> pqErrSysDtls = new ArrayList<>();
|
||||||
|
if (CollUtil.isNotEmpty(errDtlsCheckData)) {
|
||||||
|
result.setAdType(errDtlsCheckData.get(0).getValueType());
|
||||||
|
if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) {
|
||||||
|
pqErrSysDtls = errDtlsCheckData.get(0).getErrSysDtls();
|
||||||
|
}
|
||||||
|
}
|
||||||
result.setDataType("avg");
|
result.setDataType("avg");
|
||||||
if (StrUtil.isBlank(type)) {
|
if (StrUtil.isBlank(type)) {
|
||||||
//取出源所对应的相别信息
|
//取出源所对应的相别信息
|
||||||
@@ -371,7 +397,7 @@ public class DetectionServiceImpl {
|
|||||||
* 判断值是否在误差范围内,有则进行判断否则则不进行计算(暂态)
|
* 判断值是否在误差范围内,有则进行判断否则则不进行计算(暂态)
|
||||||
*
|
*
|
||||||
* @param dev 处理过后的数据
|
* @param dev 处理过后的数据
|
||||||
* @param pqErrSysDtls 误差体系
|
* @param errDtlsCheckData 误差体系
|
||||||
* @param sourceIssue 源下发所对应的参数
|
* @param sourceIssue 源下发所对应的参数
|
||||||
* @param dataRule 数据处理原则
|
* @param dataRule 数据处理原则
|
||||||
* @param code 计划code
|
* @param code 计划code
|
||||||
@@ -379,7 +405,7 @@ public class DetectionServiceImpl {
|
|||||||
*/
|
*/
|
||||||
public Integer isVoltageQualified(List<DevData> dev,
|
public Integer isVoltageQualified(List<DevData> dev,
|
||||||
Map<String, String> devIdMapComm,
|
Map<String, String> devIdMapComm,
|
||||||
List<PqErrSysDtls> pqErrSysDtls,
|
List<ErrDtlsCheckDataVO> errDtlsCheckData,
|
||||||
SourceIssue sourceIssue,
|
SourceIssue sourceIssue,
|
||||||
DictDataEnum dataRule,
|
DictDataEnum dataRule,
|
||||||
String code
|
String code
|
||||||
@@ -390,13 +416,11 @@ public class DetectionServiceImpl {
|
|||||||
Map<String, List<Double>> dur = devListMap(dev, dataRule, DUR);
|
Map<String, List<Double>> dur = devListMap(dev, dataRule, DUR);
|
||||||
//理论上根据检测脚本,能知道误差体系,可以知道多个误差体系
|
//理论上根据检测脚本,能知道误差体系,可以知道多个误差体系
|
||||||
//暂态电压下多少就是多少
|
//暂态电压下多少就是多少
|
||||||
List<PqErrSysDtls> magErrList = pqErrSysDtls.stream().filter(x -> MAG.equals(x.getScriptCode())).collect(Collectors.toList());
|
List<ErrDtlsCheckDataVO> magErrList = errDtlsCheckData.stream().filter(x -> MAG.equals(x.getValueTypeCode())).collect(Collectors.toList());
|
||||||
List<PqErrSysDtls> durErrList = pqErrSysDtls.stream().filter(x -> DUR.equals(x.getScriptCode())).collect(Collectors.toList());
|
List<ErrDtlsCheckDataVO> durErrList = errDtlsCheckData.stream().filter(x -> DUR.equals(x.getValueTypeCode())).collect(Collectors.toList());
|
||||||
|
|
||||||
AdNonHarmonicResult magResult = voltageResult(dev.get(0).getId(), devIdMapComm, sourceIssue, dataRule, mag, magErrList, sourceIssue.getFUn(), MAG);
|
AdNonHarmonicResult magResult = voltageResult(dev.get(0).getId(), devIdMapComm, sourceIssue, dataRule, mag, magErrList, sourceIssue.getFUn(), MAG);
|
||||||
magResult.setAdType(magErrList.get(0).getScriptType());
|
|
||||||
AdNonHarmonicResult durResult = voltageResult(dev.get(0).getId(), devIdMapComm, sourceIssue, dataRule, dur, durErrList, sourceIssue.getFFreq(), DUR);
|
AdNonHarmonicResult durResult = voltageResult(dev.get(0).getId(), devIdMapComm, sourceIssue, dataRule, dur, durErrList, sourceIssue.getFFreq(), DUR);
|
||||||
durResult.setAdType(durErrList.get(0).getScriptType());
|
|
||||||
detectionDataDealService.acceptAdNonResult(Arrays.asList(magResult, durResult), code);
|
detectionDataDealService.acceptAdNonResult(Arrays.asList(magResult, durResult), code);
|
||||||
List<Integer> numbers = Arrays.asList(magResult.getResultFlag(), durResult.getResultFlag()).stream().distinct().collect(Collectors.toList());
|
List<Integer> numbers = Arrays.asList(magResult.getResultFlag(), durResult.getResultFlag()).stream().distinct().collect(Collectors.toList());
|
||||||
if (numbers.contains(4)) {
|
if (numbers.contains(4)) {
|
||||||
@@ -413,7 +437,7 @@ public class DetectionServiceImpl {
|
|||||||
* @param sourceIssue 源下发信息
|
* @param sourceIssue 源下发信息
|
||||||
* @param dataRule 数据处理原则
|
* @param dataRule 数据处理原则
|
||||||
* @param mag
|
* @param mag
|
||||||
* @param magErrList
|
* @param errDtlsCheckData
|
||||||
* @param fData
|
* @param fData
|
||||||
* @Description:
|
* @Description:
|
||||||
* @return: com.njcn.gather.storage.pojo.po.AdNonHarmonicResult
|
* @return: com.njcn.gather.storage.pojo.po.AdNonHarmonicResult
|
||||||
@@ -425,7 +449,7 @@ public class DetectionServiceImpl {
|
|||||||
SourceIssue sourceIssue,
|
SourceIssue sourceIssue,
|
||||||
DictDataEnum dataRule,
|
DictDataEnum dataRule,
|
||||||
Map<String, List<Double>> mag,
|
Map<String, List<Double>> mag,
|
||||||
List<PqErrSysDtls> magErrList,
|
List<ErrDtlsCheckDataVO> errDtlsCheckData,
|
||||||
Double fData,
|
Double fData,
|
||||||
String dur
|
String dur
|
||||||
) {
|
) {
|
||||||
@@ -436,6 +460,13 @@ public class DetectionServiceImpl {
|
|||||||
result.setScriptId(sourceIssue.getScriptId());
|
result.setScriptId(sourceIssue.getScriptId());
|
||||||
result.setSort(sourceIssue.getIndex());
|
result.setSort(sourceIssue.getIndex());
|
||||||
result.setDataType("avg");
|
result.setDataType("avg");
|
||||||
|
List<PqErrSysDtls> magErrList = new ArrayList<>();
|
||||||
|
if (CollUtil.isNotEmpty(errDtlsCheckData)) {
|
||||||
|
result.setAdType(errDtlsCheckData.get(0).getValueType());
|
||||||
|
if (CollUtil.isNotEmpty(errDtlsCheckData.get(0).getErrSysDtls())) {
|
||||||
|
magErrList = errDtlsCheckData.get(0).getErrSysDtls();
|
||||||
|
}
|
||||||
|
}
|
||||||
//取出源所对应的相别信息
|
//取出源所对应的相别信息
|
||||||
List<SourceIssue.ChannelListDTO> channelTypeAList = sourceIssue.getChannelList().stream()
|
List<SourceIssue.ChannelListDTO> channelTypeAList = sourceIssue.getChannelList().stream()
|
||||||
.filter(x -> ("Ua").equals(x.getChannelType()))
|
.filter(x -> ("Ua").equals(x.getChannelType()))
|
||||||
@@ -481,6 +512,10 @@ public class DetectionServiceImpl {
|
|||||||
|
|
||||||
private Integer setResultFlag(List<DetectionData> numbers) {
|
private Integer setResultFlag(List<DetectionData> numbers) {
|
||||||
List<Integer> isData = numbers.stream().filter(x -> ObjectUtil.isNotNull(x.getData())).map(DetectionData::getIsData).distinct().collect(Collectors.toList());
|
List<Integer> isData = numbers.stream().filter(x -> ObjectUtil.isNotNull(x.getData())).map(DetectionData::getIsData).distinct().collect(Collectors.toList());
|
||||||
|
return getInteger(isData);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Integer getInteger(List<Integer> isData) {
|
||||||
if (CollUtil.isNotEmpty(isData)) {
|
if (CollUtil.isNotEmpty(isData)) {
|
||||||
if (isData.size() > 1) {
|
if (isData.size() > 1) {
|
||||||
if (isData.contains(4)) {
|
if (isData.contains(4)) {
|
||||||
@@ -510,21 +545,21 @@ public class DetectionServiceImpl {
|
|||||||
List<DevData.SqlDataDTO.ListDTO> list = sqlDataDTOS.stream().map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
List<DevData.SqlDataDTO.ListDTO> list = sqlDataDTOS.stream().map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
||||||
List<Double> a = list.stream()
|
List<Double> a = list.stream()
|
||||||
.filter(x -> ObjectUtil.isNotNull(x.getA()))
|
.filter(x -> ObjectUtil.isNotNull(x.getA()))
|
||||||
.map(DevData.SqlDataDTO.ListDTO::getA)
|
.map(x -> x.getA().doubleValue())
|
||||||
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<Double> b = list.stream()
|
List<Double> b = list.stream()
|
||||||
.filter(x -> ObjectUtil.isNotNull(x.getB()))
|
.filter(x -> ObjectUtil.isNotNull(x.getB()))
|
||||||
.map(DevData.SqlDataDTO.ListDTO::getB)
|
.map(x -> x.getB().doubleValue())
|
||||||
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<Double> c = list.stream()
|
List<Double> c = list.stream()
|
||||||
.filter(x -> ObjectUtil.isNotNull(x.getC()))
|
.filter(x -> ObjectUtil.isNotNull(x.getC()))
|
||||||
.map(DevData.SqlDataDTO.ListDTO::getC)
|
.map(x -> x.getC().doubleValue())
|
||||||
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
List<Double> t = list.stream().filter(x -> ObjectUtil.isNotNull(x.getT()))
|
List<Double> t = list.stream().filter(x -> ObjectUtil.isNotNull(x.getT()))
|
||||||
.map(DevData.SqlDataDTO.ListDTO::getT)
|
.map(x -> x.getT().doubleValue())
|
||||||
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
.sorted(Comparator.comparing(Double::doubleValue).reversed())
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
switch (dataRule) {
|
switch (dataRule) {
|
||||||
@@ -650,7 +685,11 @@ public class DetectionServiceImpl {
|
|||||||
errSys.setMaxErrorValue(maxErrorMultiply(errSys.getMaxErrorValue(), fData, issueHarmMap.get(harm), errSys.getErrorValueType()));
|
errSys.setMaxErrorValue(maxErrorMultiply(errSys.getMaxErrorValue(), fData, issueHarmMap.get(harm), errSys.getErrorValueType()));
|
||||||
Double v = issueHarmMap.get(harm);
|
Double v = issueHarmMap.get(harm);
|
||||||
data.setResultData(v);
|
data.setResultData(v);
|
||||||
data.setRadius(-errSysDtl.getMaxErrorValue() + "~" + errSysDtl.getMaxErrorValue());
|
NumberFormat nf = NumberFormat.getInstance();
|
||||||
|
nf.setMaximumFractionDigits(6);
|
||||||
|
nf.setGroupingUsed(false);
|
||||||
|
|
||||||
|
data.setRadius(nf.format(-errSysDtl.getMaxErrorValue()) + "~" + nf.format(-errSysDtl.getMaxErrorValue()));
|
||||||
setDetection(dataRule, harmDataList, errSys, data, v);
|
setDetection(dataRule, harmDataList, errSys, data, v);
|
||||||
}
|
}
|
||||||
info.add(data);
|
info.add(data);
|
||||||
@@ -781,11 +820,14 @@ public class DetectionServiceImpl {
|
|||||||
channelData)).collect(Collectors.toList());
|
channelData)).collect(Collectors.toList());
|
||||||
if (CollUtil.isNotEmpty(errSysDtls)) {
|
if (CollUtil.isNotEmpty(errSysDtls)) {
|
||||||
PqErrSysDtls errSysDtl = BeanUtil.copyProperties(errSysDtls.get(0), PqErrSysDtls.class);
|
PqErrSysDtls errSysDtl = BeanUtil.copyProperties(errSysDtls.get(0), PqErrSysDtls.class);
|
||||||
|
NumberFormat nf = NumberFormat.getInstance();
|
||||||
|
nf.setMaximumFractionDigits(6);
|
||||||
|
nf.setGroupingUsed(false);
|
||||||
if (DUR.equals(errSysDtl.getScriptCode())) {
|
if (DUR.equals(errSysDtl.getScriptCode())) {
|
||||||
if (CollUtil.isNotEmpty(list)) {
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
detectionData.setResultData(BigDecimal.valueOf(1.0 / data).doubleValue() * channelData);
|
detectionData.setResultData(BigDecimal.valueOf(1.0 / data).doubleValue() * channelData);
|
||||||
detectionData.setRadius(BigDecimal.valueOf(1.0 / data * (channelData - errSysDtl.getMaxErrorValue()))
|
detectionData.setRadius(nf.format(BigDecimal.valueOf(1.0 / data * (channelData - errSysDtl.getMaxErrorValue())))
|
||||||
+ "~" + BigDecimal.valueOf(1.0 / data * (channelData + errSysDtl.getMaxErrorValue())));
|
+ "~" + nf.format(BigDecimal.valueOf(1.0 / data * (channelData + errSysDtl.getMaxErrorValue()))));
|
||||||
detectionData.setData(list.get(0));
|
detectionData.setData(list.get(0));
|
||||||
List<Double> qualifiedList = list.stream()
|
List<Double> qualifiedList = list.stream()
|
||||||
.filter(x -> NumberUtil.isIn(BigDecimal.valueOf(x.doubleValue()),
|
.filter(x -> NumberUtil.isIn(BigDecimal.valueOf(x.doubleValue()),
|
||||||
@@ -798,7 +840,8 @@ public class DetectionServiceImpl {
|
|||||||
if (CollUtil.isNotEmpty(list)) {
|
if (CollUtil.isNotEmpty(list)) {
|
||||||
errSysDtl.setMaxErrorValue(maxErrorMultiply(errSysDtl.getMaxErrorValue(), data, channelData, errSysDtl.getErrorValueType()));
|
errSysDtl.setMaxErrorValue(maxErrorMultiply(errSysDtl.getMaxErrorValue(), data, channelData, errSysDtl.getErrorValueType()));
|
||||||
detectionData.setResultData(channelData);
|
detectionData.setResultData(channelData);
|
||||||
detectionData.setRadius(-errSysDtl.getMaxErrorValue() + "~" + errSysDtl.getMaxErrorValue());
|
|
||||||
|
detectionData.setRadius(nf.format(-errSysDtl.getMaxErrorValue()) + "~" + nf.format(-errSysDtl.getMaxErrorValue()));
|
||||||
detectionData.setData(list.get(0));
|
detectionData.setData(list.get(0));
|
||||||
setDetection(dataRule, list, errSysDtl, detectionData, channelData);
|
setDetection(dataRule, list, errSysDtl, detectionData, channelData);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,6 +30,9 @@ public class TreeDataVO {
|
|||||||
* 测试相
|
* 测试相
|
||||||
*/
|
*/
|
||||||
private Integer index;
|
private Integer index;
|
||||||
|
|
||||||
|
private String scriptType;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否检测合格
|
* 是否检测合格
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -172,6 +172,7 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
if (finalResultMap.containsKey(index)) {
|
if (finalResultMap.containsKey(index)) {
|
||||||
TreeDataVO dtlType = new TreeDataVO();
|
TreeDataVO dtlType = new TreeDataVO();
|
||||||
dtlType.setIndex(index);
|
dtlType.setIndex(index);
|
||||||
|
dtlType.setScriptType(scriptDtlIndexList.get(0).getScriptType());
|
||||||
ratedScriptTypeName(scriptDtlIndexList, isValueType, dtlType, dictTree);
|
ratedScriptTypeName(scriptDtlIndexList, isValueType, dtlType, dictTree);
|
||||||
dtlType.setSourceDesc(getStringBuffer(scriptDtlIndexList, isValueType).toString());
|
dtlType.setSourceDesc(getStringBuffer(scriptDtlIndexList, isValueType).toString());
|
||||||
dtlType.setFly(conform(finalResultMap.get(index)));
|
dtlType.setFly(conform(finalResultMap.get(index)));
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
package com.njcn.gather.device.err.pojo.vo;
|
||||||
|
|
||||||
|
import com.njcn.gather.device.err.pojo.po.PqErrSysDtls;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author caozehui
|
||||||
|
* @date 2024-11-27
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class ErrDtlsCheckDataVO implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Id
|
||||||
|
*/
|
||||||
|
private String checkDataId;
|
||||||
|
|
||||||
|
|
||||||
|
private String valueType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private String valueTypeCode;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 值
|
||||||
|
*/
|
||||||
|
private Double value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
private List<PqErrSysDtls> errSysDtls;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
|
|||||||
import com.njcn.gather.device.err.pojo.param.PqErrSysDtlsParam;
|
import com.njcn.gather.device.err.pojo.param.PqErrSysDtlsParam;
|
||||||
import com.njcn.gather.device.err.pojo.param.PqErrSysParam;
|
import com.njcn.gather.device.err.pojo.param.PqErrSysParam;
|
||||||
import com.njcn.gather.device.err.pojo.po.PqErrSysDtls;
|
import com.njcn.gather.device.err.pojo.po.PqErrSysDtls;
|
||||||
|
import com.njcn.gather.device.err.pojo.vo.ErrDtlsCheckDataVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -49,4 +50,11 @@ public interface IPqErrSysDtlsService extends IService<PqErrSysDtls> {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<PqErrSysDtls> listPqErrSysDtlsByPqErrSysIdAndTypes(PqErrSysParam.DetectionParam param);
|
List<PqErrSysDtls> listPqErrSysDtlsByPqErrSysIdAndTypes(PqErrSysParam.DetectionParam param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据查询误差体系
|
||||||
|
* @param param 误差体系id
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ErrDtlsCheckDataVO> listByPqErrSysIdAndTypes(PqErrSysParam.DetectionParam param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.njcn.gather.device.err.service.impl;
|
package com.njcn.gather.device.err.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
@@ -7,8 +8,10 @@ import com.njcn.gather.device.err.mapper.PqErrSysDtlsMapper;
|
|||||||
import com.njcn.gather.device.err.pojo.param.PqErrSysDtlsParam;
|
import com.njcn.gather.device.err.pojo.param.PqErrSysDtlsParam;
|
||||||
import com.njcn.gather.device.err.pojo.param.PqErrSysParam;
|
import com.njcn.gather.device.err.pojo.param.PqErrSysParam;
|
||||||
import com.njcn.gather.device.err.pojo.po.PqErrSysDtls;
|
import com.njcn.gather.device.err.pojo.po.PqErrSysDtls;
|
||||||
|
import com.njcn.gather.device.err.pojo.vo.ErrDtlsCheckDataVO;
|
||||||
import com.njcn.gather.device.err.service.IPqErrSysDtlsService;
|
import com.njcn.gather.device.err.service.IPqErrSysDtlsService;
|
||||||
import com.njcn.gather.device.script.pojo.param.PqScriptCheckDataParam;
|
import com.njcn.gather.device.script.pojo.param.PqScriptCheckDataParam;
|
||||||
|
import com.njcn.gather.device.script.pojo.po.PqScriptCheckData;
|
||||||
import com.njcn.gather.device.script.service.IPqScriptCheckDataService;
|
import com.njcn.gather.device.script.service.IPqScriptCheckDataService;
|
||||||
import com.njcn.gather.system.dictionary.pojo.po.DictTree;
|
import com.njcn.gather.system.dictionary.pojo.po.DictTree;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@@ -17,9 +20,8 @@ import org.springframework.beans.BeanUtils;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.Collections;
|
import java.util.stream.Collectors;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author caozehui
|
* @author caozehui
|
||||||
@@ -86,4 +88,39 @@ public class PqErrSysDtlsServiceImpl extends ServiceImpl<PqErrSysDtlsMapper, PqE
|
|||||||
);
|
);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ErrDtlsCheckDataVO> listByPqErrSysIdAndTypes(PqErrSysParam.DetectionParam param) {
|
||||||
|
List<ErrDtlsCheckDataVO> info=new ArrayList<>();
|
||||||
|
PqScriptCheckDataParam checkDataParam = new PqScriptCheckDataParam();
|
||||||
|
checkDataParam.setScriptId(param.getScriptId());
|
||||||
|
checkDataParam.setIndex(param.getIndex());
|
||||||
|
List<PqScriptCheckData> list = pqScriptCheckDataService.listCheckDataCode(checkDataParam);
|
||||||
|
|
||||||
|
List<String> valueType = list.stream().filter(x->x.getErrorFlag()!=0).map(PqScriptCheckData::getValueType).collect(Collectors.toList());
|
||||||
|
Map<String, List<PqErrSysDtls>> errMap =new HashMap<>(3);
|
||||||
|
if(CollUtil.isNotEmpty(valueType)){
|
||||||
|
List<PqErrSysDtls> errSysDtls = this.list(new MPJLambdaWrapper<PqErrSysDtls>().selectAll(PqErrSysDtls.class)
|
||||||
|
.selectAll(PqErrSysDtls.class)
|
||||||
|
.selectAs(DictTree::getCode, PqErrSysDtls::getScriptCode)
|
||||||
|
.leftJoin(DictTree.class, DictTree::getId, PqErrSysDtls::getScriptType)
|
||||||
|
.eq(PqErrSysDtls::getErrorSysId, param.getErrorSysId())
|
||||||
|
.in(PqErrSysDtls::getScriptType, valueType)
|
||||||
|
);
|
||||||
|
errMap= errSysDtls.stream().collect(Collectors.groupingBy(PqErrSysDtls::getScriptType));
|
||||||
|
}
|
||||||
|
ErrDtlsCheckDataVO dataVO;
|
||||||
|
for (PqScriptCheckData script : list) {
|
||||||
|
dataVO=new ErrDtlsCheckDataVO();
|
||||||
|
dataVO.setCheckDataId(script.getScriptId());
|
||||||
|
dataVO.setValueTypeCode(script.getValueTypeCode());
|
||||||
|
dataVO.setValueType(script.getValueType());
|
||||||
|
dataVO.setValue(script.getValue());
|
||||||
|
if(errMap.containsKey(script.getValueType())){
|
||||||
|
dataVO.setErrSysDtls(errMap.get(script.getValueType()));
|
||||||
|
}
|
||||||
|
info.add(dataVO);
|
||||||
|
}
|
||||||
|
return info;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,6 +34,9 @@ public class PqScriptCheckData implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private String valueType;
|
private String valueType;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private String valueTypeCode;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 数据类型,来源于字典表,包括实时数据(3s)、分钟统计数据(1min/3min/5min/10min)等
|
* 数据类型,来源于字典表,包括实时数据(3s)、分钟统计数据(1min/3min/5min/10min)等
|
||||||
*/
|
*/
|
||||||
@@ -60,6 +63,10 @@ public class PqScriptCheckData implements Serializable {
|
|||||||
*/
|
*/
|
||||||
private Integer enable;
|
private Integer enable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否参与误差比较:0-不参与 1-参与
|
||||||
|
*/
|
||||||
|
@TableField("Error_Flag")
|
||||||
|
private Integer errorFlag;
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -26,6 +26,14 @@ public interface IPqScriptCheckDataService extends IService<PqScriptCheckData> {
|
|||||||
List<String> getValueType(PqScriptCheckDataParam param);
|
List<String> getValueType(PqScriptCheckDataParam param);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Map<String,String> getValueTypeMap(String scriptId);
|
Map<String,String> getValueTypeMap(String scriptId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取监测脚本code
|
||||||
|
* @param param
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<PqScriptCheckData> listCheckDataCode(PqScriptCheckDataParam param);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,5 +80,17 @@ public class PqScriptCheckDataServiceImpl extends ServiceImpl<PqScriptCheckDataM
|
|||||||
return map;
|
return map;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PqScriptCheckData> listCheckDataCode(PqScriptCheckDataParam param) {
|
||||||
|
MPJLambdaWrapper<PqScriptCheckData> queryWrapper = new MPJLambdaWrapper<>();
|
||||||
|
queryWrapper.selectAll(PqScriptCheckData.class)
|
||||||
|
.leftJoin(DictTree.class, DictTree::getId, PqScriptCheckData::getValueType)
|
||||||
|
.selectAs(DictTree::getCode, PqScriptCheckData::getValueTypeCode)
|
||||||
|
.eq(PqScriptCheckData::getScriptId, param.getScriptId())
|
||||||
|
.eq(PqScriptCheckData::getIndex, param.getIndex())
|
||||||
|
.eq(PqScriptCheckData::getEnable, DataStateEnum.ENABLE.getCode());
|
||||||
|
return this.getBaseMapper().selectJoinList(PqScriptCheckData.class, queryWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -219,9 +219,9 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
|||||||
queryWrapper.selectAll(PqScriptDtls.class)
|
queryWrapper.selectAll(PqScriptDtls.class)
|
||||||
.selectAs(DictTree::getCode, PqScriptDtls::getScriptCode)
|
.selectAs(DictTree::getCode, PqScriptDtls::getScriptCode)
|
||||||
.leftJoin(DictTree.class, DictTree::getId, PqScriptDtls::getScriptType)
|
.leftJoin(DictTree.class, DictTree::getId, PqScriptDtls::getScriptType)
|
||||||
// .ge(PqScriptDtls::getIndex, 14)
|
// .ge(PqScriptDtls::getIndex, 9)
|
||||||
// .ge(PqScriptDtls::getIndex, 30)
|
// .ge(PqScriptDtls::getIndex, 48)
|
||||||
// .eq(PqScriptDtls::getIndex, 30)
|
// .in(PqScriptDtls::getIndex, Arrays.asList(30,101,105))
|
||||||
|
|
||||||
.eq(PqScriptCheckData::getEnable, DataStateEnum.ENABLE.getCode());
|
.eq(PqScriptCheckData::getEnable, DataStateEnum.ENABLE.getCode());
|
||||||
if (isPhaseSequence.equals(CommonEnum.PHASE_TEST.getValue())) {
|
if (isPhaseSequence.equals(CommonEnum.PHASE_TEST.getValue())) {
|
||||||
|
|||||||
Reference in New Issue
Block a user