280 lines
13 KiB
MySQL
280 lines
13 KiB
MySQL
|
|
-- 智慧报价平台业务表
|
|||
|
|
-- 租户表(SaaS买方隔离)
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_tenant (
|
|||
|
|
tenant_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_name VARCHAR(100) NOT NULL COMMENT '租户名称',
|
|||
|
|
contact VARCHAR(50) COMMENT '联系人',
|
|||
|
|
phone VARCHAR(20) COMMENT '联系电话',
|
|||
|
|
email VARCHAR(100) COMMENT '邮箱',
|
|||
|
|
status CHAR(1) DEFAULT '0' COMMENT '0正常 1停用',
|
|||
|
|
create_by VARCHAR(64) DEFAULT '',
|
|||
|
|
create_time DATETIME,
|
|||
|
|
update_by VARCHAR(64) DEFAULT '',
|
|||
|
|
update_time DATETIME,
|
|||
|
|
remark VARCHAR(500) DEFAULT NULL,
|
|||
|
|
PRIMARY KEY (tenant_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户表';
|
|||
|
|
|
|||
|
|
INSERT IGNORE INTO biz_tenant(tenant_id,tenant_name,contact,phone,email,status,create_by,create_time)
|
|||
|
|
VALUES(1,'默认租户','管理员','','admin@example.com','0','admin',NOW());
|
|||
|
|
|
|||
|
|
-- 给 sys_user 增加 tenant_id 字段(用于SaaS隔离)
|
|||
|
|
ALTER TABLE sys_user ADD COLUMN IF NOT EXISTS tenant_id BIGINT DEFAULT 1 COMMENT '所属租户';
|
|||
|
|
|
|||
|
|
-- 物料分类
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_material_category (
|
|||
|
|
category_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
category_name VARCHAR(100) NOT NULL,
|
|||
|
|
parent_id BIGINT DEFAULT 0,
|
|||
|
|
ancestors VARCHAR(500) DEFAULT '',
|
|||
|
|
sort INT DEFAULT 0,
|
|||
|
|
status CHAR(1) DEFAULT '0',
|
|||
|
|
create_by VARCHAR(64) DEFAULT '',
|
|||
|
|
create_time DATETIME,
|
|||
|
|
PRIMARY KEY (category_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物料分类';
|
|||
|
|
|
|||
|
|
-- 物料
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_material (
|
|||
|
|
material_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
category_id BIGINT DEFAULT 0,
|
|||
|
|
material_code VARCHAR(50) NOT NULL COMMENT '物料编码',
|
|||
|
|
material_name VARCHAR(200) NOT NULL COMMENT '物料名称',
|
|||
|
|
spec VARCHAR(500) DEFAULT '' COMMENT '规格型号',
|
|||
|
|
unit VARCHAR(50) DEFAULT '' COMMENT '单位',
|
|||
|
|
brand VARCHAR(100) DEFAULT '' COMMENT '品牌',
|
|||
|
|
description TEXT COMMENT '描述',
|
|||
|
|
status CHAR(1) DEFAULT '0',
|
|||
|
|
create_by VARCHAR(64) DEFAULT '',
|
|||
|
|
create_time DATETIME,
|
|||
|
|
update_by VARCHAR(64) DEFAULT '',
|
|||
|
|
update_time DATETIME,
|
|||
|
|
remark VARCHAR(500) DEFAULT NULL,
|
|||
|
|
PRIMARY KEY (material_id),
|
|||
|
|
UNIQUE KEY uk_code_tenant (tenant_id, material_code)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='物料';
|
|||
|
|
|
|||
|
|
-- 供应商
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_supplier (
|
|||
|
|
supplier_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
supplier_name VARCHAR(200) NOT NULL,
|
|||
|
|
contact VARCHAR(50) DEFAULT '',
|
|||
|
|
phone VARCHAR(20) DEFAULT '',
|
|||
|
|
email VARCHAR(100) DEFAULT '',
|
|||
|
|
address VARCHAR(500) DEFAULT '',
|
|||
|
|
user_id BIGINT DEFAULT NULL COMMENT '关联系统用户',
|
|||
|
|
status CHAR(1) DEFAULT '0',
|
|||
|
|
create_by VARCHAR(64) DEFAULT '',
|
|||
|
|
create_time DATETIME,
|
|||
|
|
update_by VARCHAR(64) DEFAULT '',
|
|||
|
|
update_time DATETIME,
|
|||
|
|
remark VARCHAR(500) DEFAULT NULL,
|
|||
|
|
PRIMARY KEY (supplier_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供应商';
|
|||
|
|
|
|||
|
|
-- 报价请求(RFQ)
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_rfq (
|
|||
|
|
rfq_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
rfq_no VARCHAR(50) NOT NULL COMMENT 'RFQ编号',
|
|||
|
|
rfq_title VARCHAR(200) NOT NULL COMMENT 'RFQ标题',
|
|||
|
|
deadline DATETIME DEFAULT NULL COMMENT '截止日期',
|
|||
|
|
delivery_addr VARCHAR(500) DEFAULT '' COMMENT '交货地址',
|
|||
|
|
status VARCHAR(20) DEFAULT 'draft' COMMENT 'draft/published/closed/completed',
|
|||
|
|
remark TEXT,
|
|||
|
|
create_by VARCHAR(64) DEFAULT '',
|
|||
|
|
create_time DATETIME,
|
|||
|
|
update_by VARCHAR(64) DEFAULT '',
|
|||
|
|
update_time DATETIME,
|
|||
|
|
PRIMARY KEY (rfq_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报价请求';
|
|||
|
|
|
|||
|
|
-- RFQ物料明细
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_rfq_item (
|
|||
|
|
item_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
rfq_id BIGINT NOT NULL,
|
|||
|
|
material_id BIGINT DEFAULT 0,
|
|||
|
|
material_name VARCHAR(200) NOT NULL,
|
|||
|
|
spec VARCHAR(500) DEFAULT '',
|
|||
|
|
unit VARCHAR(50) DEFAULT '',
|
|||
|
|
quantity DECIMAL(15,4) NOT NULL,
|
|||
|
|
expected_price DECIMAL(15,4) DEFAULT NULL COMMENT '预期单价',
|
|||
|
|
remark VARCHAR(500) DEFAULT '',
|
|||
|
|
PRIMARY KEY (item_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='RFQ物料明细';
|
|||
|
|
|
|||
|
|
-- RFQ邀请供应商
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_rfq_supplier (
|
|||
|
|
id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
rfq_id BIGINT NOT NULL,
|
|||
|
|
supplier_id BIGINT NOT NULL,
|
|||
|
|
invited_time DATETIME DEFAULT NULL,
|
|||
|
|
quoted_time DATETIME DEFAULT NULL,
|
|||
|
|
status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/quoted/declined',
|
|||
|
|
PRIMARY KEY (id),
|
|||
|
|
UNIQUE KEY uk_rfq_supplier (rfq_id, supplier_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='RFQ邀请供应商';
|
|||
|
|
|
|||
|
|
-- 供应商报价单
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_quotation (
|
|||
|
|
quotation_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
rfq_id BIGINT NOT NULL,
|
|||
|
|
supplier_id BIGINT NOT NULL,
|
|||
|
|
quote_no VARCHAR(50) DEFAULT '' COMMENT '报价单编号',
|
|||
|
|
valid_days INT DEFAULT 30 COMMENT '报价有效天数',
|
|||
|
|
delivery_days INT DEFAULT 0 COMMENT '交货天数',
|
|||
|
|
total_amount DECIMAL(15,4) DEFAULT 0 COMMENT '总金额',
|
|||
|
|
currency VARCHAR(10) DEFAULT 'CNY',
|
|||
|
|
status VARCHAR(20) DEFAULT 'draft' COMMENT 'draft/submitted/accepted/rejected',
|
|||
|
|
note TEXT,
|
|||
|
|
submit_time DATETIME DEFAULT NULL,
|
|||
|
|
create_by VARCHAR(64) DEFAULT '',
|
|||
|
|
create_time DATETIME,
|
|||
|
|
update_time DATETIME,
|
|||
|
|
PRIMARY KEY (quotation_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供应商报价单';
|
|||
|
|
|
|||
|
|
-- 报价明细
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_quotation_item (
|
|||
|
|
item_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
quotation_id BIGINT NOT NULL,
|
|||
|
|
rfq_item_id BIGINT NOT NULL,
|
|||
|
|
material_name VARCHAR(200) DEFAULT '',
|
|||
|
|
spec VARCHAR(500) DEFAULT '',
|
|||
|
|
unit VARCHAR(50) DEFAULT '',
|
|||
|
|
quantity DECIMAL(15,4) DEFAULT 0,
|
|||
|
|
unit_price DECIMAL(15,4) NOT NULL,
|
|||
|
|
total_price DECIMAL(15,4) DEFAULT 0,
|
|||
|
|
delivery_days INT DEFAULT 0,
|
|||
|
|
remark VARCHAR(500) DEFAULT '',
|
|||
|
|
PRIMARY KEY (item_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报价明细';
|
|||
|
|
|
|||
|
|
-- 采购单
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_purchase_order (
|
|||
|
|
po_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
po_no VARCHAR(50) NOT NULL COMMENT '采购单编号',
|
|||
|
|
rfq_id BIGINT DEFAULT NULL,
|
|||
|
|
supplier_id BIGINT NOT NULL,
|
|||
|
|
total_amount DECIMAL(15,4) DEFAULT 0,
|
|||
|
|
currency VARCHAR(10) DEFAULT 'CNY',
|
|||
|
|
delivery_addr VARCHAR(500) DEFAULT '',
|
|||
|
|
delivery_date DATE DEFAULT NULL,
|
|||
|
|
status VARCHAR(20) DEFAULT 'draft' COMMENT 'draft/confirmed/delivered/closed/disputed',
|
|||
|
|
remark TEXT,
|
|||
|
|
create_by VARCHAR(64) DEFAULT '',
|
|||
|
|
create_time DATETIME,
|
|||
|
|
update_by VARCHAR(64) DEFAULT '',
|
|||
|
|
update_time DATETIME,
|
|||
|
|
PRIMARY KEY (po_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采购单';
|
|||
|
|
|
|||
|
|
-- 采购单明细
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_purchase_order_item (
|
|||
|
|
item_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
po_id BIGINT NOT NULL,
|
|||
|
|
material_id BIGINT DEFAULT 0,
|
|||
|
|
material_name VARCHAR(200) NOT NULL,
|
|||
|
|
spec VARCHAR(500) DEFAULT '',
|
|||
|
|
unit VARCHAR(50) DEFAULT '',
|
|||
|
|
quantity DECIMAL(15,4) NOT NULL,
|
|||
|
|
unit_price DECIMAL(15,4) NOT NULL,
|
|||
|
|
total_price DECIMAL(15,4) DEFAULT 0,
|
|||
|
|
remark VARCHAR(500) DEFAULT '',
|
|||
|
|
PRIMARY KEY (item_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='采购单明细';
|
|||
|
|
|
|||
|
|
-- 供应商评价
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_supplier_evaluation (
|
|||
|
|
eval_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
po_id BIGINT NOT NULL,
|
|||
|
|
supplier_id BIGINT NOT NULL,
|
|||
|
|
quality_score INT DEFAULT 5 COMMENT '质量评分1-5',
|
|||
|
|
delivery_score INT DEFAULT 5 COMMENT '交期评分1-5',
|
|||
|
|
service_score INT DEFAULT 5 COMMENT '服务评分1-5',
|
|||
|
|
price_score INT DEFAULT 5 COMMENT '价格评分1-5',
|
|||
|
|
total_score DECIMAL(3,1) DEFAULT 5.0,
|
|||
|
|
comment TEXT,
|
|||
|
|
evaluator VARCHAR(64) DEFAULT '',
|
|||
|
|
eval_time DATETIME,
|
|||
|
|
PRIMARY KEY (eval_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='供应商评价';
|
|||
|
|
|
|||
|
|
-- 订单异议
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_order_objection (
|
|||
|
|
objection_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
po_id BIGINT NOT NULL,
|
|||
|
|
supplier_id BIGINT NOT NULL,
|
|||
|
|
reason TEXT NOT NULL COMMENT '异议原因',
|
|||
|
|
attachment VARCHAR(500) DEFAULT '' COMMENT '附件',
|
|||
|
|
status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/processing/resolved/rejected',
|
|||
|
|
resolution TEXT COMMENT '处理结果',
|
|||
|
|
create_by VARCHAR(64) DEFAULT '',
|
|||
|
|
create_time DATETIME,
|
|||
|
|
resolve_time DATETIME DEFAULT NULL,
|
|||
|
|
PRIMARY KEY (objection_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='订单异议';
|
|||
|
|
|
|||
|
|
-- 交易记录
|
|||
|
|
CREATE TABLE IF NOT EXISTS biz_transaction (
|
|||
|
|
tx_id BIGINT NOT NULL AUTO_INCREMENT,
|
|||
|
|
tenant_id BIGINT NOT NULL DEFAULT 1,
|
|||
|
|
po_id BIGINT DEFAULT NULL,
|
|||
|
|
supplier_id BIGINT DEFAULT NULL,
|
|||
|
|
tx_type VARCHAR(50) DEFAULT '' COMMENT '类型:RFQ/QUOTE/PO/EVAL',
|
|||
|
|
tx_no VARCHAR(50) DEFAULT '',
|
|||
|
|
amount DECIMAL(15,4) DEFAULT NULL,
|
|||
|
|
currency VARCHAR(10) DEFAULT 'CNY',
|
|||
|
|
description TEXT,
|
|||
|
|
operator VARCHAR(64) DEFAULT '',
|
|||
|
|
tx_time DATETIME,
|
|||
|
|
create_time DATETIME,
|
|||
|
|
PRIMARY KEY (tx_id)
|
|||
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易记录';
|
|||
|
|
|
|||
|
|
-- 系统菜单(智慧报价平台业务菜单)
|
|||
|
|
INSERT IGNORE INTO sys_menu(menu_id,menu_name,parent_id,order_num,path,component,query,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time,update_by,update_time,remark)
|
|||
|
|
VALUES
|
|||
|
|
(2000,'智慧报价',0,5,'bid',NULL,NULL,'1','0','M','0','0','','#','admin',NOW(),'','',''),
|
|||
|
|
(2001,'物料管理',2000,1,'material','bid/material/index',NULL,'1','0','C','0','0','bid:material:list','component','admin',NOW(),'','',''),
|
|||
|
|
(2002,'供应商管理',2000,2,'supplier','bid/supplier/index',NULL,'1','0','C','0','0','bid:supplier:list','user','admin',NOW(),'','',''),
|
|||
|
|
(2003,'报价请求',2000,3,'rfq','bid/rfq/index',NULL,'1','0','C','0','0','bid:rfq:list','form','admin',NOW(),'','',''),
|
|||
|
|
(2004,'供应商报价',2000,4,'quotation','bid/quotation/index',NULL,'1','0','C','0','0','bid:quotation:list','money','admin',NOW(),'','',''),
|
|||
|
|
(2005,'智慧比价',2000,5,'comparison','bid/comparison/index',NULL,'1','0','C','0','0','bid:comparison:list','chart','admin',NOW(),'','',''),
|
|||
|
|
(2006,'采购单',2000,6,'purchaseorder','bid/purchaseorder/index',NULL,'1','0','C','0','0','bid:purchaseorder:list','shopping','admin',NOW(),'','',''),
|
|||
|
|
(2007,'供应商评价',2000,7,'evaluation','bid/evaluation/index',NULL,'1','0','C','0','0','bid:evaluation:list','star','admin',NOW(),'','',''),
|
|||
|
|
(2008,'订单异议',2000,8,'objection','bid/objection/index',NULL,'1','0','C','0','0','bid:objection:list','warning','admin',NOW(),'','',''),
|
|||
|
|
(2009,'交易记录',2000,9,'transaction','bid/transaction/index',NULL,'1','0','C','0','0','bid:transaction:list','list','admin',NOW(),'','',''),
|
|||
|
|
(2010,'租户管理',2000,10,'tenant','bid/tenant/index',NULL,'1','0','C','0','0','bid:tenant:list','peoples','admin',NOW(),'','','');
|
|||
|
|
|
|||
|
|
-- 菜单按钮权限
|
|||
|
|
INSERT IGNORE INTO sys_menu(menu_id,menu_name,parent_id,order_num,path,component,query,is_frame,is_cache,menu_type,visible,status,perms,icon,create_by,create_time)
|
|||
|
|
VALUES
|
|||
|
|
(2101,'物料查询',2001,1,'','','','1','0','F','0','0','bid:material:query','#','admin',NOW()),
|
|||
|
|
(2102,'物料新增',2001,2,'','','','1','0','F','0','0','bid:material:add','#','admin',NOW()),
|
|||
|
|
(2103,'物料修改',2001,3,'','','','1','0','F','0','0','bid:material:edit','#','admin',NOW()),
|
|||
|
|
(2104,'物料删除',2001,4,'','','','1','0','F','0','0','bid:material:remove','#','admin',NOW()),
|
|||
|
|
(2201,'供应商查询',2002,1,'','','','1','0','F','0','0','bid:supplier:query','#','admin',NOW()),
|
|||
|
|
(2202,'供应商新增',2002,2,'','','','1','0','F','0','0','bid:supplier:add','#','admin',NOW()),
|
|||
|
|
(2203,'供应商修改',2002,3,'','','','1','0','F','0','0','bid:supplier:edit','#','admin',NOW()),
|
|||
|
|
(2204,'供应商删除',2002,4,'','','','1','0','F','0','0','bid:supplier:remove','#','admin',NOW()),
|
|||
|
|
(2301,'RFQ查询',2003,1,'','','','1','0','F','0','0','bid:rfq:query','#','admin',NOW()),
|
|||
|
|
(2302,'RFQ新增',2003,2,'','','','1','0','F','0','0','bid:rfq:add','#','admin',NOW()),
|
|||
|
|
(2303,'RFQ修改',2003,3,'','','','1','0','F','0','0','bid:rfq:edit','#','admin',NOW()),
|
|||
|
|
(2304,'RFQ删除',2003,4,'','','','1','0','F','0','0','bid:rfq:remove','#','admin',NOW()),
|
|||
|
|
(2305,'发布RFQ',2003,5,'','','','1','0','F','0','0','bid:rfq:publish','#','admin',NOW()),
|
|||
|
|
(2401,'报价查询',2004,1,'','','','1','0','F','0','0','bid:quotation:query','#','admin',NOW()),
|
|||
|
|
(2402,'报价新增',2004,2,'','','','1','0','F','0','0','bid:quotation:add','#','admin',NOW()),
|
|||
|
|
(2403,'报价修改',2004,3,'','','','1','0','F','0','0','bid:quotation:edit','#','admin',NOW()),
|
|||
|
|
(2601,'采购单查询',2006,1,'','','','1','0','F','0','0','bid:purchaseorder:query','#','admin',NOW()),
|
|||
|
|
(2602,'采购单新增',2006,2,'','','','1','0','F','0','0','bid:purchaseorder:add','#','admin',NOW()),
|
|||
|
|
(2603,'采购单修改',2006,3,'','','','1','0','F','0','0','bid:purchaseorder:edit','#','admin',NOW()),
|
|||
|
|
(2604,'采购单删除',2006,4,'','','','1','0','F','0','0','bid:purchaseorder:remove','#','admin',NOW());
|