| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- -- 1.0.564.verify.sql — 每条 SELECT 必须返回真值。
- -- 库位角色表已建出
- SELECT COUNT(*) = 1
- FROM information_schema.tables
- WHERE table_schema = DATABASE()
- AND table_name = 'mdp_location_role';
- -- 隔离表已补原因列
- SELECT COUNT(*) = 1
- FROM information_schema.columns
- WHERE table_schema = DATABASE()
- AND table_name = 'mdp_std_inv_trans_unmapped'
- AND column_name = 'unmapped_reason';
- -- 角色取值只允许中立枚举
- SELECT COUNT(*) = 0
- FROM mdp_location_role
- WHERE location_role NOT IN ('INSPECT','MATERIAL','SEMI','LINE','FG','SCRAP','OTHER','UNKNOWN');
- -- 待检仓口径到位(无 1000 库位时也算通过)
- SELECT (SELECT COUNT(*) FROM mdp_location_role WHERE location = '1000') = 0
- OR (SELECT COUNT(*) FROM mdp_location_role WHERE location = '1000' AND location_role <> 'INSPECT' AND role_source <> 'MANUAL') = 0;
- -- trans_type 只允许 12 个中立阶段码或 NULL
- SELECT COUNT(*) = 0
- FROM mdp_std_inv_trans
- WHERE trans_type IS NOT NULL
- 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');
- -- 非阶段码不得残留在隔离表
- SELECT COUNT(*) = 0
- FROM mdp_std_inv_trans_unmapped
- WHERE src_trans_type_raw IN ('inv-frz','inv-unfrz');
- -- 隔离原因只允许三类
- SELECT COUNT(*) = 0
- FROM mdp_std_inv_trans_unmapped
- WHERE unmapped_reason NOT IN ('PENDING_VERIFY','LOCATION_ROLE_UNCONFIGURED','UNKNOWN_CODE');
- -- 已映射成功的行不得留在隔离表
- SELECT COUNT(*) = 0
- FROM mdp_std_inv_trans_unmapped u
- JOIN mdp_std_inv_trans t
- ON t.tenant_id = u.tenant_id AND t.source_system = u.source_system AND t.src_rec_id = u.src_rec_id
- WHERE t.trans_type IS NOT NULL;
|