feat: init.sql 补入 32 条被截断的多供应商货源

源库 supplier 字段用 7 种分隔符写了多家供应商,迁移时目标字段是单值,
每家物料只保留了第一家,其余被丢弃。回源核对后共 32 条,每条恰好 2 家,
全在武汉。被丢弃的第二家其伙伴档案早已由迁移脚本建好(对拆分后的每个
名字都建了伙伴),故本次只补货源行,不新增伙伴。

在 DROP TEMPORARY TABLE tmp_materials; 之后追加独立一段 32 条
INSERT ... SELECT,按 material_code 关联 materials 取 material_id。
新增行一律 is_preferred = FALSE(第一家已由分流 3 标为 TRUE)、
material_manufacturer_id 为 NULL。用到的 @p_wh_007/008/010/017/029
均已在伙伴 id 段落定义,未新增变量。

隔离库 wms_verify 空库重建后 material_suppliers = 161(129 基础 + 32 补入),
materials = 199、material_manufacturers = 10 不变;32 条物料各 2 行,
每物料至多一条 preferred。
This commit is contained in:
文睿 张 2026-10-15 16:10:21 +08:00
parent 9539b02f1c
commit a82347906c

View File

@ -1532,6 +1532,170 @@ ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
DROP TEMPORARY TABLE tmp_materials; DROP TEMPORARY TABLE tmp_materials;
-- ---------- 多供应商补入:源里用分隔符写了多家,迁移时只留了第一家 ----------
-- 见设计文档 7.4。32 条,每条 2 家,故每条补 1 行,全在武汉。
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A020001'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A020002'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A020003'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A020004'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A020005'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A030001'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A030002'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A030003'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A030004'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A030005'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_010, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'A030006'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_008, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B010019'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_007, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B010020'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_007, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B010021'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_007, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B010022'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_007, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B010034'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_008, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B010035'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_029, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020014'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020015'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020017'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020019'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020024'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020031'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020033'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020034'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020037'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020042'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020043'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020044'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020046'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020047'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
INSERT INTO material_suppliers
(organization_id, material_id, supplier_id, material_manufacturer_id, is_preferred, status)
SELECT @org_wh, m.id, @p_wh_017, NULL, FALSE, 'active'
FROM materials m WHERE m.organization_id = @org_wh AND m.material_code = 'B020048'
ON DUPLICATE KEY UPDATE is_preferred = material_suppliers.is_preferred;
-- ---------- 变更日志 → material_logs ---------- -- ---------- 变更日志 → material_logs ----------
-- 源表没有操作类型,统一记作 update;修改原因进 description。 -- 源表没有操作类型,统一记作 update;修改原因进 description。
-- 不导用户账号,operator_id 留空,operator 存源里的用户名。 -- 不导用户账号,operator_id 留空,operator 存源里的用户名。