From da026a34bcc97b2eb49607a3b02d94d8f683f997 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期三, 07 一月 2026 16:18:35 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

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

diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 62fce89..64351d6 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -100,14 +100,19 @@
 
     </resultMap>
 
-    <resultMap type="com.smartor.domain.ServiceSubtaskCategoryCount" id="ServiceSubtaskCategoryCountResult">
-        <result property="month" column="month"/>
-        <result property="serviceType" column="service_type"/>
-        <result property="subTaskId" column="subTaskId"/>
-        <result property="completedCount" column="completed_count"/>
-        <result property="allCount" column="all_count"/>
-        <result property="completedPercent" column="completed_percent"/>
-        <result property="name" column="name"/>
+    <resultMap type="com.smartor.domain.ServiceSubtaskScriptCount" id="ServiceSubtaskScriptCountResult">
+        <result property="scriptid" column="scriptid"/>
+        <result property="templateid" column="templateid"/>
+        <result property="scriptType" column="script_type"/>
+        <result property="scriptContent" column="script_content"/>
+        <result property="subtaskType" column="subtask_type"/>
+        <result property="completedQuantity" column="completed_quantity"/>
+        <result property="allQuantity" column="all_quantity"/>
+        <result property="completedPercentage" column="completed_percentage"/>
+        <result property="optionText" column="option_text"/>
+        <result property="chosenQuantity" column="chosen_quantity"/>
+        <result property="chosenPercentage" column="chosen_percentage"/>
+        <result property="options" column="options"/>
     </resultMap>
 
     <sql id="selectServiceSubtaskVo">
@@ -203,34 +208,37 @@
 
     <select id="selectServiceSubtaskBySendstate" parameterType="com.smartor.domain.ServiceSubtaskVO"
             resultMap="ServiceSubtaskResult">
-
         <include refid="selectServiceSubtaskVo"/>
-        <where>
-            del_flag=0
-            <if test="taskid != null ">and taskid = #{taskid}</if>
-            <if test="serviceType != null ">and service_type = #{serviceType}</if>
-            <if test="patid != null ">and patid = #{patid}</if>
-            <if test="sendstates!=null">
-                AND sendstate IN
-                <foreach collection="sendstates" item="sendstate" open="(" separator=","
-                         close=")">
-                    #{sendstate}
-                </foreach>
-            </if>
-        </where>
+        where 1=1
+        and del_flag = 0
+        <if test="orgid != null and orgid != ''">
+            and orgid = #{orgid}
+        </if>
+        <if test="taskid != null ">and taskid = #{taskid}</if>
+        <if test="serviceType != null ">and service_type = #{serviceType}</if>
+        <if test="patid != null ">and patid = #{patid}</if>
+        <if test="sendstates!=null">
+            AND sendstate IN
+            <foreach collection="sendstates" item="sendstate" open="(" separator=","
+                     close=")">
+                #{sendstate}
+            </foreach>
+        </if>
     </select>
 
     <select id="queryServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        <where>
-            del_flag=0
+        where 1=1
+            and del_flag = 0
+            <if test="orgid != null and orgid != ''">
+                and orgid = #{orgid}
+            </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="sendstate != null ">and sendstate = #{sendstate}</if>
-        </where>
 
     </select>
 
@@ -238,8 +246,8 @@
     <select id="selectServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        <where>
-            del_flag=0
+        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
@@ -379,7 +387,7 @@
             <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="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>-->
@@ -391,7 +399,6 @@
                     #{visitDeptCodes}
                 </foreach>
             </if>
-        </where>
         <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>
@@ -403,12 +410,28 @@
 
         <!-- order by update_time desc,id desc -->
     </select>
+    <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>
+    </select>
 
     <select id="selectServiceSubtaskListByCreateTime" parameterType="com.smartor.domain.ServiceSubtaskVO"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        <where>
-            del_flag=0
+        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>
@@ -425,7 +448,6 @@
             <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>
 
     </select>
 
@@ -433,8 +455,8 @@
     <select id="selectServiceSubtaskListAgain" parameterType="com.smartor.domain.ServiceSubtaskVO"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        <where>
-            del_flag=0
+        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
@@ -483,7 +505,6 @@
             <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>
-        </where>
 
     </select>
 
@@ -491,13 +512,16 @@
         SELECT b.sendstate
         from service_task a
         JOIN service_subtask b on a.taskid = b.taskid and a.pat_cycle = 0 and b.del_flag = 0
-        <where>b.taskid = #{taskid}
+        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>
-        </where>
+            <if test="orgid != null and orgid != ''">
+                and b.orgid = #{orgid}
+            </if>
     </select>
 
     <select id="selectTimelyRate" parameterType="com.smartor.domain.ServiceSubtask" resultType="double">
@@ -532,8 +556,8 @@
     <select id="selectTimelyRateDetail" parameterType="com.smartor.domain.ServiceSubtask"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        <where>
-            id in (
+        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(),
@@ -559,7 +583,6 @@
             <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)
-        </where>
     </select>
 
     <select id="selectServiceSubtaskById" parameterType="Long" resultMap="ServiceSubtaskResult">
@@ -939,10 +962,12 @@
             <if test="taskSituation != null">task_situation=#{taskSituation},</if>
             <if test="isabnormal != null">isabnormal=#{isabnormal},</if>
         </trim>
-        <where>
+        where 1=1
             <if test="patid != null ">and patid = #{patid}</if>
             <if test="taskid != null ">and taskid = #{taskid}</if>
-        </where>
+            <if test="orgid != null and orgid != ''">
+                and orgid = #{orgid}
+            </if>
     </update>
 
     <update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask">
@@ -1147,8 +1172,11 @@
     <select id="getSfStatistics" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
-        <where>
-            del_flag=0
+        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=","
@@ -1177,7 +1205,6 @@
             <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>
-        </where>
     </select>
 
     <select id="getSfStatisticsJoy" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
@@ -1187,8 +1214,11 @@
         config_key='joyCount')) joyAllCount
         FROM service_subtask_detail a
         WHERE sub_id IN(SELECT id FROM service_subtask t
-        <where>
-            del_flag=0
+        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=","
@@ -1215,9 +1245,8 @@
                 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>
-        </where>
+            <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'))
@@ -1229,8 +1258,11 @@
         SELECT joyName,joyCount,joyAllCount,ROUND(joyCount/joyAllCount,2) joyTotal FROM (
         SELECT targetname joyName,
         (select COUNT(sub_id) FROM service_subtask_detail WHERE sub_id IN(SELECT id FROM service_subtask t
-        <where>
-            del_flag=0
+        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=","
@@ -1256,11 +1288,13 @@
                 AND date_format(visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
                 AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
             </if>
-        </where>
         ) AND targetid=a.id) joyCount , (SELECT COUNT(*) from (select sub_id FROM service_subtask_detail
         WHERE sub_id IN(SELECT id FROM service_subtask t
-        <where>
-            del_flag=0
+        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
@@ -1287,7 +1321,6 @@
                 AND date_format(visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
                 AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
             </if>
-        </where>
         GROUP BY sub_id ) ) ta ) joyAllCount
         FROM ivr_liba_target a
         WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key=
@@ -1305,9 +1338,12 @@
         COUNT(sub_id) joyCount
         FROM service_subtask_detail a
         INNER JOIN service_subtask t ON a.sub_id = t.id
-        <where>
-            a.del_flag=0
+        where 1=1
+            and a.del_flag=0
             AND t.del_flag=0
+            <if test="orgid != null and orgid != ''">
+                and a.orgid = #{orgid}
+            </if>
             <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
                 AND t.leavehospitaldistrictcode IN
                 <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -1346,7 +1382,6 @@
             <if test="type != null">
                 and t.type = #{type}
             </if>
-        </where>
         GROUP BY a.sub_id
     </select>
 
@@ -1354,7 +1389,10 @@
             resultMap="ServiceSubtaskScriptCountResult">
         SELECT
         a.id as scriptid,
+        a.templateid as templateid,
+        a.script_type,
         a.script_content,
+        b.subtask_type,
         b.completed_quantity,
         b.all_quantity,
         ROUND(b.completed_quantity/b.all_quantity,2) as completed_percentage
@@ -1368,6 +1406,7 @@
         INNER JOIN(
         SELECT
         ssd.scriptid AS scriptid,
+        ss.type as subtask_type,
         SUM(CASE WHEN IFNULL(ssd.matchedtext,ssd.asrtext) IS NOT NULL
         AND IFNULL(ssd.matchedtext,ssd.asrtext) != '' THEN 1
         ELSE 0 END) AS completed_quantity,
@@ -1426,8 +1465,11 @@
         FROM
         service_subtask_detail ssd
         INNER JOIN service_subtask ss ON ssd.sub_id = ss.id
-        <where>
-            ss.del_flag=0
+        where 1=1
+            and ss.del_flag=0
+            <if test="orgid != null and orgid != ''">
+                and ss.orgid = #{orgid}
+            </if>
             AND IFNULL(ssd.matchedtext,ssd.asrtext) IS NOT NULL
             AND IFNULL(ssd.matchedtext,ssd.asrtext) != ''
             <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
@@ -1462,7 +1504,6 @@
             <if test="configValue != null and configValue != ''">
                 AND ssd.categoryid IN (${configValue})
             </if>
-        </where>
         group by ssd.scriptid, IFNULL(ssd.matchedtext,ssd.asrtext)
     </select>
 
@@ -1811,16 +1852,16 @@
     <!-- 浼樺寲鐨勭粺璁℃煡璇細鐩存帴鍦ㄦ暟鎹簱灞傚畬鎴愯仛鍚堣绠� -->
     <select id="countByCondition" parameterType="com.smartor.domain.ServiceSubtaskVO" resultType="map">
         SELECT
-            SUM(CASE WHEN sendstate = 4 THEN 1 ELSE 0 END) AS wzx,
-            SUM(CASE WHEN sendstate != 4 AND sendstate != 2 THEN 1 ELSE 0 END) AS ysf,
-            SUM(CASE WHEN sendstate = 5 THEN 1 ELSE 0 END) AS fssb,
-            SUM(CASE WHEN sendstate >= 3 OR sendstate = 1 THEN 1 ELSE 0 END) AS yfs,
-            SUM(CASE WHEN sendstate = 2 THEN 1 ELSE 0 END) AS dsf,
-            SUM(CASE WHEN sendstate = 1 THEN 1 ELSE 0 END) AS blq,
-            SUM(CASE WHEN excep IS NOT NULL AND excep != '0' THEN 1 ELSE 0 END) AS yc
+        SUM(CASE WHEN sendstate = 4 THEN 1 ELSE 0 END) AS wzx,
+        SUM(CASE WHEN sendstate != 4 AND sendstate != 2 THEN 1 ELSE 0 END) AS ysf,
+        SUM(CASE WHEN sendstate = 5 THEN 1 ELSE 0 END) AS fssb,
+        SUM(CASE WHEN sendstate >= 3 OR sendstate = 1 THEN 1 ELSE 0 END) AS yfs,
+        SUM(CASE WHEN sendstate = 2 THEN 1 ELSE 0 END) AS dsf,
+        SUM(CASE WHEN sendstate = 1 THEN 1 ELSE 0 END) AS blq,
+        SUM(CASE WHEN excep IS NOT NULL AND excep != '0' THEN 1 ELSE 0 END) AS yc
         FROM service_subtask
-        <where>
-            del_flag = 0
+        where 1=1
+            and del_flag = 0
             <if test="sendname != null and sendname != ''">
                 AND sendname LIKE CONCAT('%', #{sendname}, '%')
             </if>
@@ -1942,7 +1983,8 @@
             <if test="deptOrDistrict == 1">
                 <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
                     AND leavehospitaldistrictcode IN
-                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," close=")">
+                    <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+                             separator="," close=")">
                         #{leavehospitaldistrictcode}
                     </foreach>
                 </if>
@@ -1977,7 +2019,6 @@
             <if test="visitCount != null and visitCount > 1">
                 AND visit_count > 1
             </if>
-        </where>
     </select>
 
 </mapper>

--
Gitblit v1.9.3