动态决定是否进行相角差校验、角型接线是否使用相别的指标进行正式检测、数模脚本与映射校验时动态补充相角的测试项
This commit is contained in:
@@ -130,10 +130,6 @@ public class SocketContrastResponseService {
|
|||||||
@Value("${log.homeDir}")
|
@Value("${log.homeDir}")
|
||||||
private String alignDataFilePath;
|
private String alignDataFilePath;
|
||||||
|
|
||||||
@Value("${phaseAngle.isEnable}")
|
|
||||||
private Boolean isPhaseAngle;
|
|
||||||
|
|
||||||
|
|
||||||
private static final Map<String, List<String>> testItemCodeMap = new HashMap() {{
|
private static final Map<String, List<String>> testItemCodeMap = new HashMap() {{
|
||||||
put("FREQ", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.FREQ.getCode()));
|
put("FREQ", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.FREQ.getCode()));
|
||||||
put("V", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.VRMS.getCode(), DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PVRMS.getCode()));
|
put("V", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.VRMS.getCode(), DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PVRMS.getCode()));
|
||||||
@@ -275,7 +271,8 @@ public class SocketContrastResponseService {
|
|||||||
FormalTestManager.devIdMapComm.putAll(FormalTestManager.standardDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP, PreDetection::getDevId)));
|
FormalTestManager.devIdMapComm.putAll(FormalTestManager.standardDevList.stream().collect(Collectors.toMap(PreDetection::getDevIP, PreDetection::getDevId)));
|
||||||
|
|
||||||
Map<String, Integer> numMap = getContrastTestNum(param.getPairs().keySet().stream().collect(Collectors.toList()));
|
Map<String, Integer> numMap = getContrastTestNum(param.getPairs().keySet().stream().collect(Collectors.toList()));
|
||||||
param.setNumMap(numMap);
|
FormalTestManager.numMap.clear();
|
||||||
|
FormalTestManager.numMap.putAll(numMap);
|
||||||
SysTestConfig oneConfig = sysTestConfigService.getOneConfig();
|
SysTestConfig oneConfig = sysTestConfigService.getOneConfig();
|
||||||
if (param.getTestItemList().get(2)) {
|
if (param.getTestItemList().get(2)) {
|
||||||
numMap.forEach((devMonitorId, num) -> {
|
numMap.forEach((devMonitorId, num) -> {
|
||||||
@@ -463,8 +460,8 @@ public class SocketContrastResponseService {
|
|||||||
|
|
||||||
if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
if (successComm.size() == FormalTestManager.monitorMap.size()) {
|
||||||
|
|
||||||
boolean modelCheckResult = this.modelCheck(param, FormalTestManager.devDataMap, FormalTestManager.monitorMap.get(monitorId1));
|
boolean modelCheckResult = this.modelCheck(param, FormalTestManager.devDataMap, FormalTestManager.monitorMap.get(monitorId1), true);
|
||||||
modelCheckResult = this.modelCheck(param, FormalTestManager.standardDevDataMap, FormalTestManager.monitorMap.get(monitorId1)) && modelCheckResult;
|
modelCheckResult = this.modelCheck(param, FormalTestManager.standardDevDataMap, FormalTestManager.monitorMap.get(monitorId1), false) && modelCheckResult;
|
||||||
if (!modelCheckResult) {
|
if (!modelCheckResult) {
|
||||||
this.clearData();
|
this.clearData();
|
||||||
|
|
||||||
@@ -606,8 +603,17 @@ public class SocketContrastResponseService {
|
|||||||
|
|
||||||
// 进行单个监测点的对齐校验
|
// 进行单个监测点的对齐校验
|
||||||
if (!successPair.containsKey(devMonitorId)) {
|
if (!successPair.containsKey(devMonitorId)) {
|
||||||
if (this.singleMonitorAlignCheck(FormalTestManager.devDataMap.get(devMonitorId), FormalTestManager.standardDevDataMap.get(standardDevMonitorId))) {
|
if (FormalTestManager.devDataMap.get(devMonitorId).size() >= 5 && FormalTestManager.standardDevDataMap.get(standardDevMonitorId).size() >= 5) {
|
||||||
|
List<List<DevData>> singleMonitorAlignData = this.getSingleMonitorAlignData(FormalTestManager.devDataMap.get(devMonitorId), FormalTestManager.standardDevDataMap.get(standardDevMonitorId), 5);
|
||||||
|
|
||||||
|
// if (this.singleMonitorAlignCheck(FormalTestManager.devDataMap.get(devMonitorId), FormalTestManager.standardDevDataMap.get(standardDevMonitorId))) {
|
||||||
|
if (singleMonitorAlignData.get(0).size() >= 5 && singleMonitorAlignData.get(1).size() >= 5) {
|
||||||
successPair.put(devMonitorId, standardDevMonitorId);
|
successPair.put(devMonitorId, standardDevMonitorId);
|
||||||
|
FormalTestManager.devDataMap.get(devMonitorId).clear();
|
||||||
|
FormalTestManager.devDataMap.get(devMonitorId).addAll(singleMonitorAlignData.get(0));
|
||||||
|
|
||||||
|
FormalTestManager.standardDevDataMap.get(standardDevMonitorId).clear();
|
||||||
|
FormalTestManager.standardDevDataMap.get(standardDevMonitorId).addAll(singleMonitorAlignData.get(1));
|
||||||
|
|
||||||
//向前端推送实时数据对齐成功的配对
|
//向前端推送实时数据对齐成功的配对
|
||||||
SocketDataMsg webSend = new SocketDataMsg();
|
SocketDataMsg webSend = new SocketDataMsg();
|
||||||
@@ -663,6 +669,7 @@ public class SocketContrastResponseService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case UNPROCESSED_BUSINESS:
|
case UNPROCESSED_BUSINESS:
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||||
@@ -909,14 +916,14 @@ public class SocketContrastResponseService {
|
|||||||
adPair.setPlanId(FormalTestManager.currentTestPlan.getId());
|
adPair.setPlanId(FormalTestManager.currentTestPlan.getId());
|
||||||
adPair.setDevMonitorId(key);
|
adPair.setDevMonitorId(key);
|
||||||
adPair.setStdDevMonitorId(FormalTestManager.pairsIdMap.get(key));
|
adPair.setStdDevMonitorId(FormalTestManager.pairsIdMap.get(key));
|
||||||
adPair.setNum(param.getNumMap().get(key));
|
adPair.setNum(FormalTestManager.numMap.get(key));
|
||||||
adPairList.add(adPair);
|
adPairList.add(adPair);
|
||||||
}
|
}
|
||||||
adPairService.saveBatch(adPairList);
|
adPairService.saveBatch(adPairList);
|
||||||
|
|
||||||
// 原始数据入库
|
// 原始数据入库
|
||||||
baseDataInsert(false, singleMonitorAlignData.get(0), param.getNumMap(), code);
|
baseDataInsert(false, FormalTestManager.devDataMap.values().stream().flatMap(List::stream).collect(Collectors.toList()), FormalTestManager.numMap, code);
|
||||||
baseDataInsert(true, singleMonitorAlignData.get(1), param.getNumMap(), code);
|
baseDataInsert(true, FormalTestManager.standardDevDataMap.values().stream().flatMap(List::stream).collect(Collectors.toList()), FormalTestManager.numMap, code);
|
||||||
|
|
||||||
// 进行误差计算
|
// 进行误差计算
|
||||||
List<DevLineTestResult> allResultList = detectionService.processing(
|
List<DevLineTestResult> allResultList = detectionService.processing(
|
||||||
@@ -925,7 +932,7 @@ public class SocketContrastResponseService {
|
|||||||
FormalTestManager.pairsIpMap,
|
FormalTestManager.pairsIpMap,
|
||||||
FormalTestManager.devIdMapComm,
|
FormalTestManager.devIdMapComm,
|
||||||
FormalTestManager.testItemMap.keySet().stream().collect(Collectors.toList()),
|
FormalTestManager.testItemMap.keySet().stream().collect(Collectors.toList()),
|
||||||
errorSysId, FormalTestManager.dataRule, param.getNumMap(), code);
|
errorSysId, FormalTestManager.dataRule, FormalTestManager.numMap, code);
|
||||||
|
|
||||||
this.clearData();
|
this.clearData();
|
||||||
|
|
||||||
@@ -1245,10 +1252,11 @@ public class SocketContrastResponseService {
|
|||||||
/**
|
/**
|
||||||
* 模型一致性校验
|
* 模型一致性校验
|
||||||
*
|
*
|
||||||
* @param param
|
* @param param 预检测参数
|
||||||
* @param dataMap
|
* @param dataMap 收到的数据
|
||||||
|
* @param isDev 是否是被检设备
|
||||||
*/
|
*/
|
||||||
private boolean modelCheck(PreDetectionParam param, Map<String, List<DevData>> dataMap, PreDetection.MonitorListDTO monitorListDTO) {
|
private boolean modelCheck(PreDetectionParam param, Map<String, List<DevData>> dataMap, PreDetection.MonitorListDTO monitorListDTO, boolean isDev) {
|
||||||
AtomicBoolean flag = new AtomicBoolean(true);
|
AtomicBoolean flag = new AtomicBoolean(true);
|
||||||
dataMap.forEach((k, v) -> {
|
dataMap.forEach((k, v) -> {
|
||||||
v.stream().forEach(devData1 -> {
|
v.stream().forEach(devData1 -> {
|
||||||
@@ -1274,25 +1282,42 @@ public class SocketContrastResponseService {
|
|||||||
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.SV_1_49.getCode());
|
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.SV_1_49.getCode());
|
||||||
|
|
||||||
// 如果是在是没有线电压谐波含有率、线电压间谐波含有率,勉强使其通过
|
// 如果是在是没有线电压谐波含有率、线电压间谐波含有率,勉强使其通过
|
||||||
if (!descList.contains(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PV2_50.getCode())) {
|
String ip = k.split(CnSocketUtil.SPLIT_TAG)[0];
|
||||||
|
PreDetection preDetection = null;
|
||||||
|
if (isDev) {
|
||||||
|
preDetection = FormalTestManager.devList.stream().filter(obj -> obj.getDevIP().equals(ip)).findFirst().orElse(null);
|
||||||
|
} else {
|
||||||
|
preDetection = FormalTestManager.standardDevList.stream().filter(obj -> obj.getDevIP().equals(ip)).findFirst().orElse(null);
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isNotNull(preDetection)) {
|
||||||
|
if (preDetection.getUsePhaseIndex() == 1) {
|
||||||
|
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PVRMS.getCode());
|
||||||
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PU1.getCode());
|
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PU1.getCode());
|
||||||
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PV2_50.getCode());
|
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PV2_50.getCode());
|
||||||
}
|
|
||||||
if (!descList.contains(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PSV_1_49.getCode())) {
|
|
||||||
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PU1.getCode());
|
|
||||||
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PSV_1_49.getCode());
|
allTestItem.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PSV_1_49.getCode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(descList) && descList.containsAll(allTestItem)) {
|
if (CollUtil.isNotEmpty(descList) && descList.containsAll(allTestItem)) {
|
||||||
// 成功信息
|
// 成功信息
|
||||||
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
|
webSend.setCode(SourceResponseCodeEnum.SUCCESS.getCode());
|
||||||
|
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 1));
|
||||||
} else {
|
} else {
|
||||||
// 错误信息
|
// 错误信息
|
||||||
|
allTestItem.removeAll(descList);
|
||||||
|
String appendMsg = allTestItem.stream().map(obj -> {
|
||||||
|
String s = obj.split(DetectionCodeEnum.REAL_PREFIX.getCode())[1];
|
||||||
|
DetectionCodeEnum anEnum = DetectionCodeEnum.getDetectionCodeByCode(s);
|
||||||
|
return anEnum.getMessage();
|
||||||
|
}).reduce((a, b) -> a + "、" + b).get();
|
||||||
|
|
||||||
|
appendMsg += "测试项未通过!";
|
||||||
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
|
webSend.setCode(SourceResponseCodeEnum.FAIL.getCode());
|
||||||
|
webSend.setData(MsgUtil.getMsg(k, FormalTestManager.devNameMapComm, appendMsg));
|
||||||
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||||
flag.set(false);
|
flag.set(false);
|
||||||
}
|
}
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), MsgUtil.msgToWebData(webSend, FormalTestManager.devNameMapComm, 1));
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1509,6 +1534,12 @@ public class SocketContrastResponseService {
|
|||||||
WebServiceManager.sendMsg(userId, JSON.toJSONString(webSend));
|
WebServiceManager.sendMsg(userId, JSON.toJSONString(webSend));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
boolean isPhaseAngle = false;
|
||||||
|
PreDetection preDetection = FormalTestManager.devList.stream().filter(dev -> dev.getDevId().equals(devMonitorId.split(CnSocketUtil.SPLIT_TAG)[0])).findFirst().orElse(null);
|
||||||
|
if (ObjectUtil.isNotNull(preDetection)) {
|
||||||
|
isPhaseAngle = preDetection.getAngle() == 1 ? true : false;
|
||||||
|
}
|
||||||
|
|
||||||
// 动态调控是否支持相角差校验
|
// 动态调控是否支持相角差校验
|
||||||
if (isPhaseAngle) {
|
if (isPhaseAngle) {
|
||||||
// 获取被检设备的额定电流
|
// 获取被检设备的额定电流
|
||||||
@@ -1681,9 +1712,26 @@ public class SocketContrastResponseService {
|
|||||||
if (Objects.nonNull(localDateTime)) {
|
if (Objects.nonNull(localDateTime)) {
|
||||||
|
|
||||||
String[] splitArr = data.getId().split(CnSocketUtil.SPLIT_TAG);
|
String[] splitArr = data.getId().split(CnSocketUtil.SPLIT_TAG);
|
||||||
String temId = FormalTestManager.devIdMapComm.get(splitArr[0]) + CnSocketUtil.SPLIT_TAG + splitArr[1];
|
String devId = FormalTestManager.devIdMapComm.get(splitArr[0]);
|
||||||
|
String temId = devId + CnSocketUtil.SPLIT_TAG + splitArr[1];
|
||||||
|
List<PreDetection> devInfo = null;
|
||||||
|
if (isStdDev) {
|
||||||
|
devInfo = pqStandardDevService.listStandardDevPreDetection(Collections.singletonList(devId));
|
||||||
|
} else {
|
||||||
|
devInfo = pqDevService.getDevInfo(Collections.singletonList(devId));
|
||||||
|
}
|
||||||
|
|
||||||
for (DevData.SqlDataDTO sqlDataDTO : data.getSqlData()) {
|
for (DevData.SqlDataDTO sqlDataDTO : data.getSqlData()) {
|
||||||
|
if (devInfo.get(0).getUsePhaseIndex().equals(1)) {
|
||||||
|
if (DetectionCodeEnum.PVRMS.getCode().equals(sqlDataDTO.getDesc()) || DetectionCodeEnum.PV2_50.getCode().equals(sqlDataDTO.getDesc()) || DetectionCodeEnum.PSV_1_49.getCode().equals(sqlDataDTO.getDesc()) || DetectionCodeEnum.PU1.getCode().equals(sqlDataDTO.getDesc())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (DetectionCodeEnum.VRMS.getCode().equals(sqlDataDTO.getDesc()) || DetectionCodeEnum.V2_50.getCode().equals(sqlDataDTO.getDesc()) || DetectionCodeEnum.SV_1_49.getCode().equals(sqlDataDTO.getDesc()) || DetectionCodeEnum.U1.getCode().equals(sqlDataDTO.getDesc())) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!DetectionCodeEnum.U1.getCode().equals(sqlDataDTO.getDesc()) && !DetectionCodeEnum.PU1.getCode().equals(sqlDataDTO.getDesc()) && !DetectionCodeEnum.I1.getCode().equals(sqlDataDTO.getDesc())) {
|
if (!DetectionCodeEnum.U1.getCode().equals(sqlDataDTO.getDesc()) && !DetectionCodeEnum.PU1.getCode().equals(sqlDataDTO.getDesc()) && !DetectionCodeEnum.I1.getCode().equals(sqlDataDTO.getDesc())) {
|
||||||
DevData.SqlDataDTO.ListDTO listDTO = sqlDataDTO.getList();
|
DevData.SqlDataDTO.ListDTO listDTO = sqlDataDTO.getList();
|
||||||
ContrastNonHarmonicResult adNonHarmonicResult = new ContrastNonHarmonicResult();
|
ContrastNonHarmonicResult adNonHarmonicResult = new ContrastNonHarmonicResult();
|
||||||
|
|||||||
@@ -37,14 +37,11 @@ import com.njcn.gather.storage.pojo.po.SimAndDigHarmonicResult;
|
|||||||
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
|
import com.njcn.gather.storage.pojo.po.SimAndDigNonHarmonicResult;
|
||||||
import com.njcn.gather.storage.service.DetectionDataDealService;
|
import com.njcn.gather.storage.service.DetectionDataDealService;
|
||||||
import com.njcn.gather.storage.service.SimAndDigHarmonicService;
|
import com.njcn.gather.storage.service.SimAndDigHarmonicService;
|
||||||
import com.njcn.gather.system.cfg.service.ISysTestConfigService;
|
|
||||||
import com.njcn.gather.system.dictionary.pojo.enums.DictDataEnum;
|
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.DictData;
|
||||||
import com.njcn.gather.system.dictionary.service.IDictDataService;
|
import com.njcn.gather.system.dictionary.service.IDictDataService;
|
||||||
import com.njcn.gather.system.pojo.enums.DicDataEnum;
|
import com.njcn.gather.system.pojo.enums.DicDataEnum;
|
||||||
import com.njcn.gather.system.reg.service.ISysRegResService;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
@@ -62,13 +59,11 @@ import java.util.stream.Stream;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class SocketDevResponseService {
|
public class SocketDevResponseService {
|
||||||
|
|
||||||
private List<String> dataTypeList;
|
private Set<String> dataTypeList;
|
||||||
|
|
||||||
private List<String> icdTypeList;
|
private List<String> icdTypeList;
|
||||||
|
|
||||||
private final List<String> nonHarmonicList = Stream.of(DicDataEnum.FREQ.getCode(), DicDataEnum.V.getCode(), DicDataEnum.I.getCode(), DicDataEnum.IMBV.getCode(), DicDataEnum.IMBA.getCode(), DicDataEnum.VOLTAGE.getCode(), DicDataEnum.F.getCode()).collect(Collectors.toList());
|
private final List<String> nonHarmonicList = Stream.of(DicDataEnum.FREQ.getCode(), DicDataEnum.V.getCode(), DicDataEnum.I.getCode(), DicDataEnum.IMBV.getCode(), DicDataEnum.IMBA.getCode(), DicDataEnum.VOLTAGE.getCode(), DicDataEnum.F.getCode()).collect(Collectors.toList());
|
||||||
private final List<String> harmonicList = Stream.of(DicDataEnum.HV.getCode(), DicDataEnum.HI.getCode(), DicDataEnum.HP.getCode(), DicDataEnum.HSV.getCode(), DicDataEnum.HSI.getCode()).collect(Collectors.toList());
|
|
||||||
|
|
||||||
|
|
||||||
private final IPqDevService iPqDevService;
|
private final IPqDevService iPqDevService;
|
||||||
private final IPqDevSubService iPqDevSubService;
|
private final IPqDevSubService iPqDevSubService;
|
||||||
@@ -76,24 +71,16 @@ public class SocketDevResponseService {
|
|||||||
private final IPqScriptDtlsService pqScriptDtlsService;
|
private final IPqScriptDtlsService pqScriptDtlsService;
|
||||||
private final DetectionServiceImpl detectionServiceImpl;
|
private final DetectionServiceImpl detectionServiceImpl;
|
||||||
private final DetectionDataDealService detectionDataDealService;
|
private final DetectionDataDealService detectionDataDealService;
|
||||||
private final ISysRegResService iSysRegResService;
|
|
||||||
private final IPqScriptCheckDataService iPqScriptCheckDataService;
|
private final IPqScriptCheckDataService iPqScriptCheckDataService;
|
||||||
private final ISysTestConfigService sysTestConfigService;
|
|
||||||
private final SimAndDigHarmonicService adHarmonicService;
|
private final SimAndDigHarmonicService adHarmonicService;
|
||||||
private final IAdPlanService adPlanService;
|
private final IAdPlanService adPlanService;
|
||||||
private final IPqScriptCheckDataService pqScriptCheckDataService;
|
|
||||||
private final IDictDataService dictDataService;
|
private final IDictDataService dictDataService;
|
||||||
@Value("${phaseAngle.isEnable}")
|
|
||||||
private Boolean isPhaseAngle;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 存储的装置相序数据
|
* 存储的装置相序数据
|
||||||
*/
|
*/
|
||||||
List<DevData> devInfo = new ArrayList<>();
|
List<DevData> devInfo = new ArrayList<>();
|
||||||
|
|
||||||
//Map<String, DevData> devDataMap = new HashMap<>();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 成功结束的测点
|
* 成功结束的测点
|
||||||
*/
|
*/
|
||||||
@@ -825,12 +812,24 @@ public class SocketDevResponseService {
|
|||||||
icdCheckDataMap.clear();
|
icdCheckDataMap.clear();
|
||||||
|
|
||||||
dataTypeList = pqScriptDtlsService.getScriptToIcdCheckInfo(param);
|
dataTypeList = pqScriptDtlsService.getScriptToIcdCheckInfo(param);
|
||||||
icdTypeList = FormalTestManager.devList.stream().map(PreDetection::getIcdType).distinct().collect(Collectors.toList());
|
icdTypeList = FormalTestManager.devList.stream().map(PreDetection::getIcdType).collect(Collectors.toList());
|
||||||
|
PreDetection preDetection = FormalTestManager.devList.stream().filter(obj -> obj.getIcdType().equals(icdTypeList.get(0))).findFirst().orElse(null);
|
||||||
|
boolean angleCheck = false;
|
||||||
|
if (ObjectUtil.isNotNull(preDetection)) {
|
||||||
|
angleCheck = preDetection.getAngle() == 1 ? true : false;
|
||||||
|
}
|
||||||
|
if (angleCheck) {
|
||||||
|
dataTypeList.add(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.VA.getCode());
|
||||||
|
dataTypeList.add(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.IA.getCode());
|
||||||
|
} else {
|
||||||
|
dataTypeList.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.VA.getCode());
|
||||||
|
dataTypeList.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.IA.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
||||||
socketMsg.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue());
|
socketMsg.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue());
|
||||||
Map<String, Object> map = new HashMap<>(2);
|
Map<String, Object> map = new HashMap<>(2);
|
||||||
map.put("dataType", dataTypeList);
|
map.put("dataType", new ArrayList<>(dataTypeList));
|
||||||
map.put("icdType", icdTypeList.get(0));
|
map.put("icdType", icdTypeList.get(0));
|
||||||
socketMsg.setData(JSON.toJSONString(map));
|
socketMsg.setData(JSON.toJSONString(map));
|
||||||
System.out.println("开始脚本与icd校验:++++++++++");
|
System.out.println("开始脚本与icd校验:++++++++++");
|
||||||
@@ -841,6 +840,16 @@ public class SocketDevResponseService {
|
|||||||
String data = socketDataMsg.getData();
|
String data = socketDataMsg.getData();
|
||||||
IcdCheckData icdCheckData = JSON.parseObject(data, IcdCheckData.class);
|
IcdCheckData icdCheckData = JSON.parseObject(data, IcdCheckData.class);
|
||||||
boolean isContinue = true;
|
boolean isContinue = true;
|
||||||
|
List<String> descList = icdCheckData.getResultData().stream().map(
|
||||||
|
obj -> {
|
||||||
|
if(DetectionCodeEnum.MAG.getCode().equals(obj.getDesc()) || DetectionCodeEnum.DUR.getCode().equals(obj.getDesc())){
|
||||||
|
return DetectionCodeEnum.AVG_PREFIX.getCode() + obj.getDesc();
|
||||||
|
}else{
|
||||||
|
return DetectionCodeEnum.REAL_PREFIX.getCode() + obj.getDesc();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
).collect(Collectors.toList());
|
||||||
|
if (descList.containsAll(dataTypeList)) {
|
||||||
for (int i = 0; i < icdCheckData.getResultData().size(); i++) {
|
for (int i = 0; i < icdCheckData.getResultData().size(); i++) {
|
||||||
IcdCheckData.ResultData item = icdCheckData.getResultData().get(i);
|
IcdCheckData.ResultData item = icdCheckData.getResultData().get(i);
|
||||||
Integer errorType = getErrorType(item.getDesc(), item.getPhaseResult());
|
Integer errorType = getErrorType(item.getDesc(), item.getPhaseResult());
|
||||||
@@ -857,12 +866,14 @@ public class SocketDevResponseService {
|
|||||||
webSocketVO.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue());
|
webSocketVO.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue());
|
||||||
webSocketVO.setCode(SourceResponseCodeEnum.FAIL.getCode());
|
webSocketVO.setCode(SourceResponseCodeEnum.FAIL.getCode());
|
||||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||||
CnSocketUtil.quitSend(param);
|
} else {
|
||||||
break;
|
icdCheckDataMap.put(icdCheckData.getIcdType(), icdCheckData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
isContinue = false;
|
||||||
|
}
|
||||||
|
|
||||||
icdCheckDataMap.put(icdCheckData.getIcdType(), icdCheckData);
|
|
||||||
if (isContinue) {
|
if (isContinue) {
|
||||||
//System.out.println("icdCheckDataMap.size()="+icdCheckDataMap.size()+",icdTypeList.size()="+icdTypeList.size());
|
//System.out.println("icdCheckDataMap.size()="+icdCheckDataMap.size()+",icdTypeList.size()="+icdTypeList.size());
|
||||||
if (icdCheckDataMap.size() == icdTypeList.size()) {
|
if (icdCheckDataMap.size() == icdTypeList.size()) {
|
||||||
@@ -940,8 +951,21 @@ public class SocketDevResponseService {
|
|||||||
// 发送下一个脚本与icd校验
|
// 发送下一个脚本与icd校验
|
||||||
String icdType = icdTypeList.stream().filter(it -> !icdCheckDataMap.containsKey(it)).findFirst().orElse(null);
|
String icdType = icdTypeList.stream().filter(it -> !icdCheckDataMap.containsKey(it)).findFirst().orElse(null);
|
||||||
if (ObjectUtil.isNotNull(icdType)) {
|
if (ObjectUtil.isNotNull(icdType)) {
|
||||||
|
PreDetection preDetection = FormalTestManager.devList.stream().filter(obj -> obj.getIcdType().equals(icdType)).findFirst().orElse(null);
|
||||||
|
boolean angleCheck = false;
|
||||||
|
if (ObjectUtil.isNotNull(preDetection)) {
|
||||||
|
angleCheck = preDetection.getAngle() == 1 ? true : false;
|
||||||
|
}
|
||||||
|
if (angleCheck) {
|
||||||
|
dataTypeList.add(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.VA.getCode());
|
||||||
|
dataTypeList.add(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.IA.getCode());
|
||||||
|
} else {
|
||||||
|
dataTypeList.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.VA.getCode());
|
||||||
|
dataTypeList.remove(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.IA.getCode());
|
||||||
|
}
|
||||||
|
|
||||||
Map<String, Object> map = new HashMap<>(2);
|
Map<String, Object> map = new HashMap<>(2);
|
||||||
map.put("dataType", dataTypeList);
|
map.put("dataType", new ArrayList<>(dataTypeList));
|
||||||
map.put("icdType", icdType);
|
map.put("icdType", icdType);
|
||||||
socketMsg.setData(JSON.toJSONString(map));
|
socketMsg.setData(JSON.toJSONString(map));
|
||||||
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
||||||
@@ -950,6 +974,23 @@ public class SocketDevResponseService {
|
|||||||
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
WebSocketVO<String> webSocketVO = new WebSocketVO<>();
|
||||||
|
webSocketVO.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
||||||
|
webSocketVO.setOperateCode(SourceOperateCodeEnum.VERIFY_MAPPING$01.getValue());
|
||||||
|
webSocketVO.setCode(SourceResponseCodeEnum.FAIL.getCode());
|
||||||
|
|
||||||
|
dataTypeList.removeAll(descList);
|
||||||
|
for (String dataType : dataTypeList) {
|
||||||
|
Map<String, Object> map = new HashMap<>(2);
|
||||||
|
map.put("icdType", icdCheckData.getIcdType());
|
||||||
|
DetectionCodeEnum anEnum = DetectionCodeEnum.getDetectionCodeByCode(dataType.replace(DetectionCodeEnum.REAL_PREFIX.getCode(), ""));
|
||||||
|
map.put("dataType", anEnum.getMessage());
|
||||||
|
webSocketVO.setData(JSON.toJSONString(map));
|
||||||
|
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
CnSocketUtil.quitSend(param);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -1299,7 +1340,7 @@ public class SocketDevResponseService {
|
|||||||
checkDataParam.setIsValueTypeName(false);
|
checkDataParam.setIsValueTypeName(false);
|
||||||
List<String> valueType = iPqScriptCheckDataService.getValueType(checkDataParam);
|
List<String> valueType = iPqScriptCheckDataService.getValueType(checkDataParam);
|
||||||
|
|
||||||
iPqDevService.updateResult(false,param.getDevIds(), valueType, param.getCode(), param.getUserId(), param.getTemperature(), param.getHumidity());
|
iPqDevService.updateResult(false, param.getDevIds(), valueType, param.getCode(), param.getUserId(), param.getTemperature(), param.getHumidity());
|
||||||
CnSocketUtil.quitSend(param);
|
CnSocketUtil.quitSend(param);
|
||||||
}
|
}
|
||||||
successComm.clear();
|
successComm.clear();
|
||||||
@@ -1505,9 +1546,10 @@ public class SocketDevResponseService {
|
|||||||
|
|
||||||
private String devMessage(String type,
|
private String devMessage(String type,
|
||||||
List<DevData.SqlDataDTO> data,
|
List<DevData.SqlDataDTO> data,
|
||||||
List<DevData.SqlDataDTO> dataPhase) {
|
List<DevData.SqlDataDTO> dataPhase,
|
||||||
|
boolean angleCheck) {
|
||||||
StringBuffer str = new StringBuffer();
|
StringBuffer str = new StringBuffer();
|
||||||
if (isPhaseAngle) {
|
if (angleCheck) {
|
||||||
if (CollUtil.isNotEmpty(data) && CollUtil.isNotEmpty(dataPhase)) {
|
if (CollUtil.isNotEmpty(data) && CollUtil.isNotEmpty(dataPhase)) {
|
||||||
if (data.size() == dataPhase.size()) {
|
if (data.size() == dataPhase.size()) {
|
||||||
DevData.SqlDataDTO.ListDTO dto = data.get(0).getList();
|
DevData.SqlDataDTO.ListDTO dto = data.get(0).getList();
|
||||||
@@ -1572,7 +1614,13 @@ public class SocketDevResponseService {
|
|||||||
}
|
}
|
||||||
compareDev.setDevName(devName);
|
compareDev.setDevName(devName);
|
||||||
compareDev.setLineNum(split[1]);
|
compareDev.setLineNum(split[1]);
|
||||||
getSourceCompareDev(type.get(2), dataV, dataVPhase, compareDev, sourceMessageMap.get(type.get(3)), sourceV, type.get(4));
|
|
||||||
|
boolean angleCheck = false;
|
||||||
|
PreDetection preDetection = FormalTestManager.devList.stream().filter(x -> x.getDevIP().equals(split[0])).findFirst().orElse(null);
|
||||||
|
if (ObjectUtil.isNotNull(preDetection)) {
|
||||||
|
angleCheck = preDetection.getAngle() == 1 ? true : false;
|
||||||
|
}
|
||||||
|
getSourceCompareDev(type.get(2), dataV, dataVPhase, compareDev, sourceMessageMap.get(type.get(3)), sourceV, type.get(4), angleCheck);
|
||||||
info.add(compareDev);
|
info.add(compareDev);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1591,20 +1639,19 @@ public class SocketDevResponseService {
|
|||||||
SourceCompareDev compareDev,
|
SourceCompareDev compareDev,
|
||||||
String desc,
|
String desc,
|
||||||
List<SourceIssue.ChannelListDTO> channelList,
|
List<SourceIssue.ChannelListDTO> channelList,
|
||||||
String name
|
String name,
|
||||||
|
boolean angleCheck) {
|
||||||
) {
|
|
||||||
//源信息
|
//源信息
|
||||||
Map<String, SourceIssue.ChannelListDTO> sourceMap = channelList.stream()
|
Map<String, SourceIssue.ChannelListDTO> sourceMap = channelList.stream()
|
||||||
.collect(Collectors.toMap(x -> x.getChannelType(), Function.identity()));
|
.collect(Collectors.toMap(x -> x.getChannelType(), Function.identity()));
|
||||||
Boolean a = getaBoolean(sourceMap.get(type + "a"), CollUtil.isNotEmpty(data) ? data.get(0).getList().getA() : null,
|
Boolean a = getaBoolean(sourceMap.get(type + "a"), CollUtil.isNotEmpty(data) ? data.get(0).getList().getA() : null,
|
||||||
CollUtil.isNotEmpty(dataPhase) ? dataPhase.get(0).getList().getA() : null);
|
CollUtil.isNotEmpty(dataPhase) ? dataPhase.get(0).getList().getA() : null, angleCheck);
|
||||||
Boolean b = getaBoolean(sourceMap.get(type + "b"), CollUtil.isNotEmpty(data) ? data.get(0).getList().getB() : null,
|
Boolean b = getaBoolean(sourceMap.get(type + "b"), CollUtil.isNotEmpty(data) ? data.get(0).getList().getB() : null,
|
||||||
CollUtil.isNotEmpty(dataPhase) ? dataPhase.get(0).getList().getB() : null);
|
CollUtil.isNotEmpty(dataPhase) ? dataPhase.get(0).getList().getB() : null, angleCheck);
|
||||||
Boolean c = getaBoolean(sourceMap.get(type + "c"), CollUtil.isNotEmpty(data) ? data.get(0).getList().getC() : null,
|
Boolean c = getaBoolean(sourceMap.get(type + "c"), CollUtil.isNotEmpty(data) ? data.get(0).getList().getC() : null,
|
||||||
CollUtil.isNotEmpty(dataPhase) ? dataPhase.get(0).getList().getC() : null);
|
CollUtil.isNotEmpty(dataPhase) ? dataPhase.get(0).getList().getC() : null, angleCheck);
|
||||||
compareDev.setIsQualified(a && b && c);
|
compareDev.setIsQualified(a && b && c);
|
||||||
compareDev.setDesc(name + (compareDev.getIsQualified() ? "合格->" : "不合格->") + CnSocketUtil.STEP_TAG + desc + CnSocketUtil.STEP_TAG + devMessage(type, data, dataPhase));
|
compareDev.setDesc(name + (compareDev.getIsQualified() ? "合格->" : "不合格->") + CnSocketUtil.STEP_TAG + desc + CnSocketUtil.STEP_TAG + devMessage(type, data, dataPhase, angleCheck));
|
||||||
return compareDev;
|
return compareDev;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1616,7 +1663,7 @@ public class SocketDevResponseService {
|
|||||||
* @param devPhase 装置返回相角数据
|
* @param devPhase 装置返回相角数据
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
private Boolean getaBoolean(SourceIssue.ChannelListDTO channelListDTO, Double devData, Double devPhase) {
|
private Boolean getaBoolean(SourceIssue.ChannelListDTO channelListDTO, Double devData, Double devPhase, boolean angleCheck) {
|
||||||
Boolean isDev = false;
|
Boolean isDev = false;
|
||||||
Boolean isPhase = false;
|
Boolean isPhase = false;
|
||||||
|
|
||||||
@@ -1625,7 +1672,7 @@ public class SocketDevResponseService {
|
|||||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
BigDecimal.valueOf(channelListDTO.getFAmp() * 0.95),
|
||||||
BigDecimal.valueOf(channelListDTO.getFAmp() * 1.05));
|
BigDecimal.valueOf(channelListDTO.getFAmp() * 1.05));
|
||||||
}
|
}
|
||||||
if (isPhaseAngle) {
|
if (angleCheck) {
|
||||||
if (ObjectUtil.isNotNull(devPhase)) {
|
if (ObjectUtil.isNotNull(devPhase)) {
|
||||||
isPhase = phaseBoolean(channelListDTO, devPhase);
|
isPhase = phaseBoolean(channelListDTO, devPhase);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -43,7 +43,8 @@ public enum DetectionCodeEnum {
|
|||||||
STAR("Star","星型接线"),
|
STAR("Star","星型接线"),
|
||||||
DELTA("Delta","角型接线"),
|
DELTA("Delta","角型接线"),
|
||||||
|
|
||||||
REAL_PREFIX("real$", "实时数据前缀");
|
REAL_PREFIX("real$", "实时数据前缀"),
|
||||||
|
AVG_PREFIX("avg$", "统计数据前缀");
|
||||||
|
|
||||||
private final String code;
|
private final String code;
|
||||||
private final String message;
|
private final String message;
|
||||||
|
|||||||
@@ -42,10 +42,5 @@ public class ContrastDetectionParam {
|
|||||||
*/
|
*/
|
||||||
private List<Boolean> testItemList;
|
private List<Boolean> testItemList;
|
||||||
|
|
||||||
/**
|
|
||||||
* 第几次监测 key为设备监测点id,value为第几次监测
|
|
||||||
*/
|
|
||||||
private Map<String,Integer> numMap;
|
|
||||||
|
|
||||||
private String userId;
|
private String userId;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -74,9 +74,4 @@ public class PreDetectionParam {
|
|||||||
* 检测项列表。第一个元素为预检测、第二个元素为系数校准、第三个元素为正式检测
|
* 检测项列表。第一个元素为预检测、第二个元素为系数校准、第三个元素为正式检测
|
||||||
*/
|
*/
|
||||||
private List<Boolean> testItemList;
|
private List<Boolean> testItemList;
|
||||||
|
|
||||||
/**
|
|
||||||
* 第几次监测 key为设备监测点id,value为第几次监测
|
|
||||||
*/
|
|
||||||
private Map<String, Integer> numMap;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -57,5 +57,7 @@ public class AlignDataVO {
|
|||||||
private Double ucStdDev;
|
private Double ucStdDev;
|
||||||
|
|
||||||
private Double utStdDev;
|
private Double utStdDev;
|
||||||
|
|
||||||
|
private String unit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,8 @@ import com.njcn.gather.detection.pojo.vo.DetectionData;
|
|||||||
import com.njcn.gather.detection.pojo.vo.DevLineTestResult;
|
import com.njcn.gather.detection.pojo.vo.DevLineTestResult;
|
||||||
import com.njcn.gather.detection.util.DetectionUtil;
|
import com.njcn.gather.detection.util.DetectionUtil;
|
||||||
import com.njcn.gather.detection.util.socket.CnSocketUtil;
|
import com.njcn.gather.detection.util.socket.CnSocketUtil;
|
||||||
|
import com.njcn.gather.device.pojo.vo.PreDetection;
|
||||||
|
import com.njcn.gather.device.service.IPqDevService;
|
||||||
import com.njcn.gather.err.pojo.param.PqErrSysParam;
|
import com.njcn.gather.err.pojo.param.PqErrSysParam;
|
||||||
import com.njcn.gather.err.pojo.po.PqErrSysDtls;
|
import com.njcn.gather.err.pojo.po.PqErrSysDtls;
|
||||||
import com.njcn.gather.err.pojo.vo.ErrDtlsCheckDataVO;
|
import com.njcn.gather.err.pojo.vo.ErrDtlsCheckDataVO;
|
||||||
@@ -62,6 +64,7 @@ public class DetectionServiceImpl {
|
|||||||
private final DetectionDataDealService detectionDataDealService;
|
private final DetectionDataDealService detectionDataDealService;
|
||||||
private final ISysTestConfigService sysTestConfigService;
|
private final ISysTestConfigService sysTestConfigService;
|
||||||
private final IPqMonitorService pqMonitorService;
|
private final IPqMonitorService pqMonitorService;
|
||||||
|
private final IPqDevService pqDevService;
|
||||||
|
|
||||||
public static final String TYPE_A = "A";
|
public static final String TYPE_A = "A";
|
||||||
public static final String TYPE_B = "B";
|
public static final String TYPE_B = "B";
|
||||||
@@ -119,6 +122,8 @@ public class DetectionServiceImpl {
|
|||||||
*/
|
*/
|
||||||
case FREQ:
|
case FREQ:
|
||||||
return isQualified(dev, devIdMapComm, errDtlsCheckData, F, sourceIssue, dataRule, code, oneConfig.getScale());
|
return isQualified(dev, devIdMapComm, errDtlsCheckData, F, sourceIssue, dataRule, code, oneConfig.getScale());
|
||||||
|
case P:
|
||||||
|
return isQualified(dev, devIdMapComm, errDtlsCheckData, P, sourceIssue, dataRule, code, oneConfig.getScale());
|
||||||
/**
|
/**
|
||||||
* 电压
|
* 电压
|
||||||
*/
|
*/
|
||||||
@@ -193,8 +198,6 @@ public class DetectionServiceImpl {
|
|||||||
case VOLTAGE_MAG:
|
case VOLTAGE_MAG:
|
||||||
case VOLTAGE_DUR:
|
case VOLTAGE_DUR:
|
||||||
return isVoltageQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code, oneConfig.getScale());
|
return isVoltageQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code, oneConfig.getScale());
|
||||||
case P:
|
|
||||||
return isQualified(dev, devIdMapComm, errDtlsCheckData, P, sourceIssue, dataRule, code, oneConfig.getScale());
|
|
||||||
default:
|
default:
|
||||||
return isUnknownQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code, oneConfig.getScale());
|
return isUnknownQualified(dev, devIdMapComm, errDtlsCheckData, sourceIssue, dataRule, code, oneConfig.getScale());
|
||||||
}
|
}
|
||||||
@@ -1127,6 +1130,7 @@ public class DetectionServiceImpl {
|
|||||||
|
|
||||||
}
|
}
|
||||||
map.forEach((typeKey, typeValue) -> {
|
map.forEach((typeKey, typeValue) -> {
|
||||||
|
typeValue.remove(0.0);
|
||||||
typeValue.forEach((key, value) -> {
|
typeValue.forEach((key, value) -> {
|
||||||
value.sort(Comparator.comparing(Double::doubleValue).reversed());
|
value.sort(Comparator.comparing(Double::doubleValue).reversed());
|
||||||
if (CollUtil.isNotEmpty(value)) {
|
if (CollUtil.isNotEmpty(value)) {
|
||||||
@@ -1568,7 +1572,8 @@ public class DetectionServiceImpl {
|
|||||||
boolean isStar = DetectionCodeEnum.STAR.getCode().equals(pqMonitor.getConnection());
|
boolean isStar = DetectionCodeEnum.STAR.getCode().equals(pqMonitor.getConnection());
|
||||||
boolean isDelta = DetectionCodeEnum.DELTA.getCode().equals(pqMonitor.getConnection());
|
boolean isDelta = DetectionCodeEnum.DELTA.getCode().equals(pqMonitor.getConnection());
|
||||||
Double fUn = pqMonitorService.getRatedVoltage(devMonitorId);
|
Double fUn = pqMonitorService.getRatedVoltage(devMonitorId);
|
||||||
if (isStar) {
|
boolean isExitDelta = this.isExitDeltaIndex(devIdMapComm.get(split1[0]), devDataList);
|
||||||
|
if (isStar || !isExitDelta) {
|
||||||
fUn = BigDecimal.valueOf(fUn).divide(BigDecimal.valueOf(Math.sqrt(3)), oneConfig.getScale(), RoundingMode.HALF_UP).doubleValue();
|
fUn = BigDecimal.valueOf(fUn).divide(BigDecimal.valueOf(Math.sqrt(3)), oneConfig.getScale(), RoundingMode.HALF_UP).doubleValue();
|
||||||
}
|
}
|
||||||
Double fIn = pqMonitorService.getRatedCurrent(devMonitorId);
|
Double fIn = pqMonitorService.getRatedCurrent(devMonitorId);
|
||||||
@@ -1599,7 +1604,8 @@ public class DetectionServiceImpl {
|
|||||||
break;
|
break;
|
||||||
case VRMS:
|
case VRMS:
|
||||||
case PVRMS:
|
case PVRMS:
|
||||||
resultMap.put(PowerIndexEnum.V.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn, (isStar ? DetectionCodeEnum.VRMS.getCode() : DetectionCodeEnum.PVRMS.getCode()), dataRule, num, code, oneConfig.getScale()));
|
// 如果是角型接法且存在角型接法的一些指标,则不进行使用角型接线的指标。反之,则使用相别的指标。
|
||||||
|
resultMap.put(PowerIndexEnum.V.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn, (isDelta && isExitDelta ? DetectionCodeEnum.PVRMS.getCode() : DetectionCodeEnum.VRMS.getCode()), dataRule, num, code, oneConfig.getScale()));
|
||||||
break;
|
break;
|
||||||
case IRMS:
|
case IRMS:
|
||||||
resultMap.put(PowerIndexEnum.I.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fIn, DetectionCodeEnum.IRMS.getCode(), dataRule, num, code, oneConfig.getScale()));
|
resultMap.put(PowerIndexEnum.I.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fIn, DetectionCodeEnum.IRMS.getCode(), dataRule, num, code, oneConfig.getScale()));
|
||||||
@@ -1615,20 +1621,20 @@ public class DetectionServiceImpl {
|
|||||||
break;
|
break;
|
||||||
case V2_50:
|
case V2_50:
|
||||||
case PV2_50:
|
case PV2_50:
|
||||||
resultMap.put(PowerIndexEnum.HV.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn, HARMONIC_FLAG, isDelta, dataRule, num, code, oneConfig.getScale()));
|
resultMap.put(PowerIndexEnum.HV.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale()));
|
||||||
break;
|
break;
|
||||||
case I2_50:
|
case I2_50:
|
||||||
resultMap.put(PowerIndexEnum.HI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, HARMONIC_FLAG, isDelta, dataRule, num, code, oneConfig.getScale()));
|
resultMap.put(PowerIndexEnum.HI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale()));
|
||||||
break;
|
break;
|
||||||
case P2_50:
|
case P2_50:
|
||||||
resultMap.put(PowerIndexEnum.HP.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn * fIn, HARMONIC_FLAG, isDelta, dataRule, num, code, oneConfig.getScale()));
|
resultMap.put(PowerIndexEnum.HP.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, HP, fUn * fIn, HARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale()));
|
||||||
break;
|
break;
|
||||||
case SV_1_49:
|
case SV_1_49:
|
||||||
case PSV_1_49:
|
case PSV_1_49:
|
||||||
resultMap.put(PowerIndexEnum.HSV.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn, INHARMONIC_FLAG, isDelta, dataRule, num, code, oneConfig.getScale()));
|
resultMap.put(PowerIndexEnum.HSV.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, U, fUn, INHARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale()));
|
||||||
break;
|
break;
|
||||||
case SI_1_49:
|
case SI_1_49:
|
||||||
resultMap.put(PowerIndexEnum.HSI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, INHARMONIC_FLAG, isDelta, dataRule, num, code, oneConfig.getScale()));
|
resultMap.put(PowerIndexEnum.HSI.getKey(), isHarmQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, I, fIn, INHARMONIC_FLAG, isDelta && isExitDelta, dataRule, num, code, oneConfig.getScale()));
|
||||||
break;
|
break;
|
||||||
case UNKNOWN_ERROR:
|
case UNKNOWN_ERROR:
|
||||||
break;
|
break;
|
||||||
@@ -1638,6 +1644,37 @@ public class DetectionServiceImpl {
|
|||||||
return resultMap;
|
return resultMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 判断是否存在角型接法的一些线电压指标
|
||||||
|
*
|
||||||
|
* @param devId 设备id
|
||||||
|
* @param devDataList 监测点数据
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private boolean isExitDeltaIndex(String devId, List<DevData> devDataList) {
|
||||||
|
if (CollUtil.isNotEmpty(devDataList)) {
|
||||||
|
List<String> deltaIndex = Arrays.asList(DetectionCodeEnum.PVRMS.getCode(),
|
||||||
|
DetectionCodeEnum.PV2_50.getCode(),
|
||||||
|
DetectionCodeEnum.PSV_1_49.getCode(),
|
||||||
|
DetectionCodeEnum.PU1.getCode());
|
||||||
|
DevData devData = devDataList.get(0);
|
||||||
|
List<DevData.SqlDataDTO> sqlData = devData.getSqlData();
|
||||||
|
List<DevData.SqlDataHarmDTO> sqlDataHarm = devData.getSqlDataHarm();
|
||||||
|
|
||||||
|
if (CollUtil.isNotEmpty(sqlData) && CollUtil.isNotEmpty(sqlDataHarm)) {
|
||||||
|
List<String> descList = sqlData.stream().map(DevData.SqlDataDTO::getDesc).filter(desc -> deltaIndex.contains(desc)).collect(Collectors.toList());
|
||||||
|
descList.addAll(sqlDataHarm.stream().map(DevData.SqlDataHarmDTO::getDesc).filter(desc -> deltaIndex.contains(desc)).collect(Collectors.toList()));
|
||||||
|
if (descList.containsAll(deltaIndex)) {
|
||||||
|
List<PreDetection> devInfo = pqDevService.getDevInfo(Collections.singletonList(devId));
|
||||||
|
if (devInfo.get(0).getUsePhaseIndex() == 1) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 处理非谐波数据
|
* 处理非谐波数据
|
||||||
@@ -1724,7 +1761,7 @@ public class DetectionServiceImpl {
|
|||||||
* @param fData 额定值
|
* @param fData 额定值
|
||||||
* @param type U或I、用来区分电压或电流
|
* @param type U或I、用来区分电压或电流
|
||||||
* @param harmonicFlag 1:间谐波,2:谐波
|
* @param harmonicFlag 1:间谐波,2:谐波
|
||||||
* @param isDelta 是否角型接法
|
* @param isUseDelta 是否使用角型接线的一些指标
|
||||||
* @param dataRule 数据处理原则
|
* @param dataRule 数据处理原则
|
||||||
* @param num 第几次检测
|
* @param num 第几次检测
|
||||||
* @param code 结果表code
|
* @param code 结果表code
|
||||||
@@ -1738,7 +1775,7 @@ public class DetectionServiceImpl {
|
|||||||
String type,
|
String type,
|
||||||
Double fData,
|
Double fData,
|
||||||
Integer harmonicFlag,
|
Integer harmonicFlag,
|
||||||
boolean isDelta,
|
boolean isUseDelta,
|
||||||
DictDataEnum dataRule,
|
DictDataEnum dataRule,
|
||||||
Integer num,
|
Integer num,
|
||||||
String code,
|
String code,
|
||||||
@@ -1749,17 +1786,17 @@ public class DetectionServiceImpl {
|
|||||||
String harmCode = "";
|
String harmCode = "";
|
||||||
if (U.equals(type)) {
|
if (U.equals(type)) {
|
||||||
fundCode = DetectionCodeEnum.U1.getCode();
|
fundCode = DetectionCodeEnum.U1.getCode();
|
||||||
if (isDelta) {
|
if (isUseDelta) {
|
||||||
fundCode = DetectionCodeEnum.PU1.getCode();
|
fundCode = DetectionCodeEnum.PU1.getCode();
|
||||||
}
|
}
|
||||||
if (harmonicFlag == 1) {
|
if (harmonicFlag == 1) {
|
||||||
harmCode = DetectionCodeEnum.SV_1_49.getCode();
|
harmCode = DetectionCodeEnum.SV_1_49.getCode();
|
||||||
if (isDelta) {
|
if (isUseDelta) {
|
||||||
harmCode = DetectionCodeEnum.PSV_1_49.getCode();
|
harmCode = DetectionCodeEnum.PSV_1_49.getCode();
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
harmCode = DetectionCodeEnum.V2_50.getCode();
|
harmCode = DetectionCodeEnum.V2_50.getCode();
|
||||||
if (isDelta) {
|
if (isUseDelta) {
|
||||||
harmCode = DetectionCodeEnum.PV2_50.getCode();
|
harmCode = DetectionCodeEnum.PV2_50.getCode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1831,25 +1868,12 @@ public class DetectionServiceImpl {
|
|||||||
List<DevData.SqlDataDTO> devSqlData = dev.get(i).getSqlData();
|
List<DevData.SqlDataDTO> devSqlData = dev.get(i).getSqlData();
|
||||||
List<DevData.SqlDataDTO> standardDevSqlData = standardDev.get(i).getSqlData();
|
List<DevData.SqlDataDTO> standardDevSqlData = standardDev.get(i).getSqlData();
|
||||||
|
|
||||||
List<DevData.SqlDataDTO.ListDTO> devList = devSqlData.stream().filter(j -> desc.equals(j.getDesc()))
|
String finalDesc = desc;
|
||||||
|
List<DevData.SqlDataDTO.ListDTO> devList = devSqlData.stream().filter(j -> finalDesc.equals(j.getDesc()))
|
||||||
.map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
.map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
||||||
List<DevData.SqlDataDTO.ListDTO> standardDevList = standardDevSqlData.stream().filter(j -> desc.equals(j.getDesc()))
|
List<DevData.SqlDataDTO.ListDTO> standardDevList = standardDevSqlData.stream().filter(j -> finalDesc.equals(j.getDesc()))
|
||||||
.map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
.map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
||||||
|
|
||||||
// 如果角型接法中,不存在线电压有效值,则取相电压有效值进行计算
|
|
||||||
if (CollUtil.isEmpty(devList)) {
|
|
||||||
if (desc.equals(DetectionCodeEnum.PVRMS.getCode())) {
|
|
||||||
devList = devSqlData.stream().filter(j -> DetectionCodeEnum.VRMS.getCode().equals(j.getDesc()))
|
|
||||||
.map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (CollUtil.isEmpty(standardDevList)) {
|
|
||||||
if (desc.equals(DetectionCodeEnum.PVRMS.getCode())) {
|
|
||||||
standardDevList = standardDevSqlData.stream().filter(j -> DetectionCodeEnum.VRMS.getCode().equals(j.getDesc()))
|
|
||||||
.map(DevData.SqlDataDTO::getList).collect(Collectors.toList());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
aDev.addAll(devList.stream().filter(x -> ObjectUtil.isNotNull(x.getA()))
|
aDev.addAll(devList.stream().filter(x -> ObjectUtil.isNotNull(x.getA()))
|
||||||
.map(x -> x.getA().doubleValue())
|
.map(x -> x.getA().doubleValue())
|
||||||
.collect(Collectors.toList()));
|
.collect(Collectors.toList()));
|
||||||
@@ -1993,31 +2017,32 @@ public class DetectionServiceImpl {
|
|||||||
|
|
||||||
Optional<DevData.SqlDataDTO> first1 = Optional.empty();
|
Optional<DevData.SqlDataDTO> first1 = Optional.empty();
|
||||||
Optional<DevData.SqlDataDTO> first2 = Optional.empty();
|
Optional<DevData.SqlDataDTO> first2 = Optional.empty();
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(devSqlData) && CollUtil.isNotEmpty(standardDevSqlData)) {
|
if (CollUtil.isNotEmpty(devSqlData) && CollUtil.isNotEmpty(standardDevSqlData)) {
|
||||||
first1 = devSqlData.stream().filter(j -> fundCode.equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
first1 = devSqlData.stream().filter(j -> fundCode.equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
||||||
first2 = standardDevSqlData.stream().filter(j -> fundCode.equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
first2 = standardDevSqlData.stream().filter(j -> fundCode.equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
||||||
}
|
}
|
||||||
// 如果角型接法中,不存在线电压谐波电压基波有效值,则取相电压谐波电压基波有效值进行计算
|
// // 如果角型接法中,不存在线电压谐波电压基波有效值,则取相电压谐波电压基波有效值进行计算
|
||||||
if (!first1.isPresent()) {
|
// if (!first1.isPresent()) {
|
||||||
if (DetectionCodeEnum.PU1.getCode().equals(fundCode)) {
|
// if (DetectionCodeEnum.PU1.getCode().equals(fundCode)) {
|
||||||
first1 = devSqlData.stream().filter(j -> DetectionCodeEnum.U1.getCode().equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
// first1 = devSqlData.stream().filter(j -> DetectionCodeEnum.U1.getCode().equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
// 防止出现有PU1而没有PV2_50、SV_1_49的情况
|
// // 防止出现有PU1而没有PV2_50、SV_1_49的情况
|
||||||
if ((DetectionCodeEnum.PV2_50.getCode().equals(harmCode) || DetectionCodeEnum.PSV_1_49.getCode().equals(harmCode)) && DetectionCodeEnum.PU1.getCode().equals(fundCode)) {
|
// if ((DetectionCodeEnum.PV2_50.getCode().equals(harmCode) || DetectionCodeEnum.PSV_1_49.getCode().equals(harmCode)) && DetectionCodeEnum.PU1.getCode().equals(fundCode)) {
|
||||||
first1 = devSqlData.stream().filter(j -> DetectionCodeEnum.U1.getCode().equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
// first1 = devSqlData.stream().filter(j -> DetectionCodeEnum.U1.getCode().equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if (!first2.isPresent()) {
|
// if (!first2.isPresent()) {
|
||||||
if (DetectionCodeEnum.PU1.getCode().equals(fundCode)) {
|
// if (DetectionCodeEnum.PU1.getCode().equals(fundCode)) {
|
||||||
first2 = devSqlData.stream().filter(j -> DetectionCodeEnum.U1.getCode().equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
// first2 = devSqlData.stream().filter(j -> DetectionCodeEnum.U1.getCode().equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
||||||
}
|
// }
|
||||||
} else {
|
// } else {
|
||||||
// 防止出现有PU1而没有PV2_50、SV_1_49的情况
|
// // 防止出现有PU1而没有PV2_50、SV_1_49的情况
|
||||||
if ((DetectionCodeEnum.PV2_50.getCode().equals(harmCode) || DetectionCodeEnum.PSV_1_49.getCode().equals(harmCode)) && DetectionCodeEnum.PU1.getCode().equals(fundCode)) {
|
// if ((DetectionCodeEnum.PV2_50.getCode().equals(harmCode) || DetectionCodeEnum.PSV_1_49.getCode().equals(harmCode)) && DetectionCodeEnum.PU1.getCode().equals(fundCode)) {
|
||||||
first2 = devSqlData.stream().filter(j -> DetectionCodeEnum.U1.getCode().equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
// first2 = devSqlData.stream().filter(j -> DetectionCodeEnum.U1.getCode().equals(j.getDesc())).collect(Collectors.toList()).stream().findFirst();
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
DevData.SqlDataDTO fund1 = null;
|
DevData.SqlDataDTO fund1 = null;
|
||||||
DevData.SqlDataDTO fund2 = null;
|
DevData.SqlDataDTO fund2 = null;
|
||||||
@@ -2031,23 +2056,23 @@ public class DetectionServiceImpl {
|
|||||||
List<DevData.SqlDataHarmDTO> devHarmList = dev.get(i).getSqlDataHarm().stream().filter(x -> x.getDesc().equals(harmCode)).collect(Collectors.toList());
|
List<DevData.SqlDataHarmDTO> devHarmList = dev.get(i).getSqlDataHarm().stream().filter(x -> x.getDesc().equals(harmCode)).collect(Collectors.toList());
|
||||||
List<DevData.SqlDataHarmDTO> stdDevHarmList = standardDev.get(i).getSqlDataHarm().stream().filter(x -> x.getDesc().equals(harmCode)).collect(Collectors.toList());
|
List<DevData.SqlDataHarmDTO> stdDevHarmList = standardDev.get(i).getSqlDataHarm().stream().filter(x -> x.getDesc().equals(harmCode)).collect(Collectors.toList());
|
||||||
|
|
||||||
// 如果角型接法中,不存在线电压谐波电压含有率,则取相电压谐波电压含有率进行计算
|
// // 如果角型接法中,不存在线电压谐波电压含有率,则取相电压谐波电压含有率进行计算
|
||||||
if (CollUtil.isEmpty(devHarmList)) {
|
// if (CollUtil.isEmpty(devHarmList)) {
|
||||||
if (DetectionCodeEnum.PV2_50.getCode().equals(harmCode)) {
|
// if (DetectionCodeEnum.PV2_50.getCode().equals(harmCode)) {
|
||||||
devHarmList = dev.get(i).getSqlDataHarm().stream().filter(x -> DetectionCodeEnum.V2_50.getCode().equals(x.getDesc())).collect(Collectors.toList());
|
// devHarmList = dev.get(i).getSqlDataHarm().stream().filter(x -> DetectionCodeEnum.V2_50.getCode().equals(x.getDesc())).collect(Collectors.toList());
|
||||||
}
|
// }
|
||||||
if (DetectionCodeEnum.PSV_1_49.getCode().equals(harmCode)) {
|
// if (DetectionCodeEnum.PSV_1_49.getCode().equals(harmCode)) {
|
||||||
devHarmList = dev.get(i).getSqlDataHarm().stream().filter(x -> DetectionCodeEnum.SV_1_49.getCode().equals(x.getDesc())).collect(Collectors.toList());
|
// devHarmList = dev.get(i).getSqlDataHarm().stream().filter(x -> DetectionCodeEnum.SV_1_49.getCode().equals(x.getDesc())).collect(Collectors.toList());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
if (CollUtil.isEmpty(stdDevHarmList)) {
|
// if (CollUtil.isEmpty(stdDevHarmList)) {
|
||||||
if (DetectionCodeEnum.PV2_50.getCode().equals(harmCode)) {
|
// if (DetectionCodeEnum.PV2_50.getCode().equals(harmCode)) {
|
||||||
stdDevHarmList = standardDev.get(i).getSqlDataHarm().stream().filter(x -> DetectionCodeEnum.V2_50.getCode().equals(x.getDesc())).collect(Collectors.toList());
|
// stdDevHarmList = standardDev.get(i).getSqlDataHarm().stream().filter(x -> DetectionCodeEnum.V2_50.getCode().equals(x.getDesc())).collect(Collectors.toList());
|
||||||
}
|
// }
|
||||||
if (DetectionCodeEnum.PSV_1_49.getCode().equals(harmCode)) {
|
// if (DetectionCodeEnum.PSV_1_49.getCode().equals(harmCode)) {
|
||||||
stdDevHarmList = standardDev.get(i).getSqlDataHarm().stream().filter(x -> DetectionCodeEnum.SV_1_49.getCode().equals(x.getDesc())).collect(Collectors.toList());
|
// stdDevHarmList = standardDev.get(i).getSqlDataHarm().stream().filter(x -> DetectionCodeEnum.SV_1_49.getCode().equals(x.getDesc())).collect(Collectors.toList());
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(devHarmList) && CollUtil.isNotEmpty(stdDevHarmList)) {
|
if (CollUtil.isNotEmpty(devHarmList) && CollUtil.isNotEmpty(stdDevHarmList)) {
|
||||||
DevData.SqlDataHarmDTO devHarm = devHarmList.get(0);
|
DevData.SqlDataHarmDTO devHarm = devHarmList.get(0);
|
||||||
|
|||||||
@@ -385,7 +385,6 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
|||||||
PreDetectionParam preDetectionParam = new PreDetectionParam();
|
PreDetectionParam preDetectionParam = new PreDetectionParam();
|
||||||
preDetectionParam.setUserPageId(param.getLoginName());
|
preDetectionParam.setUserPageId(param.getLoginName());
|
||||||
preDetectionParam.setTestItemList(param.getTestItemList());
|
preDetectionParam.setTestItemList(param.getTestItemList());
|
||||||
preDetectionParam.setNumMap(param.getNumMap());
|
|
||||||
preDetectionParam.setDevIds(param.getDevIds());
|
preDetectionParam.setDevIds(param.getDevIds());
|
||||||
preDetectionParam.setUserId(param.getUserId());
|
preDetectionParam.setUserId(param.getUserId());
|
||||||
WebServiceManager.addPreDetectionParam(param.getLoginName(), preDetectionParam);
|
WebServiceManager.addPreDetectionParam(param.getLoginName(), preDetectionParam);
|
||||||
|
|||||||
@@ -90,7 +90,7 @@ public class FormalTestManager {
|
|||||||
public static PatternEnum patternEnum;
|
public static PatternEnum patternEnum;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 比对式检测-检测项。key为检测项id,value为检测项code
|
* 比对式检测-检测项。key为检测项code,value为检测项id
|
||||||
*/
|
*/
|
||||||
public static Map<String, String> testItemMap = new HashMap<>();
|
public static Map<String, String> testItemMap = new HashMap<>();
|
||||||
|
|
||||||
@@ -123,4 +123,9 @@ public class FormalTestManager {
|
|||||||
* 是否要移除和通信模块的socket连接
|
* 是否要移除和通信模块的socket连接
|
||||||
*/
|
*/
|
||||||
public static Boolean isRemoveSocket = true;
|
public static Boolean isRemoveSocket = true;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 第几次监测 key为设备监测点id,value为第几次监测
|
||||||
|
*/
|
||||||
|
public static Map<String, Integer> numMap = new HashMap<>();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,4 +83,17 @@ public class MsgUtil {
|
|||||||
return "被检设备\"" + devMap.get(split1[0]) + CnSocketUtil.SPLIT_TAG + split1[1] + "路\"" + " -> 标准设备\"" + devMap.get(split2[0]) + CnSocketUtil.SPLIT_TAG + split2[1] + "路\"";
|
return "被检设备\"" + devMap.get(split1[0]) + CnSocketUtil.SPLIT_TAG + split1[1] + "路\"" + " -> 标准设备\"" + devMap.get(split2[0]) + CnSocketUtil.SPLIT_TAG + split2[1] + "路\"";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取消息
|
||||||
|
*
|
||||||
|
* @param monitorId 监测点id
|
||||||
|
* @param devMap key为设备ip,value为设备名称
|
||||||
|
* @param appendMsg 附加的消息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String getMsg(String monitorId, Map<String, String> devMap, String appendMsg) {
|
||||||
|
String[] split1 = monitorId.split("_");
|
||||||
|
return "\"" + devMap.get(split1[0]) + CnSocketUtil.SPLIT_TAG + "第" + split1[1] + "路\"" + appendMsg;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -126,7 +126,6 @@ public class NettyClient {
|
|||||||
PreDetectionParam preDetectionParam = new PreDetectionParam();
|
PreDetectionParam preDetectionParam = new PreDetectionParam();
|
||||||
preDetectionParam.setUserPageId(param.getLoginName());
|
preDetectionParam.setUserPageId(param.getLoginName());
|
||||||
preDetectionParam.setTestItemList(param.getTestItemList());
|
preDetectionParam.setTestItemList(param.getTestItemList());
|
||||||
preDetectionParam.setNumMap(param.getNumMap());
|
|
||||||
preDetectionParam.setDevIds(param.getDevIds());
|
preDetectionParam.setDevIds(param.getDevIds());
|
||||||
preDetectionParam.setUserId(param.getUserId());
|
preDetectionParam.setUserId(param.getUserId());
|
||||||
NettyContrastClientHandler handler = new NettyContrastClientHandler(preDetectionParam, socketContrastResponseService);
|
NettyContrastClientHandler handler = new NettyContrastClientHandler(preDetectionParam, socketContrastResponseService);
|
||||||
|
|||||||
@@ -15,6 +15,8 @@
|
|||||||
<result column="Dev_Chns" property="devChns"/>
|
<result column="Dev_Chns" property="devChns"/>
|
||||||
<result column="Dev_Volt" property="devVolt"/>
|
<result column="Dev_Volt" property="devVolt"/>
|
||||||
<result column="Dev_Curr" property="devCurr"/>
|
<result column="Dev_Curr" property="devCurr"/>
|
||||||
|
<result column="Angle" property="angle"/>
|
||||||
|
<result column="Use_Phase_Index" property="usePhaseIndex"/>
|
||||||
|
|
||||||
<collection
|
<collection
|
||||||
property="monitorList"
|
property="monitorList"
|
||||||
@@ -35,7 +37,9 @@
|
|||||||
p.name as icdType,
|
p.name as icdType,
|
||||||
t.Dev_Chns,
|
t.Dev_Chns,
|
||||||
t.Dev_Volt,
|
t.Dev_Volt,
|
||||||
t.Dev_Curr
|
t.Dev_Curr,
|
||||||
|
p.Angle,
|
||||||
|
p.Use_Phase_Index
|
||||||
FROM
|
FROM
|
||||||
pq_dev d
|
pq_dev d
|
||||||
inner join pq_dev_type t on d.Dev_Type = t.id
|
inner join pq_dev_type t on d.Dev_Type = t.id
|
||||||
|
|||||||
@@ -15,13 +15,8 @@
|
|||||||
<result column="Dev_Chns" property="devChns"/>
|
<result column="Dev_Chns" property="devChns"/>
|
||||||
<result column="Dev_Volt" property="devVolt"/>
|
<result column="Dev_Volt" property="devVolt"/>
|
||||||
<result column="Dev_Curr" property="devCurr"/>
|
<result column="Dev_Curr" property="devCurr"/>
|
||||||
|
<result column="Angle" property="angle"/>
|
||||||
<!-- <collection-->
|
<result column="Use_Phase_Index" property="usePhaseIndex"/>
|
||||||
<!-- property="monitorList"-->
|
|
||||||
<!-- column="{ devId = Id}"-->
|
|
||||||
<!-- select="com.njcn.gather.monitor.mapper.PqMonitorMapper.selectMonitorInfo"-->
|
|
||||||
<!-- >-->
|
|
||||||
<!-- </collection>-->
|
|
||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<select id="listStandardDevPreDetection" resultMap="standardDevResultMap">
|
<select id="listStandardDevPreDetection" resultMap="standardDevResultMap">
|
||||||
@@ -36,7 +31,9 @@
|
|||||||
icd_path.Name as icdType,
|
icd_path.Name as icdType,
|
||||||
dev_type.Dev_Chns,
|
dev_type.Dev_Chns,
|
||||||
dev_type.Dev_Volt,
|
dev_type.Dev_Volt,
|
||||||
dev_type.Dev_Curr
|
dev_type.Dev_Curr,
|
||||||
|
icd_path.Angle,
|
||||||
|
icd_path.Use_Phase_Index
|
||||||
from pq_standard_dev standard_dev
|
from pq_standard_dev standard_dev
|
||||||
inner join pq_dev_type dev_type on standard_dev.Dev_Type = dev_type.id
|
inner join pq_dev_type dev_type on standard_dev.Dev_Type = dev_type.id
|
||||||
inner join pq_icd_path icd_path on dev_type.icd = icd_path.id
|
inner join pq_icd_path icd_path on dev_type.icd = icd_path.id
|
||||||
|
|||||||
@@ -54,6 +54,18 @@ public class PreDetection {
|
|||||||
@JSONField(name = "icdType")
|
@JSONField(name = "icdType")
|
||||||
private String icdType;
|
private String icdType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否支持相角。0:不支持,1:支持
|
||||||
|
*/
|
||||||
|
@JSONField(name = "angle")
|
||||||
|
private Integer angle;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 角型接线时是否使用相别的指标来进行检测,0表示否,1表示是
|
||||||
|
*/
|
||||||
|
@JSONField(name = "usePhaseIndex")
|
||||||
|
private Integer usePhaseIndex;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 装置识别码(3ds加密)
|
* 装置识别码(3ds加密)
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -144,10 +144,10 @@ public class PqErrSysController extends BaseController {
|
|||||||
@GetMapping("/getTestItems")
|
@GetMapping("/getTestItems")
|
||||||
@ApiOperation("根据误差体系id获取测试项")
|
@ApiOperation("根据误差体系id获取测试项")
|
||||||
@ApiImplicitParam(name = "id", value = "误差体系id", required = true)
|
@ApiImplicitParam(name = "id", value = "误差体系id", required = true)
|
||||||
public HttpResult<List<Map<String, String>>> getTestItems(@RequestParam("id") String id) {
|
public HttpResult<Map<String, String>> getTestItems(@RequestParam("id") String id) {
|
||||||
String methodDescribe = getMethodDescribe("getTestItems");
|
String methodDescribe = getMethodDescribe("getTestItems");
|
||||||
LogUtil.njcnDebug(log, "{},获取测试项ID为:{}", methodDescribe, id);
|
LogUtil.njcnDebug(log, "{},获取测试项ID为:{}", methodDescribe, id);
|
||||||
List<Map<String, String>> result = pqErrSysService.getTestItems(id);
|
Map<String, String> result = pqErrSysService.getTestItems(id);
|
||||||
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -86,5 +86,5 @@ public interface IPqErrSysService extends IService<PqErrSys> {
|
|||||||
* @param id 误差体系id
|
* @param id 误差体系id
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<Map<String, String>> getTestItems(String id);
|
Map<String, String> getTestItems(String id);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.njcn.gather.err.service.impl;
|
package com.njcn.gather.err.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollUtil;
|
||||||
import cn.hutool.core.text.StrPool;
|
import cn.hutool.core.text.StrPool;
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
@@ -128,7 +129,7 @@ public class PqErrSysServiceImpl extends ServiceImpl<PqErrSysMapper, PqErrSys> i
|
|||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> listAllPqErrSys() {
|
public List<Map<String, Object>> listAllPqErrSys() {
|
||||||
List<PqErrSys> pqErrSysList = this.lambdaQuery()
|
List<PqErrSys> pqErrSysList = this.lambdaQuery()
|
||||||
.eq(PqErrSys::getEnable,DataStateEnum.ENABLE.getCode())
|
.eq(PqErrSys::getEnable, DataStateEnum.ENABLE.getCode())
|
||||||
.eq(PqErrSys::getState, DataStateEnum.ENABLE.getCode()).list();
|
.eq(PqErrSys::getState, DataStateEnum.ENABLE.getCode()).list();
|
||||||
List<Map<String, Object>> result = pqErrSysList.stream().map(pqErrSys -> {
|
List<Map<String, Object>> result = pqErrSysList.stream().map(pqErrSys -> {
|
||||||
Map<String, Object> map = new HashMap<>();
|
Map<String, Object> map = new HashMap<>();
|
||||||
@@ -209,7 +210,19 @@ public class PqErrSysServiceImpl extends ServiceImpl<PqErrSysMapper, PqErrSys> i
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, String>> getTestItems(String id) {
|
public Map<String, String> getTestItems(String id) {
|
||||||
|
List<PqErrSysDtls> pqErrSysDtls = pqErrSysDtlsService.listPqErrSysDtlsByPqErrSysId(id);
|
||||||
|
List<String> scriptTypeList = pqErrSysDtls.stream().map(PqErrSysDtls::getScriptType).distinct().collect(Collectors.toList());
|
||||||
|
List<DictTree> dictTreeList = dictTreeService.lambdaQuery().in(CollUtil.isNotEmpty(scriptTypeList), DictTree::getId, scriptTypeList).list();
|
||||||
|
if (CollUtil.isNotEmpty(dictTreeList)) {
|
||||||
|
List<String> pids = dictTreeList.stream().map(DictTree::getPid).collect(Collectors.toList());
|
||||||
|
List<DictTree> parentDictTreeList = dictTreeService.listByIds(pids);
|
||||||
|
Map<String, String> map = new HashMap<>();
|
||||||
|
parentDictTreeList.forEach(dictTree -> {
|
||||||
|
map.put(dictTree.getId(), dictTree.getName());
|
||||||
|
});
|
||||||
|
return map;
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -222,11 +235,11 @@ public class PqErrSysServiceImpl extends ServiceImpl<PqErrSysMapper, PqErrSys> i
|
|||||||
private void checkRepeat(PqErrSysParam param, boolean isExcludeSelf) {
|
private void checkRepeat(PqErrSysParam param, boolean isExcludeSelf) {
|
||||||
QueryWrapper<PqErrSys> wrapper = new QueryWrapper<>();
|
QueryWrapper<PqErrSys> wrapper = new QueryWrapper<>();
|
||||||
wrapper.eq("Standard_Name", param.getStandardName())
|
wrapper.eq("Standard_Name", param.getStandardName())
|
||||||
.eq("Standard_Time",param.getStandardTime()+"-01-01")
|
.eq("Standard_Time", param.getStandardTime() + "-01-01")
|
||||||
.eq("Dev_Level",param.getDevLevel())
|
.eq("Dev_Level", param.getDevLevel())
|
||||||
.eq("state", DataStateEnum.ENABLE.getCode());
|
.eq("state", DataStateEnum.ENABLE.getCode());
|
||||||
if (isExcludeSelf) {
|
if (isExcludeSelf) {
|
||||||
if(param instanceof PqErrSysParam.UpdateParam){
|
if (param instanceof PqErrSysParam.UpdateParam) {
|
||||||
wrapper.ne("Id", ((PqErrSysParam.UpdateParam) param).getId());
|
wrapper.ne("Id", ((PqErrSysParam.UpdateParam) param).getId());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1523,20 +1523,27 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
allResultList.addAll(contrastHarmonicResults);
|
allResultList.addAll(contrastHarmonicResults);
|
||||||
allResultList.addAll(contrastNonHarmonicResults);
|
allResultList.addAll(contrastNonHarmonicResults);
|
||||||
|
|
||||||
Map<String, List<Integer>> chnMap = new HashMap<>();
|
Map<String, List<Integer>> chnMap = new TreeMap<>();
|
||||||
Map<String, List<ContrastBaseResult>> devMonitorIdMap = allResultList.stream().collect(Collectors.groupingBy(ContrastBaseResult::getDevMonitorId));
|
Map<String, List<ContrastBaseResult>> devMonitorIdMap = allResultList.stream().collect(Collectors.groupingBy(ContrastBaseResult::getDevMonitorId));
|
||||||
devMonitorIdMap.forEach((devMonitorId, resultList) -> {
|
devMonitorIdMap.forEach((devMonitorId, resultList) -> {
|
||||||
Integer maxNum = resultList.stream().map(ContrastBaseResult::getNum).max(Comparator.comparing(Integer::valueOf)).orElse(1);
|
Integer maxNum = resultList.stream().map(ContrastBaseResult::getNum).max(Comparator.comparing(Integer::valueOf)).orElse(1);
|
||||||
List<Integer> numList = Stream.iterate(1, n -> n + 1).limit(maxNum).collect(Collectors.toList());
|
List<Integer> numList = Stream.iterate(1, n -> n + 1).limit(maxNum).collect(Collectors.toList());
|
||||||
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
String[] split = devMonitorId.split(CnSocketUtil.SPLIT_TAG);
|
||||||
chnMap.put(split[1], numList);
|
chnMap.put(split[1], numList);
|
||||||
|
});
|
||||||
|
|
||||||
if (ObjectUtil.isNull(queryParam.getNum())) {
|
if (ObjectUtil.isNull(queryParam.getNum())) {
|
||||||
formContentVO.setCheckNum(maxNum);
|
if (StrUtil.isNotBlank(queryParam.getChnNum())) {
|
||||||
|
List<Integer> integers = chnMap.get(queryParam.getChnNum());
|
||||||
|
formContentVO.setCheckNum(integers.get(integers.size() - 1));
|
||||||
|
} else {
|
||||||
|
List<String> keyList = chnMap.keySet().stream().collect(Collectors.toList());
|
||||||
|
List<Integer> integers = chnMap.get(keyList.get(0));
|
||||||
|
formContentVO.setCheckNum(integers.get(integers.size() - 1));
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
formContentVO.setCheckNum(queryParam.getNum());
|
formContentVO.setCheckNum(queryParam.getNum());
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
|
||||||
formContentVO.setChnMap(chnMap);
|
formContentVO.setChnMap(chnMap);
|
||||||
return formContentVO;
|
return formContentVO;
|
||||||
@@ -1553,19 +1560,31 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
|
List<String> adTypeList = childDictTreeList.stream().map(DictTree::getId).collect(Collectors.toList());
|
||||||
DictTree dictTree = dictTreeList.get(0);
|
DictTree dictTree = dictTreeList.get(0);
|
||||||
|
|
||||||
contrastResultVO.setResultMap(this.getResultMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), queryParam.getNum(), String.valueOf(plan.getCode())));
|
String unit = StorageUtil.unit(dictTree.getCode());
|
||||||
contrastResultVO.setRawDataMap(this.getRawDataMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), queryParam.getNum(), String.valueOf(plan.getCode())));
|
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
|
||||||
|
unit = "%";
|
||||||
|
if (DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
|
||||||
|
unit = "A";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (DicDataEnum.HSV.getCode().equals(dictTree.getCode()) || DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
|
||||||
|
unit = "%";
|
||||||
|
if (DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
|
||||||
|
unit = "A";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
contrastResultVO.setResultMap(this.getResultMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), unit, queryParam.getNum(), String.valueOf(plan.getCode())));
|
||||||
|
contrastResultVO.setRawDataMap(this.getRawDataMap(dictTree, adTypeList, queryParam.getDeviceId() + CnSocketUtil.SPLIT_TAG + queryParam.getChnNum(), unit, queryParam.getNum(), String.valueOf(plan.getCode())));
|
||||||
return contrastResultVO;
|
return contrastResultVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, List<RawResultDataVO>> getResultMap(DictTree dictTree, List<String> adTypeList, String monitorId, Integer num, String code) {
|
private Map<String, List<RawResultDataVO>> getResultMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, String code) {
|
||||||
Map<String, List<RawResultDataVO>> resultMap = new LinkedHashMap<>();
|
Map<String, List<RawResultDataVO>> resultMap = new LinkedHashMap<>();
|
||||||
|
|
||||||
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, monitorId, adTypeList);
|
List<ContrastNonHarmonicResult> contrastNonHarmonicResults = contrastNonHarmonicService.listAllResultData(code, num, monitorId, adTypeList);
|
||||||
List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(code, num, monitorId, adTypeList);
|
List<ContrastHarmonicResult> contrastHarmonicResults = contrastHarmonicService.listAllResultData(code, num, monitorId, adTypeList);
|
||||||
|
|
||||||
String unit = StorageUtil.unit(dictTree.getCode());
|
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(contrastNonHarmonicResults)) {
|
if (CollUtil.isNotEmpty(contrastNonHarmonicResults)) {
|
||||||
ContrastNonHarmonicResult contrastNonHarmonicResult = contrastNonHarmonicResults.get(0);
|
ContrastNonHarmonicResult contrastNonHarmonicResult = contrastNonHarmonicResults.get(0);
|
||||||
List<RawResultDataVO.DetectionData> aList = JSON.parseArray(contrastNonHarmonicResult.getAValue() + "", RawResultDataVO.DetectionData.class);
|
List<RawResultDataVO.DetectionData> aList = JSON.parseArray(contrastNonHarmonicResult.getAValue() + "", RawResultDataVO.DetectionData.class);
|
||||||
@@ -1612,22 +1631,13 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
List<Double> harmonicNum = null;
|
List<Double> harmonicNum = null;
|
||||||
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
|
if (DicDataEnum.HV.getCode().equals(dictTree.getCode()) || DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
|
||||||
harmonicNum = Stream.iterate(2.0, n -> n + 1).limit(49).collect(Collectors.toList());
|
harmonicNum = Stream.iterate(2.0, n -> n + 1).limit(49).collect(Collectors.toList());
|
||||||
unit = "%";
|
|
||||||
if (DicDataEnum.HI.getCode().equals(dictTree.getCode())) {
|
|
||||||
unit = "A";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
if (DicDataEnum.HSV.getCode().equals(dictTree.getCode()) || DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
|
if (DicDataEnum.HSV.getCode().equals(dictTree.getCode()) || DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
|
||||||
harmonicNum = Stream.iterate(0.5, n -> n + 1).limit(50).collect(Collectors.toList());
|
harmonicNum = Stream.iterate(0.5, n -> n + 1).limit(50).collect(Collectors.toList());
|
||||||
unit = "%";
|
|
||||||
if (DicDataEnum.HSI.getCode().equals(dictTree.getCode())) {
|
|
||||||
unit = "A";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
for (Double n : harmonicNum) {
|
for (Double n : harmonicNum) {
|
||||||
try {
|
try {
|
||||||
int i = StorageUtil.isHarmOrInHarm(n).intValue();
|
int i = StorageUtil.isHarmOrInHarm(n).intValue();
|
||||||
String finalUnit = unit;
|
|
||||||
|
|
||||||
Field fieldA = contrastHarmonicResult.getClass().getDeclaredField("aValue" + i);
|
Field fieldA = contrastHarmonicResult.getClass().getDeclaredField("aValue" + i);
|
||||||
fieldA.setAccessible(true);
|
fieldA.setAccessible(true);
|
||||||
@@ -1645,7 +1655,7 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
for (int j = 0; j < aList.size(); j++) {
|
for (int j = 0; j < aList.size(); j++) {
|
||||||
RawResultDataVO dataVO = new RawResultDataVO();
|
RawResultDataVO dataVO = new RawResultDataVO();
|
||||||
dataVO.setHarmNum(n);
|
dataVO.setHarmNum(n);
|
||||||
dataVO.setUnit(finalUnit);
|
dataVO.setUnit(unit);
|
||||||
dataVO.setDataA(aList.get(j));
|
dataVO.setDataA(aList.get(j));
|
||||||
dataVO.setDataB(bList.get(j));
|
dataVO.setDataB(bList.get(j));
|
||||||
dataVO.setDataC(cList.get(j));
|
dataVO.setDataC(cList.get(j));
|
||||||
@@ -1664,35 +1674,41 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
return resultMap;
|
return resultMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Map<String, List<AlignDataVO.RawData>> getRawDataMap(DictTree dictTree, List<String> adTypeList, String monitorId, Integer num, String code) {
|
private Map<String, List<AlignDataVO.RawData>> getRawDataMap(DictTree dictTree, List<String> adTypeList, String monitorId, String unit, Integer num, String code) {
|
||||||
Map<String, List<AlignDataVO.RawData>> resultMap = new LinkedHashMap<>();
|
Map<String, List<AlignDataVO.RawData>> rawMap = new LinkedHashMap<>();
|
||||||
|
|
||||||
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList);
|
List<ContrastNonHarmonicResult> devNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList);
|
||||||
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList);
|
List<ContrastNonHarmonicResult> stdDevNonHarmonicRawDataList = contrastNonHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList);
|
||||||
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList);
|
List<ContrastHarmonicResult> devHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 0, monitorId, adTypeList);
|
||||||
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList);
|
List<ContrastHarmonicResult> stdDevHarmonicRawDataList = contrastHarmonicService.listAllRawData(code, num, 1, monitorId, adTypeList);
|
||||||
|
|
||||||
|
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss.SSS");
|
||||||
List<AlignDataVO.RawData> rawDataVOList = new ArrayList<>();
|
List<AlignDataVO.RawData> rawDataVOList = new ArrayList<>();
|
||||||
for (int i = 0; i < devNonHarmonicRawDataList.size(); i++) {
|
for (int i = 0; i < devNonHarmonicRawDataList.size(); i++) {
|
||||||
AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData();
|
AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData();
|
||||||
|
rawDataVO.setUnit(unit);
|
||||||
ContrastNonHarmonicResult contrastNonHarmonicResult = devNonHarmonicRawDataList.get(i);
|
ContrastNonHarmonicResult contrastNonHarmonicResult = devNonHarmonicRawDataList.get(i);
|
||||||
rawDataVO.setTimeDev(String.valueOf(contrastNonHarmonicResult.getTimeId()));
|
rawDataVO.setTimeDev(contrastNonHarmonicResult.getTimeId().format(dtf));
|
||||||
rawDataVO.setUaDev(getValue(contrastNonHarmonicResult.getAValue()));
|
|
||||||
rawDataVO.setUbDev(getValue(contrastNonHarmonicResult.getBValue()));
|
rawDataVO.setUbDev(getValue(contrastNonHarmonicResult.getBValue()));
|
||||||
rawDataVO.setUcDev(getValue(contrastNonHarmonicResult.getCValue()));
|
|
||||||
rawDataVO.setUtDev(getValue(contrastNonHarmonicResult.getTValue()));
|
rawDataVO.setUtDev(getValue(contrastNonHarmonicResult.getTValue()));
|
||||||
|
|
||||||
contrastNonHarmonicResult = stdDevNonHarmonicRawDataList.get(i);
|
contrastNonHarmonicResult = stdDevNonHarmonicRawDataList.get(i);
|
||||||
rawDataVO.setTimeStdDev(String.valueOf(contrastNonHarmonicResult.getTimeId()));
|
rawDataVO.setTimeStdDev(contrastNonHarmonicResult.getTimeId().format(dtf));
|
||||||
|
if (!DicDataEnum.IMBV.getCode().equals(dictTree.getCode()) && !DicDataEnum.IMBA.getCode().equals(dictTree.getCode())) {
|
||||||
|
rawDataVO.setUaDev(getValue(contrastNonHarmonicResult.getAValue()));
|
||||||
|
rawDataVO.setUcDev(getValue(contrastNonHarmonicResult.getCValue()));
|
||||||
rawDataVO.setUaStdDev(getValue(contrastNonHarmonicResult.getAValue()));
|
rawDataVO.setUaStdDev(getValue(contrastNonHarmonicResult.getAValue()));
|
||||||
rawDataVO.setUbStdDev(getValue(contrastNonHarmonicResult.getBValue()));
|
|
||||||
rawDataVO.setUcStdDev(getValue(contrastNonHarmonicResult.getCValue()));
|
rawDataVO.setUcStdDev(getValue(contrastNonHarmonicResult.getCValue()));
|
||||||
|
}
|
||||||
|
|
||||||
|
rawDataVO.setUbStdDev(getValue(contrastNonHarmonicResult.getBValue()));
|
||||||
rawDataVO.setUtStdDev(getValue(contrastNonHarmonicResult.getTValue()));
|
rawDataVO.setUtStdDev(getValue(contrastNonHarmonicResult.getTValue()));
|
||||||
|
|
||||||
rawDataVOList.add(rawDataVO);
|
rawDataVOList.add(rawDataVO);
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(rawDataVOList)) {
|
if (CollUtil.isNotEmpty(rawDataVOList)) {
|
||||||
resultMap.put(dictTree.getName(), rawDataVOList);
|
rawMap.put(dictTree.getName(), rawDataVOList);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (CollUtil.isNotEmpty(devHarmonicRawDataList) && CollUtil.isNotEmpty(stdDevHarmonicRawDataList)) {
|
if (CollUtil.isNotEmpty(devHarmonicRawDataList) && CollUtil.isNotEmpty(stdDevHarmonicRawDataList)) {
|
||||||
@@ -1708,11 +1724,12 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
int i = StorageUtil.isHarmOrInHarm(n).intValue();
|
int i = StorageUtil.isHarmOrInHarm(n).intValue();
|
||||||
for (int j = 0; j < devHarmonicRawDataList.size(); j++) {
|
for (int j = 0; j < devHarmonicRawDataList.size(); j++) {
|
||||||
AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData();
|
AlignDataVO.RawData rawDataVO = new AlignDataVO.RawData();
|
||||||
|
rawDataVO.setUnit(unit);
|
||||||
ContrastHarmonicResult devHarmonicResult = devHarmonicRawDataList.get(j);
|
ContrastHarmonicResult devHarmonicResult = devHarmonicRawDataList.get(j);
|
||||||
ContrastHarmonicResult stdDevHarmonicResult = stdDevHarmonicRawDataList.get(j);
|
ContrastHarmonicResult stdDevHarmonicResult = stdDevHarmonicRawDataList.get(j);
|
||||||
|
|
||||||
rawDataVO.setTimeDev(String.valueOf(devHarmonicResult.getTimeId()));
|
rawDataVO.setTimeDev(devHarmonicResult.getTimeId().format(dtf));
|
||||||
rawDataVO.setTimeStdDev(String.valueOf(stdDevHarmonicResult.getTimeId()));
|
rawDataVO.setTimeStdDev(stdDevHarmonicResult.getTimeId().format(dtf));
|
||||||
|
|
||||||
try {
|
try {
|
||||||
Field fieldA = devHarmonicResult.getClass().getDeclaredField("aValue" + i);
|
Field fieldA = devHarmonicResult.getClass().getDeclaredField("aValue" + i);
|
||||||
@@ -1751,11 +1768,11 @@ public class ResultServiceImpl implements IResultService {
|
|||||||
}
|
}
|
||||||
rawDataVOList1.add(rawDataVO);
|
rawDataVOList1.add(rawDataVO);
|
||||||
}
|
}
|
||||||
resultMap.put(String.valueOf(n), rawDataVOList1);
|
rawMap.put(String.valueOf(n), rawDataVOList1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return resultMap;
|
return rawMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Double getValue(String value) {
|
private Double getValue(String value) {
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import com.njcn.gather.script.pojo.po.SourceIssue;
|
|||||||
import com.njcn.gather.script.pojo.vo.PqScriptDtlDataVO;
|
import com.njcn.gather.script.pojo.vo.PqScriptDtlDataVO;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author caozehui
|
* @author caozehui
|
||||||
@@ -130,9 +131,11 @@ public interface IPqScriptDtlsService extends IService<PqScriptDtls> {
|
|||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
List<String> getScriptToIcdCheckInfo(PreDetectionParam param);
|
Set<String> getScriptToIcdCheckInfo(PreDetectionParam param);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据脚本id获取脚本详情数据
|
* 根据脚本id获取脚本详情数据
|
||||||
|
*
|
||||||
* @param scriptId 脚本id
|
* @param scriptId 脚本id
|
||||||
*/
|
*/
|
||||||
List<PqScriptDtlDataVO> getScriptDtlsDataList(String scriptId);
|
List<PqScriptDtlDataVO> getScriptDtlsDataList(String scriptId);
|
||||||
|
|||||||
@@ -719,7 +719,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<String> getScriptToIcdCheckInfo(PreDetectionParam param) {
|
public Set<String> getScriptToIcdCheckInfo(PreDetectionParam param) {
|
||||||
PqScriptIssueParam issueParam = new PqScriptIssueParam();
|
PqScriptIssueParam issueParam = new PqScriptIssueParam();
|
||||||
issueParam.setSourceId(param.getSourceId());
|
issueParam.setSourceId(param.getSourceId());
|
||||||
issueParam.setDevIds(param.getDevIds());
|
issueParam.setDevIds(param.getDevIds());
|
||||||
@@ -730,7 +730,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
|||||||
sourceIssues.forEach(x -> {
|
sourceIssues.forEach(x -> {
|
||||||
dataTypeSet.addAll(x.getDevValueTypeList());
|
dataTypeSet.addAll(x.getDevValueTypeList());
|
||||||
});
|
});
|
||||||
return new ArrayList<>(dataTypeSet);
|
return dataTypeSet;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -27,7 +27,7 @@
|
|||||||
<otherwise>
|
<otherwise>
|
||||||
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',
|
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',
|
||||||
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
|
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
|
||||||
PRIMARY KEY (Monitor_Id, Time_Id, Script_Id, Sort, AD_Type)
|
PRIMARY KEY (Dev_Monitor_Id, Time_Id, Script_Id, Sort, AD_Type)
|
||||||
</otherwise>
|
</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
) COMMENT='非谐波类原始数据表';
|
) COMMENT='非谐波类原始数据表';
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
<otherwise>
|
<otherwise>
|
||||||
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',
|
Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',
|
||||||
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
|
Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',
|
||||||
PRIMARY KEY (Monitor_Id, Script_Id, Sort, AD_Type)
|
PRIMARY KEY (Dev_Monitor_Id, Script_Id, Sort, AD_Type)
|
||||||
</otherwise>
|
</otherwise>
|
||||||
</choose>
|
</choose>
|
||||||
) COMMENT='非谐波类检测结果表';
|
) COMMENT='非谐波类检测结果表';
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ public class TableGenServiceImpl implements TableGenService {
|
|||||||
:
|
:
|
||||||
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',\n" +
|
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',\n" +
|
||||||
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
|
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
|
||||||
" PRIMARY KEY (Monitor_Id, Time_Id, Script_Id, Sort, AD_Type)\n"
|
" PRIMARY KEY (Dev_Monitor_Id, Time_Id, Script_Id, Sort, AD_Type)\n"
|
||||||
) + ") COMMENT='谐波类原始数据表';";
|
) + ") COMMENT='谐波类原始数据表';";
|
||||||
tableGenMapper.genAdHarmonicTable(sql);
|
tableGenMapper.genAdHarmonicTable(sql);
|
||||||
|
|
||||||
@@ -79,7 +79,7 @@ public class TableGenServiceImpl implements TableGenService {
|
|||||||
:
|
:
|
||||||
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',\n" +
|
" Script_Id CHAR(32) NOT NULL COMMENT '检测脚本表Id',\n" +
|
||||||
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
|
" Sort int(4) NOT NULL COMMENT '总检测脚本中的测试项序号',\n" +
|
||||||
" PRIMARY KEY (Monitor_Id,Script_Id, Sort, AD_Type)\n"
|
" PRIMARY KEY (Dev_Monitor_Id,Script_Id, Sort, AD_Type)\n"
|
||||||
) + ") COMMENT='谐波类检测结果表';";
|
) + ") COMMENT='谐波类检测结果表';";
|
||||||
tableGenMapper.genAdHarmonicTable(sql2);
|
tableGenMapper.genAdHarmonicTable(sql2);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user