S1S4_UAT_迁移至AIDOP租户_20260605.sql 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. -- 将已导入的 S1-S4 UAT 数据从 tenant_id=1300000000001 迁至 AIDOP 租户 797403760988229
  2. -- 状态:2026-06-05 已在 aidopdev 执行成功(crm_seorder 50 条 @797403760988229)
  3. -- 幂等:仅更新仍留在旧租户且带 S1S4_UAT 批次标记的数据
  4. SET @old_tid := 1300000000001;
  5. SET @new_tid := 797403760988229;
  6. SET @factory := 797403760988229;
  7. START TRANSACTION;
  8. DROP TEMPORARY TABLE IF EXISTS tmp_uat_bills;
  9. CREATE TEMPORARY TABLE tmp_uat_bills AS
  10. SELECT bill_no, Id AS so_id
  11. FROM crm_seorder
  12. WHERE tenant_id = @old_tid
  13. AND bill_from LIKE '%S1S4_UAT%';
  14. DROP TEMPORARY TABLE IF EXISTS tmp_uat_pos;
  15. CREATE TEMPORARY TABLE tmp_uat_pos AS
  16. SELECT DISTINCT PurOrd
  17. FROM PurOrdMaster
  18. WHERE tenant_id = @old_tid
  19. AND (Remark LIKE '%S1S4_UAT%' OR SalesOrd IN (SELECT bill_no FROM tmp_uat_bills));
  20. DROP TEMPORARY TABLE IF EXISTS tmp_uat_mo;
  21. CREATE TEMPORARY TABLE tmp_uat_mo AS
  22. SELECT DISTINCT mo.Id AS mo_id, mo.morder_no
  23. FROM mes_morder mo
  24. INNER JOIN mes_moentry me ON me.moentry_moid = mo.Id AND me.tenant_id = @old_tid
  25. INNER JOIN crm_seorderentry se ON se.Id = me.soentry_id
  26. WHERE se.bill_no IN (SELECT bill_no FROM tmp_uat_bills)
  27. AND mo.tenant_id = @old_tid;
  28. UPDATE crm_seorder
  29. SET tenant_id = @new_tid, factory_id = @factory
  30. WHERE tenant_id = @old_tid
  31. AND bill_from LIKE '%S1S4_UAT%';
  32. UPDATE crm_seorderentry e
  33. INNER JOIN tmp_uat_bills b ON e.bill_no = b.bill_no
  34. SET e.tenant_id = @new_tid, e.factory_id = @factory
  35. WHERE e.tenant_id = @old_tid;
  36. UPDATE mes_moentry me
  37. INNER JOIN crm_seorderentry se ON se.Id = me.soentry_id
  38. INNER JOIN tmp_uat_bills b ON se.bill_no = b.bill_no
  39. SET me.tenant_id = @new_tid, me.factory_id = @factory
  40. WHERE me.tenant_id = @old_tid;
  41. UPDATE mes_morder mo
  42. INNER JOIN tmp_uat_mo t ON mo.Id = t.mo_id
  43. SET mo.tenant_id = @new_tid, mo.factory_id = @factory
  44. WHERE mo.tenant_id = @old_tid;
  45. UPDATE WorkOrdMaster w
  46. SET w.tenant_id = @new_tid
  47. WHERE w.tenant_id = @old_tid
  48. AND (w.SalesJob IN (SELECT bill_no FROM tmp_uat_bills)
  49. OR w.WorkOrd IN (SELECT morder_no FROM tmp_uat_mo));
  50. UPDATE srm_pr_main
  51. SET tenant_id = @new_tid, factory_id = @factory
  52. WHERE tenant_id = @old_tid
  53. AND pr_billno LIKE 'PR-UAT-%';
  54. UPDATE PurOrdMaster
  55. SET tenant_id = @new_tid
  56. WHERE tenant_id = @old_tid
  57. AND PurOrd IN (SELECT PurOrd FROM tmp_uat_pos);
  58. UPDATE PurOrdDetail pd
  59. INNER JOIN tmp_uat_pos p ON pd.PurOrd = p.PurOrd
  60. SET pd.tenant_id = @new_tid
  61. WHERE pd.tenant_id = @old_tid;
  62. UPDATE srm_polist_ds
  63. SET tenant_id = @new_tid
  64. WHERE tenant_id = @old_tid
  65. AND ponumber LIKE 'PO-UAT-%';
  66. UPDATE mdp_std_so
  67. SET tenant_id = @new_tid
  68. WHERE tenant_id = @old_tid
  69. AND order_no IN (SELECT bill_no FROM tmp_uat_bills);
  70. UPDATE dwd_ship_trans
  71. SET tenant_id = @new_tid
  72. WHERE tenant_id = @old_tid
  73. AND order_no IN (SELECT bill_no FROM tmp_uat_bills);
  74. UPDATE dwd_order_schedule_trans
  75. SET tenant_id = @new_tid
  76. WHERE tenant_id = @old_tid
  77. AND sales_order_no IN (SELECT bill_no FROM tmp_uat_bills);
  78. COMMIT;
  79. SELECT tenant_id, COUNT(*) AS so_cnt
  80. FROM crm_seorder
  81. WHERE bill_from LIKE '%S1S4_UAT%'
  82. GROUP BY tenant_id;
  83. SELECT COUNT(*) AS aidop_uat_so
  84. FROM crm_seorder
  85. WHERE tenant_id = @new_tid AND bill_from LIKE '%S1S4_UAT%';