From 3184452779f5ffaa57836af9f2aedd32180fa2f2 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Mon, 21 Sep 2020 12:04:53 +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 --- .../app/controller/RecordRoleController.java | 59 +------- .../app/controller/StaffRoleController.java | 139 ++++++++++++++---- .../java/com/lz/modules/app/dao/StaffDao.java | 2 + .../lz/modules/app/service/StaffService.java | 2 + .../app/service/impl/StaffServiceImpl.java | 5 + .../flow/dao/StaffRoleDepartmentMapper.java | 6 + .../lz/modules/flow/req/StaffRoleRequest.java | 14 ++ .../flow/service/RecordRoleService.java | 8 + .../service/StaffRoleDepartmentService.java | 6 + .../flow/service/StaffRoleService.java | 6 + .../service/impl/RecordRoleServiceImpl.java | 86 ++++++++++- .../impl/StaffRoleDepartmentServiceImpl.java | 15 ++ .../service/impl/StaffRoleServiceImpl.java | 68 +++++++++ .../sys/service/app/ResultRecordService.java | 4 + .../app/impl/ResultRecordServiceImpl.java | 3 +- .../mapper/flow/StaffRoleDepartmentMapper.xml | 17 ++- .../mapper/generator/DepartmentsDao.xml | 1 + .../resources/mapper/generator/StaffDao.xml | 4 + 18 files changed, 358 insertions(+), 87 deletions(-) create mode 100644 src/main/java/com/lz/modules/flow/req/StaffRoleRequest.java diff --git a/src/main/java/com/lz/modules/app/controller/RecordRoleController.java b/src/main/java/com/lz/modules/app/controller/RecordRoleController.java index df162831..c819a89b 100644 --- a/src/main/java/com/lz/modules/app/controller/RecordRoleController.java +++ b/src/main/java/com/lz/modules/app/controller/RecordRoleController.java @@ -58,60 +58,13 @@ public class RecordRoleController { */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id) { - RecordRole lzRecordRole = lzRecordRoleService.selectRecordRoleById(id); - SysRoleEntity role = new SysRoleEntity(); - role.setRoleId(lzRecordRole.getId()); - role.setRoleName(lzRecordRole.getName()); - //查询角色对应的菜单 - List menuIdList = recordRoleAuthService.queryMenuIdList(id); - role.setMenuIdList(menuIdList); + SysRoleEntity role = lzRecordRoleService.getRole(id); return R.ok().put("role", role); } @RequestMapping("/menu/list") public List menuList() { - List list = new ArrayList<>(); - List recordAuths = recordAuthService.selectAll(); - for (int i = 0; i < recordAuths.size(); i++) { - RecordAuth recordAuth = recordAuths.get(i); - Long parentId = recordAuth.getId(); - if (i + 1 < recordAuths.size()) { - RecordAuth child = recordAuths.get(i + 1); - if (child.getIdentity().equals(recordAuth.getIdentity())) { - parentId = NumberUtil.objToLong(recordAuth.getId() + "000000"); - } - } - SysMenuEntity sysMenuEntity = buildMenuEntity(parentId, recordAuth.getName(), 0l, ""); - list.add(sysMenuEntity); - if (i + 1 < recordAuths.size()) { - RecordAuth child = recordAuths.get(i + 1); - if (!child.getIdentity().equals(recordAuth.getIdentity())) { - continue; - } - for (int j = i; j < recordAuths.size(); j++) { - child = recordAuths.get(j); - if (!child.getIdentity().equals(recordAuth.getIdentity())) { - if (j == recordAuths.size() - 1) { - i = j; - } else { - i = j - 1; - } - break; - } - String name = "不可见"; - if (child.getStatus().equals(1)) { - name = "可见"; - } else if (child.getStatus().equals(2)) { - name = "可编辑"; - } - SysMenuEntity childMenuEntity = buildMenuEntity(child.getId(), name, parentId, recordAuth.getName()); - list.add(childMenuEntity); - if (j == recordAuths.size() - 1) { - i = j; - } - } - } - } + List list = lzRecordRoleService.selectMenuList(); return list; } @@ -155,14 +108,6 @@ public class RecordRoleController { return R.ok(); } - public SysMenuEntity buildMenuEntity(Long id, String name, Long parentId, String parentName) { - SysMenuEntity sysMenuEntity = new SysMenuEntity(); - sysMenuEntity.setMenuId(id); - sysMenuEntity.setName(name); - sysMenuEntity.setParentId(parentId); - sysMenuEntity.setParentName(parentName); - return sysMenuEntity; - } /** * 保存 diff --git a/src/main/java/com/lz/modules/app/controller/StaffRoleController.java b/src/main/java/com/lz/modules/app/controller/StaffRoleController.java index 26d55d57..b25ca621 100644 --- a/src/main/java/com/lz/modules/app/controller/StaffRoleController.java +++ b/src/main/java/com/lz/modules/app/controller/StaffRoleController.java @@ -1,21 +1,27 @@ package com.lz.modules.app.controller; -import java.util.Arrays; -import java.util.Map; - +import com.alibaba.fastjson.JSON; import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; +import com.lz.modules.app.entity.DepartmentsEntity; +import com.lz.modules.app.entity.StaffEntity; +import com.lz.modules.app.service.DepartmentsService; +import com.lz.modules.app.service.StaffService; +import com.lz.modules.flow.entity.RecordRole; import com.lz.modules.flow.entity.StaffRole; +import com.lz.modules.flow.entity.StaffRoleDepartment; +import com.lz.modules.flow.req.StaffRoleRequest; +import com.lz.modules.flow.service.RecordRoleService; +import com.lz.modules.flow.service.StaffRoleDepartmentService; import com.lz.modules.flow.service.StaffRoleService; +import com.lz.modules.sys.entity.SysMenuEntity; +import com.lz.modules.sys.entity.SysRoleEntity; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; - +import org.springframework.web.bind.annotation.*; +import java.util.*; +import java.util.stream.Collectors; /** @@ -31,12 +37,26 @@ public class StaffRoleController { @Autowired private StaffRoleService staffRoleService; + @Autowired + private StaffService staffService; + + @Autowired + private RecordRoleService recordRoleService; + + @Autowired + private StaffRoleDepartmentService staffRoleDepartmentService; + + @Autowired + private DepartmentsService departmentsService; + + + /** * 列表 */ @RequestMapping("/list") @RequiresPermissions("user:lzstaffrole:list") - public R list(@RequestParam Map params){ + public R list(@RequestParam Map params) { PageUtils page = staffRoleService.queryPage(params); return R.ok().put("page", page); } @@ -46,32 +66,97 @@ public class StaffRoleController { * 信息 */ @RequestMapping("/info/{id}") - @RequiresPermissions("user:lzstaffrole:info") - public R info(@PathVariable("id") Long id){ - StaffRole lzStaffRole = staffRoleService.selectByStaffId(id); - - return R.ok().put("lzStaffRole", lzStaffRole); + public R info(@PathVariable("id") Long id) { + StaffRole lzStaffRole = staffRoleService.selectStaffRoleById(id); + List staffEntityList = staffService.selectAll(); + List newList = new ArrayList<>(); + staffEntityList.forEach(p -> { + StaffEntity staffEntity = new StaffEntity(); + staffEntity.setId(p.getId()); + staffEntity.setName(p.getName()); + newList.add(staffEntity); + }); + List roles = recordRoleService.selectAll(); + return R.ok().put("lzStaffRole", lzStaffRole) + .put("staffs", newList) + .put("targetRoles", roles) + ; } /** - * 保存 + * 信息 */ - @RequestMapping("/save") - @RequiresPermissions("user:lzstaffrole:save") - public R save(@RequestBody StaffRole lzStaffRole){ - staffRoleService.insertStaffRole(lzStaffRole); - - return R.ok(); + @RequestMapping("/role/list/{id}") + public R roleList(@PathVariable("id") Long id) { + SysRoleEntity role = staffRoleService.getRole(id); + return R.ok().put("role", role); } + @RequestMapping("/menu/list") + public List menuList() { + List list = staffRoleService.selectMenuList(); + return list; + } + + /** * 修改 */ - @RequestMapping("/update") + @RequestMapping("/updateOrAdd") @RequiresPermissions("user:lzstaffrole:update") - public R update(@RequestBody StaffRole lzStaffRole){ - staffRoleService.updateById(lzStaffRole); + public R update(@RequestBody StaffRoleRequest req) { + StaffRole staffRole = null; + List staffRoles = staffRoleService.selectByRole(req.getDepartmentLevel()); + List ids = staffRoles.stream().map(StaffRole::getId).collect(Collectors.toList()); + if (req.getId() == null || req.getId() <= 0) { + staffRole = new StaffRole(); + } else { + staffRole = staffRoleService.selectStaffRoleById(req.getId()); + } + staffRole.setStaffId(req.getStaffId()); + staffRole.setDepartmentLevel(req.getDepartmentLevel()); + Map map = new HashMap<>(); + map.put("type1", req.getTargetRole()); + map.put("type2", req.getResultRole()); + staffRole.setTypeRoleIds(JSON.toJSONString(map)); + List menuIdList = req.getMenuIdList(); + for(Long menuId : menuIdList) { + if (menuId <= 0) { + continue; + } + StaffRoleDepartment staffRoleDepartment = staffRoleDepartmentService.selectStaffRoleDepartmentByDepartmentIdRoleIds(menuId, ids); + if (staffRoleDepartment != null) { + StaffRole staffRoleOld = staffRoleService.selectStaffRoleById(staffRoleDepartment.getStaffRoleId()); + if (staffRoleOld.getStaffId().equals(req.getStaffId()) && req.getId() != null && req.getId() > 0) { + // 如果是编辑的时候,排除自己 + continue; + } + StaffEntity staffEntity = staffService.getById(staffRoleOld.getStaffId()); + DepartmentsEntity departmentsEntity = departmentsService.selectByDepartmentId(staffRoleDepartment.getDepartmentId()); + return R.error(departmentsEntity.getDepartmentName() + " 己经分给了 " + staffEntity.getName() + " 审批,如需要更换,请去掉" + staffEntity.getName() + " 权限 "); + } + staffRoleDepartment = new StaffRoleDepartment(); + staffRoleDepartment.setDepartmentId(menuId + ""); + staffRoleDepartment.setStaffRoleId(staffRole.getId()); + staffRoleDepartmentService.insertStaffRoleDepartment(staffRoleDepartment); + } + if (req.getId() != null && req.getId() > 0) { + List staffRoleDepartments = staffRoleDepartmentService.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId()); + for(StaffRoleDepartment staffRoleDepartment : staffRoleDepartments){ + if(!menuIdList.contains(staffRoleDepartment.getDepartmentId())){ + // 删除没有选的部门 + staffRoleDepartmentService.deleteStaffRoleDepartment(staffRoleDepartment.getId()); + } + } + } + + + if (req.getId() == null) { + staffRoleService.insertStaffRole(staffRole); + } else { + staffRoleService.updateStaffRoleById(staffRole); + } return R.ok(); } @@ -80,8 +165,8 @@ public class StaffRoleController { */ @RequestMapping("/delete") @RequiresPermissions("user:lzstaffrole:delete") - public R delete(@RequestBody Long[] ids){ - staffRoleService.deleteBatchIds(Arrays.asList(ids)); + public R delete(@RequestBody Long[] ids) { + staffRoleService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } diff --git a/src/main/java/com/lz/modules/app/dao/StaffDao.java b/src/main/java/com/lz/modules/app/dao/StaffDao.java index eb2e1bca..d1237722 100644 --- a/src/main/java/com/lz/modules/app/dao/StaffDao.java +++ b/src/main/java/com/lz/modules/app/dao/StaffDao.java @@ -78,4 +78,6 @@ public interface StaffDao extends BaseMapper { StaffEntity selectStaffByEmployeeId(@Param("employeeId") String employeeId); List selectBySearchName(@Param("page") IPage page, @Param("model") FindByNameModel nameModel); + + List selectAll(); } diff --git a/src/main/java/com/lz/modules/app/service/StaffService.java b/src/main/java/com/lz/modules/app/service/StaffService.java index 8d5dc578..67143cc8 100644 --- a/src/main/java/com/lz/modules/app/service/StaffService.java +++ b/src/main/java/com/lz/modules/app/service/StaffService.java @@ -80,5 +80,7 @@ public interface StaffService extends IService { //查询部门下的所有人员 包括子部门下人员 List selectAllStaffByDepartmentId(String departmentId); + + List selectAll(); } diff --git a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java index b1dcd2c8..a70454fe 100644 --- a/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java +++ b/src/main/java/com/lz/modules/app/service/impl/StaffServiceImpl.java @@ -390,6 +390,11 @@ public class StaffServiceImpl extends ServiceImpl impleme return null; } + @Override + public List selectAll() { + return staffDao.selectAll(); + } + /** * * @param departmentsList 最终的存储集合 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 2986d417..1f19f0de 100644 --- a/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java +++ b/src/main/java/com/lz/modules/flow/dao/StaffRoleDepartmentMapper.java @@ -34,4 +34,10 @@ public interface StaffRoleDepartmentMapper extends BaseMapper selectStaffRoleDepartmentByStaffRoleId(@Param("staffRoleId") Long staffRoleId); + + StaffRoleDepartment selectStaffRoleDepartmentByDepartmentId(@Param("departmentId") Long departmentId); + + StaffRoleDepartment selectStaffRoleDepartmentByDepartmentIdRoleIds(@Param("departmentId") Long departmentId, @Param("ids") List ids); + + void deleteStaffRoleDepartment(@Param("id") Long id); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/req/StaffRoleRequest.java b/src/main/java/com/lz/modules/flow/req/StaffRoleRequest.java new file mode 100644 index 00000000..85e7b32a --- /dev/null +++ b/src/main/java/com/lz/modules/flow/req/StaffRoleRequest.java @@ -0,0 +1,14 @@ +package com.lz.modules.flow.req; + +import com.lz.modules.flow.entity.StaffRole; +import lombok.Data; + +import java.util.List; + +@Data +public class StaffRoleRequest extends StaffRole { + private List menuIdList; + private Integer targetRole; + private Integer resultRole; + +} diff --git a/src/main/java/com/lz/modules/flow/service/RecordRoleService.java b/src/main/java/com/lz/modules/flow/service/RecordRoleService.java index c6edebb4..e0586fbb 100644 --- a/src/main/java/com/lz/modules/flow/service/RecordRoleService.java +++ b/src/main/java/com/lz/modules/flow/service/RecordRoleService.java @@ -3,6 +3,8 @@ package com.lz.modules.flow.service; import com.baomidou.mybatisplus.extension.service.IService; import com.lz.common.utils.PageUtils; import com.lz.modules.flow.entity.RecordRole; +import com.lz.modules.sys.entity.SysMenuEntity; +import com.lz.modules.sys.entity.SysRoleEntity; import com.lz.modules.sys.entity.app.ResultRecord; import java.util.List; @@ -40,4 +42,10 @@ public interface RecordRoleService extends IService { PageUtils queryPage(Map params); List selectAll(); + + SysRoleEntity getRole(Long id); + + List selectMenuList(); + + SysMenuEntity buildMenuEntity(Long id, String name, Long parentId, String parentName); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleDepartmentService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleDepartmentService.java index 8a04ae95..48db35e0 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleDepartmentService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleDepartmentService.java @@ -33,4 +33,10 @@ public interface StaffRoleDepartmentService extends IService selectStaffRoleDepartmentByStaffRoleId(Long staffRoleId); + + StaffRoleDepartment selectStaffRoleDepartmentByDepartmentId(Long departmentId); + + StaffRoleDepartment selectStaffRoleDepartmentByDepartmentIdRoleIds(Long menuId, List ids); + + void deleteStaffRoleDepartment(Long id); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/StaffRoleService.java b/src/main/java/com/lz/modules/flow/service/StaffRoleService.java index 7a8414c0..5399afd3 100644 --- a/src/main/java/com/lz/modules/flow/service/StaffRoleService.java +++ b/src/main/java/com/lz/modules/flow/service/StaffRoleService.java @@ -3,6 +3,8 @@ package com.lz.modules.flow.service; import com.baomidou.mybatisplus.extension.service.IService; import com.lz.common.utils.PageUtils; import com.lz.modules.flow.entity.StaffRole; +import com.lz.modules.sys.entity.SysMenuEntity; +import com.lz.modules.sys.entity.SysRoleEntity; import java.util.List; import java.util.Map; @@ -41,4 +43,8 @@ public interface StaffRoleService extends IService { PageUtils queryPage(Map params); void deleteBatchIds(List asList); + + SysRoleEntity getRole(Long id); + + List selectMenuList(); } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/flow/service/impl/RecordRoleServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/RecordRoleServiceImpl.java index 8aeb937e..80e63b3f 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/RecordRoleServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/RecordRoleServiceImpl.java @@ -4,12 +4,17 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.lz.common.utils.NumberUtil; import com.lz.common.utils.PageUtils; import com.lz.modules.flow.dao.RecordRoleMapper; +import com.lz.modules.flow.entity.RecordAuth; import com.lz.modules.flow.entity.RecordRole; +import com.lz.modules.flow.service.RecordAuthService; +import com.lz.modules.flow.service.RecordRoleAuthService; import com.lz.modules.flow.service.RecordRoleService; -import com.lz.modules.sys.entity.app.ResultRecord; +import com.lz.modules.sys.entity.SysMenuEntity; +import com.lz.modules.sys.entity.SysRoleEntity; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -29,6 +34,13 @@ public class RecordRoleServiceImpl extends ServiceImpl menuIdList = recordRoleAuthService.queryMenuIdList(id); + + role.setMenuIdList(menuIdList); + return role; + } + + @Override + public List selectMenuList() { + List list = new ArrayList<>(); + List recordAuths = recordAuthService.selectAll(); + for (int i = 0; i < recordAuths.size(); i++) { + RecordAuth recordAuth = recordAuths.get(i); + Long parentId = recordAuth.getId(); + if (i + 1 < recordAuths.size()) { + RecordAuth child = recordAuths.get(i + 1); + if (child.getIdentity().equals(recordAuth.getIdentity())) { + parentId = NumberUtil.objToLong(recordAuth.getId() + "000000"); + } + } + SysMenuEntity sysMenuEntity = buildMenuEntity(parentId, recordAuth.getName(), 0l, ""); + list.add(sysMenuEntity); + if (i + 1 < recordAuths.size()) { + RecordAuth child = recordAuths.get(i + 1); + if (!child.getIdentity().equals(recordAuth.getIdentity())) { + continue; + } + for (int j = i; j < recordAuths.size(); j++) { + child = recordAuths.get(j); + if (!child.getIdentity().equals(recordAuth.getIdentity())) { + if (j == recordAuths.size() - 1) { + i = j; + } else { + i = j - 1; + } + break; + } + String name = "不可见"; + if (child.getStatus().equals(1)) { + name = "可见"; + } else if (child.getStatus().equals(2)) { + name = "可编辑"; + } + SysMenuEntity childMenuEntity = buildMenuEntity(child.getId(), name, parentId, recordAuth.getName()); + list.add(childMenuEntity); + if (j == recordAuths.size() - 1) { + i = j; + } + } + } + } + return list; + } + + + + @Override + public SysMenuEntity buildMenuEntity(Long id, String name, Long parentId, String parentName) { + SysMenuEntity sysMenuEntity = new SysMenuEntity(); + sysMenuEntity.setMenuId(id); + sysMenuEntity.setName(name); + sysMenuEntity.setParentId(parentId); + sysMenuEntity.setParentName(parentName); + return sysMenuEntity; + } + } diff --git a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleDepartmentServiceImpl.java b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleDepartmentServiceImpl.java index 227d8dcb..4f10c558 100644 --- a/src/main/java/com/lz/modules/flow/service/impl/StaffRoleDepartmentServiceImpl.java +++ b/src/main/java/com/lz/modules/flow/service/impl/StaffRoleDepartmentServiceImpl.java @@ -65,5 +65,20 @@ public class StaffRoleDepartmentServiceImpl extends ServiceImpl ids) { + return staffRoleDepartmentMapper.selectStaffRoleDepartmentByDepartmentIdRoleIds(departmentId,ids); + } + + @Override + public void deleteStaffRoleDepartment(Long id) { + staffRoleDepartmentMapper.deleteStaffRoleDepartment(id); + } + } 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 1c0a3306..4574120b 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 @@ -5,21 +5,33 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.google.common.collect.Maps; import com.lz.common.utils.NumberUtil; import com.lz.common.utils.PageUtils; +import com.lz.modules.app.dao.DepartmentsDao; import com.lz.modules.app.dao.StaffDao; import com.lz.modules.app.dto.StaffRoleResp; +import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.flow.dao.RecordRoleMapper; +import com.lz.modules.flow.dao.StaffRoleDepartmentMapper; import com.lz.modules.flow.dao.StaffRoleMapper; import com.lz.modules.flow.entity.RecordRole; import com.lz.modules.flow.entity.StaffRole; +import com.lz.modules.flow.entity.StaffRoleDepartment; +import com.lz.modules.flow.service.RecordRoleService; +import com.lz.modules.flow.service.StaffRoleDepartmentService; import com.lz.modules.flow.service.StaffRoleService; +import com.lz.modules.sys.entity.SysMenuEntity; +import com.lz.modules.sys.entity.SysRoleEntity; +import com.lz.modules.sys.service.app.ResultRecordService; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** *

@@ -31,6 +43,7 @@ import java.util.Map; */ @Service +@Slf4j public class StaffRoleServiceImpl extends ServiceImpl implements StaffRoleService { @@ -44,6 +57,16 @@ public class StaffRoleServiceImpl extends ServiceImpl menuIdList= new ArrayList<>(); + if(staffRole!=null){ + List staffRoleDepartments = staffRoleDepartmentMapper.selectStaffRoleDepartmentByStaffRoleId(staffRole.getId()); + role.setRoleId(staffRole.getId()); + role.setRoleName(staffRole.getDepartmentLevel()); + for(StaffRoleDepartment staffRoleDepartment: staffRoleDepartments){ + menuIdList.add(NumberUtil.objToLongDefault(staffRoleDepartment.getDepartmentId(),0l)); + } + } + role.setMenuIdList(menuIdList); + return role; + } + + @Override + public List selectMenuList() { + List tDepartments = departmentsDao.selectAll(); + List parentDepartments = tDepartments.stream() + //根据两个属性进行过滤 + .filter(s -> s.getDepartmentParentId().equals("1")) + .collect(Collectors.toList()); + + List list = new ArrayList<>(); + for(DepartmentsEntity d:parentDepartments){ + SysMenuEntity entity = recordRoleService.buildMenuEntity(NumberUtil.objToLongDefault(d.getDepartmentId(),0l),d.getDepartmentName(),0l,""); + getMenuList(tDepartments,entity,list); + list.add(entity); + } + return list; + } + + public void getMenuList(List tDepartments,SysMenuEntity sysMenuEntity,List list) { + for(DepartmentsEntity child : tDepartments) { + if(NumberUtil.objToLongDefault(child.getDepartmentParentId(),0l).equals(sysMenuEntity.getMenuId())){ + SysMenuEntity entity = recordRoleService.buildMenuEntity(NumberUtil.objToLongDefault(child.getDepartmentId(),0l), + child.getDepartmentName(),sysMenuEntity.getMenuId(),sysMenuEntity.getName()); + getMenuList(tDepartments,entity,list); + list.add(entity); + } + } + } + } diff --git a/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java index e4b7e918..fae5a1fb 100644 --- a/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java +++ b/src/main/java/com/lz/modules/sys/service/app/ResultRecordService.java @@ -6,6 +6,7 @@ import com.lz.common.utils.PageUtils; import com.lz.common.utils.R; import com.lz.modules.app.dto.ChartDto; import com.lz.modules.app.dto.GraphicsStatisticalDto; +import com.lz.modules.app.entity.DepartmentsEntity; import com.lz.modules.app.entity.StaffEntity; import com.lz.modules.app.req.ResultRecordReq; import com.lz.modules.app.resp.OwnResultResp; @@ -15,6 +16,7 @@ import com.lz.modules.sys.entity.SysUserEntity; import com.lz.modules.sys.entity.app.ResultRecord; import java.util.List; +import java.util.Map; /** *

@@ -86,4 +88,6 @@ public interface ResultRecordService extends IService { */ List departmentDistribution(String monthTime); + Map> getStringListMap(List tDepartments); + } \ No newline at end of file diff --git a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java index 00f12a56..24a50b17 100644 --- a/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java +++ b/src/main/java/com/lz/modules/sys/service/app/impl/ResultRecordServiceImpl.java @@ -225,7 +225,8 @@ public class ResultRecordServiceImpl extends ServiceImpl> getStringListMap(List tDepartments) { + @Override + public Map> getStringListMap(List tDepartments) { Map> departmentMap = new HashMap<>(); for(DepartmentsEntity department : tDepartments) { List list = new ArrayList<>(); diff --git a/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml b/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml index a86d6fda..db200f54 100644 --- a/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml +++ b/src/main/resources/mapper/flow/StaffRoleDepartmentMapper.xml @@ -20,7 +20,6 @@ - @@ -80,7 +79,23 @@ + + + + + delete from lz_staff_role_department where id = #{id} + + diff --git a/src/main/resources/mapper/generator/DepartmentsDao.xml b/src/main/resources/mapper/generator/DepartmentsDao.xml index 45e0dee8..baa7b336 100644 --- a/src/main/resources/mapper/generator/DepartmentsDao.xml +++ b/src/main/resources/mapper/generator/DepartmentsDao.xml @@ -75,6 +75,7 @@ + diff --git a/src/main/resources/mapper/generator/StaffDao.xml b/src/main/resources/mapper/generator/StaffDao.xml index ca9d9594..2e63c1c7 100644 --- a/src/main/resources/mapper/generator/StaffDao.xml +++ b/src/main/resources/mapper/generator/StaffDao.xml @@ -443,4 +443,8 @@ AND staf.name LIKE CONCAT('%',#{model.name},'%') + +