From 5e09cd9bc9f370058460ca56222a0c82096a8c7d Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期四, 17 九月 2026 16:32:57 +0800
Subject: [PATCH] 【市一】随访增加院区限制

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

diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 31c1134..b8b2a99 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -213,7 +213,6 @@
                create_time,
                isupload,
                upload_time,
-               orgid,
                pid,
                guid,
                text_param,
@@ -236,8 +235,6 @@
                leaveicd10code,
                orgid,
                visit_type,
-               management_doctor,
-               management_doctor_code,
                continue_flag,
                continue_time_now,
                continue_content,
@@ -257,9 +254,8 @@
         <include refid="selectServiceSubtaskVo"/>
         where 1=1
         and del_flag = 0
-        <if test="orgid != null and orgid != ''">
-            and orgid = #{orgid}
-        </if>
+        <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
         <if test="taskid != null ">and taskid = #{taskid}</if>
         <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
         <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
@@ -281,16 +277,11 @@
         <include refid="selectServiceSubtaskVo"/>
         where 1=1
         and del_flag = 0
-        <if test="orgid != null and orgid != ''">
-            and orgid = #{orgid}
-        </if>
-        <if test="subId != null">
-            AND id = #{subId}
-        </if>
+        <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
+        <if test="subId != null">and id = #{subId}</if>
         <if test="taskid != null ">and taskid = #{taskid}</if>
-        <if test="visitTime != null">
-            AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{visitTime},'%y%m%d')
-        </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>
         <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
         <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
@@ -362,6 +353,12 @@
             AND operation_item_id IN
             <foreach collection="operationItemIds" item="operationItemIdItem" open="(" separator="," close=")">
                 #{operationItemIdItem}
+            </foreach>
+        </if>
+        <if test="inhospids != null and inhospids.size() > 0">
+            AND inhospid IN
+            <foreach collection="inhospids" item="inhospidItem" open="(" separator="," close=")">
+                #{inhospidItem}
             </foreach>
         </if>
         <if test="templateid != null  and templateid != ''">and templateid = #{templateid}</if>
@@ -576,15 +573,10 @@
         <include refid="selectServiceSubtaskVo"/>
         where del_flag = 0
         and sendstate != 5
-        <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="subId != null">
-            AND id = #{subId}
-        </if>
+        <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
+        <if test="visitTime != null">and date_format(visit_time,'%y%m%d') &lt;= date_format(#{visitTime},'%y%m%d') </if>
+        <if test="subId != null">and id = #{subId} </if>
         <if test="sendstate != null ">and sendstate = #{sendstate}</if>
         <if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
         <if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
@@ -594,9 +586,8 @@
         <include refid="selectServiceSubtaskVo"/>
         where del_flag = 0
         and sendstate = 5
-        <if test="orgid != null and orgid != ''">
-            and orgid = #{orgid}
-        </if>
+        <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
         <if test="visitTime != null">
             AND date_format(visit_time,'%y%m%d') &lt;= date_format(DATE_ADD(#{visitTime}, INTERVAL 1 DAY),'%y%m%d')
         </if>
@@ -614,9 +605,8 @@
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
         where del_flag = 0
-        <if test="orgid != null and orgid != ''">
-            and orgid = #{orgid}
-        </if>
+        <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
         <if test="createStartTime != null  and createEndTime != null">and create_time BETWEEN #{createStartTime} AND
             #{createEndTime}
         </if>
@@ -711,9 +701,8 @@
             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>
+        <if test="orgid != null and orgid != ''">and b.orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and b.campusid = #{campusid}</if>
     </select>
 
     <select id="selectTimelyRate" parameterType="com.smartor.domain.ServiceSubtask" resultType="double">
@@ -752,7 +741,8 @@
         <if test="groupKey != null and groupKey != ''">
             ss.${groupKey} as groupKey,
         </if>
-        SUM(CASE WHEN ss.finishtime IS NOT NULL AND DATE(ss.visit_time) &lt;= DATE(ss.finishtime) THEN 1 ELSE 0 END) / COUNT(*) AS finishRate,
+        SUM(CASE WHEN ss.finishtime IS NOT NULL AND DATE(ss.visit_time) &lt;= DATE(ss.finishtime) THEN 1 ELSE 0 END) /
+        COUNT(*) AS finishRate,
         <if test="rateDay != null">
             SUM(CASE WHEN ss.finishtime IS NOT NULL
             AND DATEDIFF(ss.finishtime, ss.endtime) &lt;= #{rateDay} + COALESCE(cp.compensate_days, 0)
@@ -783,6 +773,7 @@
             AND ss.visit_time &lt; DATE_ADD(#{endtime}, INTERVAL 1 DAY)
         </if>
         <if test="orgid != null and orgid != ''">AND ss.orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and ss.campusid = #{campusid}</if>
         <if test="deptcode != null  and deptcode != ''">and ss.deptcode = #{deptcode}</if>
         <if test="deptname != null  and deptname != ''">and ss.deptname = #{deptname}</if>
         <if test="isabnormal != null">and ss.isabnormal = #{isabnormal}</if>
@@ -1281,9 +1272,8 @@
         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="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
     </update>
 
     <update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask">
@@ -1554,6 +1544,9 @@
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
         </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
+        </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND leavehospitaldistrictcode IN
             <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -1642,12 +1635,9 @@
         and a.del_flag = '0'
         and b.del_flag = '0'
         and a.appltype = '3'
-        <if test="orgid != null and orgid != ''">
-            and a.orgid = #{orgid}
-        </if>
-        <if test="taskId != null">
-            and a.task_id = #{taskId}
-        </if>
+        <if test="orgid != null and orgid != ''">and a.orgid = #{orgid}</if>
+        <if test="campusid != null and campusid != ''">and b.campusid = #{campusid}</if>
+        <if test="taskId != null">and a.task_id = #{taskId}</if>
         <if test="taskName != null and taskName != ''">
             and a.task_name like concat('%', #{taskName}, '%')
         </if>
@@ -1737,6 +1727,9 @@
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
         </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
+        </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND leavehospitaldistrictcode IN
             <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -1793,132 +1786,135 @@
 
     <select id="getSfStatisticsHyperlink" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
             resultMap="ServiceSubtaskResult">
-            select id,
-            visit_count,
-            is_visit_again,
-            type,
-            orgid,
-            drcode,
-            drname,
-            leavehospitaldistrictcode,
-            leavehospitaldistrictname,
-            deptcode,
-            deptname,
-            sendstate,
-            preachform,
-            current_preachform,
-            excep,
-            nurse_id,
-            nurse_name,
-            taskid,
-            task_name,
-            visit_time,
-            finishtime,
-            endtime,
-            senddate,
-            suggest,
-            result,
-            templateid,
-            templatename,
-            patid,
-            sendname,
-            send_type,
-            recordid,
-            exrecallcount,
-            continue_flag,
-            continue_time_now,
-            continue_content,
-            continue_count,
-            continue_time_next,
-            task_situation,
-            remark
-            from service_subtask
-            where 1=1
-            and del_flag = 0
-            <if test="orgid != null and orgid != ''">
-                and orgid = #{orgid}
+        select id,
+        visit_count,
+        is_visit_again,
+        type,
+        orgid,
+        drcode,
+        drname,
+        leavehospitaldistrictcode,
+        leavehospitaldistrictname,
+        deptcode,
+        deptname,
+        sendstate,
+        preachform,
+        current_preachform,
+        excep,
+        nurse_id,
+        nurse_name,
+        taskid,
+        task_name,
+        visit_time,
+        finishtime,
+        endtime,
+        senddate,
+        suggest,
+        result,
+        templateid,
+        templatename,
+        patid,
+        sendname,
+        send_type,
+        recordid,
+        exrecallcount,
+        continue_flag,
+        continue_time_now,
+        continue_content,
+        continue_count,
+        continue_time_next,
+        task_situation,
+        remark
+        from service_subtask
+        where 1=1
+        and del_flag = 0
+        <if test="orgid != null and orgid != ''">
+            and orgid = #{orgid}
+        </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
+        </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="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>
+        <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP}</if>
+        <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
+        <if test="type != null">
+            and type = #{type}
+        </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="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>
+        AND sendstate IS NOT NULL
+        <if test="sendstates != null and sendstates.size() > 0">
+            AND sendstate IN
+            <foreach collection="sendstates" item="state" open="(" separator="," close=")">
+                #{state}
+            </foreach>
+        </if>
+        <if test="currentPreachform != null">
+            AND current_preachform = #{currentPreachform}
+            <if test="followUpCountStyle != null and followUpCountStyle = '1'">
+                AND sendstate != 4
             </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="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>
-            <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP}</if>
-            <!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
-            <if test="type != null">
-                and type = #{type}
-            </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="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>
-            AND sendstate IS NOT NULL
-            <if test="sendstates != null and sendstates.size() > 0">
-                AND sendstate IN
-                <foreach collection="sendstates" item="state" open="(" separator="," close=")">
-                    #{state}
-                </foreach>
-            </if>
-            <if test="currentPreachform != null">
-                AND current_preachform = #{currentPreachform}
-                <if test="followUpCountStyle != null and followUpCountStyle = '1'">
-                    AND sendstate != 4
-                </if>
-            </if>
-            <if test="excep != null and excep != ''">
-                AND excep = #{excep}
-            </if>
-            <if test="taskSituation != null">
-                AND task_situation = #{taskSituation}
-            </if>
-            <if test="drcode != null and drcode != ''">
-                AND drcode = #{drcode}
-            </if>
-            <if test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">
-                AND leavehospitaldistrictcode = #{leavehospitaldistrictcode}
-            </if>
-            <if test="deptcode != null and deptcode != ''">
-                AND deptcode = #{deptcode}
-            </if>
-            order by endtime desc
-            <if test="pageSize != null  and pageNum != null">
-                limit ${pageSize} OFFSET ${pageNum}
-            </if>
+        </if>
+        <if test="excep != null and excep != ''">
+            AND excep = #{excep}
+        </if>
+        <if test="taskSituation != null">
+            AND task_situation = #{taskSituation}
+        </if>
+        <if test="drcode != null and drcode != ''">
+            AND drcode = #{drcode}
+        </if>
+        <if test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">
+            AND leavehospitaldistrictcode = #{leavehospitaldistrictcode}
+        </if>
+        <if test="deptcode != null and deptcode != ''">
+            AND deptcode = #{deptcode}
+        </if>
+        order by endtime desc
+        <if test="pageSize != null  and pageNum != null">
+            limit ${pageSize} OFFSET ${pageNum}
+        </if>
     </select>
 
     <select id="getSfStatisticsJoy" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
@@ -1932,6 +1928,9 @@
         and del_flag = 0
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
+        </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
         </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND leavehospitaldistrictcode IN
@@ -1977,6 +1976,9 @@
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
         </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
+        </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND leavehospitaldistrictcode IN
             <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -2008,6 +2010,9 @@
         and del_flag = 0
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
+        </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
         </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">AND
             leavehospitaldistrictcode IN
@@ -2063,6 +2068,9 @@
         AND t.del_flag=0
         <if test="orgid != null and orgid != ''">
             and t.orgid = #{orgid}
+        </if>
+        <if test="campusid != null and campusid != ''">
+            and t.campusid = #{campusid}
         </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND t.leavehospitaldistrictcode IN
@@ -2147,6 +2155,9 @@
         <if test="orgid != null and orgid != ''">
             AND ss.orgid = #{orgid}
         </if>
+        <if test="campusid != null and campusid != ''">
+            AND ss.campusid = #{campusid}
+        </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND ss.leavehospitaldistrictcode IN
             <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -2203,6 +2214,9 @@
         and ss.del_flag=0
         <if test="orgid != null and orgid != ''">
             and ss.orgid = #{orgid}
+        </if>
+        <if test="campusid != null and campusid != ''">
+            and ss.campusid = #{campusid}
         </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND ss.leavehospitaldistrictcode IN
@@ -2774,6 +2788,9 @@
         <if test="orgid != null and orgid != ''">
             AND orgid = #{orgid}
         </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
+        </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND leavehospitaldistrictcode IN
             <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
@@ -2861,6 +2878,9 @@
         <if test="orgid != null and orgid != ''">
             AND orgid = #{orgid}
         </if>
+        <if test="campusid != null and campusid != ''">
+            AND campusid = #{campusid}
+        </if>
         <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
             AND leavehospitaldistrictcode IN
             <foreach collection="leavehospitaldistrictcodes" item="code" open="(" separator="," close=")">
@@ -2886,6 +2906,9 @@
         AND deptcode IS NOT NULL AND deptcode != ''
         <if test="orgid != null and orgid != ''">
             AND orgid = #{orgid}
+        </if>
+        <if test="campusid != null and campusid != ''">
+            AND campusid = #{campusid}
         </if>
         <if test="deptcodes != null and deptcodes.size() > 0">
             AND deptcode IN
@@ -2918,6 +2941,9 @@
         AND service_type = 4
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
+        </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
         </if>
         <if test="sendstate != null">
             AND sendstate = #{sendstate}
@@ -2966,8 +2992,8 @@
     <select id="selectByScheduleIdAndLoop" resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
         where schedule_id = #{scheduleId}
-          and loop_count = #{loopCount}
-          and (del_flag is null or del_flag = '0')
+        and loop_count = #{loopCount}
+        and (del_flag is null or del_flag = '0')
         order by schedule_seq asc, id asc
     </select>
 
@@ -3018,6 +3044,9 @@
         AND service_type = 4
         <if test="orgid != null and orgid != ''">
             and orgid = #{orgid}
+        </if>
+        <if test="campusid != null and campusid != ''">
+            and campusid = #{campusid}
         </if>
         <if test="sendstate != null">
             AND sendstate = #{sendstate}
@@ -3134,6 +3163,10 @@
         t.task_name AS taskName,
         d.asrtext AS optionresult,
         d.score AS score,
+        s.deptcode AS deptcode,
+        s.deptname AS deptname,
+        s.leavehospitaldistrictcode AS leavehospitaldistrictcode,
+        s.leavehospitaldistrictname AS leavehospitaldistrictname,
         d.targetvalue AS targetvalue,
         d.value_type AS valueType,
         COUNT(*) AS count,
@@ -3144,43 +3177,47 @@
         INNER JOIN service_subtask_detail d ON d.sub_id = s.id
         INNER JOIN (
         SELECT
-            d.questiontext,
-            COUNT(*) AS total_count
+        d.questiontext,
+        COUNT(*) AS total_count
         FROM
-            service_task t
-            INNER JOIN service_subtask s ON s.taskid = t.taskid
-            INNER JOIN service_subtask_detail d ON d.sub_id = s.id
-            WHERE 1=1
-            <if test="subtaskIds != null and subtaskIds.size() > 0">
+        service_task t
+        INNER JOIN service_subtask s ON s.taskid = t.taskid
+        INNER JOIN service_subtask_detail d ON d.sub_id = s.id
+        WHERE 1=1
+        <if test="subtaskIds != null and subtaskIds.size() > 0">
             AND s.id IN
             <foreach collection="subtaskIds" item="subtaskId" open="(" separator="," close=")">
                 #{subtaskId}
             </foreach>
-            </if>
+        </if>
         <if test="valueType != null">AND d.value_type &gt;= #{valueType}</if>
         <if test="scoreStart != null">AND d.score = #{scoreStart}</if>
         <if test="scoreEnd != null">AND d.score &lt;= #{scoreEnd}</if>
-        <if test="questiontext != null  and questiontext != ''">and d.questiontext like concat('%', #{questiontext}, '%')</if>
-            AND s.sendstate = 6
-            AND d.del_flag=0
-            GROUP BY d.questiontext
+        <if test="questiontext != null  and questiontext != ''">and d.questiontext like concat('%', #{questiontext},
+            '%')
+        </if>
+        AND s.sendstate = 6
+        AND d.del_flag=0
+        GROUP BY d.questiontext
         ) t2 ON t2.questiontext = d.questiontext
         WHERE 1=1
         <if test="subtaskIds != null and subtaskIds.size() > 0">
-        AND s.id IN
-        <foreach collection="subtaskIds" item="subtaskId" open="(" separator="," close=")">
-            #{subtaskId}
-        </foreach>
+            AND s.id IN
+            <foreach collection="subtaskIds" item="subtaskId" open="(" separator="," close=")">
+                #{subtaskId}
+            </foreach>
         </if>
         AND s.sendstate = 6
         AND d.del_flag=0
         <if test="valueType != null">AND d.value_type &gt;= #{valueType}</if>
         <if test="scoreStart != null">AND d.score &gt;= #{scoreStart}</if>
         <if test="scoreEnd != null">AND d.score &lt;= #{scoreEnd}</if>
-        <if test="questiontext != null  and questiontext != ''">and d.questiontext like concat('%', #{questiontext}, '%')</if>
-      <if test="startOutHospTime != null">
-        AND date_format(s.endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
-    </if>
+        <if test="questiontext != null  and questiontext != ''">and d.questiontext like concat('%', #{questiontext},
+            '%')
+        </if>
+        <if test="startOutHospTime != null">
+            AND date_format(s.endtime,'%y%m%d') &gt;= date_format(#{startOutHospTime},'%y%m%d')
+        </if>
         <if test="endOutHospTime != null">
             AND date_format(s.endtime,'%y%m%d') &lt;= date_format(#{endOutHospTime},'%y%m%d')
         </if>
@@ -3195,6 +3232,54 @@
         t.taskid
     </select>
 
+    <select id="statQuestionOptionByKsOrBq" resultType="com.smartor.domain.DTO.QuestionCountKsOrBqDTO"
+            parameterType="com.smartor.domain.VO.QuestionCountKsOrBqVO">
+        SELECT questiontext,
+        d.taskid,
+        s.deptname,
+        d.create_time as createTime,
+        s.leavehospitaldistrictname,
+        d.targetvalue,
+        d.asrtext,
+        COUNT(d.asrtext) AS answercount,
+        d.score AS singleScore
+        FROM service_subtask_detail d,
+        service_task s
+        WHERE d.taskid = s.taskid
+        AND deptname IS NOT NULL
+        AND leavehospitaldistrictname IS NOT NULL
+        <if test="endFinishTime != null">
+            AND d.create_time &lt; #{endFinishTime}
+        </if>
+        <if test="startFinishTime != null">
+            AND  d.create_time &gt;= #{startFinishTime}
+        </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=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+            AND deptcode IN
+            <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+                     close=")">
+                #{leaveldeptcode}
+            </foreach>
+        </if>
+        GROUP BY d.questiontext,
+        d.taskid,
+        d.score,
+        s.deptname,
+        d.targetvalue,
+        d.create_time,
+        s.leavehospitaldistrictname,
+        d.asrtext
+        ORDER BY d.taskid
+    </select>
+
     <select id="selectServiceSubtaskListDeadLine" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>

--
Gitblit v1.9.3