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

View File

@@ -120,10 +120,7 @@ public class RmpEventDetailPO implements Serializable {
private LocalDateTime createTime; private LocalDateTime createTime;
private Double transientValue;
@ApiModelProperty(value = "用于计算数量") @ApiModelProperty(value = "用于计算数量")
@TableField(exist = false)
@Transient @Transient
private Integer count; private Integer count;