From b9c99c3ffed9db7cd06a6e4d239b8d20ac720e41 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Tue, 29 Sep 2020 16:53:44 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flow/dao/StaffRoleDepartmentMapper.java | 2 + .../service/impl/StaffRoleServiceImpl.java | 53 +++++++++++++------ .../mapper/flow/StaffRoleDepartmentMapper.xml | 14 +++++ 3 files changed, 52 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java b/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java index 1f19f0de..50399f31 100644 --- a/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java @@ -40,4 +40,6 @@ public interface StaffRoleDepartmentMapper extends BaseMapper ids); void deleteStaffRoleDepartment(@Param("id") Long id); + + List selectStaffRoleDepartmentByStaffRoleIdDepartments(@Param("staffRoleId") Long staffRoleId, @Param("departments") List departments); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java index 609bd8f9..eb434264 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleServiceImpl.java @@ -11,6 +11,7 @@ import com.lz.modules.app.dto.StaffRoleResp; import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.DepartmentsStaffRelateEntity; import com.lz.modules.app.entity.StaffEntity; +import com.lz.modules.app.service.DepartmentsService; import com.lz.modules.app.service.DepartmentsStaffRelateService; import com.lz.modules.flow.dao.RecordRoleMapper; import com.lz.modules.flow.dao.StaffRoleDepartmentMapper; @@ -69,6 +70,9 @@ public class StaffRoleServiceImpl extends ServiceImpl> map= resultRecordService.getStringListMap(departmentsEntities); role.setRoleId(staffRole.getId()); role.setRoleName(staffRole.getDepartmentLevel()); + for(StaffRoleDepartment staffRoleDepartment: staffRoleDepartments){ List list = map.get(staffRoleDepartment.getDepartmentId()); - if(list == null || list.size() == 0){ - menuIdList.add(NumberUtil.objToLongDefault(staffRoleDepartment.getDepartmentId(),0l)); - }else{ - menuIdList1.add(NumberUtil.objToLongDefault(staffRoleDepartment.getDepartmentId(),0l)); + List departments = departmentsService.selectAllChildDepartmentIds(staffRoleDepartment.getDepartmentId()); + List departments1 = staffRoleDepartmentMapper.selectStaffRoleDepartmentByStaffRoleIdDepartments(staffRole.getId(), departments); + if (list == null || list.size() == 0 || departments1.size() <= 1) { + menuIdList.add(NumberUtil.objToLongDefault(staffRoleDepartment.getDepartmentId(), 0l)); + } else { + menuIdList1.add(NumberUtil.objToLongDefault(staffRoleDepartment.getDepartmentId(), 0l)); } } } @@ -200,7 +207,9 @@ public class StaffRoleServiceImpl extends ServiceImpl departmentsStaffRelateEntities = departmentsStaffRelateService.selectAll(); Map departmentsStaffRelateEntityMap = new HashMap<>(); + Map singleDepartmentsStaffRelate = new HashMap<>(); for(DepartmentsStaffRelateEntity d : departmentsStaffRelateEntities){ + singleDepartmentsStaffRelate.put(d.getDepartmentId(),d); if(new Integer(1).equals(d.getIsLeader())){ departmentsStaffRelateEntityMap.put(d.getDepartmentId(),d); } @@ -212,34 +221,44 @@ public class StaffRoleServiceImpl extends ServiceImpl list = new ArrayList<>(); for (DepartmentsEntity d : parentDepartments) { - String departmentName = d.getDepartmentName() + getSuffix(departmentsStaffRelateEntityMap,staffMap,d.getDepartmentId()); + String departmentName = d.getDepartmentName() + getSuffix(departmentsStaffRelateEntityMap,staffMap,d.getDepartmentId(),singleDepartmentsStaffRelate); SysMenuEntity entity = recordRoleService.buildMenuEntity(NumberUtil.objToLongDefault(d.getDepartmentId(), 0l),departmentName , 0l, ""); - getMenuList(tDepartments, entity, list,departmentsStaffRelateEntityMap,staffMap); + getMenuList(tDepartments, entity, list,departmentsStaffRelateEntityMap,staffMap,singleDepartmentsStaffRelate); list.add(entity); } return list; } - public String getSuffix(Map departmentsStaffRelateEntityMap, Map staffMap,String departmentId){ - String suffix = ""; + public String getSuffix(Map departmentsStaffRelateEntityMap, Map staffMap, String departmentId, + Map singleDepartmentsStaffRelate) { DepartmentsStaffRelateEntity departmentsStaffRelateEntity = departmentsStaffRelateEntityMap.get(departmentId); - if(departmentsStaffRelateEntity !=null){ - StaffEntity staffEntity = staffMap.get(departmentsStaffRelateEntity.getStaffId()); - if(staffEntity !=null ){ - suffix = " , "+staffEntity.getName(); - } + if (departmentsStaffRelateEntity != null) { + return doGetStaff(departmentsStaffRelateEntity, staffMap); + } else { + return doGetStaff(singleDepartmentsStaffRelate.get(departmentId), staffMap); } - return suffix; } + public String doGetStaff(DepartmentsStaffRelateEntity departmentsStaffRelateEntity, Map staffMap) { + if (departmentsStaffRelateEntity != null) { + StaffEntity staffEntity = staffMap.get(departmentsStaffRelateEntity.getStaffId()); + if (staffEntity != null) { + return " , " + staffEntity.getName(); + } + } + return " "; + } + + public void getMenuList(List tDepartments,SysMenuEntity sysMenuEntity,List list, - Map departmentsStaffRelateEntityMap, Map staffMap) { + Map departmentsStaffRelateEntityMap, Map staffMap, + Map singleDepartmentsStaffRelate) { for(DepartmentsEntity child : tDepartments) { if(NumberUtil.objToLongDefault(child.getDepartmentParentId(),0l).equals(sysMenuEntity.getMenuId())){ - String departmentName = child.getDepartmentName() + getSuffix(departmentsStaffRelateEntityMap,staffMap,child.getDepartmentId()); + String departmentName = child.getDepartmentName() + getSuffix(departmentsStaffRelateEntityMap,staffMap,child.getDepartmentId(),singleDepartmentsStaffRelate); SysMenuEntity entity = recordRoleService.buildMenuEntity(NumberUtil.objToLongDefault(child.getDepartmentId(),0l), departmentName,sysMenuEntity.getMenuId(),sysMenuEntity.getName()); - getMenuList(tDepartments,entity,list,departmentsStaffRelateEntityMap,staffMap); + getMenuList(tDepartments,entity,list,departmentsStaffRelateEntityMap,staffMap,singleDepartmentsStaffRelate); list.add(entity); } } diff --git a/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml b/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml index db200f54..413ecdc9 100644 --- a/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml +++ b/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml @@ -79,6 +79,9 @@ + + + + delete from lz_staff_role_department where id = #{id} + + +