From 0e41bd99a4df0b27f9b1e7c733fd57bd09711221 Mon Sep 17 00:00:00 2001
From: tangzy <tangzy123456>
Date: Mon, 12 Jul 2021 09:22:49 +0800
Subject: [PATCH] 1.
---
src/main/java/org/springblade/modules/system/mapper/UserMapper.xml | 3 +
src/main/java/org/springblade/modules/system/mapper/DeptMapper.java | 16 ++++++++
src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml | 56 ++++++++++++++++++++++++++++
src/main/java/org/springblade/modules/system/controller/DeptController.java | 12 +++++
src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java | 20 ++++++++++
src/main/java/org/springblade/modules/system/service/IDeptService.java | 11 +++++
src/main/java/org/springblade/modules/system/entity/User.java | 1
7 files changed, 117 insertions(+), 2 deletions(-)
diff --git a/src/main/java/org/springblade/modules/system/controller/DeptController.java b/src/main/java/org/springblade/modules/system/controller/DeptController.java
index 0ae5b94..1026e5a 100644
--- a/src/main/java/org/springblade/modules/system/controller/DeptController.java
+++ b/src/main/java/org/springblade/modules/system/controller/DeptController.java
@@ -57,7 +57,7 @@
@AllArgsConstructor
@RequestMapping(AppConstant.APPLICATION_SYSTEM_NAME + "/dept")
@Api(value = "部门", tags = "部门")
-@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
+//@PreAuth(RoleConstant.HAS_ROLE_ADMIN)
public class DeptController extends BladeController {
private final IDeptService deptService;
@@ -127,6 +127,16 @@
}
/**
+ * 懒加载获取部门树形结构
+ */
+ @GetMapping("/lazy-trees")
+ @ApiOperation(value = "懒加载树形结构", notes = "树形结构")
+ public R<List<DeptVO>> lazyTrees() {
+ List<DeptVO> tree = deptService.lazyTrees();
+ return R.data(tree);
+ }
+
+ /**
* 新增或修改
*/
@PostMapping("/submit")
diff --git a/src/main/java/org/springblade/modules/system/entity/User.java b/src/main/java/org/springblade/modules/system/entity/User.java
index 91911cb..1e2b301 100644
--- a/src/main/java/org/springblade/modules/system/entity/User.java
+++ b/src/main/java/org/springblade/modules/system/entity/User.java
@@ -148,6 +148,7 @@
@ApiModelProperty(value = "入职时间")
private String rtime;
private String hold;
+ private String jurisdiction;
}
diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
index bbcb7e6..58aaeb2 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.java
@@ -58,6 +58,13 @@
List<DeptVO> lazyTree(String tenantId, Long parentId);
/**
+ * 懒加载获取树形节点
+ *
+ * @return
+ */
+ List<DeptVO> lazyTrees();
+
+ /**
* 获取部门名
*
* @param ids
@@ -65,4 +72,13 @@
*/
List<String> getDeptNames(Long[] ids);
+ /**
+ * 分局树状信息
+ * @return
+ */
+ List<String> selectIn();
+ List<Map<Object,String>> selectCount(String name);
+ List<Map<Object,String>> selectId(String id);
+ Map<Object,Integer> selectHold(String deptid);
+
}
diff --git a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
index b002fc8..72aa7d8 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -99,6 +99,34 @@
ORDER BY dept.sort
</select>
+
+
+ <select id="lazyTrees" resultMap="treeNodeResultMap" >
+ SELECT
+ dept.id,
+ dept.parent_id,
+ dept.dept_name AS title,
+ dept.id AS "value",
+ dept.id AS "key",
+ (
+ SELECT
+ CASE WHEN count(1) > 0 THEN 0 ELSE 1 END
+ FROM
+ blade_dept
+ WHERE
+ parent_id = dept.id and is_deleted = 0
+ ) AS "has_children"
+ FROM
+ blade_dept dept WHERE (
+ SELECT
+ CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
+ FROM
+ blade_dept
+ WHERE
+ parent_id = dept.id and is_deleted = 0
+ ) =1
+</select>
+
<select id="getDeptNames" resultType="java.lang.String">
SELECT
dept_name
@@ -112,4 +140,32 @@
and is_deleted = 0
</select>
+ <select id="selectIn" resultType="java.util.HashMap">
+ SELECT
+ id,
+ dept_name
+ FROM
+ blade_dept
+ </select>
+
+ <!--统计单位类型数量-->
+ <select id="selectCount" resultType="java.util.HashMap">
+ SELECT dept.id as jurisdiction,dept.dept_name AS title FROM blade_dept dept WHERE dept.dept_name like concat(concat('%', #{name}),'%')
+ </select>
+
+ <select id="selectHold" resultType="java.util.HashMap">
+ SELECT
+ ISNULL(B.cz,0) as cz,
+ ISNULL(C.wcz,0) as wcz
+ FROM (SELECT jurisdiction FROM blade_user ) A
+ LEFT JOIN (SELECT COUNT(hold) as cz,jurisdiction FROM blade_user WHERE hold=0 GROUP BY jurisdiction ) B ON A.jurisdiction=B.jurisdiction
+ LEFT JOIN (SELECT COUNT(hold) as wcz,jurisdiction FROM blade_user WHERE hold=1 GROUP BY jurisdiction ) C ON A.jurisdiction=C.jurisdiction
+ WHERE A.jurisdiction=#{deptid} GROUP BY cz,wcz
+ </select>
+
+ <!--查询部门下面的所有单位-->
+ <select id="selectId" resultType="java.util.HashMap">
+ SELECT id FROM blade_dept WHERE parent_id =#{id} and is_deleted = 0
+ </select>
+
</mapper>
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index 8103776..4886233 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -37,6 +37,7 @@
<result column="registered" property="registered"/>
<result column="rtime" property="rtime"/>
<result column="hold" property="hold"/>
+ <result column="jurisdiction" property="jurisdiction"/>
</resultMap>
<select id="selectUserPage" resultMap="userResultMap">
@@ -64,6 +65,8 @@
</if>
<if test="user.hold!=null and user.hold != ''">
and hold = #{user.hold}
+ </if> <if test="user.jurisdiction!=null and user.jurisdiction != ''">
+ and jurisdiction = #{user.jurisdiction}
</if>
<if test="deptIdList!=null and deptIdList.size>0">
and id in (
diff --git a/src/main/java/org/springblade/modules/system/service/IDeptService.java b/src/main/java/org/springblade/modules/system/service/IDeptService.java
index d7d0aa4..6886622 100644
--- a/src/main/java/org/springblade/modules/system/service/IDeptService.java
+++ b/src/main/java/org/springblade/modules/system/service/IDeptService.java
@@ -58,6 +58,13 @@
List<DeptVO> lazyTree(String tenantId, Long parentId);
/**
+ * 懒加载获取树形节点
+ *
+ * @return
+ */
+ List<DeptVO> lazyTrees();
+
+ /**
* 获取部门ID
*
* @param tenantId
@@ -115,5 +122,7 @@
* @return
*/
List<DeptVO> search(String deptName, Long parentId);
-
+ List<Map<Object,String>> selectCount(String name);
+ List<Map<Object,String>> selectId(String id);
+ Map<Object,Integer> selectHold(String deptid);
}
diff --git a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
index 294118f..ffa2c45 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/DeptServiceImpl.java
@@ -90,6 +90,11 @@
}
@Override
+ public List<DeptVO> lazyTrees() {
+ return ForestNodeMerger.merge(baseMapper.lazyTrees());
+ }
+
+ @Override
public String getDeptIds(String tenantId, String deptNames) {
List<Dept> deptList = baseMapper.selectList(Wrappers.<Dept>query().lambda().eq(Dept::getTenantId, tenantId).in(Dept::getDeptName, Func.toStrList(deptNames)));
if (deptList != null && deptList.size() > 0) {
@@ -164,4 +169,19 @@
return DeptWrapper.build().listNodeVO(deptList);
}
+ @Override
+ public List<Map<Object,String>> selectCount(String name) {
+ return baseMapper.selectCount(name);
+ }
+
+ @Override
+ public List<Map<Object, String>> selectId(String id) {
+ return baseMapper.selectId(id);
+ }
+
+ @Override
+ public Map<Object, Integer> selectHold(String deptid) {
+ return baseMapper.selectHold(deptid);
+ }
+
}
--
Gitblit v1.9.3