Переглянути джерело

用能设备关联区域配置

lv.wenbin 1 рік тому
батько
коміт
8f91c60587
18 змінених файлів з 183 додано та 30 видалено
  1. 14 1
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/EmsDevice.java
  2. 8 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/AreaBuildingMapper.java
  3. 8 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/AreaBuildingZoningMapper.java
  4. 8 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/AreaMapper.java
  5. 8 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IAreaBuildingService.java
  6. 8 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IAreaBuildingZoningService.java
  7. 7 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IAreaService.java
  8. 11 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/AreaBuildingServiceImpl.java
  9. 11 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/AreaBuildingZoningServiceImpl.java
  10. 11 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/AreaServiceImpl.java
  11. 64 23
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/EmsDeviceServiceImpl.java
  12. 5 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AreaBuildingMapper.xml
  13. 5 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AreaBuildingZoningMapper.xml
  14. 6 1
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AreaMapper.xml
  15. 6 3
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/EmsDeviceMapper.xml
  16. 1 1
      ems-cloud/ems-modules/ruoyi-gen/pom.xml
  17. 1 0
      ems-cloud/sql/ems_server.sql
  18. 1 1
      ems-cloud/sql/ems_sys.sql

+ 14 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/EmsDevice.java

@@ -34,6 +34,9 @@ public class EmsDevice extends BaseEntity
     @Excel(name = "设备状态")
     private Long deviceStatus;
 
+    /** 区域类型 */
+    private String areaType;
+
     /** 归属区域代码 */
     private String refArea;
 
@@ -93,7 +96,16 @@ public class EmsDevice extends BaseEntity
     {
         return deviceStatus;
     }
-    public void setRefArea(String refArea) 
+
+    public String getAreaType() {
+        return areaType;
+    }
+
+    public void setAreaType(String areaType) {
+        this.areaType = areaType;
+    }
+
+    public void setRefArea(String refArea)
     {
         this.refArea = refArea;
     }
@@ -136,6 +148,7 @@ public class EmsDevice extends BaseEntity
             .append("deviceName", getDeviceName())
             .append("deviceType", getDeviceType())
             .append("deviceStatus", getDeviceStatus())
+            .append("areaType", getAreaType())
             .append("refArea", getRefArea())
             .append("refFacs", getRefFacs())
             .append("createTime", getCreateTime())

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

@@ -20,6 +20,14 @@ public interface AreaBuildingMapper {
     AreaBuilding selectAreaBuildingById(Long id);
 
     /**
+     * 查询建筑基本信息
+     *
+     * @param code 建筑基本信息主键
+     * @return 建筑基本信息
+     */
+    AreaBuilding selectAreaBuildingByCode(String code);
+
+    /**
      * 查询建筑基本信息列表
      *
      * @param areaBuilding 建筑基本信息

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

@@ -20,6 +20,14 @@ public interface AreaBuildingZoningMapper {
     AreaBuildingZoning selectAreaBuildingZoningById(Long id);
 
     /**
+     * 查询建筑区域code
+     *
+     * @param code 建筑区域划分主键
+     * @return 建筑区域划分
+     */
+    AreaBuildingZoning selectAreaBuildingZoningByCode(String code);
+
+    /**
      * 查询建筑区域划分列表
      *
      * @param areaBuildingZoning 建筑区域划分

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

@@ -20,6 +20,14 @@ public interface AreaMapper {
     Area selectAreaById(Long id);
 
     /**
+     * 查询服务区
+     *
+     * @param code 服务区主键
+     * @return 服务区
+     */
+    Area selectAreaByCode(String code);
+
+    /**
      * 查询服务区列表
      *
      * @param admServiceArea 服务区

+ 8 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IAreaBuildingService.java

@@ -20,6 +20,14 @@ public interface IAreaBuildingService {
     AreaBuilding selectAreaBuildingById(Long id);
 
     /**
+     * 查询建筑基本信息
+     *
+     * @param code 建筑基本信息主键
+     * @return 建筑基本信息
+     */
+    AreaBuilding selectAreaBuildingByCode(String code);
+
+    /**
      * 查询建筑基本信息列表
      *
      * @param areaBuilding 建筑基本信息

+ 8 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IAreaBuildingZoningService.java

@@ -20,6 +20,14 @@ public interface IAreaBuildingZoningService {
     AreaBuildingZoning selectAreaBuildingZoningById(Long id);
 
     /**
+     * 查询建筑区域划分
+     *
+     * @param code 建筑区域划分code
+     * @return 建筑区域划分
+     */
+    AreaBuildingZoning selectAreaBuildingZoningByCode(String code);
+
+    /**
      * 查询建筑区域划分列表
      *
      * @param areaBuildingZoning 建筑区域划分

+ 7 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IAreaService.java

@@ -21,6 +21,13 @@ public interface IAreaService {
     Area selectAreaById(Long id);
 
     /**
+     * 查询服务区
+     * @param code 区域编码
+     * @return 服务区
+     */
+    Area selectAreaByCode(String code);
+
+    /**
      * 查询服务区列表
      *
      * @param area 服务区

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

@@ -36,6 +36,17 @@ public class AreaBuildingServiceImpl implements IAreaBuildingService {
     }
 
     /**
+     * 查询建筑基本信息
+     *
+     * @param code 建筑基本信息code
+     * @return 建筑基本信息
+     */
+    @Override
+    public AreaBuilding selectAreaBuildingByCode(String code) {
+        return areaBuildingMapper.selectAreaBuildingByCode(code);
+    }
+
+    /**
      * 查询建筑基本信息列表
      *
      * @param areaBuilding 建筑基本信息

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

@@ -32,6 +32,17 @@ public class AreaBuildingZoningServiceImpl implements IAreaBuildingZoningService
     }
 
     /**
+     * 查询建筑区域划分
+     *
+     * @param code 建筑区域划分主键
+     * @return 建筑区域划分
+     */
+    @Override
+    public AreaBuildingZoning selectAreaBuildingZoningByCode(String code) {
+        return areaBuildingZoningMapper.selectAreaBuildingZoningByCode(code);
+    }
+
+    /**
      * 查询建筑区域划分列表
      * 
      * @param areaBuildingZoning 建筑区域划分

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

@@ -45,6 +45,17 @@ public class AreaServiceImpl implements IAreaService {
     }
 
     /**
+     * 查询服务区
+     *
+     * @param code 服务区代码
+     * @return 服务区
+     */
+    @Override
+    public Area selectAreaByCode(String code) {
+        return areaMapper.selectAreaByCode(code);
+    }
+
+    /**
      * 查询服务区列表
      *
      * @param area 服务区

+ 64 - 23
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/EmsDeviceServiceImpl.java

@@ -1,96 +1,137 @@
 package com.ruoyi.ems.service.impl;
 
 import java.util.List;
+
 import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.ems.domain.Area;
+import com.ruoyi.ems.domain.AreaBuilding;
+import com.ruoyi.ems.domain.AreaBuildingZoning;
 import com.ruoyi.ems.domain.EmsDevice;
+import com.ruoyi.ems.domain.common.AreaTier;
 import com.ruoyi.ems.mapper.EmsDeviceMapper;
+import com.ruoyi.ems.service.IAreaBuildingService;
+import com.ruoyi.ems.service.IAreaBuildingZoningService;
+import com.ruoyi.ems.service.IAreaService;
 import com.ruoyi.ems.service.IEmsDeviceService;
+import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 /**
  * 能源设备Service业务层处理
- * 
+ *
  * @author ruoyi
  * @date 2024-07-10
  */
 @Service
-public class EmsDeviceServiceImpl implements IEmsDeviceService
-{
+public class EmsDeviceServiceImpl implements IEmsDeviceService {
     @Autowired
     private EmsDeviceMapper emsDeviceMapper;
 
+    @Autowired
+    private IAreaService areaService;
+
+    @Autowired
+    private IAreaBuildingService buildingService;
+
+    @Autowired
+    private IAreaBuildingZoningService zoningService;
+
     /**
      * 查询能源设备
-     * 
+     *
      * @param id 能源设备主键
      * @return 能源设备
      */
     @Override
-    public EmsDevice selectEmsDeviceById(Long id)
-    {
-        return emsDeviceMapper.selectEmsDeviceById(id);
+    public EmsDevice selectEmsDeviceById(Long id) {
+        EmsDevice emsDevice = emsDeviceMapper.selectEmsDeviceById(id);
+
+        if (null != emsDevice) {
+            fillAreaName(emsDevice);
+        }
+
+        return emsDevice;
     }
 
     /**
      * 查询能源设备列表
-     * 
+     *
      * @param emsDevice 能源设备
      * @return 能源设备
      */
     @Override
-    public List<EmsDevice> selectEmsDeviceList(EmsDevice emsDevice)
-    {
-        return emsDeviceMapper.selectEmsDeviceList(emsDevice);
+    public List<EmsDevice> selectEmsDeviceList(EmsDevice emsDevice) {
+        List<EmsDevice> list = emsDeviceMapper.selectEmsDeviceList(emsDevice);
+
+        if (CollectionUtils.isNotEmpty(list)) {
+            for (EmsDevice device : list) {
+                fillAreaName(device);
+            }
+        }
+
+        return list;
     }
 
     /**
      * 新增能源设备
-     * 
+     *
      * @param emsDevice 能源设备
      * @return 结果
      */
     @Override
-    public int insertEmsDevice(EmsDevice emsDevice)
-    {
+    public int insertEmsDevice(EmsDevice emsDevice) {
         emsDevice.setCreateTime(DateUtils.getNowDate());
         return emsDeviceMapper.insertEmsDevice(emsDevice);
     }
 
     /**
      * 修改能源设备
-     * 
+     *
      * @param emsDevice 能源设备
      * @return 结果
      */
     @Override
-    public int updateEmsDevice(EmsDevice emsDevice)
-    {
+    public int updateEmsDevice(EmsDevice emsDevice) {
         emsDevice.setUpdateTime(DateUtils.getNowDate());
         return emsDeviceMapper.updateEmsDevice(emsDevice);
     }
 
     /**
      * 批量删除能源设备
-     * 
+     *
      * @param ids 需要删除的能源设备主键
      * @return 结果
      */
     @Override
-    public int deleteEmsDeviceByIds(Long[] ids)
-    {
+    public int deleteEmsDeviceByIds(Long[] ids) {
         return emsDeviceMapper.deleteEmsDeviceByIds(ids);
     }
 
     /**
      * 删除能源设备信息
-     * 
+     *
      * @param id 能源设备主键
      * @return 结果
      */
     @Override
-    public int deleteEmsDeviceById(Long id)
-    {
+    public int deleteEmsDeviceById(Long id) {
         return emsDeviceMapper.deleteEmsDeviceById(id);
     }
+
+    private void fillAreaName(EmsDevice emsDevice) {
+        if (StringUtils.equals(emsDevice.getAreaType(), AreaTier.Area.name())) {
+            Area area = areaService.selectAreaByCode(emsDevice.getRefArea());
+            emsDevice.setRefAreaName(area != null ? area.getAreaName() : "未知");
+        }
+        else if (StringUtils.equals(emsDevice.getAreaType(), AreaTier.Building.name())) {
+            AreaBuilding building = buildingService.selectAreaBuildingByCode(emsDevice.getRefArea());
+            emsDevice.setRefAreaName(building != null ? building.getBldgName() : "未知");
+        }
+        else if (StringUtils.equals(emsDevice.getAreaType(), AreaTier.Zoning.name())) {
+            AreaBuildingZoning zoning = zoningService.selectAreaBuildingZoningByCode(emsDevice.getRefArea());
+            emsDevice.setRefAreaName(zoning != null ? zoning.getZoningName() : "未知");
+        }
+    }
 }

+ 5 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AreaBuildingMapper.xml

@@ -42,6 +42,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where b.`id` = #{id}
     </select>
 
+    <select id="selectAreaBuildingByCode" parameterType="String" resultMap="AreaBuildingResult">
+        <include refid="selectAreaBuildingVo"/>
+        where b.`bldg_code` = #{code}
+    </select>
+
     <insert id="insertAreaBuilding" parameterType="com.ruoyi.ems.domain.AreaBuilding" useGeneratedKeys="true" keyProperty="id">
         insert into adm_area_building
         <trim prefix="(" suffix=")" suffixOverrides=",">

+ 5 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AreaBuildingZoningMapper.xml

@@ -40,6 +40,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectAreaBuildingZoningVo"/>
         where z.`id` = #{id}
     </select>
+
+    <select id="selectAreaBuildingZoningByCode" parameterType="String" resultMap="AreaBuildingZoningResult">
+        <include refid="selectAreaBuildingZoningVo"/>
+        where z.`zoning_code` = #{code}
+    </select>
         
     <insert id="insertAreaBuildingZoning" parameterType="com.ruoyi.ems.domain.AreaBuildingZoning" useGeneratedKeys="true" keyProperty="id">
         insert into adm_area_building_zoning

+ 6 - 1
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/AreaMapper.xml

@@ -48,7 +48,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     
     <select id="selectAreaById" parameterType="Long" resultMap="AdmServiceAreaResult">
         <include refid="selectAreaVo"/>
-        where id = #{id}
+        where `id` = #{id}
+    </select>
+
+    <select id="selectAreaByCode" parameterType="String" resultMap="AdmServiceAreaResult">
+        <include refid="selectAreaVo"/>
+        where area_code = #{code}
     </select>
         
     <insert id="insertArea" parameterType="com.ruoyi.ems.domain.Area" useGeneratedKeys="true" keyProperty="id">

+ 6 - 3
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/EmsDeviceMapper.xml

@@ -10,8 +10,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="deviceName"    column="device_name"    />
         <result property="deviceType"    column="device_type"    />
         <result property="deviceStatus"   column="device_status"    />
+        <result property="areaType"       column="area_type"    />
         <result property="refArea"        column="ref_area"    />
-        <result property="refAreaName"    column="ref_area_name"    />
         <result property="refFacs"        column="ref_facs"    />
         <result property="refFacsName"    column="ref_facs_name"    />
         <result property="createTime"    column="create_time"    />
@@ -20,9 +20,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <sql id="selectEmsDeviceVo">
         select
-            d.`id`, d.`device_code`, d.`device_name`, d.`device_type`, d.`device_status`, d.`ref_area`, z.`zoning_name` as ref_area_name, d.`ref_facs`, f.`facs_name` as ref_facs_name, d.`create_time`, d.`update_time`
+            d.`id`, d.`device_code`, d.`device_name`, d.`device_type`, d.`device_status`, d.`area_type`, d.`ref_area`, d.`ref_facs`, f.`facs_name` as ref_facs_name, d.`create_time`, d.`update_time`
         from adm_ems_device d
-            LEFT JOIN adm_area_building_zoning z ON d.`ref_area` = z.`zoning_code`
             LEFT JOIN adm_ems_facs f ON d.`ref_facs` = f.`facs_code`
     </sql>
 
@@ -33,6 +32,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deviceName != null  and deviceName != ''"> and d.`device_name` like concat('%', #{deviceName}, '%')</if>
             <if test="deviceType != null "> and d.`device_type` = #{deviceType}</if>
             <if test="deviceStatus != null "> and d.`device_status` = #{deviceStatus}</if>
+            <if test="areaType != null and areaType != ''"> and d.`area_type` = #{areaType}</if>
             <if test="refArea != null  and refArea != ''"> and d.`ref_area` = #{refArea}</if>
             <if test="refFacs != null  and refFacs != ''"> and d.`ref_facs` = #{refFacs}</if>
         </where>
@@ -50,6 +50,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deviceName != null and deviceName != ''">device_name,</if>
             <if test="deviceType != null">device_type,</if>
             <if test="deviceStatus != null">device_status,</if>
+            <if test="areaType != null">area_type,</if>
             <if test="refArea != null">ref_area,</if>
             <if test="refFacs != null">ref_facs,</if>
             <if test="createTime != null">create_time,</if>
@@ -60,6 +61,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deviceName != null and deviceName != ''">#{deviceName},</if>
             <if test="deviceType != null">#{deviceType},</if>
             <if test="deviceStatus != null">#{deviceStatus},</if>
+            <if test="areaType != null">#{areaType},</if>
             <if test="refArea != null">#{refArea},</if>
             <if test="refFacs != null">#{refFacs},</if>
             <if test="createTime != null">#{createTime},</if>
@@ -74,6 +76,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="deviceName != null and deviceName != ''">device_name = #{deviceName},</if>
             <if test="deviceType != null">device_type = #{deviceType},</if>
             <if test="deviceStatus != null">device_status = #{deviceStatus},</if>
+            <if test="areaType != null">area_type = #{areaType},</if>
             <if test="refArea != null">ref_area = #{refArea},</if>
             <if test="refFacs != null">ref_facs = #{refFacs},</if>
             <if test="createTime != null">create_time = #{createTime},</if>

+ 1 - 1
ems-cloud/ems-modules/ruoyi-gen/pom.xml

@@ -9,7 +9,7 @@
     </parent>
     <modelVersion>4.0.0</modelVersion>
 
-    <artifactId>ruoyi-modules-gen</artifactId>
+    <artifactId>ruoyi-gen</artifactId>
 
     <description>
         ruoyi-modules-gen代码生成

+ 1 - 0
ems-cloud/sql/ems_server.sql

@@ -531,6 +531,7 @@ create table adm_ems_device  (
   `device_name`     varchar(32)     not null                     comment '设备名称',
   `device_type`     int             default null                 comment '设备类型',
   `device_status`   int             default null                 comment '设备状态',
+  `area_type`       varchar(32)     default null                 comment '设备类型',
   `ref_area`        varchar(64)     default null                 comment '归属区域代码',
   `ref_facs`        varchar(64)     default null                 comment '归属设施代码',
   `create_time`     datetime        default CURRENT_TIMESTAMP    comment '创建时间',

+ 1 - 1
ems-cloud/sql/ems_sys.sql

@@ -229,7 +229,7 @@ insert into sys_menu values ('536',  '区块配置',   '123', '3',  'basecfg-zon
 insert into sys_menu values ('537',  '设施分类',   '124', '1',  'basecfg-facstype',       'basecfg/facstype/index',         '', 1, 0, 'C', '0', '0',   'basecfg:facstype:list',        'cfgwrite',   'admin', sysdate(), '', null, '设施配置');
 insert into sys_menu values ('538',  '能源设施',   '124', '2',  'basecfg-facscfg',        'basecfg/emsfacs/index',          '', 1, 0, 'C', '0', '0',   'basecfg:emsfacs:list',         'cfgwrite',   'admin', sysdate(), '', null, '设施配置');
 insert into sys_menu values ('539',  '能流关系',   '124', '3',  'basecfg-flowrel',        'basecfg/flowrel/index',          '', 1, 0, 'C', '0', '0',   'basecfg:flowrel:list',         'cfgwrite',   'admin', sysdate(), '', null, '设备配置');
-insert into sys_menu values ('540',  '能设备',   '124', '4',  'basecfg-devccfg',        'basecfg/device/index',           '', 1, 0, 'C', '0', '0',   'basecfg:device:list',          'cfgwrite',   'admin', sysdate(), '', null, '设备配置');
+insert into sys_menu values ('540',  '能设备',   '124', '4',  'basecfg-devccfg',        'basecfg/device/index',           '', 1, 0, 'C', '0', '0',   'basecfg:device:list',          'cfgwrite',   'admin', sysdate(), '', null, '设备配置');
 insert into sys_menu values ('541',  '国网电价',   '125', '1',  'basecfg-electricity',    'basecfg/electricity/index',   '', 1, 0, 'C', '0', '0',   'basecfg:electricity:list',  'cfgwrite',   'admin', sysdate(), '', null, '电价属性');
 insert into sys_menu values ('542',  '碳核算',     '125', '2',  'basecfg-carbon',          'basecfg/carbon/index',          '', 1, 0, 'C', '0', '0',   'basecfg:carbon:list',          'cfgwrite',   'admin', sysdate(), '', null, '核算配置');
 insert into sys_menu values ('543',  '排放因子',   '125', '3',  'basecfg-emissionFactor',  'basecfg/emissionfactor/index',  '', 1, 0, 'C', '0', '0',   'basecfg:emissionFactor:list',  'cfgwrite',   'admin', sysdate(), '', null, '碳排因子');