Files
shanxia2.0/docs/sql/migrations/2026-08-26-pl-multi-stop.sql
T
2026-08-27 14:23:18 +08:00

165 lines
10 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- 运输计划 · 一车多卸重构 — 装货/送货段表
-- 设计文档: docs/superpowers/specs/2026-08-26-pl-multi-stop-redesign-design.md
-- 日期: 2026-08-26
SET NAMES utf8mb4;
-- ---------------------------------------------------------------------------
-- 1. pl_plan 新增运费备注
-- ---------------------------------------------------------------------------
ALTER TABLE `pl_plan`
ADD COLUMN `freight_remark` varchar(512) DEFAULT NULL COMMENT '运费备注' AFTER `freight_amount`;
-- ---------------------------------------------------------------------------
-- 2. pl_plan_contract 扩展 side 枚举 + 停靠段关联
-- ---------------------------------------------------------------------------
ALTER TABLE `pl_plan_contract`
ADD COLUMN `stop_id` varchar(64) DEFAULT NULL COMMENT '停靠段ID(装货段或送货段)' AFTER `side`,
MODIFY COLUMN `side` varchar(20) NOT NULL COMMENT 'supplier-供方 demander-需方 load-装货 delivery-送货';
ALTER TABLE `pl_plan_contract`
ADD KEY `idx_pl_plan_contract_stop` (`plan_id`, `stop_id`, `del_flag`) USING BTREE;
-- ---------------------------------------------------------------------------
-- 3. pl_transport_db_link 按段关联地磅
-- ---------------------------------------------------------------------------
ALTER TABLE `pl_transport_db_link`
ADD COLUMN `stop_type` varchar(20) DEFAULT NULL COMMENT '停靠段类型 load-装货 delivery-送货' AFTER `plan_product_id`,
ADD COLUMN `stop_id` varchar(64) DEFAULT NULL COMMENT '停靠段ID' AFTER `stop_type`;
ALTER TABLE `pl_transport_db_link`
ADD KEY `idx_pl_tdb_link_stop` (`stop_type`, `stop_id`) USING BTREE;
-- ---------------------------------------------------------------------------
-- 4. 装货段(plan 1:1)
-- ---------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `pl_plan_load` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`plan_id` varchar(64) NOT NULL COMMENT '计划ID',
`customer_id` varchar(64) DEFAULT NULL COMMENT '装货客户ID',
`customer_name` varchar(200) DEFAULT NULL COMMENT '装货客户名称',
`address` varchar(500) DEFAULT NULL COMMENT '装货地址',
`lng` decimal(10,6) DEFAULT NULL COMMENT '经度',
`lat` decimal(10,6) DEFAULT NULL COMMENT '纬度',
`load_time` datetime DEFAULT NULL COMMENT '装货时间',
`contact` varchar(200) DEFAULT NULL COMMENT '联系方式',
`notes` varchar(500) DEFAULT NULL COMMENT '注意事项',
`generate_dibang` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否生成地磅单 0-否 1-是',
`dibang_direction` varchar(20) DEFAULT NULL COMMENT '地磅方向 outbound-出库 inbound-入库 none-无',
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_pl_plan_load_plan` (`plan_id`) USING BTREE,
KEY `idx_pl_plan_load_plan` (`plan_id`, `del_flag`) USING BTREE,
KEY `idx_tenant` (`tenant_no`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-装货段';
-- ---------------------------------------------------------------------------
-- 5. 装货段产品明细
-- ---------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `pl_plan_load_product` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`load_id` varchar(64) NOT NULL COMMENT '装货段ID',
`plan_id` varchar(64) NOT NULL COMMENT '计划ID',
`plan_product_id` varchar(64) NOT NULL COMMENT '计划产品行ID',
`product_id` varchar(64) NOT NULL COMMENT '产品ID',
`product_no` varchar(50) NOT NULL COMMENT '产品编号',
`product_name` varchar(200) NOT NULL COMMENT '产品名称',
`model` varchar(100) DEFAULT NULL COMMENT '规格型号',
`unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位',
`package_spec` varchar(200) DEFAULT NULL COMMENT '包装规格',
`delivery_method` varchar(50) DEFAULT NULL COMMENT '送货方式',
`plan_qty` decimal(15,3) DEFAULT NULL COMMENT '本段计划数量',
`inbound_qty` decimal(15,3) DEFAULT NULL COMMENT '入库数量(归档)',
`inbound_price` decimal(15,4) DEFAULT NULL COMMENT '入库单价(归档)',
`inbound_amount` decimal(15,2) DEFAULT NULL COMMENT '入库金额(归档)',
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_pl_plan_load_product_load` (`load_id`, `del_flag`) USING BTREE,
KEY `idx_pl_plan_load_product_plan` (`plan_id`, `del_flag`) USING BTREE,
KEY `idx_pl_plan_load_product_pp` (`plan_product_id`) USING BTREE,
KEY `idx_tenant` (`tenant_no`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-装货段产品明细';
-- ---------------------------------------------------------------------------
-- 6. 送货段(plan 1:N)
-- ---------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `pl_plan_delivery` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`plan_id` varchar(64) NOT NULL COMMENT '计划ID',
`seq` int(11) NOT NULL DEFAULT '1' COMMENT '顺序号(打印、链接展示)',
`customer_id` varchar(64) DEFAULT NULL COMMENT '送货客户ID',
`customer_name` varchar(200) DEFAULT NULL COMMENT '送货客户名称',
`address` varchar(500) DEFAULT NULL COMMENT '送货地址',
`lng` decimal(10,6) DEFAULT NULL COMMENT '经度',
`lat` decimal(10,6) DEFAULT NULL COMMENT '纬度',
`delivery_time` datetime DEFAULT NULL COMMENT '送货时间',
`contact` varchar(200) DEFAULT NULL COMMENT '联系方式',
`notes` varchar(500) DEFAULT NULL COMMENT '注意事项',
`generate_dibang` tinyint(4) NOT NULL DEFAULT '0' COMMENT '是否生成地磅单 0-否 1-是',
`dibang_direction` varchar(20) DEFAULT NULL COMMENT '地磅方向 outbound-出库 inbound-入库 none-无',
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_pl_plan_delivery_plan` (`plan_id`, `del_flag`) USING BTREE,
KEY `idx_pl_plan_delivery_seq` (`plan_id`, `seq`, `del_flag`) USING BTREE,
KEY `idx_tenant` (`tenant_no`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-送货段';
-- ---------------------------------------------------------------------------
-- 7. 送货段产品明细
-- ---------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS `pl_plan_delivery_product` (
`id` varchar(64) NOT NULL COMMENT '主键ID',
`delivery_id` varchar(64) NOT NULL COMMENT '送货段ID',
`plan_id` varchar(64) NOT NULL COMMENT '计划ID',
`plan_product_id` varchar(64) NOT NULL COMMENT '计划产品行ID',
`product_id` varchar(64) NOT NULL COMMENT '产品ID',
`product_no` varchar(50) NOT NULL COMMENT '产品编号',
`product_name` varchar(200) NOT NULL COMMENT '产品名称',
`model` varchar(100) DEFAULT NULL COMMENT '规格型号',
`unit` varchar(20) NOT NULL DEFAULT '吨' COMMENT '单位',
`package_spec` varchar(200) DEFAULT NULL COMMENT '包装规格',
`delivery_method` varchar(50) DEFAULT NULL COMMENT '送货方式',
`plan_qty` decimal(15,3) DEFAULT NULL COMMENT '本段计划数量',
`outbound_qty` decimal(15,3) DEFAULT NULL COMMENT '出库数量(归档)',
`outbound_price` decimal(15,4) DEFAULT NULL COMMENT '出库单价(归档)',
`outbound_amount` decimal(15,2) DEFAULT NULL COMMENT '出库金额(归档)',
`tenant_no` varchar(64) NOT NULL DEFAULT 'shanxia2.0' COMMENT '租户编号',
`order_num` int(11) DEFAULT NULL COMMENT '排序号',
`remark` varchar(512) DEFAULT NULL COMMENT '备注',
`create_by` varchar(64) DEFAULT NULL COMMENT '创建人id',
`create_dept_id` varchar(64) NOT NULL DEFAULT '' COMMENT '创建人部门ID',
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_by` varchar(64) DEFAULT NULL COMMENT '更新人id',
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`del_flag` smallint(6) NOT NULL DEFAULT '0' COMMENT '删除标记:0-正常 1-已删除',
PRIMARY KEY (`id`) USING BTREE,
KEY `idx_pl_plan_delivery_product_delivery` (`delivery_id`, `del_flag`) USING BTREE,
KEY `idx_pl_plan_delivery_product_plan` (`plan_id`, `del_flag`) USING BTREE,
KEY `idx_pl_plan_delivery_product_pp` (`plan_product_id`) USING BTREE,
KEY `idx_tenant` (`tenant_no`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='运输计划-送货段产品明细';