s4_purordrct_seed_20260617.sql 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. -- 采购收货单测试数据(PurOrdRctMaster + PurOrdRctDetail)
  2. -- 幂等:使用固定编号 + NOT EXISTS 防重复插入
  3. -- 执行前请确认租户ID,默认为 797403760988229
  4. SET @tenant_id := 797403760988229;
  5. -- ===========================================================================
  6. -- 1) 收货单主表 PurOrdRctMaster(RctType='rc',5 条)
  7. -- ===========================================================================
  8. INSERT INTO PurOrdRctMaster
  9. (
  10. RecID, Domain, RctType, Receiver, RctDate, OrdNbr, Site, BusinessID,
  11. CreateUser, UpdateUser, CreateTime, UpdateTime,
  12. IsActive, IsConfirm, Typed, Department, Supp, `Print`, IsChanged,
  13. TaxClass, TaxIn, Remark, Curr, IsExport, Terms, IsPlan,
  14. TermsofTrade, IsBackwash, tenant_id
  15. )
  16. SELECT
  17. 60617000 + p.idx AS RecID,
  18. '100' AS Domain,
  19. 'rc' AS RctType,
  20. p.receiver AS Receiver,
  21. DATE_ADD('2026-06-17', INTERVAL p.idx - 1 DAY) AS RctDate,
  22. p.ordNbr AS OrdNbr,
  23. 'AIDOP' AS Site,
  24. 0 AS BusinessID,
  25. 'seed-20260617' AS CreateUser,
  26. 'seed-20260617' AS UpdateUser,
  27. NOW() AS CreateTime,
  28. NOW() AS UpdateTime,
  29. 1 AS IsActive,
  30. 0 AS IsConfirm,
  31. 'C' AS Typed,
  32. 'D-PROD' AS Department,
  33. p.supp AS Supp,
  34. 0 AS `Print`,
  35. 0 AS IsChanged,
  36. '' AS TaxClass,
  37. 0 AS TaxIn,
  38. CONCAT('采购收货测试-', p.ordNbr) AS Remark,
  39. 'CNY' AS Curr,
  40. 0 AS IsExport,
  41. '' AS Terms,
  42. 0 AS IsPlan,
  43. '' AS TermsofTrade,
  44. 0 AS IsBackwash,
  45. @tenant_id AS tenant_id
  46. FROM (
  47. SELECT 1 idx, 'RC-TEST-20260617-01' receiver, 'PO-UAT-20260604-01' ordNbr, 'VEN00060' supp UNION ALL
  48. SELECT 2, 'RC-TEST-20260617-02', 'PO-UAT-20260604-02', 'VEN00060' UNION ALL
  49. SELECT 3, 'RC-TEST-20260617-03', 'PO-UAT-20260604-03', 'VEN00060' UNION ALL
  50. SELECT 4, 'RC-TEST-20260617-04', 'PO-UAT-20260604-04', 'VEN00060' UNION ALL
  51. SELECT 5, 'RC-TEST-20260617-05', 'PO-UAT-20260604-05', 'VEN00060'
  52. ) p
  53. WHERE NOT EXISTS (
  54. SELECT 1 FROM PurOrdRctMaster x
  55. WHERE x.Receiver = p.receiver AND x.tenant_id = @tenant_id
  56. );
  57. -- ===========================================================================
  58. -- 2) 收货单明细 PurOrdRctDetail(每单 2 行,共 10 条)
  59. -- ===========================================================================
  60. INSERT INTO PurOrdRctDetail
  61. (
  62. RecID, Domain, RctType, Receiver, Line, ItemNum, Dimension1, Dimension2,
  63. OrdNbr, RctDate, POCost, UM, QtyOrded, RctQty, Site, Supp, Location,
  64. QtyReceived, Potype, BusinessID, CreateUser, UpdateUser, CreateTime, UpdateTime,
  65. IsActive, IsConfirm, Typed, IsChanged, TaxClass, TaxIn, UMConversion,
  66. Curr, IsClosed, OrdLine, IsRounding, BlanketLine, ProjectLine,
  67. RctLine, QtyReturn, PurOrdRctRecID, QcQty, RctNbr, Remark, tenant_id
  68. )
  69. SELECT
  70. 606170000 + p.idx * 10 + d.Line AS RecID,
  71. '100' AS Domain,
  72. 'rc' AS RctType,
  73. p.receiver AS Receiver,
  74. d.Line AS Line,
  75. d.ItemNum,
  76. COALESCE(d.Dimension1, '') AS Dimension1,
  77. COALESCE(d.Dimension2, '') AS Dimension2,
  78. p.ordNbr AS OrdNbr,
  79. DATE_ADD('2026-06-17', INTERVAL p.idx - 1 DAY) AS RctDate,
  80. COALESCE(d.PurCost, 10.00) AS POCost,
  81. COALESCE(d.UM, 'EA') AS UM,
  82. COALESCE(d.QtyOrded, 100) AS QtyOrded,
  83. ROUND(COALESCE(d.QtyOrded, 100) * 0.85, 5) AS RctQty,
  84. 'AIDOP' AS Site,
  85. p.supp AS Supp,
  86. COALESCE(d.Location, 'WH-01') AS Location,
  87. ROUND(COALESCE(d.QtyOrded, 100) * 0.85, 5) AS QtyReceived,
  88. COALESCE(d.Potype, 'PT') AS Potype,
  89. 0 AS BusinessID,
  90. 'seed-20260617' AS CreateUser,
  91. 'seed-20260617' AS UpdateUser,
  92. NOW() AS CreateTime,
  93. NOW() AS UpdateTime,
  94. 1 AS IsActive,
  95. 0 AS IsConfirm,
  96. 'C' AS Typed,
  97. 0 AS IsChanged,
  98. '' AS TaxClass,
  99. 0 AS TaxIn,
  100. 1 AS UMConversion,
  101. 'CNY' AS Curr,
  102. 0 AS IsClosed,
  103. d.Line AS OrdLine,
  104. 0 AS IsRounding,
  105. 0 AS BlanketLine,
  106. 0 AS ProjectLine,
  107. d.Line AS RctLine,
  108. 0 AS QtyReturn,
  109. 60617000 + p.idx AS PurOrdRctRecID,
  110. ROUND(COALESCE(d.QtyOrded, 100) * 0.85, 5) AS QcQty,
  111. p.receiver AS RctNbr,
  112. CONCAT('采购收货测试明细-', p.ordNbr, '-L', d.Line) AS Remark,
  113. @tenant_id AS tenant_id
  114. FROM (
  115. SELECT 1 idx, 'RC-TEST-20260617-01' receiver, 'PO-UAT-20260604-01' ordNbr, 'VEN00060' supp UNION ALL
  116. SELECT 2, 'RC-TEST-20260617-02', 'PO-UAT-20260604-02', 'VEN00060' UNION ALL
  117. SELECT 3, 'RC-TEST-20260617-03', 'PO-UAT-20260604-03', 'VEN00060' UNION ALL
  118. SELECT 4, 'RC-TEST-20260617-04', 'PO-UAT-20260604-04', 'VEN00060' UNION ALL
  119. SELECT 5, 'RC-TEST-20260617-05', 'PO-UAT-20260604-05', 'VEN00060'
  120. ) p
  121. LEFT JOIN (
  122. SELECT PurOrd, Line,
  123. MIN(ItemNum) AS ItemNum,
  124. MIN(Dimension1) AS Dimension1,
  125. MIN(Dimension2) AS Dimension2,
  126. MAX(QtyOrded) AS QtyOrded,
  127. MIN(UM) AS UM,
  128. MIN(Location) AS Location,
  129. MAX(PurCost) AS PurCost,
  130. MIN(Potype) AS Potype
  131. FROM PurOrdDetail
  132. WHERE tenant_id = @tenant_id
  133. AND PurOrd LIKE 'PO-UAT-20260604-%'
  134. AND Line IN (1, 2)
  135. GROUP BY PurOrd, Line
  136. ) d ON d.PurOrd = p.ordNbr
  137. WHERE d.ItemNum IS NOT NULL
  138. AND NOT EXISTS (
  139. SELECT 1 FROM PurOrdRctDetail x
  140. WHERE x.RctType = 'rc' AND x.Receiver = p.receiver AND x.Line = d.Line AND x.tenant_id = @tenant_id
  141. );
  142. -- ===========================================================================
  143. -- 3) 验收:查看插入结果
  144. -- ===========================================================================
  145. SELECT '=== 收货单主表 ===' AS info;
  146. SELECT RecID, Receiver, RctDate, OrdNbr, Supp, Remark, tenant_id
  147. FROM PurOrdRctMaster
  148. WHERE Receiver LIKE 'RC-TEST-20260617-%' AND tenant_id = @tenant_id
  149. ORDER BY RecID;
  150. SELECT '=== 收货单明细 ===' AS info;
  151. SELECT RecID, Receiver, Line, ItemNum, OrdNbr, QtyOrded, RctQty, QtyReceived, QcQty, Remark
  152. FROM PurOrdRctDetail
  153. WHERE Receiver LIKE 'RC-TEST-20260617-%' AND tenant_id = @tenant_id
  154. ORDER BY RecID;