Ver Fonte

+ 大屏接口研发,《源》

chen.cheng há 10 meses atrás
pai
commit
796f780300

+ 33 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecUseHController.java

@@ -113,4 +113,37 @@ public class ElecUseHController extends BaseController {
     public AjaxResult getAreaMonthUseSupply(@RequestParam("area") String area) {
         return success(elecUseHService.selectElecAndPower(area));
     }
+
+    /**
+     * 荷-近一年用能
+     *
+     * @param area
+     * @return
+     */
+    @GetMapping("/area/month/elec/use")
+    public AjaxResult getAreaMonthElecUse(@RequestParam(value = "area", required = false) String area) {
+        return success(elecUseHService.selectMonthElecUse(area));
+    }
+
+    /**
+     * 荷-当日用能-设备类型占比
+     *
+     * @param area
+     * @return
+     */
+    @GetMapping("/area/thisday/fac/type/elec/use")
+    public AjaxResult getAreaThisDayFacTypeElecUse(@RequestParam(value = "area", required = false) String area) {
+        return success(elecUseHService.selectThisDayFacsTypeElecUse(area));
+    }
+
+    /**
+     * 荷-当日用能
+     *
+     * @param area
+     * @return
+     */
+    @GetMapping("/area/thisday/elec/use")
+    public AjaxResult getAreaThisDayElecUse(@RequestParam(value = "area", required = false) String area) {
+        return success(elecUseHService.selectThisDayAreaElecUse(area));
+    }
 }

+ 28 - 14
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/EmsFacsController.java

@@ -1,16 +1,9 @@
 package com.ruoyi.ems.controller;
 
-import com.ruoyi.common.core.utils.StringUtils;
-import com.ruoyi.common.core.utils.poi.ExcelUtil;
-import com.ruoyi.common.core.web.controller.BaseController;
-import com.ruoyi.common.core.web.domain.AjaxResult;
-import com.ruoyi.common.core.web.page.TableDataInfo;
-import com.ruoyi.common.log.annotation.Log;
-import com.ruoyi.common.log.enums.BusinessType;
-import com.ruoyi.common.security.annotation.RequiresPermissions;
-import com.ruoyi.ems.domain.EmsFacs;
-import com.ruoyi.ems.service.IEmsFacsService;
-import io.swagger.annotations.Api;
+import java.util.List;
+
+import javax.servlet.http.HttpServletResponse;
+
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -22,12 +15,22 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import javax.servlet.http.HttpServletResponse;
-import java.util.List;
+import com.ruoyi.common.core.utils.StringUtils;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.ems.domain.EmsFacs;
+import com.ruoyi.ems.service.IEmsFacsService;
+
+import io.swagger.annotations.Api;
 
 /**
  * 能源设施/系统Controller
- * 
+ *
  * @author ruoyi
  * @date 2024-07-10
  */
@@ -121,4 +124,15 @@ public class EmsFacsController extends BaseController
 
         return success(emsFacsService.selectEmsFacsList(emsFacs));
     }
+
+    /**
+     * 网-服务区日功率指标
+     *
+     * @param areaCode
+     * @return
+     */
+    @GetMapping("/area/day/power/index")
+    public AjaxResult qryAreaDayPowerIndex(@RequestParam("areaCode") String areaCode) {
+        return success(emsFacsService.qryAreaDayPowerIndex(areaCode));
+    }
 }

+ 5 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/AdmEmsElecPgIndexMapper.java

@@ -66,4 +66,9 @@ public interface AdmEmsElecPgIndexMapper {
 
     @MapKey("facsCode")
     Map<String, Map<String, Object>> qryLatestObjIndex(@Param("set") List<String> set);
+
+    @MapKey("dateIndex")
+    Map<String, Map<String, Object>> qryAreaDayPowerIndex(
+        @Param("areaCode") String areaCode, @Param("date") String date);
+
 }

+ 8 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/ElecUseHMapper.java

@@ -3,6 +3,7 @@ package com.ruoyi.ems.mapper;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.ibatis.annotations.MapKey;
 import org.apache.ibatis.annotations.Param;
 
 import com.ruoyi.ems.domain.ElecUseH;
@@ -64,4 +65,11 @@ public interface ElecUseHMapper
      int deleteElecUseHByIds(Long[] ids);
 
     List<Map<String, Object>> selectElecUseHByMonth(@Param("areaCode") String areaCode, @Param("date") String date);
+
+    @MapKey("areaCode")
+    Map<String, Object> selectThisDayElecUse(@Param("areaCode") String areaCode, @Param("date") String date);
+
+    List<Map<String, Object>> selectMonthElecUse(@Param("areaCode") String areaCode, @Param("date") String date);
+
+    List<Map<String, Object>> selectThisDayFacsTypeElecUse(@Param("areaCode") String areaCode, @Param("date") String date);
 }

+ 13 - 8
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecUseHService.java

@@ -11,15 +11,14 @@ import com.ruoyi.ems.domain.ElecUseH;
  * @author ruoyi
  * @date 2024-08-15
  */
-public interface IElecUseHService
-{
+public interface IElecUseHService {
     /**
      * 查询用能计量-小时
      *
      * @param id 用能计量-小时主键
      * @return 用能计量-小时
      */
-     ElecUseH selectElecUseHById(Long id);
+    ElecUseH selectElecUseHById(Long id);
 
     /**
      * 查询用能计量-小时列表
@@ -27,7 +26,7 @@ public interface IElecUseHService
      * @param elecUseH 用能计量-小时
      * @return 用能计量-小时集合
      */
-     List<ElecUseH> selectElecUseHList(ElecUseH elecUseH);
+    List<ElecUseH> selectElecUseHList(ElecUseH elecUseH);
 
     /**
      * 新增用能计量-小时
@@ -35,7 +34,7 @@ public interface IElecUseHService
      * @param elecUseH 用能计量-小时
      * @return 结果
      */
-     int insertElecUseH(ElecUseH elecUseH);
+    int insertElecUseH(ElecUseH elecUseH);
 
     /**
      * 修改用能计量-小时
@@ -43,7 +42,7 @@ public interface IElecUseHService
      * @param elecUseH 用能计量-小时
      * @return 结果
      */
-     int updateElecUseH(ElecUseH elecUseH);
+    int updateElecUseH(ElecUseH elecUseH);
 
     /**
      * 批量删除用能计量-小时
@@ -51,7 +50,7 @@ public interface IElecUseHService
      * @param ids 需要删除的用能计量-小时主键集合
      * @return 结果
      */
-     int deleteElecUseHByIds(Long[] ids);
+    int deleteElecUseHByIds(Long[] ids);
 
     /**
      * 删除用能计量-小时信息
@@ -59,10 +58,16 @@ public interface IElecUseHService
      * @param id 用能计量-小时主键
      * @return 结果
      */
-     int deleteElecUseHById(Long id);
+    int deleteElecUseHById(Long id);
 
     /**
      * 查询用能和发电量
      */
     List<Map> selectElecAndPower(String areaCode);
+
+    Map<String, List<Map<String, Object>>> selectMonthElecUse(String areaCode);
+
+    List<Map<String, Object>> selectThisDayFacsTypeElecUse(String areaCode);
+
+    Map<String, Object> selectThisDayAreaElecUse(String areaCode);
 }

+ 6 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IEmsFacsService.java

@@ -1,6 +1,8 @@
 package com.ruoyi.ems.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.ruoyi.ems.domain.EmsFacs;
 
 /**
@@ -72,4 +74,8 @@ public interface IEmsFacsService {
      * @return 结果
      */
     int deleteEmsFacsById(Long id);
+
+    List<String> inspectFacIndex();
+
+    Map<String, Map<String, Object>> qryAreaDayPowerIndex(String areaCode);
 }

+ 19 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecUseHServiceImpl.java

@@ -122,4 +122,23 @@ public class ElecUseHServiceImpl implements IElecUseHService {
         }
         return result;
     }
+
+    @Override
+    public Map<String, List<Map<String, Object>>> selectMonthElecUse(String areaCode) {
+        String date = DateTimeUtil.getFirstDayOfRecentYear();
+        List<Map<String, Object>> areaData = elecUseHMapper.selectMonthElecUse(areaCode, date);
+        return StreamUtils.groupByKey(areaData, map -> MapUtil.getStr(map, "areaCode"));
+    }
+
+    @Override
+    public List<Map<String, Object>> selectThisDayFacsTypeElecUse(String areaCode) {
+        String date = DateTimeUtil.currentDateTime(DateTimeUtil.DateFormatter.yyyy_MM_dd);
+        return elecUseHMapper.selectThisDayFacsTypeElecUse(areaCode, date);
+    }
+
+    @Override
+    public Map<String, Object> selectThisDayAreaElecUse(String areaCode) {
+        String date = DateTimeUtil.currentDateTime(DateTimeUtil.DateFormatter.yyyy_MM_dd);
+        return elecUseHMapper.selectThisDayElecUse(areaCode, date);
+    }
 }

+ 7 - 28
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/EmsFacsServiceImpl.java

@@ -14,11 +14,10 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.ruoyi.common.core.enums.FacTypes;
+import com.ruoyi.common.core.utils.DateTimeUtil;
 import com.ruoyi.common.core.utils.DateUtils;
 import com.ruoyi.common.core.utils.ExpressUtil;
 import com.ruoyi.common.core.utils.StreamUtils;
-import com.ruoyi.ems.domain.AdmEmsElecPgIndex;
-import com.ruoyi.ems.domain.AdmEmsIndexRange;
 import com.ruoyi.ems.domain.EmsFacs;
 import com.ruoyi.ems.domain.EmsFacsAbility;
 import com.ruoyi.ems.domain.EmsFacsAttr;
@@ -32,7 +31,6 @@ import com.ruoyi.ems.service.IEmsFacsAttrService;
 import com.ruoyi.ems.service.IEmsFacsEventService;
 import com.ruoyi.ems.service.IEmsFacsService;
 
-import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.map.MapUtil;
@@ -211,6 +209,7 @@ public class EmsFacsServiceImpl implements IEmsFacsService {
         return emsFacsMapper.deleteEmsFacsById(id);
     }
 
+    @Override
     public List<String> inspectFacIndex() {
         List<Map<String, Object>> admEmsIndexRanges = admEmsIndexRangeMapper.selectAdmEmsIndexRange();
         Map<String, List<Map<String, Object>>> facTypeRangeMap = StreamUtils.groupByKey(admEmsIndexRanges,
@@ -234,6 +233,11 @@ public class EmsFacsServiceImpl implements IEmsFacsService {
         return errorReport;
     }
 
+    @Override
+    public Map<String, Map<String, Object>> qryAreaDayPowerIndex(String areaCode) {
+        String firstDayOfRecentMonth = DateTimeUtil.getFirstDayOfRecentMonth();
+        return admEmsElecPgIndexMapper.qryAreaDayPowerIndex(areaCode, firstDayOfRecentMonth);
+    }
     private void pgIndexInspection(List<String> errorReport,
         Map.Entry<String, List<Map<String, Object>>> facTypeRange) {
         Map<String, List<Map<String, Object>>> objCodeRangeMap = StreamUtils.groupByKey(facTypeRange.getValue(),
@@ -267,31 +271,6 @@ public class EmsFacsServiceImpl implements IEmsFacsService {
         }
     }
 
-    public static void main(String[] args) {
-        List<Map<String, Object>> admEmsIndexRanges = new ArrayList<>();
-        admEmsIndexRanges.add(BeanUtil.beanToMap(new AdmEmsIndexRange() {
-            {
-                setFacsType(FacTypes.PRODUCT.getCode());
-                setIndexName("voltage");
-                setIndexUpperLimit(225.0D);
-                setIndexLowerLimit(220.1D);
-            }
-        }, "facsType", "indexName", "indexUpperLimit", "indexLowerLimit"));
-        admEmsIndexRanges.add(BeanUtil.beanToMap(new AdmEmsIndexRange() {
-            {
-                setFacsType(FacTypes.PRODUCT.getCode());
-                setIndexName("electricity");
-                setIndexUpperLimit(225.0D);
-                setIndexLowerLimit(220.1D);
-            }
-        }, "facsType", "indexName", "indexUpperLimit", "indexLowerLimit"));
-        System.out.println(ExpressUtil.hitExpress(new AdmEmsElecPgIndex() {
-            {
-                setVoltage(220.1D);
-                setElectricity(1.1D);
-            }
-        }, admEmsIndexRanges));
-    }
 
     private List<EmsFacsAttr> getFacsAttrs(EmsFacs emsFacs) {
         EmsFacsAttr param = new EmsFacsAttr(emsFacs.getFacsCode());

+ 19 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AdmEmsElecPgIndexMapper.xml

@@ -103,4 +103,23 @@
         f.num =1
     </select>
 
+    <select id="qryAreaDayPowerIndex" resultType="Map">
+        SELECT avgIndex.area_code areaCode,
+               DATE_FORMAT(avgIndex.DATE, '%Y-%m-%d') AS dateIndex,
+               sum(power)                                power
+        FROM (SELECT pgIndex.area_code,
+                     pgIndex.DATE,
+                     pgIndex.facs_code,
+                     AVG(power) power
+              FROM adm_ems_elec_pg_index pgIndex
+              WHERE area_code = #{areaCode}
+                AND pgIndex.DATE >= #{date}
+                AND power > 0
+              GROUP BY pgIndex.area_code,
+                       pgIndex.DATE,
+                       pgIndex.facs_code) avgIndex
+        GROUP BY avgIndex.area_code,
+                 dateIndex
+    </select>
+
 </mapper>

+ 59 - 3
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecUseHMapper.xml

@@ -101,12 +101,68 @@
     </delete>
 
     <select id="selectElecUseHByMonth" resultType="Map">
-        SELECT area_code,
+        SELECT area_code areaCode,
+        DATE_FORMAT(date, '%Y-%m') AS dateIndex,
+        SUM(elec_quantity) as elecQuantity
+        FROM adm_ems_facs_use_h
+        <where>
+            <if test="areaCode != null and areaCode != ''">
+                and area_code = #{areaCode}
+            </if>
+            <if test="date != null and date != ''">
+                and DATE >= #{date}
+            </if>
+        </where>
+        GROUP BY
+        area_code,
+        dateIndex
+    </select>
+
+    <select id="selectThisDayElecUse" resultType="Map">
+        SELECT area_code areaCode,
+        DATE_FORMAT(date, '%Y-%m-%d') AS dateIndex,
+        SUM(elec_quantity) as elecQuantity
+        FROM adm_ems_facs_use_h
+        <where>
+            <if test="areaCode != null and areaCode != ''">
+                and area_code = #{areaCode}
+            </if>
+            <if test="date != null and date != ''">
+                and DATE >= #{date}
+            </if>
+        </where>
+        GROUP BY
+        area_code,
+        dateIndex
+    </select>
+
+    <select id="selectThisDayFacsTypeElecUse" resultType="Map">
+        SELECT subtype.`name`,
+        DATE_FORMAT(DATE, '%Y-%m-%d') AS dateIndex,
+        SUM(elec_quantity) AS elecQuantity
+        FROM adm_ems_facs_use_h facUse
+        inner JOIN adm_ems_facs facs ON facUse.facs_code = facs.facs_code
+        <if test="areaCode != null and areaCode != ''">
+            and facUse.area_code = #{areaCode}
+        </if>
+        LEFT JOIN dim_ems_facs_subtype subtype ON facs.facs_subtype = subtype.`code`
+        AND subtype.parent_code = 'Z'
+        WHERE
+        DATE >= #{date}
+        GROUP BY
+        subtype.`name`,
+        dateIndex
+    </select>
+
+    <select id="selectMonthElecUse" resultType="Map">
+        SELECT area_code                     areaCode,
                DATE_FORMAT(date, '%Y-%m') AS dateIndex,
                SUM(elec_quantity)         as elecQuantity
         FROM adm_ems_facs_use_h
-        WHERE area_code = #{areaCode}
-          AND DATE >= #{date}
+        WHERE DATE >= #{date}
+        <if test="areaCode != null and areaCode != ''">
+            and area_code = #{areaCode}
+        </if>
         GROUP BY
             area_code,
             dateIndex

+ 1 - 2
ems-cloud/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/DateTimeUtil.java

@@ -536,7 +536,6 @@ public class DateTimeUtil {
         // 计算近一年的年份
         int recentYear = today.getYear() - 1;
 
-        // 使用 TemporalAdjusters 来找到近一年的第一天
         LocalDate localDate = LocalDate.of(recentYear, today.getMonth(), 1);
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormat);
         return localDate.format(formatter);
@@ -563,7 +562,7 @@ public class DateTimeUtil {
         // 获取当前日期
         LocalDate today = LocalDate.now();
         // 使用 TemporalAdjusters 来找到近一个月的第一天
-        LocalDate with = today.minusMonths(1).with(TemporalAdjusters.firstDayOfMonth());
+        LocalDate with = today.minusMonths(1);
         DateTimeFormatter formatter = DateTimeFormatter.ofPattern(dateFormat);
         return with.format(formatter);
     }