migration_20260413_biz_delivery_task_dual_status.sql 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. -- 配送任务双状态改造:
  2. -- 1) 新增配送员状态 deliverer_status
  3. -- 2) 新增供应商备货状态 supplier_prepare_status
  4. -- 3) 按历史 status 回填新字段
  5. ALTER TABLE `biz_delivery_task`
  6. ADD COLUMN `deliverer_status` varchar(20) NOT NULL DEFAULT 'pending_pickup' COMMENT '配送员状态: pending_pickup/delivering/delivered' AFTER `status`,
  7. ADD COLUMN `supplier_prepare_status` varchar(20) NOT NULL DEFAULT 'pending_prepare' COMMENT '供应商备货状态: pending_prepare/prepared/picked_up' AFTER `deliverer_status`;
  8. ALTER TABLE `biz_delivery_task_his`
  9. ADD COLUMN `deliverer_status` varchar(20) NOT NULL DEFAULT 'pending_pickup' COMMENT '配送员状态: pending_pickup/delivering/delivered' AFTER `status`,
  10. ADD COLUMN `supplier_prepare_status` varchar(20) NOT NULL DEFAULT 'pending_prepare' COMMENT '供应商备货状态: pending_prepare/prepared/picked_up' AFTER `deliverer_status`;
  11. -- 主表回填
  12. UPDATE `biz_delivery_task`
  13. SET
  14. `deliverer_status` = CASE
  15. WHEN `status` IN ('delivering') THEN 'delivering'
  16. WHEN `status` IN ('completed') THEN 'delivered'
  17. ELSE 'pending_pickup'
  18. END,
  19. `supplier_prepare_status` = CASE
  20. WHEN `status` IN ('supplier_ready', 'picking', 'delivering', 'completed') THEN 'prepared'
  21. ELSE 'pending_prepare'
  22. END;
  23. -- 历史表回填
  24. UPDATE `biz_delivery_task_his`
  25. SET
  26. `deliverer_status` = CASE
  27. WHEN `status` IN ('delivering') THEN 'delivering'
  28. WHEN `status` IN ('completed') THEN 'delivered'
  29. ELSE 'pending_pickup'
  30. END,
  31. `supplier_prepare_status` = CASE
  32. WHEN `status` IN ('supplier_ready', 'picking', 'delivering', 'completed') THEN 'prepared'
  33. ELSE 'pending_prepare'
  34. END;