瀏覽代碼

补记闪送自动完成调度 SQL 并修订计划并发描述

qmj 2 天之前
父節點
當前提交
01308ad101
共有 2 個文件被更改,包括 14 次插入1 次删除
  1. 1 1
      specs/024-flash-delivery/plan.md
  2. 13 0
      updatesql/sql.md

+ 1 - 1
specs/024-flash-delivery/plan.md

@@ -53,7 +53,7 @@ ruoyi-system/src/test/java/com/ruoyi/system/mapper/flash/
 
 1. `FlashDeliveryApplicationService` 是事务边界;报价只读,创建和每个状态操作同时写订单与日志。
 2. 抢单执行带 `status='WAITING_ACCEPTANCE' AND rider_id IS NULL` 的单条 UPDATE;受影响行数不是 1 即已被抢走。
-3. 其余状态变更携带订单、操作者、预期状态和版本条件,阻止并发覆盖
+3. 其余状态变更携带订单归属、操作者归属和预期状态条件,阻止并发覆盖;`version` 字段随每次更新递增,仅作审计参考,不作为更新条件
 4. `(user_id, client_request_id)` 唯一键保证创建幂等;冲突时返回原订单。
 5. Google Routes API 字段掩码仅取距离与时长;异常、非 2xx、空路线或无效距离降级为 Haversine。
 6. 待抢单使用专用脱敏视图;抢单后只有订单骑手可见完整电话和详细地址。

+ 13 - 0
updatesql/sql.md

@@ -1341,3 +1341,16 @@ CREATE TABLE flash_delivery_order_log (
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='闪送状态审计日志';
 ```
 
+## 2026-09-02 闪送自动完成定时任务调度(024-flash-delivery)
+
+> 用途:注册“送达满 24 小时未签收自动完成”定时任务。此前只交付了 `flashDeliveryAutoCompleteTask` Bean,缺少 `sys_job` 配置,任务不会被执行。只记录脚本,由开发者手动执行;若依启动时会按 `status='0'` 自动装载调度。
+
+```sql
+INSERT INTO sys_job
+  (job_name, job_group, invoke_target, cron_expression, misfire_policy, concurrent, status, create_by, create_time, remark)
+SELECT '闪送订单自动完成', 'DEFAULT', 'flashDeliveryAutoCompleteTask.completeDeliveredOrders()',
+       '0 0/30 * * * ?', '3', '1', '0', 'admin', NOW(), '送达满24小时未签收的闪送订单自动完成'
+WHERE NOT EXISTS (
+  SELECT 1 FROM sys_job WHERE invoke_target = 'flashDeliveryAutoCompleteTask.completeDeliveredOrders()'
+);
+```