-- ================================ -- 发货单据(独立于出入库/WMS 单据) -- 目标:用于“订单管理 -> 发货/发货单据”记录发货信息(发货单名称/收货单位/负责人/物流等) -- 说明: -- 1) 一张表存储发货单据主信息;与订单通过 order_id 关联 -- 2) 发货单号 shipping_no 后端自动生成(也可手填/改造) -- 3) 逻辑删除使用 del_flag(0存在 2删除) -- ================================ DROP TABLE IF EXISTS gear_shipping_order; CREATE TABLE gear_shipping_order ( shipping_id bigint(20) NOT NULL COMMENT '发货单据ID', shipping_no varchar(64) NOT NULL COMMENT '发货单号(唯一)', shipping_name varchar(128) DEFAULT '' COMMENT '发货单名称(展示用)', plan_id bigint(20) DEFAULT NULL COMMENT '发货计划ID gear_shipping_plan.plan_id', order_id bigint(20) NOT NULL COMMENT '关联订单ID gear_order.order_id', order_code varchar(64) DEFAULT '' COMMENT '订单编号快照', receiver_company varchar(128) DEFAULT '' COMMENT '收货单位', receiver_customer_id bigint(20) DEFAULT NULL COMMENT '收货客户ID gear_customer.customer_id', ship_time datetime COMMENT '发货时间', responsible_name varchar(64) DEFAULT '' COMMENT '负责人', logistics_company varchar(64) DEFAULT '' COMMENT '物流公司', logistics_no varchar(64) DEFAULT '' COMMENT '运单号', receiver_name varchar(64) DEFAULT '' COMMENT '收货人', receiver_phone varchar(32) DEFAULT '' COMMENT '收货电话', receiver_address varchar(255) DEFAULT '' COMMENT '收货地址', status char(1) NOT NULL DEFAULT '0' COMMENT '完成状态(0未发货 1已打印 2已发货 3已完成)', remark varchar(500) DEFAULT NULL COMMENT '备注', del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)', create_by varchar(64) DEFAULT '' COMMENT '创建者', create_time datetime COMMENT '创建时间', update_by varchar(64) DEFAULT '' COMMENT '更新者', update_time datetime COMMENT '更新时间', PRIMARY KEY (shipping_id), UNIQUE KEY uk_shipping_no (shipping_no), KEY idx_plan_id (plan_id), KEY idx_order_id (order_id), KEY idx_shipping_name (shipping_name), KEY idx_receiver_company (receiver_company), KEY idx_receiver_customer_id (receiver_customer_id), KEY idx_logistics_no (logistics_no), KEY idx_ship_time (ship_time) ) ENGINE=InnoDB COMMENT='发货单据表'; DROP TABLE IF EXISTS gear_shipping_order_detail; CREATE TABLE gear_shipping_order_detail ( detail_id bigint(20) NOT NULL COMMENT '发货单据明细ID', shipping_id bigint(20) NOT NULL COMMENT '发货单据ID gear_shipping_order.shipping_id', product_id bigint(20) NOT NULL COMMENT '产品ID', product_code varchar(64) DEFAULT '' COMMENT '产品编号快照', product_name varchar(255) DEFAULT '' COMMENT '产品名称快照', spec varchar(255) DEFAULT '' COMMENT '规格快照', model varchar(255) DEFAULT '' COMMENT '型号快照', quantity decimal(18,4) NOT NULL DEFAULT 0 COMMENT '数量', unit varchar(32) DEFAULT '' COMMENT '单位', remark varchar(500) DEFAULT NULL COMMENT '备注', sort int DEFAULT 0 COMMENT '排序', del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)', create_by varchar(64) DEFAULT '' COMMENT '创建者', create_time datetime COMMENT '创建时间', update_by varchar(64) DEFAULT '' COMMENT '更新者', update_time datetime COMMENT '更新时间', PRIMARY KEY (detail_id), KEY idx_shipping_id (shipping_id), KEY idx_product_id (product_id) ) ENGINE=InnoDB COMMENT='发货单据明细表'; -- ================================ -- 发货计划(独立表) -- 目标:用于“发货单据”左侧计划列表,计划下可关联多张发货单据(gear_shipping_order.plan_id) -- 说明: -- 1) 一张表存储计划主信息(计划名称/计划日期/状态) -- 2) 逻辑删除使用 del_flag(0存在 2删除) -- ================================ DROP TABLE IF EXISTS gear_shipping_plan; CREATE TABLE gear_shipping_plan ( plan_id bigint(20) NOT NULL COMMENT '发货计划ID', plan_name varchar(128) NOT NULL COMMENT '计划名称', plan_date date NOT NULL COMMENT '计划日期', status char(1) NOT NULL DEFAULT '0' COMMENT '状态(0未完成 1已完成)', remark varchar(500) DEFAULT NULL COMMENT '备注', del_flag char(1) NOT NULL DEFAULT '0' COMMENT '删除标志(0存在 2删除)', create_by varchar(64) DEFAULT '' COMMENT '创建者', create_time datetime COMMENT '创建时间', update_by varchar(64) DEFAULT '' COMMENT '更新者', update_time datetime COMMENT '更新时间', PRIMARY KEY (plan_id), KEY idx_plan_date (plan_date), KEY idx_plan_name (plan_name) ) ENGINE=InnoDB COMMENT='发货计划表';