Browse Source

1、请假、出差。公务外出审批完成添加对应信息

dongpo 7 months ago
parent
commit
968d578cd6
22 changed files with 579 additions and 56 deletions
  1. 5 0
      yudao-module-bpm/yudao-module-bpm-biz/pom.xml
  2. 19 2
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/business/OaBusinessServiceImpl.java
  3. 19 2
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/leave/OaLeaveServiceImpl.java
  4. 20 2
      yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/out/OaOutServiceImpl.java
  5. 13 0
      yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/business/AttendanceBusinessApi.java
  6. 102 0
      yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/business/dto/AttendanceBusinessCreateReqDTO.java
  7. 13 0
      yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/leave/AttendanceLeaveApi.java
  8. 104 0
      yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/leave/dto/AttendanceLeaveCreateReqDTO.java
  9. 13 0
      yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/out/AttendanceOutApi.java
  10. 96 0
      yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/out/dto/AttendanceOutCreateReqDTO.java
  11. 23 0
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/api/business/AttendanceBusinessApiImpl.java
  12. 25 0
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/api/leave/AttendanceLeaveApiImpl.java
  13. 24 0
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/api/out/AttendanceOutApiImpl.java
  14. 9 7
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/dal/dataobject/business/AttendanceBusinessDO.java
  15. 8 5
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/dal/dataobject/leave/AttendanceLeaveDO.java
  16. 8 5
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/dal/dataobject/out/AttendanceOutDO.java
  17. 13 6
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/business/AttendanceBusinessService.java
  18. 8 0
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/business/AttendanceBusinessServiceImpl.java
  19. 14 5
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/leave/AttendanceLeaveService.java
  20. 16 10
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/leave/AttendanceLeaveServiceImpl.java
  21. 12 4
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/out/AttendanceOutService.java
  22. 15 8
      yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/out/AttendanceOutServiceImpl.java

+ 5 - 0
yudao-module-bpm/yudao-module-bpm-biz/pom.xml

@@ -46,6 +46,11 @@
             <artifactId>yudao-module-relations-api</artifactId>
             <version>${revision}</version>
         </dependency>
+        <dependency>
+            <groupId>cn.iocoder.boot</groupId>
+            <artifactId>yudao-module-attendance-api</artifactId>
+            <version>${revision}</version>
+        </dependency>
 
         <!-- 业务组件 -->
         <dependency>

+ 19 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/business/OaBusinessServiceImpl.java

@@ -3,12 +3,15 @@ package cn.iocoder.yudao.module.bpm.service.oa.business;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.framework.common.enums.InfoSourceEnum;
 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.attendance.api.business.AttendanceBusinessApi;
+import cn.iocoder.yudao.module.attendance.api.business.dto.AttendanceBusinessCreateReqDTO;
 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.business.vo.OaBusinessPageReqVO;
@@ -81,6 +84,9 @@ public class OaBusinessServiceImpl implements OaBusinessService {
     @Resource
     private DeptApi deptApi;
 
+    @Resource
+    private AttendanceBusinessApi attendanceBusinessApi;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long stagingOaBusiness(OaBusinessSaveReqVO stagingReqVO) {
@@ -280,11 +286,22 @@ public class OaBusinessServiceImpl implements OaBusinessService {
                     .setCurrentAuditEmployeeName(null)
                     .setFinalAuditDate(LocalDateTime.now())
                     .setId(oaBusiness.getId());
+        }
+        oaBusinessMapper.updateById(oaBusinessDO);
+        // 复制业务单据信息到业务模块单据表
+        if(Objects.isNull(nextTask)) {
+            // 查询申请单
+            OaBusinessDO business = oaBusinessMapper.selectById(oaBusinessDO.getId());
 
-            // TODO DP 复制业务单据信息到业务模块单据表
+            // 转换为DTO
+            AttendanceBusinessCreateReqDTO businessCreateReqDTO = BeanUtils.toBean(business, AttendanceBusinessCreateReqDTO.class);
+            businessCreateReqDTO.setStatus(0);
+            businessCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
+            // 保存单据信息
+            attendanceBusinessApi.createBusinessInfoAfterAudit(businessCreateReqDTO);
         }
-        oaBusinessMapper.updateById(oaBusinessDO);
+
         // 发送通知
 
         // 返回

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

@@ -3,12 +3,15 @@ package cn.iocoder.yudao.module.bpm.service.oa.leave;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.framework.common.enums.InfoSourceEnum;
 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.attendance.api.leave.AttendanceLeaveApi;
+import cn.iocoder.yudao.module.attendance.api.leave.dto.AttendanceLeaveCreateReqDTO;
 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;
@@ -83,6 +86,9 @@ public class OaLeaveServiceImpl implements OaLeaveService {
     @Resource
     private DeptApi deptApi;
 
+    @Resource
+    private AttendanceLeaveApi attendanceLeaveApi;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long stagingOaLeave(OaLeaveSaveReqVO stagingReqVO) {
@@ -278,11 +284,22 @@ public class OaLeaveServiceImpl implements OaLeaveService {
                     .setCurrentAuditEmployeeName(null)
                     .setFinalAuditDate(LocalDateTime.now())
                     .setId(oaLeave.getId());
+        }
+        oaLeaveMapper.updateById(oaLeaveDO);
+        // 复制业务单据信息到业务模块单据表
+        if(Objects.isNull(nextTask)) {
+            // 查询申请单
+            OaLeaveDO leave = oaLeaveMapper.selectById(oaLeaveDO.getId());
 
-            // TODO DP 复制业务单据信息到业务模块单据表
+            // 转换为DTO
+            AttendanceLeaveCreateReqDTO leaveCreateReqDTO = BeanUtils.toBean(leave, AttendanceLeaveCreateReqDTO.class);
+            leaveCreateReqDTO.setStatus(0);
+            leaveCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
+            // 保存单据信息
+            attendanceLeaveApi.createLeaveInfoAfterAudit(leaveCreateReqDTO);
         }
-        oaLeaveMapper.updateById(oaLeaveDO);
+
         // 发送通知
 
         // 返回

+ 20 - 2
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/out/OaOutServiceImpl.java

@@ -3,12 +3,15 @@ package cn.iocoder.yudao.module.bpm.service.oa.out;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.core.util.StrUtil;
+import cn.iocoder.yudao.framework.common.enums.InfoSourceEnum;
 import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
 import cn.iocoder.yudao.framework.common.pojo.PageParam;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
 import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
 import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.attendance.api.out.AttendanceOutApi;
+import cn.iocoder.yudao.module.attendance.api.out.dto.AttendanceOutCreateReqDTO;
 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.out.vo.OaOutPageReqVO;
@@ -18,6 +21,7 @@ import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskApproveR
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskRespVO;
 import cn.iocoder.yudao.module.bpm.controller.admin.task.vo.task.BpmTaskReturnReqVO;
 import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.out.OaOutDO;
+import cn.iocoder.yudao.module.bpm.dal.dataobject.oa.out.OaOutDO;
 import cn.iocoder.yudao.module.bpm.dal.mysql.oa.out.OaOutMapper;
 import cn.iocoder.yudao.module.bpm.enums.DictDataConstants;
 import cn.iocoder.yudao.module.bpm.enums.ErrorCodeConstants;
@@ -82,6 +86,9 @@ public class OaOutServiceImpl implements OaOutService {
     @Resource
     private DeptApi deptApi;
 
+    @Resource
+    private AttendanceOutApi attendanceOutApi;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long stagingOaOut(OaOutSaveReqVO stagingReqVO) {
@@ -277,11 +284,22 @@ public class OaOutServiceImpl implements OaOutService {
                     .setCurrentAuditEmployeeName(null)
                     .setFinalAuditDate(LocalDateTime.now())
                     .setId(oaOut.getId());
+        }
+        oaOutMapper.updateById(oaOutDO);
+        // 复制业务单据信息到业务模块单据表
+        if(Objects.isNull(nextTask)) {
+            // 查询申请单
+            OaOutDO out = oaOutMapper.selectById(oaOutDO.getId());
 
-            // TODO DP 复制业务单据信息到业务模块单据表
+            // 转换为DTO
+            AttendanceOutCreateReqDTO outCreateReqDTO = BeanUtils.toBean(out, AttendanceOutCreateReqDTO.class);
+            outCreateReqDTO.setStatus(0);
+            outCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
+            // 保存单据信息
+            attendanceOutApi.createOutInfoAfterAudit(outCreateReqDTO);
         }
-        oaOutMapper.updateById(oaOutDO);
+
         // 发送通知
 
         // 返回

+ 13 - 0
yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/business/AttendanceBusinessApi.java

@@ -0,0 +1,13 @@
+package cn.iocoder.yudao.module.attendance.api.business;
+
+import cn.iocoder.yudao.module.attendance.api.business.dto.AttendanceBusinessCreateReqDTO;
+
+public interface AttendanceBusinessApi {
+    /**
+     * 审批完成添加出差信息
+     *
+     * @param businessCreateReqDTO 出差信息
+     * @return 编号
+     */
+    Long createBusinessInfoAfterAudit(AttendanceBusinessCreateReqDTO businessCreateReqDTO);
+}

+ 102 - 0
yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/business/dto/AttendanceBusinessCreateReqDTO.java

@@ -0,0 +1,102 @@
+package cn.iocoder.yudao.module.attendance.api.business.dto;
+
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@Data
+public class AttendanceBusinessCreateReqDTO {
+
+    /**
+     * uuid
+     */
+    private String businessId;
+    /**
+     * 出差人id
+     */
+    private Long employeeId;
+    /**
+     * 出差人uuid
+     */
+    private String employeeUuid;
+    /**
+     * 出差员工姓名
+     */
+    private String employeeName;
+    /**
+     * 出差员工手机号
+     */
+    private String employeePhone;
+    /**
+     * 用户账号id
+     */
+    private Long userId;
+    /**
+     * 用户账号uuid
+     */
+    private String userUuid;
+    /**
+     * 部门id
+     */
+    private Long deptId;
+    /**
+     * 部门uuid
+     */
+    private String deptUuid;
+    /**
+     * 职位id
+     */
+    private Long postId;
+    /**
+     * 职位
+     */
+    private String position;
+    /**
+     * 出差事由
+     */
+    private String reason;
+    /**
+     * 出差目的地
+     */
+    private String destination;
+    /**
+     * 出差开始日期
+     */
+    private String startDate;
+    /**
+     * 出差结束日期
+     */
+    private String endDate;
+    /**
+     * 出差天数(d)
+     */
+    private String day;
+    /**
+     * 出差预算费用,单位(元)
+     */
+    private BigDecimal estimatedCost;
+    /**
+     * 备注
+     */
+    private String remarks;
+    /**
+     * 状态
+     */
+    private Integer status;
+    /**
+     * 数据来源,0流程添加、1手动添加
+     */
+    private String infoSource;
+    /**
+     * 创建人员工id
+     */
+    private Long creatorEmployeeId;
+    /**
+     * 创建人员工姓名
+     */
+    private String creatorEmployeeName;
+    /**
+     * 创建人
+     */
+    private String creator;
+}

+ 13 - 0
yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/leave/AttendanceLeaveApi.java

@@ -0,0 +1,13 @@
+package cn.iocoder.yudao.module.attendance.api.leave;
+
+import cn.iocoder.yudao.module.attendance.api.leave.dto.AttendanceLeaveCreateReqDTO;
+
+public interface AttendanceLeaveApi {
+    /**
+     * 审批完成添加请假信息
+     *
+     * @param leaveCreateReqDTO 请假信息
+     * @return 请假信息
+     */
+    Long createLeaveInfoAfterAudit(AttendanceLeaveCreateReqDTO leaveCreateReqDTO);
+}

+ 104 - 0
yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/leave/dto/AttendanceLeaveCreateReqDTO.java

@@ -0,0 +1,104 @@
+package cn.iocoder.yudao.module.attendance.api.leave.dto;
+
+import lombok.Data;
+
+@Data
+public class AttendanceLeaveCreateReqDTO {
+
+    /**
+     * uuid
+     */
+    private String leaveId;
+    /**
+     * 请假人id
+     */
+    private Long employeeId;
+    /**
+     * 请假人uuid
+     */
+    private String employeeUuid;
+    /**
+     * 请假员工姓名
+     */
+    private String employeeName;
+    /**
+     * 请假员工手机号
+     */
+    private String employeePhone;
+    /**
+     * 用户账号id
+     */
+    private Long userId;
+    /**
+     * 用户账号uuid
+     */
+    private String userUuid;
+    /**
+     * 部门id
+     */
+    private Long deptId;
+    /**
+     * 部门uuid
+     */
+    private String deptUuid;
+    /**
+     * 职位id
+     */
+    private Long postId;
+    /**
+     * 员工职位
+     */
+    private String position;
+    /**
+     * 请假类型
+     */
+    private String leaveType;
+    /**
+     * 开始日期
+     */
+    private String startDate;
+    /**
+     * 具体时间,精确到上下午,am上午 pm下午
+     */
+    private String startTime;
+    /**
+     * 结束日期
+     */
+    private String endDate;
+    /**
+     * 具体时间,精确到上下午,am上午 pm下午
+     */
+    private String endTime;
+    /**
+     * 请假天数
+     */
+    private String day;
+    /**
+     * 请假原因
+     */
+    private String reason;
+    /**
+     * 备注
+     */
+    private String remarks;
+    /**
+     * 状态
+     */
+    private Integer status;
+    /**
+     * 数据来源,0流程添加、1手动添加
+     */
+    private String infoSource;
+    /**
+     * 创建人员工id
+     */
+    private Long creatorEmployeeId;
+    /**
+     * 创建人员工姓名
+     */
+    private String creatorEmployeeName;
+    /**
+     * 创建人
+     */
+    private String creator;
+}

+ 13 - 0
yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/out/AttendanceOutApi.java

@@ -0,0 +1,13 @@
+package cn.iocoder.yudao.module.attendance.api.out;
+
+import cn.iocoder.yudao.module.attendance.api.out.dto.AttendanceOutCreateReqDTO;
+
+public interface AttendanceOutApi {
+    /**
+     * 审批完成添加公务外出信息
+     *
+     * @param outCreateReqDTO 公务外出信息
+     * @return 公务外出信息id
+     */
+    Long createOutInfoAfterAudit(AttendanceOutCreateReqDTO outCreateReqDTO);
+}

+ 96 - 0
yudao-module-personnel/yudao-module-attendance-api/src/main/java/cn/iocoder/yudao/module/attendance/api/out/dto/AttendanceOutCreateReqDTO.java

@@ -0,0 +1,96 @@
+package cn.iocoder.yudao.module.attendance.api.out.dto;
+
+import lombok.Data;
+
+@Data
+public class AttendanceOutCreateReqDTO {
+
+    /**
+     * uuid
+     */
+    private String outId;
+    /**
+     * 外出人id
+     */
+    private Long employeeId;
+    /**
+     * 外出人uuid
+     */
+    private String employeeUuid;
+    /**
+     * 外出员工姓名
+     */
+    private String employeeName;
+    /**
+     * 外出员工手机号
+     */
+    private String employeePhone;
+    /**
+     * 用户账号id
+     */
+    private Long userId;
+    /**
+     * 用户账号uuid
+     */
+    private String userUuid;
+    /**
+     * 部门id
+     */
+    private Long deptId;
+    /**
+     * 部门uuid
+     */
+    private String deptUuid;
+    /**
+     * 职位id
+     */
+    private Long postId;
+    /**
+     * 员工职位
+     */
+    private String position;
+    /**
+     * 外出事由
+     */
+    private String reason;
+    /**
+     * 外出地点
+     */
+    private String destination;
+    /**
+     * 外出开始时间
+     */
+    private String startDate;
+    /**
+     * 外出结束时间
+     */
+    private String endDate;
+    /**
+     * 外出时长,单位(小时)
+     */
+    private String hour;
+    /**
+     * 备注
+     */
+    private String remarks;
+    /**
+     * 状态
+     */
+    private Integer status;
+    /**
+     * 数据来源,0流程添加、1手动添加
+     */
+    private String infoSource;
+    /**
+     * 创建人员工id
+     */
+    private Long creatorEmployeeId;
+    /**
+     * 创建人员工姓名
+     */
+    private String creatorEmployeeName;
+    /**
+     * 创建人
+     */
+    private String creator;
+}

+ 23 - 0
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/api/business/AttendanceBusinessApiImpl.java

@@ -0,0 +1,23 @@
+package cn.iocoder.yudao.module.attendance.api.business;
+
+import cn.iocoder.yudao.module.attendance.api.business.dto.AttendanceBusinessCreateReqDTO;
+import cn.iocoder.yudao.module.attendance.service.business.AttendanceBusinessService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Objects;
+
+@Service
+public class AttendanceBusinessApiImpl implements AttendanceBusinessApi{
+
+    @Resource
+    private AttendanceBusinessService attendanceBusinessService;
+
+    @Override
+    public Long createBusinessInfoAfterAudit(AttendanceBusinessCreateReqDTO businessCreateReqDTO) {
+        if (Objects.isNull(businessCreateReqDTO)) {
+            return -1L;
+        }
+        return attendanceBusinessService.createBusinessInfoAfterAudit(businessCreateReqDTO);
+    }
+}

+ 25 - 0
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/api/leave/AttendanceLeaveApiImpl.java

@@ -0,0 +1,25 @@
+package cn.iocoder.yudao.module.attendance.api.leave;
+
+import cn.iocoder.yudao.module.attendance.api.leave.dto.AttendanceLeaveCreateReqDTO;
+import cn.iocoder.yudao.module.attendance.service.leave.AttendanceLeaveService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Objects;
+
+
+@Service
+public class AttendanceLeaveApiImpl implements AttendanceLeaveApi {
+
+    @Resource
+    private AttendanceLeaveService attendanceLeaveService;
+
+
+    @Override
+    public Long createLeaveInfoAfterAudit(AttendanceLeaveCreateReqDTO leaveCreateReqDTO) {
+        if (Objects.isNull(leaveCreateReqDTO)) {
+            return -1L;
+        }
+        return attendanceLeaveService.createLeaveInfoAfterAudit(leaveCreateReqDTO);
+    }
+}

+ 24 - 0
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/api/out/AttendanceOutApiImpl.java

@@ -0,0 +1,24 @@
+package cn.iocoder.yudao.module.attendance.api.out;
+
+import cn.iocoder.yudao.module.attendance.api.out.dto.AttendanceOutCreateReqDTO;
+import cn.iocoder.yudao.module.attendance.service.out.AttendanceOutService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Objects;
+
+@Service
+public class AttendanceOutApiImpl implements AttendanceOutApi{
+
+    @Resource
+    private AttendanceOutService attendanceOutService;
+
+
+    @Override
+    public Long createOutInfoAfterAudit(AttendanceOutCreateReqDTO outCreateReqDTO) {
+        if (Objects.isNull(outCreateReqDTO)) {
+            return -1L;
+        }
+        return attendanceOutService.createOutInfoAfterAudit(outCreateReqDTO);
+    }
+}

+ 9 - 7
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/dal/dataobject/business/AttendanceBusinessDO.java

@@ -1,14 +1,12 @@
 package cn.iocoder.yudao.module.attendance.dal.dataobject.business;
 
-import com.alibaba.excel.annotation.ExcelProperty;
-import io.swagger.v3.oas.annotations.media.Schema;
+import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.*;
-import java.util.*;
+
 import java.math.BigDecimal;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
-import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
 
 /**
  * 出差信息 DO
@@ -66,6 +64,10 @@ public class AttendanceBusinessDO extends BaseDO {
      * 部门uuid
      */
     private String deptUuid;
+    /**
+     * 职位id
+     */
+    private Long postId;
     /**
      * 职位
      */

+ 8 - 5
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/dal/dataobject/leave/AttendanceLeaveDO.java

@@ -1,11 +1,10 @@
 package cn.iocoder.yudao.module.attendance.dal.dataobject.leave;
 
-import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
 
 /**
  * 请假信息 DO
@@ -63,6 +62,10 @@ public class AttendanceLeaveDO extends BaseDO {
      * 部门uuid
      */
     private String deptUuid;
+    /**
+     * 职位id
+     */
+    private Long postId;
     /**
      * 员工职位
      */

+ 8 - 5
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/dal/dataobject/out/AttendanceOutDO.java

@@ -1,11 +1,10 @@
 package cn.iocoder.yudao.module.attendance.dal.dataobject.out;
 
-import lombok.*;
-import java.util.*;
-import java.time.LocalDateTime;
-import java.time.LocalDateTime;
-import com.baomidou.mybatisplus.annotation.*;
 import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
+import com.baomidou.mybatisplus.annotation.KeySequence;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.*;
 
 /**
  * 公务外出信息 DO
@@ -63,6 +62,10 @@ public class AttendanceOutDO extends BaseDO {
      * 部门uuid
      */
     private String deptUuid;
+    /**
+     * 职位id
+     */
+    private Long postId;
     /**
      * 员工职位
      */

+ 13 - 6
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/business/AttendanceBusinessService.java

@@ -1,14 +1,13 @@
 package cn.iocoder.yudao.module.attendance.service.business;
 
-import java.time.LocalDate;
-import java.util.*;
-import cn.iocoder.yudao.module.attendance.controller.admin.business.vo.*;
-import cn.iocoder.yudao.module.attendance.dal.dataobject.business.AttendanceBusinessDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
-import org.apache.ibatis.annotations.Param;
+import cn.iocoder.yudao.module.attendance.api.business.dto.AttendanceBusinessCreateReqDTO;
+import cn.iocoder.yudao.module.attendance.controller.admin.business.vo.AttendanceBusinessPageReqVO;
+import cn.iocoder.yudao.module.attendance.controller.admin.business.vo.AttendanceBusinessSaveReqVO;
+import cn.iocoder.yudao.module.attendance.dal.dataobject.business.AttendanceBusinessDO;
 
 import javax.validation.Valid;
+import java.time.LocalDate;
 
 /**
  * 出差信息 Service 接口
@@ -25,6 +24,14 @@ public interface AttendanceBusinessService {
      */
     Long createBusiness(@Valid AttendanceBusinessSaveReqVO createReqVO);
 
+    /**
+     * 审批完成添加出差信息
+     *
+     * @param businessCreateReqDTO 出差信息
+     * @return 编号
+     */
+    Long createBusinessInfoAfterAudit(AttendanceBusinessCreateReqDTO businessCreateReqDTO);
+
     /**
      * 更新出差信息
      *

+ 8 - 0
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/business/AttendanceBusinessServiceImpl.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.attendance.service.business;
 import cn.hutool.core.util.IdUtil;
 import cn.iocoder.yudao.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.attendance.api.business.dto.AttendanceBusinessCreateReqDTO;
 import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
@@ -70,6 +71,13 @@ public class AttendanceBusinessServiceImpl implements AttendanceBusinessService
         return business.getId();
     }
 
+    @Override
+    public Long createBusinessInfoAfterAudit(AttendanceBusinessCreateReqDTO businessCreateReqDTO) {
+        AttendanceBusinessDO attendanceBusinessDO = BeanUtils.toBean(businessCreateReqDTO, AttendanceBusinessDO.class);
+        businessMapper.insert(attendanceBusinessDO);
+        return attendanceBusinessDO.getId();
+    }
+
     @Override
     public void updateBusiness(AttendanceBusinessSaveReqVO updateReqVO) {
         // 校验存在

+ 14 - 5
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/leave/AttendanceLeaveService.java

@@ -1,13 +1,14 @@
 package cn.iocoder.yudao.module.attendance.service.leave;
 
-import java.time.LocalDate;
-import java.util.*;
-import cn.iocoder.yudao.module.attendance.controller.admin.leave.vo.*;
-import cn.iocoder.yudao.module.attendance.dal.dataobject.leave.AttendanceLeaveDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.module.attendance.api.leave.dto.AttendanceLeaveCreateReqDTO;
+import cn.iocoder.yudao.module.attendance.controller.admin.leave.vo.AttendanceLeavePageReqVO;
+import cn.iocoder.yudao.module.attendance.controller.admin.leave.vo.AttendanceLeaveSaveReqVO;
+import cn.iocoder.yudao.module.attendance.dal.dataobject.leave.AttendanceLeaveDO;
 
 import javax.validation.Valid;
+import java.time.LocalDate;
+import java.util.List;
 
 /**
  * 请假信息 Service 接口
@@ -24,6 +25,14 @@ public interface AttendanceLeaveService {
      */
     Long createLeave(@Valid AttendanceLeaveSaveReqVO createReqVO);
 
+    /**
+     * 审批完成添加请假信息
+     *
+     * @param leaveCreateReqDTO 请假信息
+     * @return 请假信息
+     */
+    Long createLeaveInfoAfterAudit(AttendanceLeaveCreateReqDTO leaveCreateReqDTO);
+
     /**
      * 更新请假信息
      *

+ 16 - 10
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/leave/AttendanceLeaveServiceImpl.java

@@ -1,29 +1,27 @@
 package cn.iocoder.yudao.module.attendance.service.leave;
 
 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.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.attendance.api.leave.dto.AttendanceLeaveCreateReqDTO;
+import cn.iocoder.yudao.module.attendance.controller.admin.leave.vo.AttendanceLeavePageReqVO;
+import cn.iocoder.yudao.module.attendance.controller.admin.leave.vo.AttendanceLeaveSaveReqVO;
+import cn.iocoder.yudao.module.attendance.dal.dataobject.leave.AttendanceLeaveDO;
+import cn.iocoder.yudao.module.attendance.dal.mysql.leave.AttendanceLeaveMapper;
 import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
-import cn.iocoder.yudao.module.attendance.controller.admin.leave.vo.*;
-import cn.iocoder.yudao.module.attendance.dal.dataobject.leave.AttendanceLeaveDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-
-import cn.iocoder.yudao.module.attendance.dal.mysql.leave.AttendanceLeaveMapper;
-
 import javax.annotation.Resource;
-
 import java.time.LocalDate;
-import java.util.Date;
 import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.attendance.enums.ErrorCodeConstants.*;
+import static cn.iocoder.yudao.module.attendance.enums.ErrorCodeConstants.ATTENDANCE_LEAVE_NOT_EXISTS;
 
 /**
  * 请假信息 Service 实现类
@@ -72,6 +70,14 @@ public class AttendanceLeaveServiceImpl implements AttendanceLeaveService {
         return leave.getId();
     }
 
+
+    @Override
+    public Long createLeaveInfoAfterAudit(AttendanceLeaveCreateReqDTO leaveCreateReqDTO) {
+        AttendanceLeaveDO attendanceLeaveDO = BeanUtils.toBean(leaveCreateReqDTO, AttendanceLeaveDO.class);
+        leaveMapper.insert(attendanceLeaveDO);
+        return attendanceLeaveDO.getId();
+    }
+
     @Override
     public void updateLeave(AttendanceLeaveSaveReqVO updateReqVO) {
         // 校验存在

+ 12 - 4
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/out/AttendanceOutService.java

@@ -1,10 +1,10 @@
 package cn.iocoder.yudao.module.attendance.service.out;
 
-import java.util.*;
-import cn.iocoder.yudao.module.attendance.controller.admin.out.vo.*;
-import cn.iocoder.yudao.module.attendance.dal.dataobject.out.AttendanceOutDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.pojo.PageParam;
+import cn.iocoder.yudao.module.attendance.api.out.dto.AttendanceOutCreateReqDTO;
+import cn.iocoder.yudao.module.attendance.controller.admin.out.vo.AttendanceOutPageReqVO;
+import cn.iocoder.yudao.module.attendance.controller.admin.out.vo.AttendanceOutSaveReqVO;
+import cn.iocoder.yudao.module.attendance.dal.dataobject.out.AttendanceOutDO;
 
 import javax.validation.Valid;
 
@@ -23,6 +23,14 @@ public interface AttendanceOutService {
      */
     Long createOut(@Valid AttendanceOutSaveReqVO createReqVO);
 
+    /**
+     * 审批完成添加公务外出信息
+     *
+     * @param outCreateReqDTO 公务外出信息
+     * @return 公务外出信息id
+     */
+    Long createOutInfoAfterAudit(AttendanceOutCreateReqDTO outCreateReqDTO);
+
     /**
      * 更新公务外出信息
      *

+ 15 - 8
yudao-module-personnel/yudao-module-attendance-biz/src/main/java/cn/iocoder/yudao/module/attendance/service/out/AttendanceOutServiceImpl.java

@@ -1,25 +1,25 @@
 package cn.iocoder.yudao.module.attendance.service.out;
 
 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.framework.security.core.LoginUser;
 import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
+import cn.iocoder.yudao.module.attendance.api.out.dto.AttendanceOutCreateReqDTO;
+import cn.iocoder.yudao.module.attendance.controller.admin.out.vo.AttendanceOutPageReqVO;
+import cn.iocoder.yudao.module.attendance.controller.admin.out.vo.AttendanceOutSaveReqVO;
+import cn.iocoder.yudao.module.attendance.dal.dataobject.out.AttendanceOutDO;
+import cn.iocoder.yudao.module.attendance.dal.mysql.out.AttendanceOutMapper;
 import cn.iocoder.yudao.module.employee.api.EmployeeApi;
 import cn.iocoder.yudao.module.employee.api.dto.EmployeeRespDTO;
 import cn.iocoder.yudao.module.infra.api.file.FileApi;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
-import cn.iocoder.yudao.module.attendance.controller.admin.out.vo.*;
-import cn.iocoder.yudao.module.attendance.dal.dataobject.out.AttendanceOutDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-
-import cn.iocoder.yudao.module.attendance.dal.mysql.out.AttendanceOutMapper;
-
 import javax.annotation.Resource;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.attendance.enums.ErrorCodeConstants.*;
+import static cn.iocoder.yudao.module.attendance.enums.ErrorCodeConstants.ATTENDANCE_OUT_NOT_EXISTS;
 
 /**
  * 公务外出信息 Service 实现类
@@ -68,6 +68,13 @@ public class AttendanceOutServiceImpl implements AttendanceOutService {
         return out.getId();
     }
 
+    @Override
+    public Long createOutInfoAfterAudit(AttendanceOutCreateReqDTO outCreateReqDTO) {
+        AttendanceOutDO attendanceOutDO = BeanUtils.toBean(outCreateReqDTO, AttendanceOutDO.class);
+        outMapper.insert(attendanceOutDO);
+        return attendanceOutDO.getId();
+    }
+
     @Override
     public void updateOut(AttendanceOutSaveReqVO updateReqVO) {
         // 校验存在