feat(bid): 新增历史报价参考功能并修复多租户与数据库约束问题

1.  为比价功能新增历史报价查询逻辑,当物料无当前RFQ报价时补充同物料其他RFQ的最近报价
2.  修复BizComparisonController的多租户ID获取逻辑,兼容无租户场景
3.  扩展报价单状态范围,将draft状态纳入有效报价统计
4.  新增发货单相关数据库表与修复脚本,修正biz_delivery_order的非空约束问题
5.  优化前端比价页面布局,移除旧的卡片式报价展示,统一使用表格展示
6.  修复类型转换与空指针风险,完善工具类方法的兼容性处理
7.  优化评分排序与徽章标记逻辑,避免覆盖自定义徽章
This commit is contained in:
2026-06-17 02:54:35 +08:00
parent f5b91c3bd0
commit 38f6246090
7 changed files with 204 additions and 21 deletions

View File

@@ -222,6 +222,47 @@ CREATE TABLE IF NOT EXISTS biz_transaction (
PRIMARY KEY (tx_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='交易记录';
-- ═══════════════════════════════════════════════════════════════
-- 发货单(注:该表需手动创建,此前未包含在 DDL 中)
-- ═══════════════════════════════════════════════════════════════
CREATE TABLE IF NOT EXISTS biz_delivery_order (
do_id BIGINT NOT NULL AUTO_INCREMENT,
tenant_id BIGINT NOT NULL DEFAULT 1,
do_no VARCHAR(50) NOT NULL COMMENT '发货单号',
type VARCHAR(20) DEFAULT NULL COMMENT '类型(supplier/client)',
rfq_id BIGINT DEFAULT NULL COMMENT '关联RFQ ID(client类型可为空)',
quotation_id BIGINT DEFAULT NULL COMMENT '关联报价单ID',
client_quote_id BIGINT DEFAULT NULL COMMENT '关联甲方报价单ID',
supplier_id BIGINT DEFAULT NULL COMMENT '供应商ID(client类型可为空)',
total_amount DECIMAL(15,4) DEFAULT 0 COMMENT '总金额',
currency VARCHAR(10) DEFAULT 'CNY',
delivery_date DATE DEFAULT NULL COMMENT '交货日期',
delay_date DATE DEFAULT NULL COMMENT '延期日期',
actual_close_date DATE DEFAULT NULL COMMENT '实际结单日期',
close_date_set_by VARCHAR(64) DEFAULT '' COMMENT '结单设置人',
delivery_status VARCHAR(20) DEFAULT 'pending' COMMENT '状态(pending/transit/history/confirmed/rejected)',
remark VARCHAR(500) DEFAULT NULL,
create_by VARCHAR(64) DEFAULT '',
create_time DATETIME,
update_by VARCHAR(64) DEFAULT '',
update_time DATETIME,
PRIMARY KEY (do_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='发货单';
CREATE TABLE IF NOT EXISTS biz_delivery_order_item (
item_id BIGINT NOT NULL AUTO_INCREMENT,
do_id BIGINT NOT NULL COMMENT '发货单ID',
material_id BIGINT DEFAULT 0,
material_name VARCHAR(200) DEFAULT '',
spec VARCHAR(500) DEFAULT '',
unit VARCHAR(50) DEFAULT '',
quantity DECIMAL(15,4) DEFAULT 0,
unit_price DECIMAL(15,4) DEFAULT 0,
total_price DECIMAL(15,4) DEFAULT 0,
remark VARCHAR(500) DEFAULT '',
PRIMARY KEY (item_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(),'','',''),