344 门诊预约挂号:未过滤过期号源,允许预约已过时的时间段
This commit is contained in:
@@ -358,14 +358,22 @@
|
||||
p.doctor_id AS doctorId,
|
||||
p.doctor_name AS doctorName,
|
||||
p.schedule_date AS scheduleDate,
|
||||
COALESCE(
|
||||
SUM(
|
||||
GREATEST(
|
||||
COALESCE(p.total_quota, 0) - COALESCE(p.booked_num, 0) - COALESCE(p.locked_num, 0),
|
||||
0
|
||||
<!-- 直接 COUNT 未预约的号源,前端已经做了时间过滤,这里只按日期统计 -->
|
||||
COUNT(
|
||||
CASE
|
||||
WHEN s.delete_flag = '0'
|
||||
AND <include refid="slotStatusNormExpr" /> = 0
|
||||
<!-- 使用前端传来的当前时间戳过滤过期号源,保证和前端完全一致 -->
|
||||
AND (
|
||||
p.schedule_date > CURRENT_DATE
|
||||
OR (
|
||||
p.schedule_date = CURRENT_DATE
|
||||
AND CAST(p.schedule_date AS TIMESTAMP) + CAST(s.expect_time AS TIME) > TO_TIMESTAMP(#{query.currentTime}/1000)
|
||||
)
|
||||
)
|
||||
),
|
||||
0
|
||||
THEN s.id
|
||||
ELSE NULL
|
||||
END
|
||||
) AS available,
|
||||
COUNT(DISTINCT p.id) AS poolCount,
|
||||
CASE
|
||||
@@ -380,10 +388,12 @@
|
||||
FROM
|
||||
adm_schedule_pool p
|
||||
LEFT JOIN adm_doctor_schedule d ON p.schedule_id = d.id
|
||||
LEFT JOIN adm_organization org ON p.dept_id = org.id
|
||||
AND org.delete_flag = '0'
|
||||
LEFT JOIN adm_organization org ON p.dept_id = org.id AND org.delete_flag = '0'
|
||||
LEFT JOIN adm_schedule_slot s ON s.pool_id = p.id AND s.delete_flag = '0'
|
||||
<where>
|
||||
p.delete_flag = '0'
|
||||
<!-- 排除医生已停诊的号源 -->
|
||||
AND (d.is_stopped IS NULL OR d.is_stopped = FALSE)
|
||||
<!-- 过滤未来号源:只统计当前日期及未来日期的号源 -->
|
||||
<if test="query.date != null and query.date != ''">
|
||||
AND p.schedule_date = CAST(#{query.date} AS DATE)
|
||||
|
||||
Reference in New Issue
Block a user