1.0.387.sql 2.7 KB

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