calculatedParam);
-
-
-
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalMService.java
index a687de064..96e2f35f9 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalMService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalMService.java
@@ -1,7 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
*
@@ -11,6 +14,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @author hongawen
* @since 2023-11-14
*/
-public interface IRDimBusGlobalMService extends IService {
+public interface IRDimBusGlobalMService extends IMppService {
+ void globalCalBusBarMonth(CalculatedParam calculatedParam);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalYService.java
index 80815273d..a5bb3a35a 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalYService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusGlobalYService.java
@@ -1,7 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
*
@@ -11,6 +14,8 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @author hongawen
* @since 2023-11-14
*/
-public interface IRDimBusGlobalYService extends IService {
+public interface IRDimBusGlobalYService extends IMppService {
+
+ void globalCalBusBarYear(CalculatedParam calculatedParam);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventDService.java
new file mode 100644
index 000000000..1b81eef09
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventDService.java
@@ -0,0 +1,25 @@
+package com.njcn.prepare.harmonic.service.mysql.dim;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author cdf
+ * @since 2023-11-24
+ */
+public interface IRDimBusStationEventDService extends IMppService {
+
+ /**
+ * 统计母线电站的暂态情况
+ * @author cdf
+ * @date 2023/11/24
+ */
+ void calEventDay(CalculatedParam calculatedParam);
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventMService.java
new file mode 100644
index 000000000..f7575a3aa
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventMService.java
@@ -0,0 +1,25 @@
+package com.njcn.prepare.harmonic.service.mysql.dim;
+
+
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author cdf
+ * @since 2023-11-24
+ */
+public interface IRDimBusStationEventMService extends IMppService {
+
+ /**
+ * 统计母线电站的暂态情况
+ * @author cdf
+ * @date 2023/11/24
+ */
+ void calEventMonth(CalculatedParam calculatedParam);
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventYService.java
new file mode 100644
index 000000000..45c876dd5
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimBusStationEventYService.java
@@ -0,0 +1,25 @@
+package com.njcn.prepare.harmonic.service.mysql.dim;
+
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventY;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+
+/**
+ *
+ * 服务类
+ *
+ *
+ * @author cdf
+ * @since 2023-11-24
+ */
+public interface IRDimBusStationEventYService extends IMppService {
+
+
+ /**
+ * 统计母线电站的暂态情况
+ * @author cdf
+ * @date 2023/11/24
+ */
+ void calEventYear(CalculatedParam calculatedParam);
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalDService.java
deleted file mode 100644
index d397098b8..000000000
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalDService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.njcn.prepare.harmonic.service.mysql.dim;
-
-import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalD;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- *
- * 服务类
- *
- *
- * @author hongawen
- * @since 2023-11-14
- */
-public interface IRDimStationGlobalDService extends IService {
-
-}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalMService.java
deleted file mode 100644
index 71027b809..000000000
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalMService.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package com.njcn.prepare.harmonic.service.mysql.dim;
-
-import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalM;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-/**
- *
- * 服务类
- *
- *
- * @author hongawen
- * @since 2023-11-14
- */
-public interface IRDimStationGlobalMService extends IService {
-
-}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalYService.java
deleted file mode 100644
index b73cabd00..000000000
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationGlobalYService.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package com.njcn.prepare.harmonic.service.mysql.dim;
-
-
-import com.baomidou.mybatisplus.extension.service.IService;
-import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalY;
-
-/**
- *
- * 服务类
- *
- *
- * @author hongawen
- * @since 2023-11-14
- */
-public interface IRDimStationGlobalYService extends IService {
-
-}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetDService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetDService.java
index 24b93b4f2..dcff530e3 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetDService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetDService.java
@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetD;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
@@ -13,7 +14,7 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
* @author cdf
* @since 2023-11-21
*/
-public interface IRDimStationTargetDService extends IService {
+public interface IRDimStationTargetDService extends IMppService {
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetMService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetMService.java
index d2935dfe0..faef125fe 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetMService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetMService.java
@@ -1,6 +1,7 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
@@ -13,7 +14,7 @@ import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
* @author cdf
* @since 2023-11-21
*/
-public interface IRDimStationTargetMService extends IService {
+public interface IRDimStationTargetMService extends IMppService {
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetYService.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetYService.java
index 32e2fabcb..688f7bdf4 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetYService.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/IRDimStationTargetYService.java
@@ -1,7 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.github.jeffreyning.mybatisplus.service.IMppService;
+import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
/**
*
@@ -11,6 +14,12 @@ import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY;
* @author cdf
* @since 2023-11-21
*/
-public interface IRDimStationTargetYService extends IService {
+public interface IRDimStationTargetYService extends IMppService {
+ /**
+ * **kV变电站**指标超标占比(%)
+ * @author cdf
+ * @date 2023/11/21
+ */
+ void calDimStationTargetYear(CalculatedParam calculatedParam);
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalDServiceImpl.java
index 425851644..83130f3bb 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalDServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalDServiceImpl.java
@@ -21,7 +21,9 @@ import com.njcn.device.pms.pojo.po.Monitor;
import com.njcn.harmonic.pojo.po.RMpEventDetailDPO;
import com.njcn.harmonic.pojo.po.day.RStatLimitTargetDPO;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalD;
+import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
import com.njcn.harmonic.pojo.po.dim.RDimMonitorRateD;
+import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.area.PmsMonitorPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.area.ROperatingIndexDPOMapper;
import com.njcn.prepare.harmonic.mapper.mysql.day.RStatIntegrityDMapper;
@@ -34,6 +36,8 @@ import com.njcn.prepare.harmonic.mapper.mysql.line.ROperatingMonitorDMapper;
import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.pojo.mysql.ROperatingMonitorDPO;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalDService;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
+import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
import com.njcn.user.api.DeptFeignClient;
import com.njcn.user.pojo.po.Dept;
import lombok.RequiredArgsConstructor;
@@ -81,6 +85,10 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl poList = new ArrayList<>();
LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
- List pmsMidLedgerList = pmsCountLedgerMapper.newDateData();
- Map map = pmsMidLedgerList.stream().collect(Collectors.toMap(PmsCountLedger::getSection, Function.identity()));
-
List deptList = calculatedParam.getIdList();
+
for (DeptGetChildrenDTO dto : deptList) {
- Integer stationNum;
- Integer busBarNum;
+ RDimBusGlobalD rDimBusGlobalD = new RDimBusGlobalD();
- if (map.containsKey(dto.getDeptId())) {
- PmsCountLedger pmsCountLedger = map.get(dto.getDeptId());
- stationNum = pmsCountLedger.getSubCount();
- busBarNum = pmsCountLedger.getSubvCount();
+ List childDept = dto.getDeptChildren();
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.in(RDimBusbarHarmnicDPO::getOrgId,childDept).eq(RDimBusbarHarmnicDPO::getStatisDate,date);
+ List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
+ List goodIds = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().collect(Collectors.toList());
- if (stationNum == 0 || busBarNum == 0) {
- continue;
+ List limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+ if(CollUtil.isEmpty(limtList)){
+ rDimBusGlobalD.setLimitRate(0f);
+ rDimBusGlobalD.setLimitAvgRate(0f);
+ }else {
+ List busBarIds = limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().collect(Collectors.toList());
+ rDimBusGlobalD.setLimitRate((float)busBarIds.size()/goodIds.size());
+ rDimBusGlobalD.setLimitAvgRate((float)busBarIds.size()/goodIds.size());
}
- } else {
- continue;
}
- List monitorIds = dto.getLineIds();
+
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(RDimStationBaseD::getOrgId,childDept).eq(RDimStationBaseD::getStatisDate,date);
+ List rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper);
+
+ if(CollUtil.isNotEmpty(rDimStationBaseDList)){
+ long goodStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+
+ List limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+
+ if(CollUtil.isEmpty(limtList)){
+ rDimBusGlobalD.setStationLimitRate(0f);
+ rDimBusGlobalD.setStationLimitAvgRate(0f);
+ }else {
+ long limitCount = limtList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ rDimBusGlobalD.setStationLimitRate((float)limitCount/goodStation);
+ rDimBusGlobalD.setStationLimitAvgRate((float)limitCount/goodStation);
+ }
+ }
+
+ if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
+ rDimBusGlobalD.setLimitRate(3.14159f);
+ rDimBusGlobalD.setLimitAvgRate(3.14159f);
+ }
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
+ rDimBusGlobalD.setStationLimitRate(3.14159f);
+ rDimBusGlobalD.setStationLimitAvgRate(3.14159f);
+ }
+ poList.add(rDimBusGlobalD);
+
+ this.saveOrUpdateBatchByMultiId(poList,100);
+
+ /* List monitorIds = dto.getLineIds();
if (CollectionUtil.isNotEmpty(monitorIds)) {
RDimBusGlobalD rDimBusGlobalD = new RDimBusGlobalD();
rDimBusGlobalD.setOrgId(dto.getDeptId());
@@ -124,11 +167,9 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl integrityDList = rStatIntegrityDMapper.selectList(lambdaQueryWrapper);
if (CollectionUtil.isEmpty(integrityDList)) {
- rDimBusGlobalD.setMonitorRate(0f);
rDimBusGlobalD.setLimitRate(3.14159f);
rDimBusGlobalD.setLimitAvgRate(3.14159f);
- rDimBusGlobalD.setStationMonitorRate(0f);
rDimBusGlobalD.setStationLimitRate(3.14159f);
rDimBusGlobalD.setStationLimitAvgRate(3.14159f);
poList.add(rDimBusGlobalD);
@@ -140,11 +181,9 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl it.getRealTime() / it.getDueTime() >= 0.95f)
.collect(Collectors.toList());
if (CollectionUtil.isEmpty(integrityDList)) {
- rDimBusGlobalD.setMonitorRate(0f);
rDimBusGlobalD.setLimitRate(3.14159f);
rDimBusGlobalD.setLimitAvgRate(3.14159f);
- rDimBusGlobalD.setStationMonitorRate(0f);
rDimBusGlobalD.setStationLimitRate(3.14159f);
rDimBusGlobalD.setStationLimitAvgRate(3.14159f);
poList.add(rDimBusGlobalD);
@@ -159,8 +198,6 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl goodStationIds = monitorList.stream().map(Monitor::getPowerrId).distinct().collect(Collectors.toList());
- rDimBusGlobalD.setMonitorRate((float) goodLineIds.size() / busBarNum * 100);
- rDimBusGlobalD.setStationMonitorRate((float) goodStationIds.size() / stationNum * 100);
LambdaQueryWrapper limitWrapper = new LambdaQueryWrapper<>();
limitWrapper.in(RStatLimitTargetDPO::getLineId, goodMonitorIds).eq(RStatLimitTargetDPO::getTime, date);
@@ -216,43 +253,13 @@ public class RDimBusGlobalDServiceImpl extends MppServiceImpl item.setState(DataStateEnum.ENABLE.getCode())).collect(Collectors.toList());
- this.saveOrUpdateBatchByMultiId(poList);
-
}
- @Override
- public void globalCalBusBarMonth(CalculatedParam calculatedParam) {
- DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
- DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
- LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
- lambdaQueryWrapper.between(RDimBusGlobalD::getStatisDate, start, end)
- .eq(RDimBusGlobalD::getState, DataStateEnum.ENABLE.getCode());
- List dayDataList = this.list(lambdaQueryWrapper);
- if (CollUtil.isNotEmpty(dayDataList)) {
- Map deptMap = calculatedParam.getIdList().stream().collect(Collectors.toMap(DeptGetChildrenDTO::getDeptId, Function.identity()));
- Map> map = dayDataList.stream().collect(Collectors.groupingBy(RDimBusGlobalD::getOrgId));
-
- map.forEach((key, val) -> {
- DeptGetChildrenDTO dto = deptMap.get(key);
- List monitorIds = dto.getLineIds();
-
- });
-
- }
-
-
- }
-
- @Override
- public void globalCalBusBarYear(CalculatedParam calculatedParam) {
-
- }
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalMServiceImpl.java
index 45707ebad..6130cc17c 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalMServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalMServiceImpl.java
@@ -1,12 +1,34 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+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.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.common.pojo.enums.common.DataStateEnum;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalD;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM;
+import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
+import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusGlobalMMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalMService;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
+import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
/**
*
* 服务实现类
@@ -16,6 +38,84 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
-public class RDimBusGlobalMServiceImpl extends ServiceImpl implements IRDimBusGlobalMService {
+@RequiredArgsConstructor
+public class RDimBusGlobalMServiceImpl extends MppServiceImpl implements IRDimBusGlobalMService {
+
+ private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
+
+ private final IRDimStationBaseDService irDimStationBaseDService;
+
+ @Override
+ public void globalCalBusBarMonth(CalculatedParam calculatedParam) {
+ List poList = new ArrayList<>();
+
+
+ DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
+ DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
+
+ List deptList = calculatedParam.getIdList();
+
+ for (DeptGetChildrenDTO dto : deptList) {
+ RDimBusGlobalM rDimBusGlobalM = new RDimBusGlobalM();
+
+ List childDept = dto.getDeptChildren();
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count");
+ queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end);
+ queryWrapper.groupBy("Statis_Date,BusBar_Id");
+
+ List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(queryWrapper);
+
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
+ List limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+ if(CollUtil.isEmpty(limtList)){
+ rDimBusGlobalM.setLimitRate(0f);
+ rDimBusGlobalM.setLimitAvgRate(0f);
+ }else {
+ long good =rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ long limit =limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ rDimBusGlobalM.setLimitRate((float)limit/good);
+ rDimBusGlobalM.setLimitAvgRate((float)limtList.size()/rDimBusbarHarmnicDPOList.size());
+ }
+ }
+
+
+ LambdaQueryWrapper stationQueryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count");
+ queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end);
+ queryWrapper.groupBy("Statis_Date,Station_Id");
+ List rDimStationBaseDList = irDimStationBaseDService.list(stationQueryWrapper);
+
+ if(CollUtil.isNotEmpty(rDimStationBaseDList)){
+ List limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+ if(CollUtil.isEmpty(limtList)){
+ rDimBusGlobalM.setStationLimitRate(0f);
+ rDimBusGlobalM.setStationLimitAvgRate(0f);
+ }else {
+
+ long good =rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ long limit =limtList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ rDimBusGlobalM.setStationLimitRate((float)limit/good);
+ rDimBusGlobalM.setStationLimitAvgRate((float)limtList.size()/rDimStationBaseDList.size());
+ }
+ }
+
+ if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
+ rDimBusGlobalM.setLimitRate(3.14159f);
+ rDimBusGlobalM.setLimitAvgRate(3.14159f);
+ }
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
+ rDimBusGlobalM.setStationLimitRate(3.14159f);
+ rDimBusGlobalM.setStationLimitAvgRate(3.14159f);
+ }
+ poList.add(rDimBusGlobalM);
+
+ this.saveOrUpdateBatchByMultiId(poList,100);
+
+
+ }
+
+
+ }
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalYServiceImpl.java
index e8dd3ba87..061b9bb86 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalYServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusGlobalYServiceImpl.java
@@ -1,12 +1,31 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+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.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalM;
import com.njcn.harmonic.pojo.po.dim.RDimBusGlobalY;
+import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
+import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusGlobalYMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusGlobalYService;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
+import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
/**
*
* 服务实现类
@@ -16,6 +35,83 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
-public class RDimBusGlobalYServiceImpl extends ServiceImpl implements IRDimBusGlobalYService {
+@RequiredArgsConstructor
+public class RDimBusGlobalYServiceImpl extends MppServiceImpl implements IRDimBusGlobalYService {
+ private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
+
+ private final IRDimStationBaseDService irDimStationBaseDService;
+
+ @Override
+ public void globalCalBusBarYear(CalculatedParam calculatedParam) {
+
+ List poList = new ArrayList<>();
+
+
+ DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
+ DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
+
+ List deptList = calculatedParam.getIdList();
+
+ for (DeptGetChildrenDTO dto : deptList) {
+ RDimBusGlobalY rDimBusGlobalY = new RDimBusGlobalY();
+
+ List childDept = dto.getDeptChildren();
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count");
+ queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end);
+ queryWrapper.groupBy("Statis_Date,BusBar_Id");
+
+ List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(queryWrapper);
+
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
+ List limtList = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+ if(CollUtil.isEmpty(limtList)){
+ rDimBusGlobalY.setLimitRate(0f);
+ rDimBusGlobalY.setLimitAvgRate(0f);
+ }else {
+ long good =rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ long limit =limtList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ rDimBusGlobalY.setLimitRate((float)limit/good);
+ rDimBusGlobalY.setLimitAvgRate((float)limtList.size()/rDimBusbarHarmnicDPOList.size());
+ }
+ }
+
+
+ LambdaQueryWrapper stationQueryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count");
+ queryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,childDept).between(RDimBusbarHarmnicDPO::getStatisDate,start,end);
+ queryWrapper.groupBy("Statis_Date,Station_Id");
+ List rDimStationBaseDList = irDimStationBaseDService.list(stationQueryWrapper);
+
+ if(CollUtil.isNotEmpty(rDimStationBaseDList)){
+ List limtList = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+ if(CollUtil.isEmpty(limtList)){
+ rDimBusGlobalY.setStationLimitRate(0f);
+ rDimBusGlobalY.setStationLimitAvgRate(0f);
+ }else {
+
+ long good =rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ long limit =limtList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ rDimBusGlobalY.setStationLimitRate((float)limit/good);
+ rDimBusGlobalY.setStationLimitAvgRate((float)limtList.size()/rDimStationBaseDList.size());
+ }
+ }
+
+ if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
+ rDimBusGlobalY.setLimitRate(3.14159f);
+ rDimBusGlobalY.setLimitAvgRate(3.14159f);
+ }
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
+ rDimBusGlobalY.setStationLimitRate(3.14159f);
+ rDimBusGlobalY.setStationLimitAvgRate(3.14159f);
+ }
+ poList.add(rDimBusGlobalY);
+
+ this.saveOrUpdateBatchByMultiId(poList,100);
+
+
+ }
+
+ }
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventDServiceImpl.java
new file mode 100644
index 000000000..464676da7
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventDServiceImpl.java
@@ -0,0 +1,112 @@
+package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+
+
+import cn.hutool.core.collection.CollUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD;
+import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
+import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
+import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventDMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventDService;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
+import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author cdf
+ * @since 2023-11-24
+ */
+@Service
+@RequiredArgsConstructor
+public class RDimBusStationEventDServiceImpl extends MppServiceImpl implements IRDimBusStationEventDService {
+
+ private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
+
+ private final IRDimStationBaseDService irDimStationBaseDService;
+
+ @Override
+ public void calEventDay(CalculatedParam calculatedParam) {
+ List poList = new ArrayList<>();
+ LocalDate date = LocalDate.parse(calculatedParam.getDataDate());
+
+ List deptList = calculatedParam.getIdList();
+ for(DeptGetChildrenDTO dto : deptList){
+ List deptIds = dto.getDeptChildren();
+ RDimBusStationEventD rDimBusStationEventD = new RDimBusStationEventD();
+ rDimBusStationEventD.setOrgId(dto.getDeptId());
+ rDimBusStationEventD.setStatisDate(date);
+
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.in(RDimBusbarHarmnicDPO::getOrgId,deptIds)
+ .eq(RDimBusbarHarmnicDPO::getStatisDate,date)
+ .eq(RDimBusbarHarmnicDPO::getLevel,1);
+
+ List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
+ long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ List limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+
+ if(CollUtil.isEmpty(limitBus)){
+ rDimBusStationEventD.setLimitRate(0f);
+ rDimBusStationEventD.setLimitFreq(0f);
+ }else {
+ long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ rDimBusStationEventD.setLimitRate((float)limit/allBus);
+
+ int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
+ rDimBusStationEventD.setLimitFreq((float)sum/allBus);
+
+ //TODO 后续加入暂态指标的代码
+ }
+ }
+
+ LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
+ queryWrapper.in(RDimStationBaseD::getOrgId,deptIds)
+ .eq(RDimStationBaseD::getStatisDate,date)
+ .eq(RDimStationBaseD::getLevel,1);
+
+ List rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper);
+ if(CollUtil.isNotEmpty(rDimStationBaseDList)){
+ long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ List limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+
+ if(CollUtil.isEmpty(limitStation)){
+ rDimBusStationEventD.setStationLimitRate(0f);
+ rDimBusStationEventD.setStationFreq(0f);
+ }else {
+ long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ rDimBusStationEventD.setLimitRate((float)limitNum/allStation);
+
+ int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum();
+ rDimBusStationEventD.setLimitFreq((float)sum/allStation);
+ }
+ }
+
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
+ rDimBusStationEventD.setStationLimitRate(3.14159f);
+ rDimBusStationEventD.setStationFreq(3.14159f);
+ }
+ if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
+ rDimBusStationEventD.setLimitRate(3.14159f);
+ rDimBusStationEventD.setLimitFreq(3.14159f);
+ }
+ poList.add(rDimBusStationEventD);
+
+ }
+ this.saveOrUpdateBatchByMultiId(poList,100);
+
+ }
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventMServiceImpl.java
new file mode 100644
index 000000000..6867051dd
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventMServiceImpl.java
@@ -0,0 +1,126 @@
+package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+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.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventD;
+import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM;
+import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
+import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
+import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventMMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventMService;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
+import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author cdf
+ * @since 2023-11-24
+ */
+@Service
+@RequiredArgsConstructor
+public class RDimBusStationEventMServiceImpl extends MppServiceImpl implements IRDimBusStationEventMService {
+
+ private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
+
+ private final IRDimStationBaseDService irDimStationBaseDService;
+
+ @Override
+ public void calEventMonth(CalculatedParam calculatedParam) {
+ List poList = new ArrayList<>();
+
+ DateTime start = DateUtil.beginOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
+ DateTime end = DateUtil.endOfMonth(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
+
+
+ List deptList = calculatedParam.getIdList();
+ for(DeptGetChildrenDTO dto : deptList){
+ List deptIds = dto.getDeptChildren();
+ RDimBusStationEventM rDimBusStationEventM = new RDimBusStationEventM();
+ rDimBusStationEventM.setOrgId(dto.getDeptId());
+ rDimBusStationEventM.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN)));
+
+ QueryWrapper lambdaQueryWrapper = new QueryWrapper<>();
+ lambdaQueryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count");
+ lambdaQueryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,deptIds).between(RDimBusbarHarmnicDPO::getStatisDate,start,end).eq(RDimBusbarHarmnicDPO::getLevel,1);
+ lambdaQueryWrapper.groupBy("Statis_Date,BusBar_Id");
+
+
+
+
+ List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
+ List limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+ if(CollUtil.isEmpty(limitBus)){
+ rDimBusStationEventM.setLimitRate(0f);
+ rDimBusStationEventM.setLimitFreq(0f);
+ }else {
+ long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ rDimBusStationEventM.setLimitRate((float)limit/allBus);
+
+ int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
+ rDimBusStationEventM.setLimitFreq((float)sum/allBus);
+
+ //TODO 后续加入暂态指标的代码
+ }
+ }
+
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count");
+ queryWrapper.lambda().in(RDimStationBaseD::getOrgId,deptIds).between(RDimStationBaseD::getStatisDate,start,end);
+ queryWrapper.groupBy("Statis_Date,Station_Id");
+ List rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper);
+
+ if(CollUtil.isNotEmpty(rDimStationBaseDList)){
+ long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ List limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+
+ if(CollUtil.isEmpty(limitStation)){
+ rDimBusStationEventM.setStationLimitRate(0f);
+ rDimBusStationEventM.setStationFreq(0f);
+ }else {
+ long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ rDimBusStationEventM.setStationLimitRate((float)limitNum/allStation);
+ int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum();
+ rDimBusStationEventM.setStationFreq((float)sum/allStation);
+ }
+ }
+
+
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
+ rDimBusStationEventM.setStationLimitRate(3.14159f);
+ rDimBusStationEventM.setStationFreq(3.14159f);
+ }
+ if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
+ rDimBusStationEventM.setLimitRate(3.14159f);
+ rDimBusStationEventM.setLimitFreq(3.14159f);
+ }
+ poList.add(rDimBusStationEventM);
+
+ }
+
+ this.saveOrUpdateBatchByMultiId(poList,100);
+
+
+ }
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventYServiceImpl.java
new file mode 100644
index 000000000..d053db16b
--- /dev/null
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimBusStationEventYServiceImpl.java
@@ -0,0 +1,123 @@
+package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.device.biz.pojo.dto.DeptGetChildrenDTO;
+import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventM;
+import com.njcn.harmonic.pojo.po.dim.RDimBusStationEventY;
+import com.njcn.harmonic.pojo.po.dim.RDimBusbarHarmnicDPO;
+import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
+import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimBusStationEventYMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimBusStationEventYService;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
+import com.njcn.prepare.harmonic.service.mysql.dim.RDimBusbarHarmnicDPOService;
+import lombok.RequiredArgsConstructor;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ *
+ * 服务实现类
+ *
+ *
+ * @author cdf
+ * @since 2023-11-24
+ */
+@Service
+@RequiredArgsConstructor
+public class RDimBusStationEventYServiceImpl extends MppServiceImpl implements IRDimBusStationEventYService {
+
+ private final RDimBusbarHarmnicDPOService rDimBusbarHarmnicDPOService;
+
+ private final IRDimStationBaseDService irDimStationBaseDService;
+
+ @Override
+ public void calEventYear(CalculatedParam calculatedParam) {
+ List poList = new ArrayList<>();
+
+ DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
+ DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_FORMAT));
+
+
+ List deptList = calculatedParam.getIdList();
+ for(DeptGetChildrenDTO dto : deptList){
+ List deptIds = dto.getDeptChildren();
+ RDimBusStationEventY rDimBusStationEventY = new RDimBusStationEventY();
+ rDimBusStationEventY.setOrgId(dto.getDeptId());
+ rDimBusStationEventY.setStatisDate(LocalDate.parse(DateUtil.format(start,DatePattern.NORM_DATE_PATTERN)));
+
+ QueryWrapper lambdaQueryWrapper = new QueryWrapper<>();
+ lambdaQueryWrapper.select("BusBar_Id,Statis_Date,sum(limit_count) as limit_count");
+ lambdaQueryWrapper.lambda().in(RDimBusbarHarmnicDPO::getOrgId,deptIds).between(RDimBusbarHarmnicDPO::getStatisDate,start,end).eq(RDimBusbarHarmnicDPO::getLevel,1);
+ lambdaQueryWrapper.groupBy("Statis_Date,BusBar_Id");
+
+
+
+
+ List rDimBusbarHarmnicDPOList = rDimBusbarHarmnicDPOService.list(lambdaQueryWrapper);
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList)){
+ List limitBus = rDimBusbarHarmnicDPOList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+ if(CollUtil.isEmpty(limitBus)){
+ rDimBusStationEventY.setLimitRate(0f);
+ rDimBusStationEventY.setLimitFreq(0f);
+ }else {
+ long allBus = rDimBusbarHarmnicDPOList.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ long limit = limitBus.stream().map(RDimBusbarHarmnicDPO::getBusbarId).distinct().count();
+ rDimBusStationEventY.setLimitRate((float)limit/allBus);
+
+ int sum = limitBus.stream().mapToInt(RDimBusbarHarmnicDPO::getLimitCount).sum();
+ rDimBusStationEventY.setLimitFreq((float)sum/allBus);
+
+ //TODO 后续加入暂态指标的代码
+ }
+ }
+
+ QueryWrapper queryWrapper = new QueryWrapper<>();
+ queryWrapper.select("Station_Id,Statis_Date,sum(limit_count) as limit_count");
+ queryWrapper.lambda().in(RDimStationBaseD::getOrgId,deptIds).between(RDimStationBaseD::getStatisDate,start,end);
+ queryWrapper.groupBy("Statis_Date,Station_Id");
+ List rDimStationBaseDList = irDimStationBaseDService.list(queryWrapper);
+
+ if(CollUtil.isNotEmpty(rDimStationBaseDList)){
+ long allStation = rDimStationBaseDList.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ List limitStation = rDimStationBaseDList.stream().filter(item->item.getLimitCount()>0).collect(Collectors.toList());
+
+ if(CollUtil.isEmpty(limitStation)){
+ rDimBusStationEventY.setStationLimitRate(0f);
+ rDimBusStationEventY.setStationFreq(0f);
+ }else {
+ long limitNum = limitStation.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ rDimBusStationEventY.setStationLimitRate((float)limitNum/allStation);
+ int sum = limitStation.stream().mapToInt(RDimStationBaseD::getLimitCount).sum();
+ rDimBusStationEventY.setStationFreq((float)sum/allStation);
+ }
+ }
+
+
+ if(CollUtil.isNotEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isEmpty(rDimStationBaseDList)){
+ rDimBusStationEventY.setStationLimitRate(3.14159f);
+ rDimBusStationEventY.setStationFreq(3.14159f);
+ }
+ if(CollUtil.isEmpty(rDimBusbarHarmnicDPOList) && CollUtil.isNotEmpty(rDimStationBaseDList)){
+ rDimBusStationEventY.setLimitRate(3.14159f);
+ rDimBusStationEventY.setLimitFreq(3.14159f);
+ }
+ poList.add(rDimBusStationEventY);
+
+ }
+
+ this.saveOrUpdateBatchByMultiId(poList,100);
+
+ }
+}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalDServiceImpl.java
index 67141e5a4..881437a06 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalDServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalDServiceImpl.java
@@ -1,10 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalD;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalDMapper;
-import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalDService;
import org.springframework.stereotype.Service;
/**
@@ -16,6 +16,6 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
-public class RDimStationGlobalDServiceImpl extends ServiceImpl implements IRDimStationGlobalDService {
+public class RDimStationGlobalDServiceImpl extends ServiceImpl implements IService {
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalMServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalMServiceImpl.java
index 3cc64bb30..de766c794 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalMServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalMServiceImpl.java
@@ -1,10 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalM;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalMMapper;
-import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalMService;
import org.springframework.stereotype.Service;
/**
@@ -16,6 +16,6 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
-public class RDimStationGlobalMServiceImpl extends ServiceImpl implements IRDimStationGlobalMService {
+public class RDimStationGlobalMServiceImpl extends ServiceImpl implements IService {
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalYServiceImpl.java
index c581b4113..f51fccdc0 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalYServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationGlobalYServiceImpl.java
@@ -1,10 +1,10 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.njcn.harmonic.pojo.po.dim.RDimStationGlobalY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationGlobalYMapper;
-import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationGlobalYService;
import org.springframework.stereotype.Service;
/**
@@ -16,6 +16,6 @@ import org.springframework.stereotype.Service;
* @since 2023-11-14
*/
@Service
-public class RDimStationGlobalYServiceImpl extends ServiceImpl implements IRDimStationGlobalYService {
+public class RDimStationGlobalYServiceImpl extends ServiceImpl implements IService {
}
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetDServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetDServiceImpl.java
index aa08d0b07..911a61ae2 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetDServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetDServiceImpl.java
@@ -4,6 +4,7 @@ package com.njcn.prepare.harmonic.service.mysql.dim.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
import com.njcn.common.pojo.enums.common.DataStateEnum;
import com.njcn.device.biz.pojo.dto.DeptGetBase;
import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
@@ -31,7 +32,7 @@ import java.util.stream.Collectors;
*/
@Service
@RequiredArgsConstructor
-public class RDimStationTargetDServiceImpl extends ServiceImpl implements IRDimStationTargetDService {
+public class RDimStationTargetDServiceImpl extends MppServiceImpl implements IRDimStationTargetDService {
private final IRDimStationBaseDService irDimStationBaseDService;
@@ -58,7 +59,7 @@ public class RDimStationTargetDServiceImpl extends ServiceImpl> voltageMap = rDimStationBaseDList.stream().collect(Collectors.groupingBy(RDimStationBaseD::getVoltageLevel));
voltageMap.forEach((voltageKey,voltageVal)->{
- int stationNum = voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().collect(Collectors.toList()).size();
+ long stationNum = voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().count();
Map> targetMap = voltageVal.stream().collect(Collectors.groupingBy(RDimStationBaseD::getTargetType));
targetMap.forEach((targetKey,targetVal)->{
@@ -80,7 +81,7 @@ public class RDimStationTargetDServiceImpl extends ServiceImpl implements IRDimStationTargetMService {
+public class RDimStationTargetMServiceImpl extends MppServiceImpl implements IRDimStationTargetMService {
private final IRDimStationBaseDService irDimStationBaseDService;
diff --git a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetYServiceImpl.java b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetYServiceImpl.java
index 924cc77af..f10389539 100644
--- a/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetYServiceImpl.java
+++ b/pqs-prepare/prepare-boot/src/main/java/com/njcn/prepare/harmonic/service/mysql/dim/impl/RDimStationTargetYServiceImpl.java
@@ -1,12 +1,31 @@
package com.njcn.prepare.harmonic.service.mysql.dim.impl;
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.github.jeffreyning.mybatisplus.service.MppServiceImpl;
+import com.njcn.common.pojo.enums.common.DataStateEnum;
+import com.njcn.device.biz.pojo.dto.DeptGetBase;
+import com.njcn.harmonic.pojo.po.dim.RDimStationBaseD;
+import com.njcn.harmonic.pojo.po.dim.RDimStationTargetM;
import com.njcn.harmonic.pojo.po.dim.RDimStationTargetY;
import com.njcn.prepare.harmonic.mapper.mysql.dim.RDimStationTargetYMapper;
+import com.njcn.prepare.harmonic.pojo.bo.CalculatedParam;
+import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationBaseDService;
import com.njcn.prepare.harmonic.service.mysql.dim.IRDimStationTargetYService;
+import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
+import java.time.LocalDate;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
/**
*
* 服务实现类
@@ -16,6 +35,61 @@ import org.springframework.stereotype.Service;
* @since 2023-11-21
*/
@Service
-public class RDimStationTargetYServiceImpl extends ServiceImpl implements IRDimStationTargetYService {
+@RequiredArgsConstructor
+public class RDimStationTargetYServiceImpl extends MppServiceImpl implements IRDimStationTargetYService {
+ private final IRDimStationBaseDService irDimStationBaseDService;
+
+ @Override
+ public void calDimStationTargetYear(CalculatedParam calculatedParam) {
+ List poList = new ArrayList<>();
+ DateTime start = DateUtil.beginOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
+ DateTime end = DateUtil.endOfYear(DateUtil.parse(calculatedParam.getDataDate(), DatePattern.NORM_DATE_PATTERN));
+
+ List deptList = calculatedParam.getIdList();
+
+ for(DeptGetBase deptGetBase : deptList){
+ List deptCodes = deptGetBase.getUnitChildrenList();
+
+ LambdaQueryWrapper lambdaQueryWrapper = new LambdaQueryWrapper<>();
+ lambdaQueryWrapper.in(RDimStationBaseD::getOrgId,deptCodes)
+ .between(RDimStationBaseD::getStatisDate,start,end).eq(RDimStationBaseD::getLevel,0);
+
+ List rDimStationBaseDList = irDimStationBaseDService.list(lambdaQueryWrapper);
+ if(CollectionUtil.isEmpty(rDimStationBaseDList)){
+ continue;
+ }
+
+
+ Map> voltageMap = rDimStationBaseDList.stream().collect(Collectors.groupingBy(RDimStationBaseD::getVoltageLevel));
+ voltageMap.forEach((voltageKey,voltageVal)->{
+ int stationNum = (int) voltageVal.stream().map(RDimStationBaseD::getStationId).distinct().count();
+ int stationAllNum = (int) voltageVal.stream().map(RDimStationBaseD::getStationId).count();
+
+ Map> targetMap = voltageVal.stream().collect(Collectors.groupingBy(RDimStationBaseD::getTargetType));
+ targetMap.forEach((targetKey,targetVal)->{
+ RDimStationTargetY rDimStationTargetY = new RDimStationTargetY();
+ rDimStationTargetY.setOrgId(deptGetBase.getUnitId());
+ rDimStationTargetY.setStatisDate(LocalDate.parse(calculatedParam.getDataDate()));
+ rDimStationTargetY.setVoltageLevel(voltageKey);
+ rDimStationTargetY.setTargetType(targetKey);
+
+ List limitList = targetVal.stream().filter(targetItem->targetItem.getLimitCount()>0).map(RDimStationBaseD::getStationId).distinct().collect(Collectors.toList());
+ rDimStationTargetY.setLimitRate((double) (limitList.size() / stationNum));
+
+ long limitAllList = targetVal.stream().filter(targetItem->targetItem.getLimitCount()>0).map(RDimStationBaseD::getStationId).count();
+ rDimStationTargetY.setLimitAvgRate((double) (limitAllList / stationAllNum));
+
+ //**kV变电站**指标合格率(%)
+ int limit = targetVal.stream().mapToInt(RDimStationBaseD::getLimitCount).sum();
+ int all = targetVal.stream().mapToInt(RDimStationBaseD::getStatisCount).sum();
+ rDimStationTargetY.setPassRate((double)(all-limit)/all);
+ rDimStationTargetY.setPassAvgRate((double)(all-limit)/all);
+ rDimStationTargetY.setState(DataStateEnum.ENABLE.getCode());
+ poList.add(rDimStationTargetY);
+ });
+ });
+ this.saveOrUpdateBatchByMultiId(poList,100);
+ }
+ }
}