forward_schema_a.sql 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. -- 方案A:冲销凭证双表 + 原单汇总缓存 + 售后关联(ssh 冲销单功能)
  2. -- 说明:不创建负销售单/负采购单;GHS/HD 各有凭证主表+明细,互挂 id
  3. -- ========== GHS 冲销凭证 ==========
  4. CREATE TABLE IF NOT EXISTS `xhGhsForward` (
  5. `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  6. `forwardSn` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '冲销凭证号',
  7. `mainId` INT(11) NOT NULL DEFAULT 0 COMMENT '供货商主体id',
  8. `shopId` INT(11) NOT NULL DEFAULT 0,
  9. `sjId` INT(11) NOT NULL DEFAULT 0,
  10. `customId` INT(11) NOT NULL DEFAULT 0,
  11. `ghsId` INT(11) NOT NULL DEFAULT 0 COMMENT '对应 xhGhs.id(花店侧镜像客户)',
  12. `orderId` INT(11) NOT NULL DEFAULT 0 COMMENT '原销售单id,0=自由冲销',
  13. `orderSn` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '原销售单号',
  14. `amount` DECIMAL(9,2) NOT NULL DEFAULT 0.00 COMMENT '本次冲销金额(正数)',
  15. `payWay` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '原单/记账支付方式',
  16. `fundType` TINYINT(4) NOT NULL DEFAULT 2 COMMENT '1原路退 2返余额 3仅记账',
  17. `forwardStock` TINYINT(4) NOT NULL DEFAULT 1 COMMENT '0回库存 1不回库存',
  18. `cgForwardId` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '对应 xhCgForward.id',
  19. `refundId` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '来源 xhRefund.id,0=非售后转',
  20. `thirdRefundNo` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '网关退款流水号',
  21. `status` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '0处理中 1成功 2失败',
  22. `remark` VARCHAR(255) NOT NULL DEFAULT '',
  23. `shopAdminId` INT(11) NOT NULL DEFAULT 0,
  24. `shopAdminName` VARCHAR(64) NOT NULL DEFAULT '',
  25. `addTime` DATETIME NOT NULL,
  26. PRIMARY KEY (`id`),
  27. UNIQUE KEY `uk_forwardSn` (`forwardSn`),
  28. KEY `idx_orderId` (`orderId`),
  29. KEY `idx_customId` (`customId`),
  30. KEY `idx_mainId_addTime` (`mainId`,`addTime`),
  31. KEY `idx_cgForwardId` (`cgForwardId`),
  32. KEY `idx_status` (`status`)
  33. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供货商冲销凭证';
  34. CREATE TABLE IF NOT EXISTS `xhGhsForwardItem` (
  35. `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  36. `forwardId` INT(11) UNSIGNED NOT NULL DEFAULT 0,
  37. `forwardSn` VARCHAR(64) NOT NULL DEFAULT '',
  38. `mainId` INT(11) NOT NULL DEFAULT 0,
  39. `customId` INT(11) NOT NULL DEFAULT 0,
  40. `productId` INT(11) NOT NULL DEFAULT 0,
  41. `orderItemId` INT(11) NOT NULL DEFAULT 0 COMMENT '原单明细id,可0',
  42. `name` VARCHAR(128) NOT NULL DEFAULT '',
  43. `num` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '冲销数量(正数,小单位合计)',
  44. `bigNum` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  45. `smallNum` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  46. `unitPrice` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  47. `price` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '单价(大单位或提交价)',
  48. `amount` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '行金额(正数)',
  49. `addTime` DATETIME NOT NULL,
  50. PRIMARY KEY (`id`),
  51. KEY `idx_forwardId` (`forwardId`),
  52. KEY `idx_productId` (`productId`),
  53. KEY `idx_mainId_addTime` (`mainId`,`addTime`),
  54. KEY `idx_customId` (`customId`)
  55. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供货商冲销凭证明细';
  56. -- ========== HD 冲销凭证(镜像) ==========
  57. CREATE TABLE IF NOT EXISTS `xhCgForward` (
  58. `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  59. `forwardSn` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '花店侧冲销凭证号',
  60. `mainId` INT(11) NOT NULL DEFAULT 0 COMMENT '花店主体id',
  61. `shopId` INT(11) NOT NULL DEFAULT 0,
  62. `sjId` INT(11) NOT NULL DEFAULT 0,
  63. `customId` INT(11) NOT NULL DEFAULT 0 COMMENT '供货商视角客户id',
  64. `ghsId` INT(11) NOT NULL DEFAULT 0,
  65. `cgId` INT(11) NOT NULL DEFAULT 0 COMMENT '原采购单id,0=自由冲销',
  66. `cgSn` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '原采购单号',
  67. `ghsForwardId` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '对应 xhGhsForward.id',
  68. `amount` DECIMAL(9,2) NOT NULL DEFAULT 0.00,
  69. `payWay` TINYINT(4) NOT NULL DEFAULT 0,
  70. `fundType` TINYINT(4) NOT NULL DEFAULT 2,
  71. `forwardStock` TINYINT(4) NOT NULL DEFAULT 1,
  72. `cgRefundId` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '来源 xhCgRefund.id',
  73. `status` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '0处理中 1成功 2失败',
  74. `remark` VARCHAR(255) NOT NULL DEFAULT '',
  75. `addTime` DATETIME NOT NULL,
  76. PRIMARY KEY (`id`),
  77. UNIQUE KEY `uk_forwardSn` (`forwardSn`),
  78. KEY `idx_cgId` (`cgId`),
  79. KEY `idx_ghsForwardId` (`ghsForwardId`),
  80. KEY `idx_ghsId_addTime` (`ghsId`,`addTime`),
  81. KEY `idx_status` (`status`)
  82. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='花店冲销凭证';
  83. CREATE TABLE IF NOT EXISTS `xhCgForwardItem` (
  84. `id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  85. `forwardId` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT 'xhCgForward.id',
  86. `forwardSn` VARCHAR(64) NOT NULL DEFAULT '',
  87. `ghsId` INT(11) NOT NULL DEFAULT 0,
  88. `customId` INT(11) NOT NULL DEFAULT 0,
  89. `productId` INT(11) NOT NULL DEFAULT 0,
  90. `cgItemId` INT(11) NOT NULL DEFAULT 0,
  91. `name` VARCHAR(128) NOT NULL DEFAULT '',
  92. `num` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  93. `bigNum` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  94. `smallNum` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  95. `unitPrice` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  96. `price` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  97. `amount` DECIMAL(10,2) NOT NULL DEFAULT 0.00,
  98. `addTime` DATETIME NOT NULL,
  99. PRIMARY KEY (`id`),
  100. KEY `idx_forwardId` (`forwardId`),
  101. KEY `idx_productId` (`productId`),
  102. KEY `idx_ghsId` (`ghsId`)
  103. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='花店冲销凭证明细';
  104. -- ========== 原单汇总缓存 ==========
  105. ALTER TABLE `xhGhsOrder`
  106. ADD COLUMN `hasForward` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '0无冲销 1有冲销' AFTER `tkPrice`,
  107. ADD COLUMN `forwardPrice` DECIMAL(9,2) NOT NULL DEFAULT 0.00 COMMENT '累计冲销金额' AFTER `hasForward`;
  108. ALTER TABLE `xhCg`
  109. ADD COLUMN `hasForward` TINYINT(4) NOT NULL DEFAULT 0 COMMENT '0无冲销 1有冲销' AFTER `tkPrice`,
  110. ADD COLUMN `forwardPrice` DECIMAL(9,2) NOT NULL DEFAULT 0.00 COMMENT '累计冲销金额' AFTER `hasForward`;
  111. ALTER TABLE `xhGhsOrderItem`
  112. ADD COLUMN `forwardNum` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '已冲销数量';
  113. ALTER TABLE `xhCgItem`
  114. ADD COLUMN `forwardNum` DECIMAL(10,2) NOT NULL DEFAULT 0.00 COMMENT '已冲销数量';
  115. -- ========== 售后指向本侧凭证 ==========
  116. ALTER TABLE `xhRefund`
  117. ADD COLUMN `forwardId` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '转冲销后xhGhsForward.id,0=未转' AFTER `cgRefundId`;
  118. ALTER TABLE `xhCgRefund`
  119. ADD COLUMN `forwardId` INT(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '转冲销后xhCgForward.id,0=未转' AFTER `saleRefundId`;