From a44b8f23480c88badf41a185949ad5414e9dd63b Mon Sep 17 00:00:00 2001 From: wr <1754607820@qq.com> Date: Wed, 28 Feb 2024 10:26:01 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=8F=98=E7=94=B5=E7=AB=99=E8=B6=85=E6=A0=87?= =?UTF-8?q?=E7=BB=9F=E8=AE=A1=E7=AE=97=E6=B3=95=E7=BC=96=E5=86=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/njcn/prepare/ExecutionCenter.java | 38 +++++++- .../executor/OrgSubStationExecutor.java | 43 +++++++++ .../RStatSubstationVoltageController.java | 2 +- .../area/mapping/RMpTargetWarnDMapper.xml | 14 +-- .../Impl/area/RStatHarmonicServiceImpl.java | 45 +++++---- .../RStatSubstationVoltageMPOService.java | 7 +- .../RStatSubstationVoltageMPOServiceImpl.java | 91 +++++++++++++------ 7 files changed, 178 insertions(+), 62 deletions(-) create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgSubStationExecutor.java diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/ExecutionCenter.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/ExecutionCenter.java index 2f0443971..c1895d3dc 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/ExecutionCenter.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/ExecutionCenter.java @@ -391,6 +391,42 @@ public class ExecutionCenter extends BaseController { } } - + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @ApiOperation("单位变电站算法执行链") + @PostMapping("/orgSubStationExecutor") + @Async("asyncExecutor") + public void orgSubStationExecutor(@RequestBody BaseParam baseParam) { + String methodDescribe = getMethodDescribe("orgSubStationExecutor"); + //手动判断参数是否合法, + CalculatedParam calculatedParam = judgeExecuteParam(baseParam); + // 测点索引 + DeptGetLineParam deptGetLineParam = new DeptGetLineParam(); + if (CollectionUtils.isEmpty(calculatedParam.getIdList())) { + Dept data = deptFeignClient.getRootDept().getData(); + deptGetLineParam.setDeptId(data.getId()); + List data1 = commTerminalGeneralClient.deptGetSubStationInfo(deptGetLineParam).getData(); + calculatedParam.setIdList(data1); + } + LiteflowResponse liteflowResponse; + if (baseParam.isRepair()) { + //补招时,起始日期、截止日期必填 + DateTime startDate = DateUtil.parse(baseParam.getBeginTime(), DatePattern.NORM_DATE_FORMAT); + DateTime endDate = DateUtil.parse(baseParam.getEndTime(), DatePattern.NORM_DATE_FORMAT); + long betweenDay = DateUtil.betweenDay(startDate, endDate, true); + //递增日期执行算法链 + for (int i = 0; i < betweenDay; i++) { + if (i != 0) { + startDate = DateUtil.offsetDay(startDate, 1); + } + calculatedParam.setDataDate(DateUtil.format(startDate, DatePattern.NORM_DATE_PATTERN)); + liteflowResponse = flowExecutor.execute2Resp("orgSub_station", calculatedParam); + dealResponse(calculatedParam, liteflowResponse, methodDescribe); + } + } else { + //非补招 + liteflowResponse = flowExecutor.execute2Resp("orgSub_station", calculatedParam); + dealResponse(calculatedParam, liteflowResponse, methodDescribe); + } + } } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgSubStationExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgSubStationExecutor.java new file mode 100644 index 000000000..5871d8c16 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/OrgSubStationExecutor.java @@ -0,0 +1,43 @@ +package com.njcn.prepare.executor; + +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.line.PollutionService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationService; +import com.njcn.prepare.harmonic.service.mysql.newalgorithm.RStatSubstationVoltageMPOService; +import com.njcn.prepare.harmonic.service.mysql.send.ConverterDetailStatisticsPOService; +import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadSubstationStatisticalDataDService; +import com.yomahub.liteflow.annotation.LiteflowComponent; +import com.yomahub.liteflow.annotation.LiteflowMethod; +import com.yomahub.liteflow.core.NodeComponent; +import com.yomahub.liteflow.enums.LiteFlowMethodEnum; +import com.yomahub.liteflow.enums.NodeTypeEnum; +import lombok.RequiredArgsConstructor; + +import java.util.Objects; + +/** + * @Description: + * @Author: wr + * @Date: 2024/2/27 13:50 + */ +@LiteflowComponent +@RequiredArgsConstructor +public class OrgSubStationExecutor extends BaseExecutor{ + + + private final RStatSubstationVoltageMPOService rStatSubstationVoltageMPOService; + + + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatSubstationVoltage", nodeType = NodeTypeEnum.COMMON) + public boolean rStatSubstationVoltageAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatSubstationVoltage", nodeType = NodeTypeEnum.COMMON) + public void rStatSubstationVoltageProcess(NodeComponent bindCmp) { + String tag = bindCmp.getTag(); + CalculatedParam calculatedParam = bindCmp.getRequestData(); + if (Objects.equals(tag,"r_stat_substation_voltage_m")){ + rStatSubstationVoltageMPOService.handler(calculatedParam); + } + } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatSubstationVoltageController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatSubstationVoltageController.java index 7e9ff6b22..7354ac323 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatSubstationVoltageController.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/newalgorithm/RStatSubstationVoltageController.java @@ -74,7 +74,7 @@ public class RStatSubstationVoltageController extends BaseController { List data = commTerminalGeneralClient.deptSubStation(deptGetLineParam).getData(); long start = System.currentTimeMillis(); - service.handler(data,orgParam.getDataDate(),orgParam.getType()); +// service.handler(data,orgParam.getDataDate(),orgParam.getType()); long end = System.currentTimeMillis(); System.out.println("该方法总耗时为 ---> "+(end-start)); return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpTargetWarnDMapper.xml b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpTargetWarnDMapper.xml index 18610f159..c61318c7c 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpTargetWarnDMapper.xml +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/area/mapping/RMpTargetWarnDMapper.xml @@ -29,19 +29,19 @@ #{startTime} dataDate, measurement_point_id measurementPointId, case when sum(is_v_dev_warn) > 0 then 1 else 0 end vdevAlarmInfo, - sum(is_v_dev_warn)/count(distinct data_date) vdevSeverity, + ROUND( (sum(is_v_dev_warn)/count(distinct data_date))*100,2) vdevSeverity, case when sum(is_freq_warn) > 0 then 1 else 0 end freqAlarmInfo, - sum(is_freq_warn)/count(distinct data_date) freqSeverity, + ROUND( (sum(is_freq_warn)/count(distinct data_date))*100,2) freqSeverity, case when sum(is_unbalance_warn) > 0 then 1 else 0 end unbalanceAlarmInfo, - sum(is_unbalance_warn)/count(distinct data_date) unbalanceSeverity, + ROUND( (sum(is_unbalance_warn)/count(distinct data_date))*100,2) unbalanceSeverity, case when sum(is_v_warn) > 0 then 1 else 0 end vAlarmInfo, - sum(is_v_warn)/count(distinct data_date) vSeverity, + ROUND( (sum(is_v_warn)/count(distinct data_date))*100,2) vSeverity, case when sum(is_flicker_warn) > 0 then 1 else 0 end flickerAlarmInfo, - sum(is_flicker_warn)/count(distinct data_date) flickerSeverity, + ROUND( (sum(is_flicker_warn)/count(distinct data_date))*100,2) flickerSeverity, case when sum(is_sag_warn) > 0 then 1 else 0 end sagAlarmInfo, - sum(is_sag_warn)/count(distinct data_date) sagSeverity, + ROUND( (sum(is_sag_warn)/count(distinct data_date))*100,2) sagSeverity, case when sum(is_interrupt_warn) > 0 then 1 else 0 end interruptAlarmInfo, - sum(is_interrupt_warn)/count(distinct data_date) interruptSeverity, + ROUND( (sum(is_interrupt_warn)/count(distinct data_date))*100,2)interruptSeverity, sum(is_v_dev_warn)/count(distinct data_date)+sum(is_freq_warn)/count(distinct data_date)+sum(is_unbalance_warn)/count(distinct data_date)+sum(is_v_warn)/count(distinct data_date)+sum(is_flicker_warn)/count(distinct data_date) harmonicTypeGradeTotal, diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java index 8780e7631..b3376e464 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatHarmonicServiceImpl.java @@ -243,13 +243,13 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); queryWrapper.clear(); - queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); rMpSurplusHarmonicDetailMQueryWrapper.clear(); - rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); @@ -318,13 +318,13 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); queryWrapper.clear(); - queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); rMpSurplusHarmonicDetailMQueryWrapper.clear(); - rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); @@ -431,14 +431,14 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); queryWrapper.clear(); - queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); rMpSurplusHarmonicDetailMQueryWrapper.clear(); - rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); @@ -498,7 +498,8 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { } else { String value = df.format((float) rStatHarmonicQPO.getOverLimitMeasurementAccrued() / rStatOrgQPO.getEffectiveMeasurementAccrued()); - rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(Double.parseDouble(value)); + double v1 = Double.parseDouble(value); + rStatHarmonicQPO.setOverLimitMeasurementRatioAccrued(v1); } rStatHarmonicQPOList.add(rStatHarmonicQPO); }); @@ -514,14 +515,14 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); queryWrapper.clear(); - queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); rMpSurplusHarmonicDetailMQueryWrapper.clear(); - rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); @@ -638,14 +639,14 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); queryWrapper.clear(); - queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); rMpSurplusHarmonicDetailMQueryWrapper.clear(); - rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); @@ -721,14 +722,14 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList()); queryWrapper.clear(); - queryWrapper.select("freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). + queryWrapper.select("measurement_point_id","freq_over_day", "v_dev_over_day", "v_over_day", "i_over_day", "unbalance_over_day", "i_neg_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); rMpSurplusHarmonicDetailMQueryWrapper.clear(); - rMpSurplusHarmonicDetailMQueryWrapper.select("flicker_over_day", "inuharm_over_day"). + rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day"). in("measurement_point_id", collect1). between("data_date",begin,end); List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper); @@ -1429,31 +1430,29 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService { private Integer getOverLimitMeasurementAccruedTime(DictData dictData, List rMpPartHarmonicDetailMS, List rMpSurplusHarmonicDetailMS) { Integer value = 0; if (Objects.equals(dictData.getCode(),DicDataEnum.VOLTAGE_DEV.getCode())) { - value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getVDevOverDay()>0).count()+""); + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getVDevOverDay()>0).map(RMpPartHarmonicDetailM::getMeasurementPointId).distinct().count()+""); } if (Objects.equals(dictData.getCode(),DicDataEnum.FLICKER.getCode())) { - value = Integer.valueOf(rMpSurplusHarmonicDetailMS.stream().filter(temp ->temp.getFlickerOverDay()>0).count()+""); + value = Integer.valueOf(rMpSurplusHarmonicDetailMS.stream().filter(temp ->temp.getFlickerOverDay()>0).map(RMpSurplusHarmonicDetailM::getMeasurementPointId).distinct().count()+""); } if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_VOLTAGE.getCode())) { - value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getVOverDay()>0).count()+""); + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getVOverDay()>0).map(RMpPartHarmonicDetailM::getMeasurementPointId).distinct().count()+""); } if (Objects.equals(dictData.getCode(),DicDataEnum.HARMONIC_CURRENT.getCode())) { - value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getIOverDay()>0).count()+""); + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getIOverDay()>0).map(RMpPartHarmonicDetailM::getMeasurementPointId).distinct().count()+""); } if (Objects.equals(dictData.getCode(),DicDataEnum.INTERHARMONIC_VOLTAGE.getCode())) { - value = Integer.valueOf(rMpSurplusHarmonicDetailMS.stream().filter(temp ->temp.getInuharmOverDay()>0).count()+""); + value = Integer.valueOf(rMpSurplusHarmonicDetailMS.stream().filter(temp ->temp.getInuharmOverDay()>0).map(RMpSurplusHarmonicDetailM::getMeasurementPointId).distinct().count()+""); } if (Objects.equals(dictData.getCode(),DicDataEnum.PHASE_VOLTAGE.getCode())) { - value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getUnbalanceOverDay()>0).count()+""); + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getUnbalanceOverDay()>0).map(RMpPartHarmonicDetailM::getMeasurementPointId).distinct().count()+""); } if (Objects.equals(dictData.getCode(),DicDataEnum.FREQUENCY_DEV.getCode())) { - value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getFreqOverDay()>0).count()+""); - + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getFreqOverDay()>0).map(RMpPartHarmonicDetailM::getMeasurementPointId).distinct().count()+""); } if (Objects.equals(dictData.getCode(),DicDataEnum.NEG_CURRENT.getCode())) { - value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getINegOverDay()>0).count()+""); + value = Integer.valueOf(rMpPartHarmonicDetailMS.stream().filter(temp ->temp.getINegOverDay()>0).map(RMpPartHarmonicDetailM::getMeasurementPointId).distinct().count()+""); } - return value; } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatSubstationVoltageMPOService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatSubstationVoltageMPOService.java index dcffff9ef..370a1f6b0 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatSubstationVoltageMPOService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/RStatSubstationVoltageMPOService.java @@ -2,13 +2,13 @@ package com.njcn.prepare.harmonic.service.mysql.newalgorithm; import com.github.jeffreyning.mybatisplus.service.IMppService; import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.mysql.po.RStatSubstationVoltageMPO; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; /** - * * Description: * Date: 2023/8/4 14:57【需求编号】 * @@ -16,7 +16,6 @@ import java.util.List; * @version V1.0.0 */ public interface RStatSubstationVoltageMPOService extends IMppService { + void handler(CalculatedParam calculatedParam); - - void handler(List data, String dataDate, Integer type); - } +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationVoltageMPOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationVoltageMPOServiceImpl.java index 45339a197..4cc6714ff 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationVoltageMPOServiceImpl.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/newalgorithm/impl/RStatSubstationVoltageMPOServiceImpl.java @@ -1,11 +1,26 @@ package com.njcn.prepare.harmonic.service.mysql.newalgorithm.impl; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.date.LocalDateTimeUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; import com.njcn.device.biz.pojo.dto.DeptGetSubStationDTO; import com.njcn.device.biz.pojo.dto.LineDevGetBandDTO; import com.njcn.device.biz.pojo.dto.LineDevGetDTO; +import com.njcn.device.biz.pojo.dto.SubGetBase; +import com.njcn.harmonic.pojo.po.RMpEventDetailMPO; +import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailM; +import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; import com.njcn.prepare.harmonic.pojo.po.RStatSubstationMPO; +import com.njcn.prepare.harmonic.service.mysql.line.RMpEventDetailMService; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.text.SimpleDateFormat; @@ -29,37 +44,61 @@ import org.springframework.util.CollectionUtils; * @version V1.0.0 */ @Service +@RequiredArgsConstructor +@Slf4j public class RStatSubstationVoltageMPOServiceImpl extends MppServiceImpl implements RStatSubstationVoltageMPOService{ + private final RMpPartHarmonicDetailMMapper rMpPartHarmonicDetailMMapper; + private final RMpEventDetailMService rMpEventDetailMService; + @Override - public void handler(List data, String dataDate, Integer type) { - List result = new ArrayList<>(); - Date date = DateUtil.parse(dataDate); - LocalDate localDate = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); - - - - List zwList = new ArrayList<>(); - List pwList = new ArrayList<>(); - - for (DeptGetSubStationDTO datum : data) { - if (!CollectionUtils.isEmpty(datum.getStationIds())) { - zwList.addAll(datum.getStationIds()); - } - if (!CollectionUtils.isEmpty(datum.getPwStationIds())) { - pwList.addAll(datum.getPwStationIds()); + public void handler(CalculatedParam calculatedParam) { + DateTime begin = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)); + //变电站id集合 + List idList = calculatedParam.getIdList(); + List result=new ArrayList<>(); + RStatSubstationVoltageMPO po; + QueryWrapper queryWrapper = new QueryWrapper<>(); + QueryWrapper queryWrapper2 = new QueryWrapper<>(); + //单位 + for (DeptGetSubStationDTO.Info info : idList) { + List stationIds = info.getStationIds(); + //根据电压等级进行分组 + Map> subMap = stationIds.stream().collect(Collectors.groupingBy(SubGetBase::getVoltageLevel)); + for (Map.Entry> stringListEntry : subMap.entrySet()) { + po=new RStatSubstationVoltageMPO(); + po.setOrgNo(info.getUnitId()); + po.setDataDate(begin); + po.setSubstationVoltage(stringListEntry.getKey()); + po.setSubstationCount(stringListEntry.getValue().size()); + Integer harmonicCount=0; + Integer eventCount=0; + for (SubGetBase subGetBase : stringListEntry.getValue()) { + queryWrapper.clear(); + queryWrapper.select("measurement_over_day") + .in("measurement_point_id",subGetBase.getUnitChildrenList()) + .between("data_date",begin,end); + List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper); + long count = rMpPartHarmonicDetailMS.stream().filter(x -> x.getMeasurementOverDay() > 0).count(); + if(count>0){ + harmonicCount=harmonicCount+1; + } + queryWrapper2.clear(); + queryWrapper2.in("measurement_point_id",subGetBase.getUnitChildrenList()) + .between("data_date",begin,end); + List list = rMpEventDetailMService.list(queryWrapper2); + long count1 = list.stream().filter(x -> x.getSagTimes() > 0 || x.getSwellTimes() > 0 || x.getInterruptTimes() > 0).count(); + if(count1>0){ + eventCount=eventCount+1; + } + } + po.setHarmonicCount(harmonicCount); + po.setEventCount(eventCount); + result.add(po); } + } - - zwList.addAll(pwList); - List resultL = zwList.stream().distinct().collect(Collectors.toList()); - - if (!CollectionUtils.isEmpty(resultL)) { - resultL.forEach(temp->{ - - }); - } - if (!CollectionUtils.isEmpty(result)) { this.saveOrUpdateBatchByMultiId(result, 500); }