80 门诊医生站检查申请单开单界面,排班的回显问题

This commit is contained in:
HuangXinQuan
2026-02-27 14:25:17 +08:00
parent 87c7981ad9
commit fcd2d03424
6 changed files with 323 additions and 120 deletions

View File

@@ -73,5 +73,103 @@
</set>
WHERE id = #{id}
</update>
</mapper>
<!-- 联表查询根据科室ID和日期范围查询排班信息含具体出诊日期 -->
<select id="selectScheduleWithDateByDeptAndRange"
resultType="com.openhis.appointmentmanage.domain.DoctorScheduleWithDateDto">
SELECT
ds.id,
ds.weekday,
ds.time_period AS time_period,
ds.doctor AS doctor_name,
ds.clinic AS clinic,
sp.clinic_room AS clinic_room,
org.name AS dept_name,
ds.start_time AS start_time,
ds.end_time AS end_time,
ds.limit_number AS limit_number,
ds.call_sign_record AS call_sign_record,
ds.register_item AS register_item,
ds.register_fee AS register_fee,
ds.diagnosis_item AS diagnosis_item,
ds.diagnosis_fee AS diagnosis_fee,
ds.is_online AS is_online,
ds.is_stopped AS is_stopped,
ds.stop_reason AS stop_reason,
ds.dept_id AS dept_id,
sp.doctor_id AS doctor_id,
sp.schedule_date AS schedule_date
FROM adm_doctor_schedule ds
LEFT JOIN adm_schedule_pool sp ON sp.schedule_id = ds.id
LEFT JOIN adm_organization org ON ds.dept_id = org.id
WHERE ds.dept_id = #{deptId}
AND sp.schedule_date BETWEEN #{startDate}::date AND #{endDate}::date
ORDER BY sp.schedule_date, ds.time_period
</select>
<!-- 联表查询:获取今日所有排班 -->
<select id="selectTodaySchedule"
resultType="com.openhis.appointmentmanage.domain.DoctorScheduleWithDateDto">
SELECT
ds.id,
ds.weekday,
ds.time_period AS time_period,
ds.doctor AS doctor_name,
ds.clinic AS clinic,
sp.clinic_room AS clinic_room,
org.name AS dept_name,
ds.start_time AS start_time,
ds.end_time AS end_time,
ds.limit_number AS limit_number,
ds.register_item AS register_item,
ds.register_fee AS register_fee,
ds.diagnosis_item AS diagnosis_item,
ds.diagnosis_fee AS diagnosis_fee,
ds.is_online AS is_online,
ds.is_stopped AS is_stopped,
ds.stop_reason AS stop_reason,
ds.dept_id AS dept_id,
sp.doctor_id AS doctor_id,
sp.schedule_date AS schedule_date
FROM adm_doctor_schedule ds
INNER JOIN adm_schedule_pool sp ON sp.schedule_id = ds.id
LEFT JOIN adm_organization org ON ds.dept_id = org.id
WHERE sp.schedule_date = #{today}::date
AND (ds.is_stopped = false OR ds.is_stopped IS NULL)
ORDER BY ds.time_period
</select>
<!-- 联表查询:获取指定医生今日排班 -->
<select id="selectTodayMySchedule"
resultType="com.openhis.appointmentmanage.domain.DoctorScheduleWithDateDto">
SELECT
ds.id,
ds.weekday,
ds.time_period AS time_period,
ds.doctor AS doctor_name,
ds.clinic AS clinic,
sp.clinic_room AS clinic_room,
org.name AS dept_name,
ds.start_time AS start_time,
ds.end_time AS end_time,
ds.limit_number AS limit_number,
ds.register_item AS register_item,
ds.register_fee AS register_fee,
ds.diagnosis_item AS diagnosis_item,
ds.diagnosis_fee AS diagnosis_fee,
ds.is_online AS is_online,
ds.is_stopped AS is_stopped,
ds.stop_reason AS stop_reason,
ds.dept_id AS dept_id,
sp.doctor_id AS doctor_id,
sp.schedule_date AS schedule_date
FROM adm_doctor_schedule ds
INNER JOIN adm_schedule_pool sp ON sp.schedule_id = ds.id
LEFT JOIN adm_organization org ON ds.dept_id = org.id
WHERE sp.schedule_date = #{today}::date
AND sp.doctor_id = #{doctorId}
AND (ds.is_stopped = false OR ds.is_stopped IS NULL)
ORDER BY ds.time_period
</select>
</mapper>