feat(hrm): 增加项目关联功能到各类申请模块

- 在请假申请、报销申请、用印申请和出差申请中添加项目ID字段
- 扩展VO类以包含完整的项目信息展示字段
- 新增带项目信息查询的数据库映射方法
- 更新MyBatis XML配置文件中的结果映射和SQL查询
- 修改服务层实现以支持关联项目信息的查询操作
- 为各种申请类型的列表和分页查询增加项目过滤条件
This commit is contained in:
2026-02-05 13:28:52 +08:00
parent a29415d9a0
commit 8628a2fb83
28 changed files with 807 additions and 20 deletions

View File

@@ -19,6 +19,7 @@ public class HrmLeaveReq extends BaseEntity implements Serializable {
@TableId
private Long bizId;
private Long empId;
private Long projectId;
private String leaveType;
private Date startTime;
private Date endTime;

View File

@@ -19,6 +19,8 @@ public class HrmReimburseReq extends BaseEntity {
private Long empId;
private Long projectId;
private String reimburseType;
private BigDecimal totalAmount;

View File

@@ -26,6 +26,9 @@ public class HrmSealReq extends BaseEntity implements Serializable {
/** 申请人ID */
private Long empId;
/** 项目ID */
private Long projectId;
/** 用印类型(公章/合同章/财务章等) */
private String sealType;

View File

@@ -18,6 +18,7 @@ public class HrmTravelReq extends BaseEntity {
@TableId
private Long bizId;
private Long empId;
private Long projectId;
private Date startTime;
private Date endTime;
private String travelType;

View File

@@ -18,6 +18,8 @@ public class HrmLeaveReqBo extends BaseEntity {
@NotNull(message = "员工ID不能为空")
private Long empId;
private Long projectId;
@NotBlank(message = "请假类型不能为空")
private String leaveType;

View File

@@ -16,6 +16,8 @@ public class HrmReimburseReqBo extends BaseEntity {
@NotNull(message = "员工ID不能为空")
private Long empId;
private Long projectId;
private String reimburseType;
@NotNull(message = "报销总金额不能为空")

View File

@@ -21,6 +21,9 @@ public class HrmSealReqBo extends BaseEntity {
@NotNull(message = "申请人不能为空")
private Long empId;
/** 项目ID */
private Long projectId;
/** 用印类型 */
@NotBlank(message = "用印类型不能为空")
private String sealType;

View File

@@ -17,6 +17,8 @@ public class HrmTravelReqBo extends BaseEntity {
@NotNull(message = "员工ID不能为空")
private Long empId;
private Long projectId;
@NotNull(message = "开始时间不能为空")
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSX", timezone = "GMT+8")
private Date startTime;

View File

@@ -15,6 +15,40 @@ public class HrmLeaveReqVo implements Serializable {
private Long bizId;
@Excel(name = "员工ID")
private Long empId;
@Excel(name = "项目ID")
private Long projectId;
@Excel(name = "项目代号")
private String projectCode;
@Excel(name = "项目名称")
private String projectName;
@Excel(name = "项目编号")
private String projectNum;
@Excel(name = "项目类型")
private String projectType;
@Excel(name = "项目地址")
private String address;
@Excel(name = "项目总款")
private java.math.BigDecimal funds;
@Excel(name = "项目负责人")
private String functionary;
@Excel(name = "开始日期")
private Date beginTime;
@Excel(name = "结束日期")
private Date finishTime;
@Excel(name = "交货期")
private String delivery;
@Excel(name = "质保期")
private String guarantee;
@Excel(name = "优先级")
private String projectGrade;
@Excel(name = "状态")
private String projectStatus;
@Excel(name = "生产结项状态")
private Integer productStatus;
@Excel(name = "项目代表色")
private String color;
@Excel(name = "客户ID")
private Long customerId;
@Excel(name = "请假类型")
private String leaveType;
@Excel(name = "开始时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")

View File

@@ -17,6 +17,57 @@ public class HrmReimburseReqVo implements Serializable {
@Excel(name = "员工ID")
private Long empId;
@Excel(name = "项目ID")
private Long projectId;
@Excel(name = "项目代号")
private String projectCode;
@Excel(name = "项目名称")
private String projectName;
@Excel(name = "项目编号")
private String projectNum;
@Excel(name = "项目类型")
private String projectType;
@Excel(name = "项目地址")
private String address;
@Excel(name = "项目总款")
private BigDecimal funds;
@Excel(name = "项目负责人")
private String functionary;
@Excel(name = "开始日期")
private Date beginTime;
@Excel(name = "结束日期")
private Date finishTime;
@Excel(name = "交货期")
private String delivery;
@Excel(name = "质保期")
private String guarantee;
@Excel(name = "优先级")
private String projectGrade;
@Excel(name = "状态")
private String projectStatus;
@Excel(name = "生产结项状态")
private Integer productStatus;
@Excel(name = "项目代表色")
private String color;
@Excel(name = "客户ID")
private Long customerId;
@Excel(name = "报销类型")
private String reimburseType;

View File

@@ -19,6 +19,57 @@ public class HrmSealReqVo implements Serializable {
@Excel(name = "申请人ID")
private Long empId;
@Excel(name = "项目ID")
private Long projectId;
@Excel(name = "项目代号")
private String projectCode;
@Excel(name = "项目名称")
private String projectName;
@Excel(name = "项目编号")
private String projectNum;
@Excel(name = "项目类型")
private String projectType;
@Excel(name = "项目地址")
private String address;
@Excel(name = "项目总款")
private java.math.BigDecimal funds;
@Excel(name = "项目负责人")
private String functionary;
@Excel(name = "开始日期")
private Date beginTime;
@Excel(name = "结束日期")
private Date finishTime;
@Excel(name = "交货期")
private String delivery;
@Excel(name = "质保期")
private String guarantee;
@Excel(name = "优先级")
private String projectGrade;
@Excel(name = "状态")
private String projectStatus;
@Excel(name = "生产结项状态")
private Integer productStatus;
@Excel(name = "项目代表色")
private String color;
@Excel(name = "客户ID")
private Long customerId;
@Excel(name = "用印类型")
private String sealType;

View File

@@ -14,6 +14,40 @@ public class HrmTravelReqVo implements Serializable {
private Long bizId;
@Excel(name = "员工ID")
private Long empId;
@Excel(name = "项目ID")
private Long projectId;
@Excel(name = "项目代号")
private String projectCode;
@Excel(name = "项目名称")
private String projectName;
@Excel(name = "项目编号")
private String projectNum;
@Excel(name = "项目类型")
private String projectType;
@Excel(name = "项目地址")
private String address;
@Excel(name = "项目总款")
private java.math.BigDecimal funds;
@Excel(name = "项目负责人")
private String functionary;
@Excel(name = "开始日期")
private Date beginTime;
@Excel(name = "结束日期")
private Date finishTime;
@Excel(name = "交货期")
private String delivery;
@Excel(name = "质保期")
private String guarantee;
@Excel(name = "优先级")
private String projectGrade;
@Excel(name = "状态")
private String projectStatus;
@Excel(name = "生产结项状态")
private Integer productStatus;
@Excel(name = "项目代表色")
private String color;
@Excel(name = "客户ID")
private Long customerId;
@Excel(name = "开始时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")
private Date startTime;
@Excel(name = "结束时间", width = 25, dateFormat = "yyyy-MM-dd HH:mm:ss")

View File

@@ -1,8 +1,20 @@
package com.ruoyi.hrm.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.hrm.domain.HrmLeaveReq;
import com.ruoyi.hrm.domain.bo.HrmLeaveReqBo;
import com.ruoyi.hrm.domain.vo.HrmLeaveReqVo;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import java.util.List;
public interface HrmLeaveReqMapper extends BaseMapperPlus<HrmLeaveReqMapper, HrmLeaveReq, HrmLeaveReqVo> {
HrmLeaveReqVo selectVoWithProjectById(@Param("bizId") Long bizId);
List<HrmLeaveReqVo> selectVoWithProjectByPage(IPage<HrmLeaveReqVo> page, @Param("bo") HrmLeaveReqBo bo);
List<HrmLeaveReqVo> selectVoWithProjectList(@Param("bo") HrmLeaveReqBo bo);
}

View File

@@ -1,9 +1,20 @@
package com.ruoyi.hrm.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.hrm.domain.HrmReimburseReq;
import com.ruoyi.hrm.domain.bo.HrmReimburseReqBo;
import com.ruoyi.hrm.domain.vo.HrmReimburseReqVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface HrmReimburseReqMapper extends BaseMapperPlus<HrmReimburseReqMapper, HrmReimburseReq, HrmReimburseReqVo> {
HrmReimburseReqVo selectVoWithProjectById(@Param("bizId") Long bizId);
List<HrmReimburseReqVo> selectVoWithProjectByPage(IPage<HrmReimburseReqVo> page, @Param("bo") HrmReimburseReqBo bo);
List<HrmReimburseReqVo> selectVoWithProjectList(@Param("bo") HrmReimburseReqBo bo);
}

View File

@@ -1,11 +1,22 @@
package com.ruoyi.hrm.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.hrm.domain.HrmSealReq;
import com.ruoyi.hrm.domain.bo.HrmSealReqBo;
import com.ruoyi.hrm.domain.vo.HrmSealReqVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* 用印申请 Mapper
*/
public interface HrmSealReqMapper extends BaseMapperPlus<HrmSealReqMapper, HrmSealReq, HrmSealReqVo> {
HrmSealReqVo selectVoWithProjectById(@Param("bizId") Long bizId);
List<HrmSealReqVo> selectVoWithProjectByPage(IPage<HrmSealReqVo> page, @Param("bo") HrmSealReqBo bo);
List<HrmSealReqVo> selectVoWithProjectList(@Param("bo") HrmSealReqBo bo);
}

View File

@@ -1,8 +1,19 @@
package com.ruoyi.hrm.mapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ruoyi.common.core.mapper.BaseMapperPlus;
import com.ruoyi.hrm.domain.HrmTravelReq;
import com.ruoyi.hrm.domain.bo.HrmTravelReqBo;
import com.ruoyi.hrm.domain.vo.HrmTravelReqVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface HrmTravelReqMapper extends BaseMapperPlus<HrmTravelReqMapper, HrmTravelReq, HrmTravelReqVo> {
HrmTravelReqVo selectVoWithProjectById(@Param("bizId") Long bizId);
List<HrmTravelReqVo> selectVoWithProjectByPage(IPage<HrmTravelReqVo> page, @Param("bo") HrmTravelReqBo bo);
List<HrmTravelReqVo> selectVoWithProjectList(@Param("bo") HrmTravelReqBo bo);
}

View File

@@ -16,6 +16,8 @@ public interface IHrmLeaveReqService {
List<HrmLeaveReqVo> queryList(HrmLeaveReqBo bo);
List<HrmLeaveReqVo> queryListWithProject(HrmLeaveReqBo bo);
Boolean insertByBo(HrmLeaveReqBo bo);
Boolean updateByBo(HrmLeaveReqBo bo);

View File

@@ -16,6 +16,8 @@ public interface IHrmReimburseReqService {
List<HrmReimburseReqVo> queryList(HrmReimburseReqBo bo);
List<HrmReimburseReqVo> queryListWithProject(HrmReimburseReqBo bo);
Boolean insertByBo(HrmReimburseReqBo bo);
Boolean updateByBo(HrmReimburseReqBo bo);
@@ -23,3 +25,4 @@ public interface IHrmReimburseReqService {
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
}

View File

@@ -17,6 +17,8 @@ public interface IHrmSealReqService {
List<HrmSealReqVo> queryList(HrmSealReqBo bo);
List<HrmSealReqVo> queryListWithProject(HrmSealReqBo bo);
Boolean insertByBo(HrmSealReqBo bo);
Boolean updateByBo(HrmSealReqBo bo);

View File

@@ -16,6 +16,8 @@ public interface IHrmTravelReqService {
List<HrmTravelReqVo> queryList(HrmTravelReqBo bo);
List<HrmTravelReqVo> queryListWithProject(HrmTravelReqBo bo);
Boolean insertByBo(HrmTravelReqBo bo);
Boolean updateByBo(HrmTravelReqBo bo);

View File

@@ -9,6 +9,7 @@ import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.helper.LoginHelper;
import com.ruoyi.hrm.domain.HrmFlowTemplate;
import com.ruoyi.hrm.domain.HrmLeaveReq;
import com.ruoyi.hrm.domain.HrmLeaveReq;
import com.ruoyi.hrm.domain.bo.HrmFlowStartBo;
import com.ruoyi.hrm.domain.bo.HrmLeaveReqBo;
import com.ruoyi.hrm.domain.vo.HrmLeaveReqVo;
@@ -33,20 +34,24 @@ public class HrmLeaveReqServiceImpl implements IHrmLeaveReqService {
@Override
public HrmLeaveReqVo queryById(Long bizId) {
return baseMapper.selectVoById(bizId);
return baseMapper.selectVoWithProjectById(bizId);
}
@Override
public TableDataInfo<HrmLeaveReqVo> queryPageList(HrmLeaveReqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmLeaveReq> lqw = buildQueryWrapper(bo);
Page<HrmLeaveReqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<HrmLeaveReqVo> result = pageQuery.build();
result.setRecords(baseMapper.selectVoWithProjectByPage(result, bo));
return TableDataInfo.build(result);
}
@Override
public List<HrmLeaveReqVo> queryList(HrmLeaveReqBo bo) {
LambdaQueryWrapper<HrmLeaveReq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
return baseMapper.selectVoWithProjectList(bo);
}
@Override
public List<HrmLeaveReqVo> queryListWithProject(HrmLeaveReqBo bo) {
return baseMapper.selectVoWithProjectList(bo);
}
@Override
@@ -114,6 +119,7 @@ public class HrmLeaveReqServiceImpl implements IHrmLeaveReqService {
LambdaQueryWrapper<HrmLeaveReq> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBizId() != null, HrmLeaveReq::getBizId, bo.getBizId());
lqw.eq(bo.getEmpId() != null, HrmLeaveReq::getEmpId, bo.getEmpId());
lqw.eq(bo.getProjectId() != null, HrmLeaveReq::getProjectId, bo.getProjectId());
lqw.eq(bo.getLeaveType() != null, HrmLeaveReq::getLeaveType, bo.getLeaveType());
lqw.eq(bo.getStatus() != null, HrmLeaveReq::getStatus, bo.getStatus());
lqw.eq(bo.getStartTime() != null, HrmLeaveReq::getStartTime, bo.getStartTime());

View File

@@ -33,20 +33,24 @@ public class HrmReimburseReqServiceImpl implements IHrmReimburseReqService {
@Override
public HrmReimburseReqVo queryById(Long bizId) {
return baseMapper.selectVoById(bizId);
return baseMapper.selectVoWithProjectById(bizId);
}
@Override
public TableDataInfo<HrmReimburseReqVo> queryPageList(HrmReimburseReqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmReimburseReq> lqw = buildQueryWrapper(bo);
Page<HrmReimburseReqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<HrmReimburseReqVo> result = pageQuery.build();
result.setRecords(baseMapper.selectVoWithProjectByPage(result, bo));
return TableDataInfo.build(result);
}
@Override
public List<HrmReimburseReqVo> queryList(HrmReimburseReqBo bo) {
LambdaQueryWrapper<HrmReimburseReq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
return baseMapper.selectVoWithProjectList(bo);
}
@Override
public List<HrmReimburseReqVo> queryListWithProject(HrmReimburseReqBo bo) {
return baseMapper.selectVoWithProjectList(bo);
}
@Override
@@ -95,6 +99,7 @@ public class HrmReimburseReqServiceImpl implements IHrmReimburseReqService {
LambdaQueryWrapper<HrmReimburseReq> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBizId() != null, HrmReimburseReq::getBizId, bo.getBizId());
lqw.eq(bo.getEmpId() != null, HrmReimburseReq::getEmpId, bo.getEmpId());
lqw.eq(bo.getProjectId() != null, HrmReimburseReq::getProjectId, bo.getProjectId());
lqw.eq(bo.getReimburseType() != null, HrmReimburseReq::getReimburseType, bo.getReimburseType());
lqw.eq(bo.getStatus() != null, HrmReimburseReq::getStatus, bo.getStatus());
return lqw;

View File

@@ -50,20 +50,24 @@ public class HrmSealReqServiceImpl implements IHrmSealReqService {
@Override
public HrmSealReqVo queryById(Long bizId) {
return baseMapper.selectVoById(bizId);
return baseMapper.selectVoWithProjectById(bizId);
}
@Override
public TableDataInfo<HrmSealReqVo> queryPageList(HrmSealReqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmSealReq> lqw = buildQueryWrapper(bo);
Page<HrmSealReqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<HrmSealReqVo> result = pageQuery.build();
result.setRecords(baseMapper.selectVoWithProjectByPage(result, bo));
return TableDataInfo.build(result);
}
@Override
public List<HrmSealReqVo> queryList(HrmSealReqBo bo) {
LambdaQueryWrapper<HrmSealReq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
return baseMapper.selectVoWithProjectList(bo);
}
@Override
public List<HrmSealReqVo> queryListWithProject(HrmSealReqBo bo) {
return baseMapper.selectVoWithProjectList(bo);
}
@Override
@@ -151,6 +155,7 @@ public class HrmSealReqServiceImpl implements IHrmSealReqService {
LambdaQueryWrapper<HrmSealReq> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBizId() != null, HrmSealReq::getBizId, bo.getBizId());
lqw.eq(bo.getEmpId() != null, HrmSealReq::getEmpId, bo.getEmpId());
lqw.eq(bo.getProjectId() != null, HrmSealReq::getProjectId, bo.getProjectId());
lqw.eq(bo.getSealType() != null, HrmSealReq::getSealType, bo.getSealType());
lqw.eq(bo.getStatus() != null, HrmSealReq::getStatus, bo.getStatus());
lqw.orderByDesc(HrmSealReq::getCreateTime);

View File

@@ -33,20 +33,24 @@ public class HrmTravelReqServiceImpl implements IHrmTravelReqService {
@Override
public HrmTravelReqVo queryById(Long bizId) {
return baseMapper.selectVoById(bizId);
return baseMapper.selectVoWithProjectById(bizId);
}
@Override
public TableDataInfo<HrmTravelReqVo> queryPageList(HrmTravelReqBo bo, PageQuery pageQuery) {
LambdaQueryWrapper<HrmTravelReq> lqw = buildQueryWrapper(bo);
Page<HrmTravelReqVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
Page<HrmTravelReqVo> result = pageQuery.build();
result.setRecords(baseMapper.selectVoWithProjectByPage(result, bo));
return TableDataInfo.build(result);
}
@Override
public List<HrmTravelReqVo> queryList(HrmTravelReqBo bo) {
LambdaQueryWrapper<HrmTravelReq> lqw = buildQueryWrapper(bo);
return baseMapper.selectVoList(lqw);
return baseMapper.selectVoWithProjectList(bo);
}
@Override
public List<HrmTravelReqVo> queryListWithProject(HrmTravelReqBo bo) {
return baseMapper.selectVoWithProjectList(bo);
}
@Override
@@ -99,6 +103,7 @@ public class HrmTravelReqServiceImpl implements IHrmTravelReqService {
LambdaQueryWrapper<HrmTravelReq> lqw = Wrappers.lambdaQuery();
lqw.eq(bo.getBizId() != null, HrmTravelReq::getBizId, bo.getBizId());
lqw.eq(bo.getEmpId() != null, HrmTravelReq::getEmpId, bo.getEmpId());
lqw.eq(bo.getProjectId() != null, HrmTravelReq::getProjectId, bo.getProjectId());
lqw.eq(bo.getStatus() != null, HrmTravelReq::getStatus, bo.getStatus());
lqw.eq(bo.getStartTime() != null, HrmTravelReq::getStartTime, bo.getStartTime());
return lqw;

View File

@@ -4,6 +4,7 @@
<resultMap id="BaseResultMap" type="com.ruoyi.hrm.domain.HrmLeaveReq">
<id column="biz_id" property="bizId"/>
<result column="emp_id" property="empId"/>
<result column="project_id" property="projectId"/>
<result column="leave_type" property="leaveType"/>
<result column="start_time" property="startTime"/>
<result column="end_time" property="endTime"/>
@@ -19,4 +20,134 @@
<result column="update_time" property="updateTime"/>
<result column="del_flag" property="delFlag"/>
</resultMap>
<resultMap id="VoResultMap" type="com.ruoyi.hrm.domain.vo.HrmLeaveReqVo" extends="BaseResultMap">
<result column="project_code" property="projectCode"/>
<result column="project_name" property="projectName"/>
<result column="project_num" property="projectNum"/>
<result column="project_type" property="projectType"/>
<result column="address" property="address"/>
<result column="funds" property="funds"/>
<result column="functionary" property="functionary"/>
<result column="begin_time" property="beginTime"/>
<result column="finish_time" property="finishTime"/>
<result column="delivery" property="delivery"/>
<result column="guarantee" property="guarantee"/>
<result column="project_grade" property="projectGrade"/>
<result column="project_status" property="projectStatus"/>
<result column="product_status" property="productStatus"/>
<result column="color" property="color"/>
<result column="customerId" property="customerId"/>
</resultMap>
<select id="selectVoWithProjectById" resultMap="VoResultMap">
SELECT
l.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_leave_req l
LEFT JOIN sys_oa_project p ON l.project_id = p.project_id
WHERE l.biz_id = #{bizId}
AND l.del_flag = 0
</select>
<select id="selectVoWithProjectByPage" resultMap="VoResultMap">
SELECT
l.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_leave_req l
LEFT JOIN sys_oa_project p ON l.project_id = p.project_id
WHERE l.del_flag = 0
<if test="bo.bizId != null">
AND l.biz_id = #{bo.bizId}
</if>
<if test="bo.empId != null">
AND l.emp_id = #{bo.empId}
</if>
<if test="bo.projectId != null">
AND l.project_id = #{bo.projectId}
</if>
<if test="bo.leaveType != null and bo.leaveType != ''">
AND l.leave_type = #{bo.leaveType}
</if>
<if test="bo.status != null and bo.status != ''">
AND l.status = #{bo.status}
</if>
<if test="bo.startTime != null">
AND l.start_time = #{bo.startTime}
</if>
ORDER BY l.create_time DESC
</select>
<select id="selectVoWithProjectList" resultMap="VoResultMap">
SELECT
l.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_leave_req l
LEFT JOIN sys_oa_project p ON l.project_id = p.project_id
WHERE l.del_flag = 0
<if test="bo.bizId != null">
AND l.biz_id = #{bo.bizId}
</if>
<if test="bo.empId != null">
AND l.emp_id = #{bo.empId}
</if>
<if test="bo.projectId != null">
AND l.project_id = #{bo.projectId}
</if>
<if test="bo.leaveType != null and bo.leaveType != ''">
AND l.leave_type = #{bo.leaveType}
</if>
<if test="bo.status != null and bo.status != ''">
AND l.status = #{bo.status}
</if>
<if test="bo.startTime != null">
AND l.start_time = #{bo.startTime}
</if>
ORDER BY l.create_time DESC
</select>
</mapper>

View File

@@ -0,0 +1,145 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.hrm.mapper.HrmReimburseReqMapper">
<resultMap id="BaseResultMap" type="com.ruoyi.hrm.domain.HrmReimburseReq">
<id column="biz_id" property="bizId"/>
<result column="emp_id" property="empId"/>
<result column="project_id" property="projectId"/>
<result column="reimburse_type" property="reimburseType"/>
<result column="total_amount" property="totalAmount"/>
<result column="reason" property="reason"/>
<result column="status" property="status"/>
<result column="accessory_apply_ids" property="accessoryApplyIds"/>
<result column="accessory_receipt_ids" property="accessoryReceiptIds"/>
<result column="remark" property="remark"/>
<result column="create_by" property="createBy"/>
<result column="create_time" property="createTime"/>
<result column="update_by" property="updateBy"/>
<result column="update_time" property="updateTime"/>
<result column="del_flag" property="delFlag"/>
</resultMap>
<resultMap id="VoResultMap" type="com.ruoyi.hrm.domain.vo.HrmReimburseReqVo" extends="BaseResultMap">
<result column="project_code" property="projectCode"/>
<result column="project_name" property="projectName"/>
<result column="project_num" property="projectNum"/>
<result column="project_type" property="projectType"/>
<result column="address" property="address"/>
<result column="funds" property="funds"/>
<result column="functionary" property="functionary"/>
<result column="begin_time" property="beginTime"/>
<result column="finish_time" property="finishTime"/>
<result column="delivery" property="delivery"/>
<result column="guarantee" property="guarantee"/>
<result column="project_grade" property="projectGrade"/>
<result column="project_status" property="projectStatus"/>
<result column="product_status" property="productStatus"/>
<result column="color" property="color"/>
<result column="customerId" property="customerId"/>
</resultMap>
<select id="selectVoWithProjectById" resultMap="VoResultMap">
SELECT
r.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_reimburse_req r
LEFT JOIN sys_oa_project p ON r.project_id = p.project_id
WHERE r.biz_id = #{bizId}
AND r.del_flag = 0
</select>
<select id="selectVoWithProjectByPage" resultMap="VoResultMap">
SELECT
r.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_reimburse_req r
LEFT JOIN sys_oa_project p ON r.project_id = p.project_id
WHERE r.del_flag = 0
<if test="bo.bizId != null">
AND r.biz_id = #{bo.bizId}
</if>
<if test="bo.empId != null">
AND r.emp_id = #{bo.empId}
</if>
<if test="bo.projectId != null">
AND r.project_id = #{bo.projectId}
</if>
<if test="bo.reimburseType != null and bo.reimburseType != ''">
AND r.reimburse_type = #{bo.reimburseType}
</if>
<if test="bo.status != null and bo.status != ''">
AND r.status = #{bo.status}
</if>
ORDER BY r.create_time DESC
</select>
<select id="selectVoWithProjectList" resultMap="VoResultMap">
SELECT
r.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_reimburse_req r
LEFT JOIN sys_oa_project p ON r.project_id = p.project_id
WHERE r.del_flag = 0
<if test="bo.bizId != null">
AND r.biz_id = #{bo.bizId}
</if>
<if test="bo.empId != null">
AND r.emp_id = #{bo.empId}
</if>
<if test="bo.projectId != null">
AND r.project_id = #{bo.projectId}
</if>
<if test="bo.reimburseType != null and bo.reimburseType != ''">
AND r.reimburse_type = #{bo.reimburseType}
</if>
<if test="bo.status != null and bo.status != ''">
AND r.status = #{bo.status}
</if>
ORDER BY r.create_time DESC
</select>
</mapper>

View File

@@ -4,6 +4,7 @@
<resultMap id="BaseResultMap" type="com.ruoyi.hrm.domain.HrmSealReq">
<id column="biz_id" property="bizId"/>
<result column="emp_id" property="empId"/>
<result column="project_id" property="projectId"/>
<result column="seal_type" property="sealType"/>
<result column="purpose" property="purpose"/>
<result column="apply_file_ids" property="applyFileIds"/>
@@ -18,4 +19,128 @@
<result column="update_time" property="updateTime"/>
<result column="del_flag" property="delFlag"/>
</resultMap>
<resultMap id="VoResultMap" type="com.ruoyi.hrm.domain.vo.HrmSealReqVo" extends="BaseResultMap">
<result column="project_code" property="projectCode"/>
<result column="project_name" property="projectName"/>
<result column="project_num" property="projectNum"/>
<result column="project_type" property="projectType"/>
<result column="address" property="address"/>
<result column="funds" property="funds"/>
<result column="functionary" property="functionary"/>
<result column="begin_time" property="beginTime"/>
<result column="finish_time" property="finishTime"/>
<result column="delivery" property="delivery"/>
<result column="guarantee" property="guarantee"/>
<result column="project_grade" property="projectGrade"/>
<result column="project_status" property="projectStatus"/>
<result column="product_status" property="productStatus"/>
<result column="color" property="color"/>
<result column="customerId" property="customerId"/>
</resultMap>
<select id="selectVoWithProjectById" resultMap="VoResultMap">
SELECT
s.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_seal_req s
LEFT JOIN sys_oa_project p ON s.project_id = p.project_id
WHERE s.biz_id = #{bizId}
AND s.del_flag = 0
</select>
<select id="selectVoWithProjectByPage" resultMap="VoResultMap">
SELECT
s.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_seal_req s
LEFT JOIN sys_oa_project p ON s.project_id = p.project_id
WHERE s.del_flag = 0
<if test="bo.bizId != null">
AND s.biz_id = #{bo.bizId}
</if>
<if test="bo.empId != null">
AND s.emp_id = #{bo.empId}
</if>
<if test="bo.projectId != null">
AND s.project_id = #{bo.projectId}
</if>
<if test="bo.sealType != null and bo.sealType != ''">
AND s.seal_type = #{bo.sealType}
</if>
<if test="bo.status != null and bo.status != ''">
AND s.status = #{bo.status}
</if>
ORDER BY s.create_time DESC
</select>
<select id="selectVoWithProjectList" resultMap="VoResultMap">
SELECT
s.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_seal_req s
LEFT JOIN sys_oa_project p ON s.project_id = p.project_id
WHERE s.del_flag = 0
<if test="bo.bizId != null">
AND s.biz_id = #{bo.bizId}
</if>
<if test="bo.empId != null">
AND s.emp_id = #{bo.empId}
</if>
<if test="bo.projectId != null">
AND s.project_id = #{bo.projectId}
</if>
<if test="bo.sealType != null and bo.sealType != ''">
AND s.seal_type = #{bo.sealType}
</if>
<if test="bo.status != null and bo.status != ''">
AND s.status = #{bo.status}
</if>
ORDER BY s.create_time DESC
</select>
</mapper>

View File

@@ -4,6 +4,7 @@
<resultMap id="BaseResultMap" type="com.ruoyi.hrm.domain.HrmTravelReq">
<id column="biz_id" property="bizId"/>
<result column="emp_id" property="empId"/>
<result column="project_id" property="projectId"/>
<result column="start_time" property="startTime"/>
<result column="end_time" property="endTime"/>
<result column="travel_type" property="travelType"/>
@@ -23,4 +24,128 @@
<result column="update_time" property="updateTime"/>
<result column="del_flag" property="delFlag"/>
</resultMap>
<resultMap id="VoResultMap" type="com.ruoyi.hrm.domain.vo.HrmTravelReqVo" extends="BaseResultMap">
<result column="project_code" property="projectCode"/>
<result column="project_name" property="projectName"/>
<result column="project_num" property="projectNum"/>
<result column="project_type" property="projectType"/>
<result column="address" property="address"/>
<result column="funds" property="funds"/>
<result column="functionary" property="functionary"/>
<result column="begin_time" property="beginTime"/>
<result column="finish_time" property="finishTime"/>
<result column="delivery" property="delivery"/>
<result column="guarantee" property="guarantee"/>
<result column="project_grade" property="projectGrade"/>
<result column="project_status" property="projectStatus"/>
<result column="product_status" property="productStatus"/>
<result column="color" property="color"/>
<result column="customerId" property="customerId"/>
</resultMap>
<select id="selectVoWithProjectById" resultMap="VoResultMap">
SELECT
t.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_travel_req t
LEFT JOIN sys_oa_project p ON t.project_id = p.project_id
WHERE t.biz_id = #{bizId}
AND t.del_flag = 0
</select>
<select id="selectVoWithProjectByPage" resultMap="VoResultMap">
SELECT
t.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_travel_req t
LEFT JOIN sys_oa_project p ON t.project_id = p.project_id
WHERE t.del_flag = 0
<if test="bo.bizId != null">
AND t.biz_id = #{bo.bizId}
</if>
<if test="bo.empId != null">
AND t.emp_id = #{bo.empId}
</if>
<if test="bo.projectId != null">
AND t.project_id = #{bo.projectId}
</if>
<if test="bo.status != null and bo.status != ''">
AND t.status = #{bo.status}
</if>
<if test="bo.startTime != null">
AND t.start_time = #{bo.startTime}
</if>
ORDER BY t.create_time DESC
</select>
<select id="selectVoWithProjectList" resultMap="VoResultMap">
SELECT
t.*,
p.project_code,
p.project_name,
p.project_num,
p.project_type,
p.address,
p.funds,
p.functionary,
p.begin_time,
p.finish_time,
p.delivery,
p.guarantee,
p.project_grade,
p.project_status,
p.product_status,
p.color,
p.customer_id AS customerId
FROM hrm_travel_req t
LEFT JOIN sys_oa_project p ON t.project_id = p.project_id
WHERE t.del_flag = 0
<if test="bo.bizId != null">
AND t.biz_id = #{bo.bizId}
</if>
<if test="bo.empId != null">
AND t.emp_id = #{bo.empId}
</if>
<if test="bo.projectId != null">
AND t.project_id = #{bo.projectId}
</if>
<if test="bo.status != null and bo.status != ''">
AND t.status = #{bo.status}
</if>
<if test="bo.startTime != null">
AND t.start_time = #{bo.startTime}
</if>
ORDER BY t.create_time DESC
</select>
</mapper>