From 9d26379470b304ca084c877c114c051d57b495d6 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期五, 30 一月 2026 16:44:42 +0800
Subject: [PATCH] 【市一】市一同步逻辑调整,增加hospinfo和deptinfo记录

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

diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index f75750b..cf129d9 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -247,158 +247,166 @@
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
         where 1=1
-            and del_flag = 0
-            <if test="sendname != null  and sendname != ''">and sendname like concat('%', #{sendname}, '%')</if>
-            <if test="phone != null  and phone != ''">and phone = #{phone}</if>
-            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and
-                leavehospitaldistrictcode = #{leavehospitaldistrictcode}
-            </if>
-            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
-                leavehospitaldistrictname = #{leavehospitaldistrictname}
-            </if>
-            <if test="leavediagname != null  and leavediagname != ''">and leavediagname like concat('%',
-                #{leavediagname}, '%')
-            </if>
-            <if test="managementDoctor != null  and managementDoctor != ''">and management_doctor like concat('%',
-                #{managementDoctor}, '%')
-            </if>
-            <if test="sex != null  and sex != ''">and sex = #{sex}</if>
-            <if test="age != null ">and age = #{age}</if>
-            <if test="patguid != null ">and patguid = #{patguid}</if>
-            <if test="subId != null ">and id = #{subId}</if>
-            <if test="inhospid != null ">and inhospid = #{inhospid}</if>
-            <if test="managementDoctorCode != null ">and management_doctor_code = #{managementDoctorCode}</if>
-            <if test="submit != null ">and submit = #{submit}</if>
-            <if test="upid != null ">and upid = #{upid}</if>
-            <if test="patfrom != null ">and patfrom = #{patfrom}</if>
-            <if test="serviceType != null ">and service_type = #{serviceType}</if>
-            <if test="patid != null ">and patid = #{patid}</if>
-            <if test="sfzh != null  and sfzh != ''">and sfzh = #{sfzh}</if>
-            <if test="addr != null  and addr != ''">and addr = #{addr}</if>
-            <if test="senderdetail != null  and senderdetail != ''">and senderdetail = #{senderdetail}</if>
-            <if test="type != null  and type != ''">and type = #{type}</if>
-            <if test="taskid != null ">and taskid = #{taskid}</if>
-            <if test="templateid != null  and templateid != ''">and templateid = #{templateid}</if>
-            <if test="templatename != null  and templatename != ''">and templatename like concat('%', #{templatename},
-                '%')
-            </if>
-            <if test="startOutHospTime != null">
-                AND date_format(endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
-            </if>
-            <if test="endOutHospTime != null">
-                AND date_format(endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
-            </if>
-            <if test="startSendDateTime != null">
-                AND date_format(long_send_time,'%y%m%d') &gt;= date_format(#{startSendDateTime},'%y%m%d')
-            </if>
-            <if test="endSendDateTime != null">
-                AND date_format(long_send_time,'%y%m%d') &lt;= date_format(#{endSendDateTime},'%y%m%d')
-            </if>
+        and del_flag = 0
+        <if test="sendname != null  and sendname != ''">and sendname like concat('%', #{sendname}, '%')</if>
+        <if test="phone != null  and phone != ''">and phone = #{phone}</if>
+        <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and
+            leavehospitaldistrictcode = #{leavehospitaldistrictcode}
+        </if>
+        <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
+            leavehospitaldistrictname = #{leavehospitaldistrictname}
+        </if>
+        <if test="leavediagname != null  and leavediagname != ''">and leavediagname like concat('%',
+            #{leavediagname}, '%')
+        </if>
+        <if test="managementDoctor != null  and managementDoctor != ''">and management_doctor like concat('%',
+            #{managementDoctor}, '%')
+        </if>
+        <if test="sex != null  and sex != ''">and sex = #{sex}</if>
+        <if test="age != null ">and age = #{age}</if>
+        <if test="patguid != null ">and patguid = #{patguid}</if>
+        <if test="subId != null ">and id = #{subId}</if>
+        <if test="inhospid != null ">and inhospid = #{inhospid}</if>
+        <if test="managementDoctorCode != null ">and management_doctor_code = #{managementDoctorCode}</if>
+        <if test="submit != null ">and submit = #{submit}</if>
+        <if test="upid != null ">and upid = #{upid}</if>
+        <if test="patfrom != null ">and patfrom = #{patfrom}</if>
+        <if test="serviceType != null ">and service_type = #{serviceType}</if>
+        <if test="patid != null ">and patid = #{patid}</if>
+        <if test="sfzh != null  and sfzh != ''">and sfzh = #{sfzh}</if>
+        <if test="addr != null  and addr != ''">and addr = #{addr}</if>
+        <if test="senderdetail != null  and senderdetail != ''">and senderdetail = #{senderdetail}</if>
+        <if test="type != null  and type != ''">and type = #{type}</if>
+        <if test="taskid != null ">and taskid = #{taskid}</if>
+        <!-- taskIds绛涢�� -->
+        <if test="taskIds != null and taskIds.size() > 0">
+            AND taskid IN
+            <foreach collection="taskIds" item="itemTaskId" open="(" separator=","
+                     close=")">
+                #{itemTaskId}
+            </foreach>
+        </if>
+        <if test="templateid != null  and templateid != ''">and templateid = #{templateid}</if>
+        <if test="templatename != null  and templatename != ''">and templatename like concat('%', #{templatename},
+            '%')
+        </if>
+        <if test="startOutHospTime != null">
+            AND date_format(endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
+        </if>
+        <if test="endOutHospTime != null">
+            AND date_format(endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
+        </if>
+        <if test="startSendDateTime != null">
+            AND date_format(long_send_time,'%y%m%d') &gt;= date_format(#{startSendDateTime},'%y%m%d')
+        </if>
+        <if test="endSendDateTime != null">
+            AND date_format(long_send_time,'%y%m%d') &lt;= date_format(#{endSendDateTime},'%y%m%d')
+        </if>
 
-            <if test="longSendTime != null">
-                AND date_format(long_send_time,'%y%m%d') &lt;= date_format(#{longSendTime},'%y%m%d')
-            </if>
-            <if test="deptOrDistrict==1">
-                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
-                    AND leavehospitaldistrictcode IN
-                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
-                             separator=","
-                             close=")">
-                        #{leavehospitaldistrictcode}
-                    </foreach>
-                </if>
-                <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
-                    AND deptcode IN
-                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
-                             close=")">
-                        #{leaveldeptcode}
-                    </foreach>
-                </if>
-            </if>
-            <if test="deptOrDistrict==2">
-                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
-                    AND (leavehospitaldistrictcode IN
-                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
-                             separator=","
-                             close=")">
-                        #{leavehospitaldistrictcode}
-                    </foreach>
-                </if>
-                <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
-                    OR deptcode IN
-                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
-                             close="))">
-                        #{leaveldeptcode}
-                    </foreach>
-                </if>
-            </if>
-
-            <if test="visitTime != null">
-                AND date_format(visit_time,'%y%m%d') = date_format(#{visitTime},'%y%m%d')
-            </if>
-            <if test="senddate != null ">and senddate = #{senddate}</if>
-            <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if>
-            <if test="result != null  and result != ''">and result = #{result}</if>
-            <if test="finishtime != null ">and finishtime = #{finishtime}</if>
-            <if test="recordid != null ">and recordid = #{recordid}</if>
-            <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if>
-            <if test="pulltime != null ">and pulltime = #{pulltime}</if>
-            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
-            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
-            <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if>
-            <if test="isupload != null ">and isupload = #{isupload}</if>
-            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
-            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
-            <if test="pid != null ">and pid = #{pid}</if>
-            <if test="preachform != null ">and preachform = #{preachform}</if>
-            <if test="currentPreachform != null ">and current_preachform = #{currentPreachform}</if>
-            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
-            <if test="textParam != null  and textParam != ''">and text_param = #{textParam}</if>
-            <if test="bedNo != null">and bed_no = #{bedNo}</if>
-            <if test="sendType != null  and sendType != ''">and send_type = #{sendType}</if>
-            <if test="operator != null  and operator != ''">and operator = #{operator}</if>
-            <if test="operatorNo != null  and operatorNo != ''">and operator_no = #{operatorNo}</if>
-            <if test="wechat != null  and wechat != ''">and wechat = #{wechat}</if>
-            <if test="hospType != null  and hospType != ''">and hosp_type = #{hospType}</if>
-            <if test="libtemplateid != null ">and libtemplateid = #{libtemplateid}</if>
-            <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if>
-            <if test="openid != null ">and openid = #{openid}</if>
-            <if test="longSendTime != null ">and long_send_time = #{longSendTime}</if>
-            <if test="sendstate != null ">and sendstate = #{sendstate}</if>
-            <if test="drname != null  and drname != ''">and drname like concat('%', #{drname}, '%')</if>
-            <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if>
-            <if test="drcode != null and drcode != ''">and (drcode = #{drcode}</if>
-            <if test="nurseId != null  and nurseId != ''">or nurse_id = #{nurseId})</if>
-            <if test="starttime != null ">and starttime = #{starttime}</if>
-            <if test="endtime != null ">and endtime = #{endtime}</if>
-            <if test="excep != null ">and excep = #{excep}</if>
-            <if test="nurseName != null ">and nurse_name = #{nurseName}</if>
-            <if test="score != null">and score = #{score}</if>
-            <!--            <if test="visitCount != null">and visit_count = #{visitCount}</if>-->
-            <if test="visitCount != null and visitCount == 1">
-                AND visit_count = 1
-            </if>
-            <if test="visitCount != null and visitCount > 1">
-                AND visit_count > 1
-            </if>
-            <if test="remark != null">and remark = #{remark}</if>
-            <if test="suggest != null">and suggest = #{suggest}</if>
-            <if test="createBy != null">and create_by = #{createBy}</if>
-            <if test="taskGuid != null">and task_guid = #{taskGuid}</if>
-            <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
-            <if test="isVisitAgain != null">and is_visit_again = #{isVisitAgain}</if>
-            <!--            <if test="dateLimit != null and dateLimit = '1'"> and CURDATE() + 1 > long_send_time</if>-->
-            <!-- <if test="visitTime != null">and visit_time = #{visitTime}</if> -->
-            <!--<if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
-            <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>-->
-            <if test="visitCount != null and visitCount > 1 and visitDeptCodes != null and visitDeptCodes.size() > 0">
-                AND visit_dept_code IN
-                <foreach collection="visitDeptCodes" item="visitDeptCodes" open="("
+        <if test="longSendTime != null">
+            AND date_format(long_send_time,'%y%m%d') &lt;= date_format(#{longSendTime},'%y%m%d')
+        </if>
+        <if test="deptOrDistrict==1">
+            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+                AND leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
                          separator=","
                          close=")">
-                    #{visitDeptCodes}
+                    #{leavehospitaldistrictcode}
                 </foreach>
             </if>
+            <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+                AND deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close=")">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+        </if>
+        <if test="deptOrDistrict==2">
+            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+                AND (leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+                         separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
+            </if>
+            <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+                OR deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close="))">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+        </if>
+
+        <if test="visitTime != null">
+            AND date_format(visit_time,'%y%m%d') = date_format(#{visitTime},'%y%m%d')
+        </if>
+        <if test="senddate != null ">and senddate = #{senddate}</if>
+        <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if>
+        <if test="result != null  and result != ''">and result = #{result}</if>
+        <if test="finishtime != null ">and finishtime = #{finishtime}</if>
+        <if test="recordid != null ">and recordid = #{recordid}</if>
+        <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if>
+        <if test="pulltime != null ">and pulltime = #{pulltime}</if>
+        <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
+        <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
+        <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if>
+        <if test="isupload != null ">and isupload = #{isupload}</if>
+        <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
+        <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
+        <if test="pid != null ">and pid = #{pid}</if>
+        <if test="preachform != null ">and preachform = #{preachform}</if>
+        <if test="currentPreachform != null ">and current_preachform = #{currentPreachform}</if>
+        <if test="guid != null  and guid != ''">and guid = #{guid}</if>
+        <if test="textParam != null  and textParam != ''">and text_param = #{textParam}</if>
+        <if test="bedNo != null">and bed_no = #{bedNo}</if>
+        <if test="sendType != null  and sendType != ''">and send_type = #{sendType}</if>
+        <if test="operator != null  and operator != ''">and operator = #{operator}</if>
+        <if test="operatorNo != null  and operatorNo != ''">and operator_no = #{operatorNo}</if>
+        <if test="wechat != null  and wechat != ''">and wechat = #{wechat}</if>
+        <if test="hospType != null  and hospType != ''">and hosp_type = #{hospType}</if>
+        <if test="libtemplateid != null ">and libtemplateid = #{libtemplateid}</if>
+        <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if>
+        <if test="openid != null ">and openid = #{openid}</if>
+        <if test="longSendTime != null ">and long_send_time = #{longSendTime}</if>
+        <if test="sendstate != null ">and sendstate = #{sendstate}</if>
+        <if test="drname != null  and drname != ''">and drname like concat('%', #{drname}, '%')</if>
+        <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if>
+        <if test="drcode != null and drcode != ''">and (drcode = #{drcode}</if>
+        <if test="nurseId != null  and nurseId != ''">or nurse_id = #{nurseId})</if>
+        <if test="starttime != null ">and starttime = #{starttime}</if>
+        <if test="endtime != null ">and endtime = #{endtime}</if>
+        <if test="excep != null ">and excep = #{excep}</if>
+        <if test="nurseName != null ">and nurse_name = #{nurseName}</if>
+        <if test="score != null">and score = #{score}</if>
+        <!--            <if test="visitCount != null">and visit_count = #{visitCount}</if>-->
+        <if test="visitCount != null and visitCount == 1">
+            AND visit_count = 1
+        </if>
+        <if test="visitCount != null and visitCount > 1">
+            AND visit_count > 1
+        </if>
+        <if test="remark != null">and remark = #{remark}</if>
+        <if test="suggest != null">and suggest = #{suggest}</if>
+        <if test="createBy != null">and create_by = #{createBy}</if>
+        <if test="taskGuid != null">and task_guid = #{taskGuid}</if>
+        <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
+        <if test="isVisitAgain != null">and is_visit_again = #{isVisitAgain}</if>
+        <!--            <if test="dateLimit != null and dateLimit = '1'"> and CURDATE() + 1 > long_send_time</if>-->
+        <!-- <if test="visitTime != null">and visit_time = #{visitTime}</if> -->
+        <!--<if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
+        <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>-->
+        <if test="visitCount != null and visitCount > 1 and visitDeptCodes != null and visitDeptCodes.size() > 0">
+            AND visit_dept_code IN
+            <foreach collection="visitDeptCodes" item="visitDeptCodes" open="("
+                     separator=","
+                     close=")">
+                #{visitDeptCodes}
+            </foreach>
+        </if>
         <if test="sort != null  and sort==0">order by endtime asc</if>
         <if test="sort != null  and sort==1">order by endtime desc</if>
         <if test="sort != null  and sort==2">order by long_send_time asc</if>
@@ -413,41 +421,39 @@
     <select id="getCompensateServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        where 1=1
-            and del_flag = 0
-            <if test="orgid != null and orgid != ''">
-                and orgid = #{orgid}
-            </if>
-            <if test="visitTime != null">
-                AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{visitTime},'%y%m%d')
-            </if>
-            <if test="sendstate != null ">and sendstate = #{sendstate}</if>
+        where del_flag = 0
+        <if test="orgid != null and orgid != ''">
+            and orgid = #{orgid}
+        </if>
+        <if test="visitTime != null">
+            AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{visitTime},'%y%m%d')
+        </if>
+        <if test="sendstate != null ">and sendstate = #{sendstate}</if>
     </select>
 
     <select id="selectServiceSubtaskListByCreateTime" parameterType="com.smartor.domain.ServiceSubtaskVO"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        where 1=1
-            and del_flag = 0
-            <if test="orgid != null and orgid != ''">
-                and orgid = #{orgid}
-            </if>
-            <if test="createStartTime != null  and createEndTime != null">and create_time BETWEEN #{createStartTime} AND
-                #{createEndTime}
-            </if>
-            <if test="createBy != null ">and create_by = #{createBy}</if>
-            <if test="sendname != null ">and sendname = #{sendname}</if>
-            <if test="sfzh != null ">and sfzh = #{sfzh}</if>
-            <if test="patguid != null ">and patguid = #{patguid}</if>
-            <if test="upid != null ">and upid = #{upid}</if>
-            <if test="visitCount != null ">and visit_count = #{visitCount}</if>
-            <if test="isVisitAgain != null ">and is_visit_again = #{isVisitAgain}</if>
-            <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
-            <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>
-            <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
-            <if test="managementDoctor != null">and management_doctor = #{managementDoctor}</if>
-            <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if>
-            <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
+        where del_flag = 0
+        <if test="orgid != null and orgid != ''">
+            and orgid = #{orgid}
+        </if>
+        <if test="createStartTime != null  and createEndTime != null">and create_time BETWEEN #{createStartTime} AND
+            #{createEndTime}
+        </if>
+        <if test="createBy != null ">and create_by = #{createBy}</if>
+        <if test="sendname != null ">and sendname = #{sendname}</if>
+        <if test="sfzh != null ">and sfzh = #{sfzh}</if>
+        <if test="patguid != null ">and patguid = #{patguid}</if>
+        <if test="upid != null ">and upid = #{upid}</if>
+        <if test="visitCount != null ">and visit_count = #{visitCount}</if>
+        <if test="isVisitAgain != null ">and is_visit_again = #{isVisitAgain}</if>
+        <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
+        <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>
+        <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
+        <if test="managementDoctor != null">and management_doctor = #{managementDoctor}</if>
+        <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if>
+        <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
 
     </select>
 
@@ -456,55 +462,55 @@
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
         where 1=1
-            and del_flag = 0
-            and upid is not null
-            and visit_count > 1
-            <if test="createStartTime != null  and createEndTime != null">and create_time BETWEEN #{createStartTime} AND
-                #{createEndTime}
-            </if>
-            <if test="senddate != null ">and senddate = #{senddate}</if>
-            <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if>
-            <if test="result != null  and result != ''">and result = #{result}</if>
-            <if test="finishtime != null ">and finishtime = #{finishtime}</if>
-            <if test="recordid != null ">and recordid = #{recordid}</if>
-            <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if>
-            <if test="pulltime != null ">and pulltime = #{pulltime}</if>
-            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
-            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
-            <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if>
-            <if test="isupload != null ">and isupload = #{isupload}</if>
-            <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
-            <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
-            <if test="pid != null ">and pid = #{pid}</if>
-            <if test="preachform != null ">and preachform = #{preachform}</if>
-            <if test="guid != null  and guid != ''">and guid = #{guid}</if>
-            <if test="textParam != null  and textParam != ''">and text_param = #{textParam}</if>
-            <if test="bedNo != null">and bed_no = #{bedNo}</if>
-            <if test="sendType != null  and sendType != ''">and send_type = #{sendType}</if>
-            <if test="operator != null  and operator != ''">and operator = #{operator}</if>
-            <if test="operatorNo != null  and operatorNo != ''">and operator_no = #{operatorNo}</if>
-            <if test="wechat != null  and wechat != ''">and wechat = #{wechat}</if>
-            <if test="hospType != null  and hospType != ''">and hosp_type = #{hospType}</if>
-            <if test="libtemplateid != null ">and libtemplateid = #{libtemplateid}</if>
-            <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if>
-            <if test="openid != null ">and openid = #{openid}</if>
-            <if test="longSendTime != null ">and long_send_time = #{longSendTime}</if>
-            <if test="sendstate != null ">and sendstate = #{sendstate}</if>
-            <if test="drname != null  and drname != ''">and drname like concat('%', #{drname}, '%')</if>
-            <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if>
-            <if test="drcode != null and drcode != ''">and (drcode = #{drcode}</if>
-            <if test="nurseId != null  and nurseId != ''">or nurse_id = #{nurseId})</if>
-            <if test="starttime != null ">and starttime = #{starttime}</if>
-            <if test="endtime != null ">and endtime = #{endtime}</if>
-            <if test="excep != null ">and excep = #{excep}</if>
-            <if test="nurseName != null ">and nurse_name = #{nurseName}</if>
-            <if test="visitTime != null ">and visit_time = #{visitTime}</if>
-            <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
-            <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>
-            <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if>
-            <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
-            <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
-            <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if>
+        and del_flag = 0
+        and upid is not null
+        and visit_count > 1
+        <if test="createStartTime != null  and createEndTime != null">and create_time BETWEEN #{createStartTime} AND
+            #{createEndTime}
+        </if>
+        <if test="senddate != null ">and senddate = #{senddate}</if>
+        <if test="senduuid != null  and senduuid != ''">and senduuid = #{senduuid}</if>
+        <if test="result != null  and result != ''">and result = #{result}</if>
+        <if test="finishtime != null ">and finishtime = #{finishtime}</if>
+        <if test="recordid != null ">and recordid = #{recordid}</if>
+        <if test="exrecallcount != null ">and exrecallcount = #{exrecallcount}</if>
+        <if test="pulltime != null ">and pulltime = #{pulltime}</if>
+        <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
+        <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
+        <if test="labelstatus != null ">and labelstatus = #{labelstatus}</if>
+        <if test="isupload != null ">and isupload = #{isupload}</if>
+        <if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
+        <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
+        <if test="pid != null ">and pid = #{pid}</if>
+        <if test="preachform != null ">and preachform = #{preachform}</if>
+        <if test="guid != null  and guid != ''">and guid = #{guid}</if>
+        <if test="textParam != null  and textParam != ''">and text_param = #{textParam}</if>
+        <if test="bedNo != null">and bed_no = #{bedNo}</if>
+        <if test="sendType != null  and sendType != ''">and send_type = #{sendType}</if>
+        <if test="operator != null  and operator != ''">and operator = #{operator}</if>
+        <if test="operatorNo != null  and operatorNo != ''">and operator_no = #{operatorNo}</if>
+        <if test="wechat != null  and wechat != ''">and wechat = #{wechat}</if>
+        <if test="hospType != null  and hospType != ''">and hosp_type = #{hospType}</if>
+        <if test="libtemplateid != null ">and libtemplateid = #{libtemplateid}</if>
+        <if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if>
+        <if test="openid != null ">and openid = #{openid}</if>
+        <if test="longSendTime != null ">and long_send_time = #{longSendTime}</if>
+        <if test="sendstate != null ">and sendstate = #{sendstate}</if>
+        <if test="drname != null  and drname != ''">and drname like concat('%', #{drname}, '%')</if>
+        <if test="taskName != null  and taskName != ''">and task_name like concat('%', #{taskName}, '%')</if>
+        <if test="drcode != null and drcode != ''">and (drcode = #{drcode}</if>
+        <if test="nurseId != null  and nurseId != ''">or nurse_id = #{nurseId})</if>
+        <if test="starttime != null ">and starttime = #{starttime}</if>
+        <if test="endtime != null ">and endtime = #{endtime}</if>
+        <if test="excep != null ">and excep = #{excep}</if>
+        <if test="nurseName != null ">and nurse_name = #{nurseName}</if>
+        <if test="visitTime != null ">and visit_time = #{visitTime}</if>
+        <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
+        <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>
+        <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if>
+        <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
+        <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
+        <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if>
 
     </select>
 
@@ -513,15 +519,15 @@
         from service_task a
         JOIN service_subtask b on a.taskid = b.taskid and a.pat_cycle = 0 and b.del_flag = 0
         where 1=1
-            and b.taskid = #{taskid}
-            and b.patid = #{patid}
-            <if test="createTime != null and createTime != ''">
-                DATE_FORMAT(b.create_time, '%Y-%m-%d') LIKE CONCAT(#{createTimeNew}, '%')
-            </if>
-            <if test="sendstate != null ">and b.sendstate = #{sendstate}</if>
-            <if test="orgid != null and orgid != ''">
-                and b.orgid = #{orgid}
-            </if>
+        and b.taskid = #{taskid}
+        and b.patid = #{patid}
+        <if test="createTime != null and createTime != ''">
+            DATE_FORMAT(b.create_time, '%Y-%m-%d') LIKE CONCAT(#{createTimeNew}, '%')
+        </if>
+        <if test="sendstate != null ">and b.sendstate = #{sendstate}</if>
+        <if test="orgid != null and orgid != ''">
+            and b.orgid = #{orgid}
+        </if>
     </select>
 
     <select id="selectTimelyRate" parameterType="com.smartor.domain.ServiceSubtask" resultType="double">
@@ -553,36 +559,75 @@
         ) a
     </select>
 
+    <select id="selectTimelyRateBatch" parameterType="com.smartor.domain.ServiceSubtask" resultType="map">
+        SELECT
+        <if test="groupKey != null and groupKey != ''">
+            ${groupKey} as groupKey,
+        </if>
+        SUM(CASE WHEN DATE(visit_time) &lt; DATE(IFNULL(finishtime, NOW())) THEN 1 ELSE 0 END) / COUNT(*) as rate
+        FROM service_subtask
+        WHERE del_flag = 0
+        <if test="orgid != null">AND orgid = #{orgid}</if>
+        <if test="starttime == null and endtime==null">
+            AND visit_time &lt; NOW()
+        </if>
+        <if test="starttime != null and endtime!=null">
+            AND visit_time >= #{starttime}
+            AND visit_time &lt; DATE_ADD(#{endtime}, INTERVAL 1 DAY)
+        </if>
+        <if test="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
+        <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
+        <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
+        <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
+        <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and
+            leavehospitaldistrictcode = #{leavehospitaldistrictcode}
+        </if>
+        <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
+            leavehospitaldistrictname = #{leavehospitaldistrictname}
+        </if>
+        <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
+        <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if>
+        <if test="groupKey != null and groupKey != ''">
+            AND ${groupKey} IN
+            <foreach collection="groupKeyList" item="key" open="(" separator=","
+                     close=")">
+                #{key}
+            </foreach>
+            GROUP BY ${groupKey}
+        </if>
+    </select>
+
+
     <select id="selectTimelyRateDetail" parameterType="com.smartor.domain.ServiceSubtask"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
         where 1=1
-            and id in (
-            SELECT id FROM
-            (SELECT id, visit_time, finishtime,
-            (CASE WHEN ( DATE_FORMAT( visit_time, '%y%m%d' ) &lt; DATE_FORMAT( IF ( ISNULL( finishtime ), NOW(),
-            finishtime
-            ), '%y%m%d' ) )
-            THEN 1 ELSE 0 END ) finished,1 AS tasknumber FROM service_subtask
-            WHERE del_flag=0
-            -- AND visit_time &lt; NOW()
-            <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="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
-            <if test="isabnormal != null ">and isabnormal = #{isabnormal}</if>
-            <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
-            <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
-            <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and
-                leavehospitaldistrictcode = #{leavehospitaldistrictcode}
-            </if>
-            <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
-                leavehospitaldistrictname = #{leavehospitaldistrictname}
-            </if>
-            <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
-            <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if>
-            ) a where a.finished =1)
+        and id in (
+        SELECT id FROM
+        (SELECT id, visit_time, finishtime,
+        (CASE WHEN ( DATE_FORMAT( visit_time, '%y%m%d' ) &lt; DATE_FORMAT( IF ( ISNULL( finishtime ), NOW(),
+        finishtime
+        ), '%y%m%d' ) )
+        THEN 1 ELSE 0 END ) finished,1 AS tasknumber FROM service_subtask
+        WHERE del_flag=0
+        -- AND visit_time &lt; NOW()
+        <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="orgid != null  and orgid != ''">and orgid = #{orgid}</if>
+        <if test="isabnormal != null ">and isabnormal = #{isabnormal}</if>
+        <if test="deptcode != null  and deptcode != ''">and deptcode = #{deptcode}</if>
+        <if test="deptname != null  and deptname != ''">and deptname = #{deptname}</if>
+        <if test="leavehospitaldistrictcode != null  and leavehospitaldistrictcode != ''">and
+            leavehospitaldistrictcode = #{leavehospitaldistrictcode}
+        </if>
+        <if test="leavehospitaldistrictname != null  and leavehospitaldistrictname != ''">and
+            leavehospitaldistrictname = #{leavehospitaldistrictname}
+        </if>
+        <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
+        <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if>
+        ) a where a.finished =1)
     </select>
 
     <select id="selectServiceSubtaskById" parameterType="Long" resultMap="ServiceSubtaskResult">
@@ -963,11 +1008,11 @@
             <if test="isabnormal != null">isabnormal=#{isabnormal},</if>
         </trim>
         where 1=1
-            <if test="patid != null ">and patid = #{patid}</if>
-            <if test="taskid != null ">and taskid = #{taskid}</if>
-            <if test="orgid != null and orgid != ''">
-                and orgid = #{orgid}
-            </if>
+        <if test="patid != null ">and patid = #{patid}</if>
+        <if test="taskid != null ">and taskid = #{taskid}</if>
+        <if test="orgid != null and orgid != ''">
+            and orgid = #{orgid}
+        </if>
     </update>
 
     <update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask">
@@ -1171,40 +1216,134 @@
 
     <select id="getSfStatistics" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
             resultMap="ServiceSubtaskResult">
-        <include refid="selectServiceSubtaskVo"/>
+        select id,
+        visit_count,
+        is_visit_again,
+        type,
+        orgid,
+        drcode,
+        drname,
+        leavehospitaldistrictcode,
+        leavehospitaldistrictname,
+        deptcode,
+        deptname,
+        sendstate,
+        preachform,
+        excep,
+        nurse_id,
+        nurse_name,
+        taskid,
+        task_name,
+        visit_time,
+        finishtime,
+        endtime,
+        senddate,
+        suggest,
+        result,
+        templateid,
+        templatename,
+        patid,
+        sendname,
+        send_type,
+        recordid,
+        exrecallcount,
+        task_situation
+        from service_subtask
         where 1=1
-            and del_flag = 0
-            <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="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>
-            <if test="isabnormal != null">abd isabnormal = #{isabnormal}</if>
+        and del_flag = 0
+        <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="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 visit_time >= DATE(#{startTime})
+            AND visit_time &lt; DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
+        </if>
+        <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
+        <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>
+        <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
+        <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
+        <if test="type != null">
+            and type = #{type}
+        </if>
+        <if test="groupKey != null and groupKey != '' and groupKeyList != null and groupKeyList.size>0">
+            AND ${groupKey} IN
+            <foreach collection="groupKeyList" item="key" open="(" separator=","
+                     close=")">
+                #{key}
+            </foreach>
+        </if>
+    </select>
+    <select id="getSfStatisticsGroupKey" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
+            resultType="String">
+        select
+        <if test="groupKey != null and groupKey != ''">
+            ${groupKey} as groupKey
+        </if>
+        from service_subtask
+        where 1=1
+        and del_flag = 0
+        <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="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 visit_time >= DATE(#{startTime})
+            AND visit_time &lt; DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
+        </if>
+        <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if>
+        <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>
+        <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
+        <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
+        <if test="type != null">
+            and type = #{type}
+        </if>
+        <if test="groupKey != null and groupKey != ''">
+            group by ${groupKey}
+        </if>
+        <if test="pageSize != null  and pageNum != null">
+            limit ${pageSize} OFFSET ${pageNum}
+        </if>
     </select>
 
     <select id="getSfStatisticsJoy" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
@@ -1215,38 +1354,38 @@
         FROM service_subtask_detail a
         WHERE sub_id IN(SELECT id FROM service_subtask t
         where 1=1
-            and del_flag = 0
-            <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="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">and visit_dept_name = #{visitDeptName}</if>
-            <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
+        and del_flag = 0
+        <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="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">and visit_dept_name = #{visitDeptName}</if>
+        <if test="isabnormal != null">and isabnormal = #{isabnormal}</if>
         )
         AND targetid IN ( SELECT id FROM ivr_liba_target WHERE assortid IN (SELECT config_value FROM sys_config WHERE
         config_key='joyCount'))
@@ -1259,68 +1398,68 @@
         SELECT targetname joyName,
         (select COUNT(sub_id) FROM service_subtask_detail WHERE sub_id IN(SELECT id FROM service_subtask t
         where 1=1
-            and del_flag = 0
-            <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="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>
+        and del_flag = 0
+        <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="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>
         ) 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 1=1
-            and del_flag = 0
-            <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="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>
+        and del_flag = 0
+        <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="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>
         GROUP BY sub_id ) ) ta ) joyAllCount
         FROM ivr_liba_target a
         WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key=
@@ -1330,58 +1469,71 @@
 
     <select id="getSfStatisticsCategory" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
             resultMap="ServiceSubtaskResult2">
-        SELECT a.sub_id as subTaskId,
+        SELECT
         <if test="configValue != null and configValue != ''">
             SUM(CASE WHEN a.categoryid IN(${configValue})
             THEN 1 ELSE 0 END) AS joyAllCount,
         </if>
-        COUNT(sub_id) joyCount
+        <if test="configValue != null and configValue != ''">
+            SUM(CASE WHEN a.categoryid IN(${configValue})
+            AND IFNULL(a.matchedtext,a.asrtext) is not null
+            AND IFNULL(a.matchedtext,a.asrtext) != ''
+            THEN 1 ELSE 0 END) AS joyCount,
+        </if>
+        a.sub_id as subTaskId
         FROM service_subtask_detail a
         INNER JOIN service_subtask t ON a.sub_id = t.id
         where 1=1
-            and a.del_flag=0
-            AND t.del_flag=0
-            <if test="orgid != null and orgid != ''">
-                and t.orgid = #{orgid}
-            </if>
-            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
-                AND t.leavehospitaldistrictcode IN
-                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
-                         close=")">
-                    #{leavehospitaldistrictcode}
-                </foreach>
-            </if>
-            <if test="deptcodes != null and deptcodes.size() > 0">
-                AND t.deptcode IN
-                <foreach collection="deptcodes" item="deptcode" open="(" separator=","
-                         close=")">
-                    #{deptcode}
-                </foreach>
-            </if>
-            <if test="serviceType != null and serviceType.size() > 0">
-                AND t.service_type IN
-                <foreach collection="serviceType" item="serviceType" open="(" separator=","
-                         close=")">
-                    #{serviceType}
-                </foreach>
-            </if>
-            <if test="startTime != null and endTime!=null">
-                AND date_format(t.visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
-                AND date_format(t.visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
-            </if>
-            <if test="visitDeptCode != null">
-                and t.visit_dept_code = #{visitDeptCode}
-            </if>
-            <if test="visitDeptName != null">
-                and t.visit_dept_name = #{visitDeptName}
-            </if>
-            <if test="isabnormal != null">
-                and t.isabnormal = #{isabnormal}
-            </if>
-            <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
-            <if test="type != null">
-                and t.type = #{type}
-            </if>
+        and a.del_flag=0
+        AND t.del_flag=0
+        <if test="orgid != null and orgid != ''">
+            and t.orgid = #{orgid}
+        </if>
+        <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+            AND t.leavehospitaldistrictcode IN
+            <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                     close=")">
+                #{leavehospitaldistrictcode}
+            </foreach>
+        </if>
+        <if test="deptcodes != null and deptcodes.size() > 0">
+            AND t.deptcode IN
+            <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                     close=")">
+                #{deptcode}
+            </foreach>
+        </if>
+        <if test="subTaskIds != null and subTaskIds.size() > 0">
+            AND t.id IN
+            <foreach collection="subTaskIds" item="subTaskId" open="(" separator=","
+                     close=")">
+                #{subTaskId}
+            </foreach>
+        </if>
+        <if test="serviceType != null and serviceType.size() > 0">
+            AND t.service_type IN
+            <foreach collection="serviceType" item="serviceType" open="(" separator=","
+                     close=")">
+                #{serviceType}
+            </foreach>
+        </if>
+        <if test="startTime != null and endTime!=null">
+            AND date_format(t.visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
+            AND date_format(t.visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+        </if>
+        <if test="visitDeptCode != null">
+            and t.visit_dept_code = #{visitDeptCode}
+        </if>
+        <if test="visitDeptName != null">
+            and t.visit_dept_name = #{visitDeptName}
+        </if>
+        <if test="isabnormal != null">
+            and t.isabnormal = #{isabnormal}
+        </if>
+        <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
+        <if test="type != null">
+            and t.type = #{type}
+        </if>
         GROUP BY a.sub_id
     </select>
 
@@ -1473,42 +1625,42 @@
         service_subtask_detail ssd
         INNER JOIN service_subtask ss ON ssd.sub_id = ss.id
         where 1=1
-            and ss.del_flag=0
-            <if test="orgid != null and orgid != ''">
-                and ss.orgid = #{orgid}
-            </if>
-            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
-                AND ss.leavehospitaldistrictcode IN
-                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
-                         close=")">
-                    #{leavehospitaldistrictcode}
-                </foreach>
-            </if>
-            <if test="deptcodes != null and deptcodes.size() > 0">
-                AND ss.deptcode IN
-                <foreach collection="deptcodes" item="deptcode" open="(" separator=","
-                         close=")">
-                    #{deptcode}
-                </foreach>
-            </if>
-            <if test="serviceType != null and serviceType.size() > 0">
-                AND ss.service_type IN
-                <foreach collection="serviceType" item="serviceType" open="(" separator=","
-                         close=")">
-                    #{serviceType}
-                </foreach>
-            </if>
-            <if test="startTime != null and endTime!=null">
-                AND date_format(ss.visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
-                AND date_format(ss.visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
-            </if>
-            <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
-            <if test="type != null">
-                and ss.type = #{type}
-            </if>
-            <if test="configValue != null and configValue != ''">
-                AND ssd.categoryid IN (${configValue})
-            </if>
+        and ss.del_flag=0
+        <if test="orgid != null and orgid != ''">
+            and ss.orgid = #{orgid}
+        </if>
+        <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+            AND ss.leavehospitaldistrictcode IN
+            <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+                     close=")">
+                #{leavehospitaldistrictcode}
+            </foreach>
+        </if>
+        <if test="deptcodes != null and deptcodes.size() > 0">
+            AND ss.deptcode IN
+            <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                     close=")">
+                #{deptcode}
+            </foreach>
+        </if>
+        <if test="serviceType != null and serviceType.size() > 0">
+            AND ss.service_type IN
+            <foreach collection="serviceType" item="serviceType" open="(" separator=","
+                     close=")">
+                #{serviceType}
+            </foreach>
+        </if>
+        <if test="startTime != null and endTime!=null">
+            AND date_format(ss.visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
+            AND date_format(ss.visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+        </if>
+        <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
+        <if test="type != null">
+            and ss.type = #{type}
+        </if>
+        <if test="configValue != null and configValue != ''">
+            AND ssd.categoryid IN (${configValue})
+        </if>
         group by ssd.scriptid, IFNULL(ssd.matchedtext,ssd.asrtext)
     </select>
 
@@ -1866,164 +2018,164 @@
         SUM(CASE WHEN excep IS NOT NULL AND excep != '0' THEN 1 ELSE 0 END) AS yc
         FROM service_subtask
         where 1=1
-            and del_flag = 0
-            <if test="sendname != null and sendname != ''">
-                AND sendname LIKE CONCAT('%', #{sendname}, '%')
-            </if>
-            <if test="phone != null and phone != ''">
-                AND phone = #{phone}
-            </if>
-            <if test="deptOrDistrict==1">
-                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
-                    AND leavehospitaldistrictcode IN
-                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
-                             separator=","
-                             close=")">
-                        #{leavehospitaldistrictcode}
-                    </foreach>
-                </if>
-                <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
-                    AND deptcode IN
-                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
-                             close=")">
-                        #{leaveldeptcode}
-                    </foreach>
-                </if>
-            </if>
-            <if test="deptOrDistrict==2">
-                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
-                    AND (leavehospitaldistrictcode IN
-                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
-                             separator=","
-                             close=")">
-                        #{leavehospitaldistrictcode}
-                    </foreach>
-                </if>
-                <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
-                    OR deptcode IN
-                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
-                             close="))">
-                        #{leaveldeptcode}
-                    </foreach>
-                </if>
-            </if>
-            <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">
-                AND leavehospitaldistrictname = #{leavehospitaldistrictname}
-            </if>
-            <if test="leavediagname != null and leavediagname != ''">
-                AND leavediagname LIKE CONCAT('%', #{leavediagname}, '%')
-            </if>
-            <if test="managementDoctor != null and managementDoctor != ''">
-                AND management_doctor LIKE CONCAT('%', #{managementDoctor}, '%')
-            </if>
-            <if test="sex != null and sex != ''">
-                AND sex = #{sex}
-            </if>
-            <if test="age != null">
-                AND age = #{age}
-            </if>
-            <if test="patguid != null">
-                AND patguid = #{patguid}
-            </if>
-            <if test="subId != null">
-                AND id = #{subId}
-            </if>
-            <if test="inhospid != null">
-                AND inhospid = #{inhospid}
-            </if>
-            <if test="managementDoctorCode != null">
-                AND management_doctor_code = #{managementDoctorCode}
-            </if>
-            <if test="submit != null">
-                AND submit = #{submit}
-            </if>
-            <if test="upid != null">
-                AND upid = #{upid}
-            </if>
-            <if test="patfrom != null">
-                AND patfrom = #{patfrom}
-            </if>
-            <if test="serviceType != null">
-                AND service_type = #{serviceType}
-            </if>
-            <if test="patid != null">
-                AND patid = #{patid}
-            </if>
-            <if test="sfzh != null and sfzh != ''">
-                AND sfzh = #{sfzh}
-            </if>
-            <if test="addr != null and addr != ''">
-                AND addr = #{addr}
-            </if>
-            <if test="senderdetail != null and senderdetail != ''">
-                AND senderdetail = #{senderdetail}
-            </if>
-            <if test="type != null and type != ''">
-                AND type = #{type}
-            </if>
-            <if test="taskid != null">
-                AND taskid = #{taskid}
-            </if>
-            <if test="templateid != null and templateid != ''">
-                AND templateid = #{templateid}
-            </if>
-            <if test="templatename != null and templatename != ''">
-                AND templatename LIKE CONCAT('%', #{templatename}, '%')
-            </if>
-            <if test="startOutHospTime != null">
-                AND DATE_FORMAT(endtime,'%y%m%d') &gt;= DATE_FORMAT(#{startOutHospTime},'%y%m%d')
-            </if>
-            <if test="endOutHospTime != null">
-                AND DATE_FORMAT(endtime,'%y%m%d') &lt;= DATE_FORMAT(#{endOutHospTime},'%y%m%d')
-            </if>
-            <if test="startSendDateTime != null">
-                AND DATE_FORMAT(long_send_time,'%y%m%d') &gt;= DATE_FORMAT(#{startSendDateTime},'%y%m%d')
-            </if>
-            <if test="endSendDateTime != null">
-                AND DATE_FORMAT(long_send_time,'%y%m%d') &lt;= DATE_FORMAT(#{endSendDateTime},'%y%m%d')
-            </if>
-            <if test="longSendTime != null">
-                AND DATE_FORMAT(long_send_time,'%y%m%d') &lt;= DATE_FORMAT(#{longSendTime},'%y%m%d')
-            </if>
-            <if test="deptOrDistrict == 1">
-                <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
-                    AND leavehospitaldistrictcode IN
-                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
-                             separator="," close=")">
-                        #{leavehospitaldistrictcode}
-                    </foreach>
-                </if>
-                <if test="leaveldeptcodes != null and leaveldeptcodes.size() > 0">
-                    AND deptcode IN
-                    <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")">
-                        #{leaveldeptcode}
-                    </foreach>
-                </if>
-            </if>
-            <if test="deptcode != null and deptcode != ''">
-                AND deptcode = #{deptcode}
-            </if>
-            <if test="sendstate != null">
-                AND sendstate = #{sendstate}
-            </if>
-            <if test="sendstates != null and sendstates.size() > 0">
-                AND sendstate IN
-                <foreach collection="sendstates" item="state" open="(" separator="," close=")">
-                    #{state}
+        and del_flag = 0
+        <if test="sendname != null and sendname != ''">
+            AND sendname LIKE CONCAT('%', #{sendname}, '%')
+        </if>
+        <if test="phone != null and phone != ''">
+            AND phone = #{phone}
+        </if>
+        <if test="deptOrDistrict==1">
+            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+                AND leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+                         separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
                 </foreach>
             </if>
-            <if test="orgid != null and orgid != ''">
-                AND orgid = #{orgid}
+            <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+                AND deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close=")">
+                    #{leaveldeptcode}
+                </foreach>
             </if>
-            <if test="guid != null and guid != ''">
-                AND guid = #{guid}
+        </if>
+        <if test="deptOrDistrict==2">
+            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+                AND (leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+                         separator=","
+                         close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
             </if>
-            <if test="visitCount != null and visitCount == 1">
-                AND visit_count = 1
+            <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+                OR deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                         close="))">
+                    #{leaveldeptcode}
+                </foreach>
             </if>
-            <if test="visitCount != null and visitCount > 1">
-                AND visit_count > 1
+        </if>
+        <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">
+            AND leavehospitaldistrictname = #{leavehospitaldistrictname}
+        </if>
+        <if test="leavediagname != null and leavediagname != ''">
+            AND leavediagname LIKE CONCAT('%', #{leavediagname}, '%')
+        </if>
+        <if test="managementDoctor != null and managementDoctor != ''">
+            AND management_doctor LIKE CONCAT('%', #{managementDoctor}, '%')
+        </if>
+        <if test="sex != null and sex != ''">
+            AND sex = #{sex}
+        </if>
+        <if test="age != null">
+            AND age = #{age}
+        </if>
+        <if test="patguid != null">
+            AND patguid = #{patguid}
+        </if>
+        <if test="subId != null">
+            AND id = #{subId}
+        </if>
+        <if test="inhospid != null">
+            AND inhospid = #{inhospid}
+        </if>
+        <if test="managementDoctorCode != null">
+            AND management_doctor_code = #{managementDoctorCode}
+        </if>
+        <if test="submit != null">
+            AND submit = #{submit}
+        </if>
+        <if test="upid != null">
+            AND upid = #{upid}
+        </if>
+        <if test="patfrom != null">
+            AND patfrom = #{patfrom}
+        </if>
+        <if test="serviceType != null">
+            AND service_type = #{serviceType}
+        </if>
+        <if test="patid != null">
+            AND patid = #{patid}
+        </if>
+        <if test="sfzh != null and sfzh != ''">
+            AND sfzh = #{sfzh}
+        </if>
+        <if test="addr != null and addr != ''">
+            AND addr = #{addr}
+        </if>
+        <if test="senderdetail != null and senderdetail != ''">
+            AND senderdetail = #{senderdetail}
+        </if>
+        <if test="type != null and type != ''">
+            AND type = #{type}
+        </if>
+        <if test="taskid != null">
+            AND taskid = #{taskid}
+        </if>
+        <if test="templateid != null and templateid != ''">
+            AND templateid = #{templateid}
+        </if>
+        <if test="templatename != null and templatename != ''">
+            AND templatename LIKE CONCAT('%', #{templatename}, '%')
+        </if>
+        <if test="startOutHospTime != null">
+            AND DATE_FORMAT(endtime,'%y%m%d') &gt;= DATE_FORMAT(#{startOutHospTime},'%y%m%d')
+        </if>
+        <if test="endOutHospTime != null">
+            AND DATE_FORMAT(endtime,'%y%m%d') &lt;= DATE_FORMAT(#{endOutHospTime},'%y%m%d')
+        </if>
+        <if test="startSendDateTime != null">
+            AND DATE_FORMAT(long_send_time,'%y%m%d') &gt;= DATE_FORMAT(#{startSendDateTime},'%y%m%d')
+        </if>
+        <if test="endSendDateTime != null">
+            AND DATE_FORMAT(long_send_time,'%y%m%d') &lt;= DATE_FORMAT(#{endSendDateTime},'%y%m%d')
+        </if>
+        <if test="longSendTime != null">
+            AND DATE_FORMAT(long_send_time,'%y%m%d') &lt;= DATE_FORMAT(#{longSendTime},'%y%m%d')
+        </if>
+        <if test="deptOrDistrict == 1">
+            <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+                AND leavehospitaldistrictcode IN
+                <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+                         separator="," close=")">
+                    #{leavehospitaldistrictcode}
+                </foreach>
             </if>
+            <if test="leaveldeptcodes != null and leaveldeptcodes.size() > 0">
+                AND deptcode IN
+                <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator="," close=")">
+                    #{leaveldeptcode}
+                </foreach>
+            </if>
+        </if>
+        <if test="deptcode != null and deptcode != ''">
+            AND deptcode = #{deptcode}
+        </if>
+        <if test="sendstate != null">
+            AND sendstate = #{sendstate}
+        </if>
+        <if test="sendstates != null and sendstates.size() > 0">
+            AND sendstate IN
+            <foreach collection="sendstates" item="state" open="(" separator="," close=")">
+                #{state}
+            </foreach>
+        </if>
+        <if test="orgid != null and orgid != ''">
+            AND orgid = #{orgid}
+        </if>
+        <if test="guid != null and guid != ''">
+            AND guid = #{guid}
+        </if>
+        <if test="visitCount != null and visitCount == 1">
+            AND visit_count = 1
+        </if>
+        <if test="visitCount != null and visitCount > 1">
+            AND visit_count > 1
+        </if>
     </select>
 
 </mapper>

--
Gitblit v1.9.3