lixing преди 4 години
родител
ревизия
ea9fda0596

+ 28 - 0
fm-person/src/main/java/com/persagy/fm/person/jms/handler/AccountMsgHandler.java

@@ -4,12 +4,19 @@ import com.google.gson.Gson;
 import com.persagy.common.enums.ResponseCode;
 import com.persagy.common.exception.BusinessException;
 import com.persagy.fm.common.jms.MsgBaseHandler;
+import com.persagy.fm.department.constant.enums.DepTypeEnum;
+import com.persagy.fm.department.model.Department;
+import com.persagy.fm.department.model.dto.QueryDepartmentDTO;
+import com.persagy.fm.department.service.IDepartmentService;
 import com.persagy.fm.person.constant.PersonJmsType;
 import com.persagy.fm.person.jms.model.AccountCreateMsg;
 import com.persagy.fm.person.jms.model.AccountUpdateMsg;
 import com.persagy.fm.person.model.ConvertPersonTool;
 import com.persagy.fm.person.model.Person;
 import com.persagy.fm.person.service.IPersonService;
+import com.persagy.fm.workresume.constant.enums.WorkResumeStateEnum;
+import com.persagy.fm.workresume.model.dto.AddWorkResumeDTO;
+import com.persagy.fm.workresume.service.IWorkResumeService;
 import com.rabbitmq.client.Channel;
 import org.springframework.amqp.core.Message;
 import org.springframework.amqp.rabbit.annotation.RabbitListener;
@@ -18,6 +25,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.util.CollectionUtils;
 
 import java.io.IOException;
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -31,6 +39,10 @@ public class AccountMsgHandler {
     @Autowired
     private IPersonService personService;
     @Autowired
+    private IWorkResumeService workResumeService;
+    @Autowired
+    private IDepartmentService departmentService;
+    @Autowired
     MsgBaseHandler msgBaseHandler;
 
     /**
@@ -41,8 +53,24 @@ public class AccountMsgHandler {
      * @version V1.0 2021/3/18 11:40 上午
      */
     public void createAccount(AccountCreateMsg accountCreateMsg) {
+        // 找到集团下类型为集团的部门
+        QueryDepartmentDTO queryDepartmentDTO = new QueryDepartmentDTO();
+        queryDepartmentDTO.setType(DepTypeEnum.GROUP.getType());
+        List<Department> departments = departmentService.queryDepartmentList(queryDepartmentDTO);
+        if (CollectionUtils.isEmpty(departments)) {
+            throw new IllegalArgumentException("尚未创建集团");
+        }
+        Department group = departments.get(0);
+
         Person person = ConvertPersonTool.INSTANCE.convert2Entity(accountCreateMsg);
         personService.createPerson(person);
+
+        // 创建人员的工作信息
+        AddWorkResumeDTO addWorkResumeDTO = new AddWorkResumeDTO();
+        addWorkResumeDTO.setHiredDate(new Date());
+        addWorkResumeDTO.setState(WorkResumeStateEnum.ON_JOB.getType());
+        addWorkResumeDTO.setDepId(group.getId());
+        addWorkResumeDTO.setPersonId(person.getId());
     }
 
 

+ 29 - 2
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonServiceImpl.java

@@ -19,6 +19,7 @@ import com.persagy.fm.saas.account.client.SaasAccountClient;
 import com.persagy.fm.saas.account.constant.enums.AccountBelongEnum;
 import com.persagy.fm.saas.account.constant.enums.AccountTypeEnum;
 import com.persagy.fm.saas.account.model.dto.AddSaasAccountDTO;
+import com.persagy.fm.saas.account.model.dto.DeleteSaasAccountDTO;
 import com.persagy.fm.saas.account.model.dto.PageQuerySaasAccountDTO;
 import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
 import com.persagy.fm.saas.accountproject.client.SaasAccountProjectClient;
@@ -26,7 +27,10 @@ import com.persagy.fm.saas.accountproject.model.dto.AddSaasAccountProjectDTO;
 import com.persagy.fm.saas.accountrole.client.SaasAccountRoleClient;
 import com.persagy.fm.saas.accountrole.constant.enums.AccountRoleTypeEnum;
 import com.persagy.fm.saas.accountrole.model.dto.AddSaasAccountRoleDTO;
+import com.persagy.fm.workresume.constant.enums.WorkResumeStateEnum;
+import com.persagy.fm.workresume.model.WorkResume;
 import com.persagy.fm.workresume.model.dto.AddWorkResumeDTO;
+import com.persagy.fm.workresume.model.dto.QueryWorkResumeDTO;
 import com.persagy.fm.workresume.service.IWorkResumeService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -361,8 +365,31 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
 
     @Override
     public void disablePerson(String personId) {
-        // TODO: 2021/3/22 禁用账号
-        // 人员状态更新为禁用
+        // 禁用账号
+        Person person = queryPersonDetail(personId);
+        String accountId = person.getAccountId();
+        DeleteSaasAccountDTO deleteSaasAccountDTO = new DeleteSaasAccountDTO();
+        deleteSaasAccountDTO.setAccountId(accountId);
+        saasAccountClient.dismissAccount(deleteSaasAccountDTO);
+
+        // 工作信息状态更新为禁用
+        dismissWorkResume(personId);
+    }
+
+    /**
+     * 禁用工作信息
+     *
+     * @param personId 人员id
+     * @author lixing
+     * @version V1.0 2021/3/30 8:20 下午
+     */
+    private void dismissWorkResume(String personId) {
+        QueryWorkResumeDTO queryWorkResumeDTO = new QueryWorkResumeDTO();
+        queryWorkResumeDTO.setPersonId(personId);
+        queryWorkResumeDTO.setState(WorkResumeStateEnum.ON_JOB.getType());
+        List<WorkResume> workResumes = workResumeService.queryWorkResumeList(queryWorkResumeDTO);
+        workResumes.forEach(workResume -> workResume.setState(WorkResumeStateEnum.DISMISS.getType()));
+        workResumeService.batchUpdateWorkResume(workResumes);
     }
 
     @Override

+ 23 - 3
fm-person/src/main/java/com/persagy/fm/saas/account/client/SaasAccountClient.java

@@ -4,9 +4,7 @@ import com.persagy.fm.common.client.FeignConfig;
 import com.persagy.fm.common.response.FmResponseContent;
 import com.persagy.fm.common.response.FmResponseMsg;
 import com.persagy.fm.saas.account.client.fallback.SaasAccountClientFallbackFactory;
-import com.persagy.fm.saas.account.model.dto.AddSaasAccountDTO;
-import com.persagy.fm.saas.account.model.dto.PageQuerySaasAccountDTO;
-import com.persagy.fm.saas.account.model.dto.UpdateSaasAccountDTO;
+import com.persagy.fm.saas.account.model.dto.*;
 import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
 import com.persagy.fm.saas.project.constant.FeignClientNameConstants;
 import org.springframework.cloud.openfeign.FeignClient;
@@ -56,4 +54,26 @@ public interface SaasAccountClient {
      */
     @PostMapping("/account/createSaasAccount")
     FmResponseMsg updateSaasAccount(@RequestBody UpdateSaasAccountDTO updateSaasAccountDTO);
+
+    /**
+     * 禁用账号
+     *
+     * @param deleteSaasAccountDTO 删除账号入参
+     * @return 禁用是否成功
+     * @author lixing
+     * @version V1.0 2021/3/30 8:16 下午
+     */
+    @PostMapping("/account/deleteSaasAccount")
+    FmResponseMsg dismissAccount(@RequestBody DeleteSaasAccountDTO deleteSaasAccountDTO);
+
+    /**
+     * 启用账号
+     *
+     * @param enableSaasAccountDTO 启用账号入参
+     * @return 启用是否成功
+     * @author lixing
+     * @version V1.0 2021/3/30 8:16 下午
+     */
+    @PostMapping("/account/enableSaasAccount")
+    FmResponseMsg enableAccount(@RequestBody EnableSaasAccountDTO enableSaasAccountDTO);
 }

+ 4 - 0
fm-person/src/main/java/com/persagy/fm/saas/project/model/vo/ProjectTreeItemVO.java

@@ -1,5 +1,6 @@
 package com.persagy.fm.saas.project.model.vo;
 
+import com.fasterxml.jackson.annotation.JsonInclude;
 import lombok.Data;
 
 import java.util.List;
@@ -11,6 +12,7 @@ import java.util.List;
  * @version V1.0 2021/3/22 2:25 下午
  **/
 @Data
+@JsonInclude(JsonInclude.Include.NON_NULL)
 public class ProjectTreeItemVO {
 
     private String id;
@@ -19,6 +21,8 @@ public class ProjectTreeItemVO {
      * 是否为项目,条目可能是区域或项目
      */
     private String isProject;
+
+
     private List<ProjectTreeItemVO> children;
 }
 

+ 9 - 0
fm-person/src/main/java/com/persagy/fm/workresume/service/IWorkResumeService.java

@@ -75,4 +75,13 @@ public interface IWorkResumeService {
      * @version V1.0 2021-03-15 17:20:06
      */
     IPage<WorkResume> pageQueryWorkResume(PageQueryWorkResumeDTO pageQueryWorkResumeDTO);
+
+    /**
+     * 批量更新工作信息
+     *
+     * @param workResumes 工作信息列表
+     * @author lixing
+     * @version V1.0 2021/3/30 8:26 下午
+     */
+    void batchUpdateWorkResume(List<WorkResume> workResumes);
 }

+ 5 - 0
fm-person/src/main/java/com/persagy/fm/workresume/service/impl/WorkResumeServiceImpl.java

@@ -226,4 +226,9 @@ public class WorkResumeServiceImpl extends ServiceImpl<WorkResumeMapper, WorkRes
 
         return getBaseMapper().selectPage(pageParam, queryWrapper);
     }
+
+    @Override
+    public void batchUpdateWorkResume(List<WorkResume> workResumes) {
+        updateBatchById(workResumes);
+    }
 }