lixing 4 years ago
parent
commit
0637269f5a

+ 26 - 0
fm-person/src/main/java/com/persagy/fm/person/model/ConvertPersonTool.java

@@ -1,5 +1,6 @@
 package com.persagy.fm.person.model;
 
+import com.persagy.fm.common.model.vo.SimpleObjVO;
 import com.persagy.fm.person.jms.model.AccountCreateMsg;
 import com.persagy.fm.person.model.dto.AddPersonDTO;
 import com.persagy.fm.person.model.dto.PageQueryPersonDTO;
@@ -10,6 +11,7 @@ import com.persagy.fm.person.model.vo.SimplePersonListItemVO;
 import com.persagy.fm.saas.account.model.dto.AddSaasAccountDTO;
 import com.persagy.fm.saas.account.model.dto.UpdateSaasAccountDTO;
 import com.persagy.fm.saas.account.model.vo.SaasAccountListItemVO;
+import com.persagy.fm.saas.project.model.SaasProject;
 import com.persagy.fm.workresume.model.dto.PageQueryWorkResumeDTO;
 import org.mapstruct.*;
 import org.mapstruct.factory.Mappers;
@@ -158,5 +160,29 @@ public interface ConvertPersonTool {
             @Mapping(target = "validEndTime", source = "updatePersonDTO.expireDate"),
     })
     UpdateSaasAccountDTO convert2UpdateSaasAccountDTO(SaasAccountListItemVO account, UpdatePersonDTO updatePersonDTO);
+
+    /**
+     * 运维系统项目列表转换为展示给前端的simpleProjectVO列表
+     *
+     * @param saasProjects 运维系统项目列表
+     * @return simpleProjectVO列表
+     * @author lixing
+     * @version V1.0 2021/4/9 4:45 下午
+     */
+    List<SimpleObjVO> convert2SimpleProjectVoList(List<SaasProject> saasProjects);
+
+    /**
+     * 运维系统项目转换为展示给前端的simpleProjectVO
+     *
+     * @param saasProject 运维系统项目
+     * @return simpleProjectVO
+     * @author lixing
+     * @version V1.0 2021/4/9 4:47 下午
+     */
+    @Mappings({
+            @Mapping(target = "id", source = "projectId"),
+            @Mapping(target = "name", source = "projectName")
+    })
+    SimpleObjVO convert2SimpleProjectVO(SaasProject saasProject);
 }
 

+ 15 - 0
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonServiceImpl.java

@@ -34,6 +34,8 @@ import com.persagy.fm.saas.accountrole.model.SaasAccountRole;
 import com.persagy.fm.saas.accountrole.model.dto.AddSaasAccountRoleDTO;
 import com.persagy.fm.saas.accountrole.model.vo.AccountRoleVO;
 import com.persagy.fm.saas.accountrole.service.ISaasAccountRoleService;
+import com.persagy.fm.saas.project.model.SaasProject;
+import com.persagy.fm.saas.project.service.ISaasProjectService;
 import com.persagy.fm.workresume.constant.enums.WorkResumeEnableStateEnum;
 import com.persagy.fm.workresume.constant.enums.WorkResumeHiredStateEnum;
 import com.persagy.fm.workresume.model.WorkResume;
@@ -75,6 +77,8 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
     private IProfessionService professionService;
     @Autowired
     private IDepartmentService departmentService;
+    @Autowired
+    private ISaasProjectService saasProjectService;
 
     @Override
     public String createPerson(Person person) {
@@ -884,6 +888,17 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
             }
         }
 
+        // 设置项目
+        List<SaasAccountProject> saasAccountProjects = saasAccountProjectService.
+                querySaasAccountProjectListByAccountId(accountId);
+        if (!CollectionUtils.isEmpty(saasAccountProjects)) {
+            List<String> projectIds = saasAccountProjects.stream().
+                    map(SaasAccountProject::getProjectId).collect(Collectors.toList());
+            List<SaasProject> saasProjects = saasProjectService.queryProjectList(projectIds);
+            List<SimpleObjVO> projectVoList = ConvertPersonTool.INSTANCE.convert2SimpleProjectVoList(saasProjects);
+            responsePersonItemVO.setProjects(projectVoList);
+        }
+
         // 设置员工类型
         String type = person.getPersonType();
         responsePersonItemVO.setPersonTypeVO(getPersonTypeVO(type));

+ 2 - 1
fm-person/src/main/resources/mapper/PersonMapper.xml

@@ -28,7 +28,8 @@
 
     <select id="queryPersonList" parameterType="com.persagy.fm.person.model.dto.PageQueryPersonDTO"
             resultType="com.persagy.fm.person.model.Person">
-        select p.id as id, p.name as name, p.profession as profession, p.account_id as account_id, p.person_type as person_type
+        select p.id as id, p.name as name, p.profession as profession, p.account_id as account_id, p.person_type as
+        person_type, p.username as username
         from person p,
         work_resume w
         where p.id = w.person_id