From 8b9db684defff26456d58609ea243e9fd21ed081 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 17 四月 2026 10:16:02 +0800
Subject: [PATCH] 【本地】获取随访统计比例 逻辑调整

---
 smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml |   66 ++++++++++++++++++++++++++++++++-
 1 files changed, 64 insertions(+), 2 deletions(-)

diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 1d0753e..c831868 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -263,7 +263,7 @@
     <select id="selectServiceSubtaskList" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        where  del_flag = 0
+        where del_flag = 0
         <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
         <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
         <if test="continueCount != null ">and continue_count = #{continueCount}</if>
@@ -1238,6 +1238,9 @@
             <if test="continueContent != null ">continue_content = #{continueContent},</if>
         </trim>
         where patid = #{patid} and taskid = #{taskid}
+        <if test="id != null ">
+            and id = #{id}
+        </if>
     </update>
 
     <update id="updateServiceSubtaskByTaskGuid" parameterType="com.smartor.domain.ServiceSubtask">
@@ -2127,7 +2130,8 @@
         SUM(CASE WHEN sendstate = 2 THEN 1 ELSE 0 END) AS dsf,
         SUM(CASE WHEN sendstate = 1 THEN 1 ELSE 0 END) AS blq,
         SUM(CASE WHEN excep IS NOT NULL AND excep = '1' THEN 1 ELSE 0 END) AS yc,
-        SUM(CASE WHEN excep IS NOT NULL AND excep = '2' THEN 1 ELSE 0 END) AS jg
+        SUM(CASE WHEN excep IS NOT NULL AND excep = '2' THEN 1 ELSE 0 END) AS jg,
+        COUNT(1) as total
         FROM service_subtask
         where 1=1
         and del_flag = 0
@@ -2413,4 +2417,62 @@
         </if>
     </select>
 
+    <!--
+        鎸夌梾鍖烘垨绉戝鍒嗙粍缁熻 continue_flag 鏁伴噺
+        浼犱簡 leavehospitaldistrictcodes 鈫� 鎸夌梾鍖虹淮搴�
+        浼犱簡 deptcodes              鈫� 鎸夌瀹ょ淮搴�
+        閮戒笉浼�                     鈫� 鎸夌梾鍖虹淮搴︾粺璁″叏閲�
+    -->
+    <!-- 鎸夌梾鍖哄垎缁勭粺璁″欢缁姢鐞嗘暟閲� -->
+    <select id="getContinueNurseCount"
+            parameterType="com.smartor.domain.VO.ServiceSubtaskCotinueCountVO"
+            resultType="java.util.Map">
+        SELECT
+        leavehospitaldistrictcode AS groupCode,
+        leavehospitaldistrictname AS groupName,
+        SUM(CASE WHEN continue_flag = 1 THEN 1 ELSE 0 END) AS noContinueCnt,
+        SUM(CASE WHEN continue_flag = 2 THEN 1 ELSE 0 END) AS continueCnt
+        FROM service_subtask
+        WHERE del_flag = 0
+        AND continue_flag IN (1, 2)
+        AND leavehospitaldistrictcode IS NOT NULL AND leavehospitaldistrictcode != ''
+        <if test="orgid != null and orgid != ''">
+            AND orgid = #{orgid}
+        </if>
+        <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+            AND leavehospitaldistrictcode IN
+            <foreach collection="leavehospitaldistrictcodes" item="code" open="(" separator="," close=")">
+                #{code}
+            </foreach>
+        </if>
+        GROUP BY leavehospitaldistrictcode, leavehospitaldistrictname
+        ORDER BY groupCode
+    </select>
+
+    <!-- 鎸夌瀹ゅ垎缁勭粺璁″欢缁姢鐞嗘暟閲� -->
+    <select id="getContinueNurseCountByDept"
+            parameterType="com.smartor.domain.VO.ServiceSubtaskCotinueCountVO"
+            resultType="java.util.Map">
+        SELECT
+        deptcode AS groupCode,
+        deptname AS groupName,
+        SUM(CASE WHEN continue_flag = 1 THEN 1 ELSE 0 END) AS noContinueCnt,
+        SUM(CASE WHEN continue_flag = 2 THEN 1 ELSE 0 END) AS continueCnt
+        FROM service_subtask
+        WHERE del_flag = 0
+        AND continue_flag IN (1, 2)
+        AND deptcode IS NOT NULL AND deptcode != ''
+        <if test="orgid != null and orgid != ''">
+            AND orgid = #{orgid}
+        </if>
+        <if test="deptcodes != null and deptcodes.size() > 0">
+            AND deptcode IN
+            <foreach collection="deptcodes" item="code" open="(" separator="," close=")">
+                #{code}
+            </foreach>
+        </if>
+        GROUP BY deptcode, deptname
+        ORDER BY groupCode
+    </select>
+
 </mapper>

--
Gitblit v1.9.3