Files
erp-next/deploy/init-sql/03-bid-tables.sql

238 lines
9.6 KiB
MySQL
Raw Normal View History

-- Drop biz_tenant since it was already created
-- Now run the rest of tables
-- 给 sys_user 增加 tenant_id 字段用于SaaS隔离
DROP PROCEDURE IF EXISTS add_tenant_col;
DELIMITER //
CREATE PROCEDURE add_tenant_col()
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.columns
WHERE table_schema = DATABASE() AND table_name = 'sys_user' AND column_name = 'tenant_id'
) THEN
ALTER TABLE sys_user ADD COLUMN tenant_id BIGINT DEFAULT 1 COMMENT '所属租户';
END IF;
END //
DELIMITER ;
CALL add_tenant_col();
DROP PROCEDURE IF EXISTS add_tenant_col;
-- 物料分类
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)
) 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,
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='供应商';
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,
rfq_title VARCHAR(200) NOT NULL,
deadline DATETIME DEFAULT NULL,
delivery_addr VARCHAR(500) DEFAULT '',
status VARCHAR(20) DEFAULT 'draft',
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='报价请求';
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,
remark VARCHAR(500) DEFAULT '',
PRIMARY KEY (item_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='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',
PRIMARY KEY (id),
UNIQUE KEY uk_rfq_supplier (rfq_id, supplier_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
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 '',
valid_days INT DEFAULT 30,
delivery_days INT DEFAULT 0,
total_amount DECIMAL(15,4) DEFAULT 0,
currency VARCHAR(10) DEFAULT 'CNY',
status VARCHAR(20) DEFAULT 'draft',
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,
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',
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,
delivery_score INT DEFAULT 5,
service_score INT DEFAULT 5,
price_score INT DEFAULT 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,
attachment VARCHAR(500) DEFAULT '',
status VARCHAR(20) DEFAULT 'pending',
resolution TEXT,
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 '',
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(),'','','');