Browse Source

Merge branch 'master' of http://114.55.67.98:8070/Natural_p1/zjugis_OA

qiny 1 year ago
parent
commit
d9bd22f898

+ 3 - 0
zjugis-business/src/main/java/com/zjugis/business/converter/interview/InterviewConvert.java

@@ -6,6 +6,7 @@ import com.zjugis.business.flow.staff.controller.vo.StaffVO;
 import com.zjugis.business.flow.staff.entity.StaffDO;
 import com.zjugis.framework.common.pojo.PageResult;
 import com.zjugis.module.adm.api.staff.dto.StaffRecordsDTO;
+import com.zjugis.module.adm.api.staff.dto.StaffReportDTO;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
 
@@ -23,4 +24,6 @@ public interface InterviewConvert {
     InterviewDO convert(InterviewVO vo);
 
     InterviewVO convert01(InterviewDO entity);
+
+    StaffReportDTO convert02(InterviewDO interviewDO);
 }

+ 9 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/interview/controller/InterviewController.java

@@ -83,6 +83,15 @@ public class InterviewController extends BaseController {
         return CommonResult.success(interviewService.getPage(dto));
     }
 
+    /**
+     * 报道
+     */
+    @GetMapping("/report")
+    @Operation(summary = "报道")
+    public CommonResult<String> report(String id) {
+        return CommonResult.success(interviewService.report(id));
+    }
+
 
     /**
      * 创建面试记录

+ 2 - 0
zjugis-business/src/main/java/com/zjugis/business/flow/interview/service/InterviewService.java

@@ -56,4 +56,6 @@ public interface InterviewService {
     String deleteByCardId(String cardId);
 
     InterviewVO flowAdd(String flowInstanceId, String userId);
+
+    String report(String id);
 }

+ 20 - 15
zjugis-business/src/main/java/com/zjugis/business/flow/interview/service/InterviewServiceImpl.java

@@ -8,36 +8,24 @@ import com.zjugis.business.constants.DictConstants;
 import com.zjugis.business.constants.FlowStatusConstants;
 import com.zjugis.business.converter.common.SelectConvert;
 import com.zjugis.business.converter.interview.InterviewConvert;
-import com.zjugis.business.converter.recruit.RecruitConvert;
-import com.zjugis.business.converter.staff.StaffConvert;
 import com.zjugis.business.flow.interview.controller.dto.InterviewPageDTO;
 import com.zjugis.business.flow.interview.controller.vo.InterviewVO;
 import com.zjugis.business.flow.interview.dao.InterviewDAO;
 import com.zjugis.business.flow.interview.entity.InterviewDO;
-import com.zjugis.business.flow.recruit.controller.vo.RecruitReqVO;
-import com.zjugis.business.flow.recruit.entity.RecruitDO;
-import com.zjugis.business.flow.recruit.entity.RecruitDetailDO;
 import com.zjugis.business.flow.staff.controller.dto.StaffDictDTO;
-import com.zjugis.business.flow.staff.controller.dto.StaffPageDTO;
-import com.zjugis.business.flow.staff.controller.vo.StaffVO;
-import com.zjugis.business.flow.staff.dao.StaffDAO;
-import com.zjugis.business.flow.staff.entity.StaffDO;
-import com.zjugis.business.flow.staff.service.StaffService;
+import com.zjugis.business.utils.IdCardUtil;
 import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.framework.common.pojo.PageResult;
 import com.zjugis.framework.common.util.date.LocalDateTimeUtils;
 import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
-import com.zjugis.framework.security.core.util.SecurityFrameworkUtils;
 import com.zjugis.framework.workflow.model.IFlowInstance;
 import com.zjugis.framework.workflow.rpc.remote.WorkflowClient;
 import com.zjugis.module.adm.api.staff.StaffApi;
-import com.zjugis.module.adm.api.staff.dto.StaffDeptPostDTO;
-import com.zjugis.module.adm.api.staff.dto.StaffRecordsDTO;
+import com.zjugis.module.adm.api.staff.dto.StaffReportDTO;
 import com.zjugis.module.adm.api.staff.dto.StaffStateDTO;
 import com.zjugis.module.system.api.dict.DictDataApi;
 import com.zjugis.module.system.api.dict.dto.DictDataRespDTO;
 import com.zjugis.module.system.api.user.AdminUserApi;
-import com.zjugis.module.system.api.user.dto.AdminUserRespDTO;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -46,7 +34,6 @@ import javax.annotation.Resource;
 import java.time.LocalDateTime;
 import java.util.*;
 
-import static com.zjugis.business.constants.FlowStatusConstants.FLOW_PROCESS;
 import static com.zjugis.business.enums.ErrorCodeConstants.*;
 import static com.zjugis.framework.common.exception.util.ServiceExceptionUtil.exception;
 
@@ -203,6 +190,24 @@ public class InterviewServiceImpl implements InterviewService {
         return res;
     }
 
+    @Transactional
+    @Override
+    public String report(String id) {
+        InterviewDO interviewDO = interviewDAO.selectById(id);
+        if (interviewDO == null) {
+            throw exception(INTERVIEW_NOT_EXISTS);
+        }
+
+        StaffReportDTO dto = InterviewConvert.INSTANCE.convert02(interviewDO);
+        dto.setBirthday(IdCardUtil.getBirthday(dto.getSfzh()));
+        if (StrUtil.isNotEmpty(interviewDO.getUserId())) {
+            dto.setUserId(interviewDO.getUserId());
+        }
+        staffApi.createStaff(dto).getCheckedData();
+        interviewDAO.deleteById(interviewDO);
+        return "新增成功";
+    }
+
 
     private PageResult<InterviewVO> encapsulatePage(PageResult<InterviewDO> page) {
         return InterviewConvert.INSTANCE.convertPage(page);

+ 1 - 1
zjugis-business/src/main/resources/application-prod.yaml

@@ -83,7 +83,7 @@ resign:
     planPostIds: 3000021
 
 contract:
-  data:
+  renew:
     #    杭州人力
     hangzhou: 6
     #    南京人力

+ 4 - 0
zjugis-module-adm/zjugis-module-adm-api/src/main/java/com/zjugis/module/adm/api/staff/StaffApi.java

@@ -5,6 +5,7 @@ import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.framework.common.util.collection.CollectionUtils;
 import com.zjugis.module.adm.api.staff.dto.StaffDeptPostDTO;
 import com.zjugis.module.adm.api.staff.dto.StaffRecordsDTO;
+import com.zjugis.module.adm.api.staff.dto.StaffReportDTO;
 import com.zjugis.module.adm.api.staff.dto.StaffStateDTO;
 import com.zjugis.module.adm.enums.ApiConstants;
 import io.swagger.v3.oas.annotations.Operation;
@@ -78,4 +79,7 @@ public interface StaffApi {
     CommonResult<Integer> updateContract(@Valid @RequestBody StaffRecordsDTO dto);
 
 
+    @PostMapping(PREFIX+"/createStaff")
+    @Operation(summary = "新增员工账号")
+    CommonResult<String> createStaff(@Valid @RequestBody StaffReportDTO dto);
 }

+ 93 - 0
zjugis-module-adm/zjugis-module-adm-api/src/main/java/com/zjugis/module/adm/api/staff/dto/StaffReportDTO.java

@@ -0,0 +1,93 @@
+package com.zjugis.module.adm.api.staff.dto;
+
+import lombok.Data;
+
+
+import java.time.LocalDateTime;
+
+/**
+ * @author jzh
+ * @since 2024/7/2 14:54
+ */
+@Data
+public class StaffReportDTO {
+
+    /**
+     * 用户ID
+     */
+    private String userId;
+
+    /**
+     * 用户名
+     */
+    private String nickname;
+
+
+    /**
+     * 部门ID
+     */
+    private String deptId;
+
+
+    /**
+     * 部门名称
+     */
+    private String deptName;
+
+
+    /**
+     * 应聘岗位
+     */
+    private String ypgw;
+
+
+    /**
+     * 等级初定
+     */
+    private String djcd;
+
+    /**
+     * 拟定劳务期 (年)
+     */
+    private Integer lwq;
+
+    /**
+     * 试用期(月)
+     */
+    private Integer syq;
+
+    /**
+     * 报到日期
+     */
+    private LocalDateTime bdrq;
+
+    /**
+     * 登录名称
+     */
+    private String loginName;
+
+    /**
+     * 身份证号
+     */
+    private String sfzh;
+
+    /**
+     * 性别
+     */
+    private Integer sex;
+    /**
+     * 手机号
+     */
+    private String mobile;
+
+    /**
+     * 生日
+     */
+    private LocalDateTime birthday;
+
+    /**
+     * 年龄
+     */
+    private Integer nl;
+
+}

+ 6 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/api/staff/StaffApiImpl.java

@@ -3,6 +3,7 @@ package com.zjugis.module.adm.api.staff;
 import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.module.adm.api.staff.dto.StaffDeptPostDTO;
 import com.zjugis.module.adm.api.staff.dto.StaffRecordsDTO;
+import com.zjugis.module.adm.api.staff.dto.StaffReportDTO;
 import com.zjugis.module.adm.api.staff.dto.StaffStateDTO;
 import com.zjugis.module.adm.controller.admin.staff.vo.records.RecordsRespVO;
 import com.zjugis.module.adm.convert.staff.RecordsConvert;
@@ -86,4 +87,9 @@ public class StaffApiImpl implements StaffApi {
     public CommonResult<Integer> updateContract(StaffRecordsDTO dto) {
         return success(recordsService.updateContract(dto));
     }
+
+    @Override
+    public CommonResult<String> createStaff(StaffReportDTO dto) {
+        return success( recordsService.report(dto));
+    }
 }

+ 1 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/controller/admin/staff/StaffRecordsController.java

@@ -76,6 +76,7 @@ public class StaffRecordsController {
         return success(recordsService.insertStaff(dto));
     }
 
+
     /**
      * 档案编辑
      */

+ 3 - 0
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/staff/RecordsService.java

@@ -2,6 +2,7 @@ package com.zjugis.module.adm.service.staff;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zjugis.module.adm.api.staff.dto.StaffRecordsDTO;
+import com.zjugis.module.adm.api.staff.dto.StaffReportDTO;
 import com.zjugis.module.adm.api.staff.dto.StaffStateDTO;
 import com.zjugis.module.adm.controller.admin.staff.vo.records.RecordsPageReqVO;
 import com.zjugis.module.adm.controller.admin.staff.vo.records.RecordsRespVO;
@@ -72,4 +73,6 @@ public interface RecordsService {
     Long validMobile(String mobile);
 
     Integer updateContract(StaffRecordsDTO dto);
+
+    String report(StaffReportDTO dto);
 }

+ 61 - 3
zjugis-module-adm/zjugis-module-adm-biz/src/main/java/com/zjugis/module/adm/service/staff/RecordsServiceImpl.java

@@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.zjugis.framework.common.pojo.CommonResult;
 import com.zjugis.framework.mybatis.core.query.LambdaQueryWrapperX;
 import com.zjugis.module.adm.api.staff.dto.StaffRecordsDTO;
+import com.zjugis.module.adm.api.staff.dto.StaffReportDTO;
 import com.zjugis.module.adm.api.staff.dto.StaffStateDTO;
 import com.zjugis.module.adm.controller.admin.certificate.vo.CertDetailVO;
 import com.zjugis.module.adm.controller.admin.staff.vo.records.RecordsPageReqVO;
@@ -168,7 +169,7 @@ public class RecordsServiceImpl implements RecordsService {
         }
 
         //亲属查询
-        List<StaffFamilyDetailDO> family = familyDOMapper.selectList(new LambdaQueryWrapperX<StaffFamilyDetailDO>().eq(StaffFamilyDetailDO::getUserId,userId));
+        List<StaffFamilyDetailDO> family = familyDOMapper.selectList(new LambdaQueryWrapperX<StaffFamilyDetailDO>().eq(StaffFamilyDetailDO::getUserId, userId));
         if (CollectionUtil.isNotEmpty(family)) {
             vo.setFamilyList(family);
         }
@@ -408,10 +409,10 @@ public class RecordsServiceImpl implements RecordsService {
 
     @Override
     public Integer updateContract(StaffRecordsDTO dto) {
-        if(StrUtil.isEmpty(dto.getUserId())){
+        if (StrUtil.isEmpty(dto.getUserId())) {
             throw exception(STAFF_NOT_EXISTS);
         }
-       StaffRecordSDO staffRecordSDO= recordsMapper.selectOne(new LambdaQueryWrapperX<StaffRecordSDO>().eq(StaffRecordSDO::getUserId, dto.getUserId()));
+        StaffRecordSDO staffRecordSDO = recordsMapper.selectOne(new LambdaQueryWrapperX<StaffRecordSDO>().eq(StaffRecordSDO::getUserId, dto.getUserId()));
         if (staffRecordSDO == null) {
             throw exception(STAFF_NOT_EXISTS);
         }
@@ -424,6 +425,63 @@ public class RecordsServiceImpl implements RecordsService {
         return recordsMapper.updateById(staffRecordSDO);
     }
 
+    @Override
+    public String report(StaffReportDTO dto) {
+        StaffRecordSDO staffRecordSDO = new StaffRecordSDO();
+        if (StrUtil.isNotEmpty(dto.getUserId())) {
+            validExistsByUserId(dto.getUserId());
+            StaffRecordSDO ex = recordsMapper.selectOne(new LambdaQueryWrapperX<StaffRecordSDO>().eq(StaffRecordSDO::getUserId, dto.getUserId()));
+            if (ex == null) {
+                throw exception(STAFF_NOT_EXISTS);
+            }
+            staffRecordSDO = ex;
+            staffRecordSDO.setMobilePhone(dto.getMobile());
+            staffRecordSDO.setDeptId(dto.getDeptId());
+            staffRecordSDO.setDeptName(dto.getDeptName());
+            staffRecordSDO.setDrzw(dto.getYpgw());
+            staffRecordSDO.setNldj(dto.getDjcd());
+            staffRecordSDO.setRgssj(dto.getBdrq());
+            staffRecordSDO.setNl(LocalDateTime.now().getYear() - dto.getBirthday().getYear());
+            staffRecordSDO.setCardid(dto.getSfzh());
+            staffRecordSDO.setState("2");
+            recordsMapper.updateById(staffRecordSDO);
+        } else {
+            //生成员工工号
+            String loginName = generateNum();
+            staffRecordSDO.setId(loginName);
+            staffRecordSDO.setUserId(UUID.randomUUID().toString());
+            staffRecordSDO.setDeleted(false);
+            staffRecordSDO.setDeptId(dto.getDeptId());
+            staffRecordSDO.setDeptName(dto.getDeptName());
+            staffRecordSDO.setNickname(dto.getNickname());
+            staffRecordSDO.setDrzw(dto.getYpgw());
+            staffRecordSDO.setNldj(dto.getDjcd());
+            staffRecordSDO.setRgssj(dto.getBdrq());
+            staffRecordSDO.setLoginName(loginName);
+            staffRecordSDO.setSex(String.valueOf(dto.getSex()));
+            staffRecordSDO.setBirthday(dto.getBirthday());
+            staffRecordSDO.setMobilePhone(dto.getMobile());
+            staffRecordSDO.setCardid(dto.getSfzh());
+
+            //计算年龄
+            if (staffRecordSDO.getBirthday() != null) {
+                Integer birthYear = staffRecordSDO.getBirthday().getYear();
+                Integer nowYear = LocalDateTime.now().getYear();
+                staffRecordSDO.setNl(nowYear - birthYear);
+            }
+            recordsMapper.insert(staffRecordSDO);
+        }
+
+
+        //新建员工账号以及其相关的关系 如果账号已经存在就开启账号的使用状态 以及修改其相关的权限和部门关系
+        UserBaseDTO user = initUser(staffRecordSDO);
+        CommonResult<String> result = userApi.createUser(user);
+        if (result.getCode() != 0) {
+            throw new RuntimeException(result.getMsg());
+        }
+        return result.getCheckedData();
+    }
+
     private UserBaseDTO initUser(StaffRecordSDO staffRecordSDO) {
         UserBaseDTO dto = new UserBaseDTO();
         dto.setUsername(staffRecordSDO.getLoginName());