feat(bid): 完成物料管理模块全功能开发
1. 新增物料详情页路由、菜单与接口,支持查看物料报价与信息 2. 重构物料列表页面,新增品牌筛选、表格样式优化与详情跳转 3. 扩展物料实体与数据库字段,新增材质、用途、性能参数等字段 4. 新增供应商/甲方报价查询、批量对比、同名称物料匹配接口 5. 新增物料详情组件,包含基础信息、供应商报价、甲方报价标签页 6. 修复比价路由跳转路径错误,调整数据库密码配置 7. 新增物料相关SQL脚本与初始化数据
This commit is contained in:
53
sql/20250527/01_material_alter.sql
Normal file
53
sql/20250527/01_material_alter.sql
Normal file
@@ -0,0 +1,53 @@
|
||||
-- ========================================================
|
||||
-- 物料信息模块数据库扩展脚本
|
||||
-- 日期: 2025-05-27
|
||||
-- 说明: 根据智采系统-物料信息需求扩展biz_material表
|
||||
-- ========================================================
|
||||
|
||||
-- 1. 扩展物料表字段
|
||||
-- 注意: spec字段保持为"规格型号"不变
|
||||
-- 注意: remark字段保持不变
|
||||
-- 注意: brand字段改为"厂家/品牌"
|
||||
|
||||
-- 使用存储过程判断字段是否存在,避免IF NOT EXISTS语法错误
|
||||
DELIMITER //
|
||||
|
||||
CREATE PROCEDURE AddColumnIfNotExists(IN tableName VARCHAR(64), IN colName VARCHAR(64), IN colDef VARCHAR(255))
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = tableName
|
||||
AND column_name = colName
|
||||
) THEN
|
||||
SET @sql = CONCAT('ALTER TABLE ', tableName, ' ADD COLUMN ', colName, ' ', colDef);
|
||||
PREPARE stmt FROM @sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
-- 添加性能参数字段
|
||||
CALL AddColumnIfNotExists('biz_material', 'performance_params', "TEXT COMMENT '性能参数(JSON格式)'");
|
||||
|
||||
-- 添加材质字段
|
||||
CALL AddColumnIfNotExists('biz_material', 'material', "VARCHAR(100) DEFAULT '' COMMENT '材质(铜/铝合金/PVC等)'");
|
||||
|
||||
-- 添加用途字段
|
||||
CALL AddColumnIfNotExists('biz_material', 'purpose', "VARCHAR(500) DEFAULT '' COMMENT '用途'");
|
||||
|
||||
-- 添加物料图片URL字段
|
||||
CALL AddColumnIfNotExists('biz_material', 'image_url', "VARCHAR(500) DEFAULT '' COMMENT '物料图片URL'");
|
||||
|
||||
-- 删除存储过程
|
||||
DROP PROCEDURE IF EXISTS AddColumnIfNotExists;
|
||||
|
||||
-- 2. 修改brand字段注释为"厂家/品牌"
|
||||
ALTER TABLE biz_material MODIFY COLUMN brand VARCHAR(100) COMMENT '厂家/品牌';
|
||||
|
||||
-- 3. 添加物料详情页菜单配置(使用INSERT IGNORE避免重复)
|
||||
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
|
||||
(2011, '物料详情', 2001, 1, 'detail', 'bid/material/detail', NULL, 1, 0, 'C', '1', '0', 'bid:material:detail', '#', 'admin', NOW(), '', '', '');
|
||||
52
sql/20260527/01_material_extension.sql
Normal file
52
sql/20260527/01_material_extension.sql
Normal file
@@ -0,0 +1,52 @@
|
||||
-- ========================================================
|
||||
-- 物料信息模块数据库扩展脚本(二期)
|
||||
-- 日期: 2026-05-27
|
||||
-- 说明:
|
||||
-- 1. 新增字段: performance_params, material, purpose, image_url
|
||||
-- 2. 修改 brand 字段注释为"厂家/品牌"
|
||||
-- 3. 添加物料详情页菜单配置
|
||||
-- ========================================================
|
||||
|
||||
DELIMITER //
|
||||
|
||||
CREATE PROCEDURE AddColumnIfNotExists(IN tableName VARCHAR(64), IN colName VARCHAR(64), IN colDef VARCHAR(255))
|
||||
BEGIN
|
||||
IF NOT EXISTS (
|
||||
SELECT 1 FROM information_schema.columns
|
||||
WHERE table_schema = DATABASE()
|
||||
AND table_name = tableName
|
||||
AND column_name = colName
|
||||
) THEN
|
||||
SET @sql = CONCAT('ALTER TABLE ', tableName, ' ADD COLUMN ', colName, ' ', colDef);
|
||||
PREPARE stmt FROM @sql;
|
||||
EXECUTE stmt;
|
||||
DEALLOCATE PREPARE stmt;
|
||||
END IF;
|
||||
END //
|
||||
|
||||
DELIMITER ;
|
||||
|
||||
-- 添加性能参数字段(JSON格式存储)
|
||||
CALL AddColumnIfNotExists('biz_material', 'performance_params', "TEXT COMMENT '性能参数(JSON格式)'");
|
||||
|
||||
-- 添加材质字段
|
||||
CALL AddColumnIfNotExists('biz_material', 'material', "VARCHAR(100) DEFAULT '' COMMENT '材质(铜/铝合金/PVC等)'");
|
||||
|
||||
-- 添加用途字段
|
||||
CALL AddColumnIfNotExists('biz_material', 'purpose', "VARCHAR(500) DEFAULT '' COMMENT '用途'");
|
||||
|
||||
-- 添加物料图片URL字段
|
||||
CALL AddColumnIfNotExists('biz_material', 'image_url', "VARCHAR(500) DEFAULT '' COMMENT '物料图片URL'");
|
||||
|
||||
-- 删除存储过程
|
||||
DROP PROCEDURE IF EXISTS AddColumnIfNotExists;
|
||||
|
||||
-- 修改brand字段注释为"厂家/品牌"
|
||||
ALTER TABLE biz_material MODIFY COLUMN brand VARCHAR(100) 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
|
||||
(2011, '物料详情', 2001, 1, 'detail', 'bid/material/detail', NULL, 1, 0, 'C', '1', '0', 'bid:material:detail', '#', 'admin', NOW(), '', '', ''),
|
||||
(2012, '物料新增', 2001, 2, 'add', 'bid/material/add', NULL, 1, 0, 'C', '1', '0', 'bid:material:add', '#', 'admin', NOW(), '', '', ''),
|
||||
(2013, '物料修改', 2001, 3, 'edit', 'bid/material/edit', NULL, 1, 0, 'C', '1', '0', 'bid:material:edit', '#', 'admin', NOW(), '', '', '');
|
||||
@@ -230,6 +230,7 @@ VALUES
|
||||
(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(),'','',''),
|
||||
(2051,'比价详情',2005,1,'detail','bid/comparison/detail',NULL,1,0,'C','1','0','bid:comparison:detail','#','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(),'','',''),
|
||||
|
||||
34
sql/client_quote_fix.sql
Normal file
34
sql/client_quote_fix.sql
Normal file
@@ -0,0 +1,34 @@
|
||||
CREATE TABLE IF NOT EXISTS biz_client_quote (
|
||||
quote_id BIGINT NOT NULL AUTO_INCREMENT,
|
||||
tenant_id BIGINT NOT NULL DEFAULT 1,
|
||||
quote_no VARCHAR(50) DEFAULT '',
|
||||
client_name VARCHAR(200) DEFAULT '',
|
||||
rfq_id BIGINT DEFAULT NULL,
|
||||
rfq_no VARCHAR(50) DEFAULT '',
|
||||
rfq_title VARCHAR(200) DEFAULT '',
|
||||
status VARCHAR(20) DEFAULT 'draft',
|
||||
validity_date DATETIME DEFAULT NULL,
|
||||
total_amount DECIMAL(15,4) DEFAULT 0,
|
||||
currency VARCHAR(10) DEFAULT 'CNY',
|
||||
remark TEXT,
|
||||
create_by VARCHAR(64) DEFAULT '',
|
||||
create_time DATETIME,
|
||||
update_time DATETIME,
|
||||
PRIMARY KEY (quote_id)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='甲方报价单';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS biz_client_quote_item (
|
||||
item_id BIGINT NOT NULL AUTO_INCREMENT,
|
||||
quote_id BIGINT NOT NULL,
|
||||
material_name VARCHAR(200) DEFAULT '',
|
||||
spec VARCHAR(500) DEFAULT '',
|
||||
model_no VARCHAR(200) DEFAULT '',
|
||||
unit VARCHAR(50) DEFAULT '',
|
||||
quantity DECIMAL(15,4) DEFAULT 0,
|
||||
cost_price DECIMAL(15,4) DEFAULT 0,
|
||||
unit_price DECIMAL(15,4) DEFAULT 0,
|
||||
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='甲方报价明细';
|
||||
Reference in New Issue
Block a user