From 4fdf79669b1f50c528d3aa07893aac7b75d6fe60 Mon Sep 17 00:00:00 2001 From: Joshi <3040996759@qq.com> Date: Sat, 13 Dec 2025 10:04:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(oa):=20=E5=A2=9E=E5=8A=A0=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E6=9F=A5=E8=AF=A2=E6=97=B6=E9=97=B4=E7=AD=9B=E9=80=89?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 SysOaProjectBo 中新增 beginCreateTime 和 endCreateTime 字段用于时间筛选 - 修改 SysOaProjectMapper 中 selectVoPlus 方法参数类型为 QueryWrapper - 替换 LambdaQueryWrapper 为 QueryWrapper 以支持别名查询 - 新增 buildAliasPQueryWrapper 方法构建带表别名的查询条件 - 增加对创建时间范围的筛选逻辑 - 保留原有分页及业务逻辑处理流程 --- .../ruoyi/oa/domain/bo/SysOaProjectBo.java | 4 +++ .../ruoyi/oa/mapper/SysOaProjectMapper.java | 2 +- .../service/impl/SysOaProjectServiceImpl.java | 26 +++++++++++++++++-- 3 files changed, 29 insertions(+), 3 deletions(-) diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaProjectBo.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaProjectBo.java index 8fd4588..7d80775 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaProjectBo.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/domain/bo/SysOaProjectBo.java @@ -206,5 +206,9 @@ public class SysOaProjectBo extends BaseEntity { //生产结项状态 private Integer productStatus; + + //时间筛选字段 + private Date beginCreateTime; + private Date endCreateTime; } diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java index 2a3fec6..057c37d 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/mapper/SysOaProjectMapper.java @@ -40,7 +40,7 @@ public interface SysOaProjectMapper extends BaseMapperPlus selectProjectDetails(@Param("projectId") Long projectId); - Page selectVoPlus(@Param("page") Page build,@Param(Constants.WRAPPER) LambdaQueryWrapper lqw); + Page selectVoPlus(@Param("page") Page build,@Param(Constants.WRAPPER) QueryWrapper lqw); Page selectFileVoList(@Param("page") Page build, @Param(Constants.WRAPPER) QueryWrapper sysOaProjectQueryWrapper); diff --git a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java index fe99ecb..deb1aab 100644 --- a/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java +++ b/ruoyi-oa/src/main/java/com/ruoyi/oa/service/impl/SysOaProjectServiceImpl.java @@ -159,8 +159,8 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { */ @Override public TableDataInfo queryPageList(SysOaProjectBo bo, PageQuery pageQuery) { - LambdaQueryWrapper lqw = buildQueryWrapper(bo); - Page result = baseMapper.selectVoPlus(pageQuery.build(), lqw); + QueryWrapper qw = buildAliasPQueryWrapper(bo); + Page result = baseMapper.selectVoPlus(pageQuery.build(), qw); // 获取实时汇率 BigDecimal currentExchangeRate = exchangeRateService.getCurrentUsdExchangeRate(); @@ -184,6 +184,28 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService { return TableDataInfo.build(result); } + private QueryWrapper buildAliasPQueryWrapper(SysOaProjectBo bo) { + Map params = bo.getParams(); + QueryWrapper qw = Wrappers.query(); + qw.like(StringUtils.isNotBlank(bo.getProjectName()), "p.project_name", bo.getProjectName()); + qw.like(StringUtils.isNotBlank(bo.getProjectNum()), "p.project_num", bo.getProjectNum()); + qw.like(StringUtils.isNotBlank(bo.getProjectCode()), "p.project_code", bo.getProjectCode()); + qw.eq(bo.getProductStatus() != null, "p.product_status", bo.getProductStatus()); + qw.eq(bo.getTradeType() != null, "p.trade_type", bo.getTradeType()); + if (bo.getPrePay() != null && bo.getPrePay() > 0) { + qw.gt("p.pre_pay", 0); + } + qw.eq(StringUtils.isNotBlank(bo.getProjectType()), "p.project_type", bo.getProjectType()); + qw.eq(StringUtils.isNotBlank(bo.getProjectStatus()), "p.project_status", bo.getProjectStatus()); + qw.eq(StringUtils.isNotBlank(bo.getCreateBy()), "p.create_by", bo.getCreateBy()); + qw.eq(bo.getSigningCompany() != null, "p.signing_company", bo.getSigningCompany()); + if (bo.getBeginCreateTime() != null && bo.getEndCreateTime() != null) { + qw.between("p.create_time", bo.getBeginCreateTime(), bo.getEndCreateTime()); + } + qw.eq(bo.getCustomerId() != null, "p.customer_id", bo.getCustomerId()); + qw.orderByDesc("p.is_top").orderByDesc("p.create_time"); + return qw; + } /** * 查询项目管理列表