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));
}