From b79d14af673a7adc8614b5cb1e49773b5a992f83 Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期三, 08 四月 2026 17:49:56 +0800
Subject: [PATCH] 【丽水】手术随访
---
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 201 ++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 155 insertions(+), 46 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 7fd40ab..d4f0989 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -92,6 +92,7 @@
<result property="continueContent" column="continue_content"/>
<result property="continueCount" column="continue_count"/>
<result property="continueTimeNext" column="continue_time_next"/>
+ <result property="operationItemId" column="operation_item_id"/>
</resultMap>
<resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2">
@@ -212,6 +213,7 @@
continue_content,
continue_count,
continue_time_next,
+ operation_item_id,
task_situation
from service_subtask
</sql>
@@ -466,8 +468,43 @@
<if test="sort != null and sort==6">order by admindate desc</if>
<if test="sort != null and sort==7">order by visit_time asc</if>
<if test="sort != null and sort==8">order by visit_time desc</if>
- <if test="sort != null and sort==9">order by patid asc</if>
+ <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') <= date_format(#{endTime},'%y%m%d')
+ </if>
</select>
<select id="getCompensateServiceSubtaskList" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
resultMap="ServiceSubtaskResult">
@@ -651,6 +688,12 @@
</if>
<if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if>
<if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if>
+ <if test="visitCount != null and visitCount == 1">
+ AND visit_count = 1
+ </if>
+ <if test="visitCount != null and visitCount > 1">
+ AND visit_count > 1
+ </if>
<if test="groupKey != null and groupKey != ''">
AND ${groupKey} IN
<foreach collection="groupKeyList" item="key" open="(" separator=","
@@ -703,6 +746,7 @@
resultMap="ServiceSubtaskResult">
select sendstate,starttime,endtime,nurse_name,phone,sex,task_name,sendname,leavediagname,visit_time FROM
service_subtask WHERE del_flag=0
+ and service_type != 4
<if test="leavediagname != null">and leavediagname like concat('%',#{leavediagname}, '%')</if>
<if test="sendname != null">and sendname like concat('%',#{sendname}, '%')</if>
<if test="taskName != null">and task_name like concat('%',#{taskName}, '%')</if>
@@ -712,8 +756,8 @@
<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>
- GROUP BY sendname,sendstate,starttime,endtime,nurse_name,phone,sex,task_name,leavediagname,visit_time ORDER BY
- visit_time
+ 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>
</select>
@@ -810,6 +854,7 @@
<if test="continueCount != null ">continue_count,</if>
<if test="continueTimeNext != null ">continue_time_next,</if>
<if test="continueContent != null ">continue_content,</if>
+ <if test="operationItemId != null ">operation_item_id,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="sendname != null">#{sendname},</if>
@@ -901,6 +946,7 @@
<if test="continueCount != null ">#{continueCount},</if>
<if test="continueTimeNext != null ">#{continueTimeNext,jdbcType=TIMESTAMP},</if>
<if test="continueContent != null ">#{continueContent},</if>
+ <if test="operationItemId != null ">#{operationItemId},</if>
</trim>
</insert>
@@ -997,6 +1043,7 @@
<if test="continueCount != null ">continue_count = #{continueCount},</if>
<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>
</trim>
where id = #{id}
</update>
@@ -1393,6 +1440,12 @@
<if test="type != null">
and type = #{type}
</if>
+ <if test="visitCount != null and visitCount == 1">
+ AND visit_count = 1
+ </if>
+ <if test="visitCount != null and visitCount > 1">
+ AND visit_count > 1
+ </if>
<if test="groupKey != null and groupKey != '' and groupKeyList != null and groupKeyList.size>0">
AND ${groupKey} IN
<foreach collection="groupKeyList" item="key" open="(" separator=","
@@ -1448,6 +1501,12 @@
<!-- 鐩墠鍙粺璁¤闊冲拰闂嵎 -->
<if test="type != null">
and type = #{type}
+ </if>
+ <if test="visitCount != null and visitCount == 1">
+ AND visit_count = 1
+ </if>
+ <if test="visitCount != null and visitCount > 1">
+ AND visit_count > 1
</if>
<if test="groupKey != null and groupKey != ''">
group by ${groupKey}
@@ -1891,10 +1950,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') <= #{endDate}
+ AND DATE_FORMAT(finishtime, '%Y-%m-%d') <= #{endDate}
<if test="orgid != null">
AND orgid = #{orgid}
</if>
@@ -2017,47 +2076,47 @@
</foreach>
</if>
-<!-- UNION ALL-->
+ <!-- UNION ALL-->
-<!-- -- 闂ㄨ瘖浜烘鏁版嵁-->
-<!-- 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 <= DATE_ADD(#{endDate}, INTERVAL 1 DAY)-->
-<!-- </if>-->
-<!-- <if test="orgid != null">-->
-<!-- AND orgid = #{orgid}-->
-<!-- </if>-->
+ <!-- -- 闂ㄨ瘖浜烘鏁版嵁-->
+ <!-- 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 <= 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
@@ -2279,9 +2338,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') <= date_format(CURDATE(),'%y%m%d') THEN 1 END) AS pendingVisitCount,
+ COUNT(CASE WHEN sendstate = 2 AND date_format(visit_time,'%y%m%d') <= 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,
@@ -2310,4 +2371,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') <= 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