销售发货

This commit is contained in:
朱昊天
2026-05-18 17:48:43 +08:00
parent f94ddb433d
commit 264ca0e407
59 changed files with 8181 additions and 603 deletions

View File

@@ -0,0 +1,30 @@
-- ================================
-- 订单生产记录(按订单明细行维度)
-- 目标:用于“订单管理 -> 生产成果”记录每个订单明细行的计划/完成/不良等生产数据
-- 说明:
-- 1) 与 gear_order_detail 通过 order_detail_id 关联;与订单通过 order_id 关联
-- 2) init 接口会按订单明细自动生成缺失记录,并同步计划数量 plan_qty
-- 3) 逻辑删除使用 del_flag0存在 2删除
-- ================================
DROP TABLE IF EXISTS gear_order_production;
CREATE TABLE gear_order_production (
production_id bigint(20) NOT NULL COMMENT '生产记录ID',
order_id bigint(20) NOT NULL COMMENT '订单ID gear_order.order_id',
order_detail_id bigint(20) NOT NULL COMMENT '订单明细ID gear_order_detail.detail_id',
product_id bigint(20) DEFAULT NULL COMMENT '产品ID快照便于展示',
plan_qty decimal(16,4) NOT NULL DEFAULT 0 COMMENT '计划生产数量(通常=订单明细数量)',
finished_qty decimal(16,4) NOT NULL DEFAULT 0 COMMENT '累计完成数量',
bad_qty decimal(16,4) NOT NULL DEFAULT 0 COMMENT '不良数量',
unit varchar(32) DEFAULT '' COMMENT '单位',
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 (production_id),
UNIQUE KEY uk_order_detail_id_del (order_detail_id, del_flag),
KEY idx_order_id (order_id),
KEY idx_product_id (product_id)
) ENGINE=InnoDB COMMENT='订单生产记录表';

View File

@@ -0,0 +1,68 @@
-- ================================
-- 发货单据(独立于出入库/WMS 单据)
-- 目标:用于“订单管理 -> 发货/发货单据”记录发货信息(发货单名称/收货单位/负责人/物流等)
-- 说明:
-- 1) 一张表存储发货单据主信息;与订单通过 order_id 关联
-- 2) 发货单号 shipping_no 后端自动生成(也可手填/改造)
-- 3) 逻辑删除使用 del_flag0存在 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='发货单据表';
-- ================================
-- 发货计划(独立表)
-- 目标用于“发货单据”左侧计划列表计划下可关联多张发货单据gear_shipping_order.plan_id
-- 说明:
-- 1) 一张表存储计划主信息(计划名称/计划日期/状态)
-- 2) 逻辑删除使用 del_flag0存在 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='发货计划表';