feat(wms): 添加通用审批和员工外出申请功能
- 新增 WmsApproval 实体类、VO类、BO类及对应映射文件 - 创建 IWmsApprovalService 接口及其实现类 WmsApprovalServiceImpl - 实现 WmsApprovalController 控制器提供CRUD操作接口 - 新增 WmsOutRequest 实体类、VO类、BO类及对应映射文件 - 创建 IWmsOutRequestService 接口及其实现类 WmsOutRequestServiceImpl - 实现 WmsOutRequestController 控制器提供CRUD操作接口 - 配置MyBatis映射文件实现数据库操作 - 添加分页查询、导出、新增、修改、删除等完整功能
This commit is contained in:
@@ -0,0 +1,99 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsApprovalVo;
|
||||
import com.klp.domain.bo.WmsApprovalBo;
|
||||
import com.klp.service.IWmsApprovalService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 通用审批(支持请假/外出等申请的审批)
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-01-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/approval")
|
||||
public class WmsApprovalController extends BaseController {
|
||||
|
||||
private final IWmsApprovalService iWmsApprovalService;
|
||||
|
||||
/**
|
||||
* 查询通用审批(支持请假/外出等申请的审批)列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsApprovalVo> list(WmsApprovalBo bo, PageQuery pageQuery) {
|
||||
return iWmsApprovalService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出通用审批(支持请假/外出等申请的审批)列表
|
||||
*/
|
||||
@Log(title = "通用审批(支持请假/外出等申请的审批)", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsApprovalBo bo, HttpServletResponse response) {
|
||||
List<WmsApprovalVo> list = iWmsApprovalService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "通用审批(支持请假/外出等申请的审批)", WmsApprovalVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取通用审批(支持请假/外出等申请的审批)详细信息
|
||||
*
|
||||
* @param approvalId 主键
|
||||
*/
|
||||
@GetMapping("/{approvalId}")
|
||||
public R<WmsApprovalVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long approvalId) {
|
||||
return R.ok(iWmsApprovalService.queryById(approvalId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
@Log(title = "通用审批(支持请假/外出等申请的审批)", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsApprovalBo bo) {
|
||||
return toAjax(iWmsApprovalService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
@Log(title = "通用审批(支持请假/外出等申请的审批)", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsApprovalBo bo) {
|
||||
return toAjax(iWmsApprovalService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除通用审批(支持请假/外出等申请的审批)
|
||||
*
|
||||
* @param approvalIds 主键串
|
||||
*/
|
||||
@Log(title = "通用审批(支持请假/外出等申请的审批)", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{approvalIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] approvalIds) {
|
||||
return toAjax(iWmsApprovalService.deleteWithValidByIds(Arrays.asList(approvalIds), true));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,99 @@
|
||||
package com.klp.controller;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Arrays;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import javax.validation.constraints.*;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import com.klp.common.annotation.RepeatSubmit;
|
||||
import com.klp.common.annotation.Log;
|
||||
import com.klp.common.core.controller.BaseController;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.klp.common.core.domain.R;
|
||||
import com.klp.common.core.validate.AddGroup;
|
||||
import com.klp.common.core.validate.EditGroup;
|
||||
import com.klp.common.enums.BusinessType;
|
||||
import com.klp.common.utils.poi.ExcelUtil;
|
||||
import com.klp.domain.vo.WmsOutRequestVo;
|
||||
import com.klp.domain.bo.WmsOutRequestBo;
|
||||
import com.klp.service.IWmsOutRequestService;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
|
||||
/**
|
||||
* 员工外出申请
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-01-20
|
||||
*/
|
||||
@Validated
|
||||
@RequiredArgsConstructor
|
||||
@RestController
|
||||
@RequestMapping("/wms/outRequest")
|
||||
public class WmsOutRequestController extends BaseController {
|
||||
|
||||
private final IWmsOutRequestService iWmsOutRequestService;
|
||||
|
||||
/**
|
||||
* 查询员工外出申请列表
|
||||
*/
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<WmsOutRequestVo> list(WmsOutRequestBo bo, PageQuery pageQuery) {
|
||||
return iWmsOutRequestService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 导出员工外出申请列表
|
||||
*/
|
||||
@Log(title = "员工外出申请", businessType = BusinessType.EXPORT)
|
||||
@PostMapping("/export")
|
||||
public void export(WmsOutRequestBo bo, HttpServletResponse response) {
|
||||
List<WmsOutRequestVo> list = iWmsOutRequestService.queryList(bo);
|
||||
ExcelUtil.exportExcel(list, "员工外出申请", WmsOutRequestVo.class, response);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取员工外出申请详细信息
|
||||
*
|
||||
* @param outId 主键
|
||||
*/
|
||||
@GetMapping("/{outId}")
|
||||
public R<WmsOutRequestVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long outId) {
|
||||
return R.ok(iWmsOutRequestService.queryById(outId));
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增员工外出申请
|
||||
*/
|
||||
@Log(title = "员工外出申请", businessType = BusinessType.INSERT)
|
||||
@RepeatSubmit()
|
||||
@PostMapping()
|
||||
public R<Void> add(@Validated(AddGroup.class) @RequestBody WmsOutRequestBo bo) {
|
||||
return toAjax(iWmsOutRequestService.insertByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改员工外出申请
|
||||
*/
|
||||
@Log(title = "员工外出申请", businessType = BusinessType.UPDATE)
|
||||
@RepeatSubmit()
|
||||
@PutMapping()
|
||||
public R<Void> edit(@Validated(EditGroup.class) @RequestBody WmsOutRequestBo bo) {
|
||||
return toAjax(iWmsOutRequestService.updateByBo(bo));
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除员工外出申请
|
||||
*
|
||||
* @param outIds 主键串
|
||||
*/
|
||||
@Log(title = "员工外出申请", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{outIds}")
|
||||
public R<Void> remove(@NotEmpty(message = "主键不能为空")
|
||||
@PathVariable Long[] outIds) {
|
||||
return toAjax(iWmsOutRequestService.deleteWithValidByIds(Arrays.asList(outIds), true));
|
||||
}
|
||||
}
|
||||
63
klp-wms/src/main/java/com/klp/domain/WmsApproval.java
Normal file
63
klp-wms/src/main/java/com/klp/domain/WmsApproval.java
Normal 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;
|
||||
|
||||
}
|
||||
76
klp-wms/src/main/java/com/klp/domain/WmsOutRequest.java
Normal file
76
klp-wms/src/main/java/com/klp/domain/WmsOutRequest.java
Normal 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;
|
||||
|
||||
}
|
||||
63
klp-wms/src/main/java/com/klp/domain/bo/WmsApprovalBo.java
Normal file
63
klp-wms/src/main/java/com/klp/domain/bo/WmsApprovalBo.java
Normal 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;
|
||||
|
||||
|
||||
}
|
||||
79
klp-wms/src/main/java/com/klp/domain/bo/WmsOutRequestBo.java
Normal file
79
klp-wms/src/main/java/com/klp/domain/bo/WmsOutRequestBo.java
Normal 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;
|
||||
|
||||
|
||||
}
|
||||
76
klp-wms/src/main/java/com/klp/domain/vo/WmsApprovalVo.java
Normal file
76
klp-wms/src/main/java/com/klp/domain/vo/WmsApprovalVo.java
Normal 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;
|
||||
|
||||
|
||||
}
|
||||
95
klp-wms/src/main/java/com/klp/domain/vo/WmsOutRequestVo.java
Normal file
95
klp-wms/src/main/java/com/klp/domain/vo/WmsOutRequestVo.java
Normal 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;
|
||||
|
||||
|
||||
}
|
||||
15
klp-wms/src/main/java/com/klp/mapper/WmsApprovalMapper.java
Normal file
15
klp-wms/src/main/java/com/klp/mapper/WmsApprovalMapper.java
Normal file
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsApproval;
|
||||
import com.klp.domain.vo.WmsApprovalVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 通用审批(支持请假/外出等申请的审批)Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-01-20
|
||||
*/
|
||||
public interface WmsApprovalMapper extends BaseMapperPlus<WmsApprovalMapper, WmsApproval, WmsApprovalVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.klp.mapper;
|
||||
|
||||
import com.klp.domain.WmsOutRequest;
|
||||
import com.klp.domain.vo.WmsOutRequestVo;
|
||||
import com.klp.common.core.mapper.BaseMapperPlus;
|
||||
|
||||
/**
|
||||
* 员工外出申请Mapper接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-01-20
|
||||
*/
|
||||
public interface WmsOutRequestMapper extends BaseMapperPlus<WmsOutRequestMapper, WmsOutRequest, WmsOutRequestVo> {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.service;
|
||||
|
||||
import com.klp.domain.WmsApproval;
|
||||
import com.klp.domain.vo.WmsApprovalVo;
|
||||
import com.klp.domain.bo.WmsApprovalBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 通用审批(支持请假/外出等申请的审批)Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-01-20
|
||||
*/
|
||||
public interface IWmsApprovalService {
|
||||
|
||||
/**
|
||||
* 查询通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
WmsApprovalVo queryById(Long approvalId);
|
||||
|
||||
/**
|
||||
* 查询通用审批(支持请假/外出等申请的审批)列表
|
||||
*/
|
||||
TableDataInfo<WmsApprovalVo> queryPageList(WmsApprovalBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询通用审批(支持请假/外出等申请的审批)列表
|
||||
*/
|
||||
List<WmsApprovalVo> queryList(WmsApprovalBo bo);
|
||||
|
||||
/**
|
||||
* 新增通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
Boolean insertByBo(WmsApprovalBo bo);
|
||||
|
||||
/**
|
||||
* 修改通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
Boolean updateByBo(WmsApprovalBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除通用审批(支持请假/外出等申请的审批)信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.klp.service;
|
||||
|
||||
import com.klp.domain.WmsOutRequest;
|
||||
import com.klp.domain.vo.WmsOutRequestVo;
|
||||
import com.klp.domain.bo.WmsOutRequestBo;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 员工外出申请Service接口
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-01-20
|
||||
*/
|
||||
public interface IWmsOutRequestService {
|
||||
|
||||
/**
|
||||
* 查询员工外出申请
|
||||
*/
|
||||
WmsOutRequestVo queryById(Long outId);
|
||||
|
||||
/**
|
||||
* 查询员工外出申请列表
|
||||
*/
|
||||
TableDataInfo<WmsOutRequestVo> queryPageList(WmsOutRequestBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询员工外出申请列表
|
||||
*/
|
||||
List<WmsOutRequestVo> queryList(WmsOutRequestBo bo);
|
||||
|
||||
/**
|
||||
* 新增员工外出申请
|
||||
*/
|
||||
Boolean insertByBo(WmsOutRequestBo bo);
|
||||
|
||||
/**
|
||||
* 修改员工外出申请
|
||||
*/
|
||||
Boolean updateByBo(WmsOutRequestBo bo);
|
||||
|
||||
/**
|
||||
* 校验并批量删除员工外出申请信息
|
||||
*/
|
||||
Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
|
||||
}
|
||||
@@ -0,0 +1,114 @@
|
||||
package com.klp.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.domain.bo.WmsApprovalBo;
|
||||
import com.klp.domain.vo.WmsApprovalVo;
|
||||
import com.klp.domain.WmsApproval;
|
||||
import com.klp.mapper.WmsApprovalMapper;
|
||||
import com.klp.service.IWmsApprovalService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 通用审批(支持请假/外出等申请的审批)Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-01-20
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class WmsApprovalServiceImpl implements IWmsApprovalService {
|
||||
|
||||
private final WmsApprovalMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
@Override
|
||||
public WmsApprovalVo queryById(Long approvalId){
|
||||
return baseMapper.selectVoById(approvalId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询通用审批(支持请假/外出等申请的审批)列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WmsApprovalVo> queryPageList(WmsApprovalBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<WmsApproval> lqw = buildQueryWrapper(bo);
|
||||
Page<WmsApprovalVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询通用审批(支持请假/外出等申请的审批)列表
|
||||
*/
|
||||
@Override
|
||||
public List<WmsApprovalVo> queryList(WmsApprovalBo bo) {
|
||||
LambdaQueryWrapper<WmsApproval> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<WmsApproval> buildQueryWrapper(WmsApprovalBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<WmsApproval> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApplyType()), WmsApproval::getApplyType, bo.getApplyType());
|
||||
lqw.eq(bo.getApplyId() != null, WmsApproval::getApplyId, bo.getApplyId());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getApproverName()), WmsApproval::getApproverName, bo.getApproverName());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApprovalStatus()), WmsApproval::getApprovalStatus, bo.getApprovalStatus());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getApprovalOpinion()), WmsApproval::getApprovalOpinion, bo.getApprovalOpinion());
|
||||
lqw.eq(bo.getApprovalTime() != null, WmsApproval::getApprovalTime, bo.getApprovalTime());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(WmsApprovalBo bo) {
|
||||
WmsApproval add = BeanUtil.toBean(bo, WmsApproval.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setApprovalId(add.getApprovalId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(WmsApprovalBo bo) {
|
||||
WmsApproval update = BeanUtil.toBean(bo, WmsApproval.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(WmsApproval entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除通用审批(支持请假/外出等申请的审批)
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,117 @@
|
||||
package com.klp.service.impl;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.klp.common.core.page.TableDataInfo;
|
||||
import com.klp.common.core.domain.PageQuery;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||
import com.klp.common.utils.StringUtils;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
import com.klp.domain.bo.WmsOutRequestBo;
|
||||
import com.klp.domain.vo.WmsOutRequestVo;
|
||||
import com.klp.domain.WmsOutRequest;
|
||||
import com.klp.mapper.WmsOutRequestMapper;
|
||||
import com.klp.service.IWmsOutRequestService;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 员工外出申请Service业务层处理
|
||||
*
|
||||
* @author klp
|
||||
* @date 2026-01-20
|
||||
*/
|
||||
@RequiredArgsConstructor
|
||||
@Service
|
||||
public class WmsOutRequestServiceImpl implements IWmsOutRequestService {
|
||||
|
||||
private final WmsOutRequestMapper baseMapper;
|
||||
|
||||
/**
|
||||
* 查询员工外出申请
|
||||
*/
|
||||
@Override
|
||||
public WmsOutRequestVo queryById(Long outId){
|
||||
return baseMapper.selectVoById(outId);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询员工外出申请列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<WmsOutRequestVo> queryPageList(WmsOutRequestBo bo, PageQuery pageQuery) {
|
||||
LambdaQueryWrapper<WmsOutRequest> lqw = buildQueryWrapper(bo);
|
||||
Page<WmsOutRequestVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
|
||||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询员工外出申请列表
|
||||
*/
|
||||
@Override
|
||||
public List<WmsOutRequestVo> queryList(WmsOutRequestBo bo) {
|
||||
LambdaQueryWrapper<WmsOutRequest> lqw = buildQueryWrapper(bo);
|
||||
return baseMapper.selectVoList(lqw);
|
||||
}
|
||||
|
||||
private LambdaQueryWrapper<WmsOutRequest> buildQueryWrapper(WmsOutRequestBo bo) {
|
||||
Map<String, Object> params = bo.getParams();
|
||||
LambdaQueryWrapper<WmsOutRequest> lqw = Wrappers.lambdaQuery();
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOutType()), WmsOutRequest::getOutType, bo.getOutType());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getApplicantName()), WmsOutRequest::getApplicantName, bo.getApplicantName());
|
||||
lqw.like(StringUtils.isNotBlank(bo.getApplicantDeptName()), WmsOutRequest::getApplicantDeptName, bo.getApplicantDeptName());
|
||||
lqw.eq(bo.getStartTime() != null, WmsOutRequest::getStartTime, bo.getStartTime());
|
||||
lqw.eq(bo.getEndTime() != null, WmsOutRequest::getEndTime, bo.getEndTime());
|
||||
lqw.eq(bo.getOutHours() != null, WmsOutRequest::getOutHours, bo.getOutHours());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOutPlace()), WmsOutRequest::getOutPlace, bo.getOutPlace());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getOutReason()), WmsOutRequest::getOutReason, bo.getOutReason());
|
||||
lqw.eq(StringUtils.isNotBlank(bo.getAttachmentUrls()), WmsOutRequest::getAttachmentUrls, bo.getAttachmentUrls());
|
||||
return lqw;
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增员工外出申请
|
||||
*/
|
||||
@Override
|
||||
public Boolean insertByBo(WmsOutRequestBo bo) {
|
||||
WmsOutRequest add = BeanUtil.toBean(bo, WmsOutRequest.class);
|
||||
validEntityBeforeSave(add);
|
||||
boolean flag = baseMapper.insert(add) > 0;
|
||||
if (flag) {
|
||||
bo.setOutId(add.getOutId());
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改员工外出申请
|
||||
*/
|
||||
@Override
|
||||
public Boolean updateByBo(WmsOutRequestBo bo) {
|
||||
WmsOutRequest update = BeanUtil.toBean(bo, WmsOutRequest.class);
|
||||
validEntityBeforeSave(update);
|
||||
return baseMapper.updateById(update) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存前的数据校验
|
||||
*/
|
||||
private void validEntityBeforeSave(WmsOutRequest entity){
|
||||
//TODO 做一些数据校验,如唯一约束
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除员工外出申请
|
||||
*/
|
||||
@Override
|
||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||
if(isValid){
|
||||
//TODO 做一些业务上的校验,判断是否需要校验
|
||||
}
|
||||
return baseMapper.deleteBatchIds(ids) > 0;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user