比对完善
This commit is contained in:
@@ -4,15 +4,13 @@ import cn.afterturn.easypoi.excel.entity.ExportParams;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import cn.hutool.core.collection.CollectionUtil;
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.util.NumberUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.google.common.collect.HashBiMap;
|
||||
import com.njcn.common.pojo.exception.BusinessException;
|
||||
import com.njcn.gather.detection.pojo.enums.DetectionCodeEnum;
|
||||
import com.njcn.gather.detection.pojo.enums.DetectionResponseEnum;
|
||||
import com.njcn.gather.detection.pojo.enums.SourceOperateCodeEnum;
|
||||
import com.njcn.gather.detection.pojo.enums.SourceResponseCodeEnum;
|
||||
import com.njcn.gather.detection.pojo.enums.*;
|
||||
import com.njcn.gather.detection.pojo.param.ContrastDetectionParam;
|
||||
import com.njcn.gather.detection.pojo.param.DevPhaseSequenceParam;
|
||||
import com.njcn.gather.detection.pojo.param.PreDetectionParam;
|
||||
@@ -56,6 +54,7 @@ import java.lang.reflect.Field;
|
||||
import java.math.BigDecimal;
|
||||
import java.text.DecimalFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.concurrent.Executors;
|
||||
import java.util.concurrent.ScheduledExecutorService;
|
||||
@@ -130,7 +129,7 @@ public class SocketContrastResponseService {
|
||||
@Value("${log.homeDir}")
|
||||
private String alignDataFilePath;
|
||||
|
||||
private static final Map<String, List<String>> testItemCodeMap = new HashMap() {{
|
||||
public static final Map<String, List<String>> testItemCodeMap = new HashMap() {{
|
||||
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("HV", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.V2_50.getCode(), DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.PV2_50.getCode()));
|
||||
@@ -141,7 +140,7 @@ public class SocketContrastResponseService {
|
||||
put("I", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.IRMS.getCode()));
|
||||
put("IMBV", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.V_UNBAN.getCode()));
|
||||
put("IMBA", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.I_UNBAN.getCode()));
|
||||
put("P", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.P_FUND.getCode()));
|
||||
// put("P", Arrays.asList(DetectionCodeEnum.REAL_PREFIX.getCode() + DetectionCodeEnum.P_FUND.getCode()));
|
||||
}};
|
||||
|
||||
/**
|
||||
@@ -348,6 +347,10 @@ public class SocketContrastResponseService {
|
||||
case FORMAL_REAL:
|
||||
this.formalDeal(param, socketDataMsg);
|
||||
break;
|
||||
// 启动录波
|
||||
case RECORD_WAVE:
|
||||
this.recordWave(param, socketDataMsg);
|
||||
break;
|
||||
//退出关闭
|
||||
case QUITE:
|
||||
quitDeal(socketDataMsg, param);
|
||||
@@ -819,6 +822,7 @@ public class SocketContrastResponseService {
|
||||
*/
|
||||
private void formalDeal(PreDetectionParam param, SocketDataMsg socketDataMsg) {
|
||||
String data = socketDataMsg.getData();
|
||||
String s = param.getUserPageId() + CnSocketUtil.CONTRAST_DEV_TAG;
|
||||
DevData devData = JSON.parseObject(data, DevData.class);
|
||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||
|
||||
@@ -905,7 +909,6 @@ public class SocketContrastResponseService {
|
||||
scheduledFuture.cancel(true);
|
||||
scheduler.shutdown();
|
||||
|
||||
|
||||
String errorSysId = FormalTestManager.currentTestPlan.getErrorSysId();
|
||||
String code = String.valueOf(FormalTestManager.currentTestPlan.getCode());
|
||||
|
||||
@@ -936,13 +939,46 @@ public class SocketContrastResponseService {
|
||||
|
||||
this.clearData();
|
||||
|
||||
List<String> adTypes = FormalTestManager.testItemMap.keySet().stream().collect(Collectors.toList());
|
||||
// Map<String, Integer> result = detectionDataDealService.devResult(true, FormalTestManager.pairsIdMap.keySet().stream().collect(Collectors.toList()), adTypes, code);
|
||||
// // 若有不符合的
|
||||
// if (result.values().stream().anyMatch(r -> r.equals(ResultEnum.NOT_QUALIFIED.getValue()))) {
|
||||
// // 判断是否启用录波
|
||||
// String datasourceId = FormalTestManager.currentTestPlan.getDatasourceId();
|
||||
// if (datasourceId.contains(DataSourceEnum.WAVE_DATA.getValue())) {
|
||||
// FormalTestManager.currentStep = SourceOperateCodeEnum.RECORD_WAVE;
|
||||
// SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||
// socketMsg.setRequestId(SourceOperateCodeEnum.YJC_XYJY.getValue());
|
||||
// socketMsg.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_03.getValue());
|
||||
// Map<String, List<PreDetection>> map = new HashMap<>(1);
|
||||
//
|
||||
// for (int i = 0; i < FormalTestManager.devList.size(); i++) {
|
||||
// PreDetection preDetection = FormalTestManager.devList.get(i);
|
||||
//
|
||||
// }
|
||||
//
|
||||
// FormalTestManager.devList.stream().flatMap(obj -> obj.getMonitorList().stream()).forEach(monitor -> {
|
||||
// String lineId = monitor.getLineId();
|
||||
// String[] split = lineId.split(CnSocketUtil.SPLIT_TAG);
|
||||
// Integer i = result.get(FormalTestManager.devIdMapComm.get(split[1]));
|
||||
// if (i.equals(ResultEnum.NOT_QUALIFIED.getValue())) {
|
||||
//
|
||||
// }
|
||||
// });
|
||||
//
|
||||
// map.put("deviceList", FormalTestManager.devList);
|
||||
// String jsonString = JSON.toJSONString(map);
|
||||
// socketMsg.setData(jsonString);
|
||||
// SocketManager.sendMsg(s, JSON.toJSONString(socketMsg));
|
||||
// }
|
||||
// } else {
|
||||
// 最终将检测结果推送到前端
|
||||
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());//最终成功推送
|
||||
webSend.setData(JSON.toJSONString(allResultList));
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSend));
|
||||
|
||||
// 修改设备状态
|
||||
pqDevService.updateResult(true, param.getDevIds(), FormalTestManager.testItemMap.keySet().stream().collect(Collectors.toList()), code, param.getUserId(), param.getTemperature(), param.getHumidity());
|
||||
pqDevService.updateResult(true, param.getDevIds(), adTypes, code, param.getUserId(), param.getTemperature(), param.getHumidity());
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -967,6 +1003,29 @@ public class SocketContrastResponseService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 启动录波功能
|
||||
*
|
||||
* @param param
|
||||
* @param socketDataMsg
|
||||
*/
|
||||
private void recordWave(PreDetectionParam param, SocketDataMsg socketDataMsg) {
|
||||
String data = socketDataMsg.getData();
|
||||
DevData devData = JSON.parseObject(data, DevData.class);
|
||||
SourceResponseCodeEnum dictDataEnumByCode = SourceResponseCodeEnum.getDictDataEnumByCode(socketDataMsg.getCode());
|
||||
|
||||
switch (Objects.requireNonNull(dictDataEnumByCode)) {
|
||||
case SUCCESS:
|
||||
case NORMAL_RESPONSE:
|
||||
|
||||
case RECORD_WAVE_FAILED:
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(socketDataMsg));
|
||||
CnSocketUtil.contrastSendquit(param.getUserPageId(), false);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 退出检测返回
|
||||
*/
|
||||
@@ -1075,6 +1134,7 @@ public class SocketContrastResponseService {
|
||||
webSend.setOperateCode(SourceOperateCodeEnum.DEV_DATA_REQUEST_02.getValue());
|
||||
webSend.setCode(SourceResponseCodeEnum.ALL_SUCCESS.getCode());
|
||||
List<AlignDataVO> data = new ArrayList<>();
|
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN);
|
||||
|
||||
// key为标准设备的ip, value为该ip下所有通道的设备数据
|
||||
Map<String, List<DevData>> ipDevDataMap = FormalTestManager.standardDevDataMap.values().stream().flatMap(List::stream).collect(Collectors.groupingBy(obj -> obj.getId().split(CnSocketUtil.SPLIT_TAG)[0]));
|
||||
@@ -1117,7 +1177,9 @@ public class SocketContrastResponseService {
|
||||
rawData.setUaStdDev(list1.getA());
|
||||
rawData.setUbStdDev(list1.getB());
|
||||
rawData.setUcStdDev(list1.getC());
|
||||
rawData.setTimeStdDev(obj.getTime().replace("T", " "));
|
||||
|
||||
LocalDateTime localDateTime = DetectionUtil.timeFormat(obj.getTime(), DetectionUtil.FORMATTER);
|
||||
rawData.setTimeStdDev(localDateTime.format(dtf));
|
||||
|
||||
DevData devData = devDataList.stream().filter(obj1 -> DetectionUtil.isAlignData(obj1, obj)).findFirst().orElse(null);
|
||||
if (ObjectUtil.isNotNull(devData)) {
|
||||
@@ -1135,7 +1197,8 @@ public class SocketContrastResponseService {
|
||||
rawData.setUaDev(list2.getA());
|
||||
rawData.setUbDev(list2.getB());
|
||||
rawData.setUcDev(list2.getC());
|
||||
rawData.setTimeDev(devData.getTime().replace("T", " "));
|
||||
localDateTime = DetectionUtil.timeFormat(devData.getTime(), DetectionUtil.FORMATTER);
|
||||
rawData.setTimeDev(localDateTime.format(dtf));
|
||||
devDataList.remove(devData);
|
||||
}
|
||||
return rawData;
|
||||
@@ -1166,6 +1229,7 @@ public class SocketContrastResponseService {
|
||||
*/
|
||||
private void saveAlignData() {
|
||||
List<Map<String, Object>> sheetsList = new ArrayList<>();
|
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern(DatePattern.ISO8601_PATTERN);
|
||||
|
||||
// key为被检设备的ip, value为该ip下所有通道的设备数据
|
||||
Map<String, List<DevData>> ipDevDataMap = FormalTestManager.standardDevDataMap.values().stream().flatMap(List::stream).collect(Collectors.groupingBy(obj -> obj.getId().split(CnSocketUtil.SPLIT_TAG)[0]));
|
||||
@@ -1203,7 +1267,8 @@ public class SocketContrastResponseService {
|
||||
list1 = sqlDataDTO1.getList();
|
||||
}
|
||||
AlignDataExcel alignDataExcel = new AlignDataExcel();
|
||||
alignDataExcel.setTimeStdDev(obj.getTime().replace("T", " "));
|
||||
LocalDateTime localDateTime = DetectionUtil.timeFormat(obj.getTime(), DetectionUtil.FORMATTER);
|
||||
alignDataExcel.setTimeStdDev(localDateTime.format(dtf));
|
||||
alignDataExcel.setUaStdDev(list1.getA());
|
||||
alignDataExcel.setUbStdDev(list1.getB());
|
||||
alignDataExcel.setUcStdDev(list1.getC());
|
||||
@@ -1221,7 +1286,8 @@ public class SocketContrastResponseService {
|
||||
if (ObjectUtil.isNotNull(sqlDataDTO2)) {
|
||||
list2 = sqlDataDTO2.getList();
|
||||
}
|
||||
alignDataExcel.setTimeDev(devData.getTime().replace("T", " "));
|
||||
localDateTime = DetectionUtil.timeFormat(devData.getTime(), DetectionUtil.FORMATTER);
|
||||
alignDataExcel.setTimeDev(localDateTime.format(dtf));
|
||||
alignDataExcel.setUaDev(list2.getA());
|
||||
alignDataExcel.setUbDev(list2.getB());
|
||||
alignDataExcel.setUcDev(list2.getC());
|
||||
|
||||
@@ -27,6 +27,7 @@ import com.njcn.gather.device.service.IPqDevService;
|
||||
import com.njcn.gather.device.service.IPqDevSubService;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||
import com.njcn.gather.plan.service.IAdPlanService;
|
||||
import com.njcn.gather.result.pojo.enums.ResultUnitEnum;
|
||||
import com.njcn.gather.script.pojo.param.PqScriptCheckDataParam;
|
||||
import com.njcn.gather.script.pojo.param.PqScriptIssueParam;
|
||||
import com.njcn.gather.script.pojo.po.SourceIssue;
|
||||
@@ -436,13 +437,19 @@ public class SocketDevResponseService {
|
||||
Map<String, Long> sourceIssueMap = sourceIssues.stream().collect(Collectors.groupingBy(SourceIssue::getType, Collectors.counting()));
|
||||
SocketManager.initMap(sourceIssueMap);
|
||||
|
||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssues.get(0).getType());
|
||||
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||
|
||||
//告诉前端当前项开始了
|
||||
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
||||
String type = sourceIssues.get(0).getType();
|
||||
if (ResultUnitEnum.P.getCode().equals(type)) {
|
||||
sourceIssues.get(0).setType(ResultUnitEnum.V_ABSOLUTELY.getCode());
|
||||
webSocketVO.setRequestId(ResultUnitEnum.P.getCode() + CnSocketUtil.START_TAG);
|
||||
} else {
|
||||
webSocketVO.setRequestId(sourceIssues.get(0).getType() + CnSocketUtil.START_TAG);
|
||||
}
|
||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + type);
|
||||
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||
|
||||
webSocketVO.setDesc(null);
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||
} else {
|
||||
@@ -937,13 +944,20 @@ public class SocketDevResponseService {
|
||||
Map<String, Long> sourceIssueMap = sourceIssues.stream().collect(Collectors.groupingBy(SourceIssue::getType, Collectors.counting()));
|
||||
SocketManager.initMap(sourceIssueMap);
|
||||
|
||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssues.get(0).getType());
|
||||
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||
|
||||
//告诉前端当前项开始了
|
||||
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
||||
String type = sourceIssues.get(0).getType();
|
||||
if (ResultUnitEnum.P.getCode().equals(type)) {
|
||||
sourceIssues.get(0).setType(ResultUnitEnum.V_ABSOLUTELY.getCode());
|
||||
webSocketVO.setRequestId(ResultUnitEnum.P.getCode() + CnSocketUtil.START_TAG);
|
||||
} else {
|
||||
webSocketVO.setRequestId(sourceIssues.get(0).getType() + CnSocketUtil.START_TAG);
|
||||
}
|
||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + type);
|
||||
socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||
|
||||
webSocketVO.setDesc(null);
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||
}
|
||||
@@ -1187,14 +1201,20 @@ public class SocketDevResponseService {
|
||||
Map<String, Long> sourceIssueMap = sourceIssues.stream().collect(Collectors.groupingBy(SourceIssue::getType, Collectors.counting()));
|
||||
SocketManager.initMap(sourceIssueMap);
|
||||
|
||||
//告诉前端当前项开始了
|
||||
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
||||
String type = sourceIssues.get(0).getType();
|
||||
if (ResultUnitEnum.P.getCode().equals(type)) {
|
||||
sourceIssues.get(0).setType(ResultUnitEnum.V_ABSOLUTELY.getCode());
|
||||
webSocketVO.setRequestId(ResultUnitEnum.P.getCode() + CnSocketUtil.START_TAG);
|
||||
} else {
|
||||
webSocketVO.setRequestId(sourceIssues.get(0).getType() + CnSocketUtil.START_TAG);
|
||||
}
|
||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssues.get(0).getType());
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + type);
|
||||
socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||
|
||||
//告诉前端当前项开始了
|
||||
WebSocketVO<Object> webSocketVO = new WebSocketVO<>();
|
||||
webSocketVO.setRequestId(sourceIssues.get(0).getType() + CnSocketUtil.START_TAG);
|
||||
webSocketVO.setDesc(null);
|
||||
WebServiceManager.sendMsg(param.getUserPageId(), JSON.toJSONString(webSocketVO));
|
||||
} else {
|
||||
@@ -1281,8 +1301,14 @@ public class SocketDevResponseService {
|
||||
System.out.println("当前小项结束进行删除============" + sourceIssue.getType() + CnSocketUtil.SPLIT_TAG + sourceIssue.getIndex());
|
||||
|
||||
//小项检测完后小项数减一,并更新map
|
||||
long residueCount = SocketManager.getSourceTarget(sourceIssue.getType()) - 1;
|
||||
long residueCount = 0;
|
||||
if (sourceIssue.getIsP()) {
|
||||
residueCount = SocketManager.getSourceTarget(ResultUnitEnum.P.getCode()) - 1;
|
||||
SocketManager.addTargetMap(ResultUnitEnum.P.getCode(), residueCount);
|
||||
} else {
|
||||
residueCount = SocketManager.getSourceTarget(sourceIssue.getType()) - 1;
|
||||
SocketManager.addTargetMap(sourceIssue.getType(), residueCount);
|
||||
}
|
||||
System.out.println("该大项还有" + residueCount + "个小项没有进行检测!!!!!!!!");
|
||||
|
||||
//当该大项中小项数量变为0,则任务该大项检测结束
|
||||
@@ -1326,12 +1352,17 @@ public class SocketDevResponseService {
|
||||
if (residueCount == 0) {
|
||||
WebServiceManager.sendDetectionMessage(param.getUserPageId(), sourceIssues.getType() + CnSocketUtil.START_TAG, null, new ArrayList<>(), null);
|
||||
}
|
||||
String type = sourceIssues.getType();
|
||||
if (sourceIssues.getIsP()) {
|
||||
sourceIssues.setType(ResultUnitEnum.V_ABSOLUTELY.getCode());
|
||||
type = ResultUnitEnum.P.getCode();
|
||||
}
|
||||
|
||||
//控源下发下一个小项脚本
|
||||
SocketMsg<String> xuMsg = new SocketMsg<>();
|
||||
xuMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||
xuMsg.setData(JSON.toJSONString(sourceIssues));
|
||||
xuMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssues.getType());
|
||||
xuMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + type);
|
||||
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(xuMsg));
|
||||
} else {
|
||||
//TODO 是否最终检测完成需要推送给用户
|
||||
@@ -1836,6 +1867,9 @@ public class SocketDevResponseService {
|
||||
|
||||
if (nonHarmonicList.contains(sourceIssue.getType())) {
|
||||
for (DevData.SqlDataDTO sqlDataDTO : data.getSqlData()) {
|
||||
if (sqlDataDTO.getDesc().equals("PF")) {
|
||||
continue;
|
||||
}
|
||||
DevData.SqlDataDTO.ListDTO listDTO = sqlDataDTO.getList();
|
||||
SimAndDigNonHarmonicResult adNonHarmonicResult = new SimAndDigNonHarmonicResult();
|
||||
adNonHarmonicResult.setTimeId(localDateTime);
|
||||
|
||||
@@ -491,7 +491,7 @@ public class SocketSourceResponseService {
|
||||
log.debug("向设备下发检测参数,用户: {}, 数据类型: {}", param.getUserPageId(), comm);
|
||||
|
||||
// 设置请求ID:正式检测操作码 + 步骤标识 + 检测类型
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + sourceIssue.getType());
|
||||
socketMsg.setRequestId(socketDataMsg.getRequestId());
|
||||
|
||||
// 根据检测类型设置不同的读取参数和操作码
|
||||
int ignoreCount;
|
||||
@@ -534,6 +534,9 @@ public class SocketSourceResponseService {
|
||||
DevPhaseSequenceParam phaseSequenceParam = new DevPhaseSequenceParam();
|
||||
// 设置监测点ID列表
|
||||
phaseSequenceParam.setMoniterIdList(monitorIdList);
|
||||
if (socketDataMsg.getRequestId().equals(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + "P")) {
|
||||
comm.add("real$PF");
|
||||
}
|
||||
// 设置数据类型列表
|
||||
phaseSequenceParam.setDataType(comm);
|
||||
// 设置读取次数
|
||||
|
||||
@@ -35,7 +35,13 @@ public enum DetectionCodeEnum {
|
||||
V_UNBAN("V_UNBAN", "三相电压负序不平衡度"),
|
||||
I_UNBAN("I_UNBAN", "三相电流负序不平衡度"),
|
||||
PST("PST", "短时间闪变"),
|
||||
P_FUND("P_FUND", "功率"),
|
||||
W("W", "有功功率"),
|
||||
VARW("VARW", "无功功率"),
|
||||
VAW("VAW", "视在功率"),
|
||||
// PF("PF", "功率因数"),
|
||||
// P_FUND("P_FUND", "基波有功功率"),
|
||||
// P_HVAR("P_HVAR", "基波无功功率"),
|
||||
// P_HVA("P_HVA", "基波视在功率"),
|
||||
I1("I1", "基波电流"),
|
||||
UNKNOWN_ERROR("-1", "未知异常"),
|
||||
|
||||
@@ -53,6 +59,7 @@ public enum DetectionCodeEnum {
|
||||
this.code = code;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public static DetectionCodeEnum getDetectionCodeByCode(String code) {
|
||||
for (DetectionCodeEnum detectionCodeEnum : DetectionCodeEnum.values()) {
|
||||
if (ObjectUtil.equals(code, detectionCodeEnum.getCode())) {
|
||||
|
||||
@@ -51,6 +51,7 @@ public enum SourceOperateCodeEnum {
|
||||
YJC_ALIGN("yjc_align","实时数据对齐校验"),
|
||||
YJC_MXYZXJY("yjc_mxyzxjy", "模型一致性校验"),
|
||||
FORMAL_REAL("formal_real","正式检测"),
|
||||
RECORD_WAVE("record_wave","启动录波"),
|
||||
// SIMULATE_REAL("simulate_real","模拟检测"),
|
||||
Coefficient_Check("Coefficient_Check","系数校验"),
|
||||
QUITE("quit","关闭设备通讯初始化"),
|
||||
|
||||
@@ -14,6 +14,7 @@ public enum SourceResponseCodeEnum {
|
||||
UNPROCESSED_BUSINESS(10201, "立即响应,业务还未处理,类似肯定应答"),
|
||||
NORMAL_RESPONSE(10202, "正常响应中间状态码"),
|
||||
ICD_NOT_FOUND(10500, "未找到对应ICD"),
|
||||
RECORD_WAVE_FAILED(10501, "录波失败"),
|
||||
MESSAGE_PARSING_ERROR(10520, "报文解析有误"),
|
||||
CONTROLLED_SOURCE_ERROR(10521, "程控源参数有误"),
|
||||
TEST_ITEM_PARSING_ERROR(10522, "测试项解析有误"),
|
||||
|
||||
@@ -3,6 +3,8 @@ package com.njcn.gather.detection.service;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.njcn.gather.detection.pojo.po.AdPair;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author caozehui
|
||||
* @data 2025-08-18
|
||||
@@ -16,4 +18,12 @@ public interface IAdPariService extends IService<AdPair> {
|
||||
* @return
|
||||
*/
|
||||
Integer getMaxNum(String devMonitorId);
|
||||
|
||||
/**
|
||||
* 根据设备id查询配对关系
|
||||
*
|
||||
* @param devIds
|
||||
* @return
|
||||
*/
|
||||
List<AdPair> listByDevIds(List<String> devIds);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.njcn.gather.detection.service.impl;
|
||||
|
||||
import cn.hutool.core.collection.CollUtil;
|
||||
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.njcn.gather.detection.mapper.AdPairMapper;
|
||||
import com.njcn.gather.detection.pojo.po.AdPair;
|
||||
@@ -29,4 +30,11 @@ public class AdPairServiceImpl extends ServiceImpl<AdPairMapper, AdPair> impleme
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AdPair> listByDevIds(List<String> devIds) {
|
||||
LambdaQueryChainWrapper<AdPair> wrapper = this.lambdaQuery();
|
||||
devIds.forEach(devId -> wrapper.likeRight(AdPair::getDevMonitorId, devId));
|
||||
return this.list(wrapper);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -116,6 +116,9 @@ public class DetectionServiceImpl {
|
||||
SysTestConfig oneConfig = sysTestConfigService.getOneConfig();
|
||||
List<ErrDtlsCheckDataVO> errDtlsCheckData = pqErrSysDtlsService.listByPqErrSysIdAndTypes(param);
|
||||
ResultUnitEnum resultUnitEnumByCode = ResultUnitEnum.getResultUnitEnumByCode(sourceIssue.getType());
|
||||
if (sourceIssue.getIsP()) {
|
||||
resultUnitEnumByCode = ResultUnitEnum.P;
|
||||
}
|
||||
switch (resultUnitEnumByCode) {
|
||||
/**
|
||||
* 频率
|
||||
@@ -381,6 +384,9 @@ public class DetectionServiceImpl {
|
||||
List<SimAndDigNonHarmonicResult> info = new ArrayList<>();
|
||||
List<String> devValueTypeList = sourceIssue.getDevValueTypeList();
|
||||
for (String s : devValueTypeList) {
|
||||
if ((DetectionCodeEnum.REAL_PREFIX.getCode() + "PF").equals(s)) {
|
||||
continue;
|
||||
}
|
||||
// 根据数据处理规则取值。key为相别,value为值列表
|
||||
Map<String, List<Double>> map = devListMap(dev, dataRule, s.split("\\$")[1]);
|
||||
Double fData = 1.0;
|
||||
@@ -1184,9 +1190,15 @@ public class DetectionServiceImpl {
|
||||
detectionData.setUnit(errSysDtl.getErrorUnit());
|
||||
errSysDtl.setMaxErrorValue(maxErrorMultiply(errSysDtl, data, channelData, scale));
|
||||
detectionData.setRadius(-errSysDtl.getMaxErrorValue() + "~" + errSysDtl.getMaxErrorValue());
|
||||
|
||||
// 处理相对值-标准值为0的问题
|
||||
if (errSysDtl.getValueType() == 2 && errSysDtl.getErrorValueType() == 1 && channelData == 0) {
|
||||
detectionData.setIsData(ResultEnum.NO_ERROR_SYS.getValue());
|
||||
} else {
|
||||
setDetection(dataRule, list, errSysDtl, detectionData, channelData, data, scale);
|
||||
}
|
||||
}
|
||||
}
|
||||
return detectionData;
|
||||
}
|
||||
|
||||
@@ -1289,6 +1301,9 @@ public class DetectionServiceImpl {
|
||||
//计算装置值返回值 - 源下发值的数据 = 差值
|
||||
// BigDecimal subtract = BigDecimal.valueOf(devData).setScale(scale, RoundingMode.HALF_UP).subtract(BigDecimal.valueOf(channelData));
|
||||
BigDecimal subtract = BigDecimal.valueOf(devData).subtract(BigDecimal.valueOf(channelData));
|
||||
// if(ratedValue == 0 || channelData == 0){
|
||||
// return BigDecimal.valueOf(Double.MAX_VALUE);
|
||||
// }
|
||||
//只有相对值需要%比较,绝对值直接相减就行
|
||||
if (2 == error.getValueType()) {
|
||||
switch (error.getErrorValueType()) {
|
||||
@@ -1573,9 +1588,12 @@ public class DetectionServiceImpl {
|
||||
boolean isDelta = DetectionCodeEnum.DELTA.getCode().equals(pqMonitor.getConnection());
|
||||
Double fUn = pqMonitorService.getRatedVoltage(devMonitorId);
|
||||
boolean isExitDelta = this.isExitDeltaIndex(devIdMapComm.get(split1[0]), devDataList);
|
||||
if (isStar || !isExitDelta) {
|
||||
if (isStar) {
|
||||
fUn = BigDecimal.valueOf(fUn).divide(BigDecimal.valueOf(Math.sqrt(3)), oneConfig.getScale(), RoundingMode.HALF_UP).doubleValue();
|
||||
}
|
||||
// if (isDelta && !isExitDelta) {
|
||||
// fUn = BigDecimal.valueOf(fUn).divide(BigDecimal.valueOf(Math.sqrt(3)), oneConfig.getScale(), RoundingMode.HALF_UP).doubleValue();
|
||||
// }
|
||||
Double fIn = pqMonitorService.getRatedCurrent(devMonitorId);
|
||||
Double fHz = 50.0;
|
||||
for (String testItemCode : testItemCodeList) {
|
||||
@@ -1610,9 +1628,9 @@ public class DetectionServiceImpl {
|
||||
case IRMS:
|
||||
resultMap.put(PowerIndexEnum.I.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fIn, DetectionCodeEnum.IRMS.getCode(), dataRule, num, code, oneConfig.getScale()));
|
||||
break;
|
||||
case P_FUND:
|
||||
resultMap.put(PowerIndexEnum.P.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn * fIn, DetectionCodeEnum.P_FUND.getCode(), dataRule, num, code, oneConfig.getScale()));
|
||||
break;
|
||||
// case P_FUND:
|
||||
// resultMap.put(PowerIndexEnum.P.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, true, fUn * fIn, DetectionCodeEnum.P_FUND.getCode(), dataRule, num, code, oneConfig.getScale()));
|
||||
// break;
|
||||
case V_UNBAN:
|
||||
resultMap.put(PowerIndexEnum.IMBV.getKey(), isQualified(devDataList, standardDevDataList, devIdMapComm, pqErrSysDtls, false, fUn, DetectionCodeEnum.V_UNBAN.getCode(), dataRule, num, code, oneConfig.getScale()));
|
||||
break;
|
||||
@@ -1667,6 +1685,8 @@ public class DetectionServiceImpl {
|
||||
if (descList.containsAll(deltaIndex)) {
|
||||
List<PreDetection> devInfo = pqDevService.getDevInfo(Collections.singletonList(devId));
|
||||
if (devInfo.get(0).getUsePhaseIndex() == 1) {
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -29,6 +29,7 @@ import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlanSource;
|
||||
import com.njcn.gather.plan.service.IAdPlanService;
|
||||
import com.njcn.gather.plan.service.IAdPlanSourceService;
|
||||
import com.njcn.gather.result.pojo.enums.ResultUnitEnum;
|
||||
import com.njcn.gather.script.pojo.param.PqScriptCheckDataParam;
|
||||
import com.njcn.gather.script.pojo.param.PqScriptIssueParam;
|
||||
import com.njcn.gather.script.pojo.po.SourceIssue;
|
||||
@@ -61,8 +62,6 @@ import java.util.stream.Collectors;
|
||||
@Slf4j
|
||||
public class PreDetectionServiceImpl implements PreDetectionService {
|
||||
|
||||
private final String stepTag = "&&";
|
||||
|
||||
private final IPqDevService iPqDevService;
|
||||
private final IDictDataService dictDataService;
|
||||
private final IAdPlanService iAdPlanService;
|
||||
@@ -274,14 +273,14 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
||||
@Override
|
||||
public void sendScript(SimulateDetectionParam param) {
|
||||
Channel channel = SocketManager.getChannelByUserId(param.getUserPageId() + DetectionCommunicateConstant.SOURCE);
|
||||
if (Objects.isNull(channel) || !channel.isActive()) {
|
||||
// 进行源通信连接
|
||||
PreDetectionParam preDetectionParam = new PreDetectionParam();
|
||||
preDetectionParam.setSourceId(param.getSourceId());
|
||||
preDetectionParam.setUserPageId(param.getUserPageId());
|
||||
preDetectionParam.setSendWebMsg(false);
|
||||
this.sendYtxSocketSimulate(preDetectionParam);
|
||||
}
|
||||
// if (Objects.isNull(channel) || !channel.isActive()) {
|
||||
// // 进行源通信连接
|
||||
// PreDetectionParam preDetectionParam = new PreDetectionParam();
|
||||
// preDetectionParam.setSourceId(param.getSourceId());
|
||||
// preDetectionParam.setUserPageId(param.getUserPageId());
|
||||
// preDetectionParam.setSendWebMsg(false);
|
||||
// this.sendYtxSocketSimulate(preDetectionParam);
|
||||
// }
|
||||
//组装源控制脚本
|
||||
PqScriptIssueParam issueParam = new PqScriptIssueParam();
|
||||
issueParam.setSourceId(param.getSourceId());
|
||||
@@ -295,12 +294,18 @@ public class PreDetectionServiceImpl implements PreDetectionService {
|
||||
.collect(Collectors.toList());
|
||||
|
||||
SourceIssue sourceIssue = sourceIssues.get(0);
|
||||
String type = sourceIssue.getType();
|
||||
if (sourceIssue.getIsP()) {
|
||||
sourceIssue.setType(ResultUnitEnum.V_ABSOLUTELY.getCode());
|
||||
type = ResultUnitEnum.P.getCode();
|
||||
}
|
||||
|
||||
List<String> comm = sourceIssue.getDevValueTypeList();
|
||||
System.out.println("向装置下发的参数ddd>>>>>>>>" + comm);
|
||||
|
||||
SocketMsg<String> socketMsg = new SocketMsg<>();
|
||||
socketMsg.setOperateCode(SourceOperateCodeEnum.OPER_GATHER.getValue());
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + stepTag + sourceIssue.getType());
|
||||
socketMsg.setRequestId(SourceOperateCodeEnum.FORMAL_REAL.getValue() + CnSocketUtil.STEP_TAG + type);
|
||||
socketMsg.setData(JSON.toJSONString(sourceIssues.get(0)));
|
||||
SocketManager.sendMsg(param.getUserPageId() + CnSocketUtil.SOURCE_TAG, JSON.toJSONString(socketMsg));
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@ public enum DataSourceEnum {
|
||||
MINUTE_STATISTICS_MIN("min", "分钟统计数据-最小"),
|
||||
MINUTE_STATISTICS_AVG("avg", "分钟统计数据-平均"),
|
||||
MINUTE_STATISTICS_CP95("cp95", "分钟统计数据-CP95"),
|
||||
RECORDED_DATA("Recorded_data", "录播数据");
|
||||
WAVE_DATA("wave_data", "录播数据");
|
||||
|
||||
private String value;
|
||||
private String msg;
|
||||
|
||||
@@ -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" +
|
||||
" Dev_Monitor_Id CHAR(34) 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" +
|
||||
" 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);
|
||||
|
||||
@@ -64,6 +64,12 @@ public class SourceIssue {
|
||||
@JSONField(name = "type", ordinal = 2)
|
||||
private String type;
|
||||
|
||||
/**
|
||||
* 是否是功率
|
||||
*/
|
||||
@JSONField(serialize = false)
|
||||
private Boolean isP;
|
||||
|
||||
/**
|
||||
* 多量响量
|
||||
*/
|
||||
|
||||
@@ -16,6 +16,7 @@ import com.njcn.gather.device.pojo.po.PqDev;
|
||||
import com.njcn.gather.device.service.IPqDevService;
|
||||
import com.njcn.gather.plan.mapper.AdPlanMapper;
|
||||
import com.njcn.gather.plan.pojo.po.AdPlan;
|
||||
import com.njcn.gather.result.pojo.enums.ResultUnitEnum;
|
||||
import com.njcn.gather.script.mapper.PqScriptCheckDataMapper;
|
||||
import com.njcn.gather.script.mapper.PqScriptDtlsMapper;
|
||||
import com.njcn.gather.script.mapper.PqScriptMapper;
|
||||
@@ -246,6 +247,11 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
||||
issueAdd(curList, dtlsIList, HARM_I, INHARM_I, freqDtls.getValue(), "I", channelListDTOS, checkDataParam, devFly, isValueType);
|
||||
|
||||
issue.setChannelList(channelListDTOS);
|
||||
if (ResultUnitEnum.P.getCode().equals(issue.getType())) {
|
||||
issue.setIsP(true);
|
||||
} else {
|
||||
issue.setIsP(false);
|
||||
}
|
||||
sourceIssues.add(issue);
|
||||
}
|
||||
});
|
||||
@@ -413,6 +419,8 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
||||
|
||||
@Override
|
||||
public List<PqScriptDtlsParam.CheckData> scriptDtlsCheckDataList(PqScriptDtlsParam sourceIssue) {
|
||||
Boolean valueType = pqScriptMapper.selectScriptIsValueType(sourceIssue.getScriptId());
|
||||
|
||||
List<PqScriptDtlsParam.CheckData> info = new ArrayList<>();
|
||||
//获取所有下拉值情况
|
||||
List<PqScriptDtlsParam.CheckData> checkDataList = sourceIssue.getCheckDataList();
|
||||
@@ -526,7 +534,7 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
||||
if (harmIMap.containsKey(harmModel.getHarm())) {
|
||||
PqScriptDtlsParam.ChannelListDTO.HarmModel i = harmIMap.get(harmModel.getHarm());
|
||||
//电压*电流*cos(电压角度-电流角度)
|
||||
checkData.setValue(i.getFAmp() * harmModel.getFAmp() / 100 * Math.cos(harmModel.getFPhase() - i.getFPhase()));
|
||||
checkData.setValue(i.getFAmp() * harmModel.getFAmp() / 100 * Math.cos((harmModel.getFPhase() - i.getFPhase()) * Math.PI / 180));
|
||||
}
|
||||
setCheck(info, checkData, channelListDTO, checkArchive, listDTO);
|
||||
}
|
||||
@@ -605,13 +613,13 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
||||
break;
|
||||
case I1:
|
||||
break;
|
||||
case P_FUND:
|
||||
case W:
|
||||
channelU = channelList.stream().filter(x -> x.getChannelType().contains("U")).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(channelU)) {
|
||||
for (PqScriptDtlsParam.ChannelListDTO listDTO : channelU) {
|
||||
//获取电流通道
|
||||
channelI = channelList.stream()
|
||||
.filter(PqScriptDtlsParam.ChannelListDTO::getHarmFlag)
|
||||
// .filter(PqScriptDtlsParam.ChannelListDTO::getHarmFlag)
|
||||
.filter(x -> x.getChannelType().contains("I" + listDTO.getChannelType().substring(1, 2)))
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(channelI)) {
|
||||
@@ -619,7 +627,56 @@ public class PqScriptDtlsServiceImpl extends ServiceImpl<PqScriptDtlsMapper, PqS
|
||||
checkData.setErrorFlag(channelListDTO.getErrorFlag());
|
||||
checkData.setEnable(channelListDTO.getEnable());
|
||||
//电压*电流*cos(电压角度-电流角度)
|
||||
checkData.setValue(channelI.get(0).getFAmp() * listDTO.getFAmp() * Math.cos(listDTO.getFPhase() - channelI.get(0).getFPhase()));
|
||||
checkData.setValue(channelI.get(0).getFAmp() * listDTO.getFAmp() / 10000 * Math.cos((listDTO.getFPhase() - channelI.get(0).getFPhase()) * Math.PI / 180));
|
||||
if (valueType) {
|
||||
checkData.setValue(checkData.getValue() * 57.74 * 5);
|
||||
}
|
||||
setCheck(info, checkData, channelListDTO, checkArchive, listDTO);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case VARW:
|
||||
channelU = channelList.stream().filter(x -> x.getChannelType().contains("U")).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(channelU)) {
|
||||
for (PqScriptDtlsParam.ChannelListDTO listDTO : channelU) {
|
||||
//获取电流通道
|
||||
channelI = channelList.stream()
|
||||
// .filter(PqScriptDtlsParam.ChannelListDTO::getHarmFlag)
|
||||
.filter(x -> x.getChannelType().contains("I" + listDTO.getChannelType().substring(1, 2)))
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(channelI)) {
|
||||
checkData = new PqScriptDtlsParam.CheckData();
|
||||
checkData.setErrorFlag(channelListDTO.getErrorFlag());
|
||||
checkData.setEnable(channelListDTO.getEnable());
|
||||
//电压*电流*cos(电压角度-电流角度)
|
||||
checkData.setValue(channelI.get(0).getFAmp() * listDTO.getFAmp() / 10000 * Math.sin((listDTO.getFPhase() - channelI.get(0).getFPhase()) * Math.PI / 180));
|
||||
if (valueType) {
|
||||
checkData.setValue(checkData.getValue() * 57.74 * 5);
|
||||
}
|
||||
setCheck(info, checkData, channelListDTO, checkArchive, listDTO);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
case VAW:
|
||||
channelU = channelList.stream().filter(x -> x.getChannelType().contains("U")).collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(channelU)) {
|
||||
for (PqScriptDtlsParam.ChannelListDTO listDTO : channelU) {
|
||||
//获取电流通道
|
||||
channelI = channelList.stream()
|
||||
// .filter(PqScriptDtlsParam.ChannelListDTO::getHarmFlag)
|
||||
.filter(x -> x.getChannelType().contains("I" + listDTO.getChannelType().substring(1, 2)))
|
||||
.collect(Collectors.toList());
|
||||
if (CollUtil.isNotEmpty(channelI)) {
|
||||
checkData = new PqScriptDtlsParam.CheckData();
|
||||
checkData.setErrorFlag(channelListDTO.getErrorFlag());
|
||||
checkData.setEnable(channelListDTO.getEnable());
|
||||
//电压*电流*cos(电压角度-电流角度)
|
||||
checkData.setValue(channelI.get(0).getFAmp() * listDTO.getFAmp() / 10000);
|
||||
if (valueType) {
|
||||
checkData.setValue(checkData.getValue() * 57.74 * 5);
|
||||
}
|
||||
setCheck(info, checkData, channelListDTO, checkArchive, listDTO);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -75,6 +75,9 @@ public class StorageUtil {
|
||||
* 功率
|
||||
*/
|
||||
case "P":
|
||||
case "W":
|
||||
case "VARW":
|
||||
case "VAW":
|
||||
unit = "W";
|
||||
break;
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user