maven
2025-08-12 acd5c596b40b44e3ac3624a9cde7f62a1be6a076
Merge remote-tracking branch 'origin/pim_yys'
已修改1个文件
已添加6个文件
340 ■■■■■ 文件已修改
src/main/java/com/ruoyi/approve/service/impl/ApproveNodeServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/waterrecord/controller/WaterRecordController.java 88 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/waterrecord/mapper/WaterRecordMapper.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/waterrecord/pojo/WaterRecord.java 135 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/waterrecord/service/WaterRecordService.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/waterrecord/service/impl/WaterRecordServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/mapper/waterrecord/WaterRecordMapper.xml 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
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 , "用水管理");
    }
}
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);
}
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;
}
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);
}
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("导入失败");
        }
    }
}
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>