2026-08-26-pl-multi-stop.sql 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. -- 运输计划 · 一车多卸重构 — 装货/送货段表
  2. -- 设计文档: docs/superpowers/specs/2026-08-26-pl-multi-stop-redesign-design.md
  3. -- 日期: 2026-08-26
  4. SET NAMES utf8mb4;
  5. -- ---------------------------------------------------------------------------
  6. -- 1. pl_plan 新增运费备注
  7. -- ---------------------------------------------------------------------------
  8. ALTER TABLE `pl_plan`
  9. ADD COLUMN `freight_remark` varchar(512) DEFAULT NULL COMMENT '运费备注' AFTER `freight_amount`;
  10. -- ---------------------------------------------------------------------------
  11. -- 2. pl_plan_contract 扩展 side 枚举 + 停靠段关联
  12. -- ---------------------------------------------------------------------------
  13. ALTER TABLE `pl_plan_contract`
  14. ADD COLUMN `stop_id` varchar(64) DEFAULT NULL COMMENT '停靠段ID(装货段或送货段)' AFTER `side`,
  15. MODIFY COLUMN `side` varchar(20) NOT NULL COMMENT 'supplier-供方 demander-需方 load-装货 delivery-送货';
  16. ALTER TABLE `pl_plan_contract`
  17. ADD KEY `idx_pl_plan_contract_stop` (`plan_id`, `stop_id`, `del_flag`) USING BTREE;
  18. -- ---------------------------------------------------------------------------
  19. -- 3. pl_transport_db_link 按段关联地磅
  20. -- ---------------------------------------------------------------------------
  21. ALTER TABLE `pl_transport_db_link`
  22. ADD COLUMN `stop_type` varchar(20) DEFAULT NULL COMMENT '停靠段类型 load-装货 delivery-送货' AFTER `plan_product_id`,
  23. ADD COLUMN `stop_id` varchar(64) DEFAULT NULL COMMENT '停靠段ID' AFTER `stop_type`;
  24. ALTER TABLE `pl_transport_db_link`
  25. ADD KEY `idx_pl_tdb_link_stop` (`stop_type`, `stop_id`) USING BTREE;
  26. -- ---------------------------------------------------------------------------
  27. -- 4. 装货段(plan 1:1)
  28. -- ---------------------------------------------------------------------------
  29. CREATE TABLE IF NOT EXISTS `pl_plan_load` (
  30. `id` varchar(64) NOT NULL COMMENT '主键ID',
  31. `plan_id` varchar(64) NOT NULL COMMENT '计划ID',
  32. `customer_id` varchar(64) DEFAULT NULL COMMENT '装货客户ID',
  33. `customer_name` varchar(200) DEFAULT NULL COMMENT '装货客户名称',
  34. `address` varchar(500) DEFAULT NULL COMMENT '装货地址',
  35. `lng` decimal(10,6) DEFAULT NULL COMMENT '经度',
  36. `lat` decimal(10,6) DEFAULT NULL COMMENT '纬度',
  37. `load_time` datetime DEFAULT NULL COMMENT '装货时间',
  38. `contact` varchar(200) DEFAULT NULL COMMENT '联系方式',
  39. `notes` varchar(500) DEFAULT NULL COMMENT '注意事项',
  40. `generate_dibang` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否生成地磅单 0-否 1-是',
  41. `dibang_direction` varchar(20) DEFAULT NULL COMMENT '地磅方向 outbound-出库 inbound-入库 none-无',
  42. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  43. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  44. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  45. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  46. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  47. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  48. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  49. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  50. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
  51. PRIMARY KEY (`id`) USING BTREE,
  52. UNIQUE KEY `uk_pl_plan_load_plan` (`plan_id`) USING BTREE,
  53. KEY `idx_pl_plan_load_plan` (`plan_id`, `del_flag`) USING BTREE,
  54. KEY `idx_tenant` (`tenant_no`) USING BTREE
  55. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-装货段';
  56. -- ---------------------------------------------------------------------------
  57. -- 5. 装货段产品明细
  58. -- ---------------------------------------------------------------------------
  59. CREATE TABLE IF NOT EXISTS `pl_plan_load_product` (
  60. `id` varchar(64) NOT NULL COMMENT '主键ID',
  61. `load_id` varchar(64) NOT NULL COMMENT '装货段ID',
  62. `plan_id` varchar(64) NOT NULL COMMENT '计划ID',
  63. `plan_product_id` varchar(64) NOT NULL COMMENT '计划产品行ID',
  64. `product_id` varchar(64) NOT NULL COMMENT '产品ID',
  65. `product_no` varchar(50) NOT NULL COMMENT '产品编号',
  66. `product_name` varchar(200) NOT NULL COMMENT '产品名称',
  67. `model` varchar(100) DEFAULT NULL COMMENT '规格型号',
  68. `unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位',
  69. `package_spec` varchar(200) DEFAULT NULL COMMENT '包装规格',
  70. `delivery_method` varchar(50) DEFAULT NULL COMMENT '送货方式',
  71. `plan_qty` decimal(15,3) DEFAULT NULL COMMENT '本段计划数量',
  72. `inbound_qty` decimal(15,3) DEFAULT NULL COMMENT '入库数量(归档)',
  73. `inbound_price` decimal(15,4) DEFAULT NULL COMMENT '入库单价(归档)',
  74. `inbound_amount` decimal(15,2) DEFAULT NULL COMMENT '入库金额(归档)',
  75. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  76. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  77. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  78. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  79. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  80. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  81. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  82. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  83. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
  84. PRIMARY KEY (`id`) USING BTREE,
  85. KEY `idx_pl_plan_load_product_load` (`load_id`, `del_flag`) USING BTREE,
  86. KEY `idx_pl_plan_load_product_plan` (`plan_id`, `del_flag`) USING BTREE,
  87. KEY `idx_pl_plan_load_product_pp` (`plan_product_id`) USING BTREE,
  88. KEY `idx_tenant` (`tenant_no`) USING BTREE
  89. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-装货段产品明细';
  90. -- ---------------------------------------------------------------------------
  91. -- 6. 送货段(plan 1:N)
  92. -- ---------------------------------------------------------------------------
  93. CREATE TABLE IF NOT EXISTS `pl_plan_delivery` (
  94. `id` varchar(64) NOT NULL COMMENT '主键ID',
  95. `plan_id` varchar(64) NOT NULL COMMENT '计划ID',
  96. `seq` int(11) NOT NULL DEFAULT '1' COMMENT '顺序号(打印、链接展示)',
  97. `customer_id` varchar(64) DEFAULT NULL COMMENT '送货客户ID',
  98. `customer_name` varchar(200) DEFAULT NULL COMMENT '送货客户名称',
  99. `address` varchar(500) DEFAULT NULL COMMENT '送货地址',
  100. `lng` decimal(10,6) DEFAULT NULL COMMENT '经度',
  101. `lat` decimal(10,6) DEFAULT NULL COMMENT '纬度',
  102. `delivery_time` datetime DEFAULT NULL COMMENT '送货时间',
  103. `contact` varchar(200) DEFAULT NULL COMMENT '联系方式',
  104. `notes` varchar(500) DEFAULT NULL COMMENT '注意事项',
  105. `generate_dibang` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否生成地磅单 0-否 1-是',
  106. `dibang_direction` varchar(20) DEFAULT NULL COMMENT '地磅方向 outbound-出库 inbound-入库 none-无',
  107. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  108. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  109. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  110. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  111. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  112. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  113. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  114. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  115. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
  116. PRIMARY KEY (`id`) USING BTREE,
  117. KEY `idx_pl_plan_delivery_plan` (`plan_id`, `del_flag`) USING BTREE,
  118. KEY `idx_pl_plan_delivery_seq` (`plan_id`, `seq`, `del_flag`) USING BTREE,
  119. KEY `idx_tenant` (`tenant_no`) USING BTREE
  120. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-送货段';
  121. -- ---------------------------------------------------------------------------
  122. -- 7. 送货段产品明细
  123. -- ---------------------------------------------------------------------------
  124. CREATE TABLE IF NOT EXISTS `pl_plan_delivery_product` (
  125. `id` varchar(64) NOT NULL COMMENT '主键ID',
  126. `delivery_id` varchar(64) NOT NULL COMMENT '送货段ID',
  127. `plan_id` varchar(64) NOT NULL COMMENT '计划ID',
  128. `plan_product_id` varchar(64) NOT NULL COMMENT '计划产品行ID',
  129. `product_id` varchar(64) NOT NULL COMMENT '产品ID',
  130. `product_no` varchar(50) NOT NULL COMMENT '产品编号',
  131. `product_name` varchar(200) NOT NULL COMMENT '产品名称',
  132. `model` varchar(100) DEFAULT NULL COMMENT '规格型号',
  133. `unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位',
  134. `package_spec` varchar(200) DEFAULT NULL COMMENT '包装规格',
  135. `delivery_method` varchar(50) DEFAULT NULL COMMENT '送货方式',
  136. `plan_qty` decimal(15,3) DEFAULT NULL COMMENT '本段计划数量',
  137. `outbound_qty` decimal(15,3) DEFAULT NULL COMMENT '出库数量(归档)',
  138. `outbound_price` decimal(15,4) DEFAULT NULL COMMENT '出库单价(归档)',
  139. `outbound_amount` decimal(15,2) DEFAULT NULL COMMENT '出库金额(归档)',
  140. `tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
  141. `order_num` int(11) DEFAULT NULL COMMENT '排序号',
  142. `remark` varchar(512) DEFAULT NULL COMMENT '备注',
  143. `create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
  144. `create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
  145. `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
  146. `update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
  147. `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
  148. `del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
  149. PRIMARY KEY (`id`) USING BTREE,
  150. KEY `idx_pl_plan_delivery_product_delivery` (`delivery_id`, `del_flag`) USING BTREE,
  151. KEY `idx_pl_plan_delivery_product_plan` (`plan_id`, `del_flag`) USING BTREE,
  152. KEY `idx_pl_plan_delivery_product_pp` (`plan_product_id`) USING BTREE,
  153. KEY `idx_tenant` (`tenant_no`) USING BTREE
  154. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-送货段产品明细';