Browse Source

请假模块改名字

dongpo 1 year ago
parent
commit
52e2b49d2d
19 changed files with 738 additions and 1373 deletions
  1. 0 124
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/holiday/OaHolidayController.java
  2. 0 100
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/holiday/vo/OaHolidayPageReqVO.java
  3. 0 124
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/holiday/vo/OaHolidayRespVO.java
  4. 0 107
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/holiday/vo/OaHolidaySaveReqVO.java
  5. 50 22
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/OaLeaveController.java
  6. 48 31
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/vo/OaLeavePageReqVO.java
  7. 67 45
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/vo/OaLeaveRespVO.java
  8. 63 32
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/vo/OaLeaveSaveReqVO.java
  9. 0 132
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/holiday/OaHolidayDO.java
  10. 50 26
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/leave/OaLeaveDO.java
  11. 1 1
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/oldLeave/BpmOALeaveDO.java
  12. 0 49
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/holiday/OaHolidayMapper.java
  13. 21 12
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/leave/OaLeaveMapper.java
  14. 0 66
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/holiday/OaHolidayService.java
  15. 0 255
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/holiday/OaHolidayServiceImpl.java
  16. 19 9
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveService.java
  17. 195 13
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.java
  18. 0 225
      yudao-module-bpm/yudao-module-bpm-biz/src/test/java/cn/iocoder/yudao/module/bpm/service/oa/holiday/OaHolidayServiceImplTest.java
  19. 224 0
      yudao-module-bpm/yudao-module-bpm-biz/src/test/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImplTest.java

+ 0 - 124
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/holiday/OaHolidayController.java

@@ -1,124 +0,0 @@
-package cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday;
-
-import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidayPageReqVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidayRespVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidaySaveReqVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
-import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.holiday.OaHolidayDO;
-import cn.iocoder.yudao.module.bpm.service.oa.holiday.OaHolidayService;
-import io.swagger.v3.oas.annotations.Operation;
-import io.swagger.v3.oas.annotations.Parameter;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import org.springframework.security.access.prepost.PreAuthorize;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.*;
-
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletResponse;
-import javax.validation.Valid;
-import java.io.IOException;
-import java.util.List;
-
-import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
-import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
-
-@Tag(name = "管理后台 - 请假流程信息")
-@RestController
-@RequestMapping("/bpm/oa-holiday")
-@Validated
-public class OaHolidayController {
-
-    @Resource
-    private OaHolidayService oaHolidayService;
-
-    @PostMapping("/start")
-    @Operation(summary = "提交或暂存请假流程信息")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-Holiday:start')")
-    public CommonResult<Long> startOaHoliday(@Valid @RequestBody OaHolidaySaveReqVO createReqVO) {
-        return success(oaHolidayService.startOaHoliday(getLoginUserId(), createReqVO));
-    }
-
-    @PostMapping("/completeTure")
-    @Operation(summary = "审批同意请假流程信息")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-entry:complete-true')")
-    public CommonResult<Long> completeTrueOaHoliday(@Valid @RequestBody BpmTaskApproveReqVO reqVO) {
-        return success(oaHolidayService.completeTrueOaHoliday(getLoginUserId(), reqVO));
-    }
-
-    @PostMapping("/completeFalse")
-    @Operation(summary = "驳回或撤回请假流程信息")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-entry:complete-false')")
-    public CommonResult<Long> completeFalseOaHoliday(@Valid @RequestBody BpmTaskApproveReqVO reqVO) {
-        return success(oaHolidayService.completeFalseOaHoliday(getLoginUserId(), reqVO));
-    }
-
-    @PostMapping("/updateComplete")
-    @Operation(summary = "驳回和撤回后再次提交或关闭请假流程信息")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-entry:update-complete')")
-    public CommonResult<Long> updateCompleteOaHoliday(@Valid @RequestBody OaHolidaySaveReqVO createReqVO) {
-        return success(oaHolidayService.updateCompleteOaHoliday(getLoginUserId(), createReqVO, createReqVO.getBpmTaskApproveReqVO()));
-    }
-
-
-    @PostMapping("/create")
-    @Operation(summary = "创建请假流程信息")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-holiday:create')")
-    public CommonResult<Long> createOaHoliday(@Valid @RequestBody OaHolidaySaveReqVO createReqVO) {
-        return success(oaHolidayService.createOaHoliday(createReqVO));
-    }
-
-    @PutMapping("/update")
-    @Operation(summary = "更新请假流程信息")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-holiday:update')")
-    public CommonResult<Boolean> updateOaHoliday(@Valid @RequestBody OaHolidaySaveReqVO updateReqVO) {
-        oaHolidayService.updateOaHoliday(updateReqVO);
-        return success(true);
-    }
-
-    @DeleteMapping("/delete")
-    @Operation(summary = "删除请假流程信息")
-    @Parameter(name = "id", description = "编号", required = true)
-    @PreAuthorize("@ss.hasPermission('bpm:oa-holiday:delete')")
-    public CommonResult<Boolean> deleteOaHoliday(@RequestParam("id") Long id) {
-        oaHolidayService.deleteOaHoliday(id);
-        return success(true);
-    }
-
-    @GetMapping("/get")
-    @Operation(summary = "获得请假流程信息")
-    @Parameter(name = "id", description = "编号", required = true, example = "1024")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-holiday:query')")
-    public CommonResult<OaHolidayRespVO> getOaHoliday(@RequestParam("id") Long id) {
-        OaHolidayDO oaHoliday = oaHolidayService.getOaHoliday(id);
-        return success(BeanUtils.toBean(oaHoliday, OaHolidayRespVO.class));
-    }
-
-    @GetMapping("/page")
-    @Operation(summary = "获得请假流程信息分页")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-holiday:query')")
-    public CommonResult<PageResult<OaHolidayRespVO>> getOaHolidayPage(@Valid OaHolidayPageReqVO pageReqVO) {
-        PageResult<OaHolidayDO> pageResult = oaHolidayService.getOaHolidayPage(pageReqVO);
-        return success(BeanUtils.toBean(pageResult, OaHolidayRespVO.class));
-    }
-
-    @GetMapping("/export-excel")
-    @Operation(summary = "导出请假流程信息 Excel")
-    @PreAuthorize("@ss.hasPermission('bpm:oa-holiday:export')")
-    @ApiAccessLog(operateType = EXPORT)
-    public void exportOaHolidayExcel(@Valid OaHolidayPageReqVO pageReqVO,
-              HttpServletResponse response) throws IOException {
-        pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
-        List<OaHolidayDO> list = oaHolidayService.getOaHolidayPage(pageReqVO).getList();
-        // 导出 Excel
-        ExcelUtils.write(response, "请假流程信息.xls", "数据", OaHolidayRespVO.class,
-                        BeanUtils.toBean(list, OaHolidayRespVO.class));
-    }
-
-}

+ 0 - 100
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/holiday/vo/OaHolidayPageReqVO.java

@@ -1,100 +0,0 @@
-package cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo;
-
-import lombok.*;
-import java.util.*;
-import io.swagger.v3.oas.annotations.media.Schema;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.time.LocalDateTime;
-
-import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
-
-@Schema(description = "管理后台 - 请假流程信息分页 Request VO")
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-public class OaHolidayPageReqVO extends PageParam {
-
-    @Schema(description = "uuid", example = "20728")
-    private String holidayId;
-
-    @Schema(description = "转正人id", example = "12388")
-    private Long employeeId;
-
-    @Schema(description = "转正人uuid", example = "31445")
-    private String employeeUuid;
-
-    @Schema(description = "转正员工姓名", example = "王五")
-    private String employeeName;
-
-    @Schema(description = "用户账号id", example = "25603")
-    private Long userId;
-
-    @Schema(description = "用户账号uuid", example = "13640")
-    private String userUuid;
-
-    @Schema(description = "部门id", example = "26110")
-    private Long deptId;
-
-    @Schema(description = "部门uuid", example = "24393")
-    private String deptUuid;
-
-    @Schema(description = "员工职位")
-    private String position;
-
-    @Schema(description = "请假类型", example = "1")
-    private String holidayType;
-
-    @Schema(description = "开始日期")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private String[] startDate;
-
-    @Schema(description = "结束日期")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private String[] endDate;
-
-    @Schema(description = "请假天数")
-    private String day;
-
-    @Schema(description = "具体到上下午,am上午 pm下午")
-    private String startTime;
-
-    @Schema(description = "具体到上下午,am上午 pm下午")
-    private String endTime;
-
-    @Schema(description = "请假原因", example = "不好")
-    private String reason;
-
-    @Schema(description = "备注")
-    private String remarks;
-
-    @Schema(description = "流程实例id", example = "26074")
-    private String procInstId;
-
-    @Schema(description = "审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)", example = "2")
-    private String auditStatus;
-
-    @Schema(description = "当前审核人用户id", example = "19230")
-    private Long currentAuditUserId;
-
-    @Schema(description = "当前审核人用户uuid", example = "30632")
-    private String currentAuditUserUuid;
-
-    @Schema(description = "当前审核人员工id", example = "7920")
-    private Long currentAuditEmployeeId;
-
-    @Schema(description = "当前审核人员工uuid", example = "18105")
-    private String currentAuditEmployeeUuid;
-
-    @Schema(description = "最后审核时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] finalAuditDate;
-
-    @Schema(description = "数据来源,0流程添加、1手动添加")
-    private String infoSource;
-
-    @Schema(description = "创建时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] createTime;
-
-}

+ 0 - 124
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/holiday/vo/OaHolidayRespVO.java

@@ -1,124 +0,0 @@
-package cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo;
-
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.time.LocalDateTime;
-import com.alibaba.excel.annotation.*;
-
-@Schema(description = "管理后台 - 请假流程信息 Response VO")
-@Data
-@ExcelIgnoreUnannotated
-public class OaHolidayRespVO {
-
-    @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26233")
-    @ExcelProperty("请假表单主键")
-    private Long id;
-
-    @Schema(description = "uuid", example = "20728")
-    @ExcelProperty("uuid")
-    private String holidayId;
-
-    @Schema(description = "转正人id", example = "12388")
-    @ExcelProperty("转正人id")
-    private Long employeeId;
-
-    @Schema(description = "转正人uuid", example = "31445")
-    @ExcelProperty("转正人uuid")
-    private String employeeUuid;
-
-    @Schema(description = "转正员工姓名", example = "王五")
-    @ExcelProperty("转正员工姓名")
-    private String employeeName;
-
-    @Schema(description = "用户账号id", example = "25603")
-    @ExcelProperty("用户账号id")
-    private Long userId;
-
-    @Schema(description = "用户账号uuid", example = "13640")
-    @ExcelProperty("用户账号uuid")
-    private String userUuid;
-
-    @Schema(description = "部门id", example = "26110")
-    @ExcelProperty("部门id")
-    private Long deptId;
-
-    @Schema(description = "部门uuid", example = "24393")
-    @ExcelProperty("部门uuid")
-    private String deptUuid;
-
-    @Schema(description = "员工职位")
-    @ExcelProperty("员工职位")
-    private String position;
-
-    @Schema(description = "请假类型", example = "1")
-    @ExcelProperty("请假类型")
-    private String holidayType;
-
-    @Schema(description = "开始日期")
-    @ExcelProperty("开始日期")
-    private String startDate;
-
-    @Schema(description = "结束日期")
-    @ExcelProperty("结束日期")
-    private String endDate;
-
-    @Schema(description = "请假天数")
-    @ExcelProperty("请假天数")
-    private String day;
-
-    @Schema(description = "具体到上下午,am上午 pm下午")
-    @ExcelProperty("具体到上下午,am上午 pm下午")
-    private String startTime;
-
-    @Schema(description = "具体到上下午,am上午 pm下午")
-    @ExcelProperty("具体到上下午,am上午 pm下午")
-    private String endTime;
-
-    @Schema(description = "请假原因", example = "不好")
-    @ExcelProperty("请假原因")
-    private String reason;
-
-    @Schema(description = "备注")
-    @ExcelProperty("备注")
-    private String remarks;
-
-    @Schema(description = "流程实例id", example = "26074")
-    @ExcelProperty("流程实例id")
-    private String procInstId;
-
-    @Schema(description = "审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)", example = "2")
-    @ExcelProperty("审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)")
-    private String auditStatus;
-
-    @Schema(description = "当前审核人用户id", example = "19230")
-    @ExcelProperty("当前审核人用户id")
-    private Long currentAuditUserId;
-
-    @Schema(description = "当前审核人用户uuid", example = "30632")
-    @ExcelProperty("当前审核人用户uuid")
-    private String currentAuditUserUuid;
-
-    @Schema(description = "当前审核人员工id", example = "7920")
-    @ExcelProperty("当前审核人员工id")
-    private Long currentAuditEmployeeId;
-
-    @Schema(description = "当前审核人员工uuid", example = "18105")
-    @ExcelProperty("当前审核人员工uuid")
-    private String currentAuditEmployeeUuid;
-
-    @Schema(description = "最后审核时间")
-    @ExcelProperty("最后审核时间")
-    private LocalDateTime finalAuditDate;
-
-    @Schema(description = "数据来源,0流程添加、1手动添加")
-    @ExcelProperty("数据来源,0流程添加、1手动添加")
-    private String infoSource;
-
-    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("创建时间")
-    private LocalDateTime createTime;
-
-}

+ 0 - 107
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/holiday/vo/OaHolidaySaveReqVO.java

@@ -1,107 +0,0 @@
-package cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo;
-
-import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
-import io.swagger.v3.oas.annotations.media.Schema;
-import lombok.*;
-import java.util.*;
-import javax.validation.constraints.*;
-import org.springframework.format.annotation.DateTimeFormat;
-import java.time.LocalDateTime;
-
-@Schema(description = "管理后台 - 请假流程信息新增/修改 Request VO")
-@Data
-public class OaHolidaySaveReqVO {
-
-    @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26233")
-    private Long id;
-
-    @Schema(description = "uuid", example = "20728")
-    private String holidayId;
-
-    @Schema(description = "转正人id", example = "12388")
-    private Long employeeId;
-
-    @Schema(description = "转正人uuid", example = "31445")
-    private String employeeUuid;
-
-    @Schema(description = "转正员工姓名", example = "王五")
-    private String employeeName;
-
-    @Schema(description = "用户账号id", example = "25603")
-    private Long userId;
-
-    @Schema(description = "用户账号uuid", example = "13640")
-    private String userUuid;
-
-    @Schema(description = "部门id", example = "26110")
-    private Long deptId;
-
-    @Schema(description = "部门uuid", example = "24393")
-    private String deptUuid;
-
-    @Schema(description = "员工职位")
-    private String position;
-
-    @Schema(description = "请假类型", example = "1")
-    private String holidayType;
-
-    @Schema(description = "开始日期")
-    private String startDate;
-
-    @Schema(description = "结束日期")
-    private String endDate;
-
-    @Schema(description = "请假天数")
-    private String day;
-
-    @Schema(description = "具体到上下午,am上午 pm下午")
-    private String startTime;
-
-    @Schema(description = "具体到上下午,am上午 pm下午")
-    private String endTime;
-
-    @Schema(description = "请假原因", example = "不好")
-    private String reason;
-
-    @Schema(description = "备注")
-    private String remarks;
-
-    @Schema(description = "流程实例id", example = "26074")
-    private String procInstId;
-
-    @Schema(description = "审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)", example = "2")
-    private String auditStatus;
-
-    @Schema(description = "当前审核人用户id", example = "19230")
-    private Long currentAuditUserId;
-
-    @Schema(description = "当前审核人用户uuid", example = "30632")
-    private String currentAuditUserUuid;
-
-    @Schema(description = "当前审核人员工id", example = "7920")
-    private Long currentAuditEmployeeId;
-
-    @Schema(description = "当前审核人员工uuid", example = "18105")
-    private String currentAuditEmployeeUuid;
-
-    @Schema(description = "最后审核时间")
-    private LocalDateTime finalAuditDate;
-
-    @Schema(description = "数据来源,0流程添加、1手动添加")
-    private String infoSource;
-
-
-    @Schema(description = "审批,true 通过,false 驳回", example = "true")
-    private Boolean auditPass;
-
-    @Schema(description = "发起人自选审批人 Map", example = " [1, 1]")
-    private List<Long> startUserSelectAssignees;
-
-    @Schema(description = "附件主键id", example = "[1, 2]")
-    private List<Long> fileIdList;
-
-    @Schema(description = "审批信息")
-    private BpmTaskApproveReqVO bpmTaskApproveReqVO;
-
-
-}

+ 50 - 22
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/OaLeaveController.java

@@ -1,34 +1,33 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.leave;
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.leave;
 
 
+import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
+import cn.iocoder.yudao.framework.common.pojo.CommonResult;
+import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveSaveReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveSaveReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
 import cn.iocoder.yudao.module.bpm.service.oa.leave.OaLeaveService;
 import cn.iocoder.yudao.module.bpm.service.oa.leave.OaLeaveService;
-import org.springframework.web.bind.annotation.*;
-import javax.annotation.Resource;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.security.access.prepost.PreAuthorize;
-import io.swagger.v3.oas.annotations.tags.Tag;
-import io.swagger.v3.oas.annotations.Parameter;
 import io.swagger.v3.oas.annotations.Operation;
 import io.swagger.v3.oas.annotations.Operation;
+import io.swagger.v3.oas.annotations.Parameter;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
 
 
-import javax.validation.*;
-import javax.servlet.http.*;
-import java.util.*;
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.Valid;
 import java.io.IOException;
 import java.io.IOException;
+import java.util.List;
 
 
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.CommonResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
 import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
-
-import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
-
-import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog;
-import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.*;
-
+import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
 
 
 @Tag(name = "管理后台 - 请假流程信息")
 @Tag(name = "管理后台 - 请假流程信息")
 @RestController
 @RestController
@@ -39,10 +38,39 @@ public class OaLeaveController {
     @Resource
     @Resource
     private OaLeaveService oaLeaveService;
     private OaLeaveService oaLeaveService;
 
 
+    @PostMapping("/start")
+    @Operation(summary = "提交或暂存请假流程信息")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-Leave:start')")
+    public CommonResult<Long> startOaLeave(@Valid @RequestBody OaLeaveSaveReqVO createReqVO) {
+        return success(oaLeaveService.startOaLeave(getLoginUserId(), createReqVO));
+    }
+
+    @PostMapping("/completeTure")
+    @Operation(summary = "审批同意请假流程信息")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-entry:complete-true')")
+    public CommonResult<Long> completeTrueOaLeave(@Valid @RequestBody BpmTaskApproveReqVO reqVO) {
+        return success(oaLeaveService.completeTrueOaLeave(getLoginUserId(), reqVO));
+    }
+
+    @PostMapping("/completeFalse")
+    @Operation(summary = "驳回或撤回请假流程信息")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-entry:complete-false')")
+    public CommonResult<Long> completeFalseOaLeave(@Valid @RequestBody BpmTaskApproveReqVO reqVO) {
+        return success(oaLeaveService.completeFalseOaLeave(getLoginUserId(), reqVO));
+    }
+
+    @PostMapping("/updateComplete")
+    @Operation(summary = "驳回和撤回后再次提交或关闭请假流程信息")
+    @PreAuthorize("@ss.hasPermission('bpm:oa-entry:update-complete')")
+    public CommonResult<Long> updateCompleteOaLeave(@Valid @RequestBody OaLeaveSaveReqVO createReqVO) {
+        return success(oaLeaveService.updateCompleteOaLeave(getLoginUserId(), createReqVO, createReqVO.getBpmTaskApproveReqVO()));
+    }
+
+
     @PostMapping("/create")
     @PostMapping("/create")
     @Operation(summary = "创建请假流程信息")
     @Operation(summary = "创建请假流程信息")
     @PreAuthorize("@ss.hasPermission('bpm:oa-leave:create')")
     @PreAuthorize("@ss.hasPermission('bpm:oa-leave:create')")
-    public CommonResult<Integer> createOaLeave(@Valid @RequestBody OaLeaveSaveReqVO createReqVO) {
+    public CommonResult<Long> createOaLeave(@Valid @RequestBody OaLeaveSaveReqVO createReqVO) {
         return success(oaLeaveService.createOaLeave(createReqVO));
         return success(oaLeaveService.createOaLeave(createReqVO));
     }
     }
 
 
@@ -58,7 +86,7 @@ public class OaLeaveController {
     @Operation(summary = "删除请假流程信息")
     @Operation(summary = "删除请假流程信息")
     @Parameter(name = "id", description = "编号", required = true)
     @Parameter(name = "id", description = "编号", required = true)
     @PreAuthorize("@ss.hasPermission('bpm:oa-leave:delete')")
     @PreAuthorize("@ss.hasPermission('bpm:oa-leave:delete')")
-    public CommonResult<Boolean> deleteOaLeave(@RequestParam("id") Integer id) {
+    public CommonResult<Boolean> deleteOaLeave(@RequestParam("id") Long id) {
         oaLeaveService.deleteOaLeave(id);
         oaLeaveService.deleteOaLeave(id);
         return success(true);
         return success(true);
     }
     }
@@ -67,7 +95,7 @@ public class OaLeaveController {
     @Operation(summary = "获得请假流程信息")
     @Operation(summary = "获得请假流程信息")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
     @Parameter(name = "id", description = "编号", required = true, example = "1024")
     @PreAuthorize("@ss.hasPermission('bpm:oa-leave:query')")
     @PreAuthorize("@ss.hasPermission('bpm:oa-leave:query')")
-    public CommonResult<OaLeaveRespVO> getOaLeave(@RequestParam("id") Integer id) {
+    public CommonResult<OaLeaveRespVO> getOaLeave(@RequestParam("id") Long id) {
         OaLeaveDO oaLeave = oaLeaveService.getOaLeave(id);
         OaLeaveDO oaLeave = oaLeaveService.getOaLeave(id);
         return success(BeanUtils.toBean(oaLeave, OaLeaveRespVO.class));
         return success(BeanUtils.toBean(oaLeave, OaLeaveRespVO.class));
     }
     }

+ 48 - 31
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/vo/OaLeavePageReqVO.java

@@ -1,7 +1,6 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo;
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo;
 
 
 import lombok.*;
 import lombok.*;
-import java.util.*;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.springframework.format.annotation.DateTimeFormat;
@@ -15,68 +14,86 @@ import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_
 @ToString(callSuper = true)
 @ToString(callSuper = true)
 public class OaLeavePageReqVO extends PageParam {
 public class OaLeavePageReqVO extends PageParam {
 
 
-    @Schema(description = "创建时间")
-    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private LocalDateTime[] createTime;
-
-    @Schema(description = "uuid", example = "17142")
+    @Schema(description = "uuid", example = "20728")
     private String leaveId;
     private String leaveId;
 
 
-    @Schema(description = "员工姓名", example = "张三")
-    private String loginName;
+    @Schema(description = "转正人id", example = "12388")
+    private Long employeeId;
+
+    @Schema(description = "转正人uuid", example = "31445")
+    private String employeeUuid;
+
+    @Schema(description = "转正员工姓名", example = "王五")
+    private String employeeName;
+
+    @Schema(description = "用户账号id", example = "25603")
+    private Long userId;
+
+    @Schema(description = "用户账号uuid", example = "13640")
+    private String userUuid;
 
 
-    @Schema(description = "员工编号", example = "18704")
-    private String loginId;
+    @Schema(description = "部门id", example = "26110")
+    private Long deptId;
 
 
-    @Schema(description = "部门", example = "26420")
-    private String deptId;
+    @Schema(description = "部门uuid", example = "24393")
+    private String deptUuid;
 
 
     @Schema(description = "员工职位")
     @Schema(description = "员工职位")
     private String position;
     private String position;
 
 
-    @Schema(description = "请假类型", example = "2")
-    private String type;
+    @Schema(description = "请假类型", example = "1")
+    private String leaveType;
 
 
-    @Schema(description = "开始时间")
+    @Schema(description = "开始日期")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private String[] startTime;
+    private String[] startDate;
 
 
-    @Schema(description = "结束时间")
+    @Schema(description = "结束日期")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private String[] endTime;
+    private String[] endDate;
 
 
     @Schema(description = "请假天数")
     @Schema(description = "请假天数")
     private String day;
     private String day;
 
 
     @Schema(description = "具体到上下午,am上午 pm下午")
     @Schema(description = "具体到上下午,am上午 pm下午")
-    private String concreteDay1;
+    private String startTime;
 
 
     @Schema(description = "具体到上下午,am上午 pm下午")
     @Schema(description = "具体到上下午,am上午 pm下午")
-    private String concreteDay2;
+    private String endTime;
 
 
-    @Schema(description = "请假原因", example = "不喜欢")
+    @Schema(description = "请假原因", example = "不")
     private String reason;
     private String reason;
 
 
     @Schema(description = "备注")
     @Schema(description = "备注")
     private String remarks;
     private String remarks;
 
 
-    @Schema(description = "流程实例id", example = "32163")
-    private String procInsId;
+    @Schema(description = "流程实例id", example = "26074")
+    private String procInstId;
 
 
-    @Schema(description = "单据状态(0:暂存,1:审批中,2:生效,4:审批完成,3:删除,5作废)", example = "1")
-    private String oaLeaveStatus;
-
-    @Schema(description = "审核状态(0:驳回,1:提交,2:审批中,4:审批完成,3:取消结束)", example = "2")
+    @Schema(description = "审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)", example = "2")
     private String auditStatus;
     private String auditStatus;
 
 
-    @Schema(description = "当前审核人编号", example = "12911")
-    private String auditLoginId;
+    @Schema(description = "当前审核人用户id", example = "19230")
+    private Long currentAuditUserId;
+
+    @Schema(description = "当前审核人用户uuid", example = "30632")
+    private String currentAuditUserUuid;
+
+    @Schema(description = "当前审核人员工id", example = "7920")
+    private Long currentAuditEmployeeId;
+
+    @Schema(description = "当前审核人员工uuid", example = "18105")
+    private String currentAuditEmployeeUuid;
 
 
     @Schema(description = "最后审核时间")
     @Schema(description = "最后审核时间")
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
     @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
-    private String[] finalAuditDate;
+    private LocalDateTime[] finalAuditDate;
 
 
-    @Schema(description = "数据来源,流程添加、手动添加")
+    @Schema(description = "数据来源,0流程添加、1手动添加")
     private String infoSource;
     private String infoSource;
 
 
+    @Schema(description = "创建时间")
+    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
+    private LocalDateTime[] createTime;
+
 }
 }

+ 67 - 45
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/vo/OaLeaveRespVO.java

@@ -2,9 +2,7 @@ package cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo;
 
 
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.*;
-import java.util.*;
-import java.util.*;
-import org.springframework.format.annotation.DateTimeFormat;
+
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import com.alibaba.excel.annotation.*;
 import com.alibaba.excel.annotation.*;
 
 
@@ -13,45 +11,57 @@ import com.alibaba.excel.annotation.*;
 @ExcelIgnoreUnannotated
 @ExcelIgnoreUnannotated
 public class OaLeaveRespVO {
 public class OaLeaveRespVO {
 
 
-    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @ExcelProperty("创建时间")
-    private LocalDateTime createTime;
-
-    @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "11541")
+    @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26233")
     @ExcelProperty("请假表单主键")
     @ExcelProperty("请假表单主键")
-    private Integer id;
+    private Long id;
 
 
-    @Schema(description = "uuid", example = "17142")
+    @Schema(description = "uuid", example = "20728")
     @ExcelProperty("uuid")
     @ExcelProperty("uuid")
     private String leaveId;
     private String leaveId;
 
 
-    @Schema(description = "员工姓名", example = "张三")
-    @ExcelProperty("员工姓名")
-    private String loginName;
+    @Schema(description = "转正人id", example = "12388")
+    @ExcelProperty("转正人id")
+    private Long employeeId;
+
+    @Schema(description = "转正人uuid", example = "31445")
+    @ExcelProperty("转正人uuid")
+    private String employeeUuid;
 
 
-    @Schema(description = "员工编号", example = "18704")
-    @ExcelProperty("员工编号")
-    private String loginId;
+    @Schema(description = "转正员工姓名", example = "王五")
+    @ExcelProperty("转正员工姓名")
+    private String employeeName;
 
 
-    @Schema(description = "部门", example = "26420")
-    @ExcelProperty("部门")
-    private String deptId;
+    @Schema(description = "用户账号id", example = "25603")
+    @ExcelProperty("用户账号id")
+    private Long userId;
+
+    @Schema(description = "用户账号uuid", example = "13640")
+    @ExcelProperty("用户账号uuid")
+    private String userUuid;
+
+    @Schema(description = "部门id", example = "26110")
+    @ExcelProperty("部门id")
+    private Long deptId;
+
+    @Schema(description = "部门uuid", example = "24393")
+    @ExcelProperty("部门uuid")
+    private String deptUuid;
 
 
     @Schema(description = "员工职位")
     @Schema(description = "员工职位")
     @ExcelProperty("员工职位")
     @ExcelProperty("员工职位")
     private String position;
     private String position;
 
 
-    @Schema(description = "请假类型", example = "2")
+    @Schema(description = "请假类型", example = "1")
     @ExcelProperty("请假类型")
     @ExcelProperty("请假类型")
-    private String type;
+    private String leaveType;
 
 
-    @Schema(description = "开始时间")
-    @ExcelProperty("开始时间")
-    private String startTime;
+    @Schema(description = "开始日期")
+    @ExcelProperty("开始日期")
+    private String startDate;
 
 
-    @Schema(description = "结束时间")
-    @ExcelProperty("结束时间")
-    private String endTime;
+    @Schema(description = "结束日期")
+    @ExcelProperty("结束日期")
+    private String endDate;
 
 
     @Schema(description = "请假天数")
     @Schema(description = "请假天数")
     @ExcelProperty("请假天数")
     @ExcelProperty("请假天数")
@@ -59,13 +69,13 @@ public class OaLeaveRespVO {
 
 
     @Schema(description = "具体到上下午,am上午 pm下午")
     @Schema(description = "具体到上下午,am上午 pm下午")
     @ExcelProperty("具体到上下午,am上午 pm下午")
     @ExcelProperty("具体到上下午,am上午 pm下午")
-    private String concreteDay1;
+    private String startTime;
 
 
     @Schema(description = "具体到上下午,am上午 pm下午")
     @Schema(description = "具体到上下午,am上午 pm下午")
     @ExcelProperty("具体到上下午,am上午 pm下午")
     @ExcelProperty("具体到上下午,am上午 pm下午")
-    private String concreteDay2;
+    private String endTime;
 
 
-    @Schema(description = "请假原因", example = "不喜欢")
+    @Schema(description = "请假原因", example = "不")
     @ExcelProperty("请假原因")
     @ExcelProperty("请假原因")
     private String reason;
     private String reason;
 
 
@@ -73,28 +83,40 @@ public class OaLeaveRespVO {
     @ExcelProperty("备注")
     @ExcelProperty("备注")
     private String remarks;
     private String remarks;
 
 
-    @Schema(description = "流程实例id", example = "32163")
+    @Schema(description = "流程实例id", example = "26074")
     @ExcelProperty("流程实例id")
     @ExcelProperty("流程实例id")
-    private String procInsId;
-
-    @Schema(description = "单据状态(0:暂存,1:审批中,2:生效,4:审批完成,3:删除,5作废)", example = "1")
-    @ExcelProperty("单据状态(0:暂存,1:审批中,2:生效,4:审批完成,3:删除,5作废)")
-    private String oaLeaveStatus;
+    private String procInstId;
 
 
-    @Schema(description = "审核状态(0:驳回,1:提交,2:审批中,4:审批完成,3:取消结束)", example = "2")
-    @ExcelProperty("审核状态(0:驳回,1:提交,2:审批中,4:审批完成,3:取消结束)")
+    @Schema(description = "审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)", example = "2")
+    @ExcelProperty("审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)")
     private String auditStatus;
     private String auditStatus;
 
 
-    @Schema(description = "当前审核人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12911")
-    @ExcelProperty("当前审核人编号")
-    private String auditLoginId;
+    @Schema(description = "当前审核人用户id", example = "19230")
+    @ExcelProperty("当前审核人用户id")
+    private Long currentAuditUserId;
+
+    @Schema(description = "当前审核人用户uuid", example = "30632")
+    @ExcelProperty("当前审核人用户uuid")
+    private String currentAuditUserUuid;
+
+    @Schema(description = "当前审核人员工id", example = "7920")
+    @ExcelProperty("当前审核人员工id")
+    private Long currentAuditEmployeeId;
 
 
-    @Schema(description = "最后审核时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @Schema(description = "当前审核人员工uuid", example = "18105")
+    @ExcelProperty("当前审核人员工uuid")
+    private String currentAuditEmployeeUuid;
+
+    @Schema(description = "最后审核时间")
     @ExcelProperty("最后审核时间")
     @ExcelProperty("最后审核时间")
-    private String finalAuditDate;
+    private LocalDateTime finalAuditDate;
 
 
-    @Schema(description = "数据来源,流程添加、手动添加")
-    @ExcelProperty("数据来源,流程添加、手动添加")
+    @Schema(description = "数据来源,0流程添加、1手动添加")
+    @ExcelProperty("数据来源,0流程添加、1手动添加")
     private String infoSource;
     private String infoSource;
 
 
+    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
+    @ExcelProperty("创建时间")
+    private LocalDateTime createTime;
+
 }
 }

+ 63 - 32
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/oa/leave/vo/OaLeaveSaveReqVO.java

@@ -1,74 +1,105 @@
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo;
 package cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo;
 
 
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
 import io.swagger.v3.oas.annotations.media.Schema;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.*;
 import lombok.*;
 import java.util.*;
 import java.util.*;
-import javax.validation.constraints.*;
+import java.time.LocalDateTime;
 
 
 @Schema(description = "管理后台 - 请假流程信息新增/修改 Request VO")
 @Schema(description = "管理后台 - 请假流程信息新增/修改 Request VO")
 @Data
 @Data
 public class OaLeaveSaveReqVO {
 public class OaLeaveSaveReqVO {
 
 
-    @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "11541")
-    private Integer id;
+    @Schema(description = "请假表单主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "26233")
+    private Long id;
 
 
-    @Schema(description = "uuid", example = "17142")
+    @Schema(description = "uuid", example = "20728")
     private String leaveId;
     private String leaveId;
 
 
-    @Schema(description = "员工姓名", example = "张三")
-    private String loginName;
+    @Schema(description = "转正人id", example = "12388")
+    private Long employeeId;
 
 
-    @Schema(description = "员工编号", example = "18704")
-    private String loginId;
+    @Schema(description = "转正人uuid", example = "31445")
+    private String employeeUuid;
 
 
-    @Schema(description = "部门", example = "26420")
-    private String deptId;
+    @Schema(description = "转正员工姓名", example = "王五")
+    private String employeeName;
+
+    @Schema(description = "用户账号id", example = "25603")
+    private Long userId;
+
+    @Schema(description = "用户账号uuid", example = "13640")
+    private String userUuid;
+
+    @Schema(description = "部门id", example = "26110")
+    private Long deptId;
+
+    @Schema(description = "部门uuid", example = "24393")
+    private String deptUuid;
 
 
     @Schema(description = "员工职位")
     @Schema(description = "员工职位")
     private String position;
     private String position;
 
 
-    @Schema(description = "请假类型", example = "2")
-    private String type;
+    @Schema(description = "请假类型", example = "1")
+    private String leaveType;
 
 
-    @Schema(description = "开始时间")
-    private String startTime;
+    @Schema(description = "开始日期")
+    private String startDate;
 
 
-    @Schema(description = "结束时间")
-    private String endTime;
+    @Schema(description = "结束日期")
+    private String endDate;
 
 
     @Schema(description = "请假天数")
     @Schema(description = "请假天数")
     private String day;
     private String day;
 
 
     @Schema(description = "具体到上下午,am上午 pm下午")
     @Schema(description = "具体到上下午,am上午 pm下午")
-    private String concreteDay1;
+    private String startTime;
 
 
     @Schema(description = "具体到上下午,am上午 pm下午")
     @Schema(description = "具体到上下午,am上午 pm下午")
-    private String concreteDay2;
+    private String endTime;
 
 
-    @Schema(description = "请假原因", example = "不喜欢")
+    @Schema(description = "请假原因", example = "不")
     private String reason;
     private String reason;
 
 
     @Schema(description = "备注")
     @Schema(description = "备注")
     private String remarks;
     private String remarks;
 
 
-    @Schema(description = "流程实例id", example = "32163")
-    private String procInsId;
-
-    @Schema(description = "单据状态(0:暂存,1:审批中,2:生效,4:审批完成,3:删除,5作废)", example = "1")
-    private String oaLeaveStatus;
+    @Schema(description = "流程实例id", example = "26074")
+    private String procInstId;
 
 
-    @Schema(description = "审核状态(0:驳回,1:提交,2:审批中,4:审批完成,3:取消结束)", example = "2")
+    @Schema(description = "审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)", example = "2")
     private String auditStatus;
     private String auditStatus;
 
 
-    @Schema(description = "当前审核人编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "12911")
-    @NotEmpty(message = "当前审核人编号不能为空")
-    private String auditLoginId;
+    @Schema(description = "当前审核人用户id", example = "19230")
+    private Long currentAuditUserId;
 
 
-    @Schema(description = "最后审核时间", requiredMode = Schema.RequiredMode.REQUIRED)
-    @NotEmpty(message = "最后审核时间不能为空")
-    private String finalAuditDate;
+    @Schema(description = "当前审核人用户uuid", example = "30632")
+    private String currentAuditUserUuid;
 
 
-    @Schema(description = "数据来源,流程添加、手动添加")
+    @Schema(description = "当前审核人员工id", example = "7920")
+    private Long currentAuditEmployeeId;
+
+    @Schema(description = "当前审核人员工uuid", example = "18105")
+    private String currentAuditEmployeeUuid;
+
+    @Schema(description = "最后审核时间")
+    private LocalDateTime finalAuditDate;
+
+    @Schema(description = "数据来源,0流程添加、1手动添加")
     private String infoSource;
     private String infoSource;
 
 
+
+    @Schema(description = "审批,true 通过,false 驳回", example = "true")
+    private Boolean auditPass;
+
+    @Schema(description = "发起人自选审批人 Map", example = " [1, 1]")
+    private List<Long> startUserSelectAssignees;
+
+    @Schema(description = "附件主键id", example = "[1, 2]")
+    private List<Long> fileIdList;
+
+    @Schema(description = "审批信息")
+    private BpmTaskApproveReqVO bpmTaskApproveReqVO;
+
+
 }
 }

+ 0 - 132
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/holiday/OaHolidayDO.java

@@ -1,132 +0,0 @@
-package cn.iocoder.yudao.module.bpm.dal.dataobject.oa.holiday;
-
-import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
-
-/**
- * 请假流程信息 DO
- *
- * @author dp
- */
-@TableName("bpm_oa_holiday")
-@KeySequence("bpm_oa_holiday_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
-@Data
-@EqualsAndHashCode(callSuper = true)
-@ToString(callSuper = true)
-@Builder
-@NoArgsConstructor
-@AllArgsConstructor
-public class OaHolidayDO extends BaseDO {
-
-    /**
-     * 请假表单主键
-     */
-    @TableId
-    private Long id;
-    /**
-     * uuid
-     */
-    private String holidayId;
-    /**
-     * 转正人id
-     */
-    private Long employeeId;
-    /**
-     * 转正人uuid
-     */
-    private String employeeUuid;
-    /**
-     * 转正员工姓名
-     */
-    private String employeeName;
-    /**
-     * 用户账号id
-     */
-    private Long userId;
-    /**
-     * 用户账号uuid
-     */
-    private String userUuid;
-    /**
-     * 部门id
-     */
-    private Long deptId;
-    /**
-     * 部门uuid
-     */
-    private String deptUuid;
-    /**
-     * 员工职位
-     */
-    private String position;
-    /**
-     * 请假类型
-     */
-    private String holidayType;
-    /**
-     * 开始日期
-     */
-    private String startDate;
-    /**
-     * 结束日期
-     */
-    private String endDate;
-    /**
-     * 请假天数
-     */
-    private String day;
-    /**
-     * 具体到上下午,am上午 pm下午
-     */
-    private String startTime;
-    /**
-     * 具体到上下午,am上午 pm下午
-     */
-    private String endTime;
-    /**
-     * 请假原因
-     */
-    private String reason;
-    /**
-     * 备注
-     */
-    private String remarks;
-    /**
-     * 流程实例id
-     */
-    private String procInstId;
-    /**
-     * 审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)
-     */
-    private String auditStatus;
-    /**
-     * 当前审核人用户id
-     */
-    private Long currentAuditUserId;
-    /**
-     * 当前审核人用户uuid
-     */
-    private String currentAuditUserUuid;
-    /**
-     * 当前审核人员工id
-     */
-    private Long currentAuditEmployeeId;
-    /**
-     * 当前审核人员工uuid
-     */
-    private String currentAuditEmployeeUuid;
-    /**
-     * 最后审核时间
-     */
-    private LocalDateTime finalAuditDate;
-    /**
-     * 数据来源,0流程添加、1手动添加
-     */
-    private String infoSource;
-
-}

+ 50 - 26
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/leave/OaLeaveDO.java

@@ -1,16 +1,16 @@
 package cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave;
 package cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave;
 
 
 import lombok.*;
 import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
+
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
+
 import com.baomidou.mybatisplus.annotation.*;
 import com.baomidou.mybatisplus.annotation.*;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 
 
 /**
 /**
  * 请假流程信息 DO
  * 请假流程信息 DO
  *
  *
- * @author 芋道源码
+ * @author dp
  */
  */
 @TableName("bpm_oa_leave")
 @TableName("bpm_oa_leave")
 @KeySequence("bpm_oa_leave_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
 @KeySequence("bpm_oa_leave_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@@ -26,23 +26,39 @@ public class OaLeaveDO extends BaseDO {
      * 请假表单主键
      * 请假表单主键
      */
      */
     @TableId
     @TableId
-    private Integer id;
+    private Long id;
     /**
     /**
      * uuid
      * uuid
      */
      */
     private String leaveId;
     private String leaveId;
     /**
     /**
-     * 员工姓名
+     * 转正人id
+     */
+    private Long employeeId;
+    /**
+     * 转正人uuid
+     */
+    private String employeeUuid;
+    /**
+     * 转正员工姓名
+     */
+    private String employeeName;
+    /**
+     * 用户账号id
+     */
+    private Long userId;
+    /**
+     * 用户账号uuid
      */
      */
-    private String loginName;
+    private String userUuid;
     /**
     /**
-     * 员工编号
+     * 部门id
      */
      */
-    private String loginId;
+    private Long deptId;
     /**
     /**
-     * 部门
+     * 部门uuid
      */
      */
-    private String deptId;
+    private String deptUuid;
     /**
     /**
      * 员工职位
      * 员工职位
      */
      */
@@ -50,15 +66,15 @@ public class OaLeaveDO extends BaseDO {
     /**
     /**
      * 请假类型
      * 请假类型
      */
      */
-    private String type;
+    private String leaveType;
     /**
     /**
-     * 开始时间
+     * 开始日期
      */
      */
-    private String startTime;
+    private String startDate;
     /**
     /**
-     * 结束时间
+     * 结束日期
      */
      */
-    private String endTime;
+    private String endDate;
     /**
     /**
      * 请假天数
      * 请假天数
      */
      */
@@ -66,11 +82,11 @@ public class OaLeaveDO extends BaseDO {
     /**
     /**
      * 具体到上下午,am上午 pm下午
      * 具体到上下午,am上午 pm下午
      */
      */
-    private String concreteDay1;
+    private String startTime;
     /**
     /**
      * 具体到上下午,am上午 pm下午
      * 具体到上下午,am上午 pm下午
      */
      */
-    private String concreteDay2;
+    private String endTime;
     /**
     /**
      * 请假原因
      * 请假原因
      */
      */
@@ -82,25 +98,33 @@ public class OaLeaveDO extends BaseDO {
     /**
     /**
      * 流程实例id
      * 流程实例id
      */
      */
-    private String procInsId;
+    private String procInstId;
+    /**
+     * 审核状态(0暂存、1已提交、2审核中、3已审核、4已关闭、5已驳回)
+     */
+    private String auditStatus;
     /**
     /**
-     * 单据状态(0:暂存,1:审批中,2:生效,4:审批完成,3:删除,5作废)
+     * 当前审核人用户id
      */
      */
-    private String oaLeaveStatus;
+    private Long currentAuditUserId;
     /**
     /**
-     * 审核状态(0:驳回,1:提交,2:审批中,4:审批完成,3:取消结束)
+     * 当前审核人用户uuid
      */
      */
-    private String auditStatus;
+    private String currentAuditUserUuid;
+    /**
+     * 当前审核人员工id
+     */
+    private Long currentAuditEmployeeId;
     /**
     /**
-     * 当前审核人编号
+     * 当前审核人员工uuid
      */
      */
-    private String auditLoginId;
+    private String currentAuditEmployeeUuid;
     /**
     /**
      * 最后审核时间
      * 最后审核时间
      */
      */
-    private String finalAuditDate;
+    private LocalDateTime finalAuditDate;
     /**
     /**
-     * 数据来源,流程添加、手动添加
+     * 数据来源,0流程添加、1手动添加
      */
      */
     private String infoSource;
     private String infoSource;
 
 

+ 1 - 1
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/dataobject/oa/oldLeave/BpmOALeaveDO.java

@@ -16,7 +16,7 @@ import java.time.LocalDateTime;
  * @author jason
  * @author jason
  * @author 芋道源码
  * @author 芋道源码
  */
  */
-@TableName("bpm_oa_leave")
+@TableName("bpm_oa_leave2")
 @Data
 @Data
 @Builder
 @Builder
 @NoArgsConstructor
 @NoArgsConstructor

+ 0 - 49
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/holiday/OaHolidayMapper.java

@@ -1,49 +0,0 @@
-package cn.iocoder.yudao.module.bpm.dal.mysql.oa.holiday;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidayPageReqVO;
-import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.holiday.OaHolidayDO;
-import org.apache.ibatis.annotations.Mapper;
-
-/**
- * 请假流程信息 Mapper
- *
- * @author dp
- */
-@Mapper
-public interface OaHolidayMapper extends BaseMapperX<OaHolidayDO> {
-
-    default PageResult<OaHolidayDO> selectPage(OaHolidayPageReqVO reqVO) {
-        return selectPage(reqVO, new LambdaQueryWrapperX<OaHolidayDO>()
-                .eqIfPresent(OaHolidayDO::getHolidayId, reqVO.getHolidayId())
-                .eqIfPresent(OaHolidayDO::getEmployeeId, reqVO.getEmployeeId())
-                .eqIfPresent(OaHolidayDO::getEmployeeUuid, reqVO.getEmployeeUuid())
-                .likeIfPresent(OaHolidayDO::getEmployeeName, reqVO.getEmployeeName())
-                .eqIfPresent(OaHolidayDO::getUserId, reqVO.getUserId())
-                .eqIfPresent(OaHolidayDO::getUserUuid, reqVO.getUserUuid())
-                .eqIfPresent(OaHolidayDO::getDeptId, reqVO.getDeptId())
-                .eqIfPresent(OaHolidayDO::getDeptUuid, reqVO.getDeptUuid())
-                .eqIfPresent(OaHolidayDO::getPosition, reqVO.getPosition())
-                .eqIfPresent(OaHolidayDO::getHolidayType, reqVO.getHolidayType())
-                .betweenIfPresent(OaHolidayDO::getStartDate, reqVO.getStartDate())
-                .betweenIfPresent(OaHolidayDO::getEndDate, reqVO.getEndDate())
-                .eqIfPresent(OaHolidayDO::getDay, reqVO.getDay())
-                .eqIfPresent(OaHolidayDO::getStartTime, reqVO.getStartTime())
-                .eqIfPresent(OaHolidayDO::getEndTime, reqVO.getEndTime())
-                .eqIfPresent(OaHolidayDO::getReason, reqVO.getReason())
-                .eqIfPresent(OaHolidayDO::getRemarks, reqVO.getRemarks())
-                .eqIfPresent(OaHolidayDO::getProcInstId, reqVO.getProcInstId())
-                .eqIfPresent(OaHolidayDO::getAuditStatus, reqVO.getAuditStatus())
-                .eqIfPresent(OaHolidayDO::getCurrentAuditUserId, reqVO.getCurrentAuditUserId())
-                .eqIfPresent(OaHolidayDO::getCurrentAuditUserUuid, reqVO.getCurrentAuditUserUuid())
-                .eqIfPresent(OaHolidayDO::getCurrentAuditEmployeeId, reqVO.getCurrentAuditEmployeeId())
-                .eqIfPresent(OaHolidayDO::getCurrentAuditEmployeeUuid, reqVO.getCurrentAuditEmployeeUuid())
-                .betweenIfPresent(OaHolidayDO::getFinalAuditDate, reqVO.getFinalAuditDate())
-                .eqIfPresent(OaHolidayDO::getInfoSource, reqVO.getInfoSource())
-                .betweenIfPresent(OaHolidayDO::getCreateTime, reqVO.getCreateTime())
-                .orderByDesc(OaHolidayDO::getId));
-    }
-
-}

+ 21 - 12
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/dal/mysql/oa/leave/OaLeaveMapper.java

@@ -1,9 +1,8 @@
 package cn.iocoder.yudao.module.bpm.dal.mysql.oa.leave;
 package cn.iocoder.yudao.module.bpm.dal.mysql.oa.leave;
 
 
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
 import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
-
+import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
@@ -11,7 +10,7 @@ import org.apache.ibatis.annotations.Mapper;
 /**
 /**
  * 请假流程信息 Mapper
  * 请假流程信息 Mapper
  *
  *
- * @author 芋道源码
+ * @author dp
  */
  */
 @Mapper
 @Mapper
 public interface OaLeaveMapper extends BaseMapperX<OaLeaveDO> {
 public interface OaLeaveMapper extends BaseMapperX<OaLeaveDO> {
@@ -19,21 +18,31 @@ public interface OaLeaveMapper extends BaseMapperX<OaLeaveDO> {
     default PageResult<OaLeaveDO> selectPage(OaLeavePageReqVO reqVO) {
     default PageResult<OaLeaveDO> selectPage(OaLeavePageReqVO reqVO) {
         return selectPage(reqVO, new LambdaQueryWrapperX<OaLeaveDO>()
         return selectPage(reqVO, new LambdaQueryWrapperX<OaLeaveDO>()
                 .eqIfPresent(OaLeaveDO::getLeaveId, reqVO.getLeaveId())
                 .eqIfPresent(OaLeaveDO::getLeaveId, reqVO.getLeaveId())
-                .likeIfPresent(OaLeaveDO::getLoginName, reqVO.getLoginName())
-                .eqIfPresent(OaLeaveDO::getLoginId, reqVO.getLoginId())
+                .eqIfPresent(OaLeaveDO::getEmployeeId, reqVO.getEmployeeId())
+                .eqIfPresent(OaLeaveDO::getEmployeeUuid, reqVO.getEmployeeUuid())
+                .likeIfPresent(OaLeaveDO::getEmployeeName, reqVO.getEmployeeName())
+                .eqIfPresent(OaLeaveDO::getUserId, reqVO.getUserId())
+                .eqIfPresent(OaLeaveDO::getUserUuid, reqVO.getUserUuid())
                 .eqIfPresent(OaLeaveDO::getDeptId, reqVO.getDeptId())
                 .eqIfPresent(OaLeaveDO::getDeptId, reqVO.getDeptId())
+                .eqIfPresent(OaLeaveDO::getDeptUuid, reqVO.getDeptUuid())
                 .eqIfPresent(OaLeaveDO::getPosition, reqVO.getPosition())
                 .eqIfPresent(OaLeaveDO::getPosition, reqVO.getPosition())
-                .eqIfPresent(OaLeaveDO::getType, reqVO.getType())
-                .betweenIfPresent(OaLeaveDO::getStartTime, reqVO.getStartTime())
-                .betweenIfPresent(OaLeaveDO::getEndTime, reqVO.getEndTime())
+                .eqIfPresent(OaLeaveDO::getLeaveType, reqVO.getLeaveType())
+                .betweenIfPresent(OaLeaveDO::getStartDate, reqVO.getStartDate())
+                .betweenIfPresent(OaLeaveDO::getEndDate, reqVO.getEndDate())
                 .eqIfPresent(OaLeaveDO::getDay, reqVO.getDay())
                 .eqIfPresent(OaLeaveDO::getDay, reqVO.getDay())
-                .eqIfPresent(OaLeaveDO::getConcreteDay1, reqVO.getConcreteDay1())
-                .eqIfPresent(OaLeaveDO::getConcreteDay2, reqVO.getConcreteDay2())
+                .eqIfPresent(OaLeaveDO::getStartTime, reqVO.getStartTime())
+                .eqIfPresent(OaLeaveDO::getEndTime, reqVO.getEndTime())
                 .eqIfPresent(OaLeaveDO::getReason, reqVO.getReason())
                 .eqIfPresent(OaLeaveDO::getReason, reqVO.getReason())
                 .eqIfPresent(OaLeaveDO::getRemarks, reqVO.getRemarks())
                 .eqIfPresent(OaLeaveDO::getRemarks, reqVO.getRemarks())
-                .eqIfPresent(OaLeaveDO::getProcInsId, reqVO.getProcInsId())
-                .eqIfPresent(OaLeaveDO::getOaLeaveStatus, reqVO.getOaLeaveStatus())
+                .eqIfPresent(OaLeaveDO::getProcInstId, reqVO.getProcInstId())
+                .eqIfPresent(OaLeaveDO::getAuditStatus, reqVO.getAuditStatus())
+                .eqIfPresent(OaLeaveDO::getCurrentAuditUserId, reqVO.getCurrentAuditUserId())
+                .eqIfPresent(OaLeaveDO::getCurrentAuditUserUuid, reqVO.getCurrentAuditUserUuid())
+                .eqIfPresent(OaLeaveDO::getCurrentAuditEmployeeId, reqVO.getCurrentAuditEmployeeId())
+                .eqIfPresent(OaLeaveDO::getCurrentAuditEmployeeUuid, reqVO.getCurrentAuditEmployeeUuid())
+                .betweenIfPresent(OaLeaveDO::getFinalAuditDate, reqVO.getFinalAuditDate())
                 .eqIfPresent(OaLeaveDO::getInfoSource, reqVO.getInfoSource())
                 .eqIfPresent(OaLeaveDO::getInfoSource, reqVO.getInfoSource())
+                .betweenIfPresent(OaLeaveDO::getCreateTime, reqVO.getCreateTime())
                 .orderByDesc(OaLeaveDO::getId));
                 .orderByDesc(OaLeaveDO::getId));
     }
     }
 
 

+ 0 - 66
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/holiday/OaHolidayService.java

@@ -1,66 +0,0 @@
-package cn.iocoder.yudao.module.bpm.service.oa.holiday;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidayPageReqVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidaySaveReqVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
-import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.holiday.OaHolidayDO;
-import com.baomidou.mybatisplus.extension.service.IService;
-
-import javax.validation.Valid;
-
-/**
- * 请假流程信息 Service 接口
- *
- * @author dp
- */
-public interface OaHolidayService extends IService<OaHolidayDO> {
-
-    Long startOaHoliday(Long userId, @Valid OaHolidaySaveReqVO createReqVO);
-
-    Long completeTrueOaHoliday(Long userId, BpmTaskApproveReqVO reqVO);
-
-    Long completeFalseOaHoliday(Long userId, BpmTaskApproveReqVO reqVO);
-
-    Long updateCompleteOaHoliday(Long userId, @Valid OaHolidaySaveReqVO createReqVO, @Valid BpmTaskApproveReqVO reqVO);
-
-
-    /**
-     * 创建请假流程信息
-     *
-     * @param createReqVO 创建信息
-     * @return 编号
-     */
-    Long createOaHoliday(@Valid OaHolidaySaveReqVO createReqVO);
-
-    /**
-     * 更新请假流程信息
-     *
-     * @param updateReqVO 更新信息
-     */
-    void updateOaHoliday(@Valid OaHolidaySaveReqVO updateReqVO);
-
-    /**
-     * 删除请假流程信息
-     *
-     * @param id 编号
-     */
-    void deleteOaHoliday(Long id);
-
-    /**
-     * 获得请假流程信息
-     *
-     * @param id 编号
-     * @return 请假流程信息
-     */
-    OaHolidayDO getOaHoliday(Long id);
-
-    /**
-     * 获得请假流程信息分页
-     *
-     * @param pageReqVO 分页查询
-     * @return 请假流程信息分页
-     */
-    PageResult<OaHolidayDO> getOaHolidayPage(OaHolidayPageReqVO pageReqVO);
-
-}

+ 0 - 255
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/holiday/OaHolidayServiceImpl.java

@@ -1,255 +0,0 @@
-package cn.iocoder.yudao.module.bpm.service.oa.holiday;
-
-import cn.hutool.core.collection.CollectionUtil;
-import cn.hutool.core.util.IdUtil;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
-import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidayPageReqVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidaySaveReqVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskReturnReqVO;
-import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.holiday.OaHolidayDO;
-import cn.iocoder.yudao.module.bpm.dal.mysql.oa.holiday.OaHolidayMapper;
-import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import org.apache.commons.lang3.StringUtils;
-import org.flowable.engine.TaskService;
-import org.flowable.task.api.Task;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-import org.springframework.validation.annotation.Validated;
-
-import javax.annotation.Resource;
-import java.time.LocalDateTime;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_HOLIDAY_NOT_EXISTS;
-
-/**
- * 请假流程信息 Service 实现类
- *
- * @author dp
- */
-@Service
-@Validated
-public class OaHolidayServiceImpl extends ServiceImpl<OaHolidayMapper, OaHolidayDO> implements OaHolidayService {
-
-
-    /**
-     * OA 离职对应的流程定义 KEY
-     */
-    public static final String PROCESS_KEY = "oa_holiday";
-
-
-    @Resource
-    private OaHolidayMapper oaHolidayMapper;
-
-    @Resource
-    private BpmProcessInstanceApi processInstanceApi;
-
-    @Resource
-    private BpmTaskService bpmTaskService;
-
-    @Resource
-    private TaskService taskService;
-
-    @Override
-    @Transactional
-    public Long startOaHoliday(Long userId, OaHolidaySaveReqVO createReqVO) {
-        //判断是否已经发起流程
-        Boolean auditPass = createReqVO.getAuditPass();
-        // 创建单据uuid
-        String uuid = IdUtil.fastSimpleUUID();
-        OaHolidayDO oaHoliday = BeanUtils.toBean(createReqVO, OaHolidayDO.class);
-        if (StringUtils.isBlank(oaHoliday.getHolidayId())) {
-            oaHoliday.setHolidayId(uuid);
-        }
-        // 保存或更新表单信息
-        this.saveOrUpdate(oaHoliday);
-
-        // 提交
-        if (auditPass) {
-            // 发起 BPM 流程
-            Map<String, Object> processInstanceVariables = new HashMap<>();
-            processInstanceVariables.put("auditPass", auditPass);
-            //添加审批人信息
-            Map<String, List<Long>> startUserSelectAssignees = new HashMap<>();
-            startUserSelectAssignees.put("approver", createReqVO.getStartUserSelectAssignees());
-            String processInstanceId = processInstanceApi
-                    .createProcessInstance(userId,
-                            new BpmProcessInstanceCreateReqDTO()
-                                    .setProcessDefinitionKey(PROCESS_KEY)
-                                    .setVariables(processInstanceVariables)
-                                    .setBusinessKey(String.valueOf(oaHoliday.getId()))
-                                    .setStartUserSelectAssignees(startUserSelectAssignees));
-
-            //获取下一个审批人
-            Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
-
-            // 将工作流的编号,单据状态 最后一次审批时间 当前审批人  更新到 OA 转正中
-            oaHolidayMapper.updateById(new OaHolidayDO()
-                    .setId(oaHoliday.getId())
-                    .setProcInstId(processInstanceId)
-                    .setAuditStatus("1")
-                    .setHolidayId(uuid)
-                    .setFinalAuditDate(LocalDateTime.now())
-                    .setCurrentAuditEmployeeId(Long.valueOf(task.getAssignee())));
-
-            // TODO 发送通知
-
-        }else {
-            // 暂存,不发起流程
-            // 将单据状态 更新到 OA转正中
-            oaHolidayMapper.updateById(new OaHolidayDO()
-                    .setId(oaHoliday.getId())
-                    .setAuditStatus("0"));
-        }
-
-        // TODO 保存或更新附件uuid
-        if (CollectionUtil.isNotEmpty(createReqVO.getFileIdList())) {
-        }
-
-        // 返回
-        return oaHoliday.getId();
-    }
-    @Override
-    public Long completeTrueOaHoliday(Long userId, BpmTaskApproveReqVO reqVO) {
-        Task currentTask = bpmTaskService.getTask(reqVO.getId());
-        // 审批同意
-        bpmTaskService.approveTask(userId, reqVO);
-
-        Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
-        if (nextTask != null) {
-            LambdaUpdateWrapper<OaHolidayDO> updateWrapper = new LambdaUpdateWrapper<>();
-            updateWrapper.set(OaHolidayDO::getAuditStatus, "2")
-                    .set(OaHolidayDO::getCurrentAuditEmployeeId, nextTask.getAssignee())
-                    .set(OaHolidayDO::getFinalAuditDate, new Date())
-                    .eq(OaHolidayDO::getProcInstId, currentTask.getProcessInstanceId());
-            oaHolidayMapper.update(updateWrapper);
-        } else {
-            LambdaUpdateWrapper<OaHolidayDO> updateWrapper = new LambdaUpdateWrapper<>();
-            updateWrapper.set(OaHolidayDO::getAuditStatus, "3")
-                    .set(OaHolidayDO::getCurrentAuditEmployeeId, null)
-                    .set(OaHolidayDO::getFinalAuditDate, new Date())
-                    .eq(OaHolidayDO::getProcInstId, currentTask.getProcessInstanceId());
-            oaHolidayMapper.update(updateWrapper);
-
-            // TODO 复制业务单据信息到业务模块单据表
-
-        }
-        // 发送通知
-
-        // 返回
-        return 1L;
-    }
-
-    @Override
-    public Long completeFalseOaHoliday(Long userId, BpmTaskApproveReqVO reqVO) {
-
-        Task currentTask = bpmTaskService.getTask(reqVO.getId());
-
-        BpmTaskReturnReqVO reqVO2 = BeanUtils.toBean(reqVO, BpmTaskReturnReqVO.class);
-        reqVO2.setTargetTaskDefinitionKey("modifyApply");
-        bpmTaskService.returnTask(userId, reqVO2);
-
-        Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
-
-        // 更新单据状态,当前处理人,最后处理时间
-        LambdaUpdateWrapper<OaHolidayDO> updateWrapper = new LambdaUpdateWrapper<>();
-        updateWrapper.set(OaHolidayDO::getCurrentAuditEmployeeId, nextTask.getAssignee())
-                .set(OaHolidayDO::getFinalAuditDate, new Date())
-                .set(OaHolidayDO::getAuditStatus, "0")
-                .eq(OaHolidayDO::getProcInstId, currentTask.getProcessInstanceId());
-        oaHolidayMapper.update(updateWrapper);
-
-        // 发送通知
-
-        // 返回
-        return 1L;
-    }
-
-    @Override
-    public Long updateCompleteOaHoliday(Long userId, OaHolidaySaveReqVO createReqVO, BpmTaskApproveReqVO reqVO) {
-        // 判断是否已经发起流程
-        Boolean auditPass = createReqVO.getAuditPass();
-
-        OaHolidayDO oaHoliday = BeanUtils.toBean(createReqVO, OaHolidayDO.class);
-
-        Task currentTask = taskService.createTaskQuery().processInstanceId(oaHoliday.getProcInstId()).singleResult();
-
-        //审批通过
-        bpmTaskService.approveTask(userId, reqVO);
-
-        // 提交
-        if (auditPass) {
-            Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
-
-            oaHoliday.setAuditStatus("1");
-            oaHoliday.setCurrentAuditEmployeeId(Long.valueOf(nextTask.getAssignee()));
-            oaHoliday.setFinalAuditDate(LocalDateTime.now());
-            oaHolidayMapper.updateById(oaHoliday);
-
-        } else {
-            OaHolidayDO oaHolidayClose = new OaHolidayDO();
-            oaHolidayClose.setId(oaHoliday.getId());
-            oaHolidayClose.setAuditStatus("4");
-            oaHolidayClose.setCurrentAuditEmployeeId(null);
-            oaHolidayClose.setFinalAuditDate(LocalDateTime.now());
-            oaHolidayMapper.updateById(oaHolidayClose);
-        }
-
-        return oaHoliday.getId();
-    }
-
-
-
-    @Override
-    public Long createOaHoliday(OaHolidaySaveReqVO createReqVO) {
-        // 插入
-        OaHolidayDO oaHoliday = BeanUtils.toBean(createReqVO, OaHolidayDO.class);
-        oaHolidayMapper.insert(oaHoliday);
-        // 返回
-        return oaHoliday.getId();
-    }
-
-    @Override
-    public void updateOaHoliday(OaHolidaySaveReqVO updateReqVO) {
-        // 校验存在
-        validateOaHolidayExists(updateReqVO.getId());
-        // 更新
-        OaHolidayDO updateObj = BeanUtils.toBean(updateReqVO, OaHolidayDO.class);
-        oaHolidayMapper.updateById(updateObj);
-    }
-
-    @Override
-    public void deleteOaHoliday(Long id) {
-        // 校验存在
-        validateOaHolidayExists(id);
-        // 删除
-        oaHolidayMapper.deleteById(id);
-    }
-
-    private void validateOaHolidayExists(Long id) {
-        if (oaHolidayMapper.selectById(id) == null) {
-            throw exception(OA_HOLIDAY_NOT_EXISTS);
-        }
-    }
-
-    @Override
-    public OaHolidayDO getOaHoliday(Long id) {
-        return oaHolidayMapper.selectById(id);
-    }
-
-    @Override
-    public PageResult<OaHolidayDO> getOaHolidayPage(OaHolidayPageReqVO pageReqVO) {
-        return oaHolidayMapper.selectPage(pageReqVO);
-    }
-
-}

+ 19 - 9
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveService.java

@@ -1,19 +1,29 @@
 package cn.iocoder.yudao.module.bpm.service.oa.leave;
 package cn.iocoder.yudao.module.bpm.service.oa.leave;
 
 
-import javax.validation.*;
-
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveSaveReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveSaveReqVO;
-
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import javax.validation.Valid;
 
 
 /**
 /**
  * 请假流程信息 Service 接口
  * 请假流程信息 Service 接口
  *
  *
- * @author 芋道源码
+ * @author dp
  */
  */
-public interface OaLeaveService {
+public interface OaLeaveService extends IService<OaLeaveDO> {
+
+    Long startOaLeave(Long userId, @Valid OaLeaveSaveReqVO createReqVO);
+
+    Long completeTrueOaLeave(Long userId, BpmTaskApproveReqVO reqVO);
+
+    Long completeFalseOaLeave(Long userId, BpmTaskApproveReqVO reqVO);
+
+    Long updateCompleteOaLeave(Long userId, @Valid OaLeaveSaveReqVO createReqVO, @Valid BpmTaskApproveReqVO reqVO);
+
 
 
     /**
     /**
      * 创建请假流程信息
      * 创建请假流程信息
@@ -21,7 +31,7 @@ public interface OaLeaveService {
      * @param createReqVO 创建信息
      * @param createReqVO 创建信息
      * @return 编号
      * @return 编号
      */
      */
-    Integer createOaLeave(@Valid OaLeaveSaveReqVO createReqVO);
+    Long createOaLeave(@Valid OaLeaveSaveReqVO createReqVO);
 
 
     /**
     /**
      * 更新请假流程信息
      * 更新请假流程信息
@@ -35,7 +45,7 @@ public interface OaLeaveService {
      *
      *
      * @param id 编号
      * @param id 编号
      */
      */
-    void deleteOaLeave(Integer id);
+    void deleteOaLeave(Long id);
 
 
     /**
     /**
      * 获得请假流程信息
      * 获得请假流程信息
@@ -43,7 +53,7 @@ public interface OaLeaveService {
      * @param id 编号
      * @param id 编号
      * @return 请假流程信息
      * @return 请假流程信息
      */
      */
-    OaLeaveDO getOaLeave(Integer id);
+    OaLeaveDO getOaLeave(Long id);
 
 
     /**
     /**
      * 获得请假流程信息分页
      * 获得请假流程信息分页

+ 195 - 13
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.java

@@ -1,35 +1,217 @@
 package cn.iocoder.yudao.module.bpm.service.oa.leave;
 package cn.iocoder.yudao.module.bpm.service.oa.leave;
 
 
+import cn.hutool.core.collection.CollectionUtil;
+import cn.hutool.core.util.IdUtil;
+import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
+import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi;
+import cn.iocoder.yudao.module.bpm.api.task.dto.BpmProcessInstanceCreateReqDTO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveSaveReqVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveSaveReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveReqVO;
+import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskReturnReqVO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
 import cn.iocoder.yudao.module.bpm.dal.mysql.oa.leave.OaLeaveMapper;
 import cn.iocoder.yudao.module.bpm.dal.mysql.oa.leave.OaLeaveMapper;
+import cn.iocoder.yudao.module.bpm.service.task.BpmTaskService;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.apache.commons.lang3.StringUtils;
+import org.flowable.engine.TaskService;
+import org.flowable.task.api.Task;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
-import javax.annotation.Resource;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.validation.annotation.Validated;
 
 
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-
-
+import javax.annotation.Resource;
+import java.time.LocalDateTime;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
+import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.OA_HOLIDAY_NOT_EXISTS;
 
 
 /**
 /**
  * 请假流程信息 Service 实现类
  * 请假流程信息 Service 实现类
  *
  *
- * @author 芋道源码
+ * @author dp
  */
  */
 @Service
 @Service
 @Validated
 @Validated
-public class OaLeaveServiceImpl implements OaLeaveService {
+public class OaLeaveServiceImpl extends ServiceImpl<OaLeaveMapper, OaLeaveDO> implements OaLeaveService {
+
+
+    /**
+     * OA 离职对应的流程定义 KEY
+     */
+    public static final String PROCESS_KEY = "oa_leave";
+
 
 
     @Resource
     @Resource
     private OaLeaveMapper oaLeaveMapper;
     private OaLeaveMapper oaLeaveMapper;
 
 
+    @Resource
+    private BpmProcessInstanceApi processInstanceApi;
+
+    @Resource
+    private BpmTaskService bpmTaskService;
+
+    @Resource
+    private TaskService taskService;
+
+    @Override
+    @Transactional
+    public Long startOaLeave(Long userId, OaLeaveSaveReqVO createReqVO) {
+        //判断是否已经发起流程
+        Boolean auditPass = createReqVO.getAuditPass();
+        // 创建单据uuid
+        String uuid = IdUtil.fastSimpleUUID();
+        OaLeaveDO oaLeave = BeanUtils.toBean(createReqVO, OaLeaveDO.class);
+        if (StringUtils.isBlank(oaLeave.getLeaveId())) {
+            oaLeave.setLeaveId(uuid);
+        }
+        // 保存或更新表单信息
+        this.saveOrUpdate(oaLeave);
+
+        // 提交
+        if (auditPass) {
+            // 发起 BPM 流程
+            Map<String, Object> processInstanceVariables = new HashMap<>();
+            processInstanceVariables.put("auditPass", auditPass);
+            //添加审批人信息
+            Map<String, List<Long>> startUserSelectAssignees = new HashMap<>();
+            startUserSelectAssignees.put("approver", createReqVO.getStartUserSelectAssignees());
+            String processInstanceId = processInstanceApi
+                    .createProcessInstance(userId,
+                            new BpmProcessInstanceCreateReqDTO()
+                                    .setProcessDefinitionKey(PROCESS_KEY)
+                                    .setVariables(processInstanceVariables)
+                                    .setBusinessKey(String.valueOf(oaLeave.getId()))
+                                    .setStartUserSelectAssignees(startUserSelectAssignees));
+
+            //获取下一个审批人
+            Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
+
+            // 将工作流的编号,单据状态 最后一次审批时间 当前审批人  更新到 OA 转正中
+            oaLeaveMapper.updateById(new OaLeaveDO()
+                    .setId(oaLeave.getId())
+                    .setProcInstId(processInstanceId)
+                    .setAuditStatus("1")
+                    .setLeaveId(uuid)
+                    .setFinalAuditDate(LocalDateTime.now())
+                    .setCurrentAuditEmployeeId(Long.valueOf(task.getAssignee())));
+
+            // TODO 发送通知
+
+        }else {
+            // 暂存,不发起流程
+            // 将单据状态 更新到 OA转正中
+            oaLeaveMapper.updateById(new OaLeaveDO()
+                    .setId(oaLeave.getId())
+                    .setAuditStatus("0"));
+        }
+
+        // TODO 保存或更新附件uuid
+        if (CollectionUtil.isNotEmpty(createReqVO.getFileIdList())) {
+        }
+
+        // 返回
+        return oaLeave.getId();
+    }
+    @Override
+    public Long completeTrueOaLeave(Long userId, BpmTaskApproveReqVO reqVO) {
+        Task currentTask = bpmTaskService.getTask(reqVO.getId());
+        // 审批同意
+        bpmTaskService.approveTask(userId, reqVO);
+
+        Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
+        if (nextTask != null) {
+            LambdaUpdateWrapper<OaLeaveDO> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.set(OaLeaveDO::getAuditStatus, "2")
+                    .set(OaLeaveDO::getCurrentAuditEmployeeId, nextTask.getAssignee())
+                    .set(OaLeaveDO::getFinalAuditDate, new Date())
+                    .eq(OaLeaveDO::getProcInstId, currentTask.getProcessInstanceId());
+            oaLeaveMapper.update(updateWrapper);
+        } else {
+            LambdaUpdateWrapper<OaLeaveDO> updateWrapper = new LambdaUpdateWrapper<>();
+            updateWrapper.set(OaLeaveDO::getAuditStatus, "3")
+                    .set(OaLeaveDO::getCurrentAuditEmployeeId, null)
+                    .set(OaLeaveDO::getFinalAuditDate, new Date())
+                    .eq(OaLeaveDO::getProcInstId, currentTask.getProcessInstanceId());
+            oaLeaveMapper.update(updateWrapper);
+
+            // TODO 复制业务单据信息到业务模块单据表
+
+        }
+        // 发送通知
+
+        // 返回
+        return 1L;
+    }
+
+    @Override
+    public Long completeFalseOaLeave(Long userId, BpmTaskApproveReqVO reqVO) {
+
+        Task currentTask = bpmTaskService.getTask(reqVO.getId());
+
+        BpmTaskReturnReqVO reqVO2 = BeanUtils.toBean(reqVO, BpmTaskReturnReqVO.class);
+        reqVO2.setTargetTaskDefinitionKey("modifyApply");
+        bpmTaskService.returnTask(userId, reqVO2);
+
+        Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
+
+        // 更新单据状态,当前处理人,最后处理时间
+        LambdaUpdateWrapper<OaLeaveDO> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.set(OaLeaveDO::getCurrentAuditEmployeeId, nextTask.getAssignee())
+                .set(OaLeaveDO::getFinalAuditDate, new Date())
+                .set(OaLeaveDO::getAuditStatus, "0")
+                .eq(OaLeaveDO::getProcInstId, currentTask.getProcessInstanceId());
+        oaLeaveMapper.update(updateWrapper);
+
+        // 发送通知
+
+        // 返回
+        return 1L;
+    }
+
+    @Override
+    public Long updateCompleteOaLeave(Long userId, OaLeaveSaveReqVO createReqVO, BpmTaskApproveReqVO reqVO) {
+        // 判断是否已经发起流程
+        Boolean auditPass = createReqVO.getAuditPass();
+
+        OaLeaveDO oaLeave = BeanUtils.toBean(createReqVO, OaLeaveDO.class);
+
+        Task currentTask = taskService.createTaskQuery().processInstanceId(oaLeave.getProcInstId()).singleResult();
+
+        //审批通过
+        bpmTaskService.approveTask(userId, reqVO);
+
+        // 提交
+        if (auditPass) {
+            Task nextTask = taskService.createTaskQuery().processInstanceId(currentTask.getProcessInstanceId()).singleResult();
+
+            oaLeave.setAuditStatus("1");
+            oaLeave.setCurrentAuditEmployeeId(Long.valueOf(nextTask.getAssignee()));
+            oaLeave.setFinalAuditDate(LocalDateTime.now());
+            oaLeaveMapper.updateById(oaLeave);
+
+        } else {
+            OaLeaveDO oaLeaveClose = new OaLeaveDO();
+            oaLeaveClose.setId(oaLeave.getId());
+            oaLeaveClose.setAuditStatus("4");
+            oaLeaveClose.setCurrentAuditEmployeeId(null);
+            oaLeaveClose.setFinalAuditDate(LocalDateTime.now());
+            oaLeaveMapper.updateById(oaLeaveClose);
+        }
+
+        return oaLeave.getId();
+    }
+
+
+
     @Override
     @Override
-    public Integer createOaLeave(OaLeaveSaveReqVO createReqVO) {
+    public Long createOaLeave(OaLeaveSaveReqVO createReqVO) {
         // 插入
         // 插入
         OaLeaveDO oaLeave = BeanUtils.toBean(createReqVO, OaLeaveDO.class);
         OaLeaveDO oaLeave = BeanUtils.toBean(createReqVO, OaLeaveDO.class);
         oaLeaveMapper.insert(oaLeave);
         oaLeaveMapper.insert(oaLeave);
@@ -47,21 +229,21 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     }
     }
 
 
     @Override
     @Override
-    public void deleteOaLeave(Integer id) {
+    public void deleteOaLeave(Long id) {
         // 校验存在
         // 校验存在
         validateOaLeaveExists(id);
         validateOaLeaveExists(id);
         // 删除
         // 删除
         oaLeaveMapper.deleteById(id);
         oaLeaveMapper.deleteById(id);
     }
     }
 
 
-    private void validateOaLeaveExists(Integer id) {
+    private void validateOaLeaveExists(Long id) {
         if (oaLeaveMapper.selectById(id) == null) {
         if (oaLeaveMapper.selectById(id) == null) {
-            throw exception(OA_LEAVE_NOT_EXISTS);
+            throw exception(OA_HOLIDAY_NOT_EXISTS);
         }
         }
     }
     }
 
 
     @Override
     @Override
-    public OaLeaveDO getOaLeave(Integer id) {
+    public OaLeaveDO getOaLeave(Long id) {
         return oaLeaveMapper.selectById(id);
         return oaLeaveMapper.selectById(id);
     }
     }
 
 

+ 0 - 225
yudao-module-bpm/yudao-module-bpm-biz/src/test/java/cn/iocoder/yudao/module/bpm/service/oa/holiday/OaHolidayServiceImplTest.java

@@ -1,225 +0,0 @@
-package cn.iocoder.yudao.module.bpm.service.oa.holiday;
-
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidayPageReqVO;
-import cn.iocoder.yudao.module.bpm.controller.admin.oa.holiday.vo.OaHolidaySaveReqVO;
-import cn.iocoder.yudao.module.bpm.service.oa.holiday.OaHolidayServiceImpl;
-import org.junit.jupiter.api.Disabled;
-import org.junit.jupiter.api.Test;
-
-import javax.annotation.Resource;
-
-import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
-
-import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.holiday.OaHolidayDO;
-import cn.iocoder.yudao.module.bpm.dal.mysql.oa.holiday.OaHolidayMapper;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-
-import org.springframework.context.annotation.Import;
-
-import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
-import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
-import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
-import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
-import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
-import static org.junit.jupiter.api.Assertions.*;
-
-/**
- * {@link OaHolidayServiceImpl} 的单元测试类
- *
- * @author dp
- */
-@Import(OaHolidayServiceImpl.class)
-public class OaHolidayServiceImplTest extends BaseDbUnitTest {
-
-    @Resource
-    private OaHolidayServiceImpl oaHolidayService;
-
-    @Resource
-    private OaHolidayMapper oaHolidayMapper;
-
-    @Test
-    public void testCreateOaHoliday_success() {
-        // 准备参数
-        OaHolidaySaveReqVO createReqVO = randomPojo(OaHolidaySaveReqVO.class).setId(null);
-
-        // 调用
-        Long oaHolidayId = oaHolidayService.createOaHoliday(createReqVO);
-        // 断言
-        assertNotNull(oaHolidayId);
-        // 校验记录的属性是否正确
-        OaHolidayDO oaHoliday = oaHolidayMapper.selectById(oaHolidayId);
-        assertPojoEquals(createReqVO, oaHoliday, "id");
-    }
-
-    @Test
-    public void testUpdateOaHoliday_success() {
-        // mock 数据
-        OaHolidayDO dbOaHoliday = randomPojo(OaHolidayDO.class);
-        oaHolidayMapper.insert(dbOaHoliday);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        OaHolidaySaveReqVO updateReqVO = randomPojo(OaHolidaySaveReqVO.class, o -> {
-            o.setId(dbOaHoliday.getId()); // 设置更新的 ID
-        });
-
-        // 调用
-        oaHolidayService.updateOaHoliday(updateReqVO);
-        // 校验是否更新正确
-        OaHolidayDO oaHoliday = oaHolidayMapper.selectById(updateReqVO.getId()); // 获取最新的
-        assertPojoEquals(updateReqVO, oaHoliday);
-    }
-
-    @Test
-    public void testUpdateOaHoliday_notExists() {
-        // 准备参数
-        OaHolidaySaveReqVO updateReqVO = randomPojo(OaHolidaySaveReqVO.class);
-
-        // 调用, 并断言异常
-        assertServiceException(() -> oaHolidayService.updateOaHoliday(updateReqVO), OA_HOLIDAY_NOT_EXISTS);
-    }
-
-    @Test
-    public void testDeleteOaHoliday_success() {
-        // mock 数据
-        OaHolidayDO dbOaHoliday = randomPojo(OaHolidayDO.class);
-        oaHolidayMapper.insert(dbOaHoliday);// @Sql: 先插入出一条存在的数据
-        // 准备参数
-        Long id = dbOaHoliday.getId();
-
-        // 调用
-        oaHolidayService.deleteOaHoliday(id);
-       // 校验数据不存在了
-       assertNull(oaHolidayMapper.selectById(id));
-    }
-
-    @Test
-    public void testDeleteOaHoliday_notExists() {
-        // 准备参数
-        Long id = randomLongId();
-
-        // 调用, 并断言异常
-        assertServiceException(() -> oaHolidayService.deleteOaHoliday(id), OA_HOLIDAY_NOT_EXISTS);
-    }
-
-    @Test
-    @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
-    public void testGetOaHolidayPage() {
-       // mock 数据
-       OaHolidayDO dbOaHoliday = randomPojo(OaHolidayDO.class, o -> { // 等会查询到
-           o.setHolidayId(null);
-           o.setEmployeeId(null);
-           o.setEmployeeUuid(null);
-           o.setEmployeeName(null);
-           o.setUserId(null);
-           o.setUserUuid(null);
-           o.setDeptId(null);
-           o.setDeptUuid(null);
-           o.setPosition(null);
-           o.setHolidayType(null);
-           o.setStartDate(null);
-           o.setEndDate(null);
-           o.setDay(null);
-           o.setStartTime(null);
-           o.setEndTime(null);
-           o.setReason(null);
-           o.setRemarks(null);
-           o.setProcInstId(null);
-           o.setAuditStatus(null);
-           o.setCurrentAuditUserId(null);
-           o.setCurrentAuditUserUuid(null);
-           o.setCurrentAuditEmployeeId(null);
-           o.setCurrentAuditEmployeeUuid(null);
-           o.setFinalAuditDate(null);
-           o.setInfoSource(null);
-           o.setCreateTime(null);
-       });
-       oaHolidayMapper.insert(dbOaHoliday);
-       // 测试 holidayId 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setHolidayId(null)));
-       // 测试 employeeId 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setEmployeeId(null)));
-       // 测试 employeeUuid 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setEmployeeUuid(null)));
-       // 测试 employeeName 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setEmployeeName(null)));
-       // 测试 userId 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setUserId(null)));
-       // 测试 userUuid 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setUserUuid(null)));
-       // 测试 deptId 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setDeptId(null)));
-       // 测试 deptUuid 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setDeptUuid(null)));
-       // 测试 position 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setPosition(null)));
-       // 测试 holidayType 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setHolidayType(null)));
-       // 测试 startDate 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setStartDate(null)));
-       // 测试 endDate 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setEndDate(null)));
-       // 测试 day 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setDay(null)));
-       // 测试 startTime 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setStartTime(null)));
-       // 测试 endTime 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setEndTime(null)));
-       // 测试 reason 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setReason(null)));
-       // 测试 remarks 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setRemarks(null)));
-       // 测试 procInstId 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setProcInstId(null)));
-       // 测试 auditStatus 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setAuditStatus(null)));
-       // 测试 currentAuditUserId 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setCurrentAuditUserId(null)));
-       // 测试 currentAuditUserUuid 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setCurrentAuditUserUuid(null)));
-       // 测试 currentAuditEmployeeId 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setCurrentAuditEmployeeId(null)));
-       // 测试 currentAuditEmployeeUuid 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setCurrentAuditEmployeeUuid(null)));
-       // 测试 finalAuditDate 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setFinalAuditDate(null)));
-       // 测试 infoSource 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setInfoSource(null)));
-       // 测试 createTime 不匹配
-       oaHolidayMapper.insert(cloneIgnoreId(dbOaHoliday, o -> o.setCreateTime(null)));
-       // 准备参数
-       OaHolidayPageReqVO reqVO = new OaHolidayPageReqVO();
-       reqVO.setHolidayId(null);
-       reqVO.setEmployeeId(null);
-       reqVO.setEmployeeUuid(null);
-       reqVO.setEmployeeName(null);
-       reqVO.setUserId(null);
-       reqVO.setUserUuid(null);
-       reqVO.setDeptId(null);
-       reqVO.setDeptUuid(null);
-       reqVO.setPosition(null);
-       reqVO.setHolidayType(null);
-       reqVO.setStartDate(null);
-       reqVO.setEndDate(null);
-       reqVO.setDay(null);
-       reqVO.setStartTime(null);
-       reqVO.setEndTime(null);
-       reqVO.setReason(null);
-       reqVO.setRemarks(null);
-       reqVO.setProcInstId(null);
-       reqVO.setAuditStatus(null);
-       reqVO.setCurrentAuditUserId(null);
-       reqVO.setCurrentAuditUserUuid(null);
-       reqVO.setCurrentAuditEmployeeId(null);
-       reqVO.setCurrentAuditEmployeeUuid(null);
-       reqVO.setFinalAuditDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
-       reqVO.setInfoSource(null);
-       reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
-
-       // 调用
-       PageResult<OaHolidayDO> pageResult = oaHolidayService.getOaHolidayPage(reqVO);
-       // 断言
-       assertEquals(1, pageResult.getTotal());
-       assertEquals(1, pageResult.getList().size());
-       assertPojoEquals(dbOaHoliday, pageResult.getList().get(0));
-    }
-
-}

+ 224 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/test/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImplTest.java

@@ -0,0 +1,224 @@
+// package cn.iocoder.yudao.module.bpm.service.oa.leave;
+//
+// import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeavePageReqVO;
+// import cn.iocoder.yudao.module.bpm.controller.admin.oa.leave.vo.OaLeaveSaveReqVO;
+// import org.junit.jupiter.api.Disabled;
+// import org.junit.jupiter.api.Test;
+//
+// import javax.annotation.Resource;
+//
+// import cn.iocoder.yudao.framework.test.core.ut.BaseDbUnitTest;
+//
+// import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.leave.OaLeaveDO;
+// import cn.iocoder.yudao.module.bpm.dal.mysql.oa.leave.OaLeaveMapper;
+// import cn.iocoder.yudao.framework.common.pojo.PageResult;
+//
+// import org.springframework.context.annotation.Import;
+//
+// import static cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants.*;
+// import static cn.iocoder.yudao.framework.test.core.util.AssertUtils.*;
+// import static cn.iocoder.yudao.framework.test.core.util.RandomUtils.*;
+// import static cn.iocoder.yudao.framework.common.util.date.LocalDateTimeUtils.*;
+// import static cn.iocoder.yudao.framework.common.util.object.ObjectUtils.*;
+// import static org.junit.jupiter.api.Assertions.*;
+//
+// /**
+//  * {@link OaLeaveServiceImpl} 的单元测试类
+//  *
+//  * @author dp
+//  */
+// @Import(OaLeaveServiceImpl.class)
+// public class OaLeaveServiceImplTest extends BaseDbUnitTest {
+//
+//     @Resource
+//     private OaLeaveServiceImpl oaLeaveService;
+//
+//     @Resource
+//     private OaLeaveMapper oaLeaveMapper;
+//
+//     @Test
+//     public void testCreateOaLeave_success() {
+//         // 准备参数
+//         OaLeaveSaveReqVO createReqVO = randomPojo(OaLeaveSaveReqVO.class).setId(null);
+//
+//         // 调用
+//         Long oaLeaveId = oaLeaveService.createOaLeave(createReqVO);
+//         // 断言
+//         assertNotNull(oaLeaveId);
+//         // 校验记录的属性是否正确
+//         OaLeaveDO oaLeave = oaLeaveMapper.selectById(oaLeaveId);
+//         assertPojoEquals(createReqVO, oaLeave, "id");
+//     }
+//
+//     @Test
+//     public void testUpdateOaLeave_success() {
+//         // mock 数据
+//         OaLeaveDO dbOaLeave = randomPojo(OaLeaveDO.class);
+//         oaLeaveMapper.insert(dbOaLeave);// @Sql: 先插入出一条存在的数据
+//         // 准备参数
+//         OaLeaveSaveReqVO updateReqVO = randomPojo(OaLeaveSaveReqVO.class, o -> {
+//             o.setId(dbOaLeave.getId()); // 设置更新的 ID
+//         });
+//
+//         // 调用
+//         oaLeaveService.updateOaLeave(updateReqVO);
+//         // 校验是否更新正确
+//         OaLeaveDO oaLeave = oaLeaveMapper.selectById(updateReqVO.getId()); // 获取最新的
+//         assertPojoEquals(updateReqVO, oaLeave);
+//     }
+//
+//     @Test
+//     public void testUpdateOaLeave_notExists() {
+//         // 准备参数
+//         OaLeaveSaveReqVO updateReqVO = randomPojo(OaLeaveSaveReqVO.class);
+//
+//         // 调用, 并断言异常
+//         assertServiceException(() -> oaLeaveService.updateOaLeave(updateReqVO), OA_HOLIDAY_NOT_EXISTS);
+//     }
+//
+//     @Test
+//     public void testDeleteOaLeave_success() {
+//         // mock 数据
+//         OaLeaveDO dbOaLeave = randomPojo(OaLeaveDO.class);
+//         oaLeaveMapper.insert(dbOaLeave);// @Sql: 先插入出一条存在的数据
+//         // 准备参数
+//         Long id = dbOaLeave.getId();
+//
+//         // 调用
+//         oaLeaveService.deleteOaLeave(id);
+//        // 校验数据不存在了
+//        assertNull(oaLeaveMapper.selectById(id));
+//     }
+//
+//     @Test
+//     public void testDeleteOaLeave_notExists() {
+//         // 准备参数
+//         Long id = randomLongId();
+//
+//         // 调用, 并断言异常
+//         assertServiceException(() -> oaLeaveService.deleteOaLeave(id), OA_HOLIDAY_NOT_EXISTS);
+//     }
+//
+//     @Test
+//     @Disabled  // TODO 请修改 null 为需要的值,然后删除 @Disabled 注解
+//     public void testGetOaLeavePage() {
+//        // mock 数据
+//        OaLeaveDO dbOaLeave = randomPojo(OaLeaveDO.class, o -> { // 等会查询到
+//            o.setLeaveId(null);
+//            o.setEmployeeId(null);
+//            o.setEmployeeUuid(null);
+//            o.setEmployeeName(null);
+//            o.setUserId(null);
+//            o.setUserUuid(null);
+//            o.setDeptId(null);
+//            o.setDeptUuid(null);
+//            o.setPosition(null);
+//            o.setLeaveType(null);
+//            o.setStartDate(null);
+//            o.setEndDate(null);
+//            o.setDay(null);
+//            o.setStartTime(null);
+//            o.setEndTime(null);
+//            o.setReason(null);
+//            o.setRemarks(null);
+//            o.setProcInstId(null);
+//            o.setAuditStatus(null);
+//            o.setCurrentAuditUserId(null);
+//            o.setCurrentAuditUserUuid(null);
+//            o.setCurrentAuditEmployeeId(null);
+//            o.setCurrentAuditEmployeeUuid(null);
+//            o.setFinalAuditDate(null);
+//            o.setInfoSource(null);
+//            o.setCreateTime(null);
+//        });
+//        oaLeaveMapper.insert(dbOaLeave);
+//        // 测试 leaveId 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setLeaveId(null)));
+//        // 测试 employeeId 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setEmployeeId(null)));
+//        // 测试 employeeUuid 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setEmployeeUuid(null)));
+//        // 测试 employeeName 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setEmployeeName(null)));
+//        // 测试 userId 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setUserId(null)));
+//        // 测试 userUuid 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setUserUuid(null)));
+//        // 测试 deptId 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setDeptId(null)));
+//        // 测试 deptUuid 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setDeptUuid(null)));
+//        // 测试 position 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setPosition(null)));
+//        // 测试 leaveType 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setLeaveType(null)));
+//        // 测试 startDate 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setStartDate(null)));
+//        // 测试 endDate 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setEndDate(null)));
+//        // 测试 day 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setDay(null)));
+//        // 测试 startTime 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setStartTime(null)));
+//        // 测试 endTime 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setEndTime(null)));
+//        // 测试 reason 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setReason(null)));
+//        // 测试 remarks 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setRemarks(null)));
+//        // 测试 procInstId 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setProcInstId(null)));
+//        // 测试 auditStatus 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setAuditStatus(null)));
+//        // 测试 currentAuditUserId 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setCurrentAuditUserId(null)));
+//        // 测试 currentAuditUserUuid 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setCurrentAuditUserUuid(null)));
+//        // 测试 currentAuditEmployeeId 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setCurrentAuditEmployeeId(null)));
+//        // 测试 currentAuditEmployeeUuid 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setCurrentAuditEmployeeUuid(null)));
+//        // 测试 finalAuditDate 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setFinalAuditDate(null)));
+//        // 测试 infoSource 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setInfoSource(null)));
+//        // 测试 createTime 不匹配
+//        oaLeaveMapper.insert(cloneIgnoreId(dbOaLeave, o -> o.setCreateTime(null)));
+//        // 准备参数
+//        OaLeavePageReqVO reqVO = new OaLeavePageReqVO();
+//        reqVO.setLeaveId(null);
+//        reqVO.setEmployeeId(null);
+//        reqVO.setEmployeeUuid(null);
+//        reqVO.setEmployeeName(null);
+//        reqVO.setUserId(null);
+//        reqVO.setUserUuid(null);
+//        reqVO.setDeptId(null);
+//        reqVO.setDeptUuid(null);
+//        reqVO.setPosition(null);
+//        reqVO.setLeaveType(null);
+//        reqVO.setStartDate(null);
+//        reqVO.setEndDate(null);
+//        reqVO.setDay(null);
+//        reqVO.setStartTime(null);
+//        reqVO.setEndTime(null);
+//        reqVO.setReason(null);
+//        reqVO.setRemarks(null);
+//        reqVO.setProcInstId(null);
+//        reqVO.setAuditStatus(null);
+//        reqVO.setCurrentAuditUserId(null);
+//        reqVO.setCurrentAuditUserUuid(null);
+//        reqVO.setCurrentAuditEmployeeId(null);
+//        reqVO.setCurrentAuditEmployeeUuid(null);
+//        reqVO.setFinalAuditDate(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
+//        reqVO.setInfoSource(null);
+//        reqVO.setCreateTime(buildBetweenTime(2023, 2, 1, 2023, 2, 28));
+//
+//        // 调用
+//        PageResult<OaLeaveDO> pageResult = oaLeaveService.getOaLeavePage(reqVO);
+//        // 断言
+//        assertEquals(1, pageResult.getTotal());
+//        assertEquals(1, pageResult.getList().size());
+//        assertPojoEquals(dbOaLeave, pageResult.getList().get(0));
+//     }
+//
+// }