lixing 4 năm trước cách đây
mục cha
commit
1bfd115520

+ 0 - 3
fm-person/src/main/java/com/persagy/fm/department/controller/DepartmentController.java

@@ -20,9 +20,6 @@ import com.persagy.fm.depproject.model.dto.QueryDepProjectDTO;
 import com.persagy.fm.depproject.service.IDepProjectService;
 import com.persagy.fm.saas.project.model.vo.ProjectTreeItemVO;
 import com.persagy.fm.translate.model.Trans;
-import com.persagy.fm.translate.model.TransType;
-import com.persagy.fm.workresume.model.WorkResume;
-import com.persagy.fm.workresume.model.dto.QueryWorkResumeDTO;
 import com.persagy.fm.workresume.service.IWorkResumeService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;

+ 3 - 6
fm-person/src/main/java/com/persagy/fm/department/service/impl/DepTranslatorImpl.java

@@ -9,6 +9,7 @@ import com.persagy.fm.person.service.IPersonService;
 import com.persagy.fm.saas.project.client.SaasProjectClient;
 import com.persagy.fm.saas.project.model.SaasProject;
 import com.persagy.fm.saas.project.model.dto.QuerySaasProjectDTO;
+import com.persagy.fm.saas.project.service.ISaasProjectService;
 import org.apache.commons.lang3.StringUtils;
 import org.assertj.core.util.Lists;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -30,7 +31,7 @@ public class DepTranslatorImpl implements IDepTranslator {
     @Autowired
     IPersonService personService;
     @Autowired
-    SaasProjectClient saasProjectClient;
+    ISaasProjectService saasProjectService;
 
     @Override
     public List<ManagerSimpleObjVO> getManagerVOList(List<String> managerIds) {
@@ -51,11 +52,7 @@ public class DepTranslatorImpl implements IDepTranslator {
         if (CollectionUtils.isEmpty(projectIds)) {
             return Lists.newArrayList();
         }
-        QuerySaasProjectDTO querySaasProjectDTO = new QuerySaasProjectDTO();
-        querySaasProjectDTO.setDefaultValue();
-        querySaasProjectDTO.setProjectIds(projectIds);
-        FmResponseContent<List<SaasProject>> listFmResponseContent = saasProjectClient.queryProjectList(querySaasProjectDTO);
-        List<SaasProject> saasProjects = listFmResponseContent.getContent();
+        List<SaasProject> saasProjects = saasProjectService.queryProjectList(projectIds);
         return saasProjects.stream().map(saasProject -> {
             ProjectSimpleObjVO projectVO = new ProjectSimpleObjVO();
             projectVO.setId(saasProject.getProjectId());

+ 3 - 3
fm-person/src/main/java/com/persagy/fm/person/model/dto/BatchUpdatePersonDTO.java

@@ -20,6 +20,9 @@ public class BatchUpdatePersonDTO {
     @NotNull(message = "人员主键不能为空")
     private List<Long> ids;
 
+    @ApiModelProperty(value = "员工类型")
+    private String personType;
+
     @ApiModelProperty(value = "主岗")
     private String mainDuty;
 
@@ -32,9 +35,6 @@ public class BatchUpdatePersonDTO {
     @ApiModelProperty(value = "所属部门id", required = true)
     private List<Long> depIds;
 
-    @ApiModelProperty(value = "关联的项目id", required = true)
-    private List<String> projectIds;
-
     @ApiModelProperty(value = "附加权限")
     private List<String> otherRoles;
 }

+ 1 - 2
fm-person/src/main/java/com/persagy/fm/person/model/dto/UpsertPersonDTO.java

@@ -78,8 +78,7 @@ public class UpsertPersonDTO {
     private Long leader;
 
     @ApiModelProperty(value = "专业")
-    // TODO: 2021/4/2 修改为列表
-    private String profession;
+    private List<String> professions;
 
     @ApiModelProperty(value = "附加权限")
     private List<String> otherRoles;

+ 75 - 6
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonServiceImpl.java

@@ -203,6 +203,9 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
         Person person = ConvertPersonTool.INSTANCE.convertAddDto2Entity(addPersonDTO);
         person.setNamePinyin(PinyinUtil.getPinyin(person.getName(), ""));
         person.setAccountId(accountId);
+        if (!CollectionUtils.isEmpty(addPersonDTO.getProfessions())) {
+            person.setProfession(String.join(",", addPersonDTO.getProfessions()));
+        }
         // 设置默认值
         setDefaultValue(person);
         save(person);
@@ -232,6 +235,9 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
      */
     @Override
     public Boolean checkDuplicateUserName(String username) {
+        if (StringUtils.isBlank(username)) {
+            return false;
+        }
         List<Person> people = queryByUsername(username);
         if (!CollectionUtils.isEmpty(people)) {
             return true;
@@ -245,6 +251,9 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
 
     @Override
     public Boolean checkDuplicateMail(String mail) {
+        if (StringUtils.isBlank(mail)) {
+            return false;
+        }
         PageQuerySaasAccountDTO pageQuerySaasAccountDTO = new PageQuerySaasAccountDTO();
         pageQuerySaasAccountDTO.setMail(mail);
         List<SaasAccountListItemVO> accountListItemVoList = saasAccountService.querySaasAccountList(pageQuerySaasAccountDTO);
@@ -261,6 +270,9 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
      */
     @Override
     public Boolean checkDuplicatePhoneNum(String phoneNum) {
+        if (StringUtils.isBlank(phoneNum)) {
+            return false;
+        }
         PageQuerySaasAccountDTO pageQuerySaasAccountDTO = new PageQuerySaasAccountDTO();
         pageQuerySaasAccountDTO.setPhoneNum(phoneNum);
         List<SaasAccountListItemVO> accountListItemVoList = saasAccountService.querySaasAccountList(pageQuerySaasAccountDTO);
@@ -307,6 +319,9 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
      */
     @Override
     public Boolean checkDuplicateIdNumber(String idNumber) {
+        if (StringUtils.isBlank(idNumber)) {
+            return false;
+        }
         List<Person> people = queryByIdCard(idNumber);
         return !CollectionUtils.isEmpty(people);
     }
@@ -321,6 +336,9 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
      */
     @Override
     public Boolean checkDuplicateJobNumber(String jobNumber) {
+        if (StringUtils.isBlank(jobNumber)) {
+            return false;
+        }
         List<Person> people = queryByJobNumber(jobNumber);
         return !CollectionUtils.isEmpty(people);
     }
@@ -427,7 +445,11 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
         person.setModifier(DefaultAppContext.getContext().getAccountId());
         updateById(person);
         // 账号基本信息发生改变,更新账号信息
-        SaasAccountListItemVO account = saasAccountService.querySaasAccountDetail(person.getAccountId());
+        String accountId = person.getAccountId();
+        if (StringUtils.isBlank(accountId)) {
+            throw new IllegalArgumentException("无法获取人员的账号信息,人员的账号id为空,人员id:" + personId);
+        }
+        SaasAccountListItemVO account = saasAccountService.querySaasAccountDetail(accountId);
         if (accountInfoChanged(updatePersonDTO, account)) {
             UpdateSaasAccountDTO updateSaasAccountDTO = ConvertPersonTool.INSTANCE.
                     convert2UpdateSaasAccountDTO(account, updatePersonDTO);
@@ -436,24 +458,62 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
 
         // 更新账号和角色的关联
         List<SaasAccountRole> saasAccountRoles = saasAccountRoleService.
-                querySaasAccountRoleListByAccountIdList(Lists.newArrayList(person.getAccountId()));
+                querySaasAccountRoleListByAccountIdList(Lists.newArrayList(accountId));
         if (accountRoleChanged(saasAccountRoles, updatePersonDTO.getMainDuty(),
                 updatePersonDTO.getOtherDuties(), updatePersonDTO.getOtherRoles())) {
-            // TODO: 2021/4/7
+            resetAccountRoles(updatePersonDTO, accountId);
         }
 
         // 更新账号和项目的关联
         List<SaasAccountProject> saasAccountProjects = saasAccountProjectService.
-                querySaasAccountProjectListByAccountId(person.getAccountId());
+                querySaasAccountProjectListByAccountId(accountId);
         if (accountProjectsChanged(saasAccountProjects, updatePersonDTO.getProjectIds())) {
-            // TODO: 2021/4/8
+            saasAccountProjectService.resetSaasAccountProject(accountId, updatePersonDTO.getProjectIds());
         }
 
         // 更新工作信息
         List<String> depIdsAfterUpdate = updatePersonDTO.getDepIds();
         updatePersonWorkResumes(depIdsAfterUpdate, personId);
     }
-    
+
+    /**
+     * 重置账号与角色的关联关系
+     *
+     * @param updatePersonDTO 更新人员入参
+     * @param accountId 账号id
+     * @author lixing
+     * @version V1.0 2021/4/8 3:07 下午
+     */
+    private void resetAccountRoles(UpdatePersonDTO updatePersonDTO, String accountId) {
+        List<AddSaasAccountRoleDTO> accountRoleDTOList = Lists.newArrayList();
+        if (StringUtils.isNotBlank(updatePersonDTO.getMainDuty())) {
+            AddSaasAccountRoleDTO mainDutyDTO = new AddSaasAccountRoleDTO();
+            mainDutyDTO.setRoleId(updatePersonDTO.getMainDuty());
+            mainDutyDTO.setCasType(AccountRoleTypeEnum.MAIN_DUTY.getType());
+            accountRoleDTOList.add(mainDutyDTO);
+        }
+
+        if (!CollectionUtils.isEmpty(updatePersonDTO.getOtherDuties())) {
+            updatePersonDTO.getOtherDuties().forEach(otherDuty -> {
+                AddSaasAccountRoleDTO otherDutyDTO = new AddSaasAccountRoleDTO();
+                otherDutyDTO.setRoleId(otherDuty);
+                otherDutyDTO.setCasType(AccountRoleTypeEnum.OTHER_DUTY.getType());
+                accountRoleDTOList.add(otherDutyDTO);
+            });
+        }
+
+        if (!CollectionUtils.isEmpty(updatePersonDTO.getOtherRoles())) {
+            updatePersonDTO.getOtherRoles().forEach(otherRole -> {
+                AddSaasAccountRoleDTO otherDutyDTO = new AddSaasAccountRoleDTO();
+                otherDutyDTO.setRoleId(otherRole);
+                otherDutyDTO.setCasType(AccountRoleTypeEnum.SYS_ROLE.getType());
+                accountRoleDTOList.add(otherDutyDTO);
+            });
+        }
+
+        saasAccountRoleService.resetSaasAccountRole(accountId, accountRoleDTOList);
+    }
+
     /**
      * 判断账号关联的项目是否发生变化
      *
@@ -734,6 +794,15 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
     @Override
     public void batchUpdatePeople(BatchUpdatePersonDTO batchUpdatePersonDTO) {
         // TODO: 2021/3/22 批量更新人员
+        List<Long> personIds = batchUpdatePersonDTO.getIds();
+        if (CollectionUtils.isEmpty(personIds)) {
+            return;
+        }
+        personIds.forEach(personId -> {
+            UpdatePersonDTO updatePersonDTO = new UpdatePersonDTO();
+//            updatePerson();
+        });
+
     }
 
     @Override

+ 13 - 1
fm-person/src/main/java/com/persagy/fm/saas/accountproject/client/SaasAccountProjectClient.java

@@ -12,6 +12,7 @@ import com.persagy.fm.saas.accountproject.model.SaasAccountProject;
 import com.persagy.fm.saas.accountproject.model.dto.AddSaasAccountProjectDTO;
 import com.persagy.fm.saas.accountproject.model.dto.DeleteSaasAccountProjectDTO;
 import com.persagy.fm.saas.accountproject.model.dto.QuerySaasAccountProjectDTO;
+import com.persagy.fm.saas.accountproject.model.dto.ResetSaasAccountProjectDTO;
 import com.persagy.fm.saas.project.constant.FeignClientNameConstants;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -59,6 +60,17 @@ public interface SaasAccountProjectClient {
      * @return FmResponseMsg
      * @version V1.0 2021/3/23 11:57 上午
      */
-    @PostMapping("/accountProject/createSaasAccount")
+    @PostMapping("/accountProject/deleteSaasAccountProject")
     FmResponseMsg deleteSaasAccountProject(@RequestBody DeleteSaasAccountProjectDTO deleteSaasAccountProjectDTO);
+
+    /**
+     * 重置账号和项目的关联关系
+     *
+     * @param resetSaasAccountProjectDTO  重置账号项目入参
+     * @return FmResponseMsg
+     * @author lixing
+     * @version V1.0 2021/4/8 2:44 下午
+     */
+    @PostMapping("/accountProject/resetSaasAccountProject")
+    FmResponseMsg resetSaasAccountProject(@RequestBody ResetSaasAccountProjectDTO resetSaasAccountProjectDTO);
 }

+ 10 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountproject/service/ISaasAccountProjectService.java

@@ -55,4 +55,14 @@ public interface ISaasAccountProjectService {
      * @version V1.0 2021-03-26 15:15:40
      */
     List<SaasAccountProject> querySaasAccountProjectListByAccountId(String accountId);
+
+    /**
+     * 重置账号关联的项目
+     *
+     * @param accountId 账号id
+     * @param projectIds 最新关联的项目
+     * @author lixing
+     * @version V1.0 2021/4/8 2:47 下午
+     */
+    void resetSaasAccountProject(String accountId, List<String> projectIds);
 }

+ 10 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountproject/service/impl/SaasAccountProjectServiceImpl.java

@@ -6,6 +6,7 @@ import com.persagy.fm.saas.accountproject.model.SaasAccountProject;
 import com.persagy.fm.saas.accountproject.model.dto.AddSaasAccountProjectDTO;
 import com.persagy.fm.saas.accountproject.model.dto.DeleteSaasAccountProjectDTO;
 import com.persagy.fm.saas.accountproject.model.dto.QuerySaasAccountProjectDTO;
+import com.persagy.fm.saas.accountproject.model.dto.ResetSaasAccountProjectDTO;
 import com.persagy.fm.saas.accountproject.service.ISaasAccountProjectService;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -55,4 +56,13 @@ public class SaasAccountProjectServiceImpl implements ISaasAccountProjectService
         querySaasAccountProjectDTO.setAccountId(accountId);
         return querySaasAccountProjectList(querySaasAccountProjectDTO);
     }
+
+    @Override
+    public void resetSaasAccountProject(String accountId, List<String> projectIds) {
+        ResetSaasAccountProjectDTO resetSaasAccountProjectDTO = new ResetSaasAccountProjectDTO();
+        resetSaasAccountProjectDTO.setDefaultValueNoAccountId();
+        resetSaasAccountProjectDTO.setAccountId(accountId);
+        resetSaasAccountProjectDTO.setProjectIds(projectIds);
+        saasAccountProjectClient.resetSaasAccountProject(resetSaasAccountProjectDTO);
+    }
 }

+ 12 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/client/SaasAccountRoleClient.java

@@ -12,6 +12,7 @@ import com.persagy.fm.saas.accountrole.model.SaasAccountRole;
 import com.persagy.fm.saas.accountrole.model.dto.AddSaasAccountRoleDTO;
 import com.persagy.fm.saas.accountrole.model.dto.DeleteSaasAccountRoleDTO;
 import com.persagy.fm.saas.accountrole.model.dto.QuerySaasAccountRoleDTO;
+import com.persagy.fm.saas.accountrole.model.dto.ResetSaasAccountRoleDTO;
 import com.persagy.fm.saas.project.constant.FeignClientNameConstants;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -60,4 +61,15 @@ public interface SaasAccountRoleClient {
      */
     @PostMapping("/accountRole/deleteSaasAccountRole")
     FmResponseMsg deleteSaasAccountRole(@RequestBody DeleteSaasAccountRoleDTO deleteSaasAccountRoleDTO);
+
+    /**
+     * 重置账号与角色的关联
+     *
+     * @param resetSaasAccountRoleDTO 重置账号与角色的关联入参
+     * @return FmResponseMsg
+     * @author lixing
+     * @version V1.0 2021/4/8 2:53 下午
+     */
+    @PostMapping("/accountRole/resetSaasAccountRole")
+    FmResponseMsg resetSaasAccountRole(@RequestBody ResetSaasAccountRoleDTO resetSaasAccountRoleDTO);
 }

+ 10 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/service/ISaasAccountRoleService.java

@@ -68,4 +68,14 @@ public interface ISaasAccountRoleService {
      * @version V1.0 2021/4/1 9:48 上午
      */
     Map<String, AccountRoleVO> queryAccountRoleVoMapByAccountIdList(List<String> accountIdList);
+
+    /**
+     * 重置账号与角色的关联
+     *
+     * @param accountId 账号id
+     * @param roles 更新后的角色信息
+     * @author lixing
+     * @version V1.0 2021/4/8 2:55 下午
+     */
+    void resetSaasAccountRole(String accountId, List<AddSaasAccountRoleDTO> roles);
 }

+ 10 - 0
fm-person/src/main/java/com/persagy/fm/saas/accountrole/service/impl/SaasAccountRoleServiceImpl.java

@@ -10,6 +10,7 @@ import com.persagy.fm.saas.accountrole.model.SaasAccountRole;
 import com.persagy.fm.saas.accountrole.model.dto.AddSaasAccountRoleDTO;
 import com.persagy.fm.saas.accountrole.model.dto.DeleteSaasAccountRoleDTO;
 import com.persagy.fm.saas.accountrole.model.dto.QuerySaasAccountRoleDTO;
+import com.persagy.fm.saas.accountrole.model.dto.ResetSaasAccountRoleDTO;
 import com.persagy.fm.saas.accountrole.model.vo.AccountRoleVO;
 import com.persagy.fm.saas.accountrole.service.ISaasAccountRoleService;
 import com.persagy.fm.saas.role.model.SaasRole;
@@ -166,4 +167,13 @@ public class SaasAccountRoleServiceImpl implements ISaasAccountRoleService {
         simpleObjVO.setName(roleName);
         return simpleObjVO;
     }
+
+    @Override
+    public void resetSaasAccountRole(String accountId, List<AddSaasAccountRoleDTO> roles) {
+        ResetSaasAccountRoleDTO resetSaasAccountRoleDTO = new ResetSaasAccountRoleDTO();
+        resetSaasAccountRoleDTO.setDefaultValueNoAccountId();
+        resetSaasAccountRoleDTO.setAccountId(accountId);
+        resetSaasAccountRoleDTO.setRoles(roles);
+        saasAccountRoleClient.resetSaasAccountRole(resetSaasAccountRoleDTO);
+    }
 }

+ 10 - 1
fm-person/src/main/java/com/persagy/fm/saas/project/service/ISaasProjectService.java

@@ -1,5 +1,6 @@
 package com.persagy.fm.saas.project.service;
 
+import com.persagy.fm.saas.project.model.SaasProject;
 import com.persagy.fm.saas.project.model.vo.ProjectTreeItemVO;
 
 import java.util.List;
@@ -30,5 +31,13 @@ public interface ISaasProjectService {
      */
     List<ProjectTreeItemVO> queryAllProjectTree();
 
-
+    /**
+     * 根据项目id列表查询项目信息
+     *
+     * @param projectIds 项目id列表
+     * @return 项目信息列表
+     * @author lixing
+     * @version V1.0 2021/4/8 4:33 下午
+     */
+    List<SaasProject> queryProjectList(List<String> projectIds);
 }

+ 11 - 0
fm-person/src/main/java/com/persagy/fm/saas/project/service/impl/SaasProjectServiceImpl.java

@@ -5,9 +5,11 @@ import com.persagy.fm.common.response.FmResponseContent;
 import com.persagy.fm.common.response.FmResponseItem;
 import com.persagy.fm.saas.project.client.SaasProjectClient;
 import com.persagy.fm.saas.project.model.SaasArea;
+import com.persagy.fm.saas.project.model.SaasProject;
 import com.persagy.fm.saas.project.model.dto.QueryAllowSaasAreaProjectTreeDTO;
 import com.persagy.fm.saas.project.model.dto.QuerySaasAreaDTO;
 import com.persagy.fm.saas.project.model.dto.QuerySaasAreaProjectTreeDTO;
+import com.persagy.fm.saas.project.model.dto.QuerySaasProjectDTO;
 import com.persagy.fm.saas.project.model.vo.ProjectTreeItemVO;
 import com.persagy.fm.saas.project.model.vo.SaasAreaProjectTreeItemVO;
 import com.persagy.fm.saas.project.model.vo.SaasAreaProjectTreeVO;
@@ -150,4 +152,13 @@ public class SaasProjectServiceImpl implements ISaasProjectService {
         children.addAll(children2Add);
         parentNode.setChildren(children);
     }
+
+    @Override
+    public List<SaasProject> queryProjectList(List<String> projectIds) {
+        QuerySaasProjectDTO querySaasProjectDTO = new QuerySaasProjectDTO();
+        querySaasProjectDTO.setDefaultValue();
+        querySaasProjectDTO.setProjectIds(projectIds);
+        FmResponseContent<List<SaasProject>> listFmResponseContent = saasProjectClient.queryProjectList(querySaasProjectDTO);
+        return listFmResponseContent.getContent();
+    }
 }

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 1 - 1
fm-person/src/main/resources/db/init/table.sql