From 1e1814178edf84090b28492bbad340ab13e5c169 Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期二, 22 七月 2025 18:16:34 +0800 Subject: [PATCH] 代码提交 --- smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 69 ++++++++++++++++++++++++++++++++-- 1 files changed, 65 insertions(+), 4 deletions(-) diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml index 98673e3..b043a6b 100644 --- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml @@ -170,6 +170,7 @@ leavehospitaldistrictname, leavediagname, leaveicd10code, + orgid, visit_type from service_subtask </sql> @@ -186,6 +187,9 @@ </if> <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">and leavehospitaldistrictname = #{leavehospitaldistrictname} + </if> + <if test="leavediagname != null and leavediagname != ''">and leavediagname like concat('%', + #{leavediagname}, '%') </if> <if test="sex != null and sex != ''">and sex = #{sex}</if> <if test="age != null ">and age = #{age}</if> @@ -409,6 +413,63 @@ JOIN service_subtask b on a.taskid = b.taskid and a.pat_cycle = 0 and b.del_flag = 0 where b.taskid = #{taskid} and b.patid = #{patid} + </select> + + <select id="selectTimelyRate" parameterType="com.smartor.domain.ServiceSubtask" resultType="double"> + SELECT sum( a.finished )/ sum( 1 ) FROM + (SELECT id, visit_time, finishtime, + (CASE WHEN ( DATE_FORMAT( visit_time, '%y%m%d' )< DATE_FORMAT( IF ( ISNULL( finishtime ), NOW(), finishtime + ), '%y%m%d' ) ) + THEN 1 ELSE 0 END ) finished,1 AS tasknumber FROM service_subtask + WHERE del_flag=0 + <if test="starttime == null and endtime==null"> + AND visit_time < NOW() + </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> + <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if> + <if test="deptcode != null and deptcode != ''">and deptcode = #{deptcode}</if> + <if test="deptname != null and deptname != ''">and deptname = #{deptname}</if> + <if test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">and + leavehospitaldistrictcode = #{leavehospitaldistrictcode} + </if> + <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">and + leavehospitaldistrictname = #{leavehospitaldistrictname} + </if> + ) a + </select> + + <select id="selectTimelyRateDetail" parameterType="com.smartor.domain.ServiceSubtask" + resultMap="ServiceSubtaskResult"> + <include refid="selectServiceSubtaskVo"/> + <where> + id in ( + SELECT id FROM + (SELECT id, visit_time, finishtime, + (CASE WHEN ( DATE_FORMAT( visit_time, '%y%m%d' ) < DATE_FORMAT( IF ( ISNULL( finishtime ), NOW(), + finishtime + ), '%y%m%d' ) ) + THEN 1 ELSE 0 END ) finished,1 AS tasknumber FROM service_subtask + WHERE del_flag=0 + -- AND visit_time < NOW() + <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> + <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if> + <if test="deptcode != null and deptcode != ''">and deptcode = #{deptcode}</if> + <if test="deptname != null and deptname != ''">and deptname = #{deptname}</if> + <if test="leavehospitaldistrictcode != null and leavehospitaldistrictcode != ''">and + leavehospitaldistrictcode = #{leavehospitaldistrictcode} + </if> + <if test="leavehospitaldistrictname != null and leavehospitaldistrictname != ''">and + leavehospitaldistrictname = #{leavehospitaldistrictname} + </if> + + ) a where a.finished =1) + </where> </select> <select id="selectServiceSubtaskById" parameterType="Long" resultMap="ServiceSubtaskResult"> @@ -962,10 +1023,10 @@ </foreach> </if> <if test="deptcodes != null and deptcodes.size() > 0"> - AND leavehospitaldistrictcode IN + AND deptcode IN <foreach collection="deptcodes" item="deptcode" open="(" separator="," close=")"> - #{leavehospitaldistrictcode} + #{deptcode} </foreach> </if> <if test="serviceType != null and serviceType.size() > 0"> @@ -976,8 +1037,8 @@ </foreach> </if> <if test="startTime != null and endTime!=null"> - AND endtime > #{startTime} - AND endtime <= #{endTime} + 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> <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> <if test="visitDeptName != null">abd visit_dept_name = #{visitDeptName}</if> -- Gitblit v1.9.3