From 2013ea208bc8fa12fb6f8d22497f2a8b5f69855f Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 11 九月 2026 11:18:30 +0800
Subject: [PATCH] 1.省立同德的满意度功能处理 2.省立同德、南华采集时间缩短 3.给保存问卷接口,加一下防止重复提前的注解@RepeatSubmit 4.省立同德新增“报备科室责任人”字段 5.登陆接口加“用户类型”字段,不影响当前登陆逻辑
---
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 136 ++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 126 insertions(+), 10 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 3524fef..31c1134 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -358,6 +358,12 @@
#{itemTaskId}
</foreach>
</if>
+ <if test="operationItemIds != null and operationItemIds.size() > 0">
+ AND operation_item_id IN
+ <foreach collection="operationItemIds" item="operationItemIdItem" open="(" separator="," close=")">
+ #{operationItemIdItem}
+ </foreach>
+ </if>
<if test="templateid != null and templateid != ''">and templateid = #{templateid}</if>
<if test="templatename != null and templatename != ''">and templatename like concat('%', #{templatename},
'%')
@@ -373,6 +379,12 @@
</if>
<if test="endSendDateTime != null">
AND date_format(visit_time,'%y%m%d') <= date_format(#{endSendDateTime},'%y%m%d')
+ </if>
+ <if test="finishtimeStart != null">
+ AND date_format(finishtime,'%y%m%d') >= date_format(#{finishtimeStart},'%y%m%d')
+ </if>
+ <if test="finishtimeEnd != null">
+ AND date_format(finishtime,'%y%m%d') <= date_format(#{finishtimeEnd},'%y%m%d')
</if>
<if test="longSendTime != null">
AND date_format(long_send_time,'%y%m%d') <= date_format(#{longSendTime},'%y%m%d')
@@ -396,7 +408,7 @@
</if>
<if test="deptOrDistrict==2">
AND (1=1
- <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+ <if test="leavehospitaldistrictcodes != null">
AND leavehospitaldistrictcode IN
<foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
separator=","
@@ -404,7 +416,7 @@
#{leavehospitaldistrictcode}
</foreach>
</if>
- <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+ <if test=" leaveldeptcodes != null">
OR deptcode IN
<foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
close=")">
@@ -483,6 +495,7 @@
<if test="libtemplatename != null ">and libtemplatename = #{libtemplatename}</if>
<if test="openid != null ">and openid = #{openid}</if>
<if test="sendstate != null ">and sendstate = #{sendstate}</if>
+ <if test="operationItemId != null ">and operation_item_id = #{operationItemId}</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>
@@ -3041,7 +3054,11 @@
SELECT
d.questiontext AS questiontext,
t.taskid AS taskid,
+ t.task_name AS taskName,
d.asrtext AS optionresult,
+ d.score AS score,
+ d.targetvalue AS targetvalue,
+ d.value_type AS valueType,
COUNT(*) AS count,
CONCAT(ROUND(COUNT(*) * 100.0 / t2.total_count, 2), '%') AS ratio
FROM
@@ -3057,22 +3074,110 @@
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 t.taskid IN
- <foreach collection="taskIds" item="taskId" open="(" separator="," close=")">
- #{taskId}
- </foreach>
+ WHERE 1=1
+ <if test="taskIds != null and taskIds.size() > 0">
+ AND t.taskid IN
+ <foreach collection="taskIds" item="taskId" open="(" separator="," close=")">
+ #{taskId}
+ </foreach>
+ </if>
+ <if test="valueType != null">AND d.value_type = #{valueType}</if>
+ <if test="scoreStart != null">AND d.score >= #{scoreStart}</if>
+ <if test="scoreEnd != null">AND d.score <= #{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
t.taskid,
d.questiontext
) t2 ON t2.taskid = t.taskid AND t2.questiontext = d.questiontext
- WHERE t.taskid IN
- <foreach collection="taskIds" item="taskId" open="(" separator="," close=")">
- #{taskId}
- </foreach>
+ WHERE 1=1
+ <if test="taskIds != null and taskIds.size() > 0">
+ AND t.taskid IN
+ <foreach collection="taskIds" item="taskId" open="(" separator="," close=")">
+ #{taskId}
+ </foreach>
+ </if>
+ <if test="valueType != null">AND d.value_type = #{valueType}</if>
+ <if test="scoreStart != null">AND d.score >= #{scoreStart}</if>
+ <if test="scoreEnd != null">AND d.score <= #{scoreEnd}</if>
+ <if test="questiontext != null and questiontext != ''">and d.questiontext like concat('%', #{questiontext},
+ '%')
+ </if>
AND s.sendstate = 6
and d.del_flag=0
+ <if test="startOutHospTime != null">
+ AND date_format(s.endtime,'%y%m%d') >= date_format(#{startOutHospTime},'%y%m%d')
+ </if>
+ <if test="endOutHospTime != null">
+ AND date_format(s.endtime,'%y%m%d') <= date_format(#{endOutHospTime},'%y%m%d')
+ </if>
+ GROUP BY
+ t.taskid,
+ d.questiontext,
+ d.score,
+ d.targetvalue,
+ d.asrtext,
+ d.value_type
+ ORDER BY
+ d.questiontext,
+ t.taskid
+ </select>
+
+ <!-- 鏂版柟娉曪細鏍规嵁瀛愪换鍔� ID 缁熻闂閫夐」鐧惧垎姣� (鐢ㄤ簬婊℃剰搴︾粺璁� serviceType=6) -->
+ <select id="statQuestionOptionBySubtaskIds" resultType="com.smartor.domain.ServiceSubtaskDetailRatioExport">
+ SELECT
+ d.questiontext AS questiontext,
+ t.taskid AS taskid,
+ t.task_name AS taskName,
+ d.asrtext AS optionresult,
+ d.score AS score,
+ d.targetvalue AS targetvalue,
+ d.value_type AS valueType,
+ COUNT(*) AS count,
+ CONCAT(ROUND(COUNT(*) * 100.0 / t2.total_count, 2), '%') AS ratio
+ 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
+ INNER JOIN (
+ SELECT
+ 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">
+ AND s.id IN
+ <foreach collection="subtaskIds" item="subtaskId" open="(" separator="," close=")">
+ #{subtaskId}
+ </foreach>
+ </if>
+ <if test="valueType != null">AND d.value_type >= #{valueType}</if>
+ <if test="scoreStart != null">AND d.score = #{scoreStart}</if>
+ <if test="scoreEnd != null">AND d.score <= #{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
+ ) 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>
+ </if>
+ AND s.sendstate = 6
+ AND d.del_flag=0
+ <if test="valueType != null">AND d.value_type >= #{valueType}</if>
+ <if test="scoreStart != null">AND d.score >= #{scoreStart}</if>
+ <if test="scoreEnd != null">AND d.score <= #{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') >= date_format(#{startOutHospTime},'%y%m%d')
</if>
@@ -3082,11 +3187,22 @@
GROUP BY
t.taskid,
d.questiontext,
+ d.score,
+ d.targetvalue,
d.asrtext
ORDER BY
d.questiontext,
t.taskid
</select>
+ <select id="selectServiceSubtaskListDeadLine" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
+ resultMap="ServiceSubtaskResult">
+ <include refid="selectServiceSubtaskVo"/>
+ where 1=1
+ and del_flag = 0
+ and visit_count = 1
+ and endtime
+ </select>
+
</mapper>
--
Gitblit v1.9.3