migration_work_order_level.sql 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. -- =====================================================================
  2. -- 工单优先级(work_order.order_level)取值重定义迁移脚本
  3. --
  4. -- 旧:1-紧急 2-一般 3-低
  5. -- 新:0-紧急 1-一般 2-低
  6. --
  7. -- 配套代码改动:
  8. -- com.zksy.base.enums.WorkOrderLevelEnum URGENT(0) NORMAL(1) LOW(2)
  9. -- 前端 src/views/subSystem/pipeNetwork/ops/workOrder/workOrderDict.js
  10. -- 的 ORDER_LEVEL_MAP 同步改为 0/1/2
  11. --
  12. -- 注意:本脚本【仅可执行一次】!
  13. -- 迁移后合法值为 0/1/2,其中 1、2 与旧值重合,
  14. -- 重复执行会把「一般(1)」再次误改为「紧急(0)」。
  15. -- 执行前请备份数据。
  16. -- =====================================================================
  17. -- 1) 更新字段注释
  18. COMMENT ON COLUMN app_user.work_order.order_level IS '工单优先级:0-紧急 1-一般 2-低';
  19. -- 2) 历史数据迁移(单条 UPDATE 原子完成,避免中间值被二次匹配)
  20. UPDATE app_user.work_order
  21. SET order_level = CASE order_level
  22. WHEN 1 THEN 0 -- 紧急
  23. WHEN 2 THEN 1 -- 一般
  24. WHEN 3 THEN 2 -- 低
  25. ELSE order_level
  26. END
  27. WHERE order_level IN (1, 2, 3);
  28. -- 3) 兜底:非法/空值统一置为「一般(1)」
  29. UPDATE app_user.work_order
  30. SET order_level = 1
  31. WHERE order_level IS NULL
  32. OR order_level NOT IN (0, 1, 2);
  33. -- =====================================================================
  34. -- 快速核验:
  35. -- SELECT order_level, count(*) FROM app_user.work_order GROUP BY order_level ORDER BY order_level;
  36. -- 期望只出现 0 / 1 / 2 三种取值。
  37. -- =====================================================================