提交修改

This commit is contained in:
quyixiao 2020-09-29 16:53:44 +08:00
parent 52e7520506
commit b9c99c3ffe
3 changed files with 52 additions and 17 deletions

View File

@ -40,4 +40,6 @@ public interface StaffRoleDepartmentMapper extends BaseMapper<StaffRoleDepartmen
StaffRoleDepartment selectStaffRoleDepartmentByDepartmentIdRoleIds(@Param("departmentId") Long departmentId, @Param("ids") List<Long> ids);
void deleteStaffRoleDepartment(@Param("id") Long id);
List<StaffRoleDepartment> selectStaffRoleDepartmentByStaffRoleIdDepartments(@Param("staffRoleId") Long staffRoleId, @Param("departments") List<String> departments);
}

View File

@ -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<StaffRoleMapper, StaffRole
@Autowired
private RecordRoleService recordRoleService;
@Autowired
private DepartmentsService departmentsService;
@Autowired
private DepartmentsStaffRelateService departmentsStaffRelateService;
@ -176,12 +180,15 @@ public class StaffRoleServiceImpl extends ServiceImpl<StaffRoleMapper, StaffRole
Map<String,List<DepartmentsEntity>> map= resultRecordService.getStringListMap(departmentsEntities);
role.setRoleId(staffRole.getId());
role.setRoleName(staffRole.getDepartmentLevel());
for(StaffRoleDepartment staffRoleDepartment: staffRoleDepartments){
List<DepartmentsEntity> 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<String> departments = departmentsService.selectAllChildDepartmentIds(staffRoleDepartment.getDepartmentId());
List<StaffRoleDepartment> 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<StaffRoleMapper, StaffRole
.collect(Collectors.toList());
List<DepartmentsStaffRelateEntity> departmentsStaffRelateEntities = departmentsStaffRelateService.selectAll();
Map<String,DepartmentsStaffRelateEntity> departmentsStaffRelateEntityMap = new HashMap<>();
Map<String,DepartmentsStaffRelateEntity> 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<StaffRoleMapper, StaffRole
}
List<SysMenuEntity> 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<String,DepartmentsStaffRelateEntity> departmentsStaffRelateEntityMap, Map<Long ,StaffEntity> staffMap,String departmentId){
String suffix = "";
public String getSuffix(Map<String, DepartmentsStaffRelateEntity> departmentsStaffRelateEntityMap, Map<Long, StaffEntity> staffMap, String departmentId,
Map<String, DepartmentsStaffRelateEntity> 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<Long, StaffEntity> staffMap) {
if (departmentsStaffRelateEntity != null) {
StaffEntity staffEntity = staffMap.get(departmentsStaffRelateEntity.getStaffId());
if (staffEntity != null) {
return " , " + staffEntity.getName();
}
}
return " ";
}
public void getMenuList(List<DepartmentsEntity> tDepartments,SysMenuEntity sysMenuEntity,List<SysMenuEntity> list,
Map<String,DepartmentsStaffRelateEntity> departmentsStaffRelateEntityMap, Map<Long ,StaffEntity> staffMap) {
Map<String,DepartmentsStaffRelateEntity> departmentsStaffRelateEntityMap, Map<Long ,StaffEntity> staffMap,
Map<String,DepartmentsStaffRelateEntity> 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);
}
}

View File

@ -79,6 +79,9 @@
<select id="selectStaffRoleDepartmentByStaffRoleId" resultType="com.lz.modules.flow.entity.StaffRoleDepartment">
select * from lz_staff_role_department where staff_role_id=#{staffRoleId} and is_delete = 0
</select>
<select id="selectStaffRoleDepartmentByDepartmentId"
resultType="com.lz.modules.flow.entity.StaffRoleDepartment">
select * from lz_staff_role_department where department_id=#{departmentId} and is_delete = 0
@ -93,9 +96,20 @@
</foreach>
</select>
<delete id="deleteStaffRoleDepartment">
delete from lz_staff_role_department where id = #{id}
</delete>
<select id="selectStaffRoleDepartmentByStaffRoleIdDepartments"
resultType="com.lz.modules.flow.entity.StaffRoleDepartment">
select * from lz_staff_role_department where staff_role_id=#{staffRoleId} and is_delete = 0
and department_id in
<foreach collection="departments" item="item" index="index" separator="," open="(" close=")">
#{item}
</foreach>
</select>
</mapper>