瀏覽代碼

用水、用电自动抄表原始模型

lv.wenbin 7 月之前
父節點
當前提交
a2fbd8f4c8
共有 22 個文件被更改,包括 1121 次插入64 次删除
  1. 90 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecMeterHController.java
  2. 11 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/EmsDisStaCoalController.java
  3. 2 2
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/MeterReadingController.java
  4. 98 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/WaterMeterHController.java
  5. 181 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecMeterH.java
  6. 158 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/WaterMeterH.java
  7. 47 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/ElecMeterHMapper.java
  8. 3 3
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/MeterReadingMapper.java
  9. 47 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/WaterMeterHMapper.java
  10. 15 15
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/model/QueryMeter.java
  11. 46 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecMeterHService.java
  12. 2 2
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IMeterReadingService.java
  13. 47 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IWaterMeterHService.java
  14. 7 7
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ChargingBillServiceImpl.java
  15. 67 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/ElecMeterHServiceImpl.java
  16. 2 2
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/MeterReadingServiceImpl.java
  17. 72 0
      ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/impl/WaterMeterHServiceImpl.java
  18. 85 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecMeterHMapper.xml
  19. 9 9
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/MeterReadingMapper.xml
  20. 79 0
      ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/WaterMeterHMapper.xml
  21. 43 21
      ems-cloud/sql/ems_server.sql
  22. 10 3
      ems-cloud/sql/ems_sys.sql

+ 90 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/ElecMeterHController.java

@@ -0,0 +1,90 @@
+package com.ruoyi.ems.controller;
+
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+import com.ruoyi.common.log.annotation.Log;
+import com.ruoyi.common.log.enums.BusinessType;
+import com.ruoyi.common.security.annotation.RequiresPermissions;
+import com.ruoyi.ems.domain.ElecMeterH;
+import com.ruoyi.ems.model.QueryMeter;
+import com.ruoyi.ems.service.IElecMeterHService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * 用电计量-小时Controller
+ *
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+@RestController
+@RequestMapping("/elecMeterH")
+public class ElecMeterHController extends BaseController {
+    @Autowired
+    private IElecMeterHService elecMeterHService;
+
+    /**
+     * 查询用电计量-小时列表
+     */
+    @RequiresPermissions("ems:elecMeterH:list")
+    @GetMapping("/list")
+    public TableDataInfo list(QueryMeter queryMeter) {
+        startPage();
+        List<ElecMeterH> list = elecMeterHService.selectElecMeterHList(queryMeter);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出用电计量-小时列表
+     */
+    @RequiresPermissions("ems:elecMeterH:export")
+    @Log(title = "用电计量-小时", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QueryMeter queryMeter) {
+        List<ElecMeterH> list = elecMeterHService.selectElecMeterHList(queryMeter);
+        ExcelUtil<ElecMeterH> util = new ExcelUtil<ElecMeterH>(ElecMeterH.class);
+        util.exportExcel(response, list, "用电计量-小时数据");
+    }
+
+    /**
+     * 新增用电计量-小时
+     */
+    @RequiresPermissions("ems:elecMeterH:add")
+    @Log(title = "用电计量-小时", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody ElecMeterH elecMeterH) {
+        return toAjax(elecMeterHService.insertElecMeterH(elecMeterH));
+    }
+
+    /**
+     * 修改用电计量-小时
+     */
+    @RequiresPermissions("ems:elecMeterH:edit")
+    @Log(title = "用电计量-小时", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody ElecMeterH elecMeterH) {
+        return toAjax(elecMeterHService.updateElecMeterH(elecMeterH));
+    }
+
+    /**
+     * 删除用电计量-小时
+     */
+    @RequiresPermissions("ems:elecMeterH:remove")
+    @Log(title = "用电计量-小时", businessType = BusinessType.DELETE)
+    @DeleteMapping("/delByDate")
+    public AjaxResult removeByDate(@RequestParam(name = "date") String date) {
+        return toAjax(elecMeterHService.deleteElecMeterHByDate(date));
+    }
+}

+ 11 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/EmsDisStaCoalController.java

@@ -9,6 +9,7 @@ import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.ems.domain.EmsDisStaCoal;
 import com.ruoyi.ems.service.IEmsDisStaCoalService;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -75,4 +76,14 @@ public class EmsDisStaCoalController extends BaseController
     {
         return toAjax(disStaCoalService.updateDisStaCoal(disStaCoal));
     }
+
+    /**
+     * 删除能源设施/系统
+     */
+    @RequiresPermissions("ems:disStaCoal:edit")
+    @Log(title = "能源折标准煤维", businessType = BusinessType.DELETE)
+    @DeleteMapping("/{ids}")
+    public AjaxResult remove(@PathVariable Long ids) {
+        return toAjax(disStaCoalService.deleteDisStaCoalById(ids));
+    }
 }

+ 2 - 2
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/MeterReadingController.java

@@ -8,7 +8,7 @@ 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.MeterReading;
-import com.ruoyi.ems.model.QueryMeterReading;
+import com.ruoyi.ems.model.QueryMeter;
 import com.ruoyi.ems.service.IMeterDeviceService;
 import com.ruoyi.ems.service.IMeterReadingService;
 import com.ruoyi.common.core.exception.Assert;
@@ -49,7 +49,7 @@ public class MeterReadingController extends BaseController {
      * 查询抄表记录列表
      */
     @GetMapping("/listByParam")
-    public AjaxResult listByParam(QueryMeterReading queryMeterReading) {
+    public AjaxResult listByParam(QueryMeter queryMeterReading) {
         List<MeterReading> list = meterReadingService.selectList(queryMeterReading);
         return success(list);
     }

+ 98 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/controller/WaterMeterHController.java

@@ -0,0 +1,98 @@
+package com.ruoyi.ems.controller;
+
+import java.util.List;
+import java.io.IOException;
+import javax.servlet.http.HttpServletResponse;
+
+import com.ruoyi.ems.model.QueryMeter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+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.WaterMeterH;
+import com.ruoyi.ems.service.IWaterMeterHService;
+import com.ruoyi.common.core.web.controller.BaseController;
+import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.utils.poi.ExcelUtil;
+import com.ruoyi.common.core.web.page.TableDataInfo;
+
+/**
+ * 用水计量-小时Controller
+ * 
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+@RestController
+@RequestMapping("/waterMeterH")
+public class WaterMeterHController extends BaseController
+{
+    @Autowired
+    private IWaterMeterHService waterMeterHService;
+
+    /**
+     * 查询用水计量-小时列表
+     */
+    @RequiresPermissions("ems:waterMeterH:list")
+    @GetMapping("/list")
+    public TableDataInfo list(QueryMeter queryMeter)
+    {
+        startPage();
+        List<WaterMeterH> list = waterMeterHService.selectWaterMeterHList(queryMeter);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出用水计量-小时列表
+     */
+    @RequiresPermissions("ems:waterMeterH:export")
+    @Log(title = "用水计量-小时", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(HttpServletResponse response, QueryMeter queryMeter)
+    {
+        List<WaterMeterH> list = waterMeterHService.selectWaterMeterHList(queryMeter);
+        ExcelUtil<WaterMeterH> util = new ExcelUtil<WaterMeterH>(WaterMeterH.class);
+        util.exportExcel(response, list, "用水计量-小时数据");
+    }
+
+    /**
+     * 新增用水计量-小时
+     */
+    @RequiresPermissions("ems:waterMeterH:add")
+    @Log(title = "用水计量-小时", businessType = BusinessType.INSERT)
+    @PostMapping
+    public AjaxResult add(@RequestBody WaterMeterH waterMeterH)
+    {
+        return toAjax(waterMeterHService.insertWaterMeterH(waterMeterH));
+    }
+
+    /**
+     * 修改用水计量-小时
+     */
+    @RequiresPermissions("ems:waterMeterH:edit")
+    @Log(title = "用水计量-小时", businessType = BusinessType.UPDATE)
+    @PutMapping
+    public AjaxResult edit(@RequestBody WaterMeterH waterMeterH)
+    {
+        return toAjax(waterMeterHService.updateWaterMeterH(waterMeterH));
+    }
+
+    /**
+     * 删除用水计量-小时
+     */
+    @RequiresPermissions("ems:waterMeterH:remove")
+    @Log(title = "用水计量-小时", businessType = BusinessType.DELETE)
+	@DeleteMapping("/delByDate")
+    public AjaxResult remove(@RequestParam(name = "date") String date)
+    {
+        return toAjax(waterMeterHService.deleteWaterMeterHByDate(date));
+    }
+}

+ 181 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/ElecMeterH.java

@@ -0,0 +1,181 @@
+package com.ruoyi.ems.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 用电计量-小时对象 adm_elec_meter_h
+ * 
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+public class ElecMeterH extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 园区代码 */
+    private String areaCode;
+
+    /** 计量设备 */
+    @Excel(name = "计量设备")
+    private String deviceCode;
+
+    /** 记录时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date recordTime;
+
+    /** 日期 yyyy-MM-dd */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "日期", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date date;
+
+    /** 时间 HH:mm:ss */
+    @JsonFormat(pattern = "HH:mm:ss")
+    @Excel(name = "时间", width = 30, dateFormat = "HH:mm:ss")
+    private Date time;
+
+    /** 时间序列 */
+    @Excel(name = "时间序列")
+    private Integer timeIndex;
+
+    /** 用电量 单位:kW-h(千瓦时) */
+    @Excel(name = "用电量")
+    private Double elecQuantity;
+
+    /** 计量类型 -1:低谷电 0:平峰电 1:高峰电 2:尖峰电 */
+    private Integer meterType;
+
+    /** 计量类型 -1:低谷电 0:平峰电 1:高峰电 2:尖峰电 */
+    @Excel(name = "计量类型")
+    private String meterTypeName;
+
+    /** 单位电价(1度电) */
+    @Excel(name = "单位电价")
+    private Double meterUnitPrice;
+
+    /** 小时电费 */
+    @Excel(name = "小时电费")
+    private Double useElecCost;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getAreaCode() {
+        return areaCode;
+    }
+
+    public void setAreaCode(String areaCode) {
+        this.areaCode = areaCode;
+    }
+
+    public String getDeviceCode() {
+        return deviceCode;
+    }
+
+    public void setDeviceCode(String deviceCode) {
+        this.deviceCode = deviceCode;
+    }
+
+    public Date getRecordTime() {
+        return recordTime;
+    }
+
+    public void setRecordTime(Date recordTime) {
+        this.recordTime = recordTime;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public Integer getTimeIndex() {
+        return timeIndex;
+    }
+
+    public void setTimeIndex(Integer timeIndex) {
+        this.timeIndex = timeIndex;
+    }
+
+    public Double getElecQuantity() {
+        return elecQuantity;
+    }
+
+    public void setElecQuantity(Double elecQuantity) {
+        this.elecQuantity = elecQuantity;
+    }
+
+    public Integer getMeterType() {
+        return meterType;
+    }
+
+    public void setMeterType(Integer meterType) {
+        this.meterType = meterType;
+    }
+
+    public String getMeterTypeName() {
+        return meterTypeName;
+    }
+
+    public void setMeterTypeName(String meterTypeName) {
+        this.meterTypeName = meterTypeName;
+    }
+
+    public Double getMeterUnitPrice() {
+        return meterUnitPrice;
+    }
+
+    public void setMeterUnitPrice(Double meterUnitPrice) {
+        this.meterUnitPrice = meterUnitPrice;
+    }
+
+    public Double getUseElecCost() {
+        return useElecCost;
+    }
+
+    public void setUseElecCost(Double useElecCost) {
+        this.useElecCost = useElecCost;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("areaCode", getAreaCode())
+            .append("deviceCode", getDeviceCode())
+            .append("recordTime", getRecordTime())
+            .append("date", getDate())
+            .append("time", getTime())
+            .append("timeIndex", getTimeIndex())
+            .append("elecQuantity", getElecQuantity())
+            .append("meterType", getMeterType())
+            .append("meterUnitPrice", getMeterUnitPrice())
+            .append("useElecCost", getUseElecCost())
+            .append("createTime", getCreateTime())
+            .toString();
+    }
+}

+ 158 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/domain/WaterMeterH.java

@@ -0,0 +1,158 @@
+package com.ruoyi.ems.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.ruoyi.common.core.annotation.Excel;
+import com.ruoyi.common.core.web.domain.BaseEntity;
+
+/**
+ * 用水计量-小时对象 adm_water_meter_h
+ * 
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+public class WaterMeterH extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** 序号 */
+    private Long id;
+
+    /** 园区代码 */
+    @Excel(name = "园区代码")
+    private String areaCode;
+
+    /** 计量设备 */
+    @Excel(name = "计量设备")
+    private String deviceCode;
+
+    /** 记录时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    @Excel(name = "记录时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
+    private Date recordTime;
+
+    /** 日期 yyyy-MM-dd */
+    @JsonFormat(pattern = "yyyy-MM-dd")
+    @Excel(name = "日期 yyyy-MM-dd", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date date;
+
+    /** 时间 HH:mm:ss */
+    @JsonFormat(pattern = "HH:mm:ss")
+    @Excel(name = "时间", width = 30, dateFormat = "HH:mm:ss")
+    private Date time;
+
+    /** 时间序列 */
+    @Excel(name = "时间序列")
+    private Integer timeIndex;
+
+    /** 用水量 单位:t(吨) */
+    @Excel(name = "用水量")
+    private Double waterQuantity;
+
+    /** 单位水价(1吨水) */
+    @Excel(name = "单位水价")
+    private Double meterUnitPrice;
+
+    /** 小时水费 */
+    @Excel(name = "小时水费")
+    private Double useWaterCost;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public String getAreaCode() {
+        return areaCode;
+    }
+
+    public void setAreaCode(String areaCode) {
+        this.areaCode = areaCode;
+    }
+
+    public String getDeviceCode() {
+        return deviceCode;
+    }
+
+    public void setDeviceCode(String deviceCode) {
+        this.deviceCode = deviceCode;
+    }
+
+    public Date getRecordTime() {
+        return recordTime;
+    }
+
+    public void setRecordTime(Date recordTime) {
+        this.recordTime = recordTime;
+    }
+
+    public Date getDate() {
+        return date;
+    }
+
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    public Date getTime() {
+        return time;
+    }
+
+    public void setTime(Date time) {
+        this.time = time;
+    }
+
+    public Integer getTimeIndex() {
+        return timeIndex;
+    }
+
+    public void setTimeIndex(Integer timeIndex) {
+        this.timeIndex = timeIndex;
+    }
+
+    public Double getWaterQuantity() {
+        return waterQuantity;
+    }
+
+    public void setWaterQuantity(Double waterQuantity) {
+        this.waterQuantity = waterQuantity;
+    }
+
+    public Double getMeterUnitPrice() {
+        return meterUnitPrice;
+    }
+
+    public void setMeterUnitPrice(Double meterUnitPrice) {
+        this.meterUnitPrice = meterUnitPrice;
+    }
+
+    public Double getUseWaterCost() {
+        return useWaterCost;
+    }
+
+    public void setUseWaterCost(Double useWaterCost) {
+        this.useWaterCost = useWaterCost;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("areaCode", getAreaCode())
+            .append("deviceCode", getDeviceCode())
+            .append("recordTime", getRecordTime())
+            .append("date", getDate())
+            .append("time", getTime())
+            .append("timeIndex", getTimeIndex())
+            .append("waterQuantity", getWaterQuantity())
+            .append("meterUnitPrice", getMeterUnitPrice())
+            .append("useWaterCost", getUseWaterCost())
+            .append("createTime", getCreateTime())
+            .toString();
+    }
+}

+ 47 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/ElecMeterHMapper.java

@@ -0,0 +1,47 @@
+package com.ruoyi.ems.mapper;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.ElecMeterH;
+import com.ruoyi.ems.model.QueryMeter;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 用电计量-小时Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+public interface ElecMeterHMapper {
+    /**
+     * 查询用电计量-小时列表
+     *
+     * @param queryMeter 查询计量条件
+     * @return 用电计量-小时集合
+     */
+    List<ElecMeterH> selectElecMeterHList(QueryMeter queryMeter);
+
+    /**
+     * 新增用电计量-小时
+     *
+     * @param elecMeterH 用电计量-小时
+     * @return 结果
+     */
+    int insertElecMeterH(ElecMeterH elecMeterH);
+
+    /**
+     * 修改用电计量-小时
+     *
+     * @param elecMeterH 用电计量-小时
+     * @return 结果
+     */
+    int updateElecMeterH(ElecMeterH elecMeterH);
+
+    /**
+     * 删除用电计量(根据日期)
+     *
+     * @param date 日期
+     * @return 结果
+     */
+    int deleteElecMeterHByDate(@Param("date") String date);
+}

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

@@ -3,7 +3,7 @@ package com.ruoyi.ems.mapper;
 import java.util.List;
 
 import com.ruoyi.ems.domain.MeterReading;
-import com.ruoyi.ems.model.QueryMeterReading;
+import com.ruoyi.ems.model.QueryMeter;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -36,7 +36,7 @@ public interface MeterReadingMapper {
      * @param queryMeterReading 参数
      * @return 抄记录集合
      */
-    List<MeterReading> selectList(QueryMeterReading queryMeterReading);
+    List<MeterReading> selectList(QueryMeter queryMeterReading);
 
     /**
      * 查询抄记录列表
@@ -44,7 +44,7 @@ public interface MeterReadingMapper {
      * @param queryMeterReading 参数
      * @return 抄记录集合
      */
-    List<MeterReading> selectByTag(QueryMeterReading queryMeterReading);
+    List<MeterReading> selectByTag(QueryMeter queryMeterReading);
 
     /**
      * 新增抄记录

+ 47 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/mapper/WaterMeterHMapper.java

@@ -0,0 +1,47 @@
+package com.ruoyi.ems.mapper;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.WaterMeterH;
+import com.ruoyi.ems.model.QueryMeter;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 用水计量-小时Mapper接口
+ *
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+public interface WaterMeterHMapper {
+    /**
+     * 查询用水计量-小时列表
+     *
+     * @param queryMeter 用水计量-小时
+     * @return 用水计量-小时集合
+     */
+    List<WaterMeterH> selectWaterMeterHList(QueryMeter queryMeter);
+
+    /**
+     * 新增用水计量-小时
+     *
+     * @param waterMeterH 用水计量-小时
+     * @return 结果
+     */
+    int insertWaterMeterH(WaterMeterH waterMeterH);
+
+    /**
+     * 修改用水计量-小时
+     *
+     * @param waterMeterH 用水计量-小时
+     * @return 结果
+     */
+    int updateWaterMeterH(WaterMeterH waterMeterH);
+
+    /**
+     * 删除用水计量(根据日期)
+     *
+     * @param date 日期
+     * @return 结果
+     */
+    int deleteWaterMeterHByDate(@Param("date") String date);
+}

+ 15 - 15
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/model/QueryMeterReading.java → ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/model/QueryMeter.java

@@ -19,7 +19,7 @@ package com.ruoyi.ems.model;
  * @see [相关类/方法]
  * @since [产品/模块版本]
  */
-public class QueryMeterReading {
+public class QueryMeter {
     /** 服务区代码 */
     private String areaCode;
 
@@ -36,25 +36,25 @@ public class QueryMeterReading {
     private String year;
 
     /** 开始月份 */
-    private String startMonth;
+    private String startTime;
 
     /** 结束月份 */
-    private String endMonth;
+    private String endTime;
 
     /**
      * 排序方式
      */
     private String orderFlag = "ASC";
 
-    public QueryMeterReading() {
+    public QueryMeter() {
     }
 
-    public QueryMeterReading(String areaCode, Integer objTag, Integer meterCls, String startMonth, String endMonth) {
+    public QueryMeter(String areaCode, Integer objTag, Integer meterCls, String startTime, String endTime) {
         this.areaCode = areaCode;
         this.objTag = objTag;
         this.meterCls = meterCls;
-        this.startMonth = startMonth;
-        this.endMonth = endMonth;
+        this.startTime = startTime;
+        this.endTime = endTime;
     }
 
     public String getAreaCode() {
@@ -97,20 +97,20 @@ public class QueryMeterReading {
         this.year = year;
     }
 
-    public String getStartMonth() {
-        return startMonth;
+    public String getStartTime() {
+        return startTime;
     }
 
-    public void setStartMonth(String startMonth) {
-        this.startMonth = startMonth;
+    public void setStartTime(String startTime) {
+        this.startTime = startTime;
     }
 
-    public String getEndMonth() {
-        return endMonth;
+    public String getEndTime() {
+        return endTime;
     }
 
-    public void setEndMonth(String endMonth) {
-        this.endMonth = endMonth;
+    public void setEndTime(String endTime) {
+        this.endTime = endTime;
     }
 
     public String getOrderFlag() {

+ 46 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IElecMeterHService.java

@@ -0,0 +1,46 @@
+package com.ruoyi.ems.service;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.ElecMeterH;
+import com.ruoyi.ems.model.QueryMeter;
+
+/**
+ * 用电计量-小时Service接口
+ *
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+public interface IElecMeterHService {
+    /**
+     * 查询用电计量-小时列表
+     *
+     * @param queryMeter 用电计量-小时
+     * @return 用电计量-小时集合
+     */
+    List<ElecMeterH> selectElecMeterHList(QueryMeter queryMeter);
+
+    /**
+     * 新增用电计量-小时
+     *
+     * @param elecMeterH 用电计量-小时
+     * @return 结果
+     */
+    int insertElecMeterH(ElecMeterH elecMeterH);
+
+    /**
+     * 修改用电计量-小时
+     *
+     * @param elecMeterH 用电计量-小时
+     * @return 结果
+     */
+    int updateElecMeterH(ElecMeterH elecMeterH);
+
+    /**
+     * 删除用电计量-小时信息
+     *
+     * @param date 日期
+     * @return 结果
+     */
+    int deleteElecMeterHByDate(String date);
+}

+ 2 - 2
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IMeterReadingService.java

@@ -1,7 +1,7 @@
 package com.ruoyi.ems.service;
 
 import com.ruoyi.ems.domain.MeterReading;
-import com.ruoyi.ems.model.QueryMeterReading;
+import com.ruoyi.ems.model.QueryMeter;
 
 import java.util.List;
 
@@ -29,7 +29,7 @@ public interface IMeterReadingService {
      * @param queryMeterReading 查询条件参数
      * @return 手动抄记录集合
      */
-    List<MeterReading> selectList(QueryMeterReading queryMeterReading);
+    List<MeterReading> selectList(QueryMeter queryMeterReading);
 
     /**
      * 新增手动抄记录

+ 47 - 0
ems-cloud/ems-modules/ems-server/src/main/java/com/ruoyi/ems/service/IWaterMeterHService.java

@@ -0,0 +1,47 @@
+package com.ruoyi.ems.service;
+
+import java.util.List;
+
+import com.ruoyi.ems.domain.WaterMeterH;
+import com.ruoyi.ems.model.QueryMeter;
+
+/**
+ * 用水计量-小时Service接口
+ *
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+public interface IWaterMeterHService {
+
+    /**
+     * 查询用水计量-小时列表
+     *
+     * @param queryMeter 用水计量-小时
+     * @return 用水计量-小时集合
+     */
+    List<WaterMeterH> selectWaterMeterHList(QueryMeter queryMeter);
+
+    /**
+     * 新增用水计量-小时
+     *
+     * @param waterMeterH 用水计量-小时
+     * @return 结果
+     */
+    int insertWaterMeterH(WaterMeterH waterMeterH);
+
+    /**
+     * 修改用水计量-小时
+     *
+     * @param waterMeterH 用水计量-小时
+     * @return 结果
+     */
+    int updateWaterMeterH(WaterMeterH waterMeterH);
+
+    /**
+     * 删除用水计量-小时信息
+     *
+     * @param date 日期
+     * @return 结果
+     */
+    int deleteWaterMeterHByDate(String date);
+}

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

@@ -25,7 +25,7 @@ import com.ruoyi.ems.mapper.AreaMapper;
 import com.ruoyi.ems.mapper.MeterDeviceMapper;
 import com.ruoyi.ems.mapper.MeterReadingMapper;
 import com.ruoyi.ems.model.QueryChargingBill;
-import com.ruoyi.ems.model.QueryMeterReading;
+import com.ruoyi.ems.model.QueryMeter;
 import com.ruoyi.ems.service.IChargingBillService;
 import com.ruoyi.ems.service.ICoChargingConfigService;
 import org.apache.commons.collections4.MapUtils;
@@ -185,11 +185,11 @@ public class ChargingBillServiceImpl implements IChargingBillService {
             queryParam.getMeterCls());
 
         if (null != meterDevice) {
-            QueryMeterReading recParam = new QueryMeterReading();
+            QueryMeter recParam = new QueryMeter();
             recParam.setAreaCode(meterDevice.getAreaCode());
             recParam.setDeviceCode(meterDevice.getDeviceCode());
-            recParam.setStartMonth(queryParam.getStartTime());
-            recParam.setEndMonth(queryParam.getEndTime());
+            recParam.setStartTime(queryParam.getStartTime());
+            recParam.setEndTime(queryParam.getEndTime());
 
             List<MeterReading> recList = meterReadingMapper.selectList(recParam);
             List<ChargingBill> billList = convertToChargingBill(queryParam, chargingCfg, recList);
@@ -244,7 +244,7 @@ public class ChargingBillServiceImpl implements IChargingBillService {
 
         // 电价公摊计算
         if (chargingCfg.getElecGtComputeType() > 0 && coSet.contains(queryParam.getObjArea())) {
-            QueryMeterReading param = new QueryMeterReading(queryParam.getAreaCode(), MeterObjTag.SHARED.getTagValue(),
+            QueryMeter param = new QueryMeter(queryParam.getAreaCode(), MeterObjTag.SHARED.getTagValue(),
                 queryParam.getMeterCls(), queryParam.getStartTime(), queryParam.getEndTime());
             List<MeterReading> totalReadings = meterReadingMapper.selectByTag(param);
             Map<String, List<MeterReading>> groupedRecs = totalReadings.stream()
@@ -276,7 +276,7 @@ public class ChargingBillServiceImpl implements IChargingBillService {
 
         // 水价公摊计算
         if (chargingCfg.getWaterGtComputeType() > 0 && coSet.contains(queryParam.getObjArea())) {
-            QueryMeterReading param = new QueryMeterReading(queryParam.getAreaCode(), MeterObjTag.SHARED.getTagValue(),
+            QueryMeter param = new QueryMeter(queryParam.getAreaCode(), MeterObjTag.SHARED.getTagValue(),
                 queryParam.getMeterCls(), queryParam.getStartTime(), queryParam.getEndTime());
             List<MeterReading> totalReadings = meterReadingMapper.selectByTag(param);
             Map<String, List<MeterReading>> groupedRecs = totalReadings.stream()
@@ -306,7 +306,7 @@ public class ChargingBillServiceImpl implements IChargingBillService {
     private Map<String, Long> getQuantityByTag(QueryChargingBill queryParam, MeterObjTag tag) {
         Map<String, Long> retMap = new HashMap<>();
 
-        QueryMeterReading param = new QueryMeterReading(queryParam.getAreaCode(), tag.getTagValue(),
+        QueryMeter param = new QueryMeter(queryParam.getAreaCode(), tag.getTagValue(),
             queryParam.getMeterCls(), queryParam.getStartTime(), queryParam.getEndTime());
         List<MeterReading> totalReadings = meterReadingMapper.selectByTag(param);
         Map<String, List<MeterReading>> groupedRecs = totalReadings.stream()

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

@@ -0,0 +1,67 @@
+package com.ruoyi.ems.service.impl;
+
+import java.util.List;
+
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.ems.model.QueryMeter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.ems.mapper.ElecMeterHMapper;
+import com.ruoyi.ems.domain.ElecMeterH;
+import com.ruoyi.ems.service.IElecMeterHService;
+
+/**
+ * 用电计量-小时Service业务层处理
+ *
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+@Service
+public class ElecMeterHServiceImpl implements IElecMeterHService {
+    @Autowired
+    private ElecMeterHMapper elecMeterHMapper;
+
+    /**
+     * 查询用电计量-小时列表
+     *
+     * @param queryMeter 用电计量-小时
+     * @return 用电计量-小时
+     */
+    @Override
+    public List<ElecMeterH> selectElecMeterHList(QueryMeter queryMeter) {
+        return elecMeterHMapper.selectElecMeterHList(queryMeter);
+    }
+
+    /**
+     * 新增用电计量-小时
+     *
+     * @param elecMeterH 用电计量-小时
+     * @return 结果
+     */
+    @Override
+    public int insertElecMeterH(ElecMeterH elecMeterH) {
+        return elecMeterHMapper.insertElecMeterH(elecMeterH);
+    }
+
+    /**
+     * 修改用电计量-小时
+     *
+     * @param elecMeterH 用电计量-小时
+     * @return 结果
+     */
+    @Override
+    public int updateElecMeterH(ElecMeterH elecMeterH) {
+        return elecMeterHMapper.updateElecMeterH(elecMeterH);
+    }
+
+    /**
+     * 删除用电计量-小时信息
+     *
+     * @param date 日期
+     * @return 结果
+     */
+    @Override
+    public int deleteElecMeterHByDate(String date) {
+        return elecMeterHMapper.deleteElecMeterHByDate(date);
+    }
+}

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

@@ -1,7 +1,7 @@
 package com.ruoyi.ems.service.impl;
 
 import com.ruoyi.ems.domain.MeterReading;
-import com.ruoyi.ems.model.QueryMeterReading;
+import com.ruoyi.ems.model.QueryMeter;
 import com.ruoyi.ems.mapper.MeterReadingMapper;
 import com.ruoyi.ems.service.IMeterReadingService;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -31,7 +31,7 @@ public class MeterReadingServiceImpl implements IMeterReadingService {
     }
 
     @Override
-    public List<MeterReading> selectList(QueryMeterReading queryMeterReading) {
+    public List<MeterReading> selectList(QueryMeter queryMeterReading) {
         return meterReadingMapper.selectList(queryMeterReading);
     }
 

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

@@ -0,0 +1,72 @@
+package com.ruoyi.ems.service.impl;
+
+import java.util.List;
+import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.ems.model.QueryMeter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.ruoyi.ems.mapper.WaterMeterHMapper;
+import com.ruoyi.ems.domain.WaterMeterH;
+import com.ruoyi.ems.service.IWaterMeterHService;
+
+/**
+ * 用水计量-小时Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2024-12-03
+ */
+@Service
+public class WaterMeterHServiceImpl implements IWaterMeterHService 
+{
+    @Autowired
+    private WaterMeterHMapper waterMeterHMapper;
+
+    /**
+     * 查询用水计量-小时列表
+     * 
+     * @param queryMeter 用水计量-小时
+     * @return 用水计量-小时
+     */
+    @Override
+    public List<WaterMeterH> selectWaterMeterHList(QueryMeter queryMeter)
+    {
+        return waterMeterHMapper.selectWaterMeterHList(queryMeter);
+    }
+
+    /**
+     * 新增用水计量-小时
+     * 
+     * @param waterMeterH 用水计量-小时
+     * @return 结果
+     */
+    @Override
+    public int insertWaterMeterH(WaterMeterH waterMeterH)
+    {
+        waterMeterH.setCreateTime(DateUtils.getNowDate());
+        return waterMeterHMapper.insertWaterMeterH(waterMeterH);
+    }
+
+    /**
+     * 修改用水计量-小时
+     * 
+     * @param waterMeterH 用水计量-小时
+     * @return 结果
+     */
+    @Override
+    public int updateWaterMeterH(WaterMeterH waterMeterH)
+    {
+        return waterMeterHMapper.updateWaterMeterH(waterMeterH);
+    }
+
+    /**
+     * 删除用水计量-小时信息
+     * 
+     * @param date 日期
+     * @return 结果
+     */
+    @Override
+    public int deleteWaterMeterHByDate(String date)
+    {
+        return waterMeterHMapper.deleteWaterMeterHByDate(date);
+    }
+}

+ 85 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/ElecMeterHMapper.xml

@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.ems.mapper.ElecMeterHMapper">
+    
+    <resultMap type="com.ruoyi.ems.domain.ElecMeterH" id="ElecMeterHResult">
+        <result property="id"    column="id"    />
+        <result property="areaCode"    column="area_code"    />
+        <result property="deviceCode"    column="device_code"    />
+        <result property="recordTime"    column="record_time"    />
+        <result property="date"    column="date"    />
+        <result property="time"    column="time"    />
+        <result property="timeIndex"    column="time_index"    />
+        <result property="elecQuantity"    column="elec_quantity"    />
+        <result property="meterType"    column="meter_type"    />
+        <result property="meterUnitPrice"    column="meter_unit_price"    />
+        <result property="useElecCost"    column="use_elec_cost"    />
+        <result property="createTime"    column="create_time"    />
+    </resultMap>
+
+    <sql id="selectElecMeterHVo">
+        select id, area_code, device_code, record_time, `date`, `time`, time_index, elec_quantity, meter_type, meter_unit_price, use_elec_cost, create_time from adm_elec_meter_h
+    </sql>
+
+    <select id="selectElecMeterHList" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="ElecMeterHResult">
+        select
+            id, area_code, device_code, record_time, `date`, `time`, time_index, elec_quantity, meter_type, meter_unit_price, use_elec_cost, create_time
+        from adm_elec_meter_h
+        <where>  
+            <if test="areaCode != null  and areaCode != ''"> and area_code = #{areaCode}</if>
+            <if test="deviceCode != null  and deviceCode != ''"> and device_code = #{deviceCode}</if>
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> and record_time between #{startTime} and #{endTime}</if>
+        </where>
+    </select>
+        
+    <insert id="insertElecMeterH" parameterType="com.ruoyi.ems.domain.ElecMeterH" useGeneratedKeys="true" keyProperty="id">
+        insert into adm_elec_meter_h
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="areaCode != null and areaCode != ''">area_code,</if>
+            <if test="deviceCode != null and deviceCode != ''">device_code,</if>
+            <if test="recordTime != null">record_time,</if>
+            <if test="date != null">`date`,</if>
+            <if test="time != null">`time`,</if>
+            <if test="timeIndex != null">time_index,</if>
+            <if test="elecQuantity != null">elec_quantity,</if>
+            <if test="meterType != null">meter_type,</if>
+            <if test="meterUnitPrice != null">meter_unit_price,</if>
+            <if test="useElecCost != null">use_elec_cost,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="areaCode != null and areaCode != ''">#{areaCode},</if>
+            <if test="deviceCode != null and deviceCode != ''">#{deviceCode},</if>
+            <if test="recordTime != null">#{recordTime},</if>
+            <if test="date != null">#{date},</if>
+            <if test="time != null">#{time},</if>
+            <if test="timeIndex != null">#{timeIndex},</if>
+            <if test="elecQuantity != null">#{elecQuantity},</if>
+            <if test="meterType != null">#{meterType},</if>
+            <if test="meterUnitPrice != null">#{meterUnitPrice},</if>
+            <if test="useElecCost != null">#{useElecCost},</if>
+         </trim>
+    </insert>
+
+    <update id="updateElecMeterH" parameterType="com.ruoyi.ems.domain.ElecMeterH">
+        update adm_elec_meter_h
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="areaCode != null and areaCode != ''">area_code = #{areaCode},</if>
+            <if test="deviceCode != null and deviceCode != ''">device_code = #{deviceCode},</if>
+            <if test="recordTime != null">record_time = #{recordTime},</if>
+            <if test="date != null">date = #{date},</if>
+            <if test="time != null">time = #{time},</if>
+            <if test="timeIndex != null">time_index = #{timeIndex},</if>
+            <if test="elecQuantity != null">elec_quantity = #{elecQuantity},</if>
+            <if test="meterType != null">meter_type = #{meterType},</if>
+            <if test="meterUnitPrice != null">meter_unit_price = #{meterUnitPrice},</if>
+            <if test="useElecCost != null">use_elec_cost = #{useElecCost},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteElecMeterHByDate" parameterType="String">
+        delete from adm_elec_meter_h where `date` = #{date}
+    </delete>
+</mapper>

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

@@ -36,19 +36,19 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         limit 1
     </select>
 
-    <select id="selectList" parameterType="com.ruoyi.ems.model.QueryMeterReading" resultMap="MeterReadingManualResult">
+    <select id="selectList" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="MeterReadingManualResult">
         <include refid="selectMeterReadingManualVo"/>
         <where>  
-            <if test="deviceCode != null  and deviceCode != ''"> and device_code = #{deviceCode}</if>
-            <if test="areaCode != null  and areaCode != ''"> and area_code = #{areaCode}</if>
-            <if test="year != null  and year != ''"> and `year` = #{year}</if>
-            <if test="startMonth != null  and startMonth != ''"> and meter_month &gt;= #{startMonth}</if>
-            <if test="endMonth != null  and endMonth != ''"> and meter_month &lt;= #{endMonth}</if>
+            <if test="deviceCode != null and deviceCode != ''"> and device_code = #{deviceCode}</if>
+            <if test="areaCode != null and areaCode != ''"> and area_code = #{areaCode}</if>
+            <if test="year != null and year != ''"> and `year` = #{year}</if>
+            <if test="startTime != null and startTime != ''"> and meter_month &gt;= #{startTime}</if>
+            <if test="endTime != null and endTime != ''"> and meter_month &lt;= #{endTime}</if>
         </where>
         ORDER BY meter_month ${orderFlag}
     </select>
 
-    <select id="selectByTag" parameterType="com.ruoyi.ems.model.QueryMeterReading" resultMap="MeterReadingManualResult">
+    <select id="selectByTag" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="MeterReadingManualResult">
         select
             r.id, r.device_code, r.area_code, r.`year`, r.meter_month, r.last_reading, r.last_time, r.meter_reading, r.meter_time, r.increase, r.create_time, r.update_time
         from adm_meter_reading r
@@ -57,8 +57,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <where>
             <if test="areaCode != null  and areaCode != ''"> and r.area_code = #{areaCode}</if>
             <if test="objTag != null"> and d.obj_tag = #{objTag}</if>
-            <if test="startMonth != null  and startMonth != ''"> and meter_month &gt;= #{startMonth}</if>
-            <if test="endMonth != null  and endMonth != ''"> and meter_month &lt;= #{endMonth}</if>
+            <if test="startTime != null  and startTime != ''"> and meter_month &gt;= #{startTime}</if>
+            <if test="endTime != null  and endTime != ''"> and meter_month &lt;= #{endTime}</if>
         </where>
     </select>
 

+ 79 - 0
ems-cloud/ems-modules/ems-server/src/main/resources/mapper/ems/WaterMeterHMapper.xml

@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.ems.mapper.WaterMeterHMapper">
+    
+    <resultMap type="com.ruoyi.ems.domain.WaterMeterH" id="WaterMeterHResult">
+        <result property="id"    column="id"    />
+        <result property="areaCode"    column="area_code"    />
+        <result property="deviceCode"    column="device_code"    />
+        <result property="recordTime"    column="record_time"    />
+        <result property="date"    column="date"    />
+        <result property="time"    column="time"    />
+        <result property="timeIndex"    column="time_index"    />
+        <result property="waterQuantity"    column="water_quantity"    />
+        <result property="meterUnitPrice"    column="meter_unit_price"    />
+        <result property="useWaterCost"    column="use_water_cost"    />
+        <result property="createTime"    column="create_time"    />
+    </resultMap>
+
+    <sql id="selectWaterMeterHVo">
+        select id, area_code, device_code, record_time, `date`, `time`, time_index, water_quantity, meter_unit_price, use_water_cost, create_time from adm_water_meter_h
+    </sql>
+
+    <select id="selectWaterMeterHList" parameterType="com.ruoyi.ems.model.QueryMeter" resultMap="WaterMeterHResult">
+        <include refid="selectWaterMeterHVo"/>
+        <where>  
+            <if test="areaCode != null  and areaCode != ''"> and area_code = #{areaCode}</if>
+            <if test="deviceCode != null  and deviceCode != ''"> and device_code = #{deviceCode}</if>
+            <if test="startTime != null and startTime != '' and endTime != null and endTime != ''"> and record_time between #{startTime} and #{endTime}</if>
+        </where>
+    </select>
+
+    <insert id="insertWaterMeterH" parameterType="com.ruoyi.ems.domain.WaterMeterH" useGeneratedKeys="true" keyProperty="id">
+        insert into adm_water_meter_h
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="areaCode != null and areaCode != ''">area_code,</if>
+            <if test="deviceCode != null and deviceCode != ''">device_code,</if>
+            <if test="recordTime != null">record_time,</if>
+            <if test="date != null">`date`,</if>
+            <if test="time != null">`time`,</if>
+            <if test="timeIndex != null">time_index,</if>
+            <if test="waterQuantity != null">water_quantity,</if>
+            <if test="meterUnitPrice != null">meter_unit_price,</if>
+            <if test="useWaterCost != null">use_water_cost,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="areaCode != null and areaCode != ''">#{areaCode},</if>
+            <if test="deviceCode != null and deviceCode != ''">#{deviceCode},</if>
+            <if test="recordTime != null">#{recordTime},</if>
+            <if test="date != null">#{date},</if>
+            <if test="time != null">#{time},</if>
+            <if test="timeIndex != null">#{timeIndex},</if>
+            <if test="waterQuantity != null">#{waterQuantity},</if>
+            <if test="meterUnitPrice != null">#{meterUnitPrice},</if>
+            <if test="useWaterCost != null">#{useWaterCost},</if>
+         </trim>
+    </insert>
+
+    <update id="updateWaterMeterH" parameterType="com.ruoyi.ems.domain.WaterMeterH">
+        update adm_water_meter_h
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="areaCode != null and areaCode != ''">area_code = #{areaCode},</if>
+            <if test="deviceCode != null and deviceCode != ''">device_code = #{deviceCode},</if>
+            <if test="recordTime != null">record_time = #{recordTime},</if>
+            <if test="date != null">`date` = #{date},</if>
+            <if test="time != null">`time` = #{time},</if>
+            <if test="timeIndex != null">time_index = #{timeIndex},</if>
+            <if test="waterQuantity != null">water_quantity = #{waterQuantity},</if>
+            <if test="meterUnitPrice != null">meter_unit_price = #{meterUnitPrice},</if>
+            <if test="useWaterCost != null">use_water_cost = #{useWaterCost},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteWaterMeterHByDate" parameterType="String">
+        delete from adm_water_meter_h where `date` = #{date}
+    </delete>
+</mapper>

+ 43 - 21
ems-cloud/sql/ems_server.sql

@@ -1121,27 +1121,6 @@ create table adm_ems_pv_supply_h (
 
 
 -- ----------------------------
--- 用能计量表
--- ----------------------------
-drop table if exists adm_ems_obj_use_h;
-create table adm_ems_obj_use_h (
-  `id`                 bigint(20)      not null auto_increment      comment '序号',
-  `area_code`          varchar(32)     not null                     comment '园区代码',
-  `obj_type`           int             not null                     comment '对象类型',
-  `obj_code`           varchar(64)     not null                     comment '对象代码',
-  `record_time`        timestamp       not null                     comment '记录时间',
-  `date`               date            not null                     comment '日期 yyyy-MM-dd',
-  `time`               time            not null                     comment '时间 HH:mm:ss',
-  `time_index`         int             not null                     comment '时间序列',
-  `elec_quantity`      double          default null                 comment '用电量 单位:kW-h(千瓦时)',
-  `create_time`        datetime        default CURRENT_TIMESTAMP    comment '创建时间',
-  primary key (`id`),
-  unique key ux_ems_facs_use_h(`area_code`, `obj_type`, `obj_code`, `record_time`),
-  key ix_ems_facs_use_h_rt(`obj_type`, `obj_code`)
-) engine=innodb auto_increment=1 comment = '用能计量表-小时';
-
-
--- ----------------------------
 -- 储能计量表
 -- ----------------------------
 drop table if exists adm_ems_elec_store_h;
@@ -1163,6 +1142,49 @@ create table adm_ems_elec_store_h (
 
 
 -- ----------------------------
+-- 用电计量表-小时
+-- ----------------------------
+drop table if exists adm_elec_meter_h;
+create table adm_elec_meter_h (
+  `id`                 bigint(20)      not null auto_increment      comment '序号',
+  `area_code`          varchar(32)     not null                     comment '园区代码',
+  `device_code`        varchar(16)     not null                     comment '计量设备',
+  `record_time`        timestamp       not null                     comment '记录时间',
+  `date`               date            not null                     comment '日期 yyyy-MM-dd',
+  `time`               time            not null                     comment '时间 HH:mm:ss',
+  `time_index`         int             not null                     comment '时间序列',
+  `elec_quantity`      double          default null                 comment '用电量 单位:kW-h(千瓦时)',
+  `meter_type`         int             default null                 comment '计量类型 -1:低谷电 0:平峰电 1:高峰电 2:尖峰电',
+  `meter_unit_price`   double          default null                 comment '单位电价(1度电)',
+  `use_elec_cost`      double          default null                 comment '小时电费',
+  `create_time`        datetime        default CURRENT_TIMESTAMP    comment '创建时间',
+  primary key (`id`),
+  unique key ux_elec_meter_h(`device_code`, `record_time`)
+) engine=innodb auto_increment=1 comment = '用电计量表-小时';
+
+
+-- ----------------------------
+-- 用水计量表-小时
+-- ----------------------------
+drop table if exists adm_water_meter_h;
+create table adm_water_meter_h (
+  `id`                 bigint(20)      not null auto_increment      comment '序号',
+  `area_code`          varchar(32)     not null                     comment '园区代码',
+  `device_code`        varchar(16)     not null                     comment '计量设备',
+  `record_time`        timestamp       not null                     comment '记录时间',
+  `date`               date            not null                     comment '日期 yyyy-MM-dd',
+  `time`               time            not null                     comment '时间 HH:mm:ss',
+  `time_index`         int             not null                     comment '时间序列',
+  `water_quantity`     double          default null                 comment '用水量 单位:t(吨)',
+  `meter_unit_price`   double          default null                 comment '单位水价(1吨水)',
+  `use_water_cost`     double          default null                 comment '小时水费',
+  `create_time`        datetime        default CURRENT_TIMESTAMP    comment '创建时间',
+  primary key (`id`),
+  unique key ux_water_meter_h(`device_code`, `record_time`)
+) engine=innodb auto_increment=1 comment = '用水计量表-小时';
+
+
+-- ----------------------------
 -- 电能计量日表
 -- ----------------------------
 drop table if exists adm_ems_elec_meter_d;

+ 10 - 3
ems-cloud/sql/ems_sys.sql

@@ -192,7 +192,7 @@ insert into sys_menu values ('132',  '碳汇测算',       '4',    '2',  'ca-sin
 insert into sys_menu values ('141',  '设备属性',       '5',    '1',  'device-attr',         'devmgr/attr',           '', 1, 0, 'C', '0', '0',    'ems:device:list',        'deviceattr',     'admin', sysdate(), '', null, '设备属性');
 insert into sys_menu values ('142',  '设备台账',       '5',    '2',  'device-el',           'devmgr/el',              '', 1, 0, 'C', '0', '0',   'device:el',              'excel',          'admin', sysdate(), '', null, '设备台账');
 insert into sys_menu values ('143',  '设备告警',       '5',    '3',  'analysis-warn',       'analysis/device/warn',   '', 1, 0, 'C', '0', '0',   'analysis:device',        'deviceanalyze',  'admin', sysdate(), '', null, '设备分析');
-insert into sys_menu values ('144',  '手动抄表',       '5',    '4',  'meterRead-manual',    'devmgr/meterRead',       '', 1, 0, 'C', '0', '0',   'ems:meterReading:list',  'meterReading',   'admin', sysdate(), '', null, '手动抄表');
+insert into sys_menu values ('144',  '抄表管理',       '5',    '4',  'deviceMeter',         '',                       '', 1, 0, 'M', '0', '0',   'device:meter',           'meterReading',   'admin', sysdate(), '', null, '抄表管理');
 
 INSERT INTO sys_menu VALUES ('151',  '告警策略',       '6',    '1',  'warn-strategy',       'alarm/index',            '', 1, 0, 'C', '0', '0',    'warn:strategy', 'warnstrategy', 'admin', '2024-08-29 15:40:27', 'admin', '2024-08-29 16:01:10', '告警策略');
 INSERT INTO sys_menu VALUES ('152',  '告警列表',       '6',    '2',  'warn-list',           'alarm/alarm-info/index', '', 1, 0, 'C', '0', '0',    'warn:list', 'warnmsg', 'admin', '2024-08-29 15:40:27', 'admin', '2024-08-29 16:01:36', '告警策略');
@@ -200,8 +200,8 @@ INSERT INTO sys_menu VALUES ('153',  '巡检计划',       '6',    '3',  'oper-p
 insert into sys_menu values ('154',  '巡检报告',       '6',    '4',  'oper-report',         'task/report/index',      '', 1, 0, 'C', '0', '0',    'oper-mgr:report',        'note',           'admin', sysdate(), '', null, '巡检报告');
 
 insert into sys_menu values ('161',  '区域配置',       '7',    '1',  'areacfg',            'basecfg/area/index',    '', 1, 0, 'C', '0', '0',   'basecfg:area:list',      'cfgwrite',       'admin', sysdate(), '', null, '区域配置');
-insert into sys_menu values ('162',  '设备设施',       '7',    '2',  'devicecfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:device',         'devicemgr',      'admin', sysdate(), '', null, '用户管理菜单');
-insert into sys_menu values ('163',  '能源计量',       '7',    '3',  'energycfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:energy',         'energy',         'admin', sysdate(), '', null, '用户管理菜单');
+insert into sys_menu values ('162',  '设备设施',       '7',    '2',  'devicecfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:device',         'devicemgr',      'admin', sysdate(), '', null, '设备设施');
+insert into sys_menu values ('163',  '能源计量',       '7',    '3',  'energycfg',          '',                       '', 1, 0, 'M', '0', '0',   'basecfg:energy',         'energy',         'admin', sysdate(), '', null, '能源计量');
 insert into sys_menu values ('164',  '标签管理',       '7',    '4',  'emstag',             'basecfg/tag',            '', 1, 0, 'C', '0', '0',   'basecfg:tag:list',       'tree',           'admin', sysdate(), '', null, '标签菜单');
 
 insert into sys_menu values ('170',  '用户管理',       '8',   '1',  'user',               'system/user/index',      '', 1, 0, 'C', '0', '0',   'system:user:list',       'user',           'admin', sysdate(), '', null, '用户管理菜单');
@@ -242,6 +242,11 @@ insert into sys_menu values ('1210',  '产能报表',   '121', '1',  'statement-
 insert into sys_menu values ('1211',  '用能报表',   '121', '2',  'statement-consume', 'analysis/statement/consume',  '', 1, 0, 'C', '0', '0',    'analysis:statement:consume',   'energyconsume',  'admin', sysdate(), '', null, '用能报表');
 insert into sys_menu values ('1212',  '告警报表',   '121', '3',  'statement-warn',    'analysis/statement/warn',     '', 1, 0, 'C', '0', '0',    'analysis:statement:warn',      'warn',     'admin', sysdate(), '', null, '告警报表');
 insert into sys_menu values ('1213',  '自定义',     '121', '4',  'statement-warn',    'analysis/statement/custom',   '', 1, 0, 'C', '0', '0',   'analysis:statement:custom',    'statement-zdy',   'admin', sysdate(), '', null, '自定义报表');
+
+-- 抄表管理菜单
+insert into sys_menu values ('1440',  '手动抄表',   '144', '1',  'meterRead-manual',    'devmgr/meterRead',       '', 1, 0, 'C', '0', '0',   'ems:meterReading:list',  'meterReadManual',   'admin', sysdate(), '', null, '手动抄表');
+insert into sys_menu values ('1441',  '自动抄表',   '144', '2',  'meterRead-auto',      'devmgr/meterData',       '', 1, 0, 'C', '0', '0',   'ems:meterData:list',  'meterReadAuto',   'admin', sysdate(), '', null, '抄表数据');
+
 -- 业务配置菜单
 insert into sys_menu values ('1620',  '设备模型',   '162', '1',  'basecfg-devmode',        'basecfg/device/model',      '', 1, 0, 'C', '0', '0',   'ems:devmode:list',             'cfgwrite',   'admin', sysdate(), '', null, '设备模型');
 insert into sys_menu values ('1621',  '设施分类',   '162', '2',  'basecfg-facscategory',   'basecfg/facscategory/index', '', 1, 0, 'C', '0', '0',   'basecfg:facscategory:list',    'cfgwrite',   'admin', sysdate(), '', null, '设施配置');
@@ -587,6 +592,8 @@ INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1322);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1323);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1324);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1325);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1440);
+INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1441);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1510);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1511);
 INSERT INTO sys_role_menu (`role_id`, `menu_id`) VALUES (2, 1512);