From 37e23ae4323114564dadbacf75449b75ad957bbf Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 13 七月 2026 16:24:01 +0800
Subject: [PATCH] Merge branch 'master' into master-任务组
---
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 178 insertions(+), 0 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 746a630..6982d8f 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -94,6 +94,10 @@
<result property="continueCount" column="continue_count"/>
<result property="continueTimeNext" column="continue_time_next"/>
<result property="operationItemId" column="operation_item_id"/>
+ <result property="scheduleId" column="schedule_id"/>
+ <result property="scheduleDetailId" column="schedule_detail_id"/>
+ <result property="scheduleSeq" column="schedule_seq"/>
+ <result property="loopCount" column="loop_count"/>
</resultMap>
<resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2">
@@ -238,6 +242,10 @@
continue_count,
continue_time_next,
operation_item_id,
+ schedule_id,
+ schedule_detail_id,
+ schedule_seq,
+ loop_count,
task_situation
from service_subtask
</sql>
@@ -858,6 +866,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>
@@ -957,6 +971,10 @@
<if test="continueTimeNext != null ">continue_time_next,</if>
<if test="continueContent != null ">continue_content,</if>
<if test="operationItemId != null ">operation_item_id,</if>
+ <if test="scheduleId != null ">schedule_id,</if>
+ <if test="scheduleDetailId != null ">schedule_detail_id,</if>
+ <if test="scheduleSeq != null ">schedule_seq,</if>
+ <if test="loopCount != null ">loop_count,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="sendname != null">#{sendname},</if>
@@ -1049,6 +1067,10 @@
<if test="continueTimeNext != null ">#{continueTimeNext,jdbcType=TIMESTAMP},</if>
<if test="continueContent != null ">#{continueContent},</if>
<if test="operationItemId != null ">#{operationItemId},</if>
+ <if test="scheduleId != null ">#{scheduleId},</if>
+ <if test="scheduleDetailId != null ">#{scheduleDetailId},</if>
+ <if test="scheduleSeq != null ">#{scheduleSeq},</if>
+ <if test="loopCount != null ">#{loopCount},</if>
</trim>
</insert>
@@ -1146,6 +1168,10 @@
<if test="continueTimeNext != null ">continue_time_next = #{continueTimeNext,jdbcType=TIMESTAMP},</if>
<if test="continueContent != null ">continue_content = #{continueContent},</if>
<if test="operationItemId != null ">operation_item_id = #{operationItemId},</if>
+ <if test="scheduleId != null ">schedule_id = #{scheduleId},</if>
+ <if test="scheduleDetailId != null ">schedule_detail_id = #{scheduleDetailId},</if>
+ <if test="scheduleSeq != null ">schedule_seq = #{scheduleSeq},</if>
+ <if test="loopCount != null ">loop_count = #{loopCount},</if>
</trim>
where id = #{id}
</update>
@@ -2675,6 +2701,9 @@
<if test="visitCount != null and visitCount > 1">
AND visit_count > 1
</if>
+ <if test="drname != null and drname != ''">
+ AND drname like concat('%', #{drname}, '%')
+ </if>
</select>
@@ -2863,6 +2892,15 @@
FROM service_subtask
WHERE del_flag = 0
AND service_type = 4
+ <if test="orgid != null and orgid != ''">
+ and orgid = #{orgid}
+ </if>
+ <if test="sendstate != null">
+ AND sendstate = #{sendstate}
+ </if>
+ <if test="isFinished != null and isFinished != '0'">
+ AND finishtime is not null
+ </if>
<if test="starttime != null">AND starttime >= #{starttime}</if>
<if test="endtime != null">AND endtime <= #{endtime}</if>
<if test="visittime != null">AND DATE(visit_time) = DATE(#{visittime})</if>
@@ -2890,5 +2928,145 @@
</choose>
</select>
+ <!-- 浠诲姟缁勶紙appltype=5锛夋粴鍔ㄨ皟搴︾敤锛氭湰杞粛鍦ㄨ窇鐨勬暟閲� -->
+ <select id="countActiveByScheduleIdAndLoop" resultType="int">
+ select count(1)
+ from service_subtask
+ where schedule_id = #{scheduleId}
+ and loop_count = #{loopCount}
+ and (del_flag is null or del_flag = '0')
+ and sendstate in (1, 2, 3)
+ </select>
+
+ <!-- 浠诲姟缁勶紙appltype=5锛夋粴鍔ㄨ皟搴︾敤锛氭媺鏈疆鍏ㄩ噺 subtask锛屼綔涓轰笅涓�杞殑鍏嬮殕妯℃澘 -->
+ <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')
+ order by schedule_seq asc, id asc
+ </select>
+
+ <select id="gethelibraryCountHyperlink" 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
+ from service_subtask
+ where 1=1
+ and del_flag = 0
+ AND service_type = 4
+ <if test="orgid != null and orgid != ''">
+ and orgid = #{orgid}
+ </if>
+ <if test="sendstate != null and isFinished != '0'">
+ AND sendstate = #{sendstate}
+ </if>
+ <if test="isFinished != null">
+ AND finishtime is not null
+ </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="starttime != null">AND starttime >= #{starttime}</if>
+ <if test="endtime != null">AND endtime <= #{endtime}</if>
+ <if test="visittime != null">AND DATE(visit_time) = DATE(#{visittime})</if>
+ <if test="finishtime != null">AND DATE(finishtime) = DATE(#{finishtime})</if>
+ <if test="hospType != null and hospType != ''">AND hosp_type = #{hospType}</if>
+ order by endtime desc
+ <if test="pageSize != null and pageNum != null">
+ limit ${pageSize} OFFSET ${pageNum}
+ </if>
+ </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