| | |
| | | </if> |
| | | </select> |
| | | |
| | | <!-- |
| | | 当前登录人「待处理」随访任务,按出院年月(endtime)分组统计,出院随访 / 门诊随访分开计数。 |
| | | 口径(与随访列表「待随访」页签一致): |
| | | 1) 出院随访 service_type = '2',门诊随访 service_type = '3' |
| | | 2) 待随访(未完成)→ sendstate IN (1,2,3,5,7),排除 4 不执行 / 6 完成 |
| | | 3) 出院满 7 天 → endtime < (今天 - 7 天) + 1 天, |
| | | 即「7 天前那一天」出院的也计入(用 <= DATE_SUB(...) 只会截到当天 0 点,会漏掉 9 条) |
| | | 4) 只看最近 4 个出院月份(含当月)→ endtime >= 当月往前推 3 个月的 1 号 |
| | | 5) 科室/病区权限用 OR(与列表 deptOrDistrict=2 一致): |
| | | 只有病区权限的用户,任务 leaveldeptcode 与本人科室对不上时也能量到, |
| | | 否则会把整月数据过滤成 0。 |
| | | 说明:GROUP BY 只产出有数据的月份,前端按「当月 + 前 3 个月」补齐,没数据就显示 0 个。 |
| | | 不再限制 current_preachform(人工):该字段只是执行方式, |
| | | 待随访任务里还有短信等方式,限定 '1' 会漏数。 |
| | | --> |
| | | <select id="countPendingManualTaskByMonth" |
| | | parameterType="com.ruoyi.task.domain.entity.ServiceSubtaskEntity" |
| | | resultType="java.util.Map"> |
| | | SELECT DATE_FORMAT(endtime, '%Y-%m') AS month, |
| | | SUM(CASE WHEN service_type = '2' THEN 1 ELSE 0 END) AS dischargeCnt, |
| | | SUM(CASE WHEN service_type = '3' THEN 1 ELSE 0 END) AS outpatientCnt |
| | | FROM service_subtask |
| | | WHERE del_flag = '0' |
| | | AND service_type IN ('2', '3') |
| | | AND sendstate IN (1, 2, 3, 5, 7) |
| | | AND endtime IS NOT NULL |
| | | AND endtime < DATE_ADD(DATE_SUB(CURDATE(), INTERVAL 7 DAY), INTERVAL 1 DAY) |
| | | AND endtime >= DATE_FORMAT(DATE_SUB(CURDATE(), INTERVAL 3 MONTH), '%Y-%m-01') |
| | | <if test="orgid != null and orgid != ''"> |
| | | AND orgid = #{orgid} |
| | | </if> |
| | | <if test="campusid != null and campusid != ''"> |
| | | AND campusid = #{campusid} |
| | | </if> |
| | | <!-- 离院科室/病区:有科室按科室、有病区按病区,两者都有时取 OR --> |
| | | <include refid="filterLeaveDimOr"/> |
| | | GROUP BY DATE_FORMAT(endtime, '%Y-%m') |
| | | ORDER BY month |
| | | </select> |
| | | |
| | | <select id="getCurrentUserServiceSubtaskCount" parameterType="com.ruoyi.task.domain.entity.ServiceSubtaskEntity" |
| | | resultType="map"> |
| | | SELECT |