diff --git a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java index 518231a1..b56ef436 100644 --- a/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java +++ b/src/main/java/com/lz/modules/app/dao/DepartmentsStaffRelateDao.java @@ -68,4 +68,6 @@ public interface DepartmentsStaffRelateDao extends BaseMapper selectLeadersByDepartmentId(@Param("depId") String depId); List selectLongStaffIdsByDepartments(@Param("departmentIds") List departmentIds); + + List selectAllStaffIds(); } diff --git a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java index caf46981..df1e3271 100644 --- a/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java +++ b/src/main/java/com/lz/modules/app/service/DepartmentsStaffRelateService.java @@ -46,5 +46,7 @@ public interface DepartmentsStaffRelateService extends IService selectLeadersByDepartmentId(String depId); List selectLongStaffIdsByDepartments(List departmentIds); + + List selectAllStaffIds(); } diff --git a/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java index 5024ae4f..1791d621 100644 --- a/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/DepartmentsStaffRelateServiceImpl.java @@ -114,4 +114,9 @@ public class DepartmentsStaffRelateServiceImpl extends ServiceImpl selectAllStaffIds(){ + return departmentsStaffRelateDao.selectAllStaffIds(); + } } diff --git a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java index beaa9560..57f077c3 100644 --- a/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java +++ b/src/main/java/com/lz/modules/performance/controller/AssessManagerController.java @@ -203,7 +203,7 @@ public class AssessManagerController extends AbstractController{ Long userId = getUserId(); log.info("一键催办" + userId); StaffRole staffRole = staffRoleService.selectStaffRoleById(userId); - boolean isManagementDepartment = false; + int isManagementDepartment = 0; List departmentIds = new ArrayList<>(); if(staffRole != null){ //查询管理的部门信息 @@ -220,37 +220,49 @@ public class AssessManagerController extends AbstractController{ } }else if(staffRole.getDepartmentId().intValue() == 1){ //管理所在部门及子部门 - isManagementDepartment = true; + isManagementDepartment = 1;//所在部门及子部门 + }else if(staffRole.getDepartmentId().intValue() == 0){ + isManagementDepartment = 2;//所有部门 } } - //看下是否为部门领导 - DepartmentsStaffRelateEntity departmentsStaffRelateEntity - = departmentsStaffRelateService.selectByStaffId(userId); - if (departmentsStaffRelateEntity != null && (isManagementDepartment || - departmentsStaffRelateEntity.getIsLeader().intValue() == 1)) {//特定部门的 - //获取所在部门下面的所有人员id - departmentIds.add(departmentsStaffRelateEntity.getDepartmentId()); - } - if(departmentIds.size() > 0){ - //去重 - log.info("去重前数据{}", departmentIds.size()); - departmentIds = departmentIds.stream().distinct().collect(Collectors.toList()); - log.info("去重后数据{}", departmentIds.size()); + List staffIds = null; + if(isManagementDepartment == 2){ + //管理所有部门 + log.info("管理所有部门"); + staffIds = departmentsStaffRelateService.selectAllStaffIds(); + }else{ + //看下是否为部门领导 + log.info("管理所指定部门"); + DepartmentsStaffRelateEntity departmentsStaffRelateEntity + = departmentsStaffRelateService.selectByStaffId(userId); + if (departmentsStaffRelateEntity != null && (isManagementDepartment == 1 || + departmentsStaffRelateEntity.getIsLeader().intValue() == 1)) {//特定部门的 + //获取所在部门下面的所有人员id + departmentIds.add(departmentsStaffRelateEntity.getDepartmentId()); + } + if(departmentIds.size() > 0){ + //去重 + log.info("去重前数据{}", departmentIds.size()); + departmentIds = departmentIds.stream().distinct().collect(Collectors.toList()); + log.info("去重后数据{}", departmentIds.size()); - List childIds = new ArrayList<>(); - //获取子部门信息 - for (String pareId:departmentIds - ) { - childIds.addAll(getChildsId(pareId)); - } - if(childIds.size() > 0){ - departmentIds.addAll(childIds); + List childIds = new ArrayList<>(); + //获取子部门信息 + for (String pareId:departmentIds + ) { + childIds.addAll(getChildsId(pareId)); + } + if(childIds.size() > 0){ + departmentIds.addAll(childIds); + } } + //根据部门获取所有员工的id + staffIds = departmentsStaffRelateService.selectLongStaffIdsByDepartments(departmentIds); } - //根据部门获取所有员工的id - List staffIds = departmentsStaffRelateService.selectLongStaffIdsByDepartments(departmentIds); + + log.info("查询到有权限可以推送的人员数量为{}", staffIds.size()); //下面查询当前startId,当前flowProcess下面有多少人员id List resultRecords = resultRecordMapper.selectStaffIdsByStartIdAndFlowProcess(startId, flowProcess); diff --git a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml index 78845852..4155d041 100644 --- a/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsStaffRelateDao.xml @@ -118,4 +118,8 @@ #{department_id} + +