| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- -- 运输计划 · 一车多卸重构 — 装货/送货段表
- -- 设计文档: 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='运输计划-送货段产品明细';
|