-- 1.0.387: 从 AIDOP 租户复制 3 条客户主数据到 UATTEST_CHL 租户,充实 S0 客户信息维护页演示数据。 -- -- 源:AIDOP 租户(org code = 'AIDOP')CustMaster 中 Cust = 10000000 / 10000002 / 10000004 -- (瑞贝德 / 通广 / 岛包,Class 分别为 1 / 2 / 3,覆盖三种客户分类) -- 目标:UATTEST_CHL 租户(org code = 'UATTEST_CHL') -- -- 作用域列改写(必须): -- 唯一键 uk_CustMaster_factory_cust = UNIQUE(factory_ref_id, Cust),**不含 tenant_id**。 -- 若沿用源租户的 factory_ref_id 会与源行撞唯一键,故 company_ref_id / factory_ref_id / Domain -- 一律取目标租户既有行的口径(当前为 838257186320453 / 838257186320453 / '2410'), -- 而不是照搬源租户的 1000 / 1000 / '8010'。 -- -- 只复制源库确实有值的列(Cust / SortName / Class / TaxClass / TaxIn)。 -- 币种 Curr、销售员 Salesperson1/Slspsn2、发至 ShipTo、全称 CustFullName 在**所有租户** -- 的 CustMaster 中均为空,属全局数据现状,本脚本不臆造填充,页面对应列仍为空白。 -- -- 幂等:目标租户已存在同 Cust 则跳过;源租户或目标租户不存在的库上为空操作。 SET @uat_cust_src_tenant := ( SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id = t.OrgId WHERE o.Code = 'AIDOP' AND t.Status = 1 LIMIT 1); SET @uat_cust_dst_tenant := ( SELECT t.Id FROM SysTenant t JOIN SysOrg o ON o.Id = t.OrgId WHERE o.Code = 'UATTEST_CHL' AND t.Status = 1 LIMIT 1); -- 目标租户既有作用域口径(取现存行,保持与该租户其它客户一致) SET @uat_cust_company := (SELECT company_ref_id FROM CustMaster WHERE tenant_id = @uat_cust_dst_tenant LIMIT 1); SET @uat_cust_factory := (SELECT factory_ref_id FROM CustMaster WHERE tenant_id = @uat_cust_dst_tenant LIMIT 1); SET @uat_cust_domain := (SELECT Domain FROM CustMaster WHERE tenant_id = @uat_cust_dst_tenant LIMIT 1); INSERT INTO CustMaster (company_ref_id, factory_ref_id, tenant_id, Domain, Cust, SortName, Class, TaxClass, TaxIn, IsActive, IsConfirm, CreateUser, CreateTime) SELECT @uat_cust_company, @uat_cust_factory, @uat_cust_dst_tenant, @uat_cust_domain, src.Cust, src.SortName, src.Class, src.TaxClass, src.TaxIn, 1, 1, 'UAT-CUST-SEED', NOW() FROM CustMaster src WHERE src.tenant_id = @uat_cust_src_tenant AND src.Cust IN ('10000000', '10000002', '10000004') AND @uat_cust_src_tenant IS NOT NULL AND @uat_cust_dst_tenant IS NOT NULL AND @uat_cust_factory IS NOT NULL AND NOT EXISTS ( SELECT 1 FROM CustMaster x WHERE x.tenant_id = @uat_cust_dst_tenant AND x.factory_ref_id = @uat_cust_factory AND x.Cust = src.Cust );