微调
This commit is contained in:
@@ -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 统计间隔,电压等级取值方式后期提供融合版本接口获取不然pms,pqs系统取值方式不一样*/
|
||||
/*统计间隔*/
|
||||
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 统计间隔,电压等级取值方式后期提供融合版本接口获取不然pms,pqs系统取值方式不一样*/
|
||||
// /*统计间隔*/
|
||||
// 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()) {
|
||||
// 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++;
|
||||
// }
|
||||
// /*,监测点的接线方式,如果是星形接线这个指标要判断,角形界面则不判断,默认它是正常的*/
|
||||
// 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()) {
|
||||
// phaseVoltageCount++;
|
||||
// lineVoltageCount++;
|
||||
// vThdCount++;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// if (freqLimit.getLowerLimit() <= freqMin && freqMax <= freqLimit.getUpperLimit() &&
|
||||
// rmsflag &&
|
||||
// rmsLvrflag &&
|
||||
// v_thdLimit.getLowerLimit() <= vThdMin && vThdMax <= v_thdLimit.getUpperLimit() &&
|
||||
// vUnbalanceflag
|
||||
//
|
||||
// ) {
|
||||
// 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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -120,10 +120,7 @@ public class RmpEventDetailPO implements Serializable {
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private Double transientValue;
|
||||
|
||||
@ApiModelProperty(value = "用于计算数量")
|
||||
@TableField(exist = false)
|
||||
@Transient
|
||||
private Integer count;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user