1.0.564.verify.sql 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. -- 1.0.564.verify.sql — 每条 SELECT 必须返回真值。
  2. -- 库位角色表已建出
  3. SELECT COUNT(*) = 1
  4. FROM information_schema.tables
  5. WHERE table_schema = DATABASE()
  6. AND table_name = 'mdp_location_role';
  7. -- 隔离表已补原因列
  8. SELECT COUNT(*) = 1
  9. FROM information_schema.columns
  10. WHERE table_schema = DATABASE()
  11. AND table_name = 'mdp_std_inv_trans_unmapped'
  12. AND column_name = 'unmapped_reason';
  13. -- 角色取值只允许中立枚举。
  14. -- 1.0.565 把 INSPECT/LINE/SCRAP 改成 MAT_INSPECT/MAT_LINE_LOC/REJECT_SCRAP 等。
  15. -- 表若已被 565 写过,本脚本的 INSERT IGNORE 不会改回旧码,故两套都接受,避免重跑卡启动。
  16. SELECT COUNT(*) = 0
  17. FROM mdp_location_role
  18. WHERE location_role NOT IN (
  19. 'INSPECT','MATERIAL','SEMI','LINE','FG','SCRAP','OTHER','UNKNOWN',
  20. 'MAT_INSPECT','MAT_LINE_LOC','FG_INSPECT','FG_LINE_LOC','REJECT_SCRAP','VMI');
  21. -- 待检仓口径到位(无 1000 库位时也算通过)。1.0.565 将 INSPECT 改为 MAT_INSPECT,两者都算到位。
  22. SELECT (SELECT COUNT(*) FROM mdp_location_role WHERE location = '1000') = 0
  23. OR (SELECT COUNT(*) FROM mdp_location_role WHERE location = '1000' AND location_role NOT IN ('INSPECT','MAT_INSPECT') AND role_source <> 'MANUAL') = 0;
  24. -- trans_type 只允许 12 个中立阶段码或 NULL
  25. SELECT COUNT(*) = 0
  26. FROM mdp_std_inv_trans
  27. WHERE trans_type IS NOT NULL
  28. AND trans_type NOT IN ('MAT_RECEIPT','MAT_IQC_RELEASE','MAT_PUTAWAY','MAT_PICK','MAT_ISSUE','MAT_LINE','FG_RECEIPT','FG_PUTAWAY','FG_PICK','FG_SHIP','FG_PROD_RECEIPT','FG_FQC_RELEASE');
  29. -- 非阶段码不得残留在隔离表
  30. SELECT COUNT(*) = 0
  31. FROM mdp_std_inv_trans_unmapped
  32. WHERE src_trans_type_raw IN ('inv-frz','inv-unfrz');
  33. -- 隔离原因只允许三类;1.0.565 追加 OUT_OF_SCOPE_ROLE,重跑时一并接受。
  34. SELECT COUNT(*) = 0
  35. FROM mdp_std_inv_trans_unmapped
  36. WHERE unmapped_reason NOT IN ('PENDING_VERIFY','LOCATION_ROLE_UNCONFIGURED','UNKNOWN_CODE','OUT_OF_SCOPE_ROLE');
  37. -- 已映射成功的行不得留在隔离表
  38. SELECT COUNT(*) = 0
  39. FROM mdp_std_inv_trans_unmapped u
  40. JOIN mdp_std_inv_trans t
  41. ON t.tenant_id = u.tenant_id AND t.source_system = u.source_system AND t.src_rec_id = u.src_rec_id
  42. WHERE t.trans_type IS NOT NULL;