From 21ce122193e2fb57d206dbfca59e8d2ab2114fd0 Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期一, 23 三月 2026 17:12:56 +0800
Subject: [PATCH] 新增病区与科室组合
---
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 209 ++++++++++++++++++++++++++++------------------------
1 files changed, 112 insertions(+), 97 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 42f5bce..1877ccc 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -361,6 +361,41 @@
</foreach>
</if>
</if>
+ <if test="deptOrDistrict==3">
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+ AND (leavehospitaldistrictcode IN
+ <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+ separator=","
+ close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test=" visitDeptCodes != null and visitDeptCodes.size()>0">
+ and visit_dept_name IN
+ <foreach collection="visitDeptCodes" item="visitDeptCode" open="(" separator=","
+ close="))">
+ #{visitDeptCode}
+ </foreach>
+ </if>
+ </if>
+
+ <if test="deptOrDistrict==4">
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+ AND (leavehospitaldistrictcode IN
+ <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+ separator=","
+ close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test=" visitDeptCodes != null and visitDeptCodes.size()>0">
+ OR visit_dept_name IN
+ <foreach collection="visitDeptCodes" item="visitDeptCode" open="(" separator=","
+ close="))">
+ #{visitDeptCode}
+ </foreach>
+ </if>
+ </if>
<if test="visitTime != null">
AND date_format(visit_time,'%y%m%d') = date_format(#{visitTime},'%y%m%d')
@@ -425,8 +460,8 @@
</if>
<if test="sort != null and sort==0">order by endtime asc</if>
<if test="sort != null and sort==1">order by endtime desc</if>
- <if test="sort != null and sort==2">order by long_send_time asc</if>
- <if test="sort != null and sort==3">order by long_send_time desc</if>
+ <if test="sort != null and sort==2">order by visit_time asc</if>
+ <if test="sort != null and sort==3">order by visit_time desc</if>
<if test="sort != null and sort==5">order by admindate asc</if>
<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>
@@ -1927,25 +1962,6 @@
</foreach>
</if>
- <!-- GROUP BY-->
- <!-- <choose>-->
- <!-- <when test="timeType == 'day'">-->
- <!-- DATE_FORMAT(visit_time, '%Y-%m-%d')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'month'">-->
- <!-- DATE_FORMAT(visit_time, '%Y-%m')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'year'">-->
- <!-- DATE_FORMAT(visit_time, '%Y')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'week'">-->
- <!-- CONCAT(YEAR(visit_time), '-W', LPAD(WEEK(visit_time, 1), 2, '0'))-->
- <!-- </when>-->
- <!-- <otherwise>-->
- <!-- DATE_FORMAT(visit_time, '%Y-%m-%d')-->
- <!-- </otherwise>-->
- <!-- </choose>-->
-
UNION ALL
-- 鍑洪櫌浜烘鏁版嵁
@@ -1997,85 +2013,48 @@
</foreach>
</if>
- <!-- GROUP BY-->
- <!-- <choose>-->
- <!-- <when test="timeType == 'day'">-->
- <!-- DATE_FORMAT(endtime, '%Y-%m-%d')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'month'">-->
- <!-- DATE_FORMAT(endtime, '%Y-%m')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'year'">-->
- <!-- DATE_FORMAT(endtime, '%Y')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'week'">-->
- <!-- CONCAT(YEAR(endtime), '-W', LPAD(WEEK(endtime, 1), 2, '0'))-->
- <!-- </when>-->
- <!-- <otherwise>-->
- <!-- DATE_FORMAT(endtime, '%Y-%m-%d')-->
- <!-- </otherwise>-->
- <!-- </choose>-->
+<!-- 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>
-
- <!-- GROUP BY-->
- <!-- <choose>-->
- <!-- <when test="timeType == 'day'">-->
- <!-- DATE_FORMAT(admitdate, '%Y-%m-%d')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'month'">-->
- <!-- DATE_FORMAT(admitdate, '%Y-%m')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'year'">-->
- <!-- DATE_FORMAT(admitdate, '%Y')-->
- <!-- </when>-->
- <!-- <when test="timeType == 'week'">-->
- <!-- CONCAT(YEAR(admitdate), '-W', LPAD(WEEK(admitdate, 1), 2, '0'))-->
- <!-- </when>-->
- <!-- <otherwise>-->
- <!-- DATE_FORMAT(admitdate, '%Y-%m-%d')-->
- <!-- </otherwise>-->
- <!-- </choose>-->
) AS combined_data
GROUP BY timePeriod
ORDER BY timePeriod DESC
@@ -2134,6 +2113,14 @@
#{leaveldeptcode}
</foreach>
</if>
+ </if>
+ <if test="visitCount != null and visitCount > 1 and visitDeptCodes != null and visitDeptCodes.size() > 0">
+ AND visit_dept_code IN
+ <foreach collection="visitDeptCodes" item="visitDeptCodes" open="("
+ separator=","
+ close=")">
+ #{visitDeptCodes}
+ </foreach>
</if>
<if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">
AND leavehospitaldistrictname = #{leavehospitaldistrictname}
@@ -2257,6 +2244,34 @@
</if>
</select>
+
+ <select id="selectVisitCount" parameterType="com.smartor.domain.PatMedReq"
+ resultType="com.smartor.domain.PatMedRes">
+ select
+ 0 AS rc,
+ count(1) AS rs
+ FROM
+ service_subtask
+ where 1=1
+ and del_flag = 0
+ and service_type=3
+ <if test="orgid != null">
+ and orgid = #{orgid}
+ </if>
+ <if test="startDate != null">
+ AND date_format( visit_time, '%y%m%d' ) >= date_format( #{startDate}, '%y%m%d' )
+ </if>
+ <if test="endDate != null">
+ AND date_format( visit_time, '%y%m%d' ) <= date_format(#{endDate},'%y%m%d')
+ </if>
+ <if test="deptcodeList != null and deptcodeList.size()>0">
+ and deptcode in
+ <foreach collection="deptcodeList" item="deptcode" open="(" separator="," close=")">
+ #{deptcode}
+ </foreach>
+ </if>
+ </select>
+
<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,
--
Gitblit v1.9.3