From 1e9644c8a359506d8460d3a07a4332ddecea7831 Mon Sep 17 00:00:00 2001
From: wr <1754607820@qq.com>
Date: Sat, 11 May 2024 16:44:05 +0800
Subject: [PATCH] =?UTF-8?q?1.=E5=9B=BD=E7=BD=91=E4=B8=8A=E9=80=81=E7=BB=9F?=
=?UTF-8?q?=E8=AE=A1=E5=9B=9B=E4=B8=AA=E7=AE=97=E6=B3=95=E4=BF=AE=E6=94=B9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../dim/IRDimBusGlobalDController.java | 3 +-
.../mysql/line/PmsRunStatisticMapper.java | 18 -
.../Impl/area/RStatHarmonicServiceImpl.java | 89 +++--
.../mysql/Impl/area/RStatOrgServiceImpl.java | 23 +-
.../PqTypicalSourceCreatePOServiceImpl.java | 59 ++-
.../upload/IPmsRunStatisticMService.java | 16 +-
.../upload/IPmsRunStatisticYService.java | 15 +-
.../impl/PmsRunStatisticMServiceImpl.java | 11 +-
.../impl/PmsRunStatisticYServiceImpl.java | 8 +
.../RUploadEvaluationDataDServiceImpl.java | 353 +++++++++++-------
...ploadPointStatisticalDataDServiceImpl.java | 179 +++++++--
...SubstationStatisticalDataDServiceImpl.java | 98 ++++-
12 files changed, 612 insertions(+), 260 deletions(-)
delete mode 100644 pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsRunStatisticMapper.java
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java
index f8d2f5e38..5d4bf7dfb 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/controller/dim/IRDimBusGlobalDController.java
@@ -268,7 +268,8 @@ public class IRDimBusGlobalDController extends BaseController {
baseParam.setFullChain(false);
baseParam.setRepair(false);
baseParam.setDataDate(endDate);
- set.add("r_upload_substation_statistical_data_m");
+// set.add("r_upload_substation_statistical_data_m");
+ set.add("r_upload_substation_statistical_data_y");
baseParam.setTagNames(set);
liteFlowFeignClient.substationExecutor(baseParam);
}else if("3".equals(type)){
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsRunStatisticMapper.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsRunStatisticMapper.java
deleted file mode 100644
index 0c481a26d..000000000
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/mapper/mysql/line/PmsRunStatisticMapper.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.njcn.prepare.harmonic.mapper.mysql.line;
-
-
-
-import com.github.jeffreyning.mybatisplus.base.MppBaseMapper;
-import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
-
-/**
- *
- * Mapper 接口
- *
- *
- * @author cdf
- * @since 2024-04-17
- */
-public interface PmsRunStatisticMapper extends MppBaseMapper {
-
-}
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 b3376e464..60db6edb9 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
@@ -1,5 +1,6 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
@@ -13,11 +14,9 @@ import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgMMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgQMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.RStatOrgYMapper;
-import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
-import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailMMapper;
-import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
-import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailMMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.line.*;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.pojo.mysql.po.*;
import com.njcn.prepare.harmonic.service.mysql.area.*;
import com.njcn.prepare.harmonic.utils.PublicUtil;
@@ -65,20 +64,21 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
private final RStatOrgMMapper rStatOrgMMapper;
private final RStatOrgQMapper rStatOrgQMapper;
private final RStatOrgYMapper rStatOrgYMapper;
+ private final ROperatingMonitorDMapper rOperatingMonitorDMapper;
-
- private final
- DicDataFeignClient dicDataFeignClient;
+ private final DicDataFeignClient dicDataFeignClient;
@Override
public void handleDay(CalculatedParam calculatedParam) {
List rStatHarmonicDPOList = new ArrayList<>();
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
+
/*获取监测点类型类型*/
+ QueryWrapper rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
QueryWrapper queryWrapper = new QueryWrapper<>();
QueryWrapper rMpSurplusHarmonicDetailDQueryWrapper = new QueryWrapper<>();
QueryWrapper rStatOrgDPOQueryWrapper = new QueryWrapper<>();
@@ -104,16 +104,24 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
collect.forEach((k, v)->{
List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ /*todo 取有效监测点进行匹配*/
+ rOperatingMonitorDPOQueryWrapper.clear();
+ rOperatingMonitorDPOQueryWrapper.select("measurement_point_id").
+ in("measurement_point_id",collect1).
+ gt("effective_minute_count",0).
+ eq("data_date",localDate);
+ List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper);
+ List effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
queryWrapper.clear();
queryWrapper.select("is_freq","is_v_dev","is_v","is_i","is_unbalance","is_i_neg").
- in("measurement_point_id",collect1).
+ in("measurement_point_id",effLineIds).
eq("data_date",localDate);
List rMpPartHarmonicDetailDS = rMpPartHarmonicDetailDMapper.selectList(queryWrapper);
rMpSurplusHarmonicDetailDQueryWrapper.clear();
rMpSurplusHarmonicDetailDQueryWrapper.select("is_flicker","is_inuharm").
- in("measurement_point_id",collect1).
+ in("measurement_point_id",effLineIds).
eq("data_date",localDate);
List rMpSurplusHarmonicDetailDS = rMpSurplusHarmonicDetailDMapper.selectList(rMpSurplusHarmonicDetailDQueryWrapper);
@@ -213,7 +221,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
-
+ QueryWrapper rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
QueryWrapper queryWrapper = new QueryWrapper<>();
QueryWrapper rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
QueryWrapper rStatOrgMPOQueryWrapper = new QueryWrapper<>();
@@ -241,16 +249,24 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
collect.forEach((k, v) -> {
List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ /*todo 取有效监测点进行匹配*/
+ rOperatingMonitorDPOQueryWrapper.clear();
+ rOperatingMonitorDPOQueryWrapper.select("measurement_point_id").
+ in("measurement_point_id",collect1).
+ gt("effective_minute_count",0).
+ between("data_date",begin,end);
+ List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper);
+ List effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
queryWrapper.clear();
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).
+ in("measurement_point_id", effLineIds).
between("data_date",begin,end);
List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
rMpSurplusHarmonicDetailMQueryWrapper.clear();
rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day").
- in("measurement_point_id", collect1).
+ in("measurement_point_id", effLineIds).
between("data_date",begin,end);
List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
@@ -401,7 +417,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
DateTime end = DateUtil.endOfQuarter(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
LocalDate localDate = LocalDateTimeUtil.parseDate( DateUtil.format(begin, DatePattern.NORM_DATE_PATTERN), DatePattern.NORM_DATE_PATTERN);
-
+ QueryWrapper rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
QueryWrapper queryWrapper = new QueryWrapper<>();
QueryWrapper rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
QueryWrapper rStatOrgQPOQueryWrapper = new QueryWrapper<>();
@@ -429,20 +445,28 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
collect.forEach((k, v) -> {
List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
-
- queryWrapper.clear();
- 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).
+ /*todo 取有效监测点进行匹配*/
+ rOperatingMonitorDPOQueryWrapper.clear();
+ rOperatingMonitorDPOQueryWrapper.select("measurement_point_id").
+ in("measurement_point_id",collect1).
+ gt("effective_minute_count",0).
between("data_date",begin,end);
-
- List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
-
- rMpSurplusHarmonicDetailMQueryWrapper.clear();
- 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);
-
+ List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper);
+ List effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
+ List rMpPartHarmonicDetailMS =new ArrayList<>();
+ List rMpSurplusHarmonicDetailMS=new ArrayList<>();
+ if(CollUtil.isNotEmpty(effLineIds)){
+ queryWrapper.clear();
+ 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", effLineIds).
+ between("data_date",begin,end);
+ rMpPartHarmonicDetailMS.addAll(rMpPartHarmonicDetailMMapper.selectList(queryWrapper));
+ rMpSurplusHarmonicDetailMQueryWrapper.clear();
+ rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day").
+ in("measurement_point_id", effLineIds).
+ between("data_date",begin,end);
+ rMpSurplusHarmonicDetailMS.addAll(rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper));
+ }
rStatOrgQPOQueryWrapper.clear();
rStatOrgQPOQueryWrapper.select("effective_measurement_accrued").
eq("org_no", deptGetChildrenMoreDTO.getUnitId()).
@@ -609,6 +633,7 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
/*获取监测点类型类型*/
+ QueryWrapper rOperatingMonitorDPOQueryWrapper = new QueryWrapper<>();
QueryWrapper queryWrapper = new QueryWrapper<>();
QueryWrapper rMpSurplusHarmonicDetailMQueryWrapper = new QueryWrapper<>();
QueryWrapper rStatOrgYPOQueryWrapper = new QueryWrapper<>();
@@ -637,17 +662,25 @@ public class RStatHarmonicServiceImpl implements RStatHarmonicService {
Map> collect = lineBaseList.stream().collect(Collectors.groupingBy(LineDevGetDTO::getLineTag));
collect.forEach((k, v) -> {
List collect1 = v.stream().map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ /*todo 取有效监测点进行匹配*/
+ rOperatingMonitorDPOQueryWrapper.clear();
+ rOperatingMonitorDPOQueryWrapper.select("measurement_point_id").
+ in("measurement_point_id",collect1).
+ gt("effective_minute_count",0).
+ between("data_date",begin,end);
+ List rOperatingMonitorDPOS = rOperatingMonitorDMapper.selectList(rOperatingMonitorDPOQueryWrapper);
+ List effLineIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
queryWrapper.clear();
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).
+ in("measurement_point_id", effLineIds).
between("data_date",begin,end);
List rMpPartHarmonicDetailMS = rMpPartHarmonicDetailMMapper.selectList(queryWrapper);
rMpSurplusHarmonicDetailMQueryWrapper.clear();
rMpSurplusHarmonicDetailMQueryWrapper.select("measurement_point_id","flicker_over_day", "inuharm_over_day").
- in("measurement_point_id", collect1).
+ in("measurement_point_id", effLineIds).
between("data_date",begin,end);
List rMpSurplusHarmonicDetailMS = rMpSurplusHarmonicDetailMMapper.selectList(rMpSurplusHarmonicDetailMQueryWrapper);
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java
index 9913b37dc..d5617608f 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/Impl/area/RStatOrgServiceImpl.java
@@ -1,5 +1,6 @@
package com.njcn.prepare.harmonic.service.mysql.Impl.area;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
@@ -75,7 +76,6 @@ public class RStatOrgServiceImpl implements RStatOrgService {
DecimalFormat df = new DecimalFormat("0.00");
@Override
-
public void handler(List data, String dataDate, Integer type) {
switch (type) {
case 1:
@@ -549,16 +549,19 @@ public class RStatOrgServiceImpl implements RStatOrgService {
rStatOrgQPO.setEffectiveMeasurementAverage(Double.parseDouble(value));
/*3、3、累计有效接入监测点数*/
- long count = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().count();
- rStatOrgQPO.setEffectiveMeasurementAccrued(Integer.valueOf(count+""));
+ List monitorIds = rOperatingMonitorDPOS.stream().map(ROperatingMonitorDPO::getMeasurementPointId).distinct().collect(Collectors.toList());
+ rStatOrgQPO.setEffectiveMeasurementAccrued(monitorIds.size());
- /*4、日均稳态超标监测点数*/
- rmpTargetWarnDPOQueryWrapper.clear();
- rmpTargetWarnDPOQueryWrapper.select("measurement_point_id").
- in("measurement_point_id",collect1).
- eq("is_harmonic",1).
- between("data_date",begin,end);
- List rMpTargetWarnDPOS = rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper);
+ /*4、日均稳态超标监测点数 TODO 用有效监测点*/
+ List rMpTargetWarnDPOS=new ArrayList<>();
+ if(CollUtil.isNotEmpty(monitorIds)){
+ rmpTargetWarnDPOQueryWrapper.clear();
+ rmpTargetWarnDPOQueryWrapper.select("measurement_point_id").
+ in("measurement_point_id",monitorIds).
+ eq("is_harmonic",1).
+ between("data_date",begin,end);
+ rMpTargetWarnDPOS.addAll(rMpTargetWarnDMapper.selectList(rmpTargetWarnDPOQueryWrapper));
+ }
String value1 = df.format((float)rMpTargetWarnDPOS.size()/ days);
rStatOrgQPO.setHarmonicMeasurementAverage(Double.parseDouble(value1));
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/PqTypicalSourceCreatePOServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/PqTypicalSourceCreatePOServiceImpl.java
index 765585114..c121cd18b 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/PqTypicalSourceCreatePOServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/send/impl/PqTypicalSourceCreatePOServiceImpl.java
@@ -1,11 +1,13 @@
package com.njcn.prepare.harmonic.service.mysql.send.impl;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.date.LocalDateTimeUtil;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
@@ -15,13 +17,19 @@ import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.po.RMpPartHarmonicDetailD;
import com.njcn.harmonic.pojo.po.RMpSurplusHarmonicDetailD;
import com.njcn.harmonic.pojo.po.send.PqTypicalSourceCreatePO;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpPartHarmonicDetailDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.RMpSurplusHarmonicDetailDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.send.PqTypicalSourceCreatePOMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.service.mysql.line.ROperatingMonitorService;
import com.njcn.prepare.harmonic.service.mysql.send.PqTypicalSourceCreatePOService;
+import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
+import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient;
import com.njcn.system.enums.DicDataEnum;
@@ -67,6 +75,10 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl calculatedParam) {
+ List pmsRunStatisticsListD = runStatisticDMapper.selectList(new LambdaQueryWrapper().eq(PmsRunStatisticD::getStatisticDate,calculatedParam.getDataDate()));
+ Map pmsRunStatisticMap = pmsRunStatisticsListD.stream().collect(Collectors.toMap(PmsRunStatisticD::getDeptId,Function.identity()));
+
+
List pqTypicalSourceCreatePOList = new ArrayList<>();
LocalDate localDate = LocalDateTimeUtil.parseDate(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN);
@@ -141,7 +157,17 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl supvVoltageDicList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.DEV_VOLTAGE.getCode()).getData();
Map mapVoltage = supvVoltageDicList.stream().collect(Collectors.toMap(DictData::getId, Function.identity()));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
- List collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ List collect1;
+ if(pmsRunStatisticMap.containsKey(deptGetChildrenMoreDTO.getUnitId())){
+ String typicalOnlineIds = pmsRunStatisticMap.get(deptGetChildrenMoreDTO.getUnitId()).getTypicalOnlineIds();
+ if(StrUtil.isNotBlank(typicalOnlineIds)){
+ collect1 = CollectionUtil.toList(typicalOnlineIds.split(StrUtil.COMMA));
+ }else {
+ collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ }
+ } else {
+ collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ }
List monitorList;
if (!CollectionUtils.isEmpty(collect1)) {
monitorList = monitorClient.getMonitorList(collect1).getData();
@@ -290,6 +316,11 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl pmsRunStatistic = runStatisticMService.selectListByDate(begin, end,calculatedParam.getDataDate());
+ Map pmsRunStatisticMap = pmsRunStatistic.stream().collect(Collectors.toMap(PmsRunStatisticM::getDeptId,Function.identity()));
+
+
+
List sysdictreepo = dictTreeFeignClient.queryAll().getData();
List windfarm_user = Stream.of(
@@ -328,7 +359,17 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
- List collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ List collect1;
+ if(pmsRunStatisticMap.containsKey(deptGetChildrenMoreDTO.getUnitId())){
+ String typicalOnlineIds = pmsRunStatisticMap.get(deptGetChildrenMoreDTO.getUnitId()).getTypicalOnlineIds();
+ if(StrUtil.isNotBlank(typicalOnlineIds)){
+ collect1 = CollectionUtil.toList(typicalOnlineIds.split(StrUtil.COMMA));
+ }else {
+ collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ }
+ } else {
+ collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ }
List monitorList;
if (!CollectionUtils.isEmpty(collect1)) {
monitorList = monitorClient.getMonitorList(collect1).getData();
@@ -450,6 +491,8 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl pmsRunStatistic = runStatisticYService.selectListByDate(begin, end,calculatedParam.getDataDate());
+ Map pmsRunStatisticMap = pmsRunStatistic.stream().collect(Collectors.toMap(PmsRunStatisticY::getDeptId,Function.identity()));
List sysdictreepo = dictTreeFeignClient.queryAll().getData();
@@ -489,7 +532,17 @@ public class PqTypicalSourceCreatePOServiceImpl extends ServiceImpl mapList = deptList.stream().collect(Collectors.toMap(PvTerminalTreeVO::getId, Function.identity()));
for (DeptGetChildrenMoreDTO deptGetChildrenMoreDTO : calculatedParam.getIdList()) {
- List collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ List collect1;
+ if(pmsRunStatisticMap.containsKey(deptGetChildrenMoreDTO.getUnitId())){
+ String typicalOnlineIds = pmsRunStatisticMap.get(deptGetChildrenMoreDTO.getUnitId()).getTypicalOnlineIds();
+ if(StrUtil.isNotBlank(typicalOnlineIds)){
+ collect1 = CollectionUtil.toList(typicalOnlineIds.split(StrUtil.COMMA));
+ }else {
+ collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ }
+ } else {
+ collect1 = deptGetChildrenMoreDTO.getLineBaseList().stream().filter(temp->Objects.equals(temp.getIsUpToGrid(),1)).map(LineDevGetDTO::getPointId).collect(Collectors.toList());
+ }
List monitorList;
if (!CollectionUtils.isEmpty(collect1)) {
monitorList = monitorClient.getMonitorList(collect1).getData();
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IPmsRunStatisticMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IPmsRunStatisticMService.java
index 1db3a273e..9ddebeef4 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IPmsRunStatisticMService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IPmsRunStatisticMService.java
@@ -4,9 +4,11 @@ package com.njcn.prepare.harmonic.service.mysql.upload;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
+import java.util.List;
+
/**
*
- * 服务类
+ * 服务类
*
*
* @author cdf
@@ -15,15 +17,21 @@ import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
public interface IPmsRunStatisticMService extends IMppService {
-
/**
* 每日统计每月
+ *
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunMonth(String date);
-
-
+ /**
+ * @param startTime
+ * @param endTime
+ * @Description: 获取每个月中的最新一天数据
+ * @Author: wr
+ * @Date: 2024/5/9 14:21
+ */
+ List selectListByDate(String startTime, String endTime, String dataDate);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IPmsRunStatisticYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IPmsRunStatisticYService.java
index 6cc51f38d..53536c335 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IPmsRunStatisticYService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/IPmsRunStatisticYService.java
@@ -4,9 +4,11 @@ package com.njcn.prepare.harmonic.service.mysql.upload;
import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
+import java.util.List;
+
/**
*
- * 服务类
+ * 服务类
*
*
* @author cdf
@@ -15,13 +17,20 @@ import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
public interface IPmsRunStatisticYService extends IMppService {
-
-
/**
* 每日统计每年
+ *
* @author cdf
* @date 2024/4/17
*/
void statisticLedgerRunYear(String date);
+ /**
+ * @param startTime
+ * @param endTime
+ * @Description: 获取每个年中的最新一天数据
+ * @Author: wr
+ * @Date: 2024/5/9 14:21
+ */
+ List selectListByDate(String startTime, String endTime, String dataDate);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/PmsRunStatisticMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/PmsRunStatisticMServiceImpl.java
index 1bc6b6bae..f89b545aa 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/PmsRunStatisticMServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/PmsRunStatisticMServiceImpl.java
@@ -7,7 +7,6 @@ import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
-import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticMMapper;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
@@ -23,7 +22,7 @@ import java.util.stream.Collectors;
/**
*
- * 服务实现类
+ * 服务实现类
*
*
* @author cdf
@@ -120,5 +119,13 @@ public class PmsRunStatisticMServiceImpl extends MppServiceImpl selectListByDate(String startTime, String endTime, String dataDate) {
+ return this.list(new LambdaQueryWrapper()
+ .ge(StrUtil.isNotBlank(startTime), PmsRunStatisticM::getStatisticDate, DateUtil.beginOfDay(DateUtil.parse(startTime)))
+ .le(StrUtil.isNotBlank(endTime), PmsRunStatisticM::getStatisticDate, DateUtil.endOfDay(DateUtil.parse(endTime)))
+ .eq(PmsRunStatisticM::getStatDate, dataDate));
+ }
+
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/PmsRunStatisticYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/PmsRunStatisticYServiceImpl.java
index 777671963..bfceaed9b 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/PmsRunStatisticYServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/PmsRunStatisticYServiceImpl.java
@@ -122,4 +122,12 @@ public class PmsRunStatisticYServiceImpl extends MppServiceImpl selectListByDate(String startTime, String endTime, String dataDate) {
+ return this.list(new LambdaQueryWrapper()
+ .ge(StrUtil.isNotBlank(startTime), PmsRunStatisticY::getStatisticDate, DateUtil.beginOfDay(DateUtil.parse(startTime)))
+ .le(StrUtil.isNotBlank(endTime), PmsRunStatisticY::getStatisticDate, DateUtil.endOfDay(DateUtil.parse(endTime)))
+ .eq(PmsRunStatisticY::getStatDate, dataDate));
+ }
+
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java
index ae565e663..d0f229546 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadEvaluationDataDServiceImpl.java
@@ -1,32 +1,37 @@
package com.njcn.prepare.harmonic.service.mysql.upload.impl;
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.commApi.CommTerminalGeneralClient;
-import com.njcn.device.biz.pojo.dto.DeptGetBase;
-import com.njcn.device.biz.pojo.dto.DeptGetBusBarDTO;
-import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
-import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
+import com.njcn.device.biz.pojo.dto.*;
import com.njcn.device.biz.pojo.param.DeptGetLineParam;
import com.njcn.device.pms.pojo.po.GeneratrixWire;
import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.harmonic.pojo.dto.LineDataDto;
import com.njcn.harmonic.pojo.po.dim.RDimVoltageD;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import com.njcn.harmonic.pojo.po.upload.RUploadEvaluationDataD;
import com.njcn.prepare.harmonic.enums.UploadEnum;
import com.njcn.prepare.harmonic.mapper.mysql.dim.GeneratrixWireMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsMidLedgerMapper;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimVoltageDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.line.PmsMonitorMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadEvaluationDataDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.dto.BusBarDto;
+import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
+import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadEvaluationDataDService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.enums.DicDataEnum;
@@ -65,38 +70,60 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl calculatedParam) {
List result = new ArrayList<>();
final Double defaultValue = 3.1415926;
- //获取监测点信息
- List list1 = this.getPmsMonitor();
+ //首先获取pms_run_statistic表是否存在执行日期的数据
+ List pmsRunStatisticsListD = runStatisticDMapper.selectList(new LambdaQueryWrapper().eq(PmsRunStatisticD::getStatisticDate, calculatedParam.getDataDate()));
+
//获取中台母线信息
List list2 = this.getBusBarInfo();
//获取灿能母线信息
- List list3 = this.getCnBusBarInfo(list1);
+ List list3;
+ if (CollUtil.isNotEmpty(pmsRunStatisticsListD)) {
+ List wireIds = pmsRunStatisticsListD.stream()
+ .filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds()))
+ .flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(wireIds)){
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
+ .in(GeneratrixWire::getId, wireIds);
+ list3 = generatrixWireMapper.selectList(lambdaQueryWrapper);
+ }else{
+ List list1 = this.getPmsMonitor();
+ list3 = this.getCnBusBarInfo(list1);
+ }
+ } else {
+ //获取监测点信息
+ List list1 = this.getPmsMonitor();
+ list3 = this.getCnBusBarInfo(list1);
+ }
//获取单位下各电压等级数据
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
Dept data = deptFeignClient.getRootDept().getData();
deptGetLineParam.setDeptId(data.getId());
List barDto = commTerminalGeneralClient.deptBusBar(deptGetLineParam).getData();
- List busBarList = this.getBusBarNum(list3,list2,barDto);
- List allDept = this.getAllDeptLineNum(busBarList,deptGetLineParam);
+ List busBarList = this.getBusBarNum(list3, list2, barDto);
+ List allDept = this.getAllDeptLineNum(busBarList, deptGetLineParam);
//获取省级单位id
String provinceId = deptFeignClient.getDepSonIdByDeptId(data.getId()).getData().get(0);
Dept dept = deptFeignClient.getDeptById(provinceId).getData();
//获取所有单位
List deptList = deptFeignClient.getAllDept().getData();
- Map> deptMap = deptList.stream().collect(Collectors.groupingBy(Dept::getCode));
+ Map> deptMap = deptList.stream().collect(Collectors.groupingBy(Dept::getCode));
List list = calculatedParam.getIdList();
- list.forEach(item->{
- if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()),item.getDeptLevel())
+ list.forEach(item -> {
+ if (Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_1.getCode()), item.getDeptLevel())
//市数据
//|| Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_3.getCode()),item.getDeptLevel())
//县数据
- || Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()),item.getDeptLevel())){
+ || Objects.equals(Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()), item.getDeptLevel())) {
return;
}
RUploadEvaluationDataD rUploadEvaluationDataD = new RUploadEvaluationDataD();
@@ -107,74 +134,75 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImplObjects.equals(o.getOrgId(),item.getUnitId())).findFirst().orElse(null);
+ BusBarDto busBarDto = allDept.stream().filter(o -> Objects.equals(o.getOrgId(), item.getUnitId())).findFirst().orElse(null);
/*** 计算无电压等级的数据*/
- RUploadEvaluationDataD dto = this.getLineNum(busBarDto,"0");
+ RUploadEvaluationDataD dto = this.getLineNum(busBarDto, "0");
//电压
- RUploadEvaluationDataD dto1 = this.channelData(rUploadEvaluationDataD,defaultValue,defaultValue,UploadEnum.INDEX_TYPE_01.getCode(),0,"0",dto);
+ RUploadEvaluationDataD dto1 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_01.getCode(), 0, "0", dto);
result.add(dto1);
//长时间闪变
- RUploadEvaluationDataD dto2 = this.channelData(rUploadEvaluationDataD,defaultValue,defaultValue,UploadEnum.INDEX_TYPE_02.getCode(),0,"0",dto);
+ RUploadEvaluationDataD dto2 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_02.getCode(), 0, "0", dto);
result.add(dto2);
//三相电压不平衡
- RUploadEvaluationDataD dto3 = this.channelData(rUploadEvaluationDataD,defaultValue,defaultValue,UploadEnum.INDEX_TYPE_03.getCode(),0,"0",dto);
+ RUploadEvaluationDataD dto3 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_03.getCode(), 0, "0", dto);
result.add(dto3);
//电压总谐波畸变率
- RUploadEvaluationDataD dto4 = this.channelData(rUploadEvaluationDataD,defaultValue,defaultValue,UploadEnum.INDEX_TYPE_04.getCode(),0,"0",dto);
+ RUploadEvaluationDataD dto4 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_04.getCode(), 0, "0", dto);
result.add(dto4);
//各次谐波电压
- this.channelHarmonicData(rUploadEvaluationDataD,result,null,UploadEnum.INDEX_TYPE_05.getCode(),"0",dto,null);
+ this.channelHarmonicData(rUploadEvaluationDataD, result, null, UploadEnum.INDEX_TYPE_05.getCode(), "0", dto, null);
//负序电流
- RUploadEvaluationDataD dto6 = this.channelData(rUploadEvaluationDataD,defaultValue,defaultValue,UploadEnum.INDEX_TYPE_06.getCode(),0,"0",dto);
+ RUploadEvaluationDataD dto6 = this.channelData(rUploadEvaluationDataD, defaultValue, defaultValue, UploadEnum.INDEX_TYPE_06.getCode(), 0, "0", dto);
result.add(dto6);
/*** 计算分电压等级的数据*/
- if (CollUtil.isNotEmpty(busBarDto.getVoltageChild())){
- busBarDto.getVoltageChild().forEach(item2->{
- RDimVoltageD rDimVoltageD = this.getDimVoltageData(item.getUnitId(),calculatedParam.getDataDate(),item2.getVoltageLevel());
+ if (CollUtil.isNotEmpty(busBarDto.getVoltageChild())) {
+ busBarDto.getVoltageChild().forEach(item2 -> {
+ RDimVoltageD rDimVoltageD = this.getDimVoltageData(item.getUnitId(), calculatedParam.getDataDate(), item2.getVoltageLevel());
- RUploadEvaluationDataD dto0 = this.getLineNum(busBarDto,item2.getVoltageLevel());
+ RUploadEvaluationDataD dto0 = this.getLineNum(busBarDto, item2.getVoltageLevel());
//电压
- double sd1 = this.getDimVoltageDataSd(item2.getVoltageLevel(),Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getV(),calculatedParam.getDataDate(),item.getLineBaseList(),UploadEnum.INDEX_TYPE_01.getCode(),null);
- RUploadEvaluationDataD dto11 = this.channelData(rUploadEvaluationDataD,Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getV(),sd1,UploadEnum.INDEX_TYPE_01.getCode(),0,item2.getVoltageLevel(),dto0);
+ double sd1 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getV(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_01.getCode(), null);
+ RUploadEvaluationDataD dto11 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getV(), sd1, UploadEnum.INDEX_TYPE_01.getCode(), 0, item2.getVoltageLevel(), dto0);
result.add(dto11);
//长时间闪变
- double sd2 = this.getDimVoltageDataSd(item2.getVoltageLevel(),Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getPst(),calculatedParam.getDataDate(),item.getLineBaseList(),UploadEnum.INDEX_TYPE_02.getCode(),null);
- RUploadEvaluationDataD dto22 = this.channelData(rUploadEvaluationDataD,Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getPst(),sd2,UploadEnum.INDEX_TYPE_02.getCode(),0,item2.getVoltageLevel(),dto0);
+ double sd2 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getPst(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_02.getCode(), null);
+ RUploadEvaluationDataD dto22 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getPst(), sd2, UploadEnum.INDEX_TYPE_02.getCode(), 0, item2.getVoltageLevel(), dto0);
result.add(dto22);
//三相电压不平衡
- double sd3 = this.getDimVoltageDataSd(item2.getVoltageLevel(),Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getVUnbalance(),calculatedParam.getDataDate(),item.getLineBaseList(),UploadEnum.INDEX_TYPE_03.getCode(),null);
- RUploadEvaluationDataD dto33 = this.channelData(rUploadEvaluationDataD,Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getVUnbalance(),sd3,UploadEnum.INDEX_TYPE_03.getCode(),0,item2.getVoltageLevel(),dto0);
+ double sd3 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVUnbalance(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_03.getCode(), null);
+ RUploadEvaluationDataD dto33 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVUnbalance(), sd3, UploadEnum.INDEX_TYPE_03.getCode(), 0, item2.getVoltageLevel(), dto0);
result.add(dto33);
//电压总谐波畸变率
- double sd4 = this.getDimVoltageDataSd(item2.getVoltageLevel(),Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getVThd(),calculatedParam.getDataDate(),item.getLineBaseList(),UploadEnum.INDEX_TYPE_04.getCode(),null);
- RUploadEvaluationDataD dto44 = this.channelData(rUploadEvaluationDataD,Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getVThd(),sd4,UploadEnum.INDEX_TYPE_04.getCode(),0,item2.getVoltageLevel(),dto0);
+ double sd4 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVThd(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_04.getCode(), null);
+ RUploadEvaluationDataD dto44 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getVThd(), sd4, UploadEnum.INDEX_TYPE_04.getCode(), 0, item2.getVoltageLevel(), dto0);
result.add(dto44);
//各次谐波电压
List valueList = new ArrayList<>();
- if (!Objects.isNull(rDimVoltageD)){
- valueList = Arrays.asList(rDimVoltageD.getV2(),rDimVoltageD.getV3(),rDimVoltageD.getV4(),rDimVoltageD.getV5(),rDimVoltageD.getV6(),rDimVoltageD.getV7(),rDimVoltageD.getV8(),rDimVoltageD.getV9(),rDimVoltageD.getV10()
- ,rDimVoltageD.getV11(),rDimVoltageD.getV12(),rDimVoltageD.getV13(),rDimVoltageD.getV14(),rDimVoltageD.getV15(),rDimVoltageD.getV16(),rDimVoltageD.getV17(),rDimVoltageD.getV18(),rDimVoltageD.getV19(),rDimVoltageD.getV20()
- ,rDimVoltageD.getV21(),rDimVoltageD.getV22(),rDimVoltageD.getV23(),rDimVoltageD.getV24(),rDimVoltageD.getV25(),rDimVoltageD.getV26(),rDimVoltageD.getV27(),rDimVoltageD.getV28(),rDimVoltageD.getV29(),rDimVoltageD.getV30()
- ,rDimVoltageD.getV31(),rDimVoltageD.getV32(),rDimVoltageD.getV33(),rDimVoltageD.getV34(),rDimVoltageD.getV35(),rDimVoltageD.getV36(),rDimVoltageD.getV37(),rDimVoltageD.getV38(),rDimVoltageD.getV39(),rDimVoltageD.getV40()
- ,rDimVoltageD.getV41(),rDimVoltageD.getV42(),rDimVoltageD.getV43(),rDimVoltageD.getV44(),rDimVoltageD.getV45(),rDimVoltageD.getV46(),rDimVoltageD.getV47(),rDimVoltageD.getV48(),rDimVoltageD.getV49(),rDimVoltageD.getV50());
+ if (!Objects.isNull(rDimVoltageD)) {
+ valueList = Arrays.asList(rDimVoltageD.getV2(), rDimVoltageD.getV3(), rDimVoltageD.getV4(), rDimVoltageD.getV5(), rDimVoltageD.getV6(), rDimVoltageD.getV7(), rDimVoltageD.getV8(), rDimVoltageD.getV9(), rDimVoltageD.getV10()
+ , rDimVoltageD.getV11(), rDimVoltageD.getV12(), rDimVoltageD.getV13(), rDimVoltageD.getV14(), rDimVoltageD.getV15(), rDimVoltageD.getV16(), rDimVoltageD.getV17(), rDimVoltageD.getV18(), rDimVoltageD.getV19(), rDimVoltageD.getV20()
+ , rDimVoltageD.getV21(), rDimVoltageD.getV22(), rDimVoltageD.getV23(), rDimVoltageD.getV24(), rDimVoltageD.getV25(), rDimVoltageD.getV26(), rDimVoltageD.getV27(), rDimVoltageD.getV28(), rDimVoltageD.getV29(), rDimVoltageD.getV30()
+ , rDimVoltageD.getV31(), rDimVoltageD.getV32(), rDimVoltageD.getV33(), rDimVoltageD.getV34(), rDimVoltageD.getV35(), rDimVoltageD.getV36(), rDimVoltageD.getV37(), rDimVoltageD.getV38(), rDimVoltageD.getV39(), rDimVoltageD.getV40()
+ , rDimVoltageD.getV41(), rDimVoltageD.getV42(), rDimVoltageD.getV43(), rDimVoltageD.getV44(), rDimVoltageD.getV45(), rDimVoltageD.getV46(), rDimVoltageD.getV47(), rDimVoltageD.getV48(), rDimVoltageD.getV49(), rDimVoltageD.getV50());
}
- this.channelHarmonicData(rUploadEvaluationDataD,result,valueList,UploadEnum.INDEX_TYPE_05.getCode(),item2.getVoltageLevel(),dto0,item.getLineBaseList());
+ this.channelHarmonicData(rUploadEvaluationDataD, result, valueList, UploadEnum.INDEX_TYPE_05.getCode(), item2.getVoltageLevel(), dto0, item.getLineBaseList());
//负序电流
- double sd6 = this.getDimVoltageDataSd(item2.getVoltageLevel(),Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getINeg(),calculatedParam.getDataDate(),item.getLineBaseList(),UploadEnum.INDEX_TYPE_06.getCode(),null);
- RUploadEvaluationDataD dto66 = this.channelData(rUploadEvaluationDataD,Objects.isNull(rDimVoltageD)?defaultValue:rDimVoltageD.getINeg(),sd6,UploadEnum.INDEX_TYPE_06.getCode(),0,item2.getVoltageLevel(),dto0);
+ double sd6 = this.getDimVoltageDataSd(item2.getVoltageLevel(), Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getINeg(), calculatedParam.getDataDate(), item.getLineBaseList(), UploadEnum.INDEX_TYPE_06.getCode(), null);
+ RUploadEvaluationDataD dto66 = this.channelData(rUploadEvaluationDataD, Objects.isNull(rDimVoltageD) ? defaultValue : rDimVoltageD.getINeg(), sd6, UploadEnum.INDEX_TYPE_06.getCode(), 0, item2.getVoltageLevel(), dto0);
result.add(dto66);
});
}
});
- if (CollUtil.isNotEmpty(result)){
- this.saveOrUpdateBatchByMultiId(result,1000);
+ if (CollUtil.isNotEmpty(result)) {
+ this.saveOrUpdateBatchByMultiId(result, 1000);
}
}
/**
* 通过日表取平均值,作为月表数据
+ *
* @param calculatedParam
*/
@Override
@@ -186,14 +214,33 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl list = this.baseMapper.evaluationMonthData(beginMonth,startTime,endTime,"02");
+ List list = this.baseMapper.evaluationMonthData(beginMonth, startTime, endTime, "02");
- //获取监测点信息
- List list1 = this.getPmsMonitor();
+ List pmsRunStatisticsList = runStatisticMService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
//获取中台母线信息
List list2 = this.getBusBarInfo();
//获取灿能母线信息
- List list3 = this.getCnBusBarInfo(list1);
+ List list3;
+
+ if (CollUtil.isNotEmpty(pmsRunStatisticsList)) {
+ List wireIds = pmsRunStatisticsList.stream()
+ .filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds()))
+ .flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(wireIds)){
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
+ .in(GeneratrixWire::getId, wireIds);
+ list3 = generatrixWireMapper.selectList(lambdaQueryWrapper);
+ }else{
+ List list1 = this.getPmsMonitor();
+ list3 = this.getCnBusBarInfo(list1);
+ }
+ } else {
+ //获取监测点信息
+ List list1 = this.getPmsMonitor();
+ list3 = this.getCnBusBarInfo(list1);
+ }
+
//获取单位下各电压等级数据
DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
@@ -203,25 +250,25 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl busBarList = new ArrayList<>();
- for(DeptGetBusBarDTO deptGetBusBarDTO : barDto){
+ for (DeptGetBusBarDTO deptGetBusBarDTO : barDto) {
BusBarDto busBarDto = new BusBarDto();
busBarDto.setOrgId(deptGetBusBarDTO.getUnitId());
- Integer online = (int)list3.stream().map(GeneratrixWire::getId).filter(id ->deptGetBusBarDTO.getBusBarIds().contains(id)).distinct().count();
+ Integer online = (int) list3.stream().map(GeneratrixWire::getId).filter(id -> deptGetBusBarDTO.getBusBarIds().contains(id)).distinct().count();
busBarDto.setAllMonitorBusNum(online);
- Integer all = (int)list2.stream().filter(item->deptGetBusBarDTO.getUnitChildrenList().contains(item.getSectionId())).count();
+ Integer all = (int) list2.stream().filter(item -> deptGetBusBarDTO.getUnitChildrenList().contains(item.getSectionId())).count();
busBarDto.setAllOnlineBusNum(all);
- if(all>0){
- busBarDto.setAllMonitorRate(BigDecimal.valueOf((double) online/all).setScale(4,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
+ if (all > 0) {
+ busBarDto.setAllMonitorRate(BigDecimal.valueOf((double) online / all).setScale(4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
}
busBarList.add(busBarDto);
}
- Map mapBus = busBarList.stream().collect(Collectors.toMap(BusBarDto::getOrgId, Function.identity()));
+ Map mapBus = busBarList.stream().collect(Collectors.toMap(BusBarDto::getOrgId, Function.identity()));
- if (CollUtil.isNotEmpty(list)){
+ if (CollUtil.isNotEmpty(list)) {
- list.forEach(item->{
+ list.forEach(item -> {
item.setId(IdUtil.simpleUUID());
item.setComputeDate(calculatedParam.getDataDate());
@@ -250,48 +297,17 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl calculatedParam) {
- //获取监测点信息
- List list1 = this.getPmsMonitor();
- //获取中台母线信息
- List list2 = this.getBusBarInfo();
- //获取灿能母线信息
- List list3 = this.getCnBusBarInfo(list1);
-
- //获取单位下各电压等级数据
- DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
- Dept data = deptFeignClient.getRootDept().getData();
- deptGetLineParam.setDeptId(data.getId());
- List barDto = commTerminalGeneralClient.deptBusBar(deptGetLineParam).getData();
-
-
- List busBarList = new ArrayList<>();
- for(DeptGetBusBarDTO deptGetBusBarDTO : barDto){
- BusBarDto busBarDto = new BusBarDto();
- busBarDto.setOrgId(deptGetBusBarDTO.getUnitId());
- Integer online = (int)list3.stream().map(GeneratrixWire::getId).filter(id ->deptGetBusBarDTO.getBusBarIds().contains(id)).distinct().count();
- busBarDto.setAllMonitorBusNum(online);
- Integer all = (int)list2.stream().filter(item->deptGetBusBarDTO.getUnitChildrenList().contains(item.getSectionId())).count();
- busBarDto.setAllOnlineBusNum(all);
-
- if(all>0){
- busBarDto.setAllMonitorRate(BigDecimal.valueOf((double) online/all).setScale(4,RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
- }
- busBarList.add(busBarDto);
- }
- Map mapBus = busBarList.stream().collect(Collectors.toMap(BusBarDto::getOrgId, Function.identity()));
-
-
-
//开始年
String begin = DateUtil.format(DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_YEAR_PATTERN)), DatePattern.NORM_YEAR_PATTERN);
//起始时间
@@ -299,9 +315,58 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl list = this.baseMapper.evaluationMonthData(begin,startTime,endTime,"01");
- if (CollUtil.isNotEmpty(list)){
- list.forEach(item->{
+ List list = this.baseMapper.evaluationMonthData(begin, startTime, endTime, "01");
+
+ List pmsRunStatisticsList = runStatisticYService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
+
+ //获取中台母线信息
+ List list2 = this.getBusBarInfo();
+ //获取灿能母线信息
+ List list3;
+ if (CollUtil.isNotEmpty(pmsRunStatisticsList)) {
+ List wireIds = pmsRunStatisticsList.stream()
+ .filter(x -> StrUtil.isNotBlank(x.getOnlineBusIds()))
+ .flatMap(x -> CollectionUtil.toList(x.getOnlineBusIds().split(StrUtil.COMMA)).stream()).distinct().collect(Collectors.toList());
+ if(CollUtil.isNotEmpty(wireIds)){
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
+ .in(GeneratrixWire::getId, wireIds);
+ list3 = generatrixWireMapper.selectList(lambdaQueryWrapper);
+ }else{
+ List list1 = this.getPmsMonitor();
+ list3 = this.getCnBusBarInfo(list1);
+ }
+ } else {
+ //获取监测点信息
+ List list1 = this.getPmsMonitor();
+ list3 = this.getCnBusBarInfo(list1);
+ }
+
+ //获取单位下各电压等级数据
+ DeptGetLineParam deptGetLineParam = new DeptGetLineParam();
+ Dept data = deptFeignClient.getRootDept().getData();
+ deptGetLineParam.setDeptId(data.getId());
+ List barDto = commTerminalGeneralClient.deptBusBar(deptGetLineParam).getData();
+
+
+ List busBarList = new ArrayList<>();
+ for (DeptGetBusBarDTO deptGetBusBarDTO : barDto) {
+ BusBarDto busBarDto = new BusBarDto();
+ busBarDto.setOrgId(deptGetBusBarDTO.getUnitId());
+ Integer online = (int) list3.stream().map(GeneratrixWire::getId).filter(id -> deptGetBusBarDTO.getBusBarIds().contains(id)).distinct().count();
+ busBarDto.setAllMonitorBusNum(online);
+ Integer all = (int) list2.stream().filter(item -> deptGetBusBarDTO.getUnitChildrenList().contains(item.getSectionId())).count();
+ busBarDto.setAllOnlineBusNum(all);
+
+ if (all > 0) {
+ busBarDto.setAllMonitorRate(BigDecimal.valueOf((double) online / all).setScale(4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100)).doubleValue());
+ }
+ busBarList.add(busBarDto);
+ }
+ Map mapBus = busBarList.stream().collect(Collectors.toMap(BusBarDto::getOrgId, Function.identity()));
+
+ if (CollUtil.isNotEmpty(list)) {
+ list.forEach(item -> {
item.setId(IdUtil.simpleUUID());
item.setComputeDate(calculatedParam.getDataDate());
@@ -329,7 +394,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl getPmsMonitor() {
List dicDataList = dicDataFeignClient.getDicDataByTypeCode(DicDataTypeEnum.LINE_STATE.getCode()).getData();
- DictData dictData = dicDataList.stream().filter(o->Objects.equals(o.getCode(), DicDataEnum.RUN.getCode())).findFirst().orElse(null);
+ DictData dictData = dicDataList.stream().filter(o -> Objects.equals(o.getCode(), DicDataEnum.RUN.getCode())).findFirst().orElse(null);
LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(Monitor::getStatus, DataStateEnum.ENABLE.getCode())
- .eq(Monitor::getIsUpToGrid,DataStateEnum.ENABLE.getCode())
- .eq(Monitor::getMonitorState,dictData.getId());
+ .eq(Monitor::getIsUpToGrid, DataStateEnum.ENABLE.getCode())
+ .eq(Monitor::getMonitorState, dictData.getId());
return pmsMonitorMapper.selectList(lambdaQueryWrapper);
}
@@ -367,7 +432,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl lineList = list.stream().map(Monitor::getLineId).collect(Collectors.toList());
LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(GeneratrixWire::getStatus, DataStateEnum.ENABLE.getCode())
- .in(GeneratrixWire::getId,lineList);
+ .in(GeneratrixWire::getId, lineList);
return generatrixWireMapper.selectList(lambdaQueryWrapper);
}
@@ -377,7 +442,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl getBusBarNum(List list1, List list2, List dto) {
List result = new ArrayList<>();
//中台母线
- Map> midMap = list2.stream().collect(Collectors.groupingBy(PmsMidLedger::getSectionId));
+ Map> midMap = list2.stream().collect(Collectors.groupingBy(PmsMidLedger::getSectionId));
for (DeptGetBusBarDTO item : dto) {
int count = 0;
List childList = new ArrayList<>();
@@ -385,31 +450,31 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl l1 = midMap.get(item.getUnitId());
- if (CollUtil.isNotEmpty(l1)){
+ if (CollUtil.isNotEmpty(l1)) {
dto1.setAllOnlineBusNum(l1.size());
- Map> voltageMap = l1.stream().collect(Collectors.groupingBy(PmsMidLedger::getVoltageLevel));
+ Map> voltageMap = l1.stream().collect(Collectors.groupingBy(PmsMidLedger::getVoltageLevel));
for (String key : voltageMap.keySet()) {
BusBarDto.VoltageChild voltageChild = new BusBarDto.VoltageChild();
List l2 = voltageMap.get(key).stream().map(PmsMidLedger::getId).collect(Collectors.toList());
voltageChild.setVoltageLevel(key);
voltageChild.setOnlineBusNum(l2.size());
//匹配wire母线表数量
- if (CollUtil.isNotEmpty(item.getBusBarIds())){
- List l3 = list1.stream().filter(o->item.getBusBarIds().contains(o.getId())).collect(Collectors.toList());
- if (CollUtil.isNotEmpty(l3)){
+ if (CollUtil.isNotEmpty(item.getBusBarIds())) {
+ List l3 = list1.stream().filter(o -> item.getBusBarIds().contains(o.getId())).collect(Collectors.toList());
+ if (CollUtil.isNotEmpty(l3)) {
voltageChild.setMonitorBusNum(l3.size());
}
} else {
voltageChild.setMonitorBusNum(0);
}
- voltageChild.setMonitorRate(voltageChild.getMonitorBusNum()*100.0/voltageChild.getOnlineBusNum());
+ voltageChild.setMonitorRate(voltageChild.getMonitorBusNum() * 100.0 / voltageChild.getOnlineBusNum());
childList.add(voltageChild);
// count = count + voltageChild.getMonitorBusNum();
count = voltageChild.getMonitorBusNum();
}
dto1.setAllMonitorBusNum(count);
dto1.setVoltageChild(childList);
- dto1.setAllMonitorRate(dto1.getAllMonitorRate()*100/l1.size());
+ dto1.setAllMonitorRate(dto1.getAllMonitorRate() * 100 / l1.size());
}
result.add(dto1);
}
@@ -423,35 +488,35 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl result = new ArrayList<>();
//获取所有部门信息
List deptList = commTerminalGeneralClient.getDeptChildrenByParent(deptGetLineParam).getData();
- deptList.forEach(item->{
- int count1 = 0,count2 = 0;
+ deptList.forEach(item -> {
+ int count1 = 0, count2 = 0;
List children = new ArrayList<>();
List child = new ArrayList<>();
BusBarDto busBarDto = new BusBarDto();
busBarDto.setOrgId(item.getUnitId());
//获取当前部门下 包含母线数量的部门
- List newList = list.stream().filter(o->item.getUnitChildrenList().contains(o.getOrgId())).collect(Collectors.toList());
- if (CollUtil.isNotEmpty(newList)){
+ List newList = list.stream().filter(o -> item.getUnitChildrenList().contains(o.getOrgId())).collect(Collectors.toList());
+ if (CollUtil.isNotEmpty(newList)) {
for (BusBarDto it : newList) {
count1 = count1 + it.getAllMonitorBusNum();
count2 = count2 + it.getAllOnlineBusNum();
- if (CollUtil.isNotEmpty(it.getVoltageChild())){
+ if (CollUtil.isNotEmpty(it.getVoltageChild())) {
child.addAll(it.getVoltageChild());
}
}
busBarDto.setAllMonitorBusNum(count1);
busBarDto.setAllOnlineBusNum(count2);
- busBarDto.setAllMonitorRate(count2==0?0.0:count1*100/count2);
- if (CollUtil.isNotEmpty(child)){
- Map> map = child.stream().collect(Collectors.groupingBy(BusBarDto.VoltageChild::getVoltageLevel));
- map.forEach((k,v)->{
+ busBarDto.setAllMonitorRate(count2 == 0 ? 0.0 : count1 * 100 / count2);
+ if (CollUtil.isNotEmpty(child)) {
+ Map> map = child.stream().collect(Collectors.groupingBy(BusBarDto.VoltageChild::getVoltageLevel));
+ map.forEach((k, v) -> {
BusBarDto.VoltageChild c1 = new BusBarDto.VoltageChild();
c1.setVoltageLevel(k);
int monitorBusNum = (int) v.stream().mapToDouble(BusBarDto.VoltageChild::getMonitorBusNum).average().getAsDouble();
c1.setMonitorBusNum(monitorBusNum);
int online = (int) v.stream().mapToDouble(BusBarDto.VoltageChild::getOnlineBusNum).average().getAsDouble();
c1.setOnlineBusNum(online);
- c1.setMonitorRate(online==0.0?0:monitorBusNum*100.0/online);
+ c1.setMonitorRate(online == 0.0 ? 0 : monitorBusNum * 100.0 / online);
children.add(c1);
});
busBarDto.setVoltageChild(children);
@@ -467,10 +532,10 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl list = dto2.getVoltageChild();
- if (CollUtil.isNotEmpty(list)){
- list.forEach(item->{
+ if (CollUtil.isNotEmpty(list)) {
+ list.forEach(item -> {
// if (Objects.equals(item.getVoltageLevel(),voltage)){
// dto.setMonitorBusNum(item.getMonitorBusNum());
// dto.setOnlineBusNum(item.getOnlineBusNum());
@@ -483,7 +548,7 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl deptList, Map> map) {
+ public void judgeLevel(Integer level, RUploadEvaluationDataD rUploadEvaluationDataD, String id, String name, List deptList, Map> map) {
String result = "";
- if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_2.getCode()))){
+ if (Objects.equals(level, Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_2.getCode()))) {
result = UploadEnum.STATISTICAL_LEVEL_3.getCode();
rUploadEvaluationDataD.setCityId("");
rUploadEvaluationDataD.setCountyId("");
- } else if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_3.getCode()))) {
+ } else if (Objects.equals(level, Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_3.getCode()))) {
result = UploadEnum.STATISTICAL_LEVEL_4.getCode();
rUploadEvaluationDataD.setCityId(id);
rUploadEvaluationDataD.setCityName(name);
rUploadEvaluationDataD.setCountyId("");
- } else if (Objects.equals(level,Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()))) {
+ } else if (Objects.equals(level, Integer.parseInt(UploadEnum.NJCN_DEPT_LEVEL_4.getCode()))) {
result = UploadEnum.STATISTICAL_LEVEL_5.getCode();
List list = Arrays.stream(map.get(id).get(0).getPids().split(",")).map(String::trim).collect(Collectors.toList());
- String parentCode = deptList.stream().filter(o->Objects.equals(o.getId(),list.get(3))).findFirst().orElse(null).getCode();
+ String parentCode = deptList.stream().filter(o -> Objects.equals(o.getId(), list.get(3))).findFirst().orElse(null).getCode();
rUploadEvaluationDataD.setCityId(parentCode);
rUploadEvaluationDataD.setCityName(map.get(parentCode).get(0).getName());
rUploadEvaluationDataD.setCountyId(id);
@@ -520,9 +585,9 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl result,List valueList, String indexType, String voltage,RUploadEvaluationDataD rUploadEvaluationDataD2,List line) {
+ public void channelHarmonicData(RUploadEvaluationDataD rUploadEvaluationDataD, List result, List valueList, String indexType, String voltage, RUploadEvaluationDataD rUploadEvaluationDataD2, List line) {
final Double defaultValue = 3.1415926;
int length;
- if (!Objects.isNull(valueList)){
+ if (!Objects.isNull(valueList)) {
length = valueList.size();
} else {
length = 49;
}
for (int i = 0; i < length; i++) {
RUploadEvaluationDataD dto = new RUploadEvaluationDataD();
- BeanUtils.copyProperties(rUploadEvaluationDataD,dto);
+ BeanUtils.copyProperties(rUploadEvaluationDataD, dto);
dto.setId(IdUtil.simpleUUID());
- dto.setAvgValue(CollUtil.isNotEmpty(valueList)?valueList.get(i):defaultValue);
+ dto.setAvgValue(CollUtil.isNotEmpty(valueList) ? valueList.get(i) : defaultValue);
dto.setIndexType(indexType);
- dto.setHarmonicNum(i+2);
- if (Objects.equals(voltage, "0")){
+ dto.setHarmonicNum(i + 2);
+ if (Objects.equals(voltage, "0")) {
dto.setStandardDeviation(defaultValue);
} else {
- double sd = this.getDimVoltageDataSd(voltage,dto.getAvgValue(),dto.getStatisticalDate(),line,indexType,dto.getHarmonicNum());
+ double sd = this.getDimVoltageDataSd(voltage, dto.getAvgValue(), dto.getStatisticalDate(), line, indexType, dto.getHarmonicNum());
dto.setStandardDeviation(sd);
}
dto.setVoltageLevel(voltage);
@@ -573,8 +638,8 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(RDimVoltageD::getOrgId, orgId)
- .eq(RDimVoltageD::getStatisDate,time)
- .eq(RDimVoltageD::getVoltageType,voltage);
+ .eq(RDimVoltageD::getStatisDate, time)
+ .eq(RDimVoltageD::getVoltageType, voltage);
return rDimVoltageDMapper.selectOne(lambdaQueryWrapper);
}
@@ -583,20 +648,20 @@ public class RUploadEvaluationDataDServiceImpl extends MppServiceImpl line, String type, Integer times) {
double standardDeviation = 3.1415926;
- if (Objects.equals(avg,standardDeviation)){
+ if (Objects.equals(avg, standardDeviation)) {
return standardDeviation;
}
//获取监测点数据
- if (CollUtil.isNotEmpty(line)){
- Map> map = line.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
- if (!Objects.isNull(map.get(voltage))){
+ if (CollUtil.isNotEmpty(line)) {
+ Map> map = line.stream().collect(Collectors.groupingBy(LineDevGetDTO::getVoltageLevel));
+ if (!Objects.isNull(map.get(voltage))) {
Set lineSet = map.get(voltage).stream().map(LineDevGetDTO::getPointId).collect(Collectors.toSet());
- List dataList = rDimVoltageDMapper.getLineData(time,time,lineSet);
+ List dataList = rDimVoltageDMapper.getLineData(time, time, lineSet);
//根据平均值计算每个指标的标准差
- if (CollUtil.isNotEmpty(dataList)){
- double total = this.getDataByType(type,avg,dataList,times);
+ if (CollUtil.isNotEmpty(dataList)) {
+ double total = this.getDataByType(type, avg, dataList, times);
//计算标准差
- standardDeviation = Math.sqrt(total/dataList.size());
+ standardDeviation = Math.sqrt(total / dataList.size());
}
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java
index 64b6bfb9d..fb7544242 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadPointStatisticalDataDServiceImpl.java
@@ -8,18 +8,23 @@ import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.common.pojo.constant.BizParamConstant;
import com.njcn.device.biz.commApi.CommLineClient;
import com.njcn.device.biz.pojo.dto.DeptGetChildrenMoreDTO;
import com.njcn.device.biz.pojo.dto.LineDTO;
import com.njcn.device.biz.pojo.dto.LineDevGetDTO;
import com.njcn.device.pq.pojo.po.RStatIntegrityD;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import com.njcn.harmonic.pojo.po.upload.RUploadPointStatisticalDataD;
import com.njcn.prepare.harmonic.enums.UploadEnum;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
-import com.njcn.prepare.harmonic.mapper.mysql.line.PmsRunStatisticMapper;
+import com.njcn.prepare.harmonic.mapper.mysql.upload.PmsRunStatisticDMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadPointStatisticalDataDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticD;
+import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
+import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadPointStatisticalDataDService;
import com.njcn.system.api.DicDataFeignClient;
import com.njcn.system.api.DictTreeFeignClient;
@@ -61,9 +66,10 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl dataList = getStatIntegrityData(calculatedParam.getDataDate());
-
//下面先从表里获取在运测点相关数据,当表里没数据时候再从接口获取
//首先获取pms_run_statistic表是否存在执行日期的数据
- List pmsRunStatisticsListD = pmsRunStatisticMapper.selectList(new LambdaQueryWrapper().eq(PmsRunStatisticD::getStatisticDate,calculatedParam.getDataDate()));
+ List pmsRunStatisticsListD = runStatisticDMapper.selectList(new LambdaQueryWrapper().eq(PmsRunStatisticD::getStatisticDate, calculatedParam.getDataDate()));
//筛选国网上送监测点
List deptAll = calculatedParam.getIdList();
- Map pmsRunStatisticMap = pmsRunStatisticsListD.stream().collect(Collectors.toMap(PmsRunStatisticD::getDeptId,Function.identity()));
+ Map pmsRunStatisticMap = pmsRunStatisticsListD.stream().collect(Collectors.toMap(PmsRunStatisticD::getDeptId, Function.identity()));
List lineDTOList;
- if(pmsRunStatisticMap.containsKey(dept.getCode())){
- List monitorIds = CollectionUtil.toList(pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds().split(StrUtil.COMMA));
- lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData();
+ if (pmsRunStatisticMap.containsKey(dept.getCode())) {
+ String runMonitorIds = pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds();
+ if(StrUtil.isNotBlank(runMonitorIds)){
+ List monitorIds = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
+ lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData();
+ }else {
+ lineDTOList = new ArrayList<>();
+ }
} else {
lineDTOList = new ArrayList<>();
}
@@ -155,28 +165,51 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl upDevIds =new ArrayList<>();
+ List onMonitorIds=new ArrayList<>();
+ if (CollectionUtil.isEmpty(pmsRunStatisticsListD)) {
//正常流程
newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList());
- }else {
- String[] monitorTemIds = pmsRunStatisticMap.get(item.getUnitId()).getRunMonitorIds().split(StrUtil.COMMA);
- List temIds = Arrays.stream(monitorTemIds).collect(toList());
+ upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
+ } else {
+ if(pmsRunStatisticMap.containsKey(item.getUnitId())){
+ PmsRunStatisticD pmsRunStatisticD = pmsRunStatisticMap.get(item.getUnitId());
+ if(StrUtil.isNotBlank(pmsRunStatisticD.getRunMonitorIds())){
+ List temIds = Arrays.stream(pmsRunStatisticD.getRunMonitorIds().split(StrUtil.COMMA)).collect(toList());
+ List collect = lineDTOList.stream().filter(o -> temIds.contains(o.getLineId())).map(it -> {
+ LineDevGetDTO lineDevGetDTO = new LineDevGetDTO();
+ lineDevGetDTO.setPointId(it.getLineId());
+ lineDevGetDTO.setDevId(it.getDevId());
+ lineDevGetDTO.setObjType(it.getObjType());
+ return lineDevGetDTO;
+ }).collect(toList());
+ if(CollUtil.isEmpty(collect)){
+ newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList());
+ upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
+ }else {
+ newBaseList = collect;
+ if(StrUtil.isNotBlank(pmsRunStatisticD.getRunDevIds())){
+ upDevIds = Arrays.stream(pmsRunStatisticD.getRunDevIds().split(StrUtil.COMMA)).collect(toList());
+ }
+ if(StrUtil.isNotBlank(pmsRunStatisticD.getOnlineMonitorIds())){
+ onMonitorIds.addAll(Arrays.stream(pmsRunStatisticD.getOnlineMonitorIds().split(StrUtil.COMMA)).collect(toList()));
+ }
+ }
+ }else{
+ newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList());
+ upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
+ }
+ }else{
+ newBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(toList());
+ upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
+ }
- newBaseList = lineDTOList.stream().filter(o -> temIds.contains(o.getLineId())).map(it->{
- LineDevGetDTO lineDevGetDTO = new LineDevGetDTO();
- lineDevGetDTO.setPointId(it.getLineId());
- lineDevGetDTO.setDevId(it.getDevId());
- lineDevGetDTO.setObjType(it.getObjType());
- return lineDevGetDTO;
- }).collect(Collectors.toList());
}
-
List upMonitorIds = newBaseList.stream().map(LineDevGetDTO::getPointId).distinct().collect(toList());
- List upDevIds = newBaseList.stream().map(LineDevGetDTO::getDevId).distinct().collect(toList());
List finalNewBaseList = newBaseList;
+ List finalUpDevIds = upDevIds;
mapKey.forEach((key, val) -> {
List keyItem = finalNewBaseList.stream().filter(o -> val.contains(o.getObjType())).collect(toList());
RUploadPointStatisticalDataD rUploadPointStatisticalDataD = new RUploadPointStatisticalDataD();
@@ -219,18 +252,21 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl l3 = dataList.stream().filter(it -> upMonitorIds.contains(it.getLineIndex())).collect(toList());
+ List l3;
+ if(CollUtil.isNotEmpty(onMonitorIds)){
+ l3 = dataList.stream().filter(it -> onMonitorIds.contains(it.getLineIndex())).collect(toList());
+ }else{
+ l3 = dataList.stream().filter(it -> upMonitorIds.contains(it.getLineIndex())).collect(toList());
+ }
int due = l3.stream().mapToInt(RStatIntegrityD::getDueTime).sum();
int real = l3.stream().mapToInt(RStatIntegrityD::getRealTime).sum();
rUploadPointStatisticalDataD.setExpectCollectNum(due);
rUploadPointStatisticalDataD.setActualCollectNum(real);
long onlineCount = l3.stream().filter(me -> me.getRealTime() > 0).count();
- rUploadPointStatisticalDataD.setOnlineMonitorNum((int) onlineCount);
+ rUploadPointStatisticalDataD.setOnlineMonitorNum(onMonitorIds.size() == 0 ? (int) onlineCount : onMonitorIds.size());
rUploadPointStatisticalDataD.setOnlineMonitorRate(upMonitorIds.size() == 0 ? 0d : BigDecimal.valueOf(rUploadPointStatisticalDataD.getOnlineMonitorNum() * 100.0 / rUploadPointStatisticalDataD.getRunMonitorNum()).setScale(4, RoundingMode.HALF_UP).doubleValue());
@@ -289,7 +325,6 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl lambdaQueryWrapper = new LambdaQueryWrapper<>();
@@ -310,9 +345,11 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl pmsRunStatistic = runStatisticMService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
+ Map pmsRunStatisticMap = pmsRunStatistic.stream().collect(Collectors.toMap(PmsRunStatisticM::getDeptId, Function.identity()));
//数据集
List list = this.baseMapper.pointStatisticalMonthData(beginMonth, startTime, endTime, "02");
- dataProcessing(calculatedParam, list);
+ dataProcessing(calculatedParam, list, pmsRunStatisticMap, BizParamConstant.STAT_BIZ_MONTH);
}
@Override
@@ -323,18 +360,19 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl pmsRunStatistic = runStatisticYService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
+ Map pmsRunStatisticMap = pmsRunStatistic.stream().collect(Collectors.toMap(PmsRunStatisticY::getDeptId, Function.identity()));
//数据集
List list = this.baseMapper.pointStatisticalMonthData(beginMonth, startTime, endTime, "01");
- dataProcessing(calculatedParam, list);
+ dataProcessing(calculatedParam, list, pmsRunStatisticMap, BizParamConstant.STAT_BIZ_YEAR);
}
/**
* @param calculatedParam
* @param list 数据处理
*/
- private void dataProcessing(CalculatedParam calculatedParam, List list) {
-
- /* //数据分组
+ private void dataProcessing(CalculatedParam calculatedParam, List list, Map pmsRunStatisticMap, String type) {
+ //数据分组
Map> listMap = list.stream().collect(Collectors.groupingBy(x -> x.getProvinceId() + x.getCityId() + x.getCountyId()));
//获取省级单位id
Dept root = deptFeignClient.getRootDept().getData();
@@ -378,12 +416,70 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl lineDTOList=new ArrayList<>();
+ if (pmsRunStatisticMap.containsKey(dept.getCode())) {
+ List monitorIds;
+ String runMonitorIds;
+ if (BizParamConstant.STAT_BIZ_MONTH.equals(type)) {
+ runMonitorIds = ((PmsRunStatisticM) pmsRunStatisticMap.get(dept.getCode())).getRunMonitorIds();
+ } else {
+ runMonitorIds = ((PmsRunStatisticY) pmsRunStatisticMap.get(dept.getCode())).getRunMonitorIds();
+ }
+ if(StrUtil.isNotBlank(runMonitorIds)){
+ monitorIds = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
+ lineDTOList = commLineClient.getLineDetailBatch(monitorIds).getData();
+ }
+ }
RUploadPointStatisticalDataD data;
for (DeptGetChildrenMoreDTO item : calculatedParam.getIdList()) {
//获取国网上送监测点
- List temBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList());
+ List temBaseList;
+ long devCount;
+ if (CollectionUtil.isEmpty(pmsRunStatisticMap)) {
+ //正常流程
+ temBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList());
+ devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count();
+ } else {
+ List temIds=new ArrayList<>();
+ List onDevIds=new ArrayList<>();
+ String runMonitorIds;
+ String devIds;
+ if (BizParamConstant.STAT_BIZ_MONTH.equals(type)) {
+ runMonitorIds = ((PmsRunStatisticM) pmsRunStatisticMap.get(item.getUnitId())).getRunMonitorIds();
+ devIds = ((PmsRunStatisticM) pmsRunStatisticMap.get(item.getUnitId())).getRunDevIds();
+ } else {
+ runMonitorIds = ((PmsRunStatisticY) pmsRunStatisticMap.get(item.getUnitId())).getRunMonitorIds();
+ devIds = ((PmsRunStatisticY) pmsRunStatisticMap.get(item.getUnitId())).getRunDevIds();
+ }
+ if(StrUtil.isNotBlank(runMonitorIds)){
+ temIds = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
+ }
+ if(StrUtil.isNotBlank(devIds)){
+ onDevIds = CollectionUtil.toList(devIds.split(StrUtil.COMMA));
+ }
+ List finalTemIds = temIds;
+ List collect = lineDTOList.stream().filter(o -> finalTemIds.contains(o.getLineId())).map(it -> {
+ LineDevGetDTO lineDevGetDTO = new LineDevGetDTO();
+ lineDevGetDTO.setPointId(it.getLineId());
+ lineDevGetDTO.setDevId(it.getDevId());
+ lineDevGetDTO.setObjType(it.getObjType());
+ return lineDevGetDTO;
+ }).collect(toList());
+ if(CollUtil.isEmpty(collect)){
+ temBaseList = item.getLineBaseList().stream().filter(o -> Objects.equals(o.getIsUpToGrid(), 1)).collect(Collectors.toList());
+ devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count();
+ }else {
+ temBaseList = collect;
+ if(onDevIds.size()==0){
+ devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count();
+ }else{
+ devCount = onDevIds.size();
+ }
+ }
+ }
+
long monitorCount = temBaseList.stream().map(LineDevGetDTO::getPointId).distinct().count();
- long devCount = temBaseList.stream().map(LineDevGetDTO::getDevId).distinct().count();
+
//其他类型
data = new RUploadPointStatisticalDataD();
data.setProvinceId(dept.getCode());
@@ -420,10 +516,16 @@ public class RUploadPointStatisticalDataDServiceImpl extends MppServiceImpl {
item.setId(IdUtil.simpleUUID());
item.setComputeDate(calculatedParam.getDataDate());
- if(item.getOnlineMonitorNum()>item.getRunMonitorNum()){
+ if (item.getOnlineMonitorNum() > item.getRunMonitorNum()) {
item.setOnlineMonitorRate(100.0);
item.setOnlineMonitorNum(item.getRunMonitorNum());
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadSubstationStatisticalDataDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadSubstationStatisticalDataDServiceImpl.java
index cffc53990..f0c16d342 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadSubstationStatisticalDataDServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/upload/impl/RUploadSubstationStatisticalDataDServiceImpl.java
@@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
+import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
@@ -16,11 +17,15 @@ import com.njcn.device.pms.api.StatationStatClient;
import com.njcn.device.pms.pojo.param.PmsStatationStatInfoParam;
import com.njcn.device.pms.pojo.po.PmsMidLedger;
import com.njcn.device.pms.pojo.po.StatationStat;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticM;
+import com.njcn.harmonic.pojo.po.upload.PmsRunStatisticY;
import com.njcn.harmonic.pojo.po.upload.RUploadSubstationStatisticalDataD;
import com.njcn.prepare.harmonic.enums.UploadEnum;
import com.njcn.prepare.harmonic.mapper.mysql.dim.PmsMidLedgerMapper;
import com.njcn.prepare.harmonic.mapper.mysql.upload.RUploadSubstationStatisticalDataDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticMService;
+import com.njcn.prepare.harmonic.service.mysql.upload.IPmsRunStatisticYService;
import com.njcn.prepare.harmonic.service.mysql.upload.IRUploadSubstationStatisticalDataDService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
@@ -29,6 +34,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import java.util.*;
+import java.util.function.Function;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -49,8 +55,15 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
private final StatationStatClient statationStatClient;
private final PmsMidLedgerMapper pmsMidLedgerMapper;
private final CommTerminalGeneralClient commTerminalGeneralClient;
+ private final IPmsRunStatisticMService runStatisticMService;
+ private final IPmsRunStatisticYService runStatisticYService;
+
@Override
public void insertSubStatisticalDataMonth(CalculatedParam calculatedParam) {
+ //起始时间
+ String startTime = DateUtil.format(DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
+ //结束时间
+ String endTime = DateUtil.format(DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
List result = new ArrayList<>();
//获取省级单位id
Dept data = deptFeignClient.getRootDept().getData();
@@ -63,7 +76,22 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
List deptGetChildrenList = commTerminalGeneralClient.deptGetLine(deptGetLineParam).getData();
Map> deptChildren = deptGetChildrenList.stream().collect(Collectors.groupingBy(DeptGetChildrenMoreDTO::getUnitId));
//变电站id
- List subList = calculatedParam.getIdList();
+ List subList ;
+ //获取月数据
+ List pmsRunStatistics = runStatisticMService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
+ Map pmsRunStatisticMap = pmsRunStatistics.stream().collect(Collectors.toMap(PmsRunStatisticM::getDeptId, Function.identity()));
+
+ if (pmsRunStatisticMap.containsKey(dept.getCode())) {
+ String onlineStationIds = pmsRunStatisticMap.get(dept.getCode()).getOnlineStationIds();
+ if(StrUtil.isNotBlank(onlineStationIds)){
+ subList = CollectionUtil.toList(onlineStationIds.split(StrUtil.COMMA));
+ }else {
+ subList = calculatedParam.getIdList();
+ }
+ } else {
+ subList = calculatedParam.getIdList();
+ }
+
//获取监测变电站信息
List subInfo = getSubstationInfo(subList);
Map> subMap = subInfo.stream().collect(Collectors.groupingBy(StatationStat::getOrgId));
@@ -84,14 +112,26 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
rUploadSubstationStatisticalDataD.setProvinceId(dept.getCode());
rUploadSubstationStatisticalDataD.setProvinceName(dept.getName());
rUploadSubstationStatisticalDataD.setUploadStatus(Integer.parseInt(UploadEnum.UPLOAD_STATUS_0.getCode()));
- //计算在线监测点数
- List l = deptChildren.get(k).get(0).getLineBaseList();
- if (CollUtil.isNotEmpty(l)){
- l = l.stream().filter(o->Objects.equals(o.getIsUpToGrid(),1)).collect(Collectors.toList());
- rUploadSubstationStatisticalDataD.setOnlineMonitorNum(l.size());
- } else {
- rUploadSubstationStatisticalDataD.setOnlineMonitorNum(0);
+
+ if(pmsRunStatisticMap.containsKey(k)){
+ String runMonitorIds = pmsRunStatisticMap.get(dept.getCode()).getRunMonitorIds();
+ if(StrUtil.isNotBlank(runMonitorIds)){
+ ArrayList list1 = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
+ rUploadSubstationStatisticalDataD.setOnlineMonitorNum(list1.size());
+ }else {
+ rUploadSubstationStatisticalDataD.setOnlineMonitorNum(0);
+ }
+ }else{
+ //计算在线监测点数
+ List l = deptChildren.get(k).get(0).getLineBaseList();
+ if (CollUtil.isNotEmpty(l)){
+ l = l.stream().filter(o->Objects.equals(o.getIsUpToGrid(),1)).collect(Collectors.toList());
+ rUploadSubstationStatisticalDataD.setOnlineMonitorNum(l.size());
+ } else {
+ rUploadSubstationStatisticalDataD.setOnlineMonitorNum(0);
+ }
}
+
//处理层级关系 && 处理基础数据
this.getDeptLevel(list,rUploadSubstationStatisticalDataD,deptList,deptMap,k,subMap,midSubMap);
result.add(rUploadSubstationStatisticalDataD);
@@ -122,6 +162,40 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
String endTime = DateUtil.format(DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN)), DatePattern.NORM_DATE_PATTERN);
//数据集
List list = this.baseMapper.substationStatisticalMonthData(beginMonth,startTime,endTime);
+
+ List pmsRunStatistics = runStatisticYService.selectListByDate(startTime, endTime,calculatedParam.getDataDate());
+ Map pmsRunStatisticMap = pmsRunStatistics.stream().collect(Collectors.toMap(PmsRunStatisticY::getDeptId, Function.identity()));
+ //数据分组
+ Map> listMap = list.stream().collect(Collectors.groupingBy(x ->{
+ String str = "";
+ if(StrUtil.isNotBlank(x.getProvinceId())){
+ str = x.getProvinceId();
+ }
+ if(StrUtil.isNotBlank(x.getCityId())){
+ str = x.getCityId();
+ }
+ if(StrUtil.isNotBlank(x.getCountyId())){
+ str = x.getCountyId();
+ }
+ return str;
+ }
+ ));
+ listMap.forEach((key,value)->{
+ if(pmsRunStatisticMap.containsKey(key)){
+ PmsRunStatisticY pmsRunStatistic = pmsRunStatisticMap.get(key);
+ String runMonitorIds = pmsRunStatistic.getRunMonitorIds();
+ if(StrUtil.isNotBlank(runMonitorIds)){
+ ArrayList list1 = CollectionUtil.toList(runMonitorIds.split(StrUtil.COMMA));
+ value.forEach(item->{
+ item.setOnlineMonitorNum(list1.size());
+ item.setMonitoringRate(Objects.isNull(item.getSubstationCount())?null:list1.size()*1.0/item.getSubstationCount()*100);
+ });
+
+ }
+
+ }
+ });
+
if (CollUtil.isNotEmpty(list)){
list.forEach(item->{
item.setId(IdUtil.simpleUUID());
@@ -157,7 +231,13 @@ public class RUploadSubstationStatisticalDataDServiceImpl extends MppServiceImpl
* 判断当前部门的层级
* @return
*/
- public void getDeptLevel(List list, RUploadSubstationStatisticalDataD rUploadSubstationStatisticalDataD, List deptList, Map> map, String code, Map> subMap, Map> midSubMap) {
+ public void getDeptLevel(List list,
+ RUploadSubstationStatisticalDataD rUploadSubstationStatisticalDataD,
+ List