diff --git a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SlotStatus.java b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SlotStatus.java index 912165fa9..a168d952e 100644 --- a/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SlotStatus.java +++ b/openhis-server-new/openhis-common/src/main/java/com/openhis/common/enums/SlotStatus.java @@ -8,10 +8,10 @@ import lombok.Getter; * *
  * 状态流转:
- *   预约     → 0→2 (锁定), locked_num+1
- *   取消预约 → 2→0 (释放), locked_num-1
- *   签到     → 2→1 (已约), locked_num-1, booked_num+1
- *   退号     → 1→0 (释放), booked_num-1
+ *   预约     → 0→2 (锁定), locked_num+1, booked_num+1
+ *   取消预约 → 2→0 (释放), refreshPoolStats 重算
+ *   签到     → 2→3 (已签到), locked_num-1
+ *   退号     → →0 (释放), refreshPoolStats 重算
  *   停诊     → 任意→4 (已取消)
  * 
* diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/SchedulePoolMapper.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/SchedulePoolMapper.java index 199f0bd05..a6f7fcbb6 100755 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/SchedulePoolMapper.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/appointmentmanage/mapper/SchedulePoolMapper.java @@ -24,7 +24,7 @@ public interface SchedulePoolMapper extends BaseMapper { FROM adm_schedule_slot s WHERE s.pool_id = p.id AND s.delete_flag = '0' - AND (s.status = #{bookedStatus} OR s.status = 3) + AND s.status IN (#{bookedStatus}, #{lockedStatus}, 3) ), 0), locked_num = COALESCE(( SELECT COUNT(1) @@ -42,7 +42,7 @@ public interface SchedulePoolMapper extends BaseMapper { @Param("lockedStatus") Integer lockedStatus); /** - * 签到时更新号源池统计:锁定数-1,已约数+1 + * 签到时更新号源池统计:锁定数-1(booked_num 在预约时已累加) * * @param poolId 号源池ID * @return 结果 @@ -50,7 +50,6 @@ public interface SchedulePoolMapper extends BaseMapper { @Update(""" UPDATE adm_schedule_pool SET locked_num = locked_num - 1, - booked_num = booked_num + 1, update_time = NOW() WHERE id = #{poolId} AND locked_num > 0 diff --git a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/TicketServiceImpl.java b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/TicketServiceImpl.java index 4fc11196b..25e48f1cb 100755 --- a/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/TicketServiceImpl.java +++ b/openhis-server-new/openhis-domain/src/main/java/com/openhis/clinical/service/impl/TicketServiceImpl.java @@ -267,7 +267,7 @@ public class TicketServiceImpl extends ServiceImpl impleme if (poolId != null) { schedulePoolMapper.update(null, new LambdaUpdateWrapper() - .setSql("locked_num = locked_num + 1, version = version + 1") + .setSql("locked_num = locked_num + 1, booked_num = booked_num + 1, version = version + 1") .set(SchedulePool::getUpdateTime, new Date()) .eq(SchedulePool::getId, poolId)); }