#合作商档案表(委外管理 - 合作商,独立于供应商 supplier_manage)
|
drop table if exists outsourcing_partner;
|
create table outsourcing_partner
|
(
|
id bigint auto_increment primary key,
|
partner_name varchar(100) not null comment '合作商名称',
|
taxpayer_identification_num varchar(50) null comment '纳税人识别号',
|
company_address varchar(255) null comment '公司地址',
|
company_phone varchar(50) null comment '公司电话',
|
bank_account_name varchar(100) null comment '开户行名称',
|
bank_account_num varchar(50) null comment '银行账号',
|
contact_user_name varchar(50) null comment '联系人姓名',
|
contact_user_phone varchar(50) null comment '联系人电话',
|
maintain_user_id bigint null comment '维护人id',
|
maintain_time date null comment '维护时间',
|
partner_type varchar(50) null comment '合作商类型',
|
is_white tinyint(1) default 1 comment '是否白名单 1是 0否',
|
remark varchar(500) null comment '备注',
|
tenant_id bigint null comment '租户ID',
|
dept_id bigint null comment '部门ID',
|
create_user bigint null comment '创建人ID',
|
create_time datetime null comment '创建时间',
|
update_time datetime null comment '更新时间',
|
index idx_partner_name (partner_name),
|
index idx_tenant_partner (tenant_id, partner_name)
|
);
|
|
#委外订单主表
|
drop table if exists outsourcing_order;
|
create table outsourcing_order
|
(
|
id bigint auto_increment primary key,
|
order_no varchar(50) not null comment '委外订单号',
|
partner_id bigint null comment '合作商id',
|
partner_name varchar(100) null comment '合作商名称',
|
apply_date date null comment '申请日期',
|
expected_delivery_date date null comment '期望交付日期',
|
project_name varchar(100) null comment '项目名称',
|
contract_amount decimal(18, 2) null comment '委外金额(含税总价)',
|
payment_method varchar(255) null comment '付款方式',
|
remarks text null comment '备注',
|
status tinyint not null default 0 comment '状态 0草稿 1已确认 2已完成 3已作废',
|
confirm_time datetime null comment '确认时间',
|
cancel_reason varchar(255) null comment '作废原因',
|
tenant_id bigint null comment '租户ID',
|
dept_id bigint null comment '部门ID',
|
create_user bigint null comment '创建人ID',
|
create_time datetime null comment '创建时间',
|
update_time datetime null comment '更新时间',
|
index idx_order_no (order_no),
|
index idx_partner_id (partner_id),
|
index idx_status (status)
|
);
|
|
#委外订单产品明细表
|
drop table if exists outsourcing_order_product;
|
create table outsourcing_order_product
|
(
|
id bigint auto_increment primary key,
|
outsourcing_order_id bigint not null comment '委外订单id',
|
product_id bigint null comment '产品id',
|
product_model_id bigint null comment '产品规格id',
|
product_category varchar(100) null comment '产品大类',
|
specification_model varchar(100) null comment '规格型号',
|
unit varchar(20) null comment '单位',
|
quantity decimal(18, 2) not null default 0 comment '数量',
|
tax_rate decimal(5, 0) null comment '税率',
|
tax_inclusive_unit_price decimal(18, 2) null comment '含税单价',
|
tax_inclusive_total_price decimal(18, 2) null comment '含税总价',
|
tax_exclusive_total_price decimal(18, 2) null comment '不含税总价',
|
invoice_type varchar(50) null comment '发票类型',
|
is_scrap tinyint(1) not null default 0 comment '是否报废品选料 0否 1是',
|
stock_inventory_id bigint null comment '选用的报废品合格库存id(stock_inventory.id,只读引用,不回写库存)',
|
batch_no varchar(64) null comment '报废品批号',
|
available_quantity decimal(18, 2) null comment '下单时该批次可用量快照',
|
remark varchar(255) null comment '备注',
|
tenant_id bigint null comment '租户ID',
|
dept_id bigint null comment '部门ID',
|
create_user bigint null comment '创建人ID',
|
create_time datetime null comment '创建时间',
|
update_time datetime null comment '更新时间',
|
index idx_outsourcing_order_id (outsourcing_order_id),
|
index idx_stock_inventory_id (stock_inventory_id)
|
);
|
|
# 报废品选料改走合格库存(stock_inventory),明细列随之改名;已建过表的环境执行(2026-09-20 已在开发库执行):
|
# ALTER TABLE outsourcing_order_product
|
# CHANGE COLUMN stock_uninventory_id stock_inventory_id bigint null comment '选用的报废品合格库存id(stock_inventory.id,只读引用,不回写库存)';
|
# ALTER TABLE outsourcing_order_product RENAME INDEX idx_stock_uninventory_id TO idx_stock_inventory_id;
|
|
# 合作商往来取 payment_record(party_type=3 and direction=1) 作为「已付款」列
|
# 已建过表的环境执行:
|
# ALTER TABLE payment_record MODIFY COLUMN party_type tinyint not null comment '往来方类型 1客户 2供应商 3合作商';
|