From 732024c03df1d810b8f5a8a526066967f1bfbb5d Mon Sep 17 00:00:00 2001
From: liusheng <337615773@qq.com>
Date: 星期五, 26 六月 2026 17:53:27 +0800
Subject: [PATCH] 南华部分功能提交
---
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 86 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 83 insertions(+), 3 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 57723af..746a630 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -52,6 +52,7 @@
<result property="wechat" column="wechat"/>
<result property="leaveicd10code" column="leaveicd10code"/>
<result property="leavediagname" column="leavediagname"/>
+ <result property="diagname" column="diagname"/>
<result property="deptname" column="deptname"/>
<result property="admindate" column="admindate"/>
<result property="roomno" column="roomno"/>
@@ -122,6 +123,9 @@
</resultMap>
<resultMap type="com.smartor.domain.ServiceSubtaskStatistic" id="ServiceSubtaskStatisticResult">
+ <result property="taskName" column="task_name"/>
+ <result property="drcode" column="drcode"/>
+ <result property="drname" column="drname"/>
<result property="dischargeCount" column="discharge_count"/>
<result property="nonFollowUp" column="non_follow_up"/>
<result property="filterCount" column="filter_count"/>
@@ -144,6 +148,7 @@
select id,
hosp_type,
task_guid,
+ diagname,
patfrom,
management_doctor,
management_doctor_code,
@@ -266,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>
@@ -324,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绛涢�� -->
@@ -540,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>
@@ -1479,6 +1536,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>
@@ -1508,7 +1569,13 @@
<select id="getSpecialSfStatistics" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
resultMap="ServiceSubtaskStatisticResult">
select
- a.task_name,
+ <if test="groupKey != null and groupKey == 'task_name'">
+ a.task_name,
+ </if>
+ <if test="groupKey != null and groupKey == 'drcode'">
+ b.drcode,
+ b.drname,
+ </if>
COUNT(1) AS discharge_count,
SUM(CASE WHEN b.sendstate = 4 THEN 1 ELSE 0 END) AS non_follow_up,
SUM(CASE WHEN b.sendstate = 4 and b.task_situation = 6 THEN 1 ELSE 0 END) AS filter_count,
@@ -1607,7 +1674,12 @@
<if test="visitCount != null and visitCount > 1">
AND b.visit_count > 1
</if>
- GROUP BY a.task_name
+ <if test="groupKey != null and groupKey == 'task_name'">
+ GROUP BY a.task_name
+ </if>
+ <if test="groupKey != null and groupKey == 'drcode'">
+ GROUP BY b.drcode, b.drname
+ </if>
</select>
<select id="getSfStatisticsGroupKey" parameterType="com.smartor.domain.ServiceSubtaskCountReq"
@@ -1646,6 +1718,10 @@
<if test="startTime != null and endTime!=null">
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>
@@ -1795,6 +1871,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>
@@ -2416,8 +2493,11 @@
SUM(CASE WHEN sendstate != 4 AND sendstate != 2 THEN 1 ELSE 0 END) AS ysf,
SUM(CASE WHEN sendstate = 5 THEN 1 ELSE 0 END) AS fssb,
SUM(CASE WHEN sendstate >= 3 OR sendstate = 1 THEN 1 ELSE 0 END) AS yfs,
- SUM(CASE WHEN sendstate = 2 THEN 1 ELSE 0 END) AS dsf,
SUM(CASE WHEN sendstate = 1 THEN 1 ELSE 0 END) AS blq,
+ SUM(CASE WHEN sendstate = 4 THEN 1 ELSE 0 END) AS wxsf,
+ SUM(CASE WHEN sendstate != 4 THEN 1 ELSE 0 END) AS xsf,
+ SUM(CASE WHEN (sendstate = 1 OR sendstate = 2 OR sendstate = 3 OR sendstate = 5 OR sendstate = 7 ) THEN 1 ELSE 0 END) AS dsf,
+ SUM(CASE WHEN sendstate = 6 THEN 1 ELSE 0 END) AS ywc,
SUM(CASE WHEN excep IS NOT NULL AND excep = '1' THEN 1 ELSE 0 END) AS yc,
SUM(CASE WHEN excep IS NOT NULL AND excep = '2' THEN 1 ELSE 0 END) AS jg,
COUNT(1) as total
--
Gitblit v1.9.3