比对完善
This commit is contained in:
@@ -75,9 +75,7 @@ public class ResultParam {
|
||||
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.PLAN_ID_FORMAT_ERROR)
|
||||
private String planId;
|
||||
|
||||
@ApiModelProperty(value = "脚本Id", required = true)
|
||||
@NotBlank(message = DetectionValidMessage.SCRIPT_ID_NOT_BLANK)
|
||||
@Pattern(regexp = PatternRegex.SYSTEM_ID, message = DetectionValidMessage.SCRIPT_ID_FORMAT_ERROR)
|
||||
@ApiModelProperty(value = "脚本Id", required = false)
|
||||
private String scriptId;
|
||||
|
||||
@ApiModelProperty(value = "误差体系Id", required = true)
|
||||
@@ -90,5 +88,8 @@ public class ResultParam {
|
||||
private String deviceId;
|
||||
|
||||
private String code;
|
||||
|
||||
@ApiModelProperty(value = "模式Id", required = true)
|
||||
private String patternId;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -63,6 +63,7 @@ public interface IResultService {
|
||||
* 更换误差体系
|
||||
*
|
||||
* @param param
|
||||
*
|
||||
*/
|
||||
void changeErrorSystem(ResultParam.ChangeErrorSystemParam param);
|
||||
|
||||
|
||||
@@ -11,11 +11,15 @@ import cn.hutool.core.util.StrUtil;
|
||||
import cn.hutool.json.JSONUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||
import com.google.common.collect.BiMap;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.njcn.common.pojo.enums.common.DataStateEnum;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.common.utils.PubUtils;
|
||||
import com.njcn.gather.detection.handler.SocketContrastResponseService;
|
||||
import com.njcn.gather.detection.pojo.enums.DetectionCodeEnum;
|
||||
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
||||
import com.njcn.gather.detection.pojo.po.AdPair;
|
||||
import com.njcn.gather.detection.pojo.po.DevData;
|
||||
import com.njcn.gather.detection.pojo.vo.AlignDataVO;
|
||||
import com.njcn.gather.detection.pojo.vo.DetectionData;
|
||||
@@ -23,6 +27,7 @@ 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.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.plan.pojo.po.AdPlan;
|
||||
@@ -72,6 +77,8 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.function.Function;
|
||||
@@ -351,6 +358,29 @@ public class ResultServiceImpl implements IResultService {
|
||||
List<PqScriptDtls> f = scriptDtlIndexList.stream().filter(x -> "Freq".equals(x.getValueType())).collect(Collectors.toList());
|
||||
dtlType.setScriptTypeName(dictTree.getName() + "=" + f.get(0).getValue() + ResultUnitEnum.FREQ.getUnit());
|
||||
break;
|
||||
case P: {
|
||||
String unitV;
|
||||
String unitI;
|
||||
if (isValueType) {
|
||||
unitV = ResultUnitEnum.V_RELATIVE.getUnit();
|
||||
unitI = ResultUnitEnum.I_RELATIVE.getUnit();
|
||||
} else {
|
||||
unitV = ResultUnitEnum.V_ABSOLUTELY.getUnit();
|
||||
unitI = ResultUnitEnum.I_ABSOLUTELY.getUnit();
|
||||
}
|
||||
List<PqScriptDtls> v = scriptDtlIndexList.stream().filter(x -> "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> i = scriptDtlIndexList.stream().filter(x -> "CUR".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> aDtl1 = scriptDtlIndexList.stream().filter(x -> "A".equals(x.getPhase()) && "VOL".equals(x.getValueType())).collect(Collectors.toList());
|
||||
List<PqScriptDtls> aDtl2 = scriptDtlIndexList.stream().filter(x -> "A".equals(x.getPhase()) && "CUR".equals(x.getValueType())).collect(Collectors.toList());
|
||||
|
||||
double cosValue = Math.cos((aDtl1.get(0).getAngle() - aDtl2.get(0).getAngle()) / 180 * Math.PI);
|
||||
BigDecimal bigDecimal = BigDecimal.valueOf(cosValue).setScale(6, BigDecimal.ROUND_HALF_UP);
|
||||
|
||||
dtlType.setScriptTypeName(ResultUnitEnum.V_RELATIVE.getName() + "=" + v.get(0).getValue().intValue() + unitV
|
||||
+ " " + ResultUnitEnum.I_RELATIVE.getName() + "=" + i.get(0).getValue().intValue() + unitI
|
||||
+ " cos(φ)=" + bigDecimal.doubleValue());
|
||||
}
|
||||
break;
|
||||
/**
|
||||
* 电压
|
||||
*/
|
||||
@@ -928,8 +958,14 @@ public class ResultServiceImpl implements IResultService {
|
||||
@Override
|
||||
@Transactional
|
||||
public void changeErrorSystem(ResultParam.ChangeErrorSystemParam param) {
|
||||
this.createTempResultTable(param.getCode() + "_temp");
|
||||
this.calculateResult(param.getPlanId(), param.getScriptId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId());
|
||||
DictData dictData = dictDataService.getDictDataById(param.getPatternId());
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
this.createTempResultTable(param.getCode() + "_temp", true);
|
||||
this.contrastCalculateResult(param.getPlanId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId());
|
||||
} else {
|
||||
this.createTempResultTable(param.getCode() + "_temp", false);
|
||||
this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode() + "_temp", param.getErrorSysId(), param.getDeviceId());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -940,7 +976,12 @@ public class ResultServiceImpl implements IResultService {
|
||||
|
||||
@Override
|
||||
public void reCalculate(ResultParam.ChangeErrorSystemParam param) {
|
||||
this.calculateResult(param.getPlanId(), param.getScriptId(), param.getCode(), param.getErrorSysId(), param.getDeviceId());
|
||||
DictData dictData = dictDataService.getDictDataById(param.getPatternId());
|
||||
if (PatternEnum.CONTRAST.getValue().equals(dictData.getCode())) {
|
||||
this.contrastCalculateResult(param.getPlanId(), param.getCode(), param.getErrorSysId(), param.getDeviceId());
|
||||
} else {
|
||||
this.simAndDigCalculateResult(param.getPlanId(), param.getScriptId(), param.getCode(), param.getErrorSysId(), param.getDeviceId());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1809,11 +1850,12 @@ public class ResultServiceImpl implements IResultService {
|
||||
* 拷贝结果表
|
||||
*
|
||||
* @param code
|
||||
* @param isContrast
|
||||
*/
|
||||
private void createTempResultTable(String code) {
|
||||
private void createTempResultTable(String code, boolean isContrast) {
|
||||
this.dropTempResultTable(code);
|
||||
String oldCode = code.replace("_temp", "");
|
||||
tableGenMapper.genNonHarmonicResultTable(code, false);
|
||||
tableGenMapper.genNonHarmonicResultTable(code, isContrast);
|
||||
StringBuilder A = new StringBuilder();
|
||||
StringBuilder B = new StringBuilder();
|
||||
StringBuilder C = new StringBuilder();
|
||||
@@ -1828,17 +1870,28 @@ public class ResultServiceImpl implements IResultService {
|
||||
C.append("C_Value_").append(i).append(" json NULL COMMENT '").append(i).append("次C相谐波',");
|
||||
}
|
||||
}
|
||||
String sql1 = "CREATE TABLE if not exists AD_Harmonic_Result_" + code + "(\n" +
|
||||
" Monitor_Id CHAR(60) NOT NULL COMMENT '监测点Id',\n" +
|
||||
" Time_Id DATETIME(3) NULL COMMENT '时间',\n" +
|
||||
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本子表Id,字典表',\n" +
|
||||
" Sort int(5) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
|
||||
|
||||
String sql1 = "CREATE TABLE if not exists AD_Harmonic_Result_" + code + " (\n" +
|
||||
" Dev_Monitor_Id CHAR(34) NOT NULL COMMENT '监测点Id',\n" +
|
||||
" Time_Id DATETIME(3) NULL COMMENT '时间',\n" +
|
||||
" AD_Type CHAR(32) NOT NULL COMMENT '检测指标,字典表',\n" +
|
||||
" Data_Type CHAR(32) NOT NULL COMMENT '数据指标,只有数据源为分钟统计时候才会使用(最大、最小、平均、CP95,默认平均值),字典表',\n" +
|
||||
" Result_Flag int(1) NOT NULL COMMENT '1合格 2不合格 4无法处理',\n" +
|
||||
A + B + C +
|
||||
" PRIMARY KEY (Monitor_Id, Script_Id, Sort, AD_Type)\n" +
|
||||
") COMMENT='监测数据表';";
|
||||
(isContrast ?
|
||||
"Id char(32) COLLATE utf8mb4_bin NOT NULL COMMENT '主键Id',\n" +
|
||||
"Std_Dev_Monitor_Id CHAR(34) NOT NULL COMMENT '标准设备监测点Id',\n" +
|
||||
"Num tinyint(1) unsigned DEFAULT 0 COMMENT '第几次检测',\n" +
|
||||
"Flag tinyint(1) unsigned DEFAULT NULL COMMENT '0表示被检设备数据,1表示标准设备数据',\n" +
|
||||
"A_Value_0 json NULL COMMENT 'A相基波有效值',\n" +
|
||||
"B_Value_0 json NULL COMMENT 'B相基波有效值',\n" +
|
||||
"C_Value_0 json NULL COMMENT 'B相基波有效值',\n" +
|
||||
"PRIMARY KEY (Id)\n"
|
||||
:
|
||||
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',\n" +
|
||||
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
|
||||
" PRIMARY KEY (Dev_Monitor_Id,Script_Id, Sort, AD_Type)\n"
|
||||
) + ") COMMENT='谐波类检测结果表';";
|
||||
tableGenMapper.genAdHarmonicTable(sql1);
|
||||
|
||||
sql1 = "CREATE TABLE ad_non_harmonic_" + code + " LIKE ad_non_harmonic_" + oldCode;
|
||||
@@ -1856,14 +1909,14 @@ public class ResultServiceImpl implements IResultService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据原始数据、误差体系id、计算检测结果
|
||||
* 数模-根据原始数据、误差体系id、计算检测结果
|
||||
*
|
||||
* @param planId
|
||||
* @param code
|
||||
* @param errorSysId
|
||||
* @param devId
|
||||
*/
|
||||
private void calculateResult(String planId, String scriptId, String code, String errorSysId, String devId) {
|
||||
private void simAndDigCalculateResult(String planId, String scriptId, String code, String errorSysId, String devId) {
|
||||
String oldCode = code.replace("_temp", "");
|
||||
PreDetectionParam param = new PreDetectionParam();
|
||||
param.setCode(code);
|
||||
@@ -1912,13 +1965,13 @@ public class ResultServiceImpl implements IResultService {
|
||||
List<SimAndDigHarmonicResult> harmonicResults = harmonicMap.get(sourceIssue.getIndex());
|
||||
List<DevData> realDataXiList = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(nonHarmonicResults)) {
|
||||
realDataXiList.addAll(this.toList(nonHarmonicResults, null, true));
|
||||
realDataXiList.addAll(this.simAndDigToList(nonHarmonicResults, null, true));
|
||||
}
|
||||
if (CollUtil.isNotEmpty(harmonicResults)) {
|
||||
if (DetectionCodeEnum.V2_50.getCode().equals(harmonicResults.get(0).getAdType()) || DetectionCodeEnum.I2_50.getCode().equals(harmonicResults.get(0).getAdType()) || DetectionCodeEnum.P2_50.getCode().equals(harmonicResults.get(0).getAdType())) {
|
||||
realDataXiList.addAll(this.toList(null, harmonicResults, true));
|
||||
realDataXiList.addAll(this.simAndDigToList(null, harmonicResults, true));
|
||||
} else {
|
||||
realDataXiList.addAll(this.toList(null, harmonicResults, false));
|
||||
realDataXiList.addAll(this.simAndDigToList(null, harmonicResults, false));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1933,7 +1986,72 @@ public class ResultServiceImpl implements IResultService {
|
||||
iPqDevService.updateResult(false, param.getDevIds(), valueType, param.getCode(), param.getUserId(), param.getTemperature(), param.getHumidity());
|
||||
}
|
||||
|
||||
private List<DevData> toList(List<SimAndDigNonHarmonicResult> nonHarm, List<SimAndDigHarmonicResult> harm, boolean containBaseHarm) {
|
||||
/**
|
||||
* 比对-根据原始数据、误差体系id、计算检测结果
|
||||
*
|
||||
* @param planId
|
||||
* @param code
|
||||
* @param errorSysId
|
||||
* @param deviceId
|
||||
*/
|
||||
private void contrastCalculateResult(String planId, String code, String errorSysId, String deviceId) {
|
||||
String oldCode = code.replace("_temp", "");
|
||||
|
||||
Map<String, String> devIdMapComm = new HashMap<>();
|
||||
PqDev dev = pqDevService.getById(deviceId);
|
||||
devIdMapComm.put(dev.getIp(), deviceId);
|
||||
|
||||
AdPlan plan = adPlanService.getById(planId);
|
||||
|
||||
BiMap<String, String> testItemMap = HashBiMap.create();
|
||||
List<String> testItemIds = Arrays.asList(plan.getTestItem().split(","));
|
||||
List<DictTree> dictTreeList = dictTreeService.getDictTreeById(testItemIds);
|
||||
List<String> fatherIdList = dictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
|
||||
List<DictTree> childDictTreeList = dictTreeService.listByFatherIds(fatherIdList);
|
||||
if (CollUtil.isNotEmpty(childDictTreeList)) {
|
||||
List<String> collect1 = SocketContrastResponseService.testItemCodeMap.values().stream().flatMap(Collection::stream).map(x -> x.split("\\$")[1]).collect(Collectors.toList());
|
||||
testItemMap.putAll(childDictTreeList.stream().filter(x -> collect1.contains(x.getCode())).collect(Collectors.toMap(obj -> DetectionCodeEnum.REAL_PREFIX.getCode() + obj.getCode(), obj -> obj.getId())));
|
||||
}
|
||||
|
||||
DictDataEnum dataRule;
|
||||
DictData dictData = dictDataService.getDictDataById(plan.getDataRule());
|
||||
if (ObjectUtil.isNotNull(dictData)) {
|
||||
dataRule = DictDataEnum.getDictDataEnumByCode(dictData.getCode());
|
||||
} else {
|
||||
dataRule = DictDataEnum.SECTION_VALUE;
|
||||
}
|
||||
|
||||
List<AdPair> adPairList = adPairService.listByDevIds(Arrays.asList(deviceId));
|
||||
Map<Integer, List<AdPair>> numAdPairsMap = adPairList.stream().collect(Collectors.groupingBy(AdPair::getNum, Collectors.toList()));
|
||||
numAdPairsMap.forEach((num, pairList) -> {
|
||||
BiMap<String, String> parsIp = 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) -> {
|
||||
String[] split1 = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||
AdPair adPair = pairList1.get(0);
|
||||
String[] split2 = adPair.getStdDevMonitorId().split(CnSocketUtil.SPLIT_TAG);
|
||||
|
||||
PqDev stdDev = pqDevService.getById(split2[1]);
|
||||
parsIp.put(dev.getIp() + split1[1], stdDev.getIp() + split2[1]);
|
||||
numMap.put(devMonitorId, num);
|
||||
numMap.put(adPair.getStdDevMonitorId(), num);
|
||||
});
|
||||
|
||||
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, 0, deviceId, null);
|
||||
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(oldCode, num, 1, deviceId, null);
|
||||
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, 0, deviceId, null);
|
||||
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(oldCode, num, 1, deviceId, null);
|
||||
|
||||
List<DevData> devData = contrastToList(devNonHarmonicRawDataList, devHarmonicRawDataList, testItemMap);
|
||||
List<DevData> standardDevData = contrastToList(stdDevNonHarmonicRawDataList, stdDevHarmonicRawDataList, testItemMap);
|
||||
|
||||
detectionServiceImpl.processing(devData, standardDevData, parsIp, devIdMapComm, testItemMap.keySet().stream().collect(Collectors.toList()), errorSysId, dataRule, numMap, code);
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private List<DevData> simAndDigToList(List<SimAndDigNonHarmonicResult> nonHarm, List<SimAndDigHarmonicResult> harm, boolean containBaseHarm) {
|
||||
List<DevData> info = new ArrayList<>();
|
||||
// if (CollUtil.isNotEmpty(nonHarm)) {
|
||||
if (CollUtil.isNotEmpty(nonHarm)) {
|
||||
@@ -2018,12 +2136,107 @@ public class ResultServiceImpl implements IResultService {
|
||||
return info;
|
||||
}
|
||||
|
||||
private List<String> reflectHarmonicValue(String phase, SimAndDigHarmonicResult adHarmonicResult, boolean notContainBaseHarm) {
|
||||
private List<DevData> contrastToList(List<ContrastNonHarmonicResult> nonHarm, List<ContrastHarmonicResult> harm, BiMap<String, String> testItemMap) {
|
||||
List<DevData> info = new ArrayList<>();
|
||||
if (CollUtil.isNotEmpty(nonHarm)) {
|
||||
Map<String, List<ContrastNonHarmonicResult>> devMonitorIdMap = nonHarm.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getDevMonitorId, Collectors.toList()));
|
||||
devMonitorIdMap.forEach((devMonitorId, value) -> {
|
||||
DevData devData = new DevData();
|
||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||
PqDev dev = pqDevService.getById(split[0]);
|
||||
devData.setId(dev.getIp() + CnSocketUtil.SPLIT_TAG + split[1]);
|
||||
Map<LocalDateTime, List<ContrastNonHarmonicResult>> timeListMap = value.stream().collect(Collectors.groupingBy(ContrastNonHarmonicResult::getTimeId, Collectors.toList()));
|
||||
timeListMap.forEach((time, value1) -> {
|
||||
List<DevData.SqlDataDTO> sqlData = new ArrayList<>();
|
||||
devData.setTime(time.format(DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN)));
|
||||
|
||||
value1.forEach(x -> {
|
||||
DevData.SqlDataDTO sqlDataDTO = new DevData.SqlDataDTO();
|
||||
DevData.SqlDataDTO.ListDTO listDTO = new DevData.SqlDataDTO.ListDTO();
|
||||
listDTO.setA(StrUtil.isNotBlank(x.getAValue()) ? Double.valueOf(x.getAValue()) : null);
|
||||
listDTO.setB(StrUtil.isNotBlank(x.getBValue()) ? Double.valueOf(x.getBValue()) : null);
|
||||
listDTO.setC(StrUtil.isNotBlank(x.getCValue()) ? Double.valueOf(x.getCValue()) : null);
|
||||
listDTO.setT(StrUtil.isNotBlank(x.getTValue()) ? Double.valueOf(x.getTValue()) : null);
|
||||
sqlDataDTO.setType(x.getDataType());
|
||||
sqlDataDTO.setDesc(testItemMap.inverse().get(x.getAdType()).replace(DetectionCodeEnum.REAL_PREFIX.getCode(), ""));
|
||||
sqlData.add(sqlDataDTO);
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
if (CollUtil.isNotEmpty(harm)) {
|
||||
Map<String, List<ContrastHarmonicResult>> devMonitorIdMap = harm.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getDevMonitorId, Collectors.toList()));
|
||||
devMonitorIdMap.forEach((devMonitorId, value) -> {
|
||||
DevData devData = new DevData();
|
||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||
PqDev dev = pqDevService.getById(split[0]);
|
||||
devData.setId(dev.getIp() + CnSocketUtil.SPLIT_TAG + split[1]);
|
||||
Map<LocalDateTime, List<ContrastHarmonicResult>> timeListMap = value.stream().collect(Collectors.groupingBy(ContrastHarmonicResult::getTimeId, Collectors.toList()));
|
||||
|
||||
timeListMap.forEach((time, value1) -> {
|
||||
devData.setTime(time.format(DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN)));
|
||||
List<DevData.SqlDataDTO> sqlData = new ArrayList<>();
|
||||
List<DevData.SqlDataHarmDTO> sqlDataHarm = new ArrayList<>();
|
||||
|
||||
value1.forEach(x -> {
|
||||
DevData.SqlDataHarmDTO dataHarmDTO = new DevData.SqlDataHarmDTO();
|
||||
dataHarmDTO.setType(x.getDataType());
|
||||
String desc = testItemMap.inverse().get(x.getAdType()).replace(DetectionCodeEnum.REAL_PREFIX.getCode(), "");
|
||||
dataHarmDTO.setDesc(desc);
|
||||
boolean notContainBaseHarm = false;
|
||||
if (DetectionCodeEnum.V2_50.getCode().equals(desc) || DetectionCodeEnum.PV2_50.getCode().equals(desc) || DetectionCodeEnum.I2_50.getCode().equals(desc)) {
|
||||
dataHarmDTO.setNum(49);
|
||||
notContainBaseHarm = true;
|
||||
}
|
||||
if (DetectionCodeEnum.SV_1_49.getCode().equals(desc) || DetectionCodeEnum.PSV_1_49.getCode().equals(desc) || DetectionCodeEnum.SI_1_49.getCode().equals(desc)) {
|
||||
dataHarmDTO.setNum(50);
|
||||
notContainBaseHarm = false;
|
||||
}
|
||||
|
||||
DevData.SqlDataHarmDTO.ListDTO listHarmDTO = new DevData.SqlDataHarmDTO.ListDTO();
|
||||
listHarmDTO.setA(reflectHarmonicValue("a", x, notContainBaseHarm));
|
||||
listHarmDTO.setB(reflectHarmonicValue("b", x, notContainBaseHarm));
|
||||
listHarmDTO.setC(reflectHarmonicValue("c", x, notContainBaseHarm));
|
||||
dataHarmDTO.setList(listHarmDTO);
|
||||
sqlDataHarm.add(dataHarmDTO);
|
||||
|
||||
if (DetectionCodeEnum.V2_50.getCode().equals(desc) || DetectionCodeEnum.PV2_50.getCode().equals(desc) || DetectionCodeEnum.SV_1_49.getCode().equals(desc) || DetectionCodeEnum.PSV_1_49.getCode().equals(desc)) {
|
||||
DevData.SqlDataDTO sqlDataDTO = new DevData.SqlDataDTO();
|
||||
sqlDataDTO.setType(x.getDataType());
|
||||
DevData.SqlDataDTO.ListDTO listDTO = new DevData.SqlDataDTO.ListDTO();
|
||||
listDTO.setA(StrUtil.isNotBlank(x.getAValue0()) ? Double.valueOf(x.getAValue0()) : null);
|
||||
listDTO.setB(StrUtil.isNotBlank(x.getBValue0()) ? Double.valueOf(x.getBValue0()) : null);
|
||||
listDTO.setC(StrUtil.isNotBlank(x.getCValue0()) ? Double.valueOf(x.getAValue0()) : null);
|
||||
|
||||
|
||||
if (DetectionCodeEnum.PV2_50.getCode().equals(desc) || DetectionCodeEnum.PSV_1_49.getCode().equals(desc)) {
|
||||
sqlDataDTO.setDesc(DetectionCodeEnum.PU1.getCode());
|
||||
} else {
|
||||
sqlDataDTO.setDesc(DetectionCodeEnum.U1.getCode());
|
||||
}
|
||||
sqlData.add(sqlDataDTO);
|
||||
}
|
||||
});
|
||||
devData.setSqlDataHarm(sqlDataHarm);
|
||||
devData.setSqlData(sqlData);
|
||||
});
|
||||
});
|
||||
}
|
||||
return info;
|
||||
}
|
||||
|
||||
private <T extends BaseResult> List<String> reflectHarmonicValue(String phase, T adHarmonicResult, boolean notContainBaseHarm) {
|
||||
List<String> info = new ArrayList<>();
|
||||
for (int i = notContainBaseHarm ? 2 : 1; i <= 50; i++) {
|
||||
String fieldName = phase + "Value" + i;
|
||||
try {
|
||||
Field idField = SimAndDigHarmonicResult.class.getDeclaredField(fieldName);
|
||||
Field idField = null;
|
||||
if (adHarmonicResult instanceof SimAndDigHarmonicResult) {
|
||||
idField = SimAndDigHarmonicResult.class.getDeclaredField(fieldName);
|
||||
}
|
||||
if (adHarmonicResult instanceof ContrastHarmonicResult) {
|
||||
idField = ContrastHarmonicResult.class.getDeclaredField(fieldName);
|
||||
}
|
||||
idField.setAccessible(true);
|
||||
String value = idField.get(adHarmonicResult) + "";
|
||||
info.add(value);
|
||||
|
||||
Reference in New Issue
Block a user