feat(oa): 增加项目查询时间筛选功能

- 在 SysOaProjectBo 中新增 beginCreateTime 和 endCreateTime 字段用于时间筛选
- 修改 SysOaProjectMapper 中 selectVoPlus 方法参数类型为 QueryWrapper
- 替换 LambdaQueryWrapper 为 QueryWrapper 以支持别名查询
- 新增 buildAliasPQueryWrapper 方法构建带表别名的查询条件
- 增加对创建时间范围的筛选逻辑
- 保留原有分页及业务逻辑处理流程
This commit is contained in:
2025-12-13 10:04:24 +08:00
parent b0b6e0f64e
commit 4fdf79669b
3 changed files with 29 additions and 3 deletions

View File

@@ -206,5 +206,9 @@ public class SysOaProjectBo extends BaseEntity {
//生产结项状态
private Integer productStatus;
//时间筛选字段
private Date beginCreateTime;
private Date endCreateTime;
}

View File

@@ -40,7 +40,7 @@ public interface SysOaProjectMapper extends BaseMapperPlus<SysOaProjectMapper, S
Map<String, Object> selectProjectDetails(@Param("projectId") Long projectId);
Page<SysOaProjectVo> selectVoPlus(@Param("page") Page<SysOaProjectVo> build,@Param(Constants.WRAPPER) LambdaQueryWrapper<SysOaProject> lqw);
Page<SysOaProjectVo> selectVoPlus(@Param("page") Page<SysOaProjectVo> build,@Param(Constants.WRAPPER) QueryWrapper<SysOaProject> lqw);
Page<SysOaProjectVo> selectFileVoList(@Param("page") Page<Object> build, @Param(Constants.WRAPPER) QueryWrapper<SysOaProject> sysOaProjectQueryWrapper);

View File

@@ -159,8 +159,8 @@ public class SysOaProjectServiceImpl implements ISysOaProjectService {
*/
@Override
public TableDataInfo<SysOaProjectVo> queryPageList(SysOaProjectBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<SysOaProject> lqw = buildQueryWrapper(bo);
Page<SysOaProjectVo> result = baseMapper.selectVoPlus(pageQuery.build(), lqw);
QueryWrapper<SysOaProject> qw = buildAliasPQueryWrapper(bo);
Page<SysOaProjectVo> 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<SysOaProject> buildAliasPQueryWrapper(SysOaProjectBo bo) {
Map<String, Object> params = bo.getParams();
QueryWrapper<SysOaProject> 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;
}
/**
* 查询项目管理列表