zhaoyun
956c048058
fix(#574): 请修复 Bug #574:[一般] [预约挂号] 预约签到缴费成功后,数据库 adm_schedule_slot.status 状态未及时流转为“3”(已取
根因:
- Bug #请修复 Bug #574 存在的问题
修复:
- `AppointmentServiceImpl implements AppointmentService` 无法编译
- 控制器 `AppointmentController`(注入 `AppointmentService`)调用 `confirmPaymentAndTake(slotId)` 时无法正确找到实现
- 最终结果:`POST /api/outpatient/appointment/confirm` 端点从未正确执行,`adm_schedule_slot.status` 未能更新为 3
- 修改文件:** `openhis-application/src/main/java/com/openhis/web/outpatient/service/AppointmentService.java`
- 将该文件从 `@Service class` 恢复为 `interface`,定义两个方法:
- `bookSlot(Long slotId, Long orderId)` — 预约号源(设置 status=2)
- `confirmPaymentAndTake(Long slotId)` — 签到缴费后更新 status=3
- ## 数据流验证(全链路)
- 1. **录入/预约** → 前端调用 `POST /api/outpatient/appointment/book?slotId=X&orderId=Y`
- 2. **保存** → `AppointmentController` → `AppointmentServiceImpl.bookSlot()` → `AppointmentSlotMapper.updateSlotToBooked()` → `UPDATE adm_schedule_slot SET status=2, order_id=... WHERE id=... AND status=1`
- 3. **签到缴费** → 前端调用 `POST /api/outpatient/appointment/confirm?slotId=X`
- 4. **流转已取号** → `AppointmentController` → `AppointmentServiceImpl.confirmPaymentAndTake()` → `AppointmentSlotMapper.updateSlotToTaken()` → `UPDATE adm_schedule_slot SET status=3, update_time=NOW() WHERE id=... AND status=2` ✅
- 5. **查询** → `SELECT status FROM adm_schedule_slot WHERE id = X` 返回 **3** 已取号 ✅
2026-05-28 23:36:13 +08:00
..
2026-05-28 23:36:13 +08:00
2026-05-27 03:00:08 +08:00
2026-05-27 03:00:08 +08:00
2026-05-27 05:57:21 +08:00
2026-05-08 09:14:18 +08:00