From 55d724ddd52b2acb6e7ee2d291e04e4b6d96ad19 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 09 十一月 2026 16:06:47 +0800
Subject: [PATCH] sync: service_subtask 科室病区字段重命名对齐

---
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml |   43 ++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
index f661975..f4774dc 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskDetailMapper.xml
@@ -201,8 +201,8 @@
             ssd.targetid,
             ssd.template_type,
             ssd.lib_templateid,
-            sd.deptcode,
-            sd.deptname,
+            sd.leaveldeptcode AS deptcode,
+            sd.leaveldeptname AS deptname,
             sd.leavehospitaldistrictcode,
             sd.leavehospitaldistrictname
         from service_subtask_detail ssd
@@ -229,7 +229,7 @@
             </foreach>
         </if>
         <if test="leaveldeptcodes != null and leaveldeptcodes.size() > 0">
-            and sd.deptcode in
+            and sd.leaveldeptcode in
             <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")">
                 #{leaveldeptcode}
             </foreach>
@@ -239,6 +239,13 @@
             <foreach collection="scriptIds" item="scriptId" open="(" separator="," close=")">
                 #{scriptId}
             </foreach>
+        </if>
+        <if test="isFilled != null and isFilled != '0'">
+            AND IFNULL(ssd.matchedtext,ssd.asrtext) is not null
+            AND IFNULL(ssd.matchedtext,ssd.asrtext) != ''
+        </if>
+        <if test="configValue != null and configValue != ''">
+            AND ssd.categoryid IN (${configValue})
         </if>
         order by ssd.sub_id desc, ssd.id desc
     </select>
@@ -539,4 +546,34 @@
             ivr_liba_target.targetname,
             service_subtask_detail.matchedtext
     </select>
+
+    <select id="selectRepeatDetailIds" resultType="Long">
+        SELECT d1.id
+        FROM service_subtask_detail d1
+        INNER JOIN (
+            SELECT sub_id, questiontext,
+                   MAX(create_time) AS max_create_time,
+                   MAX(id) AS keep_id
+            FROM service_subtask_detail
+            WHERE del_flag = 0
+            GROUP BY sub_id, questiontext
+            HAVING COUNT(*) &gt; 1
+        ) d2 ON d1.sub_id = d2.sub_id
+            AND d1.questiontext = d2.questiontext
+            AND (
+                d1.create_time &lt; d2.max_create_time
+                OR (d1.create_time = d2.max_create_time AND d1.id &lt; d2.keep_id)
+            )
+        WHERE d1.del_flag = 0
+    </select>
+
+    <update id="deleteRepeatDetailByIds">
+        UPDATE service_subtask_detail
+        SET del_flag = 1
+        WHERE del_flag = 0
+        AND id IN
+        <foreach collection="ids" item="id" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </update>
 </mapper>

--
Gitblit v1.9.3