feat(wms): 添加通用审批和员工外出申请功能

- 新增 WmsApproval 实体类、VO类、BO类及对应映射文件
- 创建 IWmsApprovalService 接口及其实现类 WmsApprovalServiceImpl
- 实现 WmsApprovalController 控制器提供CRUD操作接口
- 新增 WmsOutRequest 实体类、VO类、BO类及对应映射文件
- 创建 IWmsOutRequestService 接口及其实现类 WmsOutRequestServiceImpl
- 实现 WmsOutRequestController 控制器提供CRUD操作接口
- 配置MyBatis映射文件实现数据库操作
- 添加分页查询、导出、新增、修改、删除等完整功能
This commit is contained in:
2026-01-20 13:48:07 +08:00
parent 2a8da19b4a
commit 8a93b8e10c
16 changed files with 1060 additions and 0 deletions

View File

@@ -0,0 +1,63 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 通用审批(支持请假/外出等申请的审批)对象 wms_approval
*
* @author klp
* @date 2026-01-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_approval")
public class WmsApproval extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 审批记录主键ID
*/
@TableId(value = "approval_id")
private Long approvalId;
/**
* 申请类型leave=请假out=外出)
*/
private String applyType;
/**
* 关联的申请ID请假ID/外出ID
*/
private Long applyId;
/**
* 审批人姓名
*/
private String approverName;
/**
* 审批状态(待审批/已同意/已驳回/已撤销)
*/
private String approvalStatus;
/**
* 审批意见
*/
private String approvalOpinion;
/**
* 审批时间
*/
private Date approvalTime;
/**
* 逻辑删除标识0=正常1=已删
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,76 @@
package com.klp.domain;
import com.baomidou.mybatisplus.annotation.*;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 员工外出申请对象 wms_out_request
*
* @author klp
* @date 2026-01-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("wms_out_request")
public class WmsOutRequest extends BaseEntity {
private static final long serialVersionUID=1L;
/**
* 主键ID
*/
@TableId(value = "out_id")
private Long outId;
/**
* 外出类型(办公/办事/访客/其他)
*/
private String outType;
/**
* 外出人姓名
*/
private String applicantName;
/**
* 外出人部门名称
*/
private String applicantDeptName;
/**
* 外出开始时间
*/
private Date startTime;
/**
* 外出结束时间
*/
private Date endTime;
/**
* 外出时长(小时)
*/
private BigDecimal outHours;
/**
* 外出地点
*/
private String outPlace;
/**
* 外出原因
*/
private String outReason;
/**
* 附件(相关证明等)
*/
private String attachmentUrls;
/**
* 逻辑删除标识0=正常1=已删
*/
@TableLogic
private Integer delFlag;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,63 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 通用审批(支持请假/外出等申请的审批)业务对象 wms_approval
*
* @author klp
* @date 2026-01-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsApprovalBo extends BaseEntity {
/**
* 审批记录主键ID
*/
private Long approvalId;
/**
* 申请类型leave=请假out=外出)
*/
private String applyType;
/**
* 关联的申请ID请假ID/外出ID
*/
private Long applyId;
/**
* 审批人姓名
*/
private String approverName;
/**
* 审批状态(待审批/已同意/已驳回/已撤销)
*/
private String approvalStatus;
/**
* 审批意见
*/
private String approvalOpinion;
/**
* 审批时间
*/
private Date approvalTime;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,79 @@
package com.klp.domain.bo;
import com.klp.common.core.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
/**
* 员工外出申请业务对象 wms_out_request
*
* @author klp
* @date 2026-01-20
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class WmsOutRequestBo extends BaseEntity {
/**
* 主键ID
*/
private Long outId;
/**
* 外出类型(办公/办事/访客/其他)
*/
private String outType;
/**
* 外出人姓名
*/
private String applicantName;
/**
* 外出人部门名称
*/
private String applicantDeptName;
/**
* 外出开始时间
*/
private Date startTime;
/**
* 外出结束时间
*/
private Date endTime;
/**
* 外出时长(小时)
*/
private BigDecimal outHours;
/**
* 外出地点
*/
private String outPlace;
/**
* 外出原因
*/
private String outReason;
/**
* 附件(相关证明等)
*/
private String attachmentUrls;
/**
* 备注
*/
private String remark;
}

View File

@@ -0,0 +1,76 @@
package com.klp.domain.vo;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 通用审批(支持请假/外出等申请的审批)视图对象 wms_approval
*
* @author klp
* @date 2026-01-20
*/
@Data
@ExcelIgnoreUnannotated
public class WmsApprovalVo {
private static final long serialVersionUID = 1L;
/**
* 审批记录主键ID
*/
@ExcelProperty(value = "审批记录主键ID")
private Long approvalId;
/**
* 申请类型leave=请假out=外出)
*/
@ExcelProperty(value = "申请类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "l=eave=请假out=外出")
private String applyType;
/**
* 关联的申请ID请假ID/外出ID
*/
@ExcelProperty(value = "关联的申请ID", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "请=假ID/外出ID")
private Long applyId;
/**
* 审批人姓名
*/
@ExcelProperty(value = "审批人姓名")
private String approverName;
/**
* 审批状态(待审批/已同意/已驳回/已撤销)
*/
@ExcelProperty(value = "审批状态", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "待=审批/已同意/已驳回/已撤销")
private String approvalStatus;
/**
* 审批意见
*/
@ExcelProperty(value = "审批意见")
private String approvalOpinion;
/**
* 审批时间
*/
@ExcelProperty(value = "审批时间")
private Date approvalTime;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}

View File

@@ -0,0 +1,95 @@
package com.klp.domain.vo;
import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.klp.common.annotation.ExcelDictFormat;
import com.klp.common.convert.ExcelDictConvert;
import lombok.Data;
/**
* 员工外出申请视图对象 wms_out_request
*
* @author klp
* @date 2026-01-20
*/
@Data
@ExcelIgnoreUnannotated
public class WmsOutRequestVo {
private static final long serialVersionUID = 1L;
/**
* 主键ID
*/
@ExcelProperty(value = "主键ID")
private Long outId;
/**
* 外出类型(办公/办事/访客/其他)
*/
@ExcelProperty(value = "外出类型", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "办=公/办事/访客/其他")
private String outType;
/**
* 外出人姓名
*/
@ExcelProperty(value = "外出人姓名")
private String applicantName;
/**
* 外出人部门名称
*/
@ExcelProperty(value = "外出人部门名称")
private String applicantDeptName;
/**
* 外出开始时间
*/
@ExcelProperty(value = "外出开始时间")
private Date startTime;
/**
* 外出结束时间
*/
@ExcelProperty(value = "外出结束时间")
private Date endTime;
/**
* 外出时长(小时)
*/
@ExcelProperty(value = "外出时长", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "小=时")
private BigDecimal outHours;
/**
* 外出地点
*/
@ExcelProperty(value = "外出地点")
private String outPlace;
/**
* 外出原因
*/
@ExcelProperty(value = "外出原因")
private String outReason;
/**
* 附件(相关证明等)
*/
@ExcelProperty(value = "附件", converter = ExcelDictConvert.class)
@ExcelDictFormat(readConverterExp = "相=关证明等")
private String attachmentUrls;
/**
* 备注
*/
@ExcelProperty(value = "备注")
private String remark;
}