package com.ruoyi.web.controller.system; import java.util.HashMap; import java.util.List; import java.util.Map; import com.ruoyi.web.layui.wrapper.EleTreeWrapper; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.base.AjaxResult; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.framework.util.ShiroUtils; import com.ruoyi.system.domain.SysDept; import com.ruoyi.system.domain.SysRole; import com.ruoyi.system.service.ISysDeptService; import com.ruoyi.framework.web.base.BaseController; /** * 部门信息 * * @author ruoyi */ @Controller @RequestMapping("/system/dept") public class SysDeptController extends BaseController { private String prefix = "system/dept"; @Autowired private ISysDeptService deptService; @RequiresPermissions("system:dept:view") @GetMapping() public String dept() { return prefix + "/dept"; } @RequiresPermissions("system:dept:list") @GetMapping("/list") @ResponseBody public List<SysDept> list(SysDept dept) { List<SysDept> deptList = deptService.selectDeptList(dept); return deptList; } @RequiresPermissions("system:dept:list") @GetMapping("/listTreeGridData") @ResponseBody public Map listTreeGridData(SysDept dept) { Map retMap = new HashMap(); List<SysDept> deptList = deptService.selectDeptList(dept); retMap.put("msg",""); retMap.put("code",0); retMap.put("data",deptList); retMap.put("count",deptList!=null?deptList.size():0); retMap.put("is",true); retMap.put("tip","操作成功"); return retMap; } /** * 新增部门 */ @GetMapping("/add/{parentId}") public String add(@PathVariable("parentId") Long parentId, ModelMap mmap) { if(parentId == null || parentId == 0){ SysDept dept = new SysDept(); dept.setDeptId(0L); dept.setDeptName("主部门"); mmap.put("dept", dept); }else { mmap.put("dept", deptService.selectDeptById(parentId)); } return prefix + "/add"; } /** * 新增保存部门 */ @Log(title = "部门管理", businessType = BusinessType.INSERT) @RequiresPermissions("system:dept:add") @PostMapping("/add") @ResponseBody public AjaxResult addSave(SysDept dept) { dept.setCreateBy(ShiroUtils.getLoginName()); return toAjax(deptService.insertDept(dept)); } /** * 修改 */ @GetMapping("/edit/{deptId}") public String edit(@PathVariable("deptId") Long deptId, ModelMap mmap) { SysDept dept = deptService.selectDeptById(deptId); if (StringUtils.isNotNull(dept) && 100L == deptId) { dept.setParentName("无"); } mmap.put("dept", dept); return prefix + "/edit"; } /** * 保存 */ @Log(title = "部门管理", businessType = BusinessType.UPDATE) @RequiresPermissions("system:dept:edit") @PostMapping("/edit") @ResponseBody public AjaxResult editSave(SysDept dept) { dept.setUpdateBy(ShiroUtils.getLoginName()); return toAjax(deptService.updateDept(dept)); } /** * 删除 */ @Log(title = "部门管理", businessType = BusinessType.DELETE) @RequiresPermissions("system:dept:remove") @PostMapping("/remove/{deptId}") @ResponseBody public AjaxResult remove(@PathVariable("deptId") Long deptId) { if (deptService.selectDeptCount(deptId) > 0) { return error(1, "存在下级部门,不允许删除"); } if (deptService.checkDeptExistUser(deptId)) { return error(1, "部门存在用户,不允许删除"); } return toAjax(deptService.deleteDeptById(deptId)); } /** * 校验部门名称 */ @PostMapping("/checkDeptNameUnique") @ResponseBody public String checkDeptNameUnique(SysDept dept) { return deptService.checkDeptNameUnique(dept); } /** * 选择部门树 */ @GetMapping("/selectDeptTree/{deptId}") public String selectDeptTree(@PathVariable("deptId") Long deptId, ModelMap mmap) { mmap.put("dept", deptService.selectDeptById(deptId)); return prefix + "/tree"; } /** * 加载部门列表树 */ @GetMapping("/treeData") @ResponseBody public List<Map<String, Object>> treeData() { List<Map<String, Object>> tree = deptService.selectDeptTree(new SysDept()); return tree; } @GetMapping("/treeData2") @ResponseBody public Map treeData2() { Map retMap = new HashMap(); List<Map<String, Object>> tree = deptService.selectDeptTree(new SysDept()); tree = EleTreeWrapper.getInstance().getTree(tree,"pId","id"); retMap.put("code",0); retMap.put("data",tree); return retMap; } /** * 加载角色部门(数据权限)列表树 */ @GetMapping("/roleDeptTreeData") @ResponseBody public List<Map<String, Object>> deptTreeData(SysRole role) { List<Map<String, Object>> tree = deptService.roleDeptTreeData(role); return tree; } /** * 加载角色部门(数据权限)列表树,适配EleTree */ @GetMapping("/roleDeptTreeData2") @ResponseBody public Map deptTreeData2(SysRole role) { Map retMap = new HashMap(); List<Map<String, Object>> tree = deptService.roleDeptTreeData(role); tree = EleTreeWrapper.getInstance().getTree(tree,"pId","id"); retMap.put("code",0); retMap.put("data",tree); return retMap; } }