From 11657a03ac9a0eb7e292663cf8ad03545af52c2c Mon Sep 17 00:00:00 2001
From: 陈昶聿 <chychen@nbjetron.com>
Date: 星期一, 21 九月 2026 17:55:19 +0800
Subject: [PATCH] 【市一】市一打电话调整
---
smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml | 469 ++++++++++++++++++++++++++++++++++++++++++++++------------
1 files changed, 373 insertions(+), 96 deletions(-)
diff --git a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
index 2a087a5..4a23796 100644
--- a/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
+++ b/smartor/src/main/resources/mapper/smartor/ServiceSubtaskMapper.xml
@@ -213,7 +213,6 @@
create_time,
isupload,
upload_time,
- orgid,
pid,
guid,
text_param,
@@ -236,8 +235,6 @@
leaveicd10code,
orgid,
visit_type,
- management_doctor,
- management_doctor_code,
continue_flag,
continue_time_now,
continue_content,
@@ -257,9 +254,8 @@
<include refid="selectServiceSubtaskVo"/>
where 1=1
and del_flag = 0
- <if test="orgid != null and orgid != ''">
- and orgid = #{orgid}
- </if>
+ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
<if test="taskid != null ">and taskid = #{taskid}</if>
<if test="continueFlag != null ">and continue_flag = #{continueFlag}</if>
<if test="continueTimeNow != null ">and continue_time_now = #{continueTimeNow,jdbcType=TIMESTAMP}</if>
@@ -281,16 +277,11 @@
<include refid="selectServiceSubtaskVo"/>
where 1=1
and del_flag = 0
- <if test="orgid != null and orgid != ''">
- and orgid = #{orgid}
- </if>
- <if test="subId != null">
- AND id = #{subId}
- </if>
+ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</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="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>
@@ -582,15 +573,10 @@
<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="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</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>
@@ -600,9 +586,8 @@
<include refid="selectServiceSubtaskVo"/>
where del_flag = 0
and sendstate = 5
- <if test="orgid != null and orgid != ''">
- and orgid = #{orgid}
- </if>
+ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</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>
@@ -620,9 +605,8 @@
resultMap="ServiceSubtaskResult">
<include refid="selectServiceSubtaskVo"/>
where del_flag = 0
- <if test="orgid != null and orgid != ''">
- and orgid = #{orgid}
- </if>
+ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
<if test="createStartTime != null and createEndTime != null">and create_time BETWEEN #{createStartTime} AND
#{createEndTime}
</if>
@@ -669,7 +653,8 @@
<if test="labelstatus != null ">and labelstatus = #{labelstatus}</if>
<if test="isupload != null ">and isupload = #{isupload}</if>
<if test="uploadTime != null ">and upload_time = #{uploadTime}</if>
- <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
<if test="pid != null ">and pid = #{pid}</if>
<if test="preachform != null ">and preachform = #{preachform}</if>
<if test="guid != null and guid != ''">and guid = #{guid}</if>
@@ -717,9 +702,8 @@
DATE_FORMAT(b.create_time, '%Y-%m-%d') LIKE CONCAT(#{createTimeNew}, '%')
</if>
<if test="sendstate != null ">and b.sendstate = #{sendstate}</if>
- <if test="orgid != null and orgid != ''">
- and b.orgid = #{orgid}
- </if>
+ <if test="orgid != null and orgid != ''">and b.orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and b.campusid = #{campusid}</if>
</select>
<select id="selectTimelyRate" parameterType="com.smartor.domain.ServiceSubtask" resultType="double">
@@ -736,7 +720,8 @@
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="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
<if test="serviceType != null and serviceType != ''">and service_type = #{serviceType}</if>
<if test="serviceTypes != null and serviceTypes != ''">and service_type IN (#{serviceTypes})</if>
<if test="deptcode != null and deptcode != ''">and deptcode = #{deptcode}</if>
@@ -790,6 +775,7 @@
AND ss.visit_time < DATE_ADD(#{endtime}, INTERVAL 1 DAY)
</if>
<if test="orgid != null and orgid != ''">AND ss.orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and ss.campusid = #{campusid}</if>
<if test="deptcode != null and deptcode != ''">and ss.deptcode = #{deptcode}</if>
<if test="deptname != null and deptname != ''">and ss.deptname = #{deptname}</if>
<if test="isabnormal != null">and ss.isabnormal = #{isabnormal}</if>
@@ -843,6 +829,7 @@
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="campusid != null and campusid != ''">and campusid = #{campusid}</if>
<if test="serviceType != null and serviceType != ''">and service_type = #{serviceType}</if>
<if test="serviceTypes != null and serviceTypes != ''">and service_type IN (#{serviceTypes})</if>
<if test="isabnormal != null ">and isabnormal = #{isabnormal}</if>
@@ -873,7 +860,8 @@
<if test="sendname != null">and sendname like concat('%',#{sendname}, '%')</if>
<if test="taskName != null">and task_name like concat('%',#{taskName}, '%')</if>
<if test="sendstate != null">and sendstate = #{sendstate}</if>
- <if test="orgid != null">and orgid =#{orgid}</if>
+ <if test="orgid != null and orgid != ''">and orgid = #{orgid} </if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</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>
@@ -919,7 +907,8 @@
<if test="createTime != null">create_time,</if>
<if test="isupload != null">isupload,</if>
<if test="uploadTime != null">upload_time,</if>
- <if test="orgid != null">orgid,</if>
+ <if test="orgid != null and orgid != ''">orgid,</if>
+ <if test="campusid != null and campusid != ''">campusid,</if>
<if test="pid != null">pid,</if>
<if test="guid != null">guid,</if>
<if test="textParam != null">text_param,</if>
@@ -983,7 +972,6 @@
<if test="continueTimeNext != null ">continue_time_next,</if>
<if test="continueContent != null ">continue_content,</if>
<if test="operationItemId != null ">operation_item_id,</if>
- <if test="campusid != null">campusid,</if>
<if test="scheduleId != null ">schedule_id,</if>
<if test="scheduleDetailId != null ">schedule_detail_id,</if>
<if test="scheduleSeq != null ">schedule_seq,</if>
@@ -1016,7 +1004,8 @@
<if test="createTime != null">#{createTime},</if>
<if test="isupload != null">#{isupload},</if>
<if test="uploadTime != null">#{uploadTime},</if>
- <if test="orgid != null">#{orgid},</if>
+ <if test="orgid != null and orgid != ''">#{orgid},</if>
+ <if test="campusid != null and campusid != ''">#{campusid},</if>
<if test="pid != null">#{pid},</if>
<if test="guid != null">#{guid},</if>
<if test="textParam != null">#{textParam},</if>
@@ -1080,7 +1069,6 @@
<if test="continueTimeNext != null ">#{continueTimeNext,jdbcType=TIMESTAMP},</if>
<if test="continueContent != null ">#{continueContent},</if>
<if test="operationItemId != null ">#{operationItemId},</if>
- <if test="campusid != null">#{campusid},</if>
<if test="scheduleId != null ">#{scheduleId},</if>
<if test="scheduleDetailId != null ">#{scheduleDetailId},</if>
<if test="scheduleSeq != null ">#{scheduleSeq},</if>
@@ -1118,7 +1106,8 @@
<if test="createTime != null">create_time = #{createTime},</if>
<if test="isupload != null">isupload = #{isupload},</if>
<if test="uploadTime != null">upload_time = #{uploadTime},</if>
- <if test="orgid != null">orgid = #{orgid},</if>
+ <if test="orgid != null and orgid != ''">orgid = #{orgid},</if>
+ <if test="campusid != null and campusid != ''">campusid = #{campusid},</if>
<if test="pid != null">pid = #{pid},</if>
<if test="guid != null">guid = #{guid},</if>
<if test="textParam != null">text_param = #{textParam},</if>
@@ -1182,7 +1171,6 @@
<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>
- <if test="campusid != null">campusid=#{campusid},</if>
<if test="scheduleId != null ">schedule_id = #{scheduleId},</if>
<if test="scheduleDetailId != null ">schedule_detail_id = #{scheduleDetailId},</if>
<if test="scheduleSeq != null ">schedule_seq = #{scheduleSeq},</if>
@@ -1221,7 +1209,8 @@
<if test="createTime != null">create_time = #{createTime},</if>
<if test="isupload != null">isupload = #{isupload},</if>
<if test="uploadTime != null">upload_time = #{uploadTime},</if>
- <if test="orgid != null">orgid = #{orgid},</if>
+ <if test="orgid != null and orgid != ''">orgid = #{orgid},</if>
+ <if test="campusid != null and campusid != ''">campusid = #{campusid},</if>
<if test="pid != null">pid = #{pid},</if>
<if test="guid != null">guid = #{guid},</if>
<if test="textParam != null">text_param = #{textParam},</if>
@@ -1288,9 +1277,8 @@
where 1=1
<if test="patid != null ">and patid = #{patid}</if>
<if test="taskid != null ">and taskid = #{taskid}</if>
- <if test="orgid != null and orgid != ''">
- and orgid = #{orgid}
- </if>
+ <if test="orgid != null and orgid != ''">and orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and campusid = #{campusid}</if>
</update>
<update id="updateServiceSubtaskByCondition" parameterType="com.smartor.domain.ServiceSubtask">
@@ -1324,7 +1312,8 @@
<if test="createTime != null">create_time = #{createTime},</if>
<if test="isupload != null">isupload = #{isupload},</if>
<if test="uploadTime != null">upload_time = #{uploadTime},</if>
- <if test="orgid != null">orgid = #{orgid},</if>
+ <if test="orgid != null and orgid != ''">orgid = #{orgid},</if>
+ <if test="campusid != null and campusid != ''">campusid = #{campusid},</if>
<if test="pid != null">pid = #{pid},</if>
<if test="guid != null">guid = #{guid},</if>
<if test="visitCount != null">visit_count = #{visitCount},</if>
@@ -1397,6 +1386,9 @@
<if test="id != null ">
and id = #{id}
</if>
+ <if test="inhospid != null ">
+ and inhospid = #{inhospid}
+ </if>
</where>
</update>
@@ -1430,7 +1422,8 @@
<if test="createTime != null">create_time = #{createTime},</if>
<if test="isupload != null">isupload = #{isupload},</if>
<if test="uploadTime != null">upload_time = #{uploadTime},</if>
- <if test="orgid != null">orgid = #{orgid},</if>
+ <if test="orgid != null and orgid != ''">orgid = #{orgid},</if>
+ <if test="campusid != null and campusid != ''">campusid = #{campusid},</if>
<if test="pid != null">pid = #{pid},</if>
<if test="guid != null">guid = #{guid},</if>
<if test="textParam != null">text_param = #{textParam},</if>
@@ -1561,6 +1554,9 @@
<if test="orgid != null and orgid != ''">
and orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
+ </if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND leavehospitaldistrictcode IN
<foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -1649,12 +1645,9 @@
and a.del_flag = '0'
and b.del_flag = '0'
and a.appltype = '3'
- <if test="orgid != null and orgid != ''">
- and a.orgid = #{orgid}
- </if>
- <if test="taskId != null">
- and a.task_id = #{taskId}
- </if>
+ <if test="orgid != null and orgid != ''">and a.orgid = #{orgid}</if>
+ <if test="campusid != null and campusid != ''">and b.campusid = #{campusid}</if>
+ <if test="taskId != null">and a.task_id = #{taskId}</if>
<if test="taskName != null and taskName != ''">
and a.task_name like concat('%', #{taskName}, '%')
</if>
@@ -1743,6 +1736,9 @@
and 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="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND leavehospitaldistrictcode IN
@@ -1845,6 +1841,9 @@
<if test="orgid != null and orgid != ''">
and orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
+ </if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND leavehospitaldistrictcode IN
<foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -1940,6 +1939,9 @@
<if test="orgid != null and orgid != ''">
and orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
+ </if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND leavehospitaldistrictcode IN
<foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -1984,6 +1986,9 @@
<if test="orgid != null and orgid != ''">
and orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
+ </if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND leavehospitaldistrictcode IN
<foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -2015,6 +2020,9 @@
and 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="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">AND
leavehospitaldistrictcode IN
@@ -2070,6 +2078,9 @@
AND t.del_flag=0
<if test="orgid != null and orgid != ''">
and t.orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ and t.campusid = #{campusid}
</if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND t.leavehospitaldistrictcode IN
@@ -2154,6 +2165,9 @@
<if test="orgid != null and orgid != ''">
AND ss.orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ AND ss.campusid = #{campusid}
+ </if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND ss.leavehospitaldistrictcode IN
<foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="(" separator=","
@@ -2210,6 +2224,9 @@
and ss.del_flag=0
<if test="orgid != null and orgid != ''">
and ss.orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ and ss.campusid = #{campusid}
</if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND ss.leavehospitaldistrictcode IN
@@ -2368,8 +2385,11 @@
AND DATE_FORMAT(visit_time, '%Y-%m-%d') <= #{endDate}
AND service_type IN (2, 13)
AND del_flag = '0'
- <if test="orgid != null">
+ <if test="orgid != null and orgid != ''">
AND orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ AND campusid = #{campusid}
</if>
GROUP BY deptname
</select>
@@ -2415,10 +2435,12 @@
AND visit_time <= DATE_ADD(#{endDate}, INTERVAL 1 DAY)
</if>
- <if test="orgid != null">
+ <if test="orgid != null and orgid != ''">
AND orgid = #{orgid}
</if>
-
+ <if test="campusid != null and campusid != ''">
+ AND campusid = #{campusid}
+ </if>
<if test="deptcodes != null and deptcodes.size() > 0">
AND deptcode IN
<foreach collection="deptcodes" item="deptcode" open="(" separator="," close=")">
@@ -2472,10 +2494,12 @@
AND endtime <= DATE_ADD(#{endDate}, INTERVAL 1 DAY)
</if>
AND inhospstate=1
- <if test="orgid != null">
+ <if test="orgid != null and orgid != ''">
AND orgid = #{orgid}
</if>
-
+ <if test="campusid != null and campusid != ''">
+ AND campusid = #{campusid}
+ </if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND leavehospitaldistrictcode IN
<foreach collection="leavehospitaldistrictcodes" item="districtcode" open="(" separator="," close=")">
@@ -2522,9 +2546,11 @@
<!-- AND admitdate <= DATE_ADD(#{endDate}, INTERVAL 1 DAY)-->
<!-- </if>-->
<!-- <if test="orgid != null">-->
- <!-- AND orgid = #{orgid}-->
+ <!-- AND orgid = #{orgid}-->
<!-- </if>-->
-
+ <!-- <if test="campusid != null">-->
+ <!-- AND campusid = #{campusid}-->
+ <!-- </if>-->
<!-- <if test="deptcodes != null and deptcodes.size() > 0">-->
<!-- AND deptcode IN-->
<!-- <foreach collection="deptcodes" item="deptcode" open="(" separator="," close=")">-->
@@ -2561,6 +2587,12 @@
</if>
<if test="phone != null and phone != ''">
AND phone = #{phone}
+ </if>
+ <if test="finishtimeStart != null">
+ AND date_format(finishtime,'%y%m%d') >= date_format(#{finishtimeStart},'%y%m%d')
+ </if>
+ <if test="finishtimeEnd != null">
+ AND date_format(finishtime,'%y%m%d') <= date_format(#{finishtimeEnd},'%y%m%d')
</if>
<if test="deptOrDistrict==1">
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
@@ -2748,8 +2780,11 @@
where 1=1
and del_flag = 0
and service_type=3
- <if test="orgid != null">
- and orgid = #{orgid}
+ <if test="orgid != null and orgid != ''">
+ AND orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ AND campusid = #{campusid}
</if>
<if test="startDate != null">
AND date_format( visit_time, '%y%m%d' ) >= date_format( #{startDate}, '%y%m%d' )
@@ -2780,6 +2815,9 @@
AND visit_count = 1
<if test="orgid != null and orgid != ''">
AND orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
</if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND leavehospitaldistrictcode IN
@@ -2868,6 +2906,9 @@
<if test="orgid != null and orgid != ''">
AND orgid = #{orgid}
</if>
+ <if test="campusid != null and campusid != ''">
+ AND campusid = #{campusid}
+ </if>
<if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
AND leavehospitaldistrictcode IN
<foreach collection="leavehospitaldistrictcodes" item="code" open="(" separator="," close=")">
@@ -2893,6 +2934,9 @@
AND deptcode IS NOT NULL AND deptcode != ''
<if test="orgid != null and orgid != ''">
AND orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ AND campusid = #{campusid}
</if>
<if test="deptcodes != null and deptcodes.size() > 0">
AND deptcode IN
@@ -2925,6 +2969,9 @@
AND service_type = 4
<if test="orgid != null and orgid != ''">
and orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
</if>
<if test="sendstate != null">
AND sendstate = #{sendstate}
@@ -2967,6 +3014,117 @@
and loop_count = #{loopCount}
and (del_flag is null or del_flag = '0')
and sendstate in (1, 2, 3)
+ </select>
+
+ <select id="mydTrend" resultType="com.smartor.domain.DTO.MydTrendReqDTO">
+ SELECT CASE #{type}
+ WHEN 'year' THEN DATE_FORMAT(d.create_time, '%Y')
+ WHEN 'quarter' THEN CONCAT(YEAR(d.create_time), '-Q', QUARTER(d.create_time))
+ WHEN 'month' THEN DATE_FORMAT(d.create_time, '%Y-%m')
+ WHEN 'week' THEN FLOOR(DATEDIFF(d.create_time, #{startFinishTime}) / 7) + 1
+ ELSE DATE_FORMAT(d.create_time, '%Y-%m-%d')
+ END AS period,
+ ROUND(avg(d.score), 2) AS totalScore
+ FROM service_subtask_detail d
+ JOIN service_task t ON d.taskid = t.taskid
+ WHERE t.service_type IN (6, 14)
+ AND t.del_flag = 0
+ AND d.del_flag = 0
+ AND d.create_time >= #{startFinishTime}
+ AND d.create_time < DATE_ADD(#{endFinishTime}, INTERVAL 1 DAY)
+ GROUP BY period
+ ORDER BY period;
+ </select>
+
+ <select id="sltdMydTotalByDimension" resultType="com.smartor.domain.DTO.MydTrendReqDTO">
+ SELECT
+ p.period,
+ dim.dimension,
+ IFNULL(ROUND(SUM(d.score), 2), 0) AS totalScore
+ FROM (
+ <!-- 鐢熸垚鏌ヨ鑼冨洿鍐呭疄闄呭嚭鐜拌繃鐨勬椂闂存 -->
+ SELECT DISTINCT
+ CASE #{type}
+ WHEN 'year' THEN DATE_FORMAT(d.create_time, '%Y')
+ WHEN 'quarter' THEN CONCAT(YEAR(d.create_time), '-Q', QUARTER(d.create_time))
+ WHEN 'month' THEN DATE_FORMAT(d.create_time, '%Y-%m')
+ WHEN 'week' THEN FLOOR(DATEDIFF(d.create_time, #{startFinishTime}) / 7) + 1
+ ELSE DATE_FORMAT(d.create_time, '%Y-%m-%d')
+ END AS period
+ FROM service_subtask_detail d
+ WHERE d.del_flag = 0
+ AND d.create_time >= #{startFinishTime}
+ AND d.create_time < #{endFinishTime}
+ ) p
+ CROSS JOIN (
+ <!-- 鎵�鏈夐渶瑕佸睍绀虹殑 dimension -->
+ SELECT DISTINCT dimension
+ FROM service_subtask_detail
+ WHERE del_flag = 0
+ AND dimension IS NOT NULL
+ ) dim
+ LEFT JOIN service_task t
+ ON t.service_type IN (6, 14)
+ AND t.del_flag = 0
+ LEFT JOIN service_subtask_detail d
+ ON d.taskid = t.taskid
+ AND d.del_flag = 0
+ AND d.dimension = dim.dimension
+ AND CASE #{type}
+ WHEN 'year' THEN DATE_FORMAT(d.create_time, '%Y')
+ WHEN 'quarter' THEN CONCAT(YEAR(d.create_time), '-Q', QUARTER(d.create_time))
+ WHEN 'month' THEN DATE_FORMAT(d.create_time, '%Y-%m')
+ WHEN 'week' THEN FLOOR(DATEDIFF(d.create_time, #{startFinishTime}) / 7) + 1
+ ELSE DATE_FORMAT(d.create_time, '%Y-%m-%d')
+ END = p.period
+ AND d.create_time >= #{startFinishTime}
+ AND d.create_time < #{endFinishTime}
+ GROUP BY p.period, dim.dimension
+ ORDER BY p.period, dim.dimension
+ </select>
+
+ <select id="sltdMydTotalByYQ" resultType="com.smartor.domain.DTO.MydTrendReqDTO">
+ SELECT p.period,
+ c.campusid,
+ IFNULL(ROUND(AVG(d.score), 2), 0) AS totalScore
+ FROM (
+ -- 鐢熸垚鏌ヨ鑼冨洿鍐呭疄闄呭嚭鐜拌繃鐨勬椂闂存
+ SELECT DISTINCT CASE #{type}
+ WHEN 'year' THEN DATE_FORMAT(d.create_time, '%Y')
+ WHEN 'quarter' THEN CONCAT(YEAR(d.create_time), '-Q', QUARTER(d.create_time))
+ WHEN 'month' THEN DATE_FORMAT(d.create_time, '%Y-%m')
+ WHEN 'week' THEN FLOOR(DATEDIFF(d.create_time, #{startFinishTime}) / 7) + 1
+ ELSE DATE_FORMAT(d.create_time, '%Y-%m-%d')
+ END AS period
+ FROM service_subtask_detail d
+ WHERE d.del_flag = 0
+ AND d.create_time >= #{startFinishTime}
+ AND d.create_time < #{endFinishTime}) p
+ CROSS JOIN (
+ -- 鎵�鏈夐渶瑕佸睍绀虹殑闄㈠尯
+ SELECT DISTINCT campusid
+ FROM service_task
+ WHERE service_type IN (6, 14)
+ AND del_flag = 0
+ AND campusid IS NOT NULL) c
+ LEFT JOIN service_task t
+ ON t.campusid = c.campusid
+ AND t.service_type IN (6, 14)
+ AND t.del_flag = 0
+ LEFT JOIN service_subtask_detail d
+ ON d.taskid = t.taskid
+ AND d.del_flag = 0
+ AND CASE #{type}
+ WHEN 'year' THEN DATE_FORMAT(d.create_time, '%Y')
+ WHEN 'quarter' THEN CONCAT(YEAR(d.create_time), '-Q', QUARTER(d.create_time))
+ WHEN 'month' THEN DATE_FORMAT(d.create_time, '%Y-%m')
+ WHEN 'week' THEN FLOOR(DATEDIFF(d.create_time, #{startFinishTime}) / 7) + 1
+ ELSE DATE_FORMAT(d.create_time, '%Y-%m-%d')
+ END = p.period
+ AND d.create_time >= #{startFinishTime}
+ AND d.create_time < #{endFinishTime}
+ GROUP BY p.period, c.campusid
+ ORDER BY p.period, c.campusid;
</select>
<!-- 浠诲姟缁勶紙appltype=5锛夋粴鍔ㄨ皟搴︾敤锛氭媺鏈疆鍏ㄩ噺 subtask锛屼綔涓轰笅涓�杞殑鍏嬮殕妯℃澘 -->
@@ -3025,6 +3183,9 @@
AND service_type = 4
<if test="orgid != null and orgid != ''">
and orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ and campusid = #{campusid}
</if>
<if test="sendstate != null">
AND sendstate = #{sendstate}
@@ -3121,6 +3282,12 @@
<if test="endOutHospTime != null">
AND date_format(s.endtime,'%y%m%d') <= date_format(#{endOutHospTime},'%y%m%d')
</if>
+ <if test="startFinishTime != null">
+ AND date_format(s.finishtime,'%y%m%d') >= date_format(#{startFinishTime},'%y%m%d')
+ </if>
+ <if test="endFinishTime != null">
+ AND date_format(s.finishtime,'%y%m%d') <= date_format(#{endFinishTime},'%y%m%d')
+ </if>
GROUP BY
t.taskid,
d.questiontext,
@@ -3199,12 +3366,24 @@
<if test="endOutHospTime != null">
AND date_format(s.endtime,'%y%m%d') <= date_format(#{endOutHospTime},'%y%m%d')
</if>
+ <if test="startFinishTime != null">
+ AND date_format(s.finishtime,'%y%m%d') >= date_format(#{startFinishTime},'%y%m%d')
+ </if>
+ <if test="endFinishTime != null">
+ AND date_format(s.finishtime,'%y%m%d') <= date_format(#{endFinishTime},'%y%m%d')
+ </if>
GROUP BY
t.taskid,
d.questiontext,
d.score,
d.targetvalue,
- d.asrtext
+ d.asrtext,
+ t.task_name,
+ s.deptcode,
+ s.deptname,
+ s.leavehospitaldistrictcode,
+ s.leavehospitaldistrictname,
+ d.value_type
ORDER BY
d.questiontext,
t.taskid
@@ -3212,44 +3391,61 @@
<select id="statQuestionOptionByKsOrBq" resultType="com.smartor.domain.DTO.QuestionCountKsOrBqDTO"
parameterType="com.smartor.domain.VO.QuestionCountKsOrBqVO">
- SELECT questiontext,
- d.taskid,
- s.deptname,
- s.leavehospitaldistrictname,
- d.targetvalue,
- d.asrtext,
- COUNT(d.asrtext) AS answercount,
- SUM(d.score) AS singleScore
- FROM service_subtask_detail d,
- service_task s
- WHERE d.taskid = s.taskid
- AND deptname IS NOT NULL
- AND leavehospitaldistrictname IS NOT NULL
+ SELECT
+ s.deptname AS deptname,
+ s.leavehospitaldistrictname AS leavehospitaldistrictname,
+ d.questiontext AS questionText,
+ d.targetvalue AS targetvalue, -- 鎵�鏈夐�夐」鎷兼帴
+ d.asrtext AS asrtext, -- 鐢ㄦ埛瀹為檯閫変腑鐨勯�夐」
+ d.score AS singleScore -- 鍗曟潯璁板綍鐨勫垎鏁�
+ FROM service_subtask_detail d
+ JOIN service_subtask s ON d.sub_id = s.id
+ WHERE s.del_flag = 0
+ AND d.del_flag = 0
+ AND s.service_type IN ('6', '14')
+ <if test="taskTemplateid != null">
+ AND s.templateid = #{taskTemplateid}
+ </if>
<if test="endFinishTime != null">
- AND create_time < #{endFinishTime}
+ AND d.create_time < #{endFinishTime}
</if>
<if test="startFinishTime != null">
- AND create_time >= #{startFinishTime}
+ AND d.create_time >= #{startFinishTime}
</if>
- <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
- AND leavehospitaldistrictcode IN
- <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
- separator=","
- close=")">
- #{leavehospitaldistrictcode}
- </foreach>
+ <if test="deptOrDistrict ==1">
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+ AND leavehospitaldistrictcode IN
+ <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+ separator=","
+ close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+ AND deptcode IN
+ <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+ close=")">
+ #{leaveldeptcode}
+ </foreach>
+ </if>
</if>
- <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
- AND deptcode IN
- <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
- close=")">
- #{leaveldeptcode}
- </foreach>
+ <if test="deptOrDistrict ==2">
+ <if test="leavehospitaldistrictcodes != null and leavehospitaldistrictcodes.size() > 0">
+ AND leavehospitaldistrictcode IN
+ <foreach collection="leavehospitaldistrictcodes" item="leavehospitaldistrictcode" open="("
+ separator=","
+ close=")">
+ #{leavehospitaldistrictcode}
+ </foreach>
+ </if>
+ <if test=" leaveldeptcodes != null and leaveldeptcodes.size()>0">
+ OR deptcode IN
+ <foreach collection="leaveldeptcodes" item="leaveldeptcode" open="(" separator=","
+ close=")">
+ #{leaveldeptcode}
+ </foreach>
+ </if>
</if>
- GROUP BY d.questiontext,
- d.taskid,
- d.asrtext
- ORDER BY d.taskid
</select>
<select id="selectServiceSubtaskListDeadLine" parameterType="com.smartor.domain.entity.ServiceSubtaskEntity"
@@ -3261,5 +3457,86 @@
and endtime
</select>
+ <!-- 闂ㄨ瘖婊℃剰搴︾患鍚堝緱鍒嗘帓鍚嶏紙鎸夌瀹ゆ垨鐥呭尯锛� -->
+ <!-- 缁煎悎婊℃剰搴� = 危(璇勫垎鏄庣粏鏉冮噸) / 璇勫垎鏄庣粏鏉℃暟 脳 100%锛屾潈閲嶅彧鍙� 1銆�0.8銆�0.6銆�0.4銆�0.2 浜旀。 -->
+ <select id="selectMzMydScoreRank" parameterType="com.smartor.domain.VO.MzMydScoreRankVO"
+ resultType="com.smartor.domain.DTO.MzMydScoreRankDTO">
+ SELECT
+ t.code AS code,
+ t.name AS name,
+ ROUND(AVG(t.w) * 100, 2) AS score,
+ COUNT(*) AS itemCount
+ FROM (
+ SELECT
+ <choose>
+ <when test='dimensionType == "2"'>
+ s.leavehospitaldistrictcode AS code,
+ s.leavehospitaldistrictname AS name,
+ </when>
+ <otherwise>
+ s.deptcode AS code,
+ s.deptname AS name,
+ </otherwise>
+ </choose>
+ CAST(d.score AS DECIMAL(10,4)) AS w
+ FROM service_subtask s
+ INNER JOIN service_subtask_detail d ON d.sub_id = s.id
+ WHERE s.del_flag = '0'
+ AND d.del_flag = '0'
+ AND s.sendstate = 6
+ AND s.service_type = #{serviceType}
+<!-- <!– 鍙彇鍏紡閲岀殑浜旀。鏉冮噸锛岀┖鍊�/0/鏈瓟绛夋棦涓嶈繘鍒嗗瓙涔熶笉杩涘垎姣� –>-->
+<!-- AND CAST(d.score AS DECIMAL(10,4)) IN (1, 0.8, 0.6, 0.4, 0.2)-->
+ <!-- 鍚屼竴瀛愪换鍔″悓涓�棰樼洰鍙繚鐣欐渶鏂颁竴鏉★紝閬垮厤閲嶇瓟琚噸澶嶈鍏ラ」鏁� -->
+ AND d.id = (
+ SELECT MAX(d2.id)
+ FROM service_subtask_detail d2
+ WHERE d2.sub_id = d.sub_id
+ AND d2.questiontext <=> d.questiontext
+ AND d2.del_flag = '0'
+ )
+ <if test="orgid != null and orgid != ''">
+ AND s.orgid = #{orgid}
+ </if>
+ <if test="campusid != null and campusid != ''">
+ AND s.campusid = #{campusid}
+ </if>
+ <if test="startFinishTime != null">
+ AND s.finishtime >= #{startFinishTime}
+ </if>
+ <if test="endFinishTime != null">
+ AND s.finishtime < DATE_ADD(#{endFinishTime}, INTERVAL 1 DAY)
+ </if>
+ <choose>
+ <when test='dimensionType == "2"'>
+ AND s.leavehospitaldistrictcode IS NOT NULL AND s.leavehospitaldistrictcode <> ''
+ AND s.leavehospitaldistrictname IS NOT NULL AND s.leavehospitaldistrictname <> ''
+ <if test="districtCodes != null and districtCodes.size() > 0">
+ AND s.leavehospitaldistrictcode IN
+ <foreach collection="districtCodes" item="districtCode" open="(" separator="," close=")">
+ #{districtCode}
+ </foreach>
+ </if>
+ </when>
+ <otherwise>
+ AND s.deptcode IS NOT NULL AND s.deptcode <> ''
+ AND s.deptname IS NOT NULL AND s.deptname <> ''
+ <if test="deptCodes != null and deptCodes.size() > 0">
+ AND s.deptcode IN
+ <foreach collection="deptCodes" item="deptCode" open="(" separator="," close=")">
+ #{deptCode}
+ </foreach>
+ </if>
+ </otherwise>
+ </choose>
+ ) t
+ GROUP BY t.code, t.name
+ ORDER BY AVG(t.w) DESC, COUNT(*) DESC
+ <if test="limit != null and limit > 0">
+ LIMIT #{limit}
+ </if>
+ </select>
+
+
</mapper>
--
Gitblit v1.9.3