From b3b566ebdfed4005aaa513da3d5d2fd3924903cc Mon Sep 17 00:00:00 2001
From: linwei <872216696@qq.com>
Date: Wed, 31 Jan 2024 16:17:54 +0800
Subject: [PATCH] 拿不到地址总表数据,不设置网格信息

---
 src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml |  105 ++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 72 insertions(+), 33 deletions(-)

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..64aca67 100644
--- a/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/DeptMapper.xml
@@ -39,17 +39,17 @@
 
     <select id="lazyList" resultMap="deptVOResultMap">
         SELECT
-            dept.* ,
-            (
-                SELECT
-                    CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
-                FROM
-                    blade_dept
-                WHERE
-                    parent_id = dept.id and is_deleted = 0
-            ) AS "has_children"
+        dept.* ,
+        (
+        SELECT
+        CASE WHEN count(1) > 0 THEN 1 ELSE 0 END
         FROM
-            blade_dept dept
+        blade_dept
+        WHERE
+        parent_id = dept.id and is_deleted = 0
+        ) AS "has_children"
+        FROM
+        blade_dept dept
         WHERE dept.is_deleted = 0
         <if test="param1!=null and param1!=''">
             and dept.tenant_id = #{param1}
@@ -67,35 +67,59 @@
     </select>
 
     <select id="tree" resultMap="treeNodeResultMap">
-        select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
-        <if test="_parameter!=null and _parameter!=''">
-            and tenant_id = #{_parameter}
+
+        <if test="param2!=null">
+            SELECT
+            id,
+            dept_name AS title,
+            id AS "value",
+            id AS "key",
+            parent_id
+            FROM
+            ( SELECT * FROM blade_dept WHERE is_deleted = 0 AND tenant_id = #{param1} ORDER BY parent_id, id )
+            org_query,
+            ( SELECT @id := #{param2} ) initialisation
+            WHERE
+            (FIND_IN_SET( parent_id, @id ) > 0 or FIND_IN_SET( id, @id ) > 0)
+            AND @id := CONCAT(@id,',',id) ORDER BY sort
         </if>
-        ORDER BY sort
+
+        <if test="param2==null">
+            select id, parent_id, dept_name as title, id as "value", id as "key" from blade_dept where is_deleted = 0
+            <if test="param1!=null and param1!=''">
+                and tenant_id = #{param1}
+            </if>
+            ORDER BY sort
+        </if>
+
     </select>
 
-    <select id="lazyTree" resultMap="treeNodeResultMap" >
+    <select id="lazyTree" 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 1 ELSE 0 END
-                FROM
-                    blade_dept
-                WHERE
-                    parent_id = dept.id and is_deleted = 0
-            ) AS "has_children"
+        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 1 ELSE 0 END
         FROM
-            blade_dept dept
+        blade_dept
         WHERE
-            dept.parent_id = #{param2} AND dept.is_deleted = 0
-        <if test="param1!=null and param1!=''">
-            and dept.tenant_id = #{param1}
-        </if>
+        parent_id = dept.id and is_deleted = 0
+        ) AS "has_children"
+        FROM
+        blade_dept dept
+        <where>
+            <if test="param2!=null and param2!=''">
+                and dept.parent_id = #{param2}
+            </if>
+            AND dept.is_deleted = 0
+            <if test="param1!=null and param1!=''">
+                and dept.tenant_id = #{param1}
+            </if>
+        </where>
         ORDER BY dept.sort
     </select>
 
@@ -112,4 +136,19 @@
         and is_deleted = 0
     </select>
 
+    <!--查询当前机构信息-->
+    <select id="getDeptById" resultType="org.springblade.modules.system.vo.DeptVO">
+        select c.*,p.dept_name as parentName from blade_dept c
+        left join blade_dept p on c.parent_id = p.id and p.is_deleted = 0
+        where c.is_deleted = 0
+        and c.id = #{id}
+    </select>
+
+    <!--查询网格对应的机构信息(包含父级机构名称)-->
+    <select id="getGridDeptAndParentList" resultType="org.springblade.modules.system.vo.DeptVO">
+        select bd.*,bd1.dept_name as parentName from blade_dept bd
+        left join blade_dept bd1 on bd.parent_id = bd1.id
+        where bd.dept_name like '%网格%'
+    </select>
+
 </mapper>

--
Gitblit v1.9.3