Эх сурвалжийг харах

Merge remote-tracking branch 'origin/master'

chen.cheng 5 сар өмнө
parent
commit
079e05c839
18 өөрчлөгдсөн 395 нэмэгдсэн , 57 устгасан
  1. 15 4
      ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/ElecMeterHController.java
  2. 3 3
      ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/MeterBoundaryController.java
  3. 10 2
      ems/ems-core/src/main/java/com/ruoyi/ems/mapper/ElecMeterHMapper.java
  4. 7 0
      ems/ems-core/src/main/java/com/ruoyi/ems/mapper/FacsCategoryMapper.java
  5. 7 0
      ems/ems-core/src/main/java/com/ruoyi/ems/mapper/FacsSubCategoryMapper.java
  6. 12 3
      ems/ems-core/src/main/java/com/ruoyi/ems/service/IBoundaryObjService.java
  7. 9 1
      ems/ems-core/src/main/java/com/ruoyi/ems/service/IElecMeterHService.java
  8. 41 0
      ems/ems-core/src/main/java/com/ruoyi/ems/service/IEmsCommonCache.java
  9. 7 0
      ems/ems-core/src/main/java/com/ruoyi/ems/service/IFacsCategoryService.java
  10. 7 0
      ems/ems-core/src/main/java/com/ruoyi/ems/service/IFacsSubCategoryService.java
  11. 53 1
      ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/BoundaryObjServiceImpl.java
  12. 7 2
      ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/ElecMeterHServiceImpl.java
  13. 106 0
      ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/EmsCommonCacheImpl.java
  14. 16 0
      ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/FacsCategoryServiceImpl.java
  15. 6 0
      ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/FacsSubCategoryServiceImpl.java
  16. 81 41
      ems/ems-core/src/main/resources/mapper/ems/ElecMeterHMapper.xml
  17. 4 0
      ems/ems-core/src/main/resources/mapper/ems/FacsCategoryMapper.xml
  18. 4 0
      ems/ems-core/src/main/resources/mapper/ems/FacsSubCategoryMapper.xml

+ 15 - 4
ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/ElecMeterHController.java

@@ -54,14 +54,25 @@ public class ElecMeterHController extends BaseController {
     }
 
     /**
-     * 条件查询用能指标
+     * 查询设施用能统计数据
      * @param queryMeter 查询条件
      * @return
      */
-    @GetMapping("/hour/listByFacs")
-    public TableDataInfo listByFacs(QueryMeter queryMeter) {
-        startPage();
+    @GetMapping("/hour/listFacsMeterTotal")
+    public AjaxResult listFacsMeterTotal(QueryMeter queryMeter) {
         List<ElecMeter> list = boundaryObjService.getMeterStatisticsByFacs(queryMeter);
+        return success(list);
+    }
+
+    /**
+     * 查询设施用能统计数据
+     * @param queryMeter 查询条件
+     * @return
+     */
+    @GetMapping("/hour/listFacsMeter")
+    public TableDataInfo listFacsMeter(QueryMeter queryMeter) {
+        startPage();
+        List<ElecMeterH> list = boundaryObjService.getMeterByFacs(queryMeter);
         return getDataTable(list);
     }
 

+ 3 - 3
ems/ems-cloud/ems-server/src/main/java/com/ruoyi/ems/controller/MeterBoundaryController.java

@@ -67,7 +67,7 @@ public class MeterBoundaryController extends BaseController {
     @Log(title = "计量设备绑定边界对象关系", businessType = BusinessType.INSERT)
     @PostMapping("/addBatch")
     public AjaxResult addBatch(@RequestBody List<MeterBoundaryRel> list) {
-        return toAjax(relService.insertRelBatch(list));
+        return success(relService.insertRelBatch(list));
     }
 
     /**
@@ -87,7 +87,7 @@ public class MeterBoundaryController extends BaseController {
             cnt = relService.insertRelBatch(list);
         }
 
-        return toAjax(cnt);
+        return success(cnt);
     }
 
     /**
@@ -98,6 +98,6 @@ public class MeterBoundaryController extends BaseController {
     @DeleteMapping("/delByObj")
     public AjaxResult delByObj(@RequestParam(value = "objType") Integer objType,
         @RequestParam(value = "boundaryObj") String boundaryObj, @RequestParam(value = "meterCls") Integer meterCls) {
-        return toAjax(relService.deleteRelByObj(objType, boundaryObj, meterCls));
+        return success(relService.deleteRelByObj(objType, boundaryObj, meterCls));
     }
 }

+ 10 - 2
ems/ems-core/src/main/java/com/ruoyi/ems/mapper/ElecMeterHMapper.java

@@ -1,7 +1,7 @@
 package com.ruoyi.ems.mapper;
 
-import com.ruoyi.ems.domain.ElecMeterH;
 import com.ruoyi.ems.domain.ElecMeter;
+import com.ruoyi.ems.domain.ElecMeterH;
 import com.ruoyi.ems.model.QueryMeter;
 import org.apache.ibatis.annotations.Param;
 
@@ -28,7 +28,15 @@ public interface ElecMeterHMapper {
      * @param queryMeter 查询计量条件
      * @return 用电计量-小时集合
      */
-    ElecMeter selectElecMeterSumHByDev(QueryMeter queryMeter);
+    ElecMeter selectElecMeterSumByDev(QueryMeter queryMeter);
+
+    /**
+     * 查询用电计量-小时列表
+     *
+     * @param queryMeter 查询计量条件
+     * @return 用电计量-小时集合
+     */
+    List<ElecMeterH> selectElecMeterByDev(QueryMeter queryMeter);
 
     /**
      * 新增用电计量-小时

+ 7 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/mapper/FacsCategoryMapper.java

@@ -30,6 +30,13 @@ public interface FacsCategoryMapper {
     /**
      * 查询能源设施/系统分类列表
      *
+     * @return 能源设施/系统分类集合
+     */
+    List<FacsCategory> selectCategoryAll();
+
+    /**
+     * 查询能源设施/系统分类列表
+     *
      * @param category 能源设施/系统分类
      * @return 能源设施/系统分类集合
      */

+ 7 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/mapper/FacsSubCategoryMapper.java

@@ -22,6 +22,13 @@ public interface FacsSubCategoryMapper {
     /**
      * 查询能源设施/系统子类列表
      *
+     * @return 能源设施/系统子类集合
+     */
+    List<FacsSubCategory> selectSubCategoryAll();
+
+    /**
+     * 查询能源设施/系统子类列表
+     *
      * @param subCategory 能源设施/系统子类
      * @return 能源设施/系统子类集合
      */

+ 12 - 3
ems/ems-core/src/main/java/com/ruoyi/ems/service/IBoundaryObjService.java

@@ -10,6 +10,7 @@
  */
 package com.ruoyi.ems.service;
 
+import com.ruoyi.ems.domain.ElecMeterH;
 import com.ruoyi.ems.model.BoundaryObj;
 import com.ruoyi.ems.domain.ElecMeter;
 import com.ruoyi.ems.model.QueryMeter;
@@ -35,10 +36,18 @@ public interface IBoundaryObjService {
     BoundaryObj getBoundaryByArea(String areaCode);
 
     /**
-     * 查询用电计量-根据边界对象
+     * 查询用电计量统计-根据边界对象
      *
-     * @param queryMeter
-     * @return
+     * @param queryMeter 查询条件
+     * @return 用电计量统计结果
      */
     List<ElecMeter> getMeterStatisticsByFacs(QueryMeter queryMeter);
+
+    /**
+     * 查询用电计量-根据边界对象
+     *
+     * @param queryMeter 查询条件
+     * @return 用电计量结果
+     */
+    List<ElecMeterH> getMeterByFacs(QueryMeter queryMeter);
 }

+ 9 - 1
ems/ems-core/src/main/java/com/ruoyi/ems/service/IElecMeterHService.java

@@ -24,12 +24,20 @@ public interface IElecMeterHService {
     /**
      * 统计用电计量-根据边界对象
      *
-     * @param queryMeter
+     * @param queryMeter 查询条件
      * @return
      */
     ElecMeter staByMeterDev(QueryMeter queryMeter);
 
     /**
+     * 统计用电计量-根据边界对象
+     *
+     * @param queryMeter 查询条件
+     * @return 用电计量-小时集合
+     */
+    List<ElecMeterH> selectByMeterDev(QueryMeter queryMeter);
+
+    /**
      * 新增用电计量-小时
      *
      * @param elecMeterH 用电计量-小时

+ 41 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IEmsCommonCache.java

@@ -0,0 +1,41 @@
+/*
+ * 文 件 名:  IEmsCommonCache
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/2/13
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.service;
+
+import com.ruoyi.ems.domain.FacsCategory;
+import com.ruoyi.ems.domain.FacsSubCategory;
+
+/**
+ * 公共缓存
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/2/13]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public interface IEmsCommonCache {
+    /**
+     * 根据编码获取子分类信息
+     *
+     * @param code 编码
+     * @return 子分类信息
+     */
+    FacsCategory getCategory(String code);
+
+    /**
+     * 根据编码获取子分类信息
+     *
+     * @param code 编码
+     * @return 子分类信息
+     */
+    FacsSubCategory getSubCategory(String code);
+}

+ 7 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IFacsCategoryService.java

@@ -30,6 +30,13 @@ public interface IFacsCategoryService {
     /**
      * 查询能源设施/系统分类列表
      *
+     * @return 能源设施/系统分类集合
+     */
+    List<FacsCategory> selectCategoryList();
+
+    /**
+     * 查询能源设施/系统分类列表
+     *
      * @param emsCategory 能源设施/系统分类
      * @return 能源设施/系统分类集合
      */

+ 7 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/IFacsSubCategoryService.java

@@ -22,6 +22,13 @@ public interface IFacsSubCategoryService {
     /**
      * 查询能源设施/系统子类列表
      *
+     * @return 能源设施/系统子类集合
+     */
+    List<FacsSubCategory> selectSubCategoryList();
+
+    /**
+     * 查询能源设施/系统子类列表
+     *
      * @param subCategory 能源设施/系统子类
      * @return 能源设施/系统子类集合
      */

+ 53 - 1
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/BoundaryObjServiceImpl.java

@@ -14,6 +14,9 @@ import com.huashe.common.exception.Assert;
 import com.huashe.common.exception.BusinessException;
 import com.ruoyi.ems.domain.Area;
 import com.ruoyi.ems.domain.ElecMeter;
+import com.ruoyi.ems.domain.ElecMeterH;
+import com.ruoyi.ems.domain.FacsCategory;
+import com.ruoyi.ems.domain.FacsSubCategory;
 import com.ruoyi.ems.domain.MeterBoundaryRel;
 import com.ruoyi.ems.enums.MeterObjType;
 import com.ruoyi.ems.model.BoundaryObj;
@@ -21,9 +24,11 @@ import com.ruoyi.ems.model.QueryMeter;
 import com.ruoyi.ems.service.IAreaService;
 import com.ruoyi.ems.service.IBoundaryObjService;
 import com.ruoyi.ems.service.IElecMeterHService;
+import com.ruoyi.ems.service.IEmsCommonCache;
 import com.ruoyi.ems.service.IEmsFacsService;
 import com.ruoyi.ems.service.IMeterBoundaryRelService;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -49,6 +54,9 @@ import java.util.stream.Collectors;
 public class BoundaryObjServiceImpl implements IBoundaryObjService {
     private static final Logger log = LoggerFactory.getLogger(BoundaryObjServiceImpl.class);
 
+    @Autowired
+    private IEmsCommonCache emsCommonCache;
+
     // 注入区域服务
     @Autowired
     private IAreaService areaService;
@@ -134,10 +142,54 @@ public class BoundaryObjServiceImpl implements IBoundaryObjService {
         return result;
     }
 
+    @Override
+    public List<ElecMeterH> getMeterByFacs(QueryMeter queryMeter) {
+        List<ElecMeterH> result = new ArrayList<>();
+        List<BoundaryObj> bObjs = emsFacsService.getFacsWithMeterDev(queryMeter.getFacsCategory(),
+            queryMeter.getFacsSubCategory());
+
+        if (CollectionUtils.isNotEmpty(bObjs)) {
+            Set<String> devCodes = new HashSet<>();
+
+            for (BoundaryObj bObj : bObjs) {
+                if (CollectionUtils.isNotEmpty(bObj.getBindElecMeterDevs())) {
+                    devCodes.addAll(bObj.getBindElecMeterDevs());
+                }
+            }
+
+            String objCode = null;
+            String objName = null;
+
+            if (StringUtils.isNotEmpty(queryMeter.getFacsSubCategory())) {
+                objCode = queryMeter.getFacsSubCategory();
+                FacsSubCategory facsSubCategory = emsCommonCache.getSubCategory(objCode);
+                objName = null != facsSubCategory ? facsSubCategory.getName() : "未知";
+            }
+            else {
+                objCode = queryMeter.getFacsCategory();
+                FacsCategory facsCategory = emsCommonCache.getCategory(objCode);
+                objName = null != facsCategory ? facsCategory.getName() : "未知";
+            }
+
+            QueryMeter condition = new QueryMeter();
+            condition.setAreaCode(queryMeter.getAreaCode());
+            condition.setObjType(MeterObjType.METER_FACS.getType());
+            condition.setObjCode(objCode);
+            condition.setObjName(objName);
+            condition.setStartRecTime(queryMeter.getStartRecTime());
+            condition.setEndRecTime(queryMeter.getEndRecTime());
+            condition.setDeviceCodes(devCodes);
+
+            result = elecMeterHService.selectByMeterDev(condition);
+        }
+
+        return result;
+    }
+
     private ElecMeter getElecMeter(QueryMeter queryMeter, BoundaryObj bObj) {
         QueryMeter condition = new QueryMeter();
         condition.setAreaCode(queryMeter.getAreaCode());
-        condition.setObjType(bObj.getObjType());
+        condition.setObjType(MeterObjType.METER_FACS.getType());
         condition.setObjCode(bObj.getObjCode());
         condition.setObjName(bObj.getObjName());
         condition.setStartRecTime(queryMeter.getStartRecTime());

+ 7 - 2
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/ElecMeterHServiceImpl.java

@@ -1,8 +1,8 @@
 package com.ruoyi.ems.service.impl;
 
+import com.ruoyi.ems.domain.ElecMeter;
 import com.ruoyi.ems.domain.ElecMeterH;
 import com.ruoyi.ems.mapper.ElecMeterHMapper;
-import com.ruoyi.ems.domain.ElecMeter;
 import com.ruoyi.ems.model.QueryMeter;
 import com.ruoyi.ems.service.IElecMeterHService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,7 +40,12 @@ public class ElecMeterHServiceImpl implements IElecMeterHService {
      */
     @Override
     public ElecMeter staByMeterDev(QueryMeter queryMeter) {
-        return elecMeterHMapper.selectElecMeterSumHByDev(queryMeter);
+        return elecMeterHMapper.selectElecMeterSumByDev(queryMeter);
+    }
+
+    @Override
+    public List<ElecMeterH> selectByMeterDev(QueryMeter queryMeter) {
+        return elecMeterHMapper.selectElecMeterByDev(queryMeter);
     }
 
     /**

+ 106 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/EmsCommonCacheImpl.java

@@ -0,0 +1,106 @@
+/*
+ * 文 件 名:  EmsCommonCacheImpl
+ * 版    权:  华设设计集团股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2025/2/13
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.service.impl;
+
+import com.ruoyi.ems.domain.FacsCategory;
+import com.ruoyi.ems.domain.FacsSubCategory;
+import com.ruoyi.ems.service.IEmsCommonCache;
+import com.ruoyi.ems.service.IFacsCategoryService;
+import com.ruoyi.ems.service.IFacsSubCategoryService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.ApplicationArguments;
+import org.springframework.boot.ApplicationRunner;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+/**
+ * 公共缓存实现类
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2025/2/13]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+@Service
+public class EmsCommonCacheImpl implements IEmsCommonCache, ApplicationRunner {
+    private static final Logger log = LoggerFactory.getLogger(EmsCommonCacheImpl.class);
+
+    @Autowired
+    private IFacsCategoryService facsCategoryService;
+
+    @Autowired
+    private IFacsSubCategoryService facsSubCategoryService;
+
+    /**
+     * 分类缓存
+     */
+    private Map<String, FacsCategory> facsCategoryCache = new ConcurrentHashMap<>();
+
+    /**
+     * 子分类缓存
+     */
+    private Map<String, FacsSubCategory> facsSubCategoryCache = new ConcurrentHashMap<>();
+
+    @Override
+    public FacsCategory getCategory(String code) {
+        return facsCategoryCache.get(code);
+    }
+
+    /**
+     * 根据编码获取子分类信息
+     *
+     * @param code 编码
+     * @return 子分类信息
+     */
+    @Override
+    public FacsSubCategory getSubCategory(String code) {
+        return facsSubCategoryCache.get(code);
+    }
+
+    @Override
+    public void run(ApplicationArguments args) throws Exception {
+        loadFacsCategory();
+        loadFacsSubCategory();
+    }
+
+    private void loadFacsCategory() {
+        List<FacsCategory> dbList = facsCategoryService.selectCategoryList();
+
+        if (CollectionUtils.isNotEmpty(dbList)) {
+            Map<String, FacsCategory> dbMap = dbList.stream()
+                .collect(Collectors.toMap(FacsCategory::getCode, Function.identity()));
+            facsCategoryCache.putAll(dbMap);
+        }
+
+        log.info("加载设施分类缓存完成,共{}条数据", dbList.size());
+    }
+
+    private void loadFacsSubCategory() {
+        List<FacsSubCategory> dbList = facsSubCategoryService.selectSubCategoryList();
+
+        if (CollectionUtils.isNotEmpty(dbList)) {
+            Map<String, FacsSubCategory> dbMap = dbList.stream()
+                .collect(Collectors.toMap(FacsSubCategory::getCode, Function.identity()));
+            facsSubCategoryCache.putAll(dbMap);
+        }
+
+        log.info("加载设施子分类缓存完成,共{}条数据", dbList.size());
+    }
+}

+ 16 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/FacsCategoryServiceImpl.java

@@ -9,6 +9,7 @@ import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -57,6 +58,21 @@ public class FacsCategoryServiceImpl implements IFacsCategoryService {
         return category;
     }
 
+    @Override
+    public List<FacsCategory> selectCategoryList() {
+        // 查询主分类
+        List<FacsCategory> list = categoryMapper.selectCategoryAll();
+
+        // 查询子分类
+        if (CollectionUtils.isNotEmpty(list)) {
+            list.forEach(category -> {
+                category.setSubtypeList(getFacsSubtypes(category));
+            });
+        }
+
+        return list;
+    }
+
     /**
      * 查询能源设施/系统分类列表
      *

+ 6 - 0
ems/ems-core/src/main/java/com/ruoyi/ems/service/impl/FacsSubCategoryServiceImpl.java

@@ -6,6 +6,7 @@ import com.ruoyi.ems.service.IFacsSubCategoryService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
+import java.util.Collections;
 import java.util.List;
 
 /**
@@ -30,6 +31,11 @@ public class FacsSubCategoryServiceImpl implements IFacsSubCategoryService {
         return subCategoryMapper.selectSubCategoryById(id);
     }
 
+    @Override
+    public List<FacsSubCategory> selectSubCategoryList() {
+        return subCategoryMapper.selectSubCategoryAll();
+    }
+
     /**
      * 查询能源设施/系统子类列表
      *

+ 81 - 41
ems/ems-core/src/main/resources/mapper/ems/ElecMeterHMapper.xml

@@ -1,59 +1,94 @@
 <?xml version="1.0" encoding="UTF-8" ?>
 <!DOCTYPE mapper
-PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.ems.mapper.ElecMeterHMapper">
-    
+
     <resultMap type="com.ruoyi.ems.domain.ElecMeterH" id="ElecMeterHResult">
-        <result property="id"    column="id"    />
-        <result property="areaCode"    column="area_code"    />
-        <result property="deviceCode"    column="device_code"    />
-        <result property="deviceName"    column="device_name"    />
-        <result property="recordTime"    column="record_time"    />
-        <result property="date"    column="date"    />
-        <result property="time"    column="time"    />
-        <result property="timeIndex"    column="time_index"    />
-        <result property="elecQuantity"    column="elec_quantity"    />
-        <result property="meterType"    column="meter_type"    />
-        <result property="meterUnitPrice"    column="meter_unit_price"    />
-        <result property="useElecCost"    column="use_elec_cost"    />
-        <result property="createTime"    column="create_time"    />
+        <result property="id" column="id"/>
+        <result property="areaCode" column="area_code"/>
+        <result property="deviceCode" column="device_code"/>
+        <result property="deviceName" column="device_name"/>
+        <result property="recordTime" column="record_time"/>
+        <result property="date" column="date"/>
+        <result property="time" column="time"/>
+        <result property="timeIndex" column="time_index"/>
+        <result property="elecQuantity" column="elec_quantity"/>
+        <result property="meterType" column="meter_type"/>
+        <result property="meterUnitPrice" column="meter_unit_price"/>
+        <result property="useElecCost" column="use_elec_cost"/>
+        <result property="createTime" column="create_time"/>
     </resultMap>
 
     <resultMap type="com.ruoyi.ems.domain.ElecMeter" id="ElecMeterResult">
-        <result property="areaCode"    column="area_code"    />
-        <result property="objType"    column="obj_type"    />
-        <result property="objCode"    column="obj_code"    />
-        <result property="objName"    column="obj_name"    />
-        <result property="quantity"    column="elec_quantity"    />
-        <result property="useCost"    column="use_elec_cost"    />
+        <result property="areaCode" column="area_code"/>
+        <result property="objType" column="obj_type"/>
+        <result property="objCode" column="obj_code"/>
+        <result property="objName" column="obj_name"/>
+        <result property="quantity" column="elec_quantity"/>
+        <result property="useCost" column="use_elec_cost"/>
     </resultMap>
 
     <sql id="selectElecMeterHVo">
-        select id, area_code, device_code, record_time, `date`, `time`, time_index, elec_quantity, meter_type, meter_unit_price, use_elec_cost, create_time from adm_elec_meter_h
+        select id,
+               area_code,
+               device_code,
+               record_time,
+               `date`,
+               `time`,
+               time_index,
+               elec_quantity,
+               meter_type,
+               meter_unit_price,
+               use_elec_cost,
+               create_time
+        from adm_elec_meter_h
     </sql>
 
     <select id="selectElecMeterHList" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="ElecMeterHResult">
         select
-            m.id, m.area_code, m.device_code, d.device_name, m.record_time, m.`date`, m.`time`, m.time_index, m.elec_quantity, m.meter_type, m.meter_unit_price, m.use_elec_cost, m.create_time
+        m.id, m.area_code, m.device_code, d.device_name, m.record_time, m.`date`, m.`time`, m.time_index,
+        m.elec_quantity, m.meter_type, m.meter_unit_price, m.use_elec_cost, m.create_time
         from adm_elec_meter_h m
-            left join adm_meter_device d on m.device_code = d.device_code
-        <where>  
-            <if test="areaCode != null  and areaCode != ''"> and m.area_code = #{areaCode}</if>
-            <if test="deviceCode != null  and deviceCode != ''"> and m.device_code = #{deviceCode}</if>
-            <if test="startRecTime != null and startRecTime != '' and endRecTime != null and endRecTime != ''"> and m.record_time between #{startRecTime} and #{endRecTime}</if>
+        left join adm_meter_device d on m.device_code = d.device_code
+        <where>
+            <if test="areaCode != null  and areaCode != ''">and m.area_code = #{areaCode}</if>
+            <if test="deviceCode != null  and deviceCode != ''">and m.device_code = #{deviceCode}</if>
+            <if test="startRecTime != null and startRecTime != '' and endRecTime != null and endRecTime != ''">and
+                m.record_time between #{startRecTime} and #{endRecTime}
+            </if>
         </where>
         order by m.record_time ${orderFlag}
     </select>
 
-    <select id="selectElecMeterSumHByDev" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="ElecMeterResult">
+    <select id="selectElecMeterSumByDev" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="ElecMeterResult">
+        select
+         area_code,
+        '${objType}' as obj_type,
+        '${objCode}' as obj_code,
+        '${objName}' as obj_name,
+        sum(m.elec_quantity) as elec_quantity,
+        sum(m.use_elec_cost) as use_elec_cost
+        from adm_elec_meter_h m
+        <where>
+            and m.area_code = #{areaCode}
+            <if test="startRecTime != null and startRecTime != '' and endRecTime != null and endRecTime != ''">
+                and m.record_time between #{startRecTime} and #{endRecTime}
+            </if>
+            and m.device_code in
+            <foreach item="item" index="index" collection="deviceCodes" open="(" separator=", " close=")">
+                #{item}
+            </foreach>
+        </where>
+    </select>
+
+    <select id="selectElecMeterByDev" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="ElecMeterHResult">
         select
-            area_code,
-            '${objType}' as obj_type,
-            '${objCode}' as obj_code,
-            '${objName}' as obj_code,
-            sum(m.elec_quantity) as elec_quantity,
-            sum(m.use_elec_cost) as use_elec_cost
+        '${objCode}' as device_code,
+        '${objName}' as device_name,
+        m.area_code, m.record_time, m.`date`, m.`time`, m.time_index,
+        sum(m.elec_quantity) as elec_quantity,
+        sum(m.use_elec_cost) as use_elec_cost
         from adm_elec_meter_h m
         <where>
             and m.area_code = #{areaCode}
@@ -61,13 +96,16 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
                 and m.record_time between #{startRecTime} and #{endRecTime}
             </if>
             and m.device_code in
-              <foreach item="item" index="index" collection="deviceCodes" open="(" separator=", " close=")">
+            <foreach item="item" index="index" collection="deviceCodes" open="(" separator=", " close=")">
                 #{item}
-              </foreach>
+            </foreach>
         </where>
+        GROUP BY m.`date`, m.time_index
+        ORDER BY m.record_time ${orderFlag}
     </select>
 
-    <insert id="insertElecMeterH" parameterType="com.ruoyi.ems.domain.ElecMeterH" useGeneratedKeys="true" keyProperty="id">
+    <insert id="insertElecMeterH" parameterType="com.ruoyi.ems.domain.ElecMeterH" useGeneratedKeys="true"
+            keyProperty="id">
         insert into adm_elec_meter_h
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="areaCode != null and areaCode != ''">area_code,</if>
@@ -92,7 +130,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="meterType != null">#{meterType},</if>
             <if test="meterUnitPrice != null">#{meterUnitPrice},</if>
             <if test="useElecCost != null">#{useElecCost},</if>
-         </trim>
+        </trim>
     </insert>
 
     <update id="updateElecMeterH" parameterType="com.ruoyi.ems.domain.ElecMeterH">
@@ -113,6 +151,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <delete id="deleteElecMeterHByDate" parameterType="String">
-        delete from adm_elec_meter_h where `date` = #{date}
+        delete
+        from adm_elec_meter_h
+        where `date` = #{date}
     </delete>
 </mapper>

+ 4 - 0
ems/ems-core/src/main/resources/mapper/ems/FacsCategoryMapper.xml

@@ -16,6 +16,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select `id`, `code`, `name`, `desc`, `version` from dim_ems_facs_category
     </sql>
 
+    <select id="selectCategoryAll"  resultMap="FacsCategoryResult">
+        <include refid="selectCategoryVo"/>
+    </select>
+
     <select id="selectCategoryList" parameterType="com.ruoyi.ems.domain.FacsCategory" resultMap="FacsCategoryResult">
         <include refid="selectCategoryVo"/>
         <where>  

+ 4 - 0
ems/ems-core/src/main/resources/mapper/ems/FacsSubCategoryMapper.xml

@@ -17,6 +17,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select `id`, `code`, `name`, `parent_code`, `desc`, `version` from dim_ems_facs_subcategory
     </sql>
 
+    <select id="selectSubCategoryAll" resultMap="subCategoryResult">
+        <include refid="selectSubCategoryVo"/>
+    </select>
+
     <select id="selectSubCategoryList" parameterType="com.ruoyi.ems.domain.FacsSubCategory" resultMap="subCategoryResult">
         <include refid="selectSubCategoryVo"/>
         <where>