feat(oa): 增加项目查询时间筛选功能
- 在 SysOaProjectBo 中新增 beginCreateTime 和 endCreateTime 字段用于时间筛选 - 修改 SysOaProjectMapper 中 selectVoPlus 方法参数类型为 QueryWrapper - 替换 LambdaQueryWrapper 为 QueryWrapper 以支持别名查询 - 新增 buildAliasPQueryWrapper 方法构建带表别名的查询条件 - 增加对创建时间范围的筛选逻辑 - 保留原有分页及业务逻辑处理流程
This commit is contained in:
@@ -206,5 +206,9 @@ public class SysOaProjectBo extends BaseEntity {
|
||||
|
||||
//生产结项状态
|
||||
private Integer productStatus;
|
||||
|
||||
//时间筛选字段
|
||||
private Date beginCreateTime;
|
||||
private Date endCreateTime;
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询项目管理列表
|
||||
|
||||
Reference in New Issue
Block a user