Преглед изворни кода

1、审批完成后添加入职信息

dongpo пре 1 година
родитељ
комит
5ce6732a4d

+ 2 - 2
yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/enums/InfoSourceEnum.java

@@ -8,11 +8,11 @@ public enum InfoSourceEnum {
     /**
      * 流程生成的信息来源
      */
-    FLOW("flow", "流程生成"),
+    FLOW("0", "流程生成"),
     /**
      * 手动添加的信息来源
      */
-    MANUAL("manual", "手动添加"),
+    MANUAL("1", "手动添加"),
     ;
 
     // 来源标识符

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

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

+ 20 - 3
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/entry/OaEntryServiceImpl.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.bpm.service.oa.entry;
 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;
@@ -27,6 +28,8 @@ 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 cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
+import cn.iocoder.yudao.module.relations.api.entry.RelationsEntryApi;
+import cn.iocoder.yudao.module.relations.api.entry.dto.RelationsEntryCreateReqDTO;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -81,6 +84,9 @@ public class OaEntryServiceImpl implements OaEntryService {
     @Resource
     private DeptApi deptApi;
 
+    @Resource
+    private RelationsEntryApi relationsEntryApi;
+
     @Override
     @Transactional(rollbackFor = Exception.class)
     public Long stagingOaEntry(OaEntrySaveReqVO stagingReqVO) {
@@ -250,11 +256,22 @@ public class OaEntryServiceImpl implements OaEntryService {
                     .setFinalAuditDate(LocalDateTime.now())
                     .setId(oaEntry.getId());
 
-            // TODO 复制业务单据信息到业务模块单据表
-
         }
         oaEntryMapper.updateById(oaEntryDO);
-        // 发送通知
+        // 复制业务单据信息到业务模块单据表
+        if(Objects.isNull(nextTask)) {
+            // 查询入职申请单
+            OaEntryDO entry = oaEntryMapper.selectById(oaEntryDO.getId());
+
+            // 转换为入职DTO
+            RelationsEntryCreateReqDTO entryCreateReqDTO = BeanUtils.toBean(entry, RelationsEntryCreateReqDTO.class);
+            entryCreateReqDTO.setStatus(0);
+            entryCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
+
+            // 保存单据信息
+            relationsEntryApi.createEntryInfoAfterAudit(entryCreateReqDTO);
+        }
+        // TODO 发送通知
 
         // 返回
         return 1L;

+ 2 - 0
yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/oa/expense/OaExpenseServiceImpl.java

@@ -3,6 +3,7 @@ package cn.iocoder.yudao.module.bpm.service.oa.expense;
 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;
@@ -342,6 +343,7 @@ public class OaExpenseServiceImpl implements OaExpenseService {
             ExpenseInfoCreateReqDTO expenseInfoCreateReqDTO = BeanUtils.toBean(expenseDO, ExpenseInfoCreateReqDTO.class);
             // 设置费用信息状态为已完成
             expenseInfoCreateReqDTO.setStatus("0");
+            expenseInfoCreateReqDTO.setInfoSource(InfoSourceEnum.FLOW.getSource());
 
             // 查询费用报销单关联的费用明细
             List<OaExpenseObjDO> oaExpenseObjListByExpenseId = getOaExpenseObjListByExpenseId(expenseDO.getId());

+ 14 - 0
yudao-module-personnel/yudao-module-relations-api/src/main/java/cn/iocoder/yudao/module/relations/api/entry/RelationsEntryApi.java

@@ -0,0 +1,14 @@
+package cn.iocoder.yudao.module.relations.api.entry;
+
+import cn.iocoder.yudao.module.relations.api.entry.dto.RelationsEntryCreateReqDTO;
+
+public interface RelationsEntryApi {
+
+    /**
+     * 审批完成后添加入职信息
+     *
+     * @param entryCreateReqDTO 入职信息
+     * @return 编号
+     */
+    Long createEntryInfoAfterAudit(RelationsEntryCreateReqDTO entryCreateReqDTO);
+}

+ 84 - 0
yudao-module-personnel/yudao-module-relations-api/src/main/java/cn/iocoder/yudao/module/relations/api/entry/dto/RelationsEntryCreateReqDTO.java

@@ -0,0 +1,84 @@
+package cn.iocoder.yudao.module.relations.api.entry.dto;
+
+import lombok.Data;
+
+@Data
+public class RelationsEntryCreateReqDTO {
+
+    /**
+     * uuid
+     */
+    private String entryId;
+    /**
+     * 入职人
+     */
+    private String entryName;
+    /**
+     * 部门ID
+     */
+    private Long deptId;
+    /**
+     * 职位id
+     */
+    private Long postId;
+    /**
+     * 职位
+     */
+    private String position;
+    /**
+     * 员工类型
+     */
+    private String employeeType;
+    /**
+     * 性别
+     */
+    private String gender;
+    /**
+     * 出身日期
+     */
+    private String birthday;
+    /**
+     * 联系电话
+     */
+    private String contactNumber;
+    /**
+     * 电子邮箱
+     */
+    private String email;
+    /**
+     * 教育背景
+     */
+    private String education;
+    /**
+     * 工作经验
+     */
+    private String workExperience;
+    /**
+     * 入职日期
+     */
+    private String entryDate;
+    /**
+     * 备注
+     */
+    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-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/api/entry/RelationsEntryApiImpl.java

@@ -0,0 +1,23 @@
+package cn.iocoder.yudao.module.relations.api.entry;
+
+import cn.iocoder.yudao.module.relations.api.entry.dto.RelationsEntryCreateReqDTO;
+import cn.iocoder.yudao.module.relations.service.entry.RelationsEntryService;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.Objects;
+
+@Service
+public class RelationsEntryApiImpl implements RelationsEntryApi{
+
+    @Resource
+    private RelationsEntryService relationsEntryService;
+
+    @Override
+    public Long createEntryInfoAfterAudit(RelationsEntryCreateReqDTO entryCreateReqDTO) {
+        if (Objects.isNull(entryCreateReqDTO)) {
+            return -1L;
+        }
+        return relationsEntryService.createEntryInfoAfterAudit(entryCreateReqDTO);
+    }
+}

+ 8 - 5
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/dal/dataobject/entry/RelationsEntryDO.java

@@ -1,11 +1,10 @@
 package cn.iocoder.yudao.module.relations.dal.dataobject.entry;
 
-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
@@ -39,6 +38,10 @@ public class RelationsEntryDO extends BaseDO {
      * 部门ID
      */
     private Long deptId;
+    /**
+     * 职位id
+     */
+    private Long postId;
     /**
      * 职位
      */

+ 13 - 2
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/entry/RelationsEntryService.java

@@ -1,8 +1,11 @@
 package cn.iocoder.yudao.module.relations.service.entry;
 
-import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.*;
-import cn.iocoder.yudao.module.relations.dal.dataobject.entry.RelationsEntryDO;
 import cn.iocoder.yudao.framework.common.pojo.PageResult;
+import cn.iocoder.yudao.module.relations.api.entry.dto.RelationsEntryCreateReqDTO;
+import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.RelationsEntryPageReqVO;
+import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.RelationsEntryRespVO;
+import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.RelationsEntrySaveReqVO;
+import cn.iocoder.yudao.module.relations.dal.dataobject.entry.RelationsEntryDO;
 
 import javax.validation.Valid;
 
@@ -21,6 +24,14 @@ public interface RelationsEntryService {
      */
     Long createEntry(@Valid RelationsEntrySaveReqVO createReqVO);
 
+    /**
+     * 审批完成后添加入职信息
+     *
+     * @param entryCreateReqDTO 入职信息
+     * @return 编号
+     */
+    Long createEntryInfoAfterAudit(RelationsEntryCreateReqDTO entryCreateReqDTO);
+
     /**
      * 更新入职信息
      *

+ 17 - 11
yudao-module-personnel/yudao-module-relations-biz/src/main/java/cn/iocoder/yudao/module/relations/service/entry/RelationsEntryServiceImpl.java

@@ -1,8 +1,8 @@
 package cn.iocoder.yudao.module.relations.service.entry;
 
-import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.IdUtil;
-import cn.hutool.core.util.StrUtil;
+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.framework.tenant.core.aop.TenantIgnore;
@@ -10,24 +10,23 @@ 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 cn.iocoder.yudao.module.infra.api.file.dto.FileDTO;
+import cn.iocoder.yudao.module.relations.api.entry.dto.RelationsEntryCreateReqDTO;
+import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.RelationsEntryPageReqVO;
+import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.RelationsEntryRespVO;
+import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.RelationsEntrySaveReqVO;
+import cn.iocoder.yudao.module.relations.dal.dataobject.entry.RelationsEntryDO;
+import cn.iocoder.yudao.module.relations.dal.mysql.entry.RelationsEntryMapper;
 import cn.iocoder.yudao.module.system.api.dept.DeptApi;
 import cn.iocoder.yudao.module.system.api.dept.dto.DeptRespDTO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.validation.annotation.Validated;
 
-import java.util.*;
-import cn.iocoder.yudao.module.relations.controller.admin.entry.vo.*;
-import cn.iocoder.yudao.module.relations.dal.dataobject.entry.RelationsEntryDO;
-import cn.iocoder.yudao.framework.common.pojo.PageResult;
-import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
-
-import cn.iocoder.yudao.module.relations.dal.mysql.entry.RelationsEntryMapper;
-
 import javax.annotation.Resource;
+import java.util.List;
 
 import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
-import static cn.iocoder.yudao.module.relations.enums.ErrorCodeConstants.*;
+import static cn.iocoder.yudao.module.relations.enums.ErrorCodeConstants.RELATIONS_ENTRY_NOT_EXISTS;
 
 /**
  * 入职信息 Service 实现类
@@ -72,6 +71,13 @@ public class RelationsEntryServiceImpl implements RelationsEntryService {
         return entry.getId();
     }
 
+    @Override
+    public Long createEntryInfoAfterAudit(RelationsEntryCreateReqDTO entryCreateReqDTO) {
+        RelationsEntryDO relationsEntryDO = BeanUtils.toBean(entryCreateReqDTO, RelationsEntryDO.class);
+        entryMapper.insert(relationsEntryDO);
+        return relationsEntryDO.getId();
+    }
+
     @Override
     @TenantIgnore
     public void updateEntry(RelationsEntrySaveReqVO updateReqVO) {