From bb5c9f74bcd20f299a514ad36ff47e6dd1dce7ae Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 04 十一月 2026 09:29:08 +0800
Subject: [PATCH] 【丽水】默认完成-下次补偿判断,上一次补偿方式是微信,状态是已领取,没选的填充默认选项,已完成
---
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 183 ++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 177 insertions(+), 6 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 6fdd494..a8960d6 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -103,6 +103,7 @@
<result property="loopCount" column="loop_count"/>
<result property="isManuallyCalled" column="is_manually_called"/>
<result property="campusid" column="campusid"/>
+ <result property="diagType" column="diag_type"/>
</resultMap>
<resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2">
@@ -410,7 +411,6 @@
<if test="managementDoctorCode != null ">and management_doctor_code = #{managementDoctorCode}</if>
<if test="submit != null ">and submit = #{submit}</if>
<if test="upid != null ">and upid = #{upid}</if>
- <if test="visitCount != null ">and visit_count = #{visitCount}</if>
<if test="patfrom != null ">and patfrom = #{patfrom}</if>
<if test="serviceType != null ">and service_type = #{serviceType}</if>
<if test="patid != null ">and patid = #{patid}</if>
@@ -1319,6 +1319,25 @@
where id = #{id}
</update>
+ <!-- 寰俊鍏紬鍙峰凡棰嗗彇鏈~鍐欐寜榛樿閫夐」瀹屾垚锛氬彧鏇存柊褰撳墠瀛愪换鍔°��
+ 鏉′欢 sendstate=1 + 鏈彁浜わ紝淇濊瘉鍙鐞嗗綋鍓嶈棰嗗彇涓旀湭濉啓鐨勫瓙浠诲姟锛屼笉娉㈠強鍏朵粬浠诲姟銆� -->
+ <update id="updateWechatDefaultComplete" parameterType="com.smartor.domain.ServiceSubtask">
+ update service_subtask
+ set sendstate = 6,
+ finishtime = #{finishtime},
+ result = #{result},
+ remark = case
+ when remark is null or remark = '' then #{remark}
+ else concat(remark, ',', #{remark})
+ end,
+ update_time = now(),
+ finish_state = <include refid="finishStateExpr"/>
+ where id = #{id}
+ and orgid = #{orgid}
+ and sendstate = 1
+ and (submit is null or submit != 1)
+ </update>
+
<update id="updateServiceSubtaskByPatId" parameterType="com.smartor.domain.ServiceSubtask">
update service_subtask
<trim prefix="SET" suffixOverrides=",">
@@ -1707,6 +1726,9 @@
nurse_name,
taskid,
task_name,
+ <if test="groupKey != null and groupKey == 'taskid'">
+ (SELECT st.diag_type FROM service_task st WHERE st.taskid = service_subtask.taskid LIMIT 1) AS diag_type,
+ </if>
visit_time,
visit_dept_code,
finishtime,
@@ -1750,6 +1772,13 @@
<foreach collection="deptcodes" item="deptcode" open="(" separator=","
close=")">
#{deptcode}
+ </foreach>
+ </if>
+ <if test="taskIds != null and taskIds.size() > 0">
+ AND taskid IN
+ <foreach collection="taskIds" item="taskId" open="(" separator=","
+ close=")">
+ #{taskId}
</foreach>
</if>
<if test="serviceType != null and serviceType.size() > 0">
@@ -1935,6 +1964,13 @@
#{deptcode}
</foreach>
</if>
+ <if test="taskIds != null and taskIds.size() > 0">
+ AND taskid IN
+ <foreach collection="taskIds" item="taskId" open="(" separator=","
+ close=")">
+ #{taskId}
+ </foreach>
+ </if>
<if test="serviceType != null and serviceType.size() > 0">
AND service_type IN
<foreach collection="serviceType" item="serviceType" open="(" separator=","
@@ -1969,9 +2005,6 @@
</if>
<if test="groupKey != null and groupKey != ''">
group by ${groupKey}
- </if>
- <if test="pageSize != null and pageNum != null">
- limit ${pageSize} OFFSET ${pageNum}
</if>
</select>
@@ -2070,10 +2103,15 @@
<if test="type != null">
and type = #{type}
</if>
- <if test="visitCount != null and visitCount == 1">
+ <!-- 棣栦釜鍐嶆闅忚锛氱簿纭煡 visit_count = 2锛屼笌缁熻鍙e緞涓�鑷� -->
+ <if test="hyperLinkInfoType == 'againFollowUpPushCountInfo'">
+ AND visit_count = 2
+ </if>
+ <!-- 鍏朵粬绫诲瀷淇濇寔鍘熻涔夛細1 棣栨锛�>1 鍐嶆 -->
+ <if test="hyperLinkInfoType != 'againFollowUpPushCountInfo' and visitCount != null and visitCount == 1">
AND visit_count = 1
</if>
- <if test="visitCount != null and visitCount > 1">
+ <if test="hyperLinkInfoType != 'againFollowUpPushCountInfo' and visitCount != null and visitCount > 1">
AND visit_count > 1
</if>
<if test="groupKey != null and groupKey != '' and groupKeyList != null and groupKeyList.size>0">
@@ -2116,6 +2154,9 @@
</if>
<if test="isManuallyCalled != null">
AND is_manually_called = #{isManuallyCalled}
+ </if>
+ <if test="suggest != null and suggest != ''">
+ AND TRIM(suggest) = #{suggest}
</if>
order by endtime desc
<if test="pageSize != null and pageNum != null">
@@ -2471,6 +2512,136 @@
group by a.script_content, ss.type, IFNULL(ssd.matchedtext,ssd.asrtext)
</select>
+ <!--
+ 闂閫夐」鏁板瓧涓嬮捇锛氳繑鍥為�夋嫨浜嗘寚瀹氶�夐」鐨� service_subtask 鍒楄〃銆�
+ 杩囨护鍙e緞涓� getSfStatisticsScriptDetails / getSfStatisticsScriptItemDetails 淇濇寔涓�鑷达紝
+ 棰濆鏀寔 statisticaltype锛�1-鐥呭尯銆�2-绉戝銆�3-鐥呯銆�
+ -->
+ <select id="getSfStatisticsScriptDetailsHyperlink" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
+ resultMap="ServiceSubtaskResult">
+ SELECT ss.*
+ FROM service_subtask ss
+ WHERE ss.del_flag = 0
+ <if test="orgid != null and orgid != ''">
+ AND ss.orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ AND ss.campusid = #{campusid}
+ </if>
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+ AND ss.leavehospitaldistrictcode IN
+ <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
+ close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test="deptcodes != null and deptcodes.size() > 0">
+ AND ss.deptcode IN
+ <foreach collection="deptcodes" item="deptcode" open="(" separator="," close=")">
+ #{deptcode}
+ </foreach>
+ </if>
+ <if test="serviceType != null and serviceType.size() > 0">
+ AND ss.service_type IN
+ <foreach collection="serviceType" item="serviceType" open="(" separator="," close=")">
+ #{serviceType}
+ </foreach>
+ </if>
+ <if test="startTime != null and endTime != null">
+ AND ss.visit_time >= DATE(#{startTime})
+ AND ss.visit_time < DATE_ADD(DATE(#{endTime}), INTERVAL 1 DAY)
+ </if>
+ <if test="type != null and type != ''">
+ AND ss.type = #{type}
+ </if>
+
+ <!-- 缁熻缁村害锛�1-鎸夌梾鍖� 2-鎸夌瀹� 3-鎸塼askid -->
+ <if test="statisticaltype != null and statisticaltype == 1">
+ <choose>
+ <when test="deptcode != null and deptcode != ''">
+ AND ss.leavehospitaldistrictcode = #{deptcode}
+ </when>
+ <when test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">
+ AND ss.leavehospitaldistrictcode = #{leavehospitaldistrictcode}
+ </when>
+ </choose>
+ </if>
+ <if test="statisticaltype != null and statisticaltype == 2 and deptcode != null and deptcode != ''">
+ AND ss.deptcode = #{deptcode}
+ </if>
+ <if test="statisticaltype != null and statisticaltype == 3 and taskId != null">
+ AND ss.taskid = #{taskId}
+ </if>
+ <!-- 鍏煎涓嶄紶 statisticaltype 鏃舵寜鍗曞�兼潯浠惰繃婊� -->
+ <if test="statisticaltype == null">
+ <if test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">
+ AND ss.leavehospitaldistrictcode = #{leavehospitaldistrictcode}
+ </if>
+ <if test="deptcode != null and deptcode != ''">
+ AND ss.deptcode = #{deptcode}
+ </if>
+ <if test="taskId != null">
+ AND ss.taskid = #{taskId}
+ </if>
+ </if>
+
+ <!-- 棰樼洰 + 閫夐」鍖归厤锛氬彧淇濈暀鍥炵瓟涓�夋嫨浜嗚閫夐」鐨勫瓙浠诲姟 -->
+ AND EXISTS (
+ SELECT 1
+ FROM service_subtask_detail ssd
+ WHERE ssd.sub_id = ss.id
+ AND ssd.del_flag = 0
+ <if test="configValue != null and configValue != ''">
+ AND ssd.categoryid IN (${configValue})
+ </if>
+ <choose>
+ <when test="optionText != null">
+ AND IFNULL(ssd.matchedtext, ssd.asrtext) = #{optionText}
+ </when>
+ <otherwise>
+ AND 1 = 0
+ </otherwise>
+ </choose>
+ <choose>
+ <!-- 浼樺厛鎸夐鐩唴瀹瑰尮閰嶏細鍚屼竴閬撻澶嶅埗鍒板涓换鍔℃ā鏉挎椂 scriptid 涓嶅悓锛屼絾 script_content 鐩稿悓 -->
+ <when test="scriptContent != null and scriptContent != ''">
+ AND ssd.scriptid IN (
+ <choose>
+ <when test="type == '1'">
+ SELECT its.id FROM ivr_task_template_script its
+ WHERE its.script_content = #{scriptContent}
+ </when>
+ <when test="type == '2'">
+ SELECT sts.id FROM svy_task_template_script sts
+ WHERE sts.script_content = #{scriptContent}
+ </when>
+ <otherwise>
+ SELECT its.id FROM ivr_task_template_script its
+ WHERE its.script_content = #{scriptContent}
+ UNION
+ SELECT sts.id FROM svy_task_template_script sts
+ WHERE sts.script_content = #{scriptContent}
+ </otherwise>
+ </choose>
+ )
+ </when>
+ <when test="scriptid != null">
+ AND ssd.scriptid = #{scriptid}
+ </when>
+ <otherwise>
+ AND 1 = 0
+ </otherwise>
+ </choose>
+ )
+ ORDER BY ss.endtime DESC, ss.id DESC
+ <if test="pageSize != null and pageSize > 0">
+ LIMIT #{pageSize}
+ <if test="pageNum != null and pageNum >= 0">
+ OFFSET #{pageNum}
+ </if>
+ </if>
+ </select>
+
<select id="getDataByTime" resultMap="ServiceSubtaskResult">
select id,
--
Gitblit v1.9.3