This commit is contained in:
2024-11-22 09:32:45 +08:00
parent a904650751
commit d681bdedfe
2 changed files with 138 additions and 141 deletions

View File

@@ -37,9 +37,9 @@ import java.util.stream.Collectors;
public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEvaluateDMapper, RMpMonitorEvaluateD> implements IRMpMonitorEvaluateDService {
private final CommLineClient commLineClient;
private final DataVInfluxdbService dataVInfluxdbService;
private final PmsAbnormalRulesMapper pmsAbnormalRulesMapper;
private final DataIntegrityRateInfluxService dataIntegrityRateInfluxService;
// private final DataVInfluxdbService dataVInfluxdbService;
// private final PmsAbnormalRulesMapper pmsAbnormalRulesMapper;
// private final DataIntegrityRateInfluxService dataIntegrityRateInfluxService;
/***
* 监测点报表--日统计
@@ -49,47 +49,47 @@ public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEva
*/
@Override
public void handleDay(CalculatedParam calculatedParam) {
//1、取出规则
List<PmsAbnormalRules> pmsAbnormalRules = pmsAbnormalRulesMapper.selectList(null);
String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
//以尺寸1000分片
List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(), 100);
for (List<String> pendingId : pendingIds) {
List<LineDTO> lineDTOList = commLineClient.getLineDetailBatch(pendingId).getData();
List<RMpMonitorEvaluateD> rMpMonitorEvaluateDS = new ArrayList<>();
for (LineDTO lineDTO : lineDTOList) {
if (ObjectUtil.isNotNull(lineDTO)) {
/*todo 统计间隔电压等级取值方式后期提供融合版本接口获取不然pmspqs系统取值方式不一样*/
/*统计间隔*/
Integer statisticalInterval = lineDTO.getTimeInterval();
/*电压等级*/
Double voltage = Double.parseDouble(lineDTO.getVoltageLevel());
List<DataVFiveItemDTO> fiveItems = dataVInfluxdbService.getFiveItems(lineDTO.getLineId(), beginDay, endDay, statisticalInterval);
RMpMonitorEvaluateD rMpMonitorEvaluateD = new RMpMonitorEvaluateD();
rMpMonitorEvaluateD = calculateRMpMonitorEvaluateDPO(rMpMonitorEvaluateD, fiveItems, pmsAbnormalRules, voltage, lineDTO);
Date date = DateUtil.parse(beginDay);
DataFlicker twoFlickerData = dataIntegrityRateInfluxService.getTwoFlickerData(lineDTO.getLineId(), date, 5);
LocalDate localDate = LocalDateTimeUtil.parseDate(beginDay, DatePattern.NORM_DATETIME_PATTERN);
if (Objects.isNull(twoFlickerData)) {
rMpMonitorEvaluateD.setPltCount(0);
rMpMonitorEvaluateD.setPstCount(0);
} else {
rMpMonitorEvaluateD.setPltCount(twoFlickerData.getPltCount());
rMpMonitorEvaluateD.setPstCount(twoFlickerData.getPstCount());
}
rMpMonitorEvaluateD.setAllMinuteCount(fiveItems.size());
rMpMonitorEvaluateD.setDeviceId(lineDTO.getDevId());
rMpMonitorEvaluateD.setDataDate(localDate);
rMpMonitorEvaluateD.setMeasurementPointId(lineDTO.getLineId());
rMpMonitorEvaluateDS.add(rMpMonitorEvaluateD);
}
}
if (CollUtil.isNotEmpty(rMpMonitorEvaluateDS)) {
this.saveOrUpdateBatchByMultiId(rMpMonitorEvaluateDS, 500);
}
}
// //1、取出规则
// List<PmsAbnormalRules> pmsAbnormalRules = pmsAbnormalRulesMapper.selectList(null);
// String beginDay =LocalDateTimeUtil.format(LocalDateTimeUtil.beginOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
// String endDay = LocalDateTimeUtil.format(LocalDateTimeUtil.endOfDay(LocalDateTimeUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)),DatePattern.NORM_DATETIME_PATTERN);
// //以尺寸1000分片
// List<List<String>> pendingIds = ListUtils.partition(calculatedParam.getIdList(), 100);
// for (List<String> pendingId : pendingIds) {
// List<LineDTO> lineDTOList = commLineClient.getLineDetailBatch(pendingId).getData();
// List<RMpMonitorEvaluateD> rMpMonitorEvaluateDS = new ArrayList<>();
// for (LineDTO lineDTO : lineDTOList) {
// if (ObjectUtil.isNotNull(lineDTO)) {
// /*todo 统计间隔电压等级取值方式后期提供融合版本接口获取不然pmspqs系统取值方式不一样*/
// /*统计间隔*/
// Integer statisticalInterval = lineDTO.getTimeInterval();
// /*电压等级*/
// Double voltage = Double.parseDouble(lineDTO.getVoltageLevel());
// List<DataVFiveItemDTO> fiveItems = dataVInfluxdbService.getFiveItems(lineDTO.getLineId(), beginDay, endDay, statisticalInterval);
// RMpMonitorEvaluateD rMpMonitorEvaluateD = new RMpMonitorEvaluateD();
// rMpMonitorEvaluateD = calculateRMpMonitorEvaluateDPO(rMpMonitorEvaluateD, fiveItems, pmsAbnormalRules, voltage, lineDTO);
// Date date = DateUtil.parse(beginDay);
// DataFlicker twoFlickerData = dataIntegrityRateInfluxService.getTwoFlickerData(lineDTO.getLineId(), date, 5);
// LocalDate localDate = LocalDateTimeUtil.parseDate(beginDay, DatePattern.NORM_DATETIME_PATTERN);
//
// if (Objects.isNull(twoFlickerData)) {
// rMpMonitorEvaluateD.setPltCount(0);
// rMpMonitorEvaluateD.setPstCount(0);
// } else {
// rMpMonitorEvaluateD.setPltCount(twoFlickerData.getPltCount());
// rMpMonitorEvaluateD.setPstCount(twoFlickerData.getPstCount());
// }
// rMpMonitorEvaluateD.setAllMinuteCount(fiveItems.size());
// rMpMonitorEvaluateD.setDeviceId(lineDTO.getDevId());
// rMpMonitorEvaluateD.setDataDate(localDate);
// rMpMonitorEvaluateD.setMeasurementPointId(lineDTO.getLineId());
// rMpMonitorEvaluateDS.add(rMpMonitorEvaluateD);
// }
// }
// if (CollUtil.isNotEmpty(rMpMonitorEvaluateDS)) {
// this.saveOrUpdateBatchByMultiId(rMpMonitorEvaluateDS, 500);
// }
// }
}
@@ -104,105 +104,105 @@ public class RMpMonitorEvaluateDServiceImpl extends MppServiceImpl<RMpMonitorEva
* @Author: clam
* @Date: 2023/2/23
*/
private RMpMonitorEvaluateD calculateRMpMonitorEvaluateDPO(RMpMonitorEvaluateD rMpMonitorEvaluateD, List<DataVFiveItemDTO> fiveItems, List<PmsAbnormalRules> pmsAbnormalRules, Double voltage, LineDTO data) {
Integer freqCount = 0;
Integer unbalanceCount = 0;
Integer phaseVoltageCount = 0;
Integer lineVoltageCount = 0;
Integer vThdCount = 0;
Integer effectiveMinuteCount = 0;
PmsAbnormalRules freqLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_FREQ)).collect(Collectors.toList()).get(0);
PmsAbnormalRules rmsLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_RMS)).collect(Collectors.toList()).get(0);
PmsAbnormalRules rms_lvrLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_RMS_LVR)).collect(Collectors.toList()).get(0);
PmsAbnormalRules v_thdLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_V_THD)).collect(Collectors.toList()).get(0);
PmsAbnormalRules v_unbalanceLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_V_UNBALANCE)).collect(Collectors.toList()).get(0);
if (!CollectionUtils.isEmpty(fiveItems)) {
for (DataVFiveItemDTO fiveItem : fiveItems) {
Double freqMax = fiveItem.getFreqMax();
Double freqMin = fiveItem.getFreqMin();
Double rmsMax = fiveItem.getRmsMax();
Double rmsMin = fiveItem.getRmsMin();
Double vThdMax = fiveItem.getVThdMax();
Double vThdMin = fiveItem.getVThdMin();
Double vUnbalanceMax = fiveItem.getVUnbalanceMax();
Double vUnbalanceMin = fiveItem.getVUnbalanceMin();
Double rmsLvrMax = fiveItem.getRmsLvrMax();
Double rmsLvrMin = fiveItem.getRmsLvrMin();
Boolean rmsflag = false;
Boolean rmsLvrflag = false;
Boolean vUnbalanceflag = false;
freqCount++;
unbalanceCount++;
phaseVoltageCount++;
lineVoltageCount++;
vThdCount++;
effectiveMinuteCount++;
// 先注释掉 校验跑出监测点
// if (freqLimit.getLowerLimit() <= freqMin && freqMax <= freqLimit.getUpperLimit()) {
// freqCount++;
// }
// /*,监测点的接线方式,如果是星形接线这个指标要判断,角形界面则不判断,默认它是正常的*/
// if (Objects.equals("0", data.getPtType())) {
// if (rmsLimit.getLowerLimit() * (voltage / 1.732) <= rmsMin && rmsMax <= rmsLimit.getUpperLimit() * (voltage / 1.732)) {
// phaseVoltageCount++;
// rmsflag = true;
// }
// } else {
// rmsflag = true;
// phaseVoltageCount++;
// }
// if (Objects.equals("1", data.getPtPhaseType())) {
// if (rms_lvrLimit.getLowerLimit() * voltage <= rmsLvrMin && rmsLvrMax <= rms_lvrLimit.getUpperLimit() * voltage) {
// lineVoltageCount++;
// rmsLvrflag = true;
// }
// private RMpMonitorEvaluateD calculateRMpMonitorEvaluateDPO(RMpMonitorEvaluateD rMpMonitorEvaluateD, List<DataVFiveItemDTO> fiveItems, List<PmsAbnormalRules> pmsAbnormalRules, Double voltage, LineDTO data) {
//
// } else {
// rmsLvrflag = true;
// lineVoltageCount++;
// Integer freqCount = 0;
// Integer unbalanceCount = 0;
// Integer phaseVoltageCount = 0;
// Integer lineVoltageCount = 0;
// Integer vThdCount = 0;
// Integer effectiveMinuteCount = 0;
//
// }
// if (Objects.equals("1", data.getPtPhaseType()) && Objects.equals("0", data.getPtType())) {
// if (v_unbalanceLimit.getLowerLimit() <= vUnbalanceMin && vUnbalanceMax <= v_unbalanceLimit.getUpperLimit()
// ) {
// unbalanceCount++;
// vUnbalanceflag = true;
// }
// } else {
// unbalanceCount++;
// vUnbalanceflag = true;
// }
// PmsAbnormalRules freqLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_FREQ)).collect(Collectors.toList()).get(0);
// PmsAbnormalRules rmsLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_RMS)).collect(Collectors.toList()).get(0);
// PmsAbnormalRules rms_lvrLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_RMS_LVR)).collect(Collectors.toList()).get(0);
// PmsAbnormalRules v_thdLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_V_THD)).collect(Collectors.toList()).get(0);
// PmsAbnormalRules v_unbalanceLimit = pmsAbnormalRules.stream().filter(temp -> Objects.equals(temp.getTarget(), Param.TARGET_V_UNBALANCE)).collect(Collectors.toList()).get(0);
// if (!CollectionUtils.isEmpty(fiveItems)) {
// for (DataVFiveItemDTO fiveItem : fiveItems) {
// Double freqMax = fiveItem.getFreqMax();
// Double freqMin = fiveItem.getFreqMin();
//
// Double rmsMax = fiveItem.getRmsMax();
// Double rmsMin = fiveItem.getRmsMin();
// Double vThdMax = fiveItem.getVThdMax();
// Double vThdMin = fiveItem.getVThdMin();
//
// if (v_thdLimit.getLowerLimit() <= vThdMin && vThdMax <= v_thdLimit.getUpperLimit()) {
// vThdCount++;
// }
// Double vUnbalanceMax = fiveItem.getVUnbalanceMax();
// Double vUnbalanceMin = fiveItem.getVUnbalanceMin();
// Double rmsLvrMax = fiveItem.getRmsLvrMax();
// Double rmsLvrMin = fiveItem.getRmsLvrMin();
//
// Boolean rmsflag = false;
// Boolean rmsLvrflag = false;
// Boolean vUnbalanceflag = false;
//
// if (freqLimit.getLowerLimit() <= freqMin && freqMax <= freqLimit.getUpperLimit() &&
// rmsflag &&
// rmsLvrflag &&
// v_thdLimit.getLowerLimit() <= vThdMin && vThdMax <= v_thdLimit.getUpperLimit() &&
// vUnbalanceflag
// freqCount++;
// unbalanceCount++;
// phaseVoltageCount++;
// lineVoltageCount++;
// vThdCount++;
// effectiveMinuteCount++;
// // 先注释掉 校验跑出监测点
//// if (freqLimit.getLowerLimit() <= freqMin && freqMax <= freqLimit.getUpperLimit()) {
//// freqCount++;
//// }
//// /*,监测点的接线方式,如果是星形接线这个指标要判断,角形界面则不判断,默认它是正常的*/
//// if (Objects.equals("0", data.getPtType())) {
//// if (rmsLimit.getLowerLimit() * (voltage / 1.732) <= rmsMin && rmsMax <= rmsLimit.getUpperLimit() * (voltage / 1.732)) {
//// phaseVoltageCount++;
//// rmsflag = true;
//// }
//// } else {
//// rmsflag = true;
//// phaseVoltageCount++;
//// }
//// if (Objects.equals("1", data.getPtPhaseType())) {
//// if (rms_lvrLimit.getLowerLimit() * voltage <= rmsLvrMin && rmsLvrMax <= rms_lvrLimit.getUpperLimit() * voltage) {
//// lineVoltageCount++;
//// rmsLvrflag = true;
//// }
////
//// } else {
//// rmsLvrflag = true;
//// lineVoltageCount++;
////
//// }
//// if (Objects.equals("1", data.getPtPhaseType()) && Objects.equals("0", data.getPtType())) {
//// if (v_unbalanceLimit.getLowerLimit() <= vUnbalanceMin && vUnbalanceMax <= v_unbalanceLimit.getUpperLimit()
//// ) {
//// unbalanceCount++;
//// vUnbalanceflag = true;
//// }
//// } else {
//// unbalanceCount++;
//// vUnbalanceflag = true;
//// }
////
////
//// if (v_thdLimit.getLowerLimit() <= vThdMin && vThdMax <= v_thdLimit.getUpperLimit()) {
//// vThdCount++;
//// }
////
////
//// if (freqLimit.getLowerLimit() <= freqMin && freqMax <= freqLimit.getUpperLimit() &&
//// rmsflag &&
//// rmsLvrflag &&
//// v_thdLimit.getLowerLimit() <= vThdMin && vThdMax <= v_thdLimit.getUpperLimit() &&
//// vUnbalanceflag
////
//// ) {
//// effectiveMinuteCount++;
//// }
// }
// }
//
// ) {
// effectiveMinuteCount++;
// }
}
}
rMpMonitorEvaluateD.setEffectiveMinuteCount(effectiveMinuteCount);
rMpMonitorEvaluateD.setFreqCount(freqCount);
rMpMonitorEvaluateD.setPhaseVoltageCount(phaseVoltageCount);
rMpMonitorEvaluateD.setLineVoltageCount(lineVoltageCount);
rMpMonitorEvaluateD.setVThdCount(vThdCount);
rMpMonitorEvaluateD.setUnbalanceCount(unbalanceCount);
return rMpMonitorEvaluateD;
}
// rMpMonitorEvaluateD.setEffectiveMinuteCount(effectiveMinuteCount);
// rMpMonitorEvaluateD.setFreqCount(freqCount);
// rMpMonitorEvaluateD.setPhaseVoltageCount(phaseVoltageCount);
// rMpMonitorEvaluateD.setLineVoltageCount(lineVoltageCount);
// rMpMonitorEvaluateD.setVThdCount(vThdCount);
// rMpMonitorEvaluateD.setUnbalanceCount(unbalanceCount);
// return rMpMonitorEvaluateD;
// }
}