From 48d32c21519998b29f85960774a79e4c5519bdf8 Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期五, 10 十月 2025 17:01:53 +0800
Subject: [PATCH] 新增随访情况

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

diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 8704464..3b71072 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -84,12 +84,17 @@
         <result property="visitDeptCode" column="visit_dept_code"/>
         <result property="managementDoctor" column="management_doctor"/>
         <result property="managementDoctorCode" column="management_doctor_code"/>
+        <result property="taskSituation" column="task_situation"/>
     </resultMap>
 
     <resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2">
         <result property="month" column="month"/>
         <result property="serviceType" column="service_type"/>
         <result property="subTaskId" column="subTaskId"/>
+        <result property="joyCount" column="joyCount"/>
+        <result property="joyAllCount" column="joyAllCount"/>
+        <result property="joyTotal" column="joyTotal"/>
+        <result property="joyName" column="joyName"/>
 
     </resultMap>
 
@@ -177,7 +182,8 @@
                orgid,
                visit_type,
                management_doctor,
-               management_doctor_code
+               management_doctor_code,
+               task_situation
         from service_subtask
     </sql>
 
@@ -581,6 +587,7 @@
             <if test="visitDeptName != null">visit_dept_name,</if>
             <if test="managementDoctorCode != null">management_doctor_code,</if>
             <if test="managementDoctor != null">management_doctor,</if>
+            <if test="taskSituation != null">task_situation,</if>
         </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="sendname != null">#{sendname},</if>
@@ -664,6 +671,7 @@
             <if test="visitDeptName != null">#{visitDeptName},</if>
             <if test="managementDoctorCode != null">#{managementDoctorCode},</if>
             <if test="managementDoctor != null">#{managementDoctor},</if>
+            <if test="taskSituation != null">#{taskSituation},</if>
         </trim>
     </insert>
 
@@ -752,6 +760,7 @@
             <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if>
             <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if>
             <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if>
+            <if test="taskSituation != null">task_situation=#{taskSituation},</if>
         </trim>
         where id = #{id}
     </update>
@@ -841,6 +850,7 @@
             <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if>
             <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if>
             <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if>
+            <if test="taskSituation != null">task_situation=#{taskSituation},</if>
         </trim>
         <where>
             <if test="patid != null ">and patid = #{patid}</if>
@@ -932,6 +942,7 @@
             <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if>
             <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if>
             <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if>
+            <if test="taskSituation != null">task_situation=#{taskSituation},</if>
         </trim>
         where patid = #{patid} and taskid = #{taskid}
     </update>
@@ -1020,6 +1031,7 @@
             <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if>
             <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if>
             <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if>
+            <if test="taskSituation != null">task_situation=#{taskSituation},</if>
         </trim>
         where task_guid = #{taskGuid} and task_name = #{taskName}
     </update>
@@ -1076,6 +1088,118 @@
         </where>
     </select>
 
+    <select id="getSfStatisticsJoy" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
+            resultMap="ServiceSubtaskResult2">
+        SELECT sub_id as subTaskId,COUNT(sub_id) joyCount,
+             (SELECT COUNT(1) FROM ivr_liba_target WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key='joyCount')) joyAllCount
+        FROM service_subtask_detail a
+        WHERE sub_id IN(SELECT id FROM service_subtask t
+        <where>
+            del_flag=0
+            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+                AND leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+            </if>
+            <if test="deptcodes != null and deptcodes.size() > 0">
+                AND deptcode IN
+                <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                         close=")">
+                    #{deptcode}
+                </foreach>
+            </if>
+            <if test="serviceType != null and serviceType.size() > 0">
+                AND service_type IN
+                <foreach collection="serviceType" item="serviceType" open="(" separator=","
+                         close=")">
+                    #{serviceType}
+                </foreach>
+            </if>
+            <if test="startTime != null and endTime!=null">
+                AND date_format(visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
+                AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            </if>
+            <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
+            <if test="visitDeptName != null">abd visit_dept_name = #{visitDeptName}</if>
+        </where>
+        )
+        AND targetid IN ( SELECT id FROM ivr_liba_target WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key='joyCount'))
+        GROUP BY sub_id
+    </select>
+
+    <select id="getSfStatisticsJoydetails" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
+            resultMap="ServiceSubtaskResult2">
+        SELECT joyName,joyCount,joyAllCount,ROUND(joyCount/joyAllCount,2) joyTotal  FROM  (
+        SELECT targetname joyName,
+               (select COUNT(sub_id) FROM service_subtask_detail WHERE sub_id IN(SELECT id FROM service_subtask t
+        <where>
+            del_flag=0
+            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+                AND leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+            </if>
+            <if test="deptcodes != null and deptcodes.size() > 0">
+                AND deptcode IN
+                <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                         close=")">
+                    #{deptcode}
+                </foreach>
+            </if>
+            <if test="serviceType != null and serviceType.size() > 0">
+                AND service_type IN
+                <foreach collection="serviceType" item="serviceType" open="(" separator=","
+                         close=")">
+                    #{serviceType}
+                </foreach>
+            </if>
+            <if test="startTime != null and endTime!=null">
+                AND date_format(visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
+                AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            </if>
+        </where>
+        ) AND targetid=a.id) joyCount , (SELECT COUNT(*) from (select sub_id FROM service_subtask_detail
+        WHERE sub_id IN(SELECT id FROM service_subtask t
+        <where>
+            del_flag=0
+        <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">AND
+            leavehospitaldistrictcode IN
+            <foreach
+                    collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                     close=")">
+                #{leavehospitaldistrictcode}
+            </foreach>
+        </if>
+        <if test="deptcodes != null and deptcodes.size() > 0">
+            AND deptcode IN
+            <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                     close=")">
+                #{deptcode}
+            </foreach>
+        </if>
+        <if test="serviceType != null and serviceType.size() > 0">
+            AND service_type IN
+            <foreach collection="serviceType" item="serviceType" open="(" separator=","
+                     close=")">
+                #{serviceType}
+            </foreach>
+        </if>
+            <if test="startTime != null and endTime!=null">
+                AND date_format(visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
+                AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+            </if>
+    </where>
+        GROUP BY sub_id ) ) ta ) joyAllCount
+        FROM ivr_liba_target a
+        WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key=
+        'joyCount')
+        )a1
+    </select>
+
     <select id="getDataByTime" resultMap="ServiceSubtaskResult">
 
         select id,

--
Gitblit v1.9.3