sync_receipt_container_status.sql
1.07 KB
-- ============================================================
-- 入库组盘头表状态同步到入库组盘详情状态
-- 适用场景:生产环境上线后首次同步
-- 注意:正式库发现详情 status 大多数为 NULL,需要同步为头表的 status
-- 排除条件:
-- 1. 头表和详情状态已一致(无需同步)
-- 2. 头表状态=0 且详情状态=0(都是新建,无需同步)
-- 3. 入库单类型为倒扣料(BMR)、调拨入库(DBR)、其他入库(QTR)
-- 4. 其他入库单类型(SCR/CPR/BCPR/YCLR等)均排除
-- 执行前请务必备份数据库!
-- ============================================================
-- 正式同步 UPDATE(头表status=50时同步详情status为50,包括NULL的情况)
UPDATE d
SET d.status = h.status
FROM receipt_container_detail d
INNER JOIN receipt_container_header h ON d.receipt_container_id = h.id
INNER JOIN receipt_header r ON r.id = d.receipt_id
WHERE
h.status = 50
AND (d.status IS NULL OR d.status != 50)
AND r.type NOT IN ('BMR', 'DBR', 'QTR', 'SCR', 'CPR', 'BCPR', 'YCLR', 'QTRKD');