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

人员列表支持空字符串查询

lixing пре 4 година
родитељ
комит
a69e50b71b

+ 11 - 0
fm-person/src/main/java/com/persagy/fm/department/service/IDepartmentService.java

@@ -3,6 +3,7 @@ package com.persagy.fm.department.service;
 import java.util.List;
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.persagy.fm.common.model.vo.SimpleObjVO;
 import com.persagy.fm.department.model.dto.AddDepartmentDTO;
 import com.persagy.fm.department.model.Department;
 import com.persagy.fm.department.model.dto.PageQueryDepartmentDTO;
@@ -132,4 +133,14 @@ public interface IDepartmentService {
      * @version V1.0 2021/3/12 12:29 下午
      */
     void setDefaultValue(Department department);
+
+    /**
+     * 获取部门信息
+     *
+     * @param depIds 部门id列表
+     * @return 部门信息列表
+     * @author lixing
+     * @version V1.0 2021/4/1 6:06 下午
+     */
+    List<SimpleObjVO> getDepInfoList(List<String> depIds);
 }

+ 20 - 0
fm-person/src/main/java/com/persagy/fm/department/service/impl/DepartmentServiceImpl.java

@@ -12,6 +12,7 @@ import com.persagy.fm.common.constant.DefaultValueConstants;
 import com.persagy.fm.common.constant.enums.ValidEnum;
 import com.persagy.fm.common.context.DefaultAppContext;
 import com.persagy.fm.common.model.dto.Sort;
+import com.persagy.fm.common.model.vo.SimpleObjVO;
 import com.persagy.fm.department.constant.enums.DepTypeEnum;
 import com.persagy.fm.department.constant.enums.ResourceFromEnum;
 import com.persagy.fm.department.dao.DepartmentMapper;
@@ -55,6 +56,10 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
     public String createDepartment(AddDepartmentDTO addDepartmentDTO) {
         Department department = saveDepartment(addDepartmentDTO);
 
+        // 将人员的工作信息标记为主管
+        List<String> managers = addDepartmentDTO.getManagers();
+
+
         // 保存部门和项目的关系
         List<String> projectIds = addDepartmentDTO.getProjectIds();
         String depId = department.getId();
@@ -392,4 +397,19 @@ public class DepartmentServiceImpl extends ServiceImpl<DepartmentMapper, Departm
 
         return list(queryWrapper);
     }
+
+    @Override
+    public List<SimpleObjVO> getDepInfoList(List<String> depIds) {
+        QueryWrapper<Department> departmentQueryWrapper = new QueryWrapper<>();
+        departmentQueryWrapper.eq(Department.PROP_VALID, ValidEnum.TRUE.getType());
+        departmentQueryWrapper.in(Department.PROP_ID, depIds);
+        List<Department> depList = list(departmentQueryWrapper);
+        if (CollectionUtils.isEmpty(depList)) {
+            return Lists.newArrayList();
+        } else {
+            return depList.stream().map(
+                    dep -> new SimpleObjVO(dep.getId(), dep.getName())
+            ).collect(Collectors.toList());
+        }
+    }
 }

+ 2 - 2
fm-person/src/main/java/com/persagy/fm/person/controller/PersonController.java

@@ -120,7 +120,7 @@ public class PersonController {
     @PostMapping("/dismiss")
     public CommonResult<FmResponseUpsertVO> dismissPerson(
             @Valid @RequestBody PersonStateChangeDTO personStateChangeDTO) {
-        personService.dismissPerson(personStateChangeDTO.getId(), personStateChangeDTO.getDepId());
+        personService.dismissPerson(personStateChangeDTO.getId());
         return ResultHelper.single(new FmResponseUpsertVO(personStateChangeDTO.getId()));
     }
 
@@ -128,7 +128,7 @@ public class PersonController {
     @PostMapping("/rejoin")
     public CommonResult<FmResponseUpsertVO> rejoinPerson(
             @Valid @RequestBody PersonStateChangeDTO personStateChangeDTO) {
-        personService.rejoinPerson(personStateChangeDTO.getId(), personStateChangeDTO.getDepId());
+        personService.rejoinPerson(personStateChangeDTO.getId());
         return ResultHelper.single(new FmResponseUpsertVO(personStateChangeDTO.getId()));
     }
 

+ 0 - 4
fm-person/src/main/java/com/persagy/fm/person/model/dto/PersonStateChangeDTO.java

@@ -16,8 +16,4 @@ public class PersonStateChangeDTO {
     @NotNull(message = "id不能为空")
     @ApiModelProperty(value = "id", required = true)
     private String id;
-
-    @NotNull(message = "部门id不能为空")
-    @ApiModelProperty(value = "部门id", required = true)
-    private String depId;
 }

+ 2 - 4
fm-person/src/main/java/com/persagy/fm/person/service/IPersonService.java

@@ -133,21 +133,19 @@ public interface IPersonService {
      * 解雇人员
      *
      * @param personId 人员id
-     * @param depId    部门id
      * @author lixing
      * @version V1.0 2021/3/22 10:39 上午
      */
-    void dismissPerson(String personId, String depId);
+    void dismissPerson(String personId);
 
     /**
      * 恢复入职
      *
      * @param personId 人员id
-     * @param depId    部门id
      * @author lixing
      * @version V1.0 2021/3/22 10:44 上午
      */
-    void rejoinPerson(String personId, String depId);
+    void rejoinPerson(String personId);
 
     /**
      * 批量更新人员信息

+ 39 - 11
fm-person/src/main/java/com/persagy/fm/person/service/impl/PersonServiceImpl.java

@@ -9,6 +9,7 @@ import com.persagy.fm.common.constant.enums.ValidEnum;
 import com.persagy.fm.common.context.DefaultAppContext;
 import com.persagy.fm.common.model.vo.SimpleObjVO;
 import com.persagy.fm.common.response.FmResponseContent;
+import com.persagy.fm.department.service.IDepartmentService;
 import com.persagy.fm.person.constant.enums.CertificateTypeEnum;
 import com.persagy.fm.person.constant.enums.PersonTypeEnum;
 import com.persagy.fm.person.dao.PersonMapper;
@@ -34,6 +35,7 @@ import com.persagy.fm.saas.accountrole.model.vo.AccountRoleVO;
 import com.persagy.fm.saas.accountrole.service.ISaasAccountRoleService;
 import com.persagy.fm.workresume.constant.enums.WorkResumeEnableStateEnum;
 import com.persagy.fm.workresume.constant.enums.WorkResumeHiredStateEnum;
+import com.persagy.fm.workresume.model.WorkResume;
 import com.persagy.fm.workresume.model.dto.AddWorkResumeDTO;
 import com.persagy.fm.workresume.service.IWorkResumeService;
 import org.apache.commons.lang3.StringUtils;
@@ -70,6 +72,8 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
     private ISaasAccountProjectService saasAccountProjectService;
     @Autowired
     private IProfessionService professionService;
+    @Autowired
+    private IDepartmentService departmentService;
 
     @Override
     public String createPerson(Person person) {
@@ -377,13 +381,16 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
      */
     @Override
     public void updatePerson(UpdatePersonDTO updatePersonDTO) {
-        Person person = getById(updatePersonDTO.getId());
+        String personId = updatePersonDTO.getId();
+        Person person = getById(personId);
         person = ConvertPersonTool.INSTANCE.convertUpdateDto2Entity(person, updatePersonDTO);
         person.setModifier(DefaultAppContext.getContext().getAccountId());
         updateById(person);
-
+        // TODO: 2021/4/1
         // 判断是否有账号相关的更新
         // 判断是否有工作信息相关的更新
+        List<WorkResume> workResumes = workResumeService.queryWorkResumeListByPersonIdList(Lists.newArrayList(personId));
+
     }
 
     @Override
@@ -480,7 +487,7 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
      * @version V1.0 2021/4/1 2:46 下午
      */
     private List<SimpleObjVO> getProfessionVoList(String profession) {
-        List<SimpleObjVO> professions = null;
+        List<SimpleObjVO> professions = Lists.newArrayList();
         if (StringUtils.isNotBlank(profession)) {
             String[] professionArr = profession.split(",");
             List<String> professionIds = Arrays.asList(professionArr);
@@ -519,19 +526,24 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
 
         // 工作信息状态更新为禁用
         workResumeService.changeWorkResumeEnableStateByPersonId(
-                personId, null, WorkResumeEnableStateEnum.DISABLE.getType());
+                personId, WorkResumeEnableStateEnum.DISABLE.getType());
     }
 
     @Override
-    public void dismissPerson(String personId, String depId) {
+    public void dismissPerson(String personId) {
+        // 离职要先禁用账号
+        disablePerson(personId);
+
         workResumeService.changeWorkResumeHiredStateByPersonId(
-                personId, depId, WorkResumeHiredStateEnum.DISMISS.getType());
+                personId, WorkResumeHiredStateEnum.DISMISS.getType());
     }
 
     @Override
-    public void rejoinPerson(String personId, String depId) {
+    public void rejoinPerson(String personId) {
+        // 恢复禁用的账号
+        enablePerson(personId);
         workResumeService.changeWorkResumeHiredStateByPersonId(
-                personId, depId, WorkResumeHiredStateEnum.ON_JOB.getType());
+                personId, WorkResumeHiredStateEnum.ON_JOB.getType());
     }
 
     @Override
@@ -556,7 +568,7 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
 
         // 工作信息状态更新为启用
         workResumeService.changeWorkResumeEnableStateByPersonId(
-                personId, null, WorkResumeEnableStateEnum.ENABLE.getType());
+                personId, WorkResumeEnableStateEnum.ENABLE.getType());
     }
 
     @Override
@@ -598,13 +610,29 @@ public class PersonServiceImpl extends ServiceImpl<PersonMapper, Person>
         responsePersonItemVO.setLeaderVO(getLeaderVO(leader));
 
         // 设置所属部门 
-        // TODO: 2021/4/1  
-//        workResumeService.queryWorkResumeListByPersonIdList()
+        List<WorkResume> workResumes = workResumeService.queryWorkResumeListByPersonIdList(Lists.newArrayList(id));
+        responsePersonItemVO.setDeps(getDepVoList(workResumes));
 
         return responsePersonItemVO;
     }
 
     /**
+     * 根据工作信息获取人员所属部门
+     *
+     * @param workResumes 工作信息列表
+     * @return 所属部门列表
+     * @author lixing
+     * @version V1.0 2021/4/1 6:00 下午
+     */
+    private List<SimpleObjVO> getDepVoList(List<WorkResume> workResumes) {
+        if (CollectionUtils.isEmpty(workResumes)){
+            return Lists.newArrayList();
+        }
+        List<String> depIds = workResumes.stream().map(WorkResume::getDepId).collect(Collectors.toList());
+        return departmentService.getDepInfoList(depIds);
+    }
+
+    /**
      * 根据直接领导id,获取直接领导信息
      *
      * @param leaderId 直接领导id

+ 6 - 2
fm-person/src/main/java/com/persagy/fm/saas/common/model/dto/SaasBasePageDTO.java

@@ -19,7 +19,11 @@ public class SaasBasePageDTO extends SaasBaseDTO{
     @Override
     public void setDefaultValue() {
         super.setDefaultValue();
-        this.setPage(PageQueryConstants.DEFAULT_PAGE);
-        this.setSize(PageQueryConstants.DEFAULT_SIZE);
+        if (this.page == null) {
+            this.setPage(PageQueryConstants.DEFAULT_PAGE);
+        }
+        if (this.size == null) {
+            this.setSize(PageQueryConstants.DEFAULT_SIZE);
+        }
     }
 }

+ 2 - 15
fm-person/src/main/java/com/persagy/fm/workresume/service/IWorkResumeService.java

@@ -77,17 +77,6 @@ public interface IWorkResumeService {
     List<WorkResume> queryWorkResumeListByPersonIdList(List<String> personIdList);
 
     /**
-     * 查询一组人员的工作信息
-     *
-     * @param personIdList 一组人员id
-     * @param workResumeState 工作信息状态
-     * @return List<WorkResume>
-     * @author lixing
-     * @version V1.0 2021-03-15 17:20:06
-     */
-    List<WorkResume> queryWorkResumeListByPersonIdList(List<String> personIdList, String workResumeState);
-
-    /**
      * 批量更新工作信息
      *
      * @param workResumes 工作信息列表
@@ -100,21 +89,19 @@ public interface IWorkResumeService {
      * 更新人员的工作信息在职状态
      *
      * @param personId 人员id 不可为空
-     * @param depId 部门id 可为空
      * @param workResumeHiredState 工作信息在职状态
      * @author lixing
      * @version V1.0 2021/3/31 5:32 下午
      */
-    void changeWorkResumeHiredStateByPersonId(String personId, String depId, String workResumeHiredState);
+    void changeWorkResumeHiredStateByPersonId(String personId, String workResumeHiredState);
 
     /**
      * 更新人员的工作信息启用状态
      *
      * @param personId 人员id 不可为空
-     * @param depId 部门id 可为空
      * @param workResumeEnableState 工作信息启用状态
      * @author lixing
      * @version V1.0 2021/3/31 5:32 下午
      */
-    void changeWorkResumeEnableStateByPersonId(String personId, String depId, String workResumeEnableState);
+    void changeWorkResumeEnableStateByPersonId(String personId, String workResumeEnableState);
 }

+ 3 - 17
fm-person/src/main/java/com/persagy/fm/workresume/service/impl/WorkResumeServiceImpl.java

@@ -186,34 +186,21 @@ public class WorkResumeServiceImpl extends ServiceImpl<WorkResumeMapper, WorkRes
 
     @Override
     public List<WorkResume> queryWorkResumeListByPersonIdList(List<String> personIdList) {
-        // TODO: 2021/4/1  
         QueryWrapper<WorkResume> workResumeQueryWrapper = new QueryWrapper<>();
         workResumeQueryWrapper.in(WorkResume.PROP_PERSON_ID, personIdList);
+        workResumeQueryWrapper.eq(WorkResume.PROP_VALID, ValidEnum.TRUE.getType());
         return list(workResumeQueryWrapper);
     }
 
     @Override
-    public List<WorkResume> queryWorkResumeListByPersonIdList(List<String> personIdList, String workResumeState) {
-        // TODO: 2021/4/1  
-        QueryWrapper<WorkResume> workResumeQueryWrapper = new QueryWrapper<>();
-        workResumeQueryWrapper.in(WorkResume.PROP_PERSON_ID, personIdList);
-        workResumeQueryWrapper.eq(WorkResume.PROP_HIRED_STATE, workResumeState);
-        return list(workResumeQueryWrapper);
-    }
-
-    @Override
-    public void changeWorkResumeHiredStateByPersonId(String personId, String depId, String workResumeHiredState) {
+    public void changeWorkResumeHiredStateByPersonId(String personId, String workResumeHiredState) {
         // 校验更新人员工作信息在职状态入参
         if (StringUtils.isEmpty(personId)) {
             throw new IllegalArgumentException("更新人员工作信息状态,缺少personId");
         }
-        if (StringUtils.isEmpty(depId)) {
-            throw new IllegalArgumentException("更新人员工作信息状态,缺少depId");
-        }
 
         QueryWorkResumeDTO queryWorkResumeDTO = new QueryWorkResumeDTO();
         queryWorkResumeDTO.setPersonId(personId);
-        queryWorkResumeDTO.setDepId(depId);
 
         List<WorkResume> workResumes = queryWorkResumeList(queryWorkResumeDTO);
         workResumes.forEach(workResume -> workResume.setHiredState(workResumeHiredState));
@@ -221,7 +208,7 @@ public class WorkResumeServiceImpl extends ServiceImpl<WorkResumeMapper, WorkRes
     }
 
     @Override
-    public void changeWorkResumeEnableStateByPersonId(String personId, String depId, String workResumeEnableState) {
+    public void changeWorkResumeEnableStateByPersonId(String personId, String workResumeEnableState) {
         // 校验更新人员工作信息启用状态入参
         if (StringUtils.isEmpty(personId)) {
             throw new IllegalArgumentException("更新人员工作信息状态,缺少personId");
@@ -229,7 +216,6 @@ public class WorkResumeServiceImpl extends ServiceImpl<WorkResumeMapper, WorkRes
 
         QueryWorkResumeDTO queryWorkResumeDTO = new QueryWorkResumeDTO();
         queryWorkResumeDTO.setPersonId(personId);
-        queryWorkResumeDTO.setDepId(depId);
 
         List<WorkResume> workResumes = queryWorkResumeList(queryWorkResumeDTO);
         workResumes.forEach(workResume -> workResume.setEnableState(workResumeEnableState));

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

@@ -32,13 +32,13 @@
         from person p,
         work_resume w
         where p.id = w.person_id
-        <if test="depId != null">
+        <if test="depId != null and depId != ''">
             and w.dep_id = #{depId}
         </if>
-        <if test="state != null">
+        <if test="state != null and state != ''">
             and w.state = #{state}
         </if>
-        <if test="name != null">
+        <if test="name != null and name != ''">
             and p.name = #{name}
         </if>
         order by w.is_leader desc, p.name_pinyin
@@ -50,13 +50,13 @@
         from person p,
         work_resume w
         where p.id = w.person_id
-        <if test="depId != null">
+        <if test="depId != null and depId != ''">
             and w.dep_id = #{depId}
         </if>
-        <if test="state != null">
+        <if test="state != null and state != ''">
             and w.state = #{state}
         </if>
-        <if test="name != null">
+        <if test="name != null and name != ''">
             and p.name = #{name}
         </if>
     </select>
@@ -67,10 +67,10 @@
         from person p,
         work_resume w
         where p.id = w.person_id
-        <if test="depId != null">
+        <if test="depId != null and depId != ''">
             and w.dep_id = #{depId}
         </if>
-        <if test="name != null">
+        <if test="name != null  and name != ''">
             and p.name like '%#{name}%'
         </if>
         order by p.name_pinyin