From 0956746ec7ada47a568aa3569f8742762a638ec1 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期二, 12 八月 2025 16:35:02 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java     |    2 
 src/main/java/com/ruoyi/waterrecord/pojo/WaterRecord.java                    |  135 ++++++++++++++++++++++
 src/main/resources/mapper/waterrecord/WaterRecordMapper.xml                  |   17 ++
 src/main/java/com/ruoyi/waterrecord/controller/WaterRecordController.java    |   88 ++++++++++++++
 src/main/java/com/ruoyi/waterrecord/service/WaterRecordService.java          |   25 ++++
 src/main/java/com/ruoyi/waterrecord/service/impl/WaterRecordServiceImpl.java |   52 ++++++++
 src/main/java/com/ruoyi/waterrecord/mapper/WaterRecordMapper.java            |   21 +++
 7 files changed, 339 insertions(+), 1 deletions(-)

diff --git a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
index f7c98aa..d0ff36a 100644
--- a/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
+++ b/src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java
@@ -132,7 +132,7 @@
         ApproveNode approveNode1 = approveNodeMapper.selectOne(approveNodeLambdaQueryWrapper);
         approveProcess.setApproveStatus(status);
         if(approveNode1 != null){
-            approveProcess.setApproveUserCurrentId(approveNode.getApproveNodeUserId());
+            approveProcess.setApproveUserCurrentId(approveNode1.getApproveNodeUserId());
             approveProcess.setApproveUserCurrentName(approveNode1.getApproveNodeUser());
         }
         approveProcessMapper.updateById(approveProcess);
diff --git a/src/main/java/com/ruoyi/waterrecord/controller/WaterRecordController.java b/src/main/java/com/ruoyi/waterrecord/controller/WaterRecordController.java
new file mode 100644
index 0000000..87a9b7d
--- /dev/null
+++ b/src/main/java/com/ruoyi/waterrecord/controller/WaterRecordController.java
@@ -0,0 +1,88 @@
+package com.ruoyi.waterrecord.controller;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.framework.aspectj.lang.annotation.Log;
+import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.waterrecord.pojo.WaterRecord;
+import com.ruoyi.waterrecord.service.WaterRecordService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/8/11 10:08
+ */
+@RestController
+@Api(tags = "鐢ㄦ按绠$悊")
+@RequestMapping("/waterRecord")
+public class WaterRecordController extends BaseController {
+
+    @Autowired
+    private WaterRecordService waterRecordService;
+
+    @GetMapping("/listPage")
+    @Log(title = "鐢ㄦ按绠$悊-鍒嗛〉鏌ヨ", businessType = BusinessType.OTHER)
+    public AjaxResult listPage(Page page, WaterRecord waterRecord){
+        IPage<WaterRecord> listPage = waterRecordService.listPage(page, waterRecord);
+        return AjaxResult.success(listPage);
+    }
+
+    @PostMapping("/add")
+    @Log(title = "鐢ㄦ按绠$悊-鏂板", businessType = BusinessType.INSERT)
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult add(@RequestBody WaterRecord waterRecord){
+        boolean save = waterRecordService.save(waterRecord);
+        return save ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    @PostMapping("/update")
+    @Log(title = "鐢ㄦ按绠$悊-淇敼", businessType = BusinessType.UPDATE)
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult update(@RequestBody WaterRecord waterRecord){
+        boolean update = waterRecordService.updateById(waterRecord);
+        return update ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    @DeleteMapping("/delete")
+    @Log(title = "鐢ㄦ按绠$悊-鍒犻櫎", businessType = BusinessType.DELETE)
+    @Transactional(rollbackFor = Exception.class)
+    public AjaxResult delete(@RequestBody List<Long> ids){
+        if(CollectionUtils.isEmpty(ids)) return AjaxResult.error("璇烽�夋嫨鑷冲皯涓�鏉℃暟鎹�");
+        boolean delete = waterRecordService.removeBatchByIds(ids);
+        return delete ? AjaxResult.success() : AjaxResult.error();
+    }
+
+    /**
+     * 瀵煎叆鐢ㄦ按绠$悊
+     */
+    @Log(title = "瀵煎叆鐢ㄦ按绠$悊", businessType = BusinessType.IMPORT)
+    @PostMapping("/importData")
+    @ApiOperation("瀵煎叆鐢ㄦ按绠$悊")
+    public AjaxResult importData(MultipartFile file) throws Exception {
+        return waterRecordService.importData(file);
+    }
+
+    /**
+     * 瀵煎嚭鐢ㄦ按绠$悊
+     */
+    @Log(title = "瀵煎嚭鐢ㄦ按绠$悊", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ApiOperation("瀵煎嚭鐢ㄦ按绠$悊")
+    public void export(HttpServletResponse response) {
+        ExcelUtil<WaterRecord> util = new ExcelUtil<WaterRecord>(WaterRecord.class);
+        util.exportExcel(response, null , "鐢ㄦ按绠$悊");
+    }
+
+}
diff --git a/src/main/java/com/ruoyi/waterrecord/mapper/WaterRecordMapper.java b/src/main/java/com/ruoyi/waterrecord/mapper/WaterRecordMapper.java
new file mode 100644
index 0000000..d66c16f
--- /dev/null
+++ b/src/main/java/com/ruoyi/waterrecord/mapper/WaterRecordMapper.java
@@ -0,0 +1,21 @@
+package com.ruoyi.waterrecord.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.waterrecord.pojo.WaterRecord;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * @author :yys
+ * @date : 2025/8/11 10:06
+ */
+public interface WaterRecordMapper extends BaseMapper<WaterRecord> {
+
+    /**
+     * @param page
+     * @param waterRecord
+     * @return
+     */
+    IPage<WaterRecord> listPage(Page page,@Param("req") WaterRecord waterRecord);
+}
diff --git a/src/main/java/com/ruoyi/waterrecord/pojo/WaterRecord.java b/src/main/java/com/ruoyi/waterrecord/pojo/WaterRecord.java
new file mode 100644
index 0000000..e2c6e9b
--- /dev/null
+++ b/src/main/java/com/ruoyi/waterrecord/pojo/WaterRecord.java
@@ -0,0 +1,135 @@
+package com.ruoyi.waterrecord.pojo;
+
+import com.baomidou.mybatisplus.annotation.*;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import com.ruoyi.framework.aspectj.lang.annotation.Excel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+import java.util.Date;
+
+/**
+ * @author :yys
+ * @date : 2025/8/11 10:00
+ */
+@Data
+@TableName("water_record")
+@ApiModel
+public class WaterRecord {
+
+
+    private static final long serialVersionUID = 1L;
+
+    @TableId(value = "id", type = IdType.AUTO)
+    private Long id;
+
+    /**
+     * 瑙勬牸鍨嬪彿
+     */
+    @ApiModelProperty("瑙勬牸鍨嬪彿")
+    @Excel(name = "瑙勬牸鍨嬪彿")
+    private String deviceModel;
+
+    /**
+     * 鐢ㄦ按绫诲瀷
+     */
+    @ApiModelProperty("鐢ㄦ按绫诲瀷")
+    @Excel(name = "鐢ㄦ按绫诲瀷", readConverterExp = "industrial=宸ヤ笟鐢ㄦ按,domestic=鐢熸椿鐢ㄦ按,fire=娑堥槻鐢ㄦ按,greening=缁垮寲鐢ㄦ按")
+    private String type;
+
+    /**
+     * 璁惧鍚嶇О
+     */
+    @ApiModelProperty("璁惧鍚嶇О")
+    @Excel(name = "璁惧鍚嶇О")
+    @TableField(exist = false)
+    private String deviceName;
+
+
+
+    /**
+     * 棰濆畾娴侀噺
+     */
+    @ApiModelProperty("棰濆畾娴侀噺")
+    @Excel(name = "棰濆畾娴侀噺")
+    private String ratedRate;
+
+    /**
+     * 瀹為檯娴侀噺
+     */
+    @ApiModelProperty("瀹為檯娴侀噺")
+    @Excel(name = "瀹為檯娴侀噺")
+    private String actualTraffic;
+
+    /**
+     * 杩愯鏃堕棿
+     */
+    @ApiModelProperty("杩愯鏃堕棿")
+    @Excel(name = "杩愯鏃堕棿", width = 30, dateFormat = "yyyy-MM-dd")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd")
+    private Date runTime;
+
+
+    /**
+     * 褰撴棩鐢ㄦ按閲�
+     */
+    @ApiModelProperty("褰撴棩鐢ㄦ按閲�")
+    @Excel(name = "褰撴棩鐢ㄦ按閲�")
+    private String waterDay;
+
+    /**
+     * 姣忔棩闄愬埗姘撮噺
+     */
+    @ApiModelProperty("姣忔棩闄愬埗姘撮噺")
+    @Excel(name = "姣忔棩闄愬埗姘撮噺")
+    private String waterDayLimit;
+
+    /**
+     * 姘磋垂鍗曚环
+     */
+    @ApiModelProperty("姘磋垂鍗曚环")
+    @Excel(name = "姘磋垂鍗曚环")
+    private String waterPrice;
+
+    /**
+     * 澶囨敞
+     */
+    @ApiModelProperty("澶囨敞")
+    private String remarks;
+
+    /**
+     * 鍒涘缓鑰�
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Integer createUser;
+
+    /**
+     * 鍒涘缓鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private LocalDateTime createTime;
+
+    /**
+     * 淇敼鑰�
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Integer updateUser;
+
+    /**
+     * 淇敼鏃堕棿
+     */
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private LocalDateTime updateTime;
+
+    /**
+     * 绉熸埛ID
+     */
+    @TableField(fill = FieldFill.INSERT)
+    private Long tenantId;
+
+}
diff --git a/src/main/java/com/ruoyi/waterrecord/service/WaterRecordService.java b/src/main/java/com/ruoyi/waterrecord/service/WaterRecordService.java
new file mode 100644
index 0000000..775fb25
--- /dev/null
+++ b/src/main/java/com/ruoyi/waterrecord/service/WaterRecordService.java
@@ -0,0 +1,25 @@
+package com.ruoyi.waterrecord.service;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.waterrecord.pojo.WaterRecord;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * @author :yys
+ * @date : 2025/8/11 10:07
+ */
+public interface WaterRecordService extends IService<WaterRecord> {
+
+    /**
+     * 鍒嗛〉鏌ヨ
+     * @param page
+     * @param waterRecord
+     * @return
+     */
+    IPage<WaterRecord> listPage(Page page, WaterRecord waterRecord);
+
+    AjaxResult importData(MultipartFile file);
+}
diff --git a/src/main/java/com/ruoyi/waterrecord/service/impl/WaterRecordServiceImpl.java b/src/main/java/com/ruoyi/waterrecord/service/impl/WaterRecordServiceImpl.java
new file mode 100644
index 0000000..4359ea8
--- /dev/null
+++ b/src/main/java/com/ruoyi/waterrecord/service/impl/WaterRecordServiceImpl.java
@@ -0,0 +1,52 @@
+package com.ruoyi.waterrecord.service.impl;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.utils.poi.ExcelUtil;
+import com.ruoyi.equipmentenergyconsumption.pojo.EquipmentEnergyConsumption;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.waterrecord.mapper.WaterRecordMapper;
+import com.ruoyi.waterrecord.pojo.WaterRecord;
+import com.ruoyi.waterrecord.service.WaterRecordService;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.CollectionUtils;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
+/**
+ * @author :yys
+ * @date : 2025/8/11 10:08
+ */
+@Service
+@Slf4j
+public class WaterRecordServiceImpl extends ServiceImpl<WaterRecordMapper, WaterRecord> implements WaterRecordService {
+
+    @Autowired
+    private WaterRecordMapper waterRecordMapper;
+
+
+    @Override
+    public IPage<WaterRecord> listPage(Page page, WaterRecord waterRecord) {
+        return waterRecordMapper.listPage(page,waterRecord);
+    }
+
+    @Override
+    public AjaxResult importData(MultipartFile file) {
+        try {
+            ExcelUtil<WaterRecord> util = new ExcelUtil<WaterRecord>(WaterRecord.class);
+            List<WaterRecord> userList = util.importExcel(file.getInputStream());
+            if(CollectionUtils.isEmpty(userList)){
+                return AjaxResult.warn("妯℃澘閿欒鎴栧鍏ユ暟鎹负绌�");
+            }
+            this.saveOrUpdateBatch(userList);
+            return AjaxResult.success(true);
+        }catch (Exception e){
+            e.printStackTrace();
+            return AjaxResult.error("瀵煎叆澶辫触");
+        }
+    }
+}
diff --git a/src/main/resources/mapper/waterrecord/WaterRecordMapper.xml b/src/main/resources/mapper/waterrecord/WaterRecordMapper.xml
new file mode 100644
index 0000000..e0a9135
--- /dev/null
+++ b/src/main/resources/mapper/waterrecord/WaterRecordMapper.xml
@@ -0,0 +1,17 @@
+<?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.waterrecord.mapper.WaterRecordMapper">
+
+    <select id="listPage" resultType="com.ruoyi.waterrecord.pojo.WaterRecord">
+        select
+               t1.*,
+               t2.device_name
+               from water_record t1
+        left join device_ledger t2 on t1.device_model = t2.device_model
+        <where>
+            <if test="req.deviceName != null and req.deviceName != ''">
+                and t2.device_name like concat('%',#{req.deviceName},'%')
+            </if>
+        </where>
+    </select>
+</mapper>
\ No newline at end of file

--
Gitblit v1.9.3