requirement表的实现

This commit is contained in:
2025-06-28 09:57:48 +08:00
parent 36ff5ca586
commit 2d7639f670
3 changed files with 36 additions and 21 deletions

View File

@@ -6,6 +6,8 @@ import com.ruoyi.oa.domain.vo.OaRequirementsVo;
import com.ruoyi.common.core.mapper.BaseMapperPlus; import com.ruoyi.common.core.mapper.BaseMapperPlus;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import java.util.List;
/** /**
* OA 需求Mapper接口 * OA 需求Mapper接口
* *
@@ -14,4 +16,9 @@ import org.apache.ibatis.annotations.Param;
*/ */
public interface OaRequirementsMapper extends BaseMapperPlus<OaRequirementsMapper, OaRequirements, OaRequirementsVo> { public interface OaRequirementsMapper extends BaseMapperPlus<OaRequirementsMapper, OaRequirements, OaRequirementsVo> {
Page<OaRequirementsVo> selectVoListPage(Page<?> page, @Param("ew") Object lqw); Page<OaRequirementsVo> selectVoListPage(Page<?> page, @Param("ew") Object lqw);
/**
* 查询需求列表(用于导出)
*/
List<OaRequirementsVo> selectVoListForExport(@Param("ew") Object lqw);
} }

View File

@@ -1,6 +1,7 @@
package com.ruoyi.oa.service.impl; package com.ruoyi.oa.service.impl;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.domain.PageQuery; import com.ruoyi.common.core.domain.PageQuery;
@@ -44,7 +45,7 @@ public class OaRequirementsServiceImpl implements IOaRequirementsService {
*/ */
@Override @Override
public TableDataInfo<OaRequirementsVo> queryPageList(OaRequirementsBo bo, PageQuery pageQuery) { public TableDataInfo<OaRequirementsVo> queryPageList(OaRequirementsBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<OaRequirements> lqw = buildQueryWrapper(bo); QueryWrapper<OaRequirements> lqw = buildQueryWrapper(bo);
Page<OaRequirementsVo> result = baseMapper.selectVoListPage(pageQuery.build(), lqw); Page<OaRequirementsVo> result = baseMapper.selectVoListPage(pageQuery.build(), lqw);
return TableDataInfo.build(result); return TableDataInfo.build(result);
} }
@@ -54,22 +55,22 @@ public class OaRequirementsServiceImpl implements IOaRequirementsService {
*/ */
@Override @Override
public List<OaRequirementsVo> queryList(OaRequirementsBo bo) { public List<OaRequirementsVo> queryList(OaRequirementsBo bo) {
LambdaQueryWrapper<OaRequirements> lqw = buildQueryWrapper(bo); QueryWrapper<OaRequirements> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw); return baseMapper.selectVoListForExport(lqw);
} }
private LambdaQueryWrapper<OaRequirements> buildQueryWrapper(OaRequirementsBo bo) { private QueryWrapper<OaRequirements> buildQueryWrapper(OaRequirementsBo bo) {
Map<String, Object> params = bo.getParams(); QueryWrapper<OaRequirements> qw = new QueryWrapper<>();
LambdaQueryWrapper<OaRequirements> lqw = Wrappers.lambdaQuery(); qw.eq(StringUtils.isNotBlank(bo.getTitle()), "r.title", bo.getTitle());
lqw.eq(StringUtils.isNotBlank(bo.getTitle()), OaRequirements::getTitle, bo.getTitle()); qw.eq(bo.getRequesterId() != null, "r.requester_id", bo.getRequesterId());
lqw.eq(bo.getRequesterId() != null, OaRequirements::getRequesterId, bo.getRequesterId()); qw.eq(bo.getOwnerId() != null, "r.owner_id", bo.getOwnerId());
lqw.eq(bo.getOwnerId() != null, OaRequirements::getOwnerId, bo.getOwnerId()); qw.eq(bo.getProjectId() != null, "r.project_id", bo.getProjectId());
lqw.eq(bo.getProjectId() != null, OaRequirements::getProjectId, bo.getProjectId()); qw.eq(StringUtils.isNotBlank(bo.getDescription()), "r.description", bo.getDescription());
lqw.eq(StringUtils.isNotBlank(bo.getDescription()), OaRequirements::getDescription, bo.getDescription()); qw.eq(bo.getDeadline() != null, "r.deadline", bo.getDeadline());
lqw.eq(bo.getDeadline() != null, OaRequirements::getDeadline, bo.getDeadline()); qw.eq(bo.getStatus() != null, "r.status", bo.getStatus());
lqw.eq(bo.getStatus() != null, OaRequirements::getStatus, bo.getStatus()); qw.eq(StringUtils.isNotBlank(bo.getAccessory()), "r.accessory", bo.getAccessory());
lqw.eq(StringUtils.isNotBlank(bo.getAccessory()), OaRequirements::getAccessory, bo.getAccessory()); qw.eq("r.del_flag", 0);
return lqw; return qw;
} }
/** /**

View File

@@ -32,13 +32,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN sys_user u1 ON r.requester_id = u1.user_id LEFT JOIN sys_user u1 ON r.requester_id = u1.user_id
LEFT JOIN sys_user u2 ON r.owner_id = u2.user_id LEFT JOIN sys_user u2 ON r.owner_id = u2.user_id
LEFT JOIN sys_oa_project p ON r.project_id = p.project_id LEFT JOIN sys_oa_project p ON r.project_id = p.project_id
<where> ${ew.customSqlSegment}
r.del_flag = 0
<if test="ew != null and ew.sqlSegment != null">
${ew.customSqlSegment}
</if>
</where>
</select> </select>
<select id="selectVoListForExport" resultType="com.ruoyi.oa.domain.vo.OaRequirementsVo">
SELECT
r.*,
u1.nick_name AS requester_nick_name,
u2.nick_name AS owner_nick_name,
p.project_name
FROM oa_requirements r
LEFT JOIN sys_user u1 ON r.requester_id = u1.user_id
LEFT JOIN sys_user u2 ON r.owner_id = u2.user_id
LEFT JOIN sys_oa_project p ON r.project_id = p.project_id
${ew.customSqlSegment}
</select>
</mapper> </mapper>