From e180e3a496d6f29d3a3b34016400de9d997c6bd9 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期二, 07 四月 2026 14:42:23 +0800
Subject: [PATCH] 省立同德满意度功能提交

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

diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index c2d5882..6f1c4e8 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -469,6 +469,41 @@
         <if test="sort != null  and sort==9">order by sendname asc</if>
         <if test="pageSize != null  and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if>
     </select>
+
+    <select id="selectSatisfactionSubtaskList" parameterType="com.smartor.domain.VO.PatSatisfactionReqVO"
+            resultMap="ServiceSubtaskResult">
+        <include refid="selectServiceSubtaskVo"/>
+        where 1=1
+        and del_flag = 0
+        <if test="questionType != null">and type = #{questionType}</if>
+
+        <if test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0">
+            AND leavehospitaldistrictcode IN
+            <foreach collection="hospitaldistrictcodes" item="hospitaldistrictcode" open="(" separator=","
+                     close=")">
+                #{hospitaldistrictcode}
+            </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="serviceTypes != null and serviceTypes.size() > 0">
+            AND service_type IN
+            <foreach collection="serviceTypes" 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>
+    </select>
     <select id="getCompensateServiceSubtaskList" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
             resultMap="ServiceSubtaskResult">
         <include refid="selectServiceSubtaskVo"/>
@@ -1910,10 +1945,10 @@
 
     <select id="getDeptRanking" parameterType="com.smartor.domain.PatMedReq" resultType="com.smartor.domain.PatMedRes">
         SELECT deptname,
-               count(1) AS rc
+        count(1) AS rc
         FROM service_subtask
         WHERE DATE_FORMAT(finishtime, '%Y-%m-%d') >= #{startDate}
-          AND DATE_FORMAT(finishtime, '%Y-%m-%d') &lt;= #{endDate}
+        AND DATE_FORMAT(finishtime, '%Y-%m-%d') &lt;= #{endDate}
         <if test="orgid != null">
             AND orgid = #{orgid}
         </if>
@@ -2036,47 +2071,47 @@
             </foreach>
         </if>
 
-<!--        UNION ALL-->
+        <!--        UNION ALL-->
 
-<!--        &#45;&#45; 闂ㄨ瘖浜烘鏁版嵁-->
-<!--        SELECT-->
-<!--        <choose>-->
-<!--            <when test="timeType == 'day'">-->
-<!--                DATE_FORMAT(admitdate, '%Y-%m-%d') AS timePeriod,-->
-<!--            </when>-->
-<!--            <when test="timeType == 'month'">-->
-<!--                DATE_FORMAT(admitdate, '%Y-%m') AS timePeriod,-->
-<!--            </when>-->
-<!--            <when test="timeType == 'year'">-->
-<!--                DATE_FORMAT(admitdate, '%Y') AS timePeriod,-->
-<!--            </when>-->
-<!--            <when test="timeType == 'week'">-->
-<!--                CONCAT(YEAR(admitdate), '-W', LPAD(WEEK(admitdate, 1), 2, '0')) AS timePeriod,-->
-<!--            </when>-->
-<!--            <otherwise>-->
-<!--                DATE_FORMAT(admitdate, '%Y-%m-%d') AS timePeriod,-->
-<!--            </otherwise>-->
-<!--        </choose>-->
-<!--        0 AS dischargeFollowCount,-->
-<!--        0 AS outpatientFollowCount,-->
-<!--        0 AS pmiCount,-->
-<!--        1 AS pmoCount-->
-<!--        FROM pat_med_outhosp-->
-<!--        WHERE del_flag = '0'-->
-<!--        <if test="startDate != null and endDate != null">-->
-<!--            AND admitdate >= #{startDate}-->
-<!--            AND admitdate &lt;= DATE_ADD(#{endDate}, INTERVAL 1 DAY)-->
-<!--        </if>-->
-<!--        <if test="orgid != null">-->
-<!--            AND orgid = #{orgid}-->
-<!--        </if>-->
+        <!--        &#45;&#45; 闂ㄨ瘖浜烘鏁版嵁-->
+        <!--        SELECT-->
+        <!--        <choose>-->
+        <!--            <when test="timeType == 'day'">-->
+        <!--                DATE_FORMAT(admitdate, '%Y-%m-%d') AS timePeriod,-->
+        <!--            </when>-->
+        <!--            <when test="timeType == 'month'">-->
+        <!--                DATE_FORMAT(admitdate, '%Y-%m') AS timePeriod,-->
+        <!--            </when>-->
+        <!--            <when test="timeType == 'year'">-->
+        <!--                DATE_FORMAT(admitdate, '%Y') AS timePeriod,-->
+        <!--            </when>-->
+        <!--            <when test="timeType == 'week'">-->
+        <!--                CONCAT(YEAR(admitdate), '-W', LPAD(WEEK(admitdate, 1), 2, '0')) AS timePeriod,-->
+        <!--            </when>-->
+        <!--            <otherwise>-->
+        <!--                DATE_FORMAT(admitdate, '%Y-%m-%d') AS timePeriod,-->
+        <!--            </otherwise>-->
+        <!--        </choose>-->
+        <!--        0 AS dischargeFollowCount,-->
+        <!--        0 AS outpatientFollowCount,-->
+        <!--        0 AS pmiCount,-->
+        <!--        1 AS pmoCount-->
+        <!--        FROM pat_med_outhosp-->
+        <!--        WHERE del_flag = '0'-->
+        <!--        <if test="startDate != null and endDate != null">-->
+        <!--            AND admitdate >= #{startDate}-->
+        <!--            AND admitdate &lt;= DATE_ADD(#{endDate}, INTERVAL 1 DAY)-->
+        <!--        </if>-->
+        <!--        <if test="orgid != null">-->
+        <!--            AND orgid = #{orgid}-->
+        <!--        </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="deptcodes != null and deptcodes.size() > 0">-->
+        <!--            AND deptcode IN-->
+        <!--            <foreach collection="deptcodes" item="deptcode" open="(" separator="," close=")">-->
+        <!--                #{deptcode}-->
+        <!--            </foreach>-->
+        <!--        </if>-->
 
         ) AS combined_data
         GROUP BY timePeriod
@@ -2298,9 +2333,11 @@
         </if>
     </select>
 
-    <select id="getCurrentUserServiceSubtaskCount" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity" resultType="map">
+    <select id="getCurrentUserServiceSubtaskCount" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
+            resultType="map">
         SELECT
-        COUNT(CASE WHEN sendstate = 2 AND date_format(visit_time,'%y%m%d') &lt;= date_format(CURDATE(),'%y%m%d') THEN 1 END) AS pendingVisitCount,
+        COUNT(CASE WHEN sendstate = 2 AND date_format(visit_time,'%y%m%d') &lt;= date_format(CURDATE(),'%y%m%d') THEN 1
+        END) AS pendingVisitCount,
         COUNT(CASE WHEN sendstate = 5 THEN 1 END) AS failedVisitCount,
         SUM(CASE WHEN excep IS NOT NULL AND excep = '1' THEN 1 ELSE 0 END) AS abnormalVisitCount,
         SUM(CASE WHEN excep IS NOT NULL AND excep = '2' THEN 1 ELSE 0 END) AS warnningVisitCount,
@@ -2329,4 +2366,52 @@
         </if>
     </select>
 
+    <select id="querySendCount" parameterType="com.smartor.domain.entity.ServiceSubtaskSatisfactionEntity"
+            resultType="Long">
+        select distinct id from service_subtask
+        where 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="type != null ">and type = #{type}</if>
+        <if test="startTime != null">
+            AND date_format(visit_time,'%y%m%d') >= date_format(#{startTime},'%y%m%d')
+        </if>
+        <if test="endTime != null">
+            AND date_format(visit_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
+        </if>
+        <if test=" libTemplateIds != null and libTemplateIds.size()>0">
+            AND libtemplateid IN
+            <foreach collection="libTemplateIds" item="libTemplateId" open="(" separator=","
+                     close=")">
+                #{libTemplateId}
+            </foreach>
+        </if>
+        <if test="(hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0) or (deptcodes != null and deptcodes.size() > 0)">
+            AND (
+            <if test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0">
+                leavehospitaldistrictcode IN
+                <foreach collection="hospitaldistrictcodes" item="hospitaldistrictcode" open="("
+                         separator=","
+                         close=")">
+                    #{hospitaldistrictcode}
+                </foreach>
+            </if>
+            <if test="hospitaldistrictcodes != null and hospitaldistrictcodes.size() > 0 and deptcodes != null and deptcodes.size() > 0">
+                OR
+            </if>
+            <if test="deptcodes != null and deptcodes.size() > 0">
+                deptcode IN
+                <foreach collection="deptcodes" item="deptcode" open="(" separator=","
+                         close=")">
+                    #{deptcode}
+                </foreach>
+            </if>
+            )
+        </if>
+    </select>
+
 </mapper>

--
Gitblit v1.9.3