From edd98c54519f1f36fb561bdc1cb7aa33c6d68530 Mon Sep 17 00:00:00 2001
From: 朱佳吉 <1527963051@qq.com>
Date: 星期二, 07 五月 2024 17:35:17 +0800
Subject: [PATCH] 通过pid获取检验单当前试验室所有项目是否有检验结果后进行判断检验单是否更改成"已检"状态

---
 cnas-server/src/main/resources/mapper/DepartmentMapper.xml |   41 +++++++++++++++++------------------------
 1 files changed, 17 insertions(+), 24 deletions(-)

diff --git a/cnas-server/src/main/resources/mapper/DepartmentMapper.xml b/cnas-server/src/main/resources/mapper/DepartmentMapper.xml
index 465bbc1..f0a3326 100644
--- a/cnas-server/src/main/resources/mapper/DepartmentMapper.xml
+++ b/cnas-server/src/main/resources/mapper/DepartmentMapper.xml
@@ -1,39 +1,32 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.yuanchu.mom.mapper.DepartmentMapper">
-    <select id="selectDepartment" resultType="com.yuanchu.mom.pojo.Department">
-        WITH RECURSIVE DepartmentHierarchy AS (
-            SELECT id, name, father_id
-            FROM department
-            WHERE father_id IS NULL
-
-            UNION ALL
-
-            SELECT d.id, d.name, d.father_id
-            FROM department d
-                     JOIN DepartmentHierarchy dh ON d.father_id = dh.id
-        )
+    <select id="selectDepartment" resultType="com.yuanchu.mom.dto.DepartmentDto">
         SELECT id, name, father_id
-        FROM DepartmentHierarchy;
+        FROM department
     </select>
+
     <select id="showUserById" resultType="com.yuanchu.mom.dto.UserDto">
         select * from (select id, name, age, email, phone,depart_id
-        from user where FIND_IN_SET( SUBSTRING_INDEX(depart_id, ',', -1) ,#{ids}) > 0 ) a
+        from user where state=1 and SUBSTRING_INDEX(depart_id, ',', -1) in
+        <foreach collection="ids" item="id" separator="," open="(" close=")">
+            #{id}
+        </foreach> ) a
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
         </if>
     </select>
+
     <select id="selectSonById" resultType="java.lang.Integer">
-        WITH RECURSIVE DepartmentHierarchy AS (
-            SELECT id, name, father_id
-            FROM department
-            WHERE id = #{id}
-            UNION ALL
-            SELECT d.id, d.name, d.father_id
-            FROM department d
-                     JOIN DepartmentHierarchy dh ON d.father_id = dh.id
-        )
+        SELECT au.id
+        FROM (SELECT * FROM department WHERE father_id IS NOT NULL) au,
+             (SELECT @father_id := #{id}) pd
+        WHERE FIND_IN_SET(father_id, @father_id) > 0
+                  AND @father_id := concat(@father_id, ',', id)
+        UNION
         SELECT id
-        FROM DepartmentHierarchy;
+        FROM department
+        WHERE id = #{id}
+        ORDER BY id
     </select>
 </mapper>

--
Gitblit v1.9.3