diff --git a/src/main/java/cn/palmte/work/controller/backend/DepartmentController.java b/src/main/java/cn/palmte/work/controller/backend/DepartmentController.java index 508a5b7..7c82062 100644 --- a/src/main/java/cn/palmte/work/controller/backend/DepartmentController.java +++ b/src/main/java/cn/palmte/work/controller/backend/DepartmentController.java @@ -32,6 +32,9 @@ public class DepartmentController extends BaseController{ @Autowired private DeptRepository deptRepository; + @Autowired + private AdminRepository adminRepository; + /** * 列表查询 * @param keywords @@ -57,6 +60,8 @@ public class DepartmentController extends BaseController{ } } model.put("pager", page); + List deptList = deptRepository.findEnableParent(); + model.put("parentList", deptList); return "/admin/department_list"; } @@ -70,6 +75,10 @@ public class DepartmentController extends BaseController{ Dept department = new Dept(); model.put("deptId",-1); model.put("department",department); + List adminList = adminRepository.getAllEnableWoAdmin(); + model.put("userList", adminList); + List deptList = deptRepository.findEnableParent(); + model.put("parentList", deptList); return "/admin/department_input"; } @@ -83,6 +92,10 @@ public class DepartmentController extends BaseController{ Dept dept = deptRepository.findOne(id); model.put("deptId", id); model.put("department", dept); + List adminList = adminRepository.getAllEnableWoAdmin(); + model.put("userList", adminList); + List deptList = deptRepository.findEnableParent(); + model.put("parentList", deptList); return "/admin/department_input"; } @@ -142,8 +155,8 @@ public class DepartmentController extends BaseController{ public void export(@RequestParam(value = "keywords",required = false) String keywords, HttpServletResponse httpServletResponse) throws IOException { Map searchInfo = getSearchInfo(keywords); downloadHeader(httpServletResponse , Utils.generateExcelName("部门表"), "application/octet-stream"); - String[] headers = {"部门名称","创建人","创建时间", "状态"}; - String[] exportColumns = {"name","createdBy","createdTime", "status"}; + String[] headers = {"部门名称", "部门领导", "所属上级", "创建人","创建时间", "状态"}; + String[] exportColumns = {"name", "realName", "parentName", "createdBy","createdTime", "status"}; ExportUtils.exportToExcel(headers, exportColumns, 1, 10000, httpServletResponse.getOutputStream(), (pN, pS) -> deptService.list(searchInfo, pN, pS).getList()); } diff --git a/src/main/java/cn/palmte/work/model/AdminRepository.java b/src/main/java/cn/palmte/work/model/AdminRepository.java index e640662..7ce3c1f 100644 --- a/src/main/java/cn/palmte/work/model/AdminRepository.java +++ b/src/main/java/cn/palmte/work/model/AdminRepository.java @@ -46,6 +46,9 @@ public interface AdminRepository extends JpaRepository { @Query("from Admin where isDeleted=0 AND enabled=1") List getAllEnable(); + @Query("from Admin where isDeleted=0 AND enabled=1 AND id>1") + List getAllEnableWoAdmin(); + @Query("from Admin where isDeleted=0 AND enabled=1 AND roleId=?1") List findByRoleId(int roleId); diff --git a/src/main/java/cn/palmte/work/model/Dept.java b/src/main/java/cn/palmte/work/model/Dept.java index 5f09c3b..f008506 100644 --- a/src/main/java/cn/palmte/work/model/Dept.java +++ b/src/main/java/cn/palmte/work/model/Dept.java @@ -24,12 +24,12 @@ public class Dept { private String name; @Column(name = "manager_id") - private Integer managerId; + private Integer managerId = 0; private Integer level; @Column(name = "parent_id") - private Integer parentId; + private Integer parentId = 0; private int enabled; diff --git a/src/main/java/cn/palmte/work/model/DeptRepository.java b/src/main/java/cn/palmte/work/model/DeptRepository.java index ddbe489..386d67b 100644 --- a/src/main/java/cn/palmte/work/model/DeptRepository.java +++ b/src/main/java/cn/palmte/work/model/DeptRepository.java @@ -11,4 +11,7 @@ public interface DeptRepository extends JpaRepository { @Query(value = "select * from dept where enabled = 1", nativeQuery = true) List findEnable(); + + @Query(value = "select * from dept where enabled = 1 and level <= 2", nativeQuery = true) + List findEnableParent(); } diff --git a/src/main/java/cn/palmte/work/service/DeptService.java b/src/main/java/cn/palmte/work/service/DeptService.java index 5152b39..23ec54d 100644 --- a/src/main/java/cn/palmte/work/service/DeptService.java +++ b/src/main/java/cn/palmte/work/service/DeptService.java @@ -43,6 +43,8 @@ public class DeptService { searchInfo.get("name") + "%"); queryHelper.addCondition(searchInfo.containsKey("enabled") && !"-1".equals(searchInfo.get("enabled")), "d.enabled=" + searchInfo.get("enabled")); + queryHelper.addCondition(searchInfo.containsKey("parentId") && !"-1".equals(searchInfo.get("parentId")), + "d.parent_id=" + searchInfo.get("parentId")); queryHelper.addCondition(searchInfo.containsKey("startTime"), "d.created_time >= ?", searchInfo.get("startTime") + " 00:00:00"); queryHelper.addCondition(searchInfo.containsKey("endTime"), "d.created_time <= ?", searchInfo.get("endTime") + " 23:59:59"); queryHelper.addOrderProperty("d.id", false); @@ -59,11 +61,27 @@ public class DeptService { if(null == obj){ obj = new Dept(); obj.setName(dept.getName()); + obj.setManagerId(dept.getManagerId()); + obj.setParentId(dept.getParentId()); + if (obj.getParentId() == 0) { + obj.setLevel(0); + } else { + Dept one = deptRepository.findOne(obj.getParentId()); + obj.setLevel(one.getLevel() + 1); + } obj.setEnabled(dept.getEnabled()); obj.setCreatedBy(InterfaceUtil.getAdmin().getRealName()); obj.setCreatedTime(new Date()); }else { obj.setName(dept.getName()); + obj.setManagerId(dept.getManagerId()); + obj.setParentId(dept.getParentId()); + if (obj.getParentId() == 0) { + obj.setLevel(0); + } else { + Dept one = deptRepository.findOne(obj.getParentId()); + obj.setLevel(one.getLevel() + 1); + } obj.setEnabled(dept.getEnabled()); } deptRepository.saveAndFlush(obj); diff --git a/src/main/resources/templates/admin/department_input.ftl b/src/main/resources/templates/admin/department_input.ftl index a0554c5..37a1459 100644 --- a/src/main/resources/templates/admin/department_input.ftl +++ b/src/main/resources/templates/admin/department_input.ftl @@ -33,6 +33,46 @@
+
+
+ * + 所属上级 +
+
+ +
+
+
+ +
+
+ * + 部门领导 +
+
+ +
+
+
+
启用/禁用
diff --git a/src/main/resources/templates/admin/department_list.ftl b/src/main/resources/templates/admin/department_list.ftl index 6de86f4..40d4002 100644 --- a/src/main/resources/templates/admin/department_list.ftl +++ b/src/main/resources/templates/admin/department_list.ftl @@ -33,10 +33,25 @@
+ 所属上级 + +
+ +
+ 创建时间 - +
@@ -169,6 +184,8 @@ keywordsObj.name = $("#name").val(); if ($("#type").val()) keywordsObj.type = $("#type").val(); + if ($("#parentId").val()) + keywordsObj.parentId = $("#parentId").val(); if ($("#enabled").val()) keywordsObj.enabled = $("#enabled").val(); if ($("#startTime").val())