Răsfoiți Sursa

负荷指标接口

lv.wenbin 9 luni în urmă
părinte
comite
1513d30cb0

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecLoadIndexController.java

@@ -49,7 +49,7 @@ public class ElecLoadIndexController extends BaseController {
 
     @GetMapping("/min/15/getMaxLoad")
     public AjaxResult getMin15MaxLoad(QueryIndex index) {
-        Double maxLoad = indexService.selectMin15IndexMaxLoad(index);
+        ElecLoadIndex maxLoad = indexService.selectMin15IndexMaxLoad(index);
         return success(maxLoad);
     }
 

+ 13 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecLoadIndex.java

@@ -116,6 +116,10 @@ public class ElecLoadIndex extends BaseEntity
     @Excel(name = "C相无功总功率")
     private Double qc;
 
+    /** 视在功率 */
+    @Excel(name = "视在功率")
+    private Double s;
+
     /** 功率因素 */
     @Excel(name = "功率因素")
     private Double pf;
@@ -296,6 +300,14 @@ public class ElecLoadIndex extends BaseEntity
         this.qc = qc;
     }
 
+    public Double getS() {
+        return s;
+    }
+
+    public void setS(Double s) {
+        this.s = s;
+    }
+
     public Double getPf() {
         return pf;
     }
@@ -353,6 +365,7 @@ public class ElecLoadIndex extends BaseEntity
             .append("qa", getQa())
             .append("qb", getQb())
             .append("qc", getQc())
+            .append("s", getS())
             .append("pf", getPf())
             .toString();
     }

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/ElecLoadIndex15minMapper.java

@@ -46,7 +46,7 @@ public interface ElecLoadIndex15minMapper {
      * @param queryIndex 查询条件
      * @return 电力负荷设施指标集合
      */
-    Double selectIndexMaxLoad(QueryIndex queryIndex);
+    ElecLoadIndex selectIndexMaxLoad(QueryIndex queryIndex);
 
     /**
      * 查询每日电力负荷设施指标(最大负荷)

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecLoadIndexService.java

@@ -35,7 +35,7 @@ public interface IElecLoadIndexService {
      * @param queryIndex 条件
      * @return 结果
      */
-    Double selectMin15IndexMaxLoad(QueryIndex queryIndex);
+    ElecLoadIndex selectMin15IndexMaxLoad(QueryIndex queryIndex);
 
     /**
      * 查询日最大功率负荷

+ 27 - 4
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecLoadIndexServiceImpl.java

@@ -1,8 +1,10 @@
 package com.ruoyi.ems.service.impl;
 
+import java.math.BigDecimal;
 import java.util.List;
 
 import com.ruoyi.ems.domain.vo.QueryIndex;
+import com.ruoyi.ems.util.PowerUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.ruoyi.ems.mapper.ElecLoadIndex15minMapper;
@@ -34,17 +36,38 @@ public class ElecLoadIndexServiceImpl implements IElecLoadIndexService {
      */
     @Override
     public List<ElecLoadIndex> selectMin15IndexList(QueryIndex queryIndex) {
-        return index15minMapper.selectIndexList(queryIndex);
+        List<ElecLoadIndex> indexList = index15minMapper.selectIndexList(queryIndex);
+
+        for (ElecLoadIndex index : indexList) {
+            index.setS(PowerUtils.getSPower(index.getP(), index.getQ()));
+            index.setPf(PowerUtils.getPF(index.getP(), index.getS()));
+        }
+
+        return indexList;
     }
 
     @Override
-    public Double selectMin15IndexMaxLoad(QueryIndex queryIndex) {
-        return index15minMapper.selectIndexMaxLoad(queryIndex);
+    public ElecLoadIndex selectMin15IndexMaxLoad(QueryIndex queryIndex) {
+        ElecLoadIndex index = index15minMapper.selectIndexMaxLoad(queryIndex);
+
+        if (null != index) {
+            index.setS(PowerUtils.getSPower(index.getP(), index.getQ()));
+            index.setPf(PowerUtils.getPF(index.getP(), index.getS()));
+        }
+
+        return index;
     }
 
     @Override
     public List<ElecLoadIndex> selectDayIndexMaxLoad(QueryIndex queryIndex) {
-        return index15minMapper.selectDayIndexMaxLoad(queryIndex);
+        List<ElecLoadIndex> indexList = index15minMapper.selectDayIndexMaxLoad(queryIndex);
+
+        for (ElecLoadIndex index : indexList) {
+            index.setS(PowerUtils.getSPower(index.getP(), index.getQ()));
+            index.setPf(PowerUtils.getPF(index.getP(), index.getS()));
+        }
+
+        return indexList;
     }
 
     /**

+ 57 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/util/PowerUtils.java

@@ -0,0 +1,57 @@
+/*
+ * 文 件 名:  PowerUtils
+ * 版    权:  浩鲸云计算科技股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2024/10/21
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.util;
+
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+
+/**
+ * 电力工具类
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2024/10/21]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public abstract class PowerUtils {
+    /**
+     * 计算视在功率
+     *
+     * @param pPower 有功功率
+     * @param qPower 无功功率
+     * @return 视在功率
+     */
+    public static double getSPower(Double pPower, Double qPower) {
+        BigDecimal pValue = new BigDecimal(pPower.toString());
+        BigDecimal qValue = new BigDecimal(qPower.toString());
+
+        BigDecimal pValueM = pValue.multiply(pValue);
+        BigDecimal qValueM = qValue.multiply(qValue);
+        BigDecimal tmp = pValueM.add(qValueM).setScale(2, RoundingMode.HALF_UP);
+
+        return Math.sqrt(tmp.doubleValue());
+    }
+
+    /**
+     * 计算功率因素
+     *
+     * @param pPower 有功功率
+     * @param sPower 视在功率
+     * @return 视在功率
+     */
+    public static double getPF(Double pPower, Double sPower) {
+        BigDecimal pValue = new BigDecimal(pPower.toString());
+        BigDecimal sValue = new BigDecimal(sPower.toString());
+        BigDecimal tmp = pValue.divide(sValue, 2, RoundingMode.HALF_UP);
+        return tmp.doubleValue();
+    }
+}

+ 11 - 7
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecLoadIndex15minMapper.xml

@@ -105,14 +105,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY i.`record_time`
     </select>
 
-    <select id="selectIndexMaxLoad" parameterType="com.ruoyi.ems.domain.ElecLoadIndex" resultType="java.lang.Double">
+    <select id="selectIndexMaxLoad" parameterType="com.ruoyi.ems.domain.ElecLoadIndex" resultMap="indexResult">
         SELECT
-            MAX(t.total_p) AS p
+            MAX(t.total_p) AS p,
+            MAX(t.total_q) AS q
         FROM (
             SELECT
              i.`date` as date_part,
              i.`time` as time_part,
-             SUM(p) AS total_p
+             SUM(p) AS total_p,
+             SUM(q) AS total_q
             FROM
         adm_ems_elec_load_index_15min i
         <if test="(facsCategory != null  and facsCategory != '') or (facsSubCategory != null  and facsSubCategory != '')">
@@ -138,12 +140,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectDayIndexMaxLoad" parameterType="com.ruoyi.ems.domain.ElecLoadIndex" resultMap="indexResult">
         SELECT
-            date_part as `date`,
-            MAX(total_p) AS p
+            t.date_part as `date`,
+            MAX(t.total_p) AS p,
+            MAX(t.total_q) AS q
         FROM (
              SELECT
                DATE(record_time) AS date_part,
-               SUM(p) AS total_p
+               SUM(p) AS total_p,
+               SUM(q) AS total_q
             FROM
         adm_ems_elec_load_index_15min i
         <if test="(facsCategory != null  and facsCategory != '') or (facsSubCategory != null  and facsSubCategory != '')">
@@ -165,7 +169,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         GROUP BY
             i.`date`,
             i.`time`
-            ) AS power_sums
+            ) AS t
         GROUP BY
             date_part
         ORDER BY