Browse Source

抄表模型接口改造

lv.wenbin 7 months ago
parent
commit
dc7488b02b

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

@@ -48,7 +48,7 @@ public class ChargingBillController extends BaseController {
     private IChargingBillService chargingBillService;
 
     /**
-     * 商户计费
+     * 查询账单
      *
      * @param queryParam 查询参数
      * @return 计费

+ 28 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecMeterH.java

@@ -24,9 +24,12 @@ public class ElecMeterH extends BaseEntity
     private String areaCode;
 
     /** 计量设备 */
-    @Excel(name = "计量设备")
+    @Excel(name = "表计编号")
     private String deviceCode;
 
+    @Excel(name = "表计名称")
+    private String deviceName;
+
     /** 记录时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@@ -81,6 +84,22 @@ public class ElecMeterH extends BaseEntity
         this.areaCode = areaCode;
     }
 
+    public String getAreaName() {
+        return areaName;
+    }
+
+    public void setAreaName(String areaName) {
+        this.areaName = areaName;
+    }
+
+    public String getAreaShortName() {
+        return areaShortName;
+    }
+
+    public void setAreaShortName(String areaShortName) {
+        this.areaShortName = areaShortName;
+    }
+
     public String getDeviceCode() {
         return deviceCode;
     }
@@ -89,6 +108,14 @@ public class ElecMeterH extends BaseEntity
         this.deviceCode = deviceCode;
     }
 
+    public String getDeviceName() {
+        return deviceName;
+    }
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
+    }
+
     public Date getRecordTime() {
         return recordTime;
     }

+ 28 - 51
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/MeterDevice.java

@@ -17,36 +17,29 @@ public class MeterDevice extends BaseEntity {
     private Long id;
 
     /**
-     * 设备代码
-     */
-    private String deviceCode;
-
-    /**
      * 服务区代码
      */
     private String areaCode;
 
-    private String areaName;
-
     /**
-     * 计量类别
+     * 设备代码
      */
-    private Long meterCls;
+    private String deviceCode;
 
     /**
-     * 计量对象类型 1-区块 2-设备
+     * 设备名称
      */
-    private Long objType;
+    private String deviceName;
 
     /**
-     * 计量对象编码
+     * 设备位置
      */
-    private String objCode;
+    private String deviceLocation;
 
     /**
-     * 计量对象名称
+     * 计量类别
      */
-    private String objName;
+    private Long meterCls;
 
     /**
      * 计量对象标记
@@ -81,14 +74,6 @@ public class MeterDevice extends BaseEntity {
         this.id = id;
     }
 
-    public String getDeviceCode() {
-        return deviceCode;
-    }
-
-    public void setDeviceCode(String deviceCode) {
-        this.deviceCode = deviceCode;
-    }
-
     public String getAreaCode() {
         return areaCode;
     }
@@ -97,44 +82,36 @@ public class MeterDevice extends BaseEntity {
         this.areaCode = areaCode;
     }
 
-    public String getAreaName() {
-        return areaName;
-    }
-
-    public void setAreaName(String areaName) {
-        this.areaName = areaName;
-    }
-
-    public Long getMeterCls() {
-        return meterCls;
+    public String getDeviceCode() {
+        return deviceCode;
     }
 
-    public void setMeterCls(Long meterCls) {
-        this.meterCls = meterCls;
+    public void setDeviceCode(String deviceCode) {
+        this.deviceCode = deviceCode;
     }
 
-    public Long getObjType() {
-        return objType;
+    public String getDeviceName() {
+        return deviceName;
     }
 
-    public void setObjType(Long objType) {
-        this.objType = objType;
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
     }
 
-    public String getObjCode() {
-        return objCode;
+    public String getDeviceLocation() {
+        return deviceLocation;
     }
 
-    public void setObjCode(String objCode) {
-        this.objCode = objCode;
+    public void setDeviceLocation(String deviceLocation) {
+        this.deviceLocation = deviceLocation;
     }
 
-    public String getObjName() {
-        return objName;
+    public Long getMeterCls() {
+        return meterCls;
     }
 
-    public void setObjName(String objName) {
-        this.objName = objName;
+    public void setMeterCls(Long meterCls) {
+        this.meterCls = meterCls;
     }
 
     public Integer getObjTag() {
@@ -179,9 +156,9 @@ public class MeterDevice extends BaseEntity {
 
     @Override
     public String toString() {
-        return "MeterDevice{" + "id=" + id + ", deviceCode='" + deviceCode + '\'' + ", areaCode='" + areaCode + '\''
-            + ", meterCls=" + meterCls + ", objType=" + objType + ", objCode='" + objCode + '\'' + ", objName='"
-            + objName + '\'' + ", objTag='" + objTag + '\'' + ", colCycle=" + colCycle + ", colMode=" + colMode
-            + ", magnification=" + magnification + ", specDesc='" + specDesc + '\'' + '}';
+        return "MeterDevice{" + "id=" + id + ", areaCode='" + areaCode + '\'' + ", deviceCode='" + deviceCode + '\''
+            + ", deviceName='" + deviceName + '\'' + ", deviceLocation='" + deviceLocation + '\'' + ", meterCls="
+            + meterCls + ", objTag=" + objTag + ", colCycle=" + colCycle + ", colMode=" + colMode + ", magnification="
+            + magnification + ", specDesc='" + specDesc + '\'' + '}';
     }
 }

+ 51 - 53
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/MeterReading.java

@@ -22,11 +22,12 @@ public class MeterReading extends BaseEntity
     private Long id;
 
     /** 计量设备code */
-    @Excel(name = "计量设备code")
     private String deviceCode;
 
+    /** 计量设备名称 */
+    private String deviceName;
+
     /** 服务区代码 */
-    @Excel(name = "服务区代码")
     private String areaCode;
 
     /** 年份yyyy */
@@ -34,7 +35,7 @@ public class MeterReading extends BaseEntity
     private String year;
 
     /** 计量月yyyyMM */
-    @Excel(name = "计量月yyyyMM")
+    @Excel(name = "计量月")
     private String meterMonth;
 
     /** 上次示数 */
@@ -59,97 +60,94 @@ public class MeterReading extends BaseEntity
     @Excel(name = "增量")
     private Long increase;
 
-    public void setId(Long id) 
-    {
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
         this.id = id;
     }
 
-    public Long getId() 
-    {
-        return id;
+    public String getDeviceCode() {
+        return deviceCode;
     }
-    public void setDeviceCode(String deviceCode) 
-    {
+
+    public void setDeviceCode(String deviceCode) {
         this.deviceCode = deviceCode;
     }
 
-    public String getDeviceCode() 
-    {
-        return deviceCode;
+    public String getDeviceName() {
+        return deviceName;
     }
-    public void setAreaCode(String areaCode) 
-    {
-        this.areaCode = areaCode;
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
     }
 
-    public String getAreaCode() 
-    {
+    public String getAreaCode() {
         return areaCode;
     }
-    public void setYear(String year)
-    {
-        this.year = year;
+
+    public void setAreaCode(String areaCode) {
+        this.areaCode = areaCode;
     }
 
-    public String getYear()
-    {
+    public String getYear() {
         return year;
     }
-    public void setMeterMonth(String meterMonth) 
-    {
-        this.meterMonth = meterMonth;
+
+    public void setYear(String year) {
+        this.year = year;
     }
 
-    public String getMeterMonth() 
-    {
+    public String getMeterMonth() {
         return meterMonth;
     }
-    public void setLastReading(Long lastReading) 
-    {
-        this.lastReading = lastReading;
+
+    public void setMeterMonth(String meterMonth) {
+        this.meterMonth = meterMonth;
     }
 
-    public Long getLastReading() 
-    {
+    public Long getLastReading() {
         return lastReading;
     }
-    public void setLastTime(Date lastTime) 
-    {
-        this.lastTime = lastTime;
+
+    public void setLastReading(Long lastReading) {
+        this.lastReading = lastReading;
     }
 
-    public Date getLastTime() 
-    {
+    public Date getLastTime() {
         return lastTime;
     }
-    public void setMeterReading(Long meterReading) 
-    {
-        this.meterReading = meterReading;
+
+    public void setLastTime(Date lastTime) {
+        this.lastTime = lastTime;
     }
 
-    public Long getMeterReading() 
-    {
+    public Long getMeterReading() {
         return meterReading;
     }
-    public void setMeterTime(Date meterTime) 
-    {
-        this.meterTime = meterTime;
+
+    public void setMeterReading(Long meterReading) {
+        this.meterReading = meterReading;
     }
 
-    public Date getMeterTime() 
-    {
+    public Date getMeterTime() {
         return meterTime;
     }
-    public void setIncrease(Long increase) 
-    {
-        this.increase = increase;
+
+    public void setMeterTime(Date meterTime) {
+        this.meterTime = meterTime;
     }
 
-    public Long getIncrease() 
-    {
+    public Long getIncrease() {
         return increase;
     }
 
+    public void setIncrease(Long increase) {
+        this.increase = increase;
+    }
+
     @Override
     public String toString() {
         return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)

+ 12 - 2
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/WaterMeterH.java

@@ -21,13 +21,15 @@ public class WaterMeterH extends BaseEntity
     private Long id;
 
     /** 园区代码 */
-    @Excel(name = "园区代码")
     private String areaCode;
 
     /** 计量设备 */
-    @Excel(name = "计量设备")
+    @Excel(name = "表计编号")
     private String deviceCode;
 
+    @Excel(name = "表计名称")
+    private String deviceName;
+
     /** 记录时间 */
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
@@ -83,6 +85,14 @@ public class WaterMeterH extends BaseEntity
         this.deviceCode = deviceCode;
     }
 
+    public String getDeviceName() {
+        return deviceName;
+    }
+
+    public void setDeviceName(String deviceName) {
+        this.deviceName = deviceName;
+    }
+
     public Date getRecordTime() {
         return recordTime;
     }

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

@@ -2,6 +2,7 @@ package com.ruoyi.ems.mapper;
 
 import java.util.List;
 
+import com.ruoyi.common.core.enums.MeterObjType;
 import com.ruoyi.ems.domain.MeterDevice;
 import org.apache.ibatis.annotations.Param;
 
@@ -29,7 +30,8 @@ public interface MeterDeviceMapper {
      */
     MeterDevice selectMeterDeviceByCode(@Param("areaCode") String areaCode, @Param("deviceCode") String deviceCode);
 
-    MeterDevice selectMeterDeviceByObj(@Param("objType") int objType, @Param("objCode") String objCode, @Param("meterCls") int meterCls);
+    List<MeterDevice> selectMeterDeviceByObj(@Param("areaCode") String areaCode, @Param("objType") int objType,
+        @Param("boundaryObj") String boundaryObj, @Param("meterCls") int meterCls);
 
     /**
      * 查询计量设备列表

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

@@ -1,5 +1,6 @@
 package com.ruoyi.ems.service;
 
+import com.ruoyi.common.core.enums.MeterObjType;
 import com.ruoyi.ems.domain.MeterDevice;
 
 import java.util.List;
@@ -37,6 +38,16 @@ public interface IMeterDeviceService {
     List<MeterDevice> selectMeterDeviceList(MeterDevice meterDevice);
 
     /**
+     * 查询区域计量表计
+     * @param areaCode 区域代码
+     * @param objType 对象类型
+     * @param boundaryObj 对象类型
+     * @param meterCls 计量对象分类
+     * @return 结果
+     */
+    List<MeterDevice> selectMeterDeviceByObj(String areaCode, MeterObjType objType, String boundaryObj, Integer meterCls);
+
+    /**
      * 新增计量设备
      *
      * @param meterDevice 计量设备

+ 9 - 8
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ChargingBillServiceImpl.java

@@ -28,6 +28,8 @@ import com.ruoyi.ems.model.QueryChargingBill;
 import com.ruoyi.ems.model.QueryMeter;
 import com.ruoyi.ems.service.IChargingBillService;
 import com.ruoyi.ems.service.ICoChargingConfigService;
+import com.ruoyi.ems.service.IMeterDeviceService;
+import org.apache.commons.collections4.CollectionUtils;
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -62,9 +64,6 @@ public class ChargingBillServiceImpl implements IChargingBillService {
     private MeterReadingMapper meterReadingMapper;
 
     @Autowired
-    private MeterDeviceMapper meterDeviceMapper;
-
-    @Autowired
     private AreaMapper areaMapper;
 
     @Autowired
@@ -73,6 +72,9 @@ public class ChargingBillServiceImpl implements IChargingBillService {
     @Autowired
     private ICoChargingConfigService coChargingConfigService;
 
+    @Autowired
+    private IMeterDeviceService meterDeviceService;
+
     /**
      * 查询商户计费账单列表
      *
@@ -178,13 +180,12 @@ public class ChargingBillServiceImpl implements IChargingBillService {
     private Map<String, ChargingBill> clacCoBill(QueryChargingBill queryParam, CoChargingConfig chargingCfg) {
         Map<String, ChargingBill> retMap = null;
 
-        // 查询计量设备
-        int objType = MeterObjType.METER_AREA.getType();
-
-        MeterDevice meterDevice = meterDeviceMapper.selectMeterDeviceByObj(objType, queryParam.getObjArea(),
+        List<MeterDevice> meterDevices = meterDeviceService.selectMeterDeviceByObj(queryParam.getAreaCode(), MeterObjType.METER_AREA, queryParam.getObjArea(),
             queryParam.getMeterCls());
 
-        if (null != meterDevice) {
+        if (CollectionUtils.isNotEmpty(meterDevices) ) {
+            // TODO 当有多个设备时,需要融合计算
+            MeterDevice meterDevice = meterDevices.get(0);
             QueryMeter recParam = new QueryMeter();
             recParam.setAreaCode(meterDevice.getAreaCode());
             recParam.setDeviceCode(meterDevice.getDeviceCode());

+ 43 - 47
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/MeterDeviceServiceImpl.java

@@ -47,16 +47,12 @@ public class MeterDeviceServiceImpl implements IMeterDeviceService {
      */
     @Override
     public MeterDevice selectMeterDeviceById(Long id) {
-        MeterDevice meterDevice = meterDeviceMapper.selectMeterDeviceById(id);
-        fillObjName(meterDevice);
-        return meterDevice;
+        return meterDeviceMapper.selectMeterDeviceById(id);
     }
 
     @Override
     public MeterDevice selectMeterDeviceByCode(String areaCode, String deviceCode) {
-        MeterDevice meterDevice = meterDeviceMapper.selectMeterDeviceByCode(areaCode, deviceCode);
-        fillObjName(meterDevice);
-        return meterDevice;
+        return meterDeviceMapper.selectMeterDeviceByCode(areaCode, deviceCode);
     }
 
     /**
@@ -67,13 +63,13 @@ public class MeterDeviceServiceImpl implements IMeterDeviceService {
      */
     @Override
     public List<MeterDevice> selectMeterDeviceList(MeterDevice meterDevice) {
-        List<MeterDevice> meterDevices = meterDeviceMapper.selectMeterDeviceList(meterDevice);
-
-        for (MeterDevice device : meterDevices) {
-            fillObjName(device);
-        }
+        return meterDeviceMapper.selectMeterDeviceList(meterDevice);
+    }
 
-        return meterDevices;
+    @Override
+    public List<MeterDevice> selectMeterDeviceByObj(String areaCode, MeterObjType objType, String boundaryObj,
+        Integer meterCls) {
+        return meterDeviceMapper.selectMeterDeviceByObj(areaCode, objType.getType(), boundaryObj, meterCls);
     }
 
     /**
@@ -120,39 +116,39 @@ public class MeterDeviceServiceImpl implements IMeterDeviceService {
         return meterDeviceMapper.deleteMeterDeviceById(id);
     }
 
-    private void fillObjName(MeterDevice meterDevice) {
-        // 计量区块
-        if (MeterObjType.METER_AREA.getType() == meterDevice.getObjType()) {
-            List<Area> areas = areaService.selectArea(new Area());
-            Map<String, Area> areaMap = areas.stream()
-                .collect(Collectors.toMap(Area::getAreaCode, Function.identity()));
-            String areaPath = AreaUtils.getAreaNamePath(meterDevice.getObjCode(), areaMap);
-            meterDevice.setObjName(areaPath);
-        }
-        // 计量设备设施
-        else if (MeterObjType.METER_FACS.getType() == meterDevice.getObjType()) {
-            EmsFacs facs = facsService.selectEmsFacsByCode(meterDevice.getObjCode());
-
-            if (facs != null) {
-                List<Area> areas = areaService.selectArea(new Area());
-                Map<String, Area> areaMap = areas.stream()
-                    .collect(Collectors.toMap(Area::getAreaCode, Function.identity()));
-                String areaPath = AreaUtils.getAreaNamePath(facs.getRefArea(), areaMap);
-
-                meterDevice.setObjName(areaPath != null ? areaPath + "/" + facs.getFacsName() : facs.getFacsName());
-            }
-            else {
-                meterDevice.setObjName("未知");
-            }
-        }
-        else if (MeterObjType.METER_DEVC.getType() == meterDevice.getObjType()) {
-            EmsDevice device = deviceService.selectDetailByCode(meterDevice.getObjCode());
-            if (device != null) {
-                meterDevice.setObjName(device.getAreaPath() + "/" + device.getDeviceName());
-            }
-            else {
-                meterDevice.setObjName("未知");
-            }
-        }
-    }
+    //    private void fillObjName(MeterDevice meterDevice) {
+    //        // 计量区块
+    //        if (MeterObjType.METER_AREA.getType() == meterDevice.getObjType()) {
+    //            List<Area> areas = areaService.selectArea(new Area());
+    //            Map<String, Area> areaMap = areas.stream()
+    //                .collect(Collectors.toMap(Area::getAreaCode, Function.identity()));
+    //            String areaPath = AreaUtils.getAreaNamePath(meterDevice.getObjCode(), areaMap);
+    //            meterDevice.setObjName(areaPath);
+    //        }
+    //        // 计量设备设施
+    //        else if (MeterObjType.METER_FACS.getType() == meterDevice.getObjType()) {
+    //            EmsFacs facs = facsService.selectEmsFacsByCode(meterDevice.getObjCode());
+    //
+    //            if (facs != null) {
+    //                List<Area> areas = areaService.selectArea(new Area());
+    //                Map<String, Area> areaMap = areas.stream()
+    //                    .collect(Collectors.toMap(Area::getAreaCode, Function.identity()));
+    //                String areaPath = AreaUtils.getAreaNamePath(facs.getRefArea(), areaMap);
+    //
+    //                meterDevice.setObjName(areaPath != null ? areaPath + "/" + facs.getFacsName() : facs.getFacsName());
+    //            }
+    //            else {
+    //                meterDevice.setObjName("未知");
+    //            }
+    //        }
+    //        else if (MeterObjType.METER_DEVC.getType() == meterDevice.getObjType()) {
+    //            EmsDevice device = deviceService.selectDetailByCode(meterDevice.getObjCode());
+    //            if (device != null) {
+    //                meterDevice.setObjName(device.getAreaPath() + "/" + device.getDeviceName());
+    //            }
+    //            else {
+    //                meterDevice.setObjName("未知");
+    //            }
+    //        }
+    //    }
 }

+ 7 - 5
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecMeterHMapper.xml

@@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <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"    />
@@ -25,12 +26,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 
     <select id="selectElecMeterHList" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="ElecMeterHResult">
         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
+            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 area_code = #{areaCode}</if>
-            <if test="deviceCode != null  and deviceCode != ''"> and device_code = #{deviceCode}</if>
-            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> and record_time between #{startTime} and #{endTime}</if>
+            <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="startTime != null and startTime != '' and endTime != null and endTime != ''"> and m.record_time between #{startTime} and #{endTime}</if>
         </where>
     </select>
         

+ 28 - 23
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/MeterDeviceMapper.xml

@@ -6,12 +6,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     
     <resultMap type="com.ruoyi.ems.domain.MeterDevice" id="meterDeviceResult">
         <result property="id"    column="id"    />
-        <result property="deviceCode"  column="device_code"    />
         <result property="areaCode"    column="area_code"    />
+        <result property="deviceCode"  column="device_code"    />
+        <result property="deviceName"  column="device_name"    />
+        <result property="deviceLocation"  column="device_location"    />
         <result property="meterCls"    column="meter_cls"    />
-        <result property="objType"     column="obj_type"    />
-        <result property="objCode"     column="obj_code"    />
-        <result property="objName"     column="obj_name"    />
         <result property="objTag"      column="obj_tag"    />
         <result property="colCycle"    column="col_cycle"    />
         <result property="colMode"     column="col_mode"    />
@@ -20,22 +19,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectMeterDeviceVo">
-        select id, device_code, area_code, meter_cls, obj_type, obj_code, obj_tag, col_cycle, col_mode, magnification, spec_desc from adm_meter_device
+        select id, area_code, device_code, device_name, device_location, meter_cls, obj_tag, col_cycle, col_mode, magnification, spec_desc from adm_meter_device
     </sql>
 
     <select id="selectMeterDeviceList" parameterType="com.ruoyi.ems.domain.MeterDevice" resultMap="meterDeviceResult">
         <include refid="selectMeterDeviceVo"/>
         <where>
-            <if test="deviceCode != null  and deviceCode != ''"> and device_code = #{deviceCode}</if>
-            <if test="areaCode != null  and areaCode != ''"> and area_code = #{areaCode}</if>
-            <if test="meterCls != null  and meterCls != ''"> and meter_cls = #{meterCls}</if>
-            <if test="objType != null "> and obj_type = #{objType}</if>
-            <if test="objCode != null  and objCode != ''"> and obj_code = #{objCode}</if>
-            <if test="objTag != null  and objTag != ''"> and obj_tag = #{objTag}</if>
+            <if test="deviceCode != null and deviceCode != ''"> and device_code = #{deviceCode}</if>
+            <if test="deviceName != null and deviceName != ''"> and device_name like concat('%', #{deviceName}, '%')</if>
+            <if test="areaCode != null and areaCode != ''"> and area_code = #{areaCode}</if>
+            <if test="meterCls != null and meterCls != ''"> and meter_cls = #{meterCls}</if>
+            <if test="objTag != null and objTag != ''"> and obj_tag = #{objTag}</if>
             <if test="colCycle != null "> and col_cycle = #{colCycle}</if>
             <if test="colMode != null "> and col_mode = #{colMode}</if>
         </where>
-        ORDER BY obj_type
     </select>
     
     <select id="selectMeterDeviceById" parameterType="Long" resultMap="meterDeviceResult">
@@ -49,18 +46,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </select>
 
     <select id="selectMeterDeviceByObj"  resultMap="meterDeviceResult">
-        <include refid="selectMeterDeviceVo"/>
-        where obj_type = #{objType} and obj_code = #{objCode} and meter_cls = #{meterCls}
+        select
+            m.id, m.area_code, m.device_code, m.device_name, m.device_location, m.meter_cls, m.obj_tag, m.col_cycle, m.col_mode, m.magnification, m.spec_desc
+        from adm_meter_device m
+        where m.area_code = #{areaCode}
+          and m.meter_cls = #{meterCls}
+          and m.device_code in
+              (select
+                   r.meter_device from adm_meter_boundary_rel r
+               where r.boundary_obj = #{boundaryObj}
+                 and r.obj_type = #{meterCls})
     </select>
         
     <insert id="insertMeterDevice" parameterType="com.ruoyi.ems.domain.MeterDevice" useGeneratedKeys="true" keyProperty="id">
         insert into adm_meter_device
         <trim prefix="(" suffix=")" suffixOverrides=",">
-            <if test="deviceCode != null and deviceCode != ''">device_code,</if>
             <if test="areaCode != null and areaCode != ''">area_code,</if>
+            <if test="deviceCode != null and deviceCode != ''">device_code,</if>
+            <if test="deviceName != null and deviceName != ''">device_name,</if>
+            <if test="deviceLocation != null and deviceLocation != ''">device_location,</if>
             <if test="meterCls != null and meterCls != ''">meter_cls,</if>
-            <if test="objType != null">obj_type,</if>
-            <if test="objCode != null and objCode != ''">obj_code,</if>
             <if test="objTag != null and objTag != ''">obj_tag,</if>
             <if test="colCycle != null">col_cycle,</if>
             <if test="colMode != null">col_mode,</if>
@@ -68,11 +73,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="specDesc != null">spec_desc,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
-            <if test="deviceCode != null and deviceCode != ''">#{deviceCode},</if>
             <if test="areaCode != null and areaCode != ''">#{areaCode},</if>
+            <if test="deviceCode != null and deviceCode != ''">#{deviceCode},</if>
+            <if test="deviceName != null and deviceName != ''">#{deviceName},</if>
+            <if test="deviceLocation != null and deviceLocation != ''">#{deviceLocation},</if>
             <if test="meterCls != null and meterCls != ''">#{meterCls},</if>
-            <if test="objType != null">#{objType},</if>
-            <if test="objCode != null and objCode != ''">#{objCode},</if>
             <if test="objTag != null and objTag != ''">#{objTag}</if>
             <if test="colCycle != null">#{colCycle},</if>
             <if test="colMode != null">#{colMode},</if>
@@ -84,11 +89,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     <update id="updateMeterDevice" parameterType="com.ruoyi.ems.domain.MeterDevice">
         update adm_meter_device
         <trim prefix="SET" suffixOverrides=",">
-            <if test="deviceCode != null and deviceCode != ''">device_code = #{deviceCode},</if>
             <if test="areaCode != null and areaCode != ''">area_code = #{areaCode},</if>
+            <if test="deviceCode != null and deviceCode != ''">device_code = #{deviceCode},</if>
+            <if test="deviceName != null and deviceName != ''">device_name = #{deviceName},</if>
+            <if test="deviceLocation != null and deviceLocation != ''">device_location = #{deviceLocation},</if>
             <if test="meterCls != null and meterCls != ''">meter_cls = #{meterCls},</if>
-            <if test="objType != null">obj_type = #{objType},</if>
-            <if test="objCode != null and objCode != ''">obj_code = #{objCode},</if>
             <if test="objTag != null and objTag != ''">obj_tag = #{objTag},</if>
             <if test="colCycle != null">col_cycle = #{colCycle},</if>
             <if test="colMode != null">col_mode = #{colMode},</if>

+ 24 - 3
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/MeterReadingMapper.xml

@@ -20,6 +20,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="updateTime"    column="update_time"    />
     </resultMap>
 
+    <resultMap type="com.ruoyi.ems.domain.MeterReading" id="readingManualResult">
+        <result property="id"    column="id"    />
+        <result property="deviceCode"    column="device_code"    />
+        <result property="deviceName"    column="device_name"    />
+        <result property="areaCode"    column="area_code"    />
+        <result property="year"    column="year"    />
+        <result property="meterMonth"    column="meter_month"    />
+        <result property="lastReading"    column="last_reading"    />
+        <result property="lastTime"    column="last_time"    />
+        <result property="meterReading"    column="meter_reading"    />
+        <result property="meterTime"    column="meter_time"    />
+        <result property="increase"    column="increase"    />
+        <result property="increase"    column="increase"    />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+
     <sql id="selectMeterReadingManualVo">
         select id, device_code, area_code, `year`, meter_month, last_reading, last_time, meter_reading, meter_time, increase, create_time, update_time from adm_meter_reading
     </sql>
@@ -29,9 +46,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where id = #{id}
     </select>
 
-    <select id="selectLastItem"  resultMap="MeterReadingManualResult">
-        <include refid="selectMeterReadingManualVo"/>
-        where area_code = #{areaCode} and device_code = #{deviceCode}
+    <select id="selectLastItem"  resultMap="readingManualResult">
+        select
+            r.id, r.device_code, m.device_name, r.area_code, r.`year`, r.meter_month, r.last_reading, r.last_time, r.meter_reading, r.meter_time, r.increase, r.create_time, r.update_time
+        from adm_meter_reading r
+          left join adm_meter_device m on r.device_code = m.device_code
+        where r.area_code = #{areaCode}
+          and r.device_code = #{deviceCode}
         order by meter_time desc
         limit 1
     </select>

+ 8 - 4
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/WaterMeterHMapper.xml

@@ -8,6 +8,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <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"    />
@@ -23,11 +24,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </sql>
 
     <select id="selectWaterMeterHList" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="WaterMeterHResult">
-        <include refid="selectWaterMeterHVo"/>
+        select
+            m.id, m.area_code, m.device_code, d.device_name, m.record_time, m.`date`, m.`time`, m.time_index, m.water_quantity, m.meter_unit_price, m.use_water_cost, m.create_time
+        from adm_water_meter_h m
+          left join adm_meter_device d on m.device_code = d.device_code
         <where>  
-            <if test="areaCode != null  and areaCode != ''"> and area_code = #{areaCode}</if>
-            <if test="deviceCode != null  and deviceCode != ''"> and device_code = #{deviceCode}</if>
-            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> and record_time between #{startTime} and #{endTime}</if>
+            <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="startTime != null and startTime != '' and endTime != null and endTime != ''"> and m.record_time between #{startTime} and #{endTime}</if>
         </where>
     </select>
 

+ 48 - 24
ems-cloud/sql/ems_init_data.sql

@@ -516,32 +516,56 @@ INSERT INTO `adm_ems_subsystem` (`system_code`, `system_name`, `short_name`, `ma
 
 -- 能源计量设备DEMO数据
 -- 电表
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-102', '321283124S3001', 45, 1, 'B-102', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-103', '321283124S3001', 45, 1, 'B-103', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-104', '321283124S3001', 45, 1, 'B-104', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-105', '321283124S3001', 45, 1, 'B-105', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-106', '321283124S3001', 45, 1, 'B-106', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-107', '321283124S3001', 45, 1, 'B-107', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-108', '321283124S3001', 45, 1, 'B-108', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-109', '321283124S3001', 45, 1, 'B-109', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-110', '321283124S3001', 45, 1, 'B-110', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-Z101', '321283124S3001', 45, 3, 'Z101', 0, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-Z120', '321283124S3001', 45, 3, 'Z120', 0, 4, 1, 50, '互感器表');
-
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-101', '321283124S3002', 45, 1, 'N-101', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-102', '321283124S3002', 45, 1, 'N-103', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-103', '321283124S3002', 45, 1, 'N-105', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-104', '321283124S3002', 45, 1, 'N-107', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-105', '321283124S3002', 45, 1, 'N-109', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-106', '321283124S3002', 45, 1, 'N-110', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-107', '321283124S3002', 45, 1, 'N-112', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-108', '321283124S3002', 45, 1, 'N-113', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-109', '321283124S3002', 45, 1, 'N-114', 1, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-N-110', '321283124S3002', 45, 1, 'N-115', 0, 4, 1, 1, '直采表');
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-Z010-R105-101', '321283124S3002', 45, 3, 'Z010-R105-101', 0, 4, 1, 20, '互感器表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-102', '北区/综合楼B-102', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-103', '北区/综合楼B-103', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-104', '北区/综合楼B-104', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-105', '北区/综合楼B-105', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-106', '北区/综合楼B-106', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-107', '北区/综合楼B-107', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-108', '北区/综合楼B-108', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-109', '北区/综合楼B-109', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-110', '北区/综合楼B-110', '北区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-Z101', '北区/综合楼照明(Z101)', '北区综合楼一楼设备间', 45, 0, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-Z120', '北区/综合楼空调(Z120)', '北区综合楼一楼设备间', 45, 0, 4, 1, 50, '互感器表');
+
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-101', '南区/综合楼N-101', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-102', '南区/综合楼N-103', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-103', '南区/综合楼N-105', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-104', '南区/综合楼N-107', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-105', '南区/综合楼N-109', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-106', '南区/综合楼N-110', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-107', '南区/综合楼N-112', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-108', '南区/综合楼N-113', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-109', '南区/综合楼N-114', '南区综合楼一楼设备间', 45, 1, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3002', 'J-D-N-110', '南区/综合楼N-115', '南区综合楼一楼设备间', 45, 0, 4, 1, 1, '直采表');
 
 -- 水表
-INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_type`, `obj_code`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('J-D-B-01', '321283124S3001', 70, 1, '321283124S300101', 0, 4, 1, 1, '直采表');
+INSERT INTO `adm_meter_device` (`area_code`, `device_code`, `device_name`, `device_location`, `meter_cls`, `obj_tag`, `col_cycle`, `col_mode`, `magnification`, `spec_desc`) VALUES ('321283124S3001', 'J-D-B-01', '北区/综合楼B-102', '北区综合楼后院1号井', 70, 0, 4, 1, 1, '直采表');
+
+-- 表计绑定关系
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-102', 'B-102', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-103', 'B-103', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-104', 'B-104', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-105', 'B-105', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-106', 'B-106', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-107', 'B-107', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-108', 'B-108', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-109', 'B-109', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-110', 'B-110', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-Z101', 'B-Z101', 2);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-B-Z120', 'B-Z101', 2);
+
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-101', 'N-101', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-102', 'N-102', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-103', 'N-103', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-104', 'N-104', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-105', 'N-105', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-106', 'N-106', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-107', 'N-107', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-108', 'N-108', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-109', 'N-109', 1);
+INSERT INTO `adm_meter_boundary_rel` (`meter_device`, `boundary_obj`, `obj_type`) VALUES ('J-D-N-110', 'N-110', 1);
+
 
 -- 抄表demo数据
 INSERT INTO adm_meter_reading (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-102', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);

+ 17 - 3
ems-cloud/sql/ems_server.sql

@@ -573,11 +573,11 @@ create table adm_ems_device_component  (
 drop table if exists adm_meter_device;
 create table adm_meter_device  (
   `id`              bigint(20)      not null auto_increment      comment '序号',
-  `device_code`     varchar(32)     not null                     comment '设备代码',
   `area_code`       varchar(32)     default null                 comment '区域代码',
+  `device_code`     varchar(32)     not null                     comment '设备代码',
+  `device_name`     varchar(64)     default null                 comment '设备别名',
+  `device_location` varchar(128)    default null                 comment '设备别名',
   `meter_cls`       int             not null                     comment '计量类别25-天然气 45-电 70-水',
-  `obj_type`        int             not null                     comment '计量对象类型 1-区域 2-设备',
-  `obj_code`        varchar(32)     not null                     comment '计量对象编码',
   `obj_tag`         int             default null                 comment '对象标记',
   `col_cycle`       int             default null                 comment '采集周期',
   `col_mode`        int             default null                 comment '采集方式',
@@ -589,6 +589,20 @@ create table adm_meter_device  (
 
 
 -- ----------------------------
+-- 计量设备绑定边界对象关系表
+-- ----------------------------
+drop table if exists adm_meter_boundary_rel;
+create table adm_meter_boundary_rel  (
+  `id`              bigint(20)      not null auto_increment      comment '序号',
+  `meter_device`    varchar(64)     not null                     comment '计量设备',
+  `boundary_obj`    varchar(64)     not null                     comment '边界对象',
+  `obj_type`        int             not null                     comment '设备类型',
+  primary key (`id`),
+  unique key ux_meter_device(`meter_device`,`boundary_obj`,`obj_type`)
+) engine=innodb auto_increment=1 comment = '计量设备绑定边界对象关系表';
+
+
+-- ----------------------------
 -- 能源对象模型表
 -- ----------------------------
 drop table if exists adm_ems_obj_model;