From 55f5271f893a25a7be671b24938e49976936a67b Mon Sep 17 00:00:00 2001 From: liusheng <337615773@qq.com> Date: 星期一, 29 九月 2025 18:30:00 +0800 Subject: [PATCH] 新增Orgid --- smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 248 ++++++++++++++++++++++++++++++++++++------------- 1 files changed, 183 insertions(+), 65 deletions(-) diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml index 826effa..cd63052 100644 --- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml +++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml @@ -84,6 +84,7 @@ <result property="visitDeptCode" column="visit_dept_code"/> <result property="managementDoctor" column="management_doctor"/> <result property="managementDoctorCode" column="management_doctor_code"/> + <result property="currentPreachform" column="current_preachform"/> </resultMap> <resultMap type="com.smartor.domain.ServiceSubtaskCount" id="ServiceSubtaskResult2"> @@ -92,6 +93,8 @@ <result property="subTaskId" column="subTaskId"/> <result property="joyCount" column="joyCount"/> <result property="joyAllCount" column="joyAllCount"/> + <result property="joyTotal" column="joyTotal"/> + <result property="joyName" column="joyName"/> </resultMap> @@ -102,6 +105,7 @@ patfrom, management_doctor, management_doctor_code, + current_preachform, upid, visit_dept_name, visit_dept_code, @@ -182,6 +186,36 @@ management_doctor_code from service_subtask </sql> + + <select id="selectServiceSubtaskBySendstate" parameterType="com.smartor.domain.ServiceSubtaskVO" + resultMap="ServiceSubtaskResult"> + + <include refid="selectServiceSubtaskVo"/> + <where> + del_flag=0 + and taskid = #{taskid} + AND sendstate IN + <foreach collection="sendstates" item="sendstate" open="(" separator="," + close=")"> + #{sendstate} + </foreach> + </where> + </select> + + <select id="queryServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO" + resultMap="ServiceSubtaskResult"> + <include refid="selectServiceSubtaskVo"/> + <where> + del_flag=0 + <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> + </where> + + </select> + <select id="selectServiceSubtaskList" parameterType="com.smartor.domain.ServiceSubtaskVO" resultMap="ServiceSubtaskResult"> @@ -273,6 +307,9 @@ </if> </if> + <if test="visitTime != null"> + AND date_format(visit_time,'%y%m%d') = date_format(#{visitTime},'%y%m%d') + </if> <if test="senddate != null ">and senddate = #{senddate}</if> <if test="senduuid != null and senduuid != ''">and senduuid = #{senduuid}</if> <if test="result != null and result != ''">and result = #{result}</if> @@ -288,6 +325,7 @@ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if> <if test="pid != null ">and pid = #{pid}</if> <if test="preachform != null ">and preachform = #{preachform}</if> + <if test="currentPreachform != null ">and current_preachform = #{currentPreachform}</if> <if test="guid != null and guid != ''">and guid = #{guid}</if> <if test="textParam != null and textParam != ''">and text_param = #{textParam}</if> <if test="bedNo != null">and bed_no = #{bedNo}</if> @@ -322,7 +360,7 @@ <if test="createBy != null">and create_by = #{createBy}</if> <if test="taskGuid != null">and task_guid = #{taskGuid}</if> <if test="isVisitAgain != null">and is_visit_again = #{isVisitAgain}</if> - <if test="visitTime != null">and visit_time = #{visitTime}</if> + <!-- <if test="visitTime != null">and visit_time = #{visitTime}</if> --> <!--<if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if>--> <if test="visitCount != null and visitCount > 1 and visitDeptCodes != null and visitDeptCodes.size() > 0"> @@ -365,6 +403,7 @@ <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if> <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if> <if test="managementDoctor != null">and management_doctor = #{managementDoctor}</if> + <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if> </where> </select> @@ -419,6 +458,7 @@ <if test="visitTime != null ">and visit_time = #{visitTime}</if> <if test="visitDeptCode != null">and visit_dept_code = #{visitDeptCode}</if> <if test="visitDeptName != null">and visit_dept_name = #{visitDeptName}</if> + <if test="currentPreachform != null">and current_preachform = #{currentPreachform}</if> <if test="managementDoctorCode != null">and management_doctor_code = #{managementDoctorCode}</if> <if test="managementDoctor != null">and management_doctor like concat('%',#{managementDoctor}, '%')</if> </where> @@ -583,6 +623,7 @@ <if test="visitDeptName != null">visit_dept_name,</if> <if test="managementDoctorCode != null">management_doctor_code,</if> <if test="managementDoctor != null">management_doctor,</if> + <if test="currentPreachform != null">current_preachform,</if> </trim> <trim prefix="values (" suffix=")" suffixOverrides=","> <if test="sendname != null">#{sendname},</if> @@ -666,6 +707,7 @@ <if test="visitDeptName != null">#{visitDeptName},</if> <if test="managementDoctorCode != null">#{managementDoctorCode},</if> <if test="managementDoctor != null">#{managementDoctor},</if> + <if test="currentPreachform != null">#{currentPreachform},</if> </trim> </insert> @@ -754,6 +796,7 @@ <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> + <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> </trim> where id = #{id} </update> @@ -843,6 +886,7 @@ <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> + <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> </trim> <where> <if test="patid != null ">and patid = #{patid}</if> @@ -934,6 +978,7 @@ <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> + <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> </trim> where patid = #{patid} and taskid = #{taskid} </update> @@ -1022,6 +1067,7 @@ <if test="visitDeptName != null">visit_dept_name = #{visitDeptName},</if> <if test="managementDoctorCode != null">management_doctor_code = #{managementDoctorCode},</if> <if test="managementDoctor != null">management_doctor=#{managementDoctor},</if> + <if test="currentPreachform != null">current_preachform=#{currentPreachform},</if> </trim> where task_guid = #{taskGuid} and task_name = #{taskName} </update> @@ -1119,6 +1165,77 @@ GROUP BY sub_id </select> + <select id="getSfStatisticsJoydetails" parameterType="com.smartor.domain.ServiceSubtaskCountReq" + resultMap="ServiceSubtaskResult2"> + SELECT joyName,joyCount,joyAllCount,ROUND(joyCount/joyAllCount,2) joyTotal FROM ( + SELECT targetname joyName, + (select COUNT(sub_id) FROM service_subtask_detail WHERE sub_id IN(SELECT id FROM service_subtask t + <where> + del_flag=0 + <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0"> + AND leavehospitaldistrictcode IN + <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," + close=")"> + #{leavehospitaldistrictcode} + </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="serviceType != null and serviceType.size() > 0"> + AND service_type IN + <foreach collection="serviceType" 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> + </where> + ) AND targetid=a.id) joyCount , (SELECT COUNT(*) from (select sub_id FROM service_subtask_detail + WHERE sub_id IN(SELECT id FROM service_subtask t + <where> + del_flag=0 + <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">AND + leavehospitaldistrictcode IN + <foreach + collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator="," + close=")"> + #{leavehospitaldistrictcode} + </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="serviceType != null and serviceType.size() > 0"> + AND service_type IN + <foreach collection="serviceType" 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> + </where> + GROUP BY sub_id ) ) ta ) joyAllCount + FROM ivr_liba_target a + WHERE assortid IN (SELECT config_value FROM sys_config WHERE config_key= + 'joyCount') + )a1 + </select> + <select id="getDataByTime" resultMap="ServiceSubtaskResult"> select id, @@ -1131,6 +1248,7 @@ openid, sfzh, addr, + current_preachform, senderdetail, type, taskid, @@ -1269,16 +1387,16 @@ DATE_FORMAT(visit_time, '%Y-%m-%d') AS timePeriod, </otherwise> </choose> - COUNT(CASE WHEN service_type = '2' THEN 1 END) AS dischargeFollowCount, - COUNT(CASE WHEN service_type = '3' THEN 1 END) AS outpatientFollowCount, + CASE WHEN service_type = '2' THEN 1 END AS dischargeFollowCount, + CASE WHEN service_type = '3' THEN 1 END AS outpatientFollowCount, 0 AS pmiCount, 0 AS pmoCount FROM service_subtask WHERE del_flag = '0' <if test="startDate != null and endDate != null"> - and date_format(visit_time,'%y%m%d') >= date_format(#{startDate},'%y%m%d') - and date_format(visit_time,'%y%m%d') <= date_format(#{endDate},'%y%m%d') + AND visit_time >= #{startDate} + AND visit_time <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) </if> <if test="orgid != null"> @@ -1306,24 +1424,24 @@ </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> +<!-- 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 @@ -1348,13 +1466,13 @@ </choose> 0 AS dischargeFollowCount, 0 AS outpatientFollowCount, - COUNT( patid) AS pmiCount, + 1 AS pmiCount, 0 AS pmoCount FROM pat_med_inhosp WHERE del_flag = '0' <if test="startDate != null and endDate != null"> - and date_format(endtime,'%y%m%d') >= date_format(#{startDate},'%y%m%d') - and date_format(endtime,'%y%m%d') <= date_format(#{endDate},'%y%m%d') + AND endtime >= #{startDate} + AND endtime <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) </if> AND inhospstate=1 @@ -1376,24 +1494,24 @@ </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> +<!-- 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 @@ -1419,12 +1537,12 @@ 0 AS dischargeFollowCount, 0 AS outpatientFollowCount, 0 AS pmiCount, - COUNT( patid) AS pmoCount + 1 AS pmoCount FROM pat_med_outhosp WHERE del_flag = '0' <if test="startDate != null and endDate != null"> - and date_format(admitdate,'%y%m%d') >= date_format(#{startDate},'%y%m%d') - and date_format(admitdate,'%y%m%d') <= date_format(#{endDate},'%y%m%d') + AND admitdate >= #{startDate} + AND admitdate <= DATE_ADD(#{endDate}, INTERVAL 1 DAY) </if> <if test="orgid != null"> AND orgid = #{orgid} @@ -1437,24 +1555,24 @@ </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> +<!-- 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 -- Gitblit v1.9.3