From be59e4cc790976eb105570a0957f7252a2426bad Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Mon, 20 Apr 2026 13:54:39 +0800 Subject: [PATCH] =?UTF-8?q?feat(energy-record):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E8=83=BD=E6=BA=90=E6=B6=88=E8=80=97=E8=AE=B0=E5=BD=95=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E8=8C=83=E5=9B=B4=E6=9F=A5=E8=AF=A2=E5=92=8C?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E4=BF=A1=E6=81=AF=E5=85=B3=E8=81=94=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 EmsEnergyRecordBo 中添加 recordStartDate、recordEndDate 用于时间范围筛选 - 添加 meterCode、energyName、model、manufacturer、meterStatus 等模糊查询字段 - 集成 DateTimeFormat 注解支持日期格式化 - 在 EmsEnergyRecordMapper 中新增 selectVoPagePlus 方法实现关联查询 - 通过 XML 配置实现能源记录与计量表、能源类型的左连接查询 - 在 EmsEnergyRecordServiceImpl 中重构查询逻辑支持多表关联和时间段筛选 - 在 EmsEnergyRecordVo 中扩展表计和能源相关展示字段 --- .../klp/ems/domain/bo/EmsEnergyRecordBo.java | 38 +++++++++++++++++ .../klp/ems/domain/vo/EmsEnergyRecordVo.java | 41 +++++++++++++++++++ .../klp/ems/mapper/EmsEnergyRecordMapper.java | 4 ++ .../impl/EmsEnergyRecordServiceImpl.java | 31 +++++++++++++- .../mapper/EmsEnergyRecordMapper.xml | 22 ++++++++++ 5 files changed, 134 insertions(+), 2 deletions(-) diff --git a/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsEnergyRecordBo.java b/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsEnergyRecordBo.java index c69bfa05..5da2fede 100644 --- a/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsEnergyRecordBo.java +++ b/klp-ems/src/main/java/com/klp/ems/domain/bo/EmsEnergyRecordBo.java @@ -8,6 +8,7 @@ import javax.validation.constraints.*; import java.math.BigDecimal; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; /** * 能源消耗记录业务对象 ems_energy_record @@ -45,6 +46,19 @@ public class EmsEnergyRecordBo extends BaseEntity { */ private Date recordDate; + /** + * 统计日期开始时间(yyyy-MM-dd,不含时分秒) + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date recordStartDate; + + /** + * 统计日期结束时间(yyyy-MM-dd,不含时分秒) + */ + @JsonFormat(pattern = "yyyy-MM-dd") + @DateTimeFormat(pattern = "yyyy-MM-dd") + private Date recordEndDate; /** * 记录人ID */ @@ -55,5 +69,29 @@ public class EmsEnergyRecordBo extends BaseEntity { */ private String remark; + /** + * 表计编号(模糊查询) + */ + private String meterCode; + + /** + * 能源名称(模糊查询) + */ + private String energyName; + + /** + * 设备型号(模糊查询) + */ + private String model; + + /** + * 制造商(模糊查询) + */ + private String manufacturer; + + /** + * 设备状态:0=在用,1=停用,2=维护 + */ + private Integer meterStatus; } diff --git a/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsEnergyRecordVo.java b/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsEnergyRecordVo.java index eb7f60c3..c54bbec0 100644 --- a/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsEnergyRecordVo.java +++ b/klp-ems/src/main/java/com/klp/ems/domain/vo/EmsEnergyRecordVo.java @@ -67,5 +67,46 @@ public class EmsEnergyRecordVo { @ExcelProperty(value = "备注") private String remark; + /** + * 表计编号 + */ + private String meterCode; + + /** + * 设备型号 + */ + private String meterModel; + + /** + * 制造商 + */ + private String meterManufacturer; + + /** + * 设备状态:0=在用,1=停用,2=维护 + */ + private Integer meterStatus; + + + /** + * 能源名称 + */ + private String energyName; + + + /** + * 能源单位 + */ + private String energyUnit; + + /** + * 能源编号 + */ + private String energyCode; + + /** + * 能源描述 + */ + private String energyDescription; } diff --git a/klp-ems/src/main/java/com/klp/ems/mapper/EmsEnergyRecordMapper.java b/klp-ems/src/main/java/com/klp/ems/mapper/EmsEnergyRecordMapper.java index ea17cd75..0fd737c7 100644 --- a/klp-ems/src/main/java/com/klp/ems/mapper/EmsEnergyRecordMapper.java +++ b/klp-ems/src/main/java/com/klp/ems/mapper/EmsEnergyRecordMapper.java @@ -1,8 +1,11 @@ package com.klp.ems.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.klp.ems.domain.EmsEnergyRecord; import com.klp.ems.domain.vo.EmsEnergyRecordVo; import com.klp.common.core.mapper.BaseMapperPlus; +import org.apache.ibatis.annotations.Param; /** * 能源消耗记录Mapper接口 @@ -12,4 +15,5 @@ import com.klp.common.core.mapper.BaseMapperPlus; */ public interface EmsEnergyRecordMapper extends BaseMapperPlus { + Page selectVoPagePlus(Page build,@Param("ew") QueryWrapper qw); } diff --git a/klp-ems/src/main/java/com/klp/ems/service/impl/EmsEnergyRecordServiceImpl.java b/klp-ems/src/main/java/com/klp/ems/service/impl/EmsEnergyRecordServiceImpl.java index 44050719..41c70e44 100644 --- a/klp-ems/src/main/java/com/klp/ems/service/impl/EmsEnergyRecordServiceImpl.java +++ b/klp-ems/src/main/java/com/klp/ems/service/impl/EmsEnergyRecordServiceImpl.java @@ -1,11 +1,13 @@ package com.klp.ems.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.klp.common.core.page.TableDataInfo; import com.klp.common.core.domain.PageQuery; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.klp.common.utils.StringUtils; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import com.klp.ems.domain.bo.EmsEnergyRecordBo; @@ -43,11 +45,33 @@ public class EmsEnergyRecordServiceImpl implements IEmsEnergyRecordService { */ @Override public TableDataInfo queryPageList(EmsEnergyRecordBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPage(pageQuery.build(), lqw); + QueryWrapper qw = buildQueryWrapperPlus(bo); + Page result = baseMapper.selectVoPagePlus(pageQuery.build(), qw); return TableDataInfo.build(result); } + private QueryWrapper buildQueryWrapperPlus(EmsEnergyRecordBo bo) { + QueryWrapper qw = Wrappers.query(); + + // 主表字段查询(使用别名 er) + qw.eq(bo.getMeterId() != null, "er.meter_id", bo.getMeterId()); + qw.eq(bo.getEnergyId() != null, "er.energy_id", bo.getEnergyId()); + qw.eq(bo.getConsumption() != null, "er.consumption", bo.getConsumption()); + qw.eq(bo.getRecordDate() != null, "er.record_date", bo.getRecordDate()); + qw.eq(bo.getRecordedBy() != null, "er.recorded_by", bo.getRecordedBy()); + + // 时间段筛选:recordStartDate <= recordDate <= recordEndDate + qw.ge(bo.getRecordStartDate() != null, "er.record_date", bo.getRecordStartDate()); + qw.le(bo.getRecordEndDate() != null, "er.record_date", bo.getRecordEndDate()); + // 逻辑删除 + qw.eq("er.del_flag", "0"); + // 默认排序:按统计日期倒序 + qw.orderByDesc("er.record_date"); + + return qw; + } + + /** * 查询能源消耗记录列表 */ @@ -64,6 +88,9 @@ public class EmsEnergyRecordServiceImpl implements IEmsEnergyRecordService { lqw.eq(bo.getEnergyId() != null, EmsEnergyRecord::getEnergyId, bo.getEnergyId()); lqw.eq(bo.getConsumption() != null, EmsEnergyRecord::getConsumption, bo.getConsumption()); lqw.eq(bo.getRecordDate() != null, EmsEnergyRecord::getRecordDate, bo.getRecordDate()); + // 时间段筛选:recordDateStart <= recordDate <= recordDateEnd + lqw.ge(bo.getRecordStartDate() != null, EmsEnergyRecord::getRecordDate, bo.getRecordStartDate()); + lqw.le(bo.getRecordEndDate() != null, EmsEnergyRecord::getRecordDate, bo.getRecordEndDate()); lqw.eq(bo.getRecordedBy() != null, EmsEnergyRecord::getRecordedBy, bo.getRecordedBy()); return lqw; } diff --git a/klp-ems/src/main/resources/mapper/EmsEnergyRecordMapper.xml b/klp-ems/src/main/resources/mapper/EmsEnergyRecordMapper.xml index 67ccb5e5..96eb5b31 100644 --- a/klp-ems/src/main/resources/mapper/EmsEnergyRecordMapper.xml +++ b/klp-ems/src/main/resources/mapper/EmsEnergyRecordMapper.xml @@ -18,6 +18,28 @@ +