From 09f75e1b4ee21241940ad26b91462ea15c5e4f00 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 03 七月 2026 09:25:29 +0800
Subject: [PATCH] 1.短信功能提交 2.优化随访详情页 3.导出两个sheet
---
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 110 insertions(+), 0 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index d5b5673..4d65bd3 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -271,12 +271,36 @@
<include refid="selectServiceSubtaskVo"/>
where 1=1
and del_flag = 0
+ and sendstate != 5
<if test="orgid != null and orgid != ''">
and orgid = #{orgid}
+ </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') <= 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>
+ <if test="continueCount != null ">and continue_count = #{continueCount}</if>
+ <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext}</if>
+ UNION ALL
+ <include refid="selectServiceSubtaskVo"/>
+ where 1=1
+ and del_flag = 0
+ and sendstate = 5
+ <if test="orgid != null and orgid != ''">
+ and orgid = #{orgid}
+ </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') <= date_format(DATE_ADD(#{visitTime}, INTERVAL 1 DAY),'%y%m%d')
</if>
<if test="sendstate != null ">and sendstate = #{sendstate}</if>
<if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
@@ -329,6 +353,12 @@
AND sendstate IN
<foreach collection="sendstates" item="state" open="(" separator="," close=")">
#{state}
+ </foreach>
+ </if>
+ <if test="subIdList != null and sendstates.size() > 0">
+ AND id IN
+ <foreach collection="subIdList" item="subId" open="(" separator="," close=")">
+ #{subId}
</foreach>
</if>
<!-- taskIds绛涢�� -->
@@ -545,11 +575,33 @@
resultMap="ServiceSubtaskResult">
<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') <= 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>
+ <if test="continueCount != null ">and continue_count = #{continueCount}</if>
+ <if test="continueTimeNext != null ">and continue_time_next = #{continueTimeNext}</if>
+ UNION ALL
+ <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') <= date_format(DATE_ADD(#{visitTime}, INTERVAL 1 DAY),'%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>
@@ -806,6 +858,12 @@
<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}</if>
+ <if test="startOutHospTime != null">
+ AND date_format(endtime,'%y%m%d') >= date_format(#{startOutHospTime},'%y%m%d')
+ </if>
+ <if test="endOutHospTime != null">
+ AND date_format(endtime,'%y%m%d') <= date_format(#{endOutHospTime},'%y%m%d')
+ </if>
GROUP BY sendname,sendstate,starttime,endtime,nurse_name,phone,sex,task_name,leavediagname,visit_time
ORDER BY sendname,visit_time
<if test="pageSize != null and pageNum != null">limit ${pageSize} OFFSET ${pageNum}</if>
@@ -1484,6 +1542,10 @@
AND visit_time >= DATE(#{startTime})
AND visit_time < DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
</if>
+ <if test="hospitalStartTime != null and hospitalEndTime!=null">
+ AND endtime >= DATE(#{hospitalStartTime})
+ AND endtime < DATE_ADD(DATE(#{hospitalEndTime}), 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>
@@ -1663,6 +1725,10 @@
AND visit_time >= DATE(#{startTime})
AND visit_time < DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
</if>
+ <if test="hospitalStartTime != null and hospitalEndTime!=null">
+ AND endtime >= DATE(#{hospitalStartTime})
+ AND endtime < DATE_ADD(DATE(#{hospitalEndTime}), 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>
@@ -1811,6 +1877,7 @@
<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>
@@ -2829,5 +2896,48 @@
</choose>
</select>
+ <select id="statQuestionOption" resultType="com.smartor.domain.ServiceSubtaskDetailRatioExport">
+ SELECT
+ d.questiontext AS questiontext,
+ t.taskid AS taskid,
+ d.asrtext AS optionresult,
+ 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
+ t.taskid,
+ 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 t.taskid IN
+ <foreach collection="taskIds" item="taskId" open="(" separator="," close=")">
+ #{taskId}
+ </foreach>
+ and s.sendstate=6
+ 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>
+ AND s.sendstate = 6
+ GROUP BY
+ t.taskid,
+ d.questiontext,
+ d.asrtext
+ ORDER BY
+ d.questiontext,
+ t.taskid
+ </select>
+
</mapper>
--
Gitblit v1.9.3