From e1b8cbf63984cf9996fbe1f2eb2abe0bca358f39 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=9B=A8=E6=9C=A8c?= <857448963@qq.com> Date: Mon, 29 Jan 2024 09:00:59 +0800 Subject: [PATCH] =?UTF-8?q?1.pms=E5=8F=98=E7=94=B5=E7=AB=99=E8=83=8C?= =?UTF-8?q?=E6=99=AF=E8=B0=90=E6=B3=A2=E7=AE=97=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/njcn/device/pms/pojo/po/Monitor.java | 2 +- .../pms/pojo/po/RStatBusbarHarmonicYPO.java | 14 +- .../pms/pojo/vo/RStatBusbarHarmonicYVO.java | 3 +- .../ledgerManger/CommTerminalController.java | 14 ++ .../PmsDistributionMonitorController.java | 34 ---- .../ledgerManger/CommTerminalService.java | 5 + .../impl/CommTerminalServiceImpl.java | 21 +++ .../IDistributionMonitorService.java | 10 -- .../impl/DistributionMonitorServiceImpl.java | 98 ----------- .../njcn/prepare/executor/BusBarExecutor.java | 18 ++ .../busbar/StationBusBarReportMapper.java | 14 ++ .../busbar/IStationBusBarReportService.java | 18 ++ .../impl/StationBusBarReportServiceImpl.java | 162 ++++++++++++++++++ .../mysql/day/IRStatDataFlickerDService.java | 4 +- 14 files changed, 271 insertions(+), 146 deletions(-) create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/busbar/StationBusBarReportMapper.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/busbar/IStationBusBarReportService.java create mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/busbar/impl/StationBusBarReportServiceImpl.java diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java index 061db35da..3811c28ce 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/Monitor.java @@ -67,7 +67,7 @@ public class Monitor extends BaseEntity { /** - * 监测线路名称 + * 监测母线名称 */ private String lineName; diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/RStatBusbarHarmonicYPO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/RStatBusbarHarmonicYPO.java index 58f98b121..50e2bb7e1 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/RStatBusbarHarmonicYPO.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/po/RStatBusbarHarmonicYPO.java @@ -1,8 +1,13 @@ package com.njcn.device.pms.pojo.po; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.github.jeffreyning.mybatisplus.anno.MppMultiId; import lombok.Data; import java.io.Serializable; +import java.time.LocalDate; import java.util.Date; /** @@ -12,16 +17,19 @@ import java.util.Date; * @since 2022-11-03 14:16:47 */ @Data +@TableName(value="r_stat_busbar_harmonic_y") public class RStatBusbarHarmonicYPO implements Serializable { private static final long serialVersionUID = 1L; /** * 母线ID */ + @MppMultiId private String busbarId; /** * 生成数据的时间,每年统计一次 */ - private Date dataDate; + @MppMultiId + private LocalDate dataDate; /** * 电压有效值最大 */ @@ -37,6 +45,7 @@ public class RStatBusbarHarmonicYPO implements Serializable { /** * 电压有效值95概率大值 */ + @TableField(value = "v_effective_95") private Double vEffective95; /** * 电压总谐波畸变率最大 @@ -53,6 +62,7 @@ public class RStatBusbarHarmonicYPO implements Serializable { /** * 电压总谐波畸变率95概率大值 */ + @TableField(value = "v_thd_95") private Double vThd95; /** * 三相电压不平衡最大 @@ -69,6 +79,7 @@ public class RStatBusbarHarmonicYPO implements Serializable { /** * 三相电压不平衡95概率大值 */ + @TableField(value = "unbalance_95") private Double unbalance95; /** * 闪变最大 @@ -85,6 +96,7 @@ public class RStatBusbarHarmonicYPO implements Serializable { /** * 闪变95概率大值 */ + @TableField(value = "flicker_95") private Double flicker95; } diff --git a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/RStatBusbarHarmonicYVO.java b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/RStatBusbarHarmonicYVO.java index 7e58df637..5df603c2c 100644 --- a/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/RStatBusbarHarmonicYVO.java +++ b/pqs-device/pms-device/pms-device-api/src/main/java/com/njcn/device/pms/pojo/vo/RStatBusbarHarmonicYVO.java @@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.io.Serializable; +import java.time.LocalDate; import java.util.Date; /** @@ -65,7 +66,7 @@ public class RStatBusbarHarmonicYVO implements Serializable { * 生成数据的时间,每年统计一次 */ @ApiModelProperty(name = "dataDate", value = "生成数据的时间,每年统计一次") - private Date dataDate; + private LocalDate dataDate; /** * 电压有效最大值 diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/CommTerminalController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/CommTerminalController.java index 752111350..175df80fe 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/CommTerminalController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/CommTerminalController.java @@ -363,6 +363,20 @@ public class CommTerminalController extends BaseController { return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, result, methodDescribe); } + /** + * pms获取指定单位下面的母线以及母线下面的监测点信息 + * @author cdf + * @date 2024/1/26 + */ + @OperateInfo(info = LogEnum.BUSINESS_COMMON) + @GetMapping("/getBusBarAndHisMonitor") + @ApiOperation("pms获取指定单位下面的母线以及母线下面的监测点信息") + public HttpResult> getBusBarAndHisMonitor() { + String methodDescribe = getMethodDescribe("getBusBarAndHisMonitor"); + List busBarAndHisMonitorDTOList = commTerminalService.getBusBarAndHisMonitor(); + return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, busBarAndHisMonitorDTOList, methodDescribe); + } + /** * 用于返回pq 还是pms系统 diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsDistributionMonitorController.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsDistributionMonitorController.java index c24884f12..e3d577e7b 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsDistributionMonitorController.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/controller/ledgerManger/PmsDistributionMonitorController.java @@ -281,40 +281,6 @@ public class PmsDistributionMonitorController extends BaseController { } - /** - * 批量同步台区到配网表 - * @author cdf - * @date 2023/7/24 - */ - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/batchOpDistributionArea") - @ApiOperation("批量同步台区到配网表") - public HttpResult batchOpDistributionArea() { - String methodDescribe = getMethodDescribe("batchOpDistributionArea"); - boolean result = iDistributionMonitorService.batchOpDistributionArea(); - if(result){ - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); - } - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.FAIL, null, methodDescribe); - - } - - - /** - * 批量给配网监测点录入单位id - * @author cdf - * @date 2023/9/20 - */ - @OperateInfo(info = LogEnum.BUSINESS_COMMON) - @PostMapping("/disMonitorWriteOrgId") - @ApiOperation("批量修改配网里的单位") - public HttpResult disMonitorWriteOrgId() { - String methodDescribe = getMethodDescribe("disMonitorWriteOrgId"); - iDistributionMonitorService.disMonitorWriteOrgId(); - return HttpResultUtil.assembleCommonResponseResult(CommonResponseEnum.SUCCESS, null, methodDescribe); - - } - @ApiOperation(value = "将用户数据导入到配网表中") @PostMapping("/savePmsDistributionUser") public HttpResult savePmsDistributionUser() { diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/CommTerminalService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/CommTerminalService.java index ea0f6d914..6f9ea1a7f 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/CommTerminalService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/CommTerminalService.java @@ -1,9 +1,11 @@ package com.njcn.device.pms.service.ledgerManger; import com.njcn.common.pojo.param.StatisticsBizBaseParam; +import com.njcn.common.pojo.response.HttpResult; import com.njcn.device.biz.pojo.dto.StatisticsMonitor; import com.njcn.device.biz.pojo.dto.*; import com.njcn.device.biz.pojo.param.DeptGetLineParam; +import org.springframework.web.bind.annotation.RequestParam; import java.util.List; import java.util.Map; @@ -103,4 +105,7 @@ public interface CommTerminalService { * @date 2023/10/23 */ Map getCustomDetailByLineId(String id); + + + List getBusBarAndHisMonitor(); } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java index d83c0c2cb..4a0ab493b 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/ledgerManger/impl/CommTerminalServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjUtil; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.njcn.common.pojo.enums.common.DataStateEnum; import com.njcn.common.pojo.enums.common.ServerEnum; import com.njcn.common.pojo.enums.response.CommonResponseEnum; import com.njcn.common.pojo.exception.BusinessException; @@ -768,4 +769,24 @@ public class CommTerminalServiceImpl implements CommTerminalService { return monitorMapper.getCustomDetailByLineId(id); } + @Override + public List getBusBarAndHisMonitor() { + List result = new ArrayList<>(); + DictData dictData = dicDataFeignClient.getDicDataByNameAndTypeName(DicDataTypeEnum.LINE_STATE.getName(),DicDataEnum.RUN.getName()).getData(); + + LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>(); + lambdaQueryWrapper.select(Monitor::getId,Monitor::getLineId).eq(Monitor::getMonitorState,dictData.getId()) + .eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode()); + List monitorList = monitorMapper.selectList(lambdaQueryWrapper); + + Map> busBarMap = monitorList.stream().collect(Collectors.groupingBy(Monitor::getLineId)); + busBarMap.forEach((key,val)->{ + BusBarAndHisMonitorDTO busBarAndHisMonitorDTO = new BusBarAndHisMonitorDTO(); + busBarAndHisMonitorDTO.setBusBarId(key); + busBarAndHisMonitorDTO.setMonitorIds(val.stream().map(Monitor::getId).collect(Collectors.toList())); + result.add(busBarAndHisMonitorDTO); + }); + return result; + } + } diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IDistributionMonitorService.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IDistributionMonitorService.java index 7df4a3a4e..f4750aea0 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IDistributionMonitorService.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/IDistributionMonitorService.java @@ -116,16 +116,6 @@ public interface IDistributionMonitorService extends IMppService getBaseDisMonitorIds(List orgIds,List monitorSortIds); - - /** - * 批量同步台区到配网表 - * @author cdf - * @date 2023/7/24 - */ - Boolean batchOpDistributionArea(); - - Boolean disMonitorWriteOrgId(); - /** * 批量同步发电用户到配网表 * @return diff --git a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/DistributionMonitorServiceImpl.java b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/DistributionMonitorServiceImpl.java index a7650eaa0..7a27deb4c 100644 --- a/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/DistributionMonitorServiceImpl.java +++ b/pqs-device/pms-device/pms-device-boot/src/main/java/com/njcn/device/pms/service/majornetwork/impl/DistributionMonitorServiceImpl.java @@ -464,104 +464,6 @@ public class DistributionMonitorServiceImpl extends MppServiceImpl()); - int calCount = 0; - if (count > 0) { - calCount = count / 10000 + 1; - - for (int i = 0; i < calCount; i++) { - int page = i * 10000; - List powerDistributionareaList = powerDistributionareaMapper.selectList( - new LambdaQueryWrapper() - .select(PowerDistributionarea::getId, - PowerDistributionarea::getState, - PowerDistributionarea::getVoltageLevel, - PowerDistributionarea::getOrgId, - PowerDistributionarea::getPowerStationId, - PowerDistributionarea::getLineId - ) - .last(true, "limit " + page+ ",10000")); - - List poList= new ArrayList<>(); - for(PowerDistributionarea powerDistributionarea:powerDistributionareaList){ - DistributionMonitor distributionMonitor = new DistributionMonitor(); - distributionMonitor.setMonitorSort(dictData.getId()); - distributionMonitor.setMonitorId(powerDistributionarea.getId()); - distributionMonitor.setOrgId(powerDistributionarea.getOrgId()); - distributionMonitor.setStatus(DataStateEnum.ENABLE.getCode()); - distributionMonitor.setMonitorState(powerDistributionarea.getState()); - distributionMonitor.setVoltageLevel(powerDistributionarea.getVoltageLevel()); - distributionMonitor.setCreatedDate(LocalDateTime.now()); - distributionMonitor.setIfPowerUser(0); - distributionMonitor.setPowerStationId(powerDistributionarea.getPowerStationId()); - distributionMonitor.setLineId(powerDistributionarea.getLineId()); - poList.add(distributionMonitor); - - } - this.saveOrUpdateBatchByMultiId(poList); - } - } - - return true; - } - - @Override - public Boolean disMonitorWriteOrgId() { - List distributionMonitorList = this.list(); - if(CollectionUtil.isNotEmpty(distributionMonitorList)){ - Map> map = distributionMonitorList.stream().collect(Collectors.groupingBy(DistributionMonitor::getMonitorSort)); - List po = new ArrayList<>(); - - map.forEach((key,val)->{ - if(key.equals("78a96acb276a5fe9d6eff737fdf1973f")){ - List one = map.get("78a96acb276a5fe9d6eff737fdf1973f"); - List oneIds = one.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList()); - List monitorList = monitorMapper.selectList(new LambdaQueryWrapper().in(Monitor::getId,oneIds)); - - for(Monitor monitor:monitorList){ - DistributionMonitor distributionMonitor = new DistributionMonitor(); - distributionMonitor.setMonitorId(monitor.getId()); - distributionMonitor.setOrgId(monitor.getOrgId()); - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.set(DistributionMonitor::getOrgId,distributionMonitor.getOrgId()).eq(DistributionMonitor::getMonitorId,distributionMonitor.getMonitorId()); - this.update(updateWrapper); - } - - - }else if(key.equals("a5696acb276a5fe9d6eff74fdf1973f")){ - List two = map.get("a5696acb276a5fe9d6eff74fdf1973f"); - List twoIds = two.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList()); - List monitorList = powerDistributionareaMapper.selectList(new LambdaQueryWrapper().in(PowerDistributionarea::getId,twoIds)); - - for(PowerDistributionarea monitor:monitorList){ - DistributionMonitor distributionMonitor = new DistributionMonitor(); - distributionMonitor.setMonitorId(monitor.getId()); - distributionMonitor.setOrgId(monitor.getOrgId()); - LambdaUpdateWrapper updateWrapper = new LambdaUpdateWrapper<>(); - updateWrapper.set(DistributionMonitor::getOrgId,distributionMonitor.getOrgId()).eq(DistributionMonitor::getMonitorId,distributionMonitor.getMonitorId()); - this.update(updateWrapper); - } - - }else { - List two = map.get("a5696acb276a5fe9d6eff74fdf1973f"); - List twoIds = two.stream().map(DistributionMonitor::getMonitorId).distinct().collect(Collectors.toList()); - List monitorList = powerDistributionareaMapper.selectList(new LambdaQueryWrapper().in(PowerDistributionarea::getId,twoIds)); - - } - - - }); - - - } - return true; - } @Override @Transactional(rollbackFor = Exception.class) diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/BusBarExecutor.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/BusBarExecutor.java index 738568d1e..3c2509f19 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/BusBarExecutor.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/executor/BusBarExecutor.java @@ -2,6 +2,7 @@ package com.njcn.prepare.executor; import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO; import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.busbar.IStationBusBarReportService; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageDService; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageMService; import com.njcn.prepare.harmonic.service.mysql.dim.IRDimVoltageYService; @@ -25,6 +26,8 @@ public class BusBarExecutor extends BaseExecutor{ private final IRDimVoltageMService irDimVoltageMService; private final IRDimVoltageYService irDimVoltageYService; + private final IStationBusBarReportService iStationBusBarReportService; + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rBusbarVoltage", nodeType = NodeTypeEnum.COMMON) public boolean rBusbarVoltageAccess(NodeComponent bindCmp) { return isAccess(bindCmp); @@ -51,4 +54,19 @@ public class BusBarExecutor extends BaseExecutor{ } } + + @LiteflowMethod(value = LiteFlowMethodEnum.IS_ACCESS, nodeId = "rStatBusbarHarmonicY", nodeType = NodeTypeEnum.COMMON) + public boolean rStatBusbarHarmonicYAccess(NodeComponent bindCmp) { + return isAccess(bindCmp); + } + @LiteflowMethod(value = LiteFlowMethodEnum.PROCESS, nodeId = "rStatBusbarHarmonicY", nodeType = NodeTypeEnum.COMMON) + public void rStatBusbarHarmonicYProcess(NodeComponent bindCmp) { + CalculatedParam calculatedParam = bindCmp.getRequestData(); + + //年表 + iStationBusBarReportService.handleEveryDayAllYear(calculatedParam); + + + } + } diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/busbar/StationBusBarReportMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/busbar/StationBusBarReportMapper.java new file mode 100644 index 000000000..9458b5ddf --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/busbar/StationBusBarReportMapper.java @@ -0,0 +1,14 @@ +package com.njcn.prepare.harmonic.mapper.mysql.busbar; + +import com.github.jeffreyning.mybatisplus.base.MppBaseMapper; +import com.njcn.device.pms.pojo.po.RStatBusbarHarmonicYPO; +import com.njcn.harmonic.pojo.po.day.RStatComassesDPO; + +/** + * pqs + * + * @author cdf + * @date 2024/1/25 + */ +public interface StationBusBarReportMapper extends MppBaseMapper { +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/busbar/IStationBusBarReportService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/busbar/IStationBusBarReportService.java new file mode 100644 index 000000000..bdf475432 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/busbar/IStationBusBarReportService.java @@ -0,0 +1,18 @@ +package com.njcn.prepare.harmonic.service.mysql.busbar; + +import com.github.jeffreyning.mybatisplus.service.IMppService; +import com.njcn.device.pms.pojo.po.RStatBusbarHarmonicYPO; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; + + +/** + * 变电站母线电压指标 + * @author cdf + * @date 2024/1/25 + */ +public interface IStationBusBarReportService extends IMppService { + + + void handleEveryDayAllYear(CalculatedParam calculatedParam); + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/busbar/impl/StationBusBarReportServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/busbar/impl/StationBusBarReportServiceImpl.java new file mode 100644 index 000000000..5db1cac99 --- /dev/null +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/busbar/impl/StationBusBarReportServiceImpl.java @@ -0,0 +1,162 @@ +package com.njcn.prepare.harmonic.service.mysql.busbar.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.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.github.jeffreyning.mybatisplus.service.MppServiceImpl; +import com.njcn.device.biz.commApi.CommTerminalGeneralClient; +import com.njcn.device.biz.pojo.dto.BusBarAndHisMonitorDTO; +import com.njcn.device.pms.pojo.po.RStatBusbarHarmonicYPO; +import com.njcn.harmonic.pojo.po.RStatDataVD; +import com.njcn.harmonic.pojo.po.day.RStatDataPltDPO; +import com.njcn.harmonic.pojo.po.day.RStatDataVDPO; +import com.njcn.prepare.harmonic.mapper.mysql.busbar.StationBusBarReportMapper; +import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam; +import com.njcn.prepare.harmonic.service.mysql.busbar.IStationBusBarReportService; +import com.njcn.prepare.harmonic.service.mysql.day.IRStatDataPltDService; +import com.njcn.prepare.harmonic.service.mysql.day.IRStatDataVDService; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.util.*; +import java.util.function.Function; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * pqs + * + * @author cdf + * @date 2024/1/25 + */ +@Service +@RequiredArgsConstructor +public class StationBusBarReportServiceImpl extends MppServiceImpl implements IStationBusBarReportService { + + private final CommTerminalGeneralClient commTerminalGeneralClient; + + private final IRStatDataVDService irStatDataVDService; + + private final IRStatDataPltDService irStatDataPltDService; + + @Override + public void handleEveryDayAllYear(CalculatedParam calculatedParam) { + DateTime date = DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN); + String begin = DateUtil.format(DateUtil.beginOfYear(date), DatePattern.NORM_DATE_PATTERN); + List busBatList = commTerminalGeneralClient.getBusBarAndHisMonitor().getData(); + + List resultPoList = new ArrayList<>(); + for (BusBarAndHisMonitorDTO busBarAndHisMonitorDTO : busBatList) { + RStatBusbarHarmonicYPO rStatBusbarHarmonicYPO = new RStatBusbarHarmonicYPO(); + rStatBusbarHarmonicYPO.setBusbarId(busBarAndHisMonitorDTO.getBusBarId()); + rStatBusbarHarmonicYPO.setDataDate(LocalDate.parse(begin)); + + LambdaQueryWrapper vdQuery = new LambdaQueryWrapper<>(); + vdQuery.select(RStatDataVDPO::getLineId, RStatDataVDPO::getPhasicType, RStatDataVDPO::getVThd, RStatDataVDPO::getRms, RStatDataVDPO::getValueType, RStatDataVDPO::getVUnbalance) + .in(RStatDataVDPO::getLineId, busBarAndHisMonitorDTO.getMonitorIds()).between(RStatDataVDPO::getTime, begin, calculatedParam.getDataDate()); + List rStatDataVDPOList = irStatDataVDService.list(vdQuery); + + Map> vMap = rStatDataVDPOList.stream().collect(Collectors.groupingBy(RStatDataVDPO::getValueType)); + if (vMap.containsKey("MAX")) { + List maxList = vMap.get("MAX"); + Double rms = maxList.stream().filter(item -> !item.getPhasicType().equals("T")).map(RStatDataVDPO::getRms).max(Comparator.comparing(Function.identity())).orElse(3.14159); + Double thd = maxList.stream().filter(item -> item.getPhasicType().equals("T")).map(RStatDataVDPO::getVThd).max(Comparator.comparing(Function.identity())).orElse(3.14159); + Double un = maxList.stream().filter(item -> item.getPhasicType().equals("T")).map(RStatDataVDPO::getVUnbalance).max(Comparator.comparing(Function.identity())).orElse(3.14159); + rStatBusbarHarmonicYPO.setVEffectiveMax(rms); + rStatBusbarHarmonicYPO.setVThdMax(thd); + rStatBusbarHarmonicYPO.setUnbalanceMax(un); + }else { + rStatBusbarHarmonicYPO.setVEffectiveMax(3.14159); + rStatBusbarHarmonicYPO.setVThdMax(3.14159); + rStatBusbarHarmonicYPO.setUnbalanceMax(3.14159); + } + + if (vMap.containsKey("MIN")) { + List maxList = vMap.get("MIN"); + Double rms = maxList.stream().filter(item -> !item.getPhasicType().equals("T")).map(RStatDataVDPO::getRms).min(Comparator.comparing(Function.identity())).orElse(3.14159); + Double thd = maxList.stream().filter(item -> item.getPhasicType().equals("T")).map(RStatDataVDPO::getVThd).min(Comparator.comparing(Function.identity())).orElse(3.14159); + Double un = maxList.stream().filter(item -> item.getPhasicType().equals("T")).map(RStatDataVDPO::getVUnbalance).min(Comparator.comparing(Function.identity())).orElse(3.14159); + rStatBusbarHarmonicYPO.setVEffectiveMin(rms); + rStatBusbarHarmonicYPO.setVThdMin(thd); + rStatBusbarHarmonicYPO.setUnbalanceMin(un); + }else { + rStatBusbarHarmonicYPO.setVEffectiveMin(3.14159); + rStatBusbarHarmonicYPO.setVThdMin(3.14159); + rStatBusbarHarmonicYPO.setUnbalanceMin(3.14159); + } + + if (vMap.containsKey("AVG")) { + List maxList = vMap.get("AVG"); + Double rms = maxList.stream().filter(item -> !item.getPhasicType().equals("T")).mapToDouble(RStatDataVDPO::getRms).average().orElse(3.14159); + Double thd = maxList.stream().filter(item -> item.getPhasicType().equals("T")).mapToDouble(RStatDataVDPO::getVThd).average().orElse(3.14159); + Double un = maxList.stream().filter(item -> item.getPhasicType().equals("T")).mapToDouble(RStatDataVDPO::getVUnbalance).average().orElse(3.14159); + rStatBusbarHarmonicYPO.setVEffectiveAvg(rms); + rStatBusbarHarmonicYPO.setVThdAvg(thd); + rStatBusbarHarmonicYPO.setUnbalanceAvg(un); + }else { + rStatBusbarHarmonicYPO.setVEffectiveAvg(3.14159); + rStatBusbarHarmonicYPO.setVThdAvg(3.14159); + rStatBusbarHarmonicYPO.setUnbalanceAvg(3.14159); + } + + if (vMap.containsKey("CP95")) { + List cp95List = vMap.get("CP95"); + Double rms = cp95List.stream().filter(item -> !item.getPhasicType().equals("T")).map(RStatDataVDPO::getRms).max(Comparator.comparing(Function.identity())).orElse(3.14159); + Double thd = cp95List.stream().filter(item -> item.getPhasicType().equals("T")).map(RStatDataVDPO::getVThd).max(Comparator.comparing(Function.identity())).orElse(3.14159); + Double un = cp95List.stream().filter(item -> item.getPhasicType().equals("T")).map(RStatDataVDPO::getVUnbalance).max(Comparator.comparing(Function.identity())).orElse(3.14159); + rStatBusbarHarmonicYPO.setVEffective95(rms); + rStatBusbarHarmonicYPO.setVThd95(thd); + rStatBusbarHarmonicYPO.setUnbalance95(un); + }else { + rStatBusbarHarmonicYPO.setVEffective95(3.14159); + rStatBusbarHarmonicYPO.setVThd95(3.14159); + rStatBusbarHarmonicYPO.setUnbalance95(3.14159); + } + + //长时闪变 + LambdaQueryWrapper pltdQuery = new LambdaQueryWrapper<>(); + pltdQuery.select(RStatDataPltDPO::getPlt,RStatDataPltDPO::getPhaseType,RStatDataPltDPO::getValueType) + .in(RStatDataPltDPO::getLineId, busBarAndHisMonitorDTO.getMonitorIds()).between(RStatDataPltDPO::getTime, begin,calculatedParam.getDataDate()); + List pltList = irStatDataPltDService.list(pltdQuery); + Map> pltMap = pltList.stream().collect(Collectors.groupingBy(RStatDataPltDPO::getValueType)); + if (pltMap.containsKey("MAX")) { + List maxList = pltMap.get("MAX"); + Double plt = maxList.stream().map(RStatDataPltDPO::getPlt).max(Comparator.comparing(Function.identity())).orElse(3.14159); + rStatBusbarHarmonicYPO.setFlickerMax(plt); + }else { + rStatBusbarHarmonicYPO.setFlickerMax(3.14159); + } + if (pltMap.containsKey("MIN")) { + List minList = pltMap.get("MIN"); + Double plt = minList.stream().map(RStatDataPltDPO::getPlt).min(Comparator.comparing(Function.identity())).orElse(3.14159); + rStatBusbarHarmonicYPO.setFlickerMin(plt); + }else { + rStatBusbarHarmonicYPO.setFlickerMin(3.14159); + } + if (pltMap.containsKey("AVG")) { + List maxList = pltMap.get("AVG"); + Double plt = maxList.stream().mapToDouble(RStatDataPltDPO::getPlt).average().orElse(3.14159); + rStatBusbarHarmonicYPO.setFlickerAvg(plt); + }else { + rStatBusbarHarmonicYPO.setFlickerAvg(3.14159); + } + if (pltMap.containsKey("CP95")) { + List cp95List = pltMap.get("CP95"); + Double plt = cp95List.stream().map(RStatDataPltDPO::getPlt).max(Comparator.comparing(Function.identity())).orElse(3.14159); + rStatBusbarHarmonicYPO.setFlicker95(plt); + }else { + rStatBusbarHarmonicYPO.setFlicker95(3.14159); + } + resultPoList.add(rStatBusbarHarmonicYPO); + } + + this.saveOrUpdateBatchByMultiId(resultPoList); + } + + + +} diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/day/IRStatDataFlickerDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/day/IRStatDataFlickerDService.java index b29d33fa0..1a3cbcd87 100644 --- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/day/IRStatDataFlickerDService.java +++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/day/IRStatDataFlickerDService.java @@ -1,10 +1,12 @@ package com.njcn.prepare.harmonic.service.mysql.day; +import com.github.jeffreyning.mybatisplus.service.IMppService; import com.njcn.harmonic.pojo.po.day.RStatDataFlickerDPO; +import com.njcn.harmonic.pojo.po.day.RStatDataVDPO; import java.util.List; -public interface IRStatDataFlickerDService { +public interface IRStatDataFlickerDService extends IMppService { void insert(List list); }