diff --git a/deploy/init-sql/03-bid-tables.sql b/deploy/init-sql/03-bid-tables.sql index ae038138..78087a69 100644 --- a/deploy/init-sql/03-bid-tables.sql +++ b/deploy/init-sql/03-bid-tables.sql @@ -1,25 +1,21 @@ --- 智慧报价平台业务表 --- 租户表(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()); +-- Drop biz_tenant since it was already created +-- Now run the rest of tables -- 给 sys_user 增加 tenant_id 字段(用于SaaS隔离) -ALTER TABLE sys_user ADD COLUMN IF NOT EXISTS tenant_id BIGINT DEFAULT 1 COMMENT '所属租户'; +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 ( @@ -35,7 +31,6 @@ CREATE TABLE IF NOT EXISTS biz_material_category ( 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, @@ -52,11 +47,9 @@ CREATE TABLE IF NOT EXISTS biz_material ( 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) + 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, @@ -65,7 +58,7 @@ CREATE TABLE IF NOT EXISTS biz_supplier ( phone VARCHAR(20) DEFAULT '', email VARCHAR(100) DEFAULT '', address VARCHAR(500) DEFAULT '', - user_id BIGINT DEFAULT NULL COMMENT '关联系统用户', + user_id BIGINT DEFAULT NULL, status CHAR(1) DEFAULT '0', create_by VARCHAR(64) DEFAULT '', create_time DATETIME, @@ -75,15 +68,14 @@ CREATE TABLE IF NOT EXISTS biz_supplier ( 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', + 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, @@ -92,7 +84,6 @@ CREATE TABLE IF NOT EXISTS biz_rfq ( 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, @@ -101,35 +92,33 @@ CREATE TABLE IF NOT EXISTS biz_rfq_item ( spec VARCHAR(500) DEFAULT '', unit VARCHAR(50) DEFAULT '', quantity DECIMAL(15,4) NOT NULL, - expected_price DECIMAL(15,4) DEFAULT NULL COMMENT '预期单价', + expected_price DECIMAL(15,4) DEFAULT NULL, 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', + status VARCHAR(20) DEFAULT 'pending', PRIMARY KEY (id), UNIQUE KEY uk_rfq_supplier (rfq_id, supplier_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='RFQ邀请供应商'; +) 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 '' COMMENT '报价单编号', - valid_days INT DEFAULT 30 COMMENT '报价有效天数', - delivery_days INT DEFAULT 0 COMMENT '交货天数', - total_amount DECIMAL(15,4) DEFAULT 0 COMMENT '总金额', + 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' COMMENT 'draft/submitted/accepted/rejected', + status VARCHAR(20) DEFAULT 'draft', note TEXT, submit_time DATETIME DEFAULT NULL, create_by VARCHAR(64) DEFAULT '', @@ -138,7 +127,6 @@ CREATE TABLE IF NOT EXISTS biz_quotation ( 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, @@ -154,18 +142,17 @@ CREATE TABLE IF NOT EXISTS biz_quotation_item ( 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 '采购单编号', + 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' COMMENT 'draft/confirmed/delivered/closed/disputed', + status VARCHAR(20) DEFAULT 'draft', remark TEXT, create_by VARCHAR(64) DEFAULT '', create_time DATETIME, @@ -174,7 +161,6 @@ CREATE TABLE IF NOT EXISTS biz_purchase_order ( 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, @@ -189,16 +175,15 @@ CREATE TABLE IF NOT EXISTS biz_purchase_order_item ( 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', + 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 '', @@ -206,29 +191,27 @@ CREATE TABLE IF NOT EXISTS biz_supplier_evaluation ( 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 '处理结果', + 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 '' COMMENT '类型:RFQ/QUOTE/PO/EVAL', + tx_type VARCHAR(50) DEFAULT '', tx_no VARCHAR(50) DEFAULT '', amount DECIMAL(15,4) DEFAULT NULL, currency VARCHAR(10) DEFAULT 'CNY', @@ -239,41 +222,16 @@ CREATE TABLE IF NOT EXISTS biz_transaction ( 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()); +(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(),'','',''); diff --git a/sql/bid_tables.sql b/sql/bid_tables.sql index ae038138..78087a69 100644 --- a/sql/bid_tables.sql +++ b/sql/bid_tables.sql @@ -1,25 +1,21 @@ --- 智慧报价平台业务表 --- 租户表(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()); +-- Drop biz_tenant since it was already created +-- Now run the rest of tables -- 给 sys_user 增加 tenant_id 字段(用于SaaS隔离) -ALTER TABLE sys_user ADD COLUMN IF NOT EXISTS tenant_id BIGINT DEFAULT 1 COMMENT '所属租户'; +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 ( @@ -35,7 +31,6 @@ CREATE TABLE IF NOT EXISTS biz_material_category ( 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, @@ -52,11 +47,9 @@ CREATE TABLE IF NOT EXISTS biz_material ( 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) + 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, @@ -65,7 +58,7 @@ CREATE TABLE IF NOT EXISTS biz_supplier ( phone VARCHAR(20) DEFAULT '', email VARCHAR(100) DEFAULT '', address VARCHAR(500) DEFAULT '', - user_id BIGINT DEFAULT NULL COMMENT '关联系统用户', + user_id BIGINT DEFAULT NULL, status CHAR(1) DEFAULT '0', create_by VARCHAR(64) DEFAULT '', create_time DATETIME, @@ -75,15 +68,14 @@ CREATE TABLE IF NOT EXISTS biz_supplier ( 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', + 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, @@ -92,7 +84,6 @@ CREATE TABLE IF NOT EXISTS biz_rfq ( 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, @@ -101,35 +92,33 @@ CREATE TABLE IF NOT EXISTS biz_rfq_item ( spec VARCHAR(500) DEFAULT '', unit VARCHAR(50) DEFAULT '', quantity DECIMAL(15,4) NOT NULL, - expected_price DECIMAL(15,4) DEFAULT NULL COMMENT '预期单价', + expected_price DECIMAL(15,4) DEFAULT NULL, 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', + status VARCHAR(20) DEFAULT 'pending', PRIMARY KEY (id), UNIQUE KEY uk_rfq_supplier (rfq_id, supplier_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='RFQ邀请供应商'; +) 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 '' COMMENT '报价单编号', - valid_days INT DEFAULT 30 COMMENT '报价有效天数', - delivery_days INT DEFAULT 0 COMMENT '交货天数', - total_amount DECIMAL(15,4) DEFAULT 0 COMMENT '总金额', + 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' COMMENT 'draft/submitted/accepted/rejected', + status VARCHAR(20) DEFAULT 'draft', note TEXT, submit_time DATETIME DEFAULT NULL, create_by VARCHAR(64) DEFAULT '', @@ -138,7 +127,6 @@ CREATE TABLE IF NOT EXISTS biz_quotation ( 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, @@ -154,18 +142,17 @@ CREATE TABLE IF NOT EXISTS biz_quotation_item ( 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 '采购单编号', + 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' COMMENT 'draft/confirmed/delivered/closed/disputed', + status VARCHAR(20) DEFAULT 'draft', remark TEXT, create_by VARCHAR(64) DEFAULT '', create_time DATETIME, @@ -174,7 +161,6 @@ CREATE TABLE IF NOT EXISTS biz_purchase_order ( 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, @@ -189,16 +175,15 @@ CREATE TABLE IF NOT EXISTS biz_purchase_order_item ( 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', + 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 '', @@ -206,29 +191,27 @@ CREATE TABLE IF NOT EXISTS biz_supplier_evaluation ( 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 '处理结果', + 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 '' COMMENT '类型:RFQ/QUOTE/PO/EVAL', + tx_type VARCHAR(50) DEFAULT '', tx_no VARCHAR(50) DEFAULT '', amount DECIMAL(15,4) DEFAULT NULL, currency VARCHAR(10) DEFAULT 'CNY', @@ -239,41 +222,16 @@ CREATE TABLE IF NOT EXISTS biz_transaction ( 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()); +(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(),'','','');