Răsfoiți Sursa

Merge remote-tracking branch 'origin/master'

chen.cheng 11 luni în urmă
părinte
comite
ceb560d68c
23 a modificat fișierele cu 667 adăugiri și 293 ștergeri
  1. 57 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ChargingBillController.java
  2. 0 38
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/CoChargingBillController.java
  3. 23 24
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/MeterReadingController.java
  4. 84 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ChargingBill.java
  5. 0 28
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/CoChargingBill.java
  6. 1 1
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/MeterReading.java
  7. 20 8
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/PowerBoxElecEqpt.java
  8. 16 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/common/MeterObjSubType.java
  9. 87 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/vo/QueryChargingBill.java
  10. 5 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/MeterDeviceMapper.java
  11. 7 7
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/MeterReadingMapper.java
  12. 34 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IChargingBillService.java
  13. 8 8
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IMeterReadingService.java
  14. 4 2
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/AreaServiceImpl.java
  15. 91 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ChargingBillServiceImpl.java
  16. 0 52
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/MeterReadingManualServiceImpl.java
  17. 52 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/MeterReadingServiceImpl.java
  18. 1 1
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/EmsFacsTypeMapper.xml
  19. 5 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/MeterDeviceMapper.xml
  20. 8 8
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/MeterReadingMapper.xml
  21. 13 8
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/PowerBoxElecEqptMapper.xml
  22. 103 103
      ems-cloud/sql/ems_init_data.sql
  23. 48 5
      ems-cloud/sql/ems_server.sql

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

@@ -0,0 +1,57 @@
+/*
+ * 文 件 名:  CoBillController
+ * 版    权:  浩鲸云计算科技股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2024/8/30
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.controller;
+
+/**
+ * 商户账单接口
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2024/8/30]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.ems.domain.vo.QueryChargingBill;
+import com.ruoyi.ems.service.IChargingBillService;
+import io.swagger.annotations.Api;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+/**
+ * 商户能源账单配置Controller
+ *
+ * @author ruoyi
+ * @date 2024-08-26
+ */
+@RestController
+@RequestMapping("/basecfg/bill/charging")
+@Api(value = "CoChargingBillController", description = "计费账单服务")
+public class ChargingBillController extends BaseController {
+    @Autowired
+    private IChargingBillService chargingBillService;
+
+    /**
+     * 商户计费
+     * @param queryParam 查询参数
+     * @return
+     */
+    @GetMapping(value = "/co/bill")
+    public AjaxResult getCoBill(QueryChargingBill queryParam) {
+        return success(chargingBillService.selectChargingBillList(queryParam));
+    }
+}

+ 0 - 38
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/CoChargingBillController.java

@@ -1,38 +0,0 @@
-/*
- * 文 件 名:  CoBillController
- * 版    权:  浩鲸云计算科技股份有限公司
- * 描    述:  <描述>
- * 修 改 人:  lvwenbin
- * 修改时间:  2024/8/30
- * 跟踪单号:  <跟踪单号>
- * 修改单号:  <修改单号>
- * 修改内容:  <修改内容>
- */
-package com.ruoyi.ems.controller;
-
-/**
- * 商户账单接口
- * <功能详细描述>
- *
- * @author lvwenbin
- * @version [版本号, 2024/8/30]
- * @see [相关类/方法]
- * @since [产品/模块版本]
- */
-
-import io.swagger.annotations.Api;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * 商户能源账单配置Controller
- *
- * @author ruoyi
- * @date 2024-08-26
- */
-@RestController
-@RequestMapping("/basecfg/bill/coCharging")
-@Api(value = "CoChargingBillController", description = "商户计费账单服务")
-public class CoChargingBillController {
-
-}

+ 23 - 24
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/MeterReadingManualController.java → ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/MeterReadingController.java

@@ -6,10 +6,10 @@ import com.ruoyi.common.log.annotation.Log;
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.ems.domain.MeterDevice;
-import com.ruoyi.ems.domain.MeterReadingManual;
+import com.ruoyi.ems.domain.MeterReading;
 import com.ruoyi.ems.domain.vo.QueryMeterReading;
 import com.ruoyi.ems.service.IMeterDeviceService;
-import com.ruoyi.ems.service.IMeterReadingManualService;
+import com.ruoyi.ems.service.IMeterReadingService;
 import com.ruoyi.ems.util.DateUtils;
 import com.ruoyi.ems.util.exception.Assert;
 import com.ruoyi.ems.util.exception.BusinessException;
@@ -25,32 +25,31 @@ import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.bind.annotation.RestController;
 
-import java.time.Year;
 import java.util.Date;
 import java.util.List;
 
 /**
- * 手动抄记录Controller
+ * 抄记录Controller
  *
  * @author ruoyi
  * @date 2024-08-28
  */
 @RestController
 @RequestMapping("/meterReading")
-@Api(value = "MeterReadingManualController", description = "手动抄表管理")
-public class MeterReadingManualController extends BaseController {
+@Api(value = "MeterReadingManualController", description = "抄表管理")
+public class MeterReadingController extends BaseController {
     @Autowired
-    private IMeterReadingManualService meterReadingManualService;
+    private IMeterReadingService meterReadingService;
 
     @Autowired
     private IMeterDeviceService meterDeviceService;
 
     /**
-     * 查询手动抄记录列表
+     * 查询抄记录列表
      */
     @GetMapping("/listByParam")
     public AjaxResult listByParam(QueryMeterReading queryMeterReading) {
-        List<MeterReadingManual> list = meterReadingManualService.selectList(queryMeterReading);
+        List<MeterReading> list = meterReadingService.selectList(queryMeterReading);
         return success(list);
     }
 
@@ -60,19 +59,19 @@ public class MeterReadingManualController extends BaseController {
     @GetMapping(value = "/getLastRecord")
     public AjaxResult getLastRecord(@RequestParam(name = "areaCode") String areaCode,
         @RequestParam(name = "deviceCode") String deviceCode) {
-        return success(meterReadingManualService.selectLastItem(areaCode, deviceCode));
+        return success(meterReadingService.selectLastItem(areaCode, deviceCode));
     }
 
     /**
-     * 新增手动抄记录
+     * 新增抄记录
      */
     @RequiresPermissions("ems:meterReading:add")
-    @Log(title = "手动抄记录", businessType = BusinessType.INSERT)
+    @Log(title = "抄记录", businessType = BusinessType.INSERT)
     @PostMapping
-    public AjaxResult add(@RequestBody MeterReadingManual meterRec) {
+    public AjaxResult add(@RequestBody MeterReading meterRec) {
         try {
             fillData(meterRec);
-            int count = meterReadingManualService.insert(meterRec);
+            int count = meterReadingService.insert(meterRec);
             return toAjax(count);
         }
         catch (BusinessException e) {
@@ -81,19 +80,19 @@ public class MeterReadingManualController extends BaseController {
     }
 
     /**
-     * 修改手动抄记录
+     * 修改抄记录
      */
     @RequiresPermissions("ems:meterReading:edit")
-    @Log(title = "手动抄记录", businessType = BusinessType.UPDATE)
+    @Log(title = "抄记录", businessType = BusinessType.UPDATE)
     @PutMapping
-    public AjaxResult edit(@RequestBody MeterReadingManual meterRec) {
+    public AjaxResult edit(@RequestBody MeterReading meterRec) {
         try {
-            MeterReadingManual dbItem = meterReadingManualService.selectById(meterRec.getId());
+            MeterReading dbItem = meterReadingService.selectById(meterRec.getId());
             Assert.notNull(dbItem, -1, "该记录不存在");
-            meterReadingManualService.deleteById(meterRec.getId());
+            meterReadingService.deleteById(meterRec.getId());
             dbItem.setMeterReading(meterRec.getMeterReading());
             fillData(meterRec);
-            int count = meterReadingManualService.insert(meterRec);
+            int count = meterReadingService.insert(meterRec);
             return toAjax(count);
         }
         catch (BusinessException e) {
@@ -105,14 +104,14 @@ public class MeterReadingManualController extends BaseController {
      * 删除动力箱柜
      */
     @RequiresPermissions("ems:meterReading:remove")
-    @Log(title = "手动抄记录", businessType = BusinessType.DELETE)
+    @Log(title = "抄记录", businessType = BusinessType.DELETE)
     @DeleteMapping("/{id}")
     public AjaxResult remove(@PathVariable Long id) {
-        return toAjax(meterReadingManualService.deleteById(id));
+        return toAjax(meterReadingService.deleteById(id));
     }
 
-    private void fillData(MeterReadingManual meterRec) {
-        MeterReadingManual lastItem = meterReadingManualService.selectLastItem(meterRec.getAreaCode(),
+    private void fillData(MeterReading meterRec) {
+        MeterReading lastItem = meterReadingService.selectLastItem(meterRec.getAreaCode(),
             meterRec.getDeviceCode());
         MeterDevice meterDevice = meterDeviceService.selectMeterDeviceByCode(meterRec.getAreaCode(),
             meterRec.getDeviceCode());

+ 84 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ChargingBill.java

@@ -0,0 +1,84 @@
+/*
+ * 文 件 名:  ChargingBill
+ * 版    权:  浩鲸云计算科技股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2024/9/2
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.domain;
+
+/**
+ * 采购项目
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2024/9/2]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public class ChargingBill {
+    private int objType;
+
+    /**
+     * 账单项目名称
+     */
+    private String itemName;
+
+    /**
+     * 计量时间
+     */
+    private String meteredTime;
+
+    /**
+     * 计量值
+     */
+    private Double meteredValue;
+
+    /**
+     * 计量金额
+     */
+    private Double meteredPrice;
+
+    public int getObjType() {
+        return objType;
+    }
+
+    public void setObjType(int objType) {
+        this.objType = objType;
+    }
+
+    public String getItemName() {
+        return itemName;
+    }
+
+    public void setItemName(String itemName) {
+        this.itemName = itemName;
+    }
+
+    public String getMeteredTime() {
+        return meteredTime;
+    }
+
+    public void setMeteredTime(String meteredTime) {
+        this.meteredTime = meteredTime;
+    }
+
+    public Double getMeteredValue() {
+        return meteredValue;
+    }
+
+    public void setMeteredValue(Double meteredValue) {
+        this.meteredValue = meteredValue;
+    }
+
+    public Double getMeteredPrice() {
+        return meteredPrice;
+    }
+
+    public void setMeteredPrice(Double meteredPrice) {
+        this.meteredPrice = meteredPrice;
+    }
+}

+ 0 - 28
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/CoChargingBill.java

@@ -1,28 +0,0 @@
-/*
- * 文 件 名:  CoChargingBill
- * 版    权:  浩鲸云计算科技股份有限公司
- * 描    述:  <描述>
- * 修 改 人:  lvwenbin
- * 修改时间:  2024/8/30
- * 跟踪单号:  <跟踪单号>
- * 修改单号:  <修改单号>
- * 修改内容:  <修改内容>
- */
-package com.ruoyi.ems.domain;
-
-/**
- * 商户计费账单
- * <功能详细描述>
- *
- * @author lvwenbin
- * @version [版本号, 2024/8/30]
- * @see [相关类/方法]
- * @since [产品/模块版本]
- */
-public class CoChargingBill {
-    private String objCode;
-
-    private String objName;
-
-
-}

+ 1 - 1
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/MeterReadingManual.java → ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/MeterReading.java

@@ -14,7 +14,7 @@ import java.util.Date;
  * @author ruoyi
  * @date 2024-08-28
  */
-public class MeterReadingManual extends BaseEntity
+public class MeterReading extends BaseEntity
 {
     private static final long serialVersionUID = 1L;
 

+ 20 - 8
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/PowerBoxElecEqpt.java

@@ -47,13 +47,16 @@ public class PowerBoxElecEqpt extends BaseEntity
     @Excel(name = "额定电流")
     private Long ratedCurrent;
 
+    /** 祖籍列表 */
+    private String ancestors;
+
     /** 上级电气件 */
     @Excel(name = "上级电气件")
     private String parentEqpt;
 
-    /** 计量设备 */
-    @Excel(name = "计量设备")
-    private String meterDevice;
+    /** 下级支路 */
+    @Excel(name = "下级支路")
+    private String subCircuit;
 
     public Long getId() {
         return id;
@@ -135,12 +138,20 @@ public class PowerBoxElecEqpt extends BaseEntity
         this.parentEqpt = parentEqpt;
     }
 
-    public String getMeterDevice() {
-        return meterDevice;
+    public String getAncestors() {
+        return ancestors;
+    }
+
+    public void setAncestors(String ancestors) {
+        this.ancestors = ancestors;
+    }
+
+    public String getSubCircuit() {
+        return subCircuit;
     }
 
-    public void setMeterDevice(String meterDevice) {
-        this.meterDevice = meterDevice;
+    public void setSubCircuit(String subCircuit) {
+        this.subCircuit = subCircuit;
     }
 
     @Override
@@ -155,7 +166,8 @@ public class PowerBoxElecEqpt extends BaseEntity
             .append("ratedVoltage", getRatedVoltage())
             .append("ratedCurrent", getRatedCurrent())
             .append("parentEqpt", getParentEqpt())
-            .append("meterDevice", getMeterDevice())
+            .append("ancestors", getAncestors())
+            .append("subCircuit", getSubCircuit())
             .toString();
     }
 }

+ 16 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/common/MeterObjSubType.java

@@ -10,6 +10,8 @@
  */
 package com.ruoyi.ems.domain.common;
 
+import org.apache.commons.lang3.StringUtils;
+
 /**
  * 计量对象子
  * <功能详细描述>
@@ -43,4 +45,18 @@ public enum MeterObjSubType {
     public void setType(int type) {
         this.type = type;
     }
+
+    public static MeterObjSubType getByTier(String tier) {
+        if (StringUtils.equals(tier, AreaTier.Area.name())) {
+            return METER_AREA;
+        }
+        else if (StringUtils.equals(tier, AreaTier.Building.name())) {
+            return METER_BUILDING;
+        }
+        else if (StringUtils.equals(tier, AreaTier.Zoning.name())) {
+            return METER_ZONING;
+        }
+
+        return null;
+    }
 }

+ 87 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/vo/QueryChargingBill.java

@@ -0,0 +1,87 @@
+/*
+ * 文 件 名:  QueryChargingBill
+ * 版    权:  浩鲸云计算科技股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2024/9/2
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.domain.vo;
+
+/**
+ * 查询账单请求
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2024/9/2]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public class QueryChargingBill {
+    /**
+     * 区域编码
+     */
+    private String areaCode;
+
+    /**
+     * 区域层级
+     */
+    private String tier;
+
+    /**
+     * 计量类型 45:电,70:水
+     */
+    private Integer meterCls;
+
+    /**
+     * 开始时间
+     */
+    private String startTime;
+
+    /**
+     * 结束时间
+     */
+    private String endTime;
+
+    public String getAreaCode() {
+        return areaCode;
+    }
+
+    public void setAreaCode(String areaCode) {
+        this.areaCode = areaCode;
+    }
+
+    public String getTier() {
+        return tier;
+    }
+
+    public void setTier(String tier) {
+        this.tier = tier;
+    }
+
+    public Integer getMeterCls() {
+        return meterCls;
+    }
+
+    public void setMeterCls(Integer meterCls) {
+        this.meterCls = meterCls;
+    }
+
+    public String getStartTime() {
+        return startTime;
+    }
+
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
+    }
+
+    public String getEndTime() {
+        return endTime;
+    }
+
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
+    }
+}

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

@@ -29,6 +29,11 @@ public interface MeterDeviceMapper {
      */
     MeterDevice selectMeterDeviceByCode(@Param("areaCode") String areaCode, @Param("deviceCode") String deviceCode);
 
+    MeterDevice selectMeterDeviceByObj(@Param("objType") int objType,
+        @Param("objSubType") int objSubType,
+        @Param("objCode") String objCode,
+        @Param("meterCls") int meterCls);
+
     /**
      * 查询计量设备列表
      *

+ 7 - 7
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/MeterReadingManualMapper.java → ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/MeterReadingMapper.java

@@ -2,7 +2,7 @@ package com.ruoyi.ems.mapper;
 
 import java.util.List;
 
-import com.ruoyi.ems.domain.MeterReadingManual;
+import com.ruoyi.ems.domain.MeterReading;
 import com.ruoyi.ems.domain.vo.QueryMeterReading;
 import org.apache.ibatis.annotations.Param;
 
@@ -12,14 +12,14 @@ import org.apache.ibatis.annotations.Param;
  * @author ruoyi
  * @date 2024-08-28
  */
-public interface MeterReadingManualMapper {
+public interface MeterReadingMapper {
     /**
      * 查询手动抄记录列表
      *
      * @param id   区域编码
      * @return 手动抄记录集合
      */
-    MeterReadingManual selectById(@Param("id") Long id);
+    MeterReading selectById(@Param("id") Long id);
 
     /**
      * 查询手动抄记录列表
@@ -28,7 +28,7 @@ public interface MeterReadingManualMapper {
      * @param deviceCode 设备编码
      * @return 手动抄记录集合
      */
-    MeterReadingManual selectLastItem(@Param("areaCode") String areaCode, @Param("deviceCode") String deviceCode);
+    MeterReading selectLastItem(@Param("areaCode") String areaCode, @Param("deviceCode") String deviceCode);
 
     /**
      * 查询手动抄记录列表
@@ -36,7 +36,7 @@ public interface MeterReadingManualMapper {
      * @param queryMeterReading 参数
      * @return 手动抄记录集合
      */
-    List<MeterReadingManual> selectList(QueryMeterReading queryMeterReading);
+    List<MeterReading> selectList(QueryMeterReading queryMeterReading);
 
     /**
      * 新增手动抄记录
@@ -44,7 +44,7 @@ public interface MeterReadingManualMapper {
      * @param meterReadingManual 手动抄记录
      * @return 结果
      */
-    int insert(MeterReadingManual meterReadingManual);
+    int insert(MeterReading meterReadingManual);
 
     /**
      * 修改手动抄记录
@@ -52,7 +52,7 @@ public interface MeterReadingManualMapper {
      * @param meterReadingManual 手动抄记录
      * @return 结果
      */
-    int update(MeterReadingManual meterReadingManual);
+    int update(MeterReading meterReadingManual);
 
     /**
      * 删除手动抄记录

+ 34 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IChargingBillService.java

@@ -0,0 +1,34 @@
+/*
+ * 文 件 名:  IChargingBillService
+ * 版    权:  浩鲸云计算科技股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2024/9/2
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.service;
+
+import com.ruoyi.ems.domain.ChargingBill;
+import com.ruoyi.ems.domain.vo.QueryChargingBill;
+
+import java.util.List;
+
+/**
+ * 计费账单服务
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2024/9/2]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+public interface IChargingBillService {
+    /**
+     * 查询计费账单列表
+     * @param queryParam 查询参数
+     * @return 返回列表
+     */
+    List<ChargingBill> selectChargingBillList(QueryChargingBill queryParam);
+}

+ 8 - 8
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IMeterReadingManualService.java → ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IMeterReadingService.java

@@ -1,19 +1,19 @@
 package com.ruoyi.ems.service;
 
-import com.ruoyi.ems.domain.MeterReadingManual;
+import com.ruoyi.ems.domain.MeterReading;
 import com.ruoyi.ems.domain.vo.QueryMeterReading;
 
 import java.util.List;
 
 /**
- * 手动抄记录Service接口
+ * 抄记录Service接口
  * 
  * @author ruoyi
  * @date 2024-08-28
  */
-public interface IMeterReadingManualService
+public interface IMeterReadingService
 {
-    MeterReadingManual selectById(Long id);
+    MeterReading selectById(Long id);
 
     /**
      * 查询手动抄记录列表
@@ -22,7 +22,7 @@ public interface IMeterReadingManualService
      * @param deviceCode 设备编码
      * @return 手动抄记录集合
      */
-    MeterReadingManual selectLastItem(String areaCode, String deviceCode);
+    MeterReading selectLastItem(String areaCode, String deviceCode);
 
     /**
      * 查询手动抄记录列表
@@ -30,7 +30,7 @@ public interface IMeterReadingManualService
      * @param queryMeterReading 查询条件参数
      * @return 手动抄记录集合
      */
-    List<MeterReadingManual> selectList(QueryMeterReading queryMeterReading);
+    List<MeterReading> selectList(QueryMeterReading queryMeterReading);
 
     /**
      * 新增手动抄记录
@@ -38,7 +38,7 @@ public interface IMeterReadingManualService
      * @param meterReadingManual 手动抄记录
      * @return 结果
      */
-    int insert(MeterReadingManual meterReadingManual);
+    int insert(MeterReading meterReadingManual);
 
     /**
      * 修改手动抄记录
@@ -46,7 +46,7 @@ public interface IMeterReadingManualService
      * @param meterReadingManual 手动抄记录
      * @return 结果
      */
-    int update(MeterReadingManual meterReadingManual);
+    int update(MeterReading meterReadingManual);
 
     /**
      * 删除手动抄记录

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

@@ -204,8 +204,10 @@ public class AreaServiceImpl implements IAreaService {
                     }
                 }
 
-                area.setChildren(buildings);
-                retList.add(area);
+                if (CollectionUtils.isNotEmpty(buildings)) {
+                    area.setChildren(buildings);
+                    retList.add(area);
+                }
             }
         }
 

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

@@ -0,0 +1,91 @@
+/*
+ * 文 件 名:  ChargingBillServiceImpl
+ * 版    权:  浩鲸云计算科技股份有限公司
+ * 描    述:  <描述>
+ * 修 改 人:  lvwenbin
+ * 修改时间:  2024/9/2
+ * 跟踪单号:  <跟踪单号>
+ * 修改单号:  <修改单号>
+ * 修改内容:  <修改内容>
+ */
+package com.ruoyi.ems.service.impl;
+
+import com.ruoyi.ems.domain.ChargingBill;
+import com.ruoyi.ems.domain.MeterDevice;
+import com.ruoyi.ems.domain.MeterReading;
+import com.ruoyi.ems.domain.common.MeterObjSubType;
+import com.ruoyi.ems.domain.common.MeterObjType;
+import com.ruoyi.ems.domain.vo.QueryChargingBill;
+import com.ruoyi.ems.domain.vo.QueryMeterReading;
+import com.ruoyi.ems.mapper.MeterDeviceMapper;
+import com.ruoyi.ems.mapper.MeterReadingMapper;
+import com.ruoyi.ems.service.IChargingBillService;
+import com.ruoyi.ems.util.exception.BusinessException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * 账单服务接口
+ * <功能详细描述>
+ *
+ * @author lvwenbin
+ * @version [版本号, 2024/9/2]
+ * @see [相关类/方法]
+ * @since [产品/模块版本]
+ */
+@Service
+public class ChargingBillServiceImpl implements IChargingBillService {
+
+    @Autowired
+    private MeterReadingMapper meterReadingMapper;
+
+    @Autowired
+    private MeterDeviceMapper meterDeviceMapper;
+
+    @Override
+    public List<ChargingBill> selectChargingBillList(QueryChargingBill queryParam) {
+        List<ChargingBill> retList = new ArrayList<>();
+
+        try {
+            // 查询计量设备
+            int objType = MeterObjType.METER_ABZ.getType();
+            int objSubType = MeterObjSubType.getByTier(queryParam.getTier()).getType();
+            MeterDevice meterDevice = meterDeviceMapper.selectMeterDeviceByObj(objType, objSubType,
+                queryParam.getAreaCode(), queryParam.getMeterCls());
+
+            if (null != meterDevice) {
+                QueryMeterReading recParam = new QueryMeterReading();
+                recParam.setAreaCode(meterDevice.getAreaCode());
+                recParam.setDeviceCode(meterDevice.getDeviceCode());
+                recParam.setStartMonth(queryParam.getStartTime());
+                recParam.setEndMonth(queryParam.getEndTime());
+
+                List<MeterReading> recList = meterReadingMapper.selectList(recParam);
+                retList = convertToChargingBill(recList);
+            }
+        }
+        catch (BusinessException e) {
+            throw e;
+        }
+        catch (Exception e) {
+            throw new BusinessException(-1, "查询账单失败", e);
+        }
+
+        return retList;
+    }
+
+    private List<ChargingBill> convertToChargingBill(List<MeterReading> recList) {
+        List<ChargingBill> retList = new ArrayList<>();
+
+        for (MeterReading rec : recList) {
+            ChargingBill bill = new ChargingBill();
+
+            retList.add(bill);
+        }
+
+        return retList;
+    }
+}

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

@@ -1,52 +0,0 @@
-package com.ruoyi.ems.service.impl;
-
-import com.ruoyi.ems.domain.MeterReadingManual;
-import com.ruoyi.ems.domain.vo.QueryMeterReading;
-import com.ruoyi.ems.mapper.MeterReadingManualMapper;
-import com.ruoyi.ems.service.IMeterReadingManualService;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * 手动抄记录Service业务层处理
- *
- * @author ruoyi
- * @date 2024-08-28
- */
-@Service
-public class MeterReadingManualServiceImpl implements IMeterReadingManualService {
-    @Autowired
-    private MeterReadingManualMapper meterReadingManualMapper;
-
-    @Override
-    public MeterReadingManual selectById(Long id) {
-        return meterReadingManualMapper.selectById(id);
-    }
-
-    @Override
-    public MeterReadingManual selectLastItem(String areaCode, String deviceCode) {
-        return meterReadingManualMapper.selectLastItem(areaCode, deviceCode);
-    }
-
-    @Override
-    public List<MeterReadingManual> selectList(QueryMeterReading queryMeterReading) {
-        return meterReadingManualMapper.selectList(queryMeterReading);
-    }
-
-    @Override
-    public int insert(MeterReadingManual meterReadingManual) {
-        return meterReadingManualMapper.insert(meterReadingManual);
-    }
-
-    @Override
-    public int update(MeterReadingManual meterReadingManual) {
-        return meterReadingManualMapper.update(meterReadingManual);
-    }
-
-    @Override
-    public int deleteById(Long id) {
-        return meterReadingManualMapper.deleteById(id);
-    }
-}

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

@@ -0,0 +1,52 @@
+package com.ruoyi.ems.service.impl;
+
+import com.ruoyi.ems.domain.MeterReading;
+import com.ruoyi.ems.domain.vo.QueryMeterReading;
+import com.ruoyi.ems.mapper.MeterReadingMapper;
+import com.ruoyi.ems.service.IMeterReadingService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+/**
+ * 手动抄记录Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-08-28
+ */
+@Service
+public class MeterReadingServiceImpl implements IMeterReadingService {
+    @Autowired
+    private MeterReadingMapper meterReadingMapper;
+
+    @Override
+    public MeterReading selectById(Long id) {
+        return meterReadingMapper.selectById(id);
+    }
+
+    @Override
+    public MeterReading selectLastItem(String areaCode, String deviceCode) {
+        return meterReadingMapper.selectLastItem(areaCode, deviceCode);
+    }
+
+    @Override
+    public List<MeterReading> selectList(QueryMeterReading queryMeterReading) {
+        return meterReadingMapper.selectList(queryMeterReading);
+    }
+
+    @Override
+    public int insert(MeterReading meterReadingManual) {
+        return meterReadingMapper.insert(meterReadingManual);
+    }
+
+    @Override
+    public int update(MeterReading meterReadingManual) {
+        return meterReadingMapper.update(meterReadingManual);
+    }
+
+    @Override
+    public int deleteById(Long id) {
+        return meterReadingMapper.deleteById(id);
+    }
+}

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

@@ -36,7 +36,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="code != null and code != ''">code,</if>
             <if test="name != null and name != ''">name,</if>
-            <if test="desc != null">desc,</if>
+            <if test="desc != null">`desc`,</if>
             <if test="version != null">version,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">

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

@@ -49,6 +49,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <include refid="selectMeterDeviceVo"/>
         where area_code = #{areaCode} and device_code = #{deviceCode}
     </select>
+
+    <select id="selectMeterDeviceByObj"  resultMap="meterDeviceResult">
+        <include refid="selectMeterDeviceVo"/>
+        where obj_type = #{objType} and obj_sub_type = #{objSubType} and obj_code = #{objCode} and meter_cls = #{meterCls}
+    </select>
         
     <insert id="insertMeterDevice" parameterType="com.ruoyi.ems.domain.MeterDevice" useGeneratedKeys="true" keyProperty="id">
         insert into adm_meter_device

+ 8 - 8
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/MeterReadingManualMapper.xml → ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/MeterReadingMapper.xml

@@ -2,9 +2,9 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.ruoyi.ems.mapper.MeterReadingManualMapper">
+<mapper namespace="com.ruoyi.ems.mapper.MeterReadingMapper">
     
-    <resultMap type="com.ruoyi.ems.domain.MeterReadingManual" id="MeterReadingManualResult">
+    <resultMap type="com.ruoyi.ems.domain.MeterReading" id="MeterReadingManualResult">
         <result property="id"    column="id"    />
         <result property="deviceCode"    column="device_code"    />
         <result property="areaCode"    column="area_code"    />
@@ -21,7 +21,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </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_manual
+        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>
 
     <select id="selectById"  parameterType="Long" resultMap="MeterReadingManualResult">
@@ -48,8 +48,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ORDER BY meter_month ${orderFlag}
     </select>
 
-    <insert id="insert" parameterType="com.ruoyi.ems.domain.MeterReadingManual" useGeneratedKeys="true" keyProperty="id">
-        insert into adm_meter_reading_manual
+    <insert id="insert" parameterType="com.ruoyi.ems.domain.MeterReading" useGeneratedKeys="true" keyProperty="id">
+        insert into adm_meter_reading
         <trim prefix="(" suffix=")" suffixOverrides=",">
             <if test="deviceCode != null and deviceCode != ''">device_code,</if>
             <if test="areaCode != null and areaCode != ''">area_code,</if>
@@ -78,8 +78,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         </trim>
     </insert>
 
-    <update id="update" parameterType="com.ruoyi.ems.domain.MeterReadingManual">
-        update adm_meter_reading_manual
+    <update id="update" parameterType="com.ruoyi.ems.domain.MeterReading">
+        update adm_meter_reading
         <trim prefix="SET" suffixOverrides=",">
             <if test="meterReading != null">meter_reading = #{meterReading},</if>
             <if test="meterTime != null">meter_time = #{meterTime},</if>
@@ -89,6 +89,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </update>
 
     <delete id="deleteById" parameterType="Long">
-        delete from adm_meter_reading_manual where id = #{id}
+        delete from adm_meter_reading where id = #{id}
     </delete>
 </mapper>

+ 13 - 8
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/PowerBoxElecEqptMapper.xml

@@ -15,13 +15,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="eqptSpec"     column="eqpt_spec"    />
         <result property="ratedVoltage" column="rated_voltage"    />
         <result property="ratedCurrent" column="rated_current"    />
+        <result property="ancestors"     column="ancestors"    />
         <result property="parentEqpt"   column="parent_eqpt"    />
-        <result property="meterDevice"  column="meter_device"    />
+        <result property="subCircuit"  column="sub_circuit"    />
     </resultMap>
 
     <sql id="selectBoxElecEqptVo">
         select
-            bee.id, bee.box_code, bee.eqpt_code, bee.ext_eqpt_code, bee.eqpt_type, bet.type_name as eqpt_name, bee.eqpt_spec, bee.rated_voltage, bee.rated_current, bee.parent_eqpt, bee.meter_device
+            bee.id, bee.box_code, bee.eqpt_code, bee.ext_eqpt_code, bee.eqpt_type, bet.type_name as eqpt_name, bee.eqpt_spec, bee.rated_voltage, bee.rated_current, bee.ancestors, bee.parent_eqpt, bee.sub_circuit
         from adm_box_elec_eqpt bee
             LEFT JOIN dim_box_eleceqpt_type bet ON bee.eqpt_type = bet.type_code
     </sql>
@@ -36,8 +37,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="eqptSpec != null  and eqptSpec != ''"> and bee.eqpt_spec = #{eqptSpec}</if>
             <if test="ratedVoltage != null "> and bee.rated_voltage = #{ratedVoltage}</if>
             <if test="ratedCurrent != null "> and bee.rated_current = #{ratedCurrent}</if>
+            <if test="ancestors != null and ancestors != ''"> and bee.ancestors = #{ancestors}</if>
             <if test="parentEqpt != null  and parentEqpt != ''"> and bee.parent_eqpt = #{parentEqpt}</if>
-            <if test="meterDevice != null  and meterDevice != ''"> and bee.meter_device = #{meterDevice}</if>
+            <if test="subCircuit != null  and subCircuit != ''"> and bee.sub_circuit = #{subCircuit}</if>
         </where>
     </select>
 
@@ -61,8 +63,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="eqptSpec != null">eqpt_spec,</if>
             <if test="ratedVoltage != null">rated_voltage,</if>
             <if test="ratedCurrent != null">rated_current,</if>
+            <if test="ancestors != null ">ancestors</if>
             <if test="parentEqpt != null">parent_eqpt,</if>
-            <if test="meterDevice != null">meter_device,</if>
+            <if test="subCircuit != null">sub_circuit,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="boxCode != null and boxCode != ''">#{boxCode},</if>
@@ -72,16 +75,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="eqptSpec != null">#{eqptSpec},</if>
             <if test="ratedVoltage != null">#{ratedVoltage},</if>
             <if test="ratedCurrent != null">#{ratedCurrent},</if>
+            <if test="ancestors != null ">#{ancestors},</if>
             <if test="parentEqpt != null">#{parentEqpt},</if>
-            <if test="meterDevice != null">#{meterDevice},</if>
+            <if test="subCircuit != null">#{subCircuit},</if>
          </trim>
     </insert>
 
     <insert id="insertBatch" parameterType="java.util.List" >
-        insert into adm_box_elec_eqpt (box_code, eqpt_code, ext_eqpt_code, eqpt_type, eqpt_spec, rated_voltage, rated_current, parent_eqpt, meter_device)
+        insert into adm_box_elec_eqpt (box_code, eqpt_code, ext_eqpt_code, eqpt_type, eqpt_spec, rated_voltage, rated_current, ancestors, parent_eqpt, sub_circuit)
         values
         <foreach collection="list" item="item" index="index" separator=",">
-            (#{item.boxCode}, #{item.eqptCode}, #{item.extEqptCode}, #{item.eqptType}, #{item.eqptSpec}, #{item.ratedVoltage}, #{item.ratedCurrent}, #{item.parentEqpt}, #{item.meterDevice})
+            (#{item.boxCode}, #{item.eqptCode}, #{item.extEqptCode}, #{item.eqptType}, #{item.eqptSpec}, #{item.ratedVoltage}, #{item.ratedCurrent}, #{item.ancestors}, #{item.parentEqpt}, #{item.subCircuit})
         </foreach>
     </insert>
 
@@ -95,8 +99,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="eqptSpec != null">eqpt_spec = #{eqptSpec},</if>
             <if test="ratedVoltage != null">rated_voltage = #{ratedVoltage},</if>
             <if test="ratedCurrent != null">rated_current = #{ratedCurrent},</if>
+            <if test="ancestors != null ">ancestors = #{ancestors}</if>
             <if test="parentEqpt != null">parent_eqpt = #{parentEqpt},</if>
-            <if test="meterDevice != null">meter_device = #{meterDevice},</if>
+            <if test="subCircuit != null">sub_circuit = #{subCircuit},</if>
         </trim>
         where id = #{id}
     </update>

+ 103 - 103
ems-cloud/sql/ems_init_data.sql

@@ -112,29 +112,29 @@ INSERT INTO adm_power_box (`box_code`, `box_type`, `area_code`, `location`, `box
 INSERT INTO adm_power_box (`box_code`, `box_type`, `area_code`, `location`, `box_size`, `gateway_addr`, `gateway_port`) VALUES ('D-N-1002', 1, '321283124S3002', '广场配电柜', '100*200', '0.0.0.0', 9999);
 
 -- 动力箱柜电气设备表
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1001', 'D-B-1001-10000', '0x0001', 'RCD', '总开(漏保)', 380, 200, null, null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1001', 'D-B-1001-10011', '0x0002', 'QF', '分开(空开)', 380, 60, 'D-B-1001-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1001', 'D-B-1001-11012', '0x0003', 'QF', '分开(空开)', 380, 60, 'D-B-1001-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1001', 'D-B-1001-11013', '0x0003', 'QF', '分开(空开)', 380, 60, 'D-B-1001-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1001', 'D-B-1001-11014', '0x0004', 'QF', '分开(空开)', 380, 60, 'D-B-1001-10000', null);
-
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1002', 'D-B-1002-10000', '0x0011', 'RCD', '总开(漏保)', 380, 200, null, null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1002', 'D-B-1002-10011', '0x0012', 'QF', '分开(空开)', 380, 60, 'D-B-1002-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1002', 'D-B-1002-11012', '0x0013', 'QF', '分开(空开)', 380, 60, 'D-B-1002-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1002', 'D-B-1002-11013', '0x0013', 'QF', '分开(空开)', 380, 60, 'D-B-1002-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-B-1002', 'D-B-1002-11014', '0x0014', 'QF', '分开(空开)', 380, 60, 'D-B-1002-10000', null);
-
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1001', 'D-N-1001-10000', '0x0101', 'RCD', '总开(漏保)', 380, 200, null, null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1001', 'D-N-1001-10011', '0x0102', 'QF', '分开(空开)', 380, 60, 'D-N-1001-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1001', 'D-N-1001-11012', '0x0103', 'QF', '分开(空开)', 380, 60, 'D-N-1001-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1001', 'D-N-1001-11013', '0x0103', 'QF', '分开(空开)', 380, 60, 'D-N-1001-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1001', 'D-N-1001-11014', '0x0104', 'QF', '分开(空开)', 380, 60, 'D-N-1001-10000', null);
-
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1002', 'D-B-1002-10000', '0x0201', 'RCD', '总开(漏保)', 380, 200, null, null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1002', 'D-B-1002-10011', '0x0202', 'QF', '分开(空开)', 380, 60, 'D-B-1002-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1002', 'D-B-1002-11012', '0x0203', 'QF', '分开(空开)', 380, 60, 'D-B-1002-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1002', 'D-B-1002-11013', '0x0203', 'QF', '分开(空开)', 380, 60, 'D-B-1002-10000', null);
-INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `parent_eqpt`, `meter_device`) VALUES ('D-N-1002', 'D-B-1002-11014', '0x0204', 'QF', '分开(空开)', 380, 60, 'D-B-1002-10000', null);
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1001', 'D-B-1001-10000', '0x0001', 'RCD', '总开(漏保)', 380, 200, '', '-1', '分开');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1001', 'D-B-1001-10011', '0x0002', 'QF', '分开(空开)', 380, 60, '-1,D-B-1001-10000', 'D-B-1001-10000', '照明');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1001', 'D-B-1001-11012', '0x0003', 'QF', '分开(空开)', 380, 60, '-1,D-B-1001-10000', 'D-B-1001-10000', 'LED');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1001', 'D-B-1001-11013', '0x0003', 'QF', '分开(空开)', 380, 60, '-1,D-B-1001-10000', 'D-B-1001-10000', '空调');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1001', 'D-B-1001-11014', '0x0004', 'QF', '分开(空开)', 380, 60, '-1,D-B-1001-10000', 'D-B-1001-10000', '水泵');
+
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1002', 'D-B-1002-10000', '0x0011', 'RCD', '总开(漏保)', 380, 200, '', '-1', '分开');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1002', 'D-B-1002-10011', '0x0012', 'QF', '分开(空开)', 380, 60, '-1,D-B-1002-10000', 'D-B-1002-10000', '照明');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1002', 'D-B-1002-11012', '0x0013', 'QF', '分开(空开)', 380, 60, '-1,D-B-1002-10000', 'D-B-1002-10000', '照明');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1002', 'D-B-1002-11013', '0x0013', 'QF', '分开(空开)', 380, 60, '-1,D-B-1002-10000', 'D-B-1002-10000', '照明');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-B-1002', 'D-B-1002-11014', '0x0014', 'QF', '分开(空开)', 380, 60, '-1,D-B-1002-10000', 'D-B-1002-10000', '照明');
+
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1001', 'D-N-1001-10000', '0x0101', 'RCD', '总开(漏保)', 380, 200, '', '-1', '分开');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1001', 'D-N-1001-10011', '0x0102', 'QF', '分开(空开)', 380, 60, '-1,D-N-1001-10000', 'D-N-1001-10000', '空调');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1001', 'D-N-1001-11012', '0x0103', 'QF', '分开(空开)', 380, 60, '-1,D-N-1001-10000', 'D-N-1001-10000', '空调');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1001', 'D-N-1001-11013', '0x0103', 'QF', '分开(空开)', 380, 60, '-1,D-N-1001-10000', 'D-N-1001-10000', '空调');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1001', 'D-N-1001-11014', '0x0104', 'QF', '分开(空开)', 380, 60, '-1,D-N-1001-10000', 'D-N-1001-10000', '空调');
+
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1002', 'D-B-1002-10000', '0x0201', 'RCD', '总开(漏保)', 380, 200, '', '-1', '分开');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1002', 'D-B-1002-10011', '0x0202', 'QF', '分开(空开)', 380, 60, '-1,D-B-1002-10000', 'D-B-1002-10000', '水泵');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1002', 'D-B-1002-11012', '0x0203', 'QF', '分开(空开)', 380, 60, '-1,D-B-1002-10000', 'D-B-1002-10000', '水泵');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1002', 'D-B-1002-11013', '0x0203', 'QF', '分开(空开)', 380, 60, '-1,D-B-1002-10000', 'D-B-1002-10000', '水泵');
+INSERT INTO adm_box_elec_eqpt (`box_code`, `eqpt_code`, `ext_eqpt_code`, `eqpt_type`, `eqpt_spec`, `rated_voltage`, `rated_current`, `ancestors`, `parent_eqpt`, `sub_circuit`) VALUES ('D-N-1002', 'D-B-1002-11014', '0x0204', 'QF', '分开(空开)', 380, 60, '-1,D-B-1002-10000', 'D-B-1002-10000', '水泵');
 
 -- 区域&标签关系表
 insert into adm_obj_tag_rel(`tag_type`,`obj_code`,`tag_code`) VALUES ('3','B-101','Area_00');
@@ -243,86 +243,86 @@ INSERT INTO `adm_meter_device` (`device_code`, `area_code`, `meter_cls`, `obj_ty
 
 
 -- 抄表demo数据
-INSERT INTO adm_meter_reading_manual (`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);
-INSERT INTO adm_meter_reading_manual (`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', '202402', 100, '2024-02-29', 238, '2024-02-28', 138, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`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', '202403', 238, '2024-02-29', 365, '2024-03-31', 127, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`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', '202404', 365, '2024-03-31', 537, '2024-04-30', 172, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`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', '202405', 537, '2024-04-30', 686, '2024-05-31', 149, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`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', '202406', 686, '2024-05-31', 921, '2024-06-30', 235, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`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', '202407', 921, '2024-06-30', 1189, '2024-07-31', 268, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`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', '202408', 1189, '2024-07-31', 1464, '2024-08-31', 275, NULL, NULL);
-
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-103', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-103', '321283124S3001', '2024', '202402', 100, '2024-02-29', 250, '2024-02-28', 150, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-103', '321283124S3001', '2024', '202403', 250, '2024-02-29', 360, '2024-03-31', 160, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-103', '321283124S3001', '2024', '202404', 360, '2024-03-31', 500, '2024-04-30', 140, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-103', '321283124S3001', '2024', '202405', 500, '2024-04-30', 600, '2024-05-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-103', '321283124S3001', '2024', '202406', 600, '2024-05-31', 720, '2024-06-30', 120, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-103', '321283124S3001', '2024', '202407', 720, '2024-06-30', 800, '2024-07-31', 80, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-103', '321283124S3001', '2024', '202408', 800, '2024-07-31', 860, '2024-08-31', 160, NULL, NULL);
-
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-104', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-104', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-104', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-104', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-104', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-104', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-104', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-104', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
-
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-105', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-105', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-105', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-105', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-105', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-105', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-105', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-105', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
-
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-106', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-106', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-106', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-106', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-106', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-106', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-106', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-106', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
-
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-107', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-107', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-107', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-107', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-107', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-107', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-107', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-107', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
-
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-108', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-108', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-108', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-108', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-108', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-108', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-108', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-108', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
-
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-109', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-109', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-109', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-109', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-109', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-109', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-109', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-109', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
-
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-110', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-110', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-110', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-110', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-110', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-110', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-110', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
-INSERT INTO adm_meter_reading_manual (`device_code`, `area_code`, `year`, `meter_month`, `last_reading`, `last_time`, `meter_reading`, `meter_time`, `increase`, `create_time`, `update_time`) VALUES ('J-D-B-110', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
+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);
+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', '202402', 100, '2024-02-29', 238, '2024-02-28', 138, NULL, NULL);
+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', '202403', 238, '2024-02-29', 365, '2024-03-31', 127, NULL, NULL);
+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', '202404', 365, '2024-03-31', 537, '2024-04-30', 172, NULL, NULL);
+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', '202405', 537, '2024-04-30', 686, '2024-05-31', 149, NULL, NULL);
+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', '202406', 686, '2024-05-31', 921, '2024-06-30', 235, NULL, NULL);
+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', '202407', 921, '2024-06-30', 1189, '2024-07-31', 268, NULL, NULL);
+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', '202408', 1189, '2024-07-31', 1464, '2024-08-31', 275, NULL, NULL);
+
+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-103', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
+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-103', '321283124S3001', '2024', '202402', 100, '2024-02-29', 250, '2024-02-28', 150, NULL, NULL);
+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-103', '321283124S3001', '2024', '202403', 250, '2024-02-29', 360, '2024-03-31', 160, NULL, NULL);
+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-103', '321283124S3001', '2024', '202404', 360, '2024-03-31', 500, '2024-04-30', 140, NULL, NULL);
+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-103', '321283124S3001', '2024', '202405', 500, '2024-04-30', 600, '2024-05-31', 100, NULL, NULL);
+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-103', '321283124S3001', '2024', '202406', 600, '2024-05-31', 720, '2024-06-30', 120, NULL, NULL);
+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-103', '321283124S3001', '2024', '202407', 720, '2024-06-30', 800, '2024-07-31', 80, NULL, NULL);
+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-103', '321283124S3001', '2024', '202408', 800, '2024-07-31', 860, '2024-08-31', 160, NULL, NULL);
+
+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-104', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
+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-104', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
+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-104', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
+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-104', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
+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-104', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
+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-104', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
+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-104', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
+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-104', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
+
+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-105', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
+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-105', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
+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-105', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
+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-105', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
+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-105', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
+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-105', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
+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-105', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
+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-105', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
+
+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-106', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
+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-106', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
+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-106', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
+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-106', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
+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-106', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
+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-106', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
+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-106', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
+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-106', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
+
+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-107', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
+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-107', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
+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-107', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
+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-107', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
+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-107', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
+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-107', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
+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-107', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
+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-107', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
+
+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-108', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
+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-108', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
+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-108', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
+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-108', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
+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-108', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
+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-108', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
+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-108', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
+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-108', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
+
+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-109', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
+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-109', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
+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-109', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
+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-109', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
+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-109', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
+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-109', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
+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-109', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
+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-109', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
+
+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-110', '321283124S3001', '2024', '202401', 0, '2024-02-29', 100, '2024-01-31', 100, NULL, NULL);
+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-110', '321283124S3001', '2024', '202402', 100, '2024-02-29', 200, '2024-02-28', 100, NULL, NULL);
+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-110', '321283124S3001', '2024', '202403', 200, '2024-02-29', 300, '2024-03-31', 100, NULL, NULL);
+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-110', '321283124S3001', '2024', '202404', 300, '2024-03-31', 400, '2024-04-30', 100, NULL, NULL);
+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-110', '321283124S3001', '2024', '202405', 400, '2024-04-30', 500, '2024-05-31', 100, NULL, NULL);
+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-110', '321283124S3001', '2024', '202406', 500, '2024-05-31', 600, '2024-06-30', 100, NULL, NULL);
+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-110', '321283124S3001', '2024', '202407', 600, '2024-06-30', 700, '2024-07-31', 100, NULL, NULL);
+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-110', '321283124S3001', '2024', '202408', 700, '2024-07-31', 800, '2024-08-31', 100, NULL, NULL);
 
 
 

+ 48 - 5
ems-cloud/sql/ems_server.sql

@@ -617,8 +617,9 @@ create table adm_box_elec_eqpt  (
   `eqpt_spec`       varchar(64)     default null                 comment '电气型号',
   `rated_voltage`   int             default null                 comment '额定电压',
   `rated_current`   int             default null                 comment '额定电流',
+  `ancestors`       varchar(256)    default null                 comment '祖籍列表',
   `parent_eqpt`     varchar(32)     default null                 comment '上级电气件',
-  `meter_device`    varchar(16)     default null                 comment '计量设备',
+  `sub_circuit`     varchar(64)     default null                 comment '下级支路',
   primary key (`id`),
   unique key ux_box_elec_eqpt(`box_code`,`eqpt_code`)
 ) engine=innodb auto_increment=1 comment = '动力箱柜电气设备表';
@@ -820,10 +821,10 @@ create table adm_obj_tag_rel (
 
 
 -- ----------------------------
--- 手动抄表记录表
+-- 抄表记录表
 -- ----------------------------
-drop table if exists adm_meter_reading_manual;
-create table adm_meter_reading_manual (
+drop table if exists adm_meter_reading;
+create table adm_meter_reading (
   `id`               bigint(20)      not null auto_increment      comment '序号',
   `device_code`      varchar(16)     not null                     comment '计量设备code',
   `area_code`        varchar(16)     not null                     comment '服务区代码',
@@ -838,7 +839,7 @@ create table adm_meter_reading_manual (
   `update_time`      datetime        default null                 comment '更新时间',
   primary key (`id`),
   key meter_reading_manual(`device_code`)
-) engine=innodb auto_increment=1 comment = '手动抄表记录表';
+) engine=innodb auto_increment=1 comment = '抄表记录表';
 
 
 -- ----------------------------
@@ -1175,6 +1176,48 @@ create table adm_ems_elec_load_index (
 
 
 -- ----------------------------
+-- 动力箱指标表
+-- ----------------------------
+drop table if exists adm_ems_elec_box_index;
+create table adm_ems_elec_box_index (
+  `id`                        bigint(20)      not null auto_increment      comment '序号',
+  `box_code`                  varchar(32)     not null                     comment '箱体代码',
+  `box_type`                  int             not null                     comment '箱体类型',
+  `area_code`                 varchar(16)     not null                     comment '服务区代码',
+  `date`                      date            not null                     comment '日期 yyyy-MM-dd',
+  `time`                      datetime        not null                     comment '时间 yyyy-MM-dd HH:mm:ss',
+  `voltage_a`                 double          default null                 comment '电压(A相) 单位:V(伏)',
+  `voltage_b`                 double          default null                 comment '电压(B相) 单位:V(伏)',
+  `voltage_c`                 double          default null                 comment '电压(C相) 单位:V(伏)',
+  `electricity_a`             double          default null                 comment '电流(A相) 单位:A(安培)',
+  `electricity_b`             double          default null                 comment '电流(B相) 单位:A(安培)',
+  `electricity_c`             double          default null                 comment '电流(C相) 单位:A(安培)',
+  `power`                     double          default null                 comment '功率 单位:kW(千瓦)',
+  primary key (`id`),
+  unique key ux_elec_box_index(`box_code`, `time`)
+) engine=innodb auto_increment=1 comment = '动力箱指标表';
+
+
+-- ----------------------------
+-- 动力箱元器件指标表
+-- ----------------------------
+drop table if exists adm_ems_elec_box_eqpt_index;
+create table adm_ems_elec_box_eqpt_index (
+  `id`                        bigint(20)      not null auto_increment      comment '序号',
+  `box_code`                  varchar(32)     not null                     comment '箱体代码',
+  `eqpt_code`                 varchar(32)     not null                     comment '元件代码',
+  `area_code`                 varchar(16)     not null                     comment '服务区代码',
+  `date`                      date            not null                     comment '日期 yyyy-MM-dd',
+  `time`                      datetime        not null                     comment '时间 yyyy-MM-dd HH:mm:ss',
+  `voltage`                   double          default null                 comment '电压 单位:V(伏)',
+  `current`                   double          default null                 comment '电流 单位:A(安培)',
+  `power`                     double          default null                 comment '功率 单位:kW(千瓦)',
+  primary key (`id`),
+  unique key ux_elec_box_eqpt_index(`box_code`, `eqpt_code`, `time`)
+) engine=innodb auto_increment=1 comment = '动力箱元器件指标表';
+
+
+-- ----------------------------
 -- 电力产能预测表
 -- ----------------------------
 drop table if exists adm_ems_elec_prod_forecast;