feat(bid): 完成甲方报价模块全量功能开发
1. 新增甲方报价业务实体,继承基础实体类 2. 新增供应商报价明细查询接口,支持按供应商ID展开物料明细 3. 重构甲方报价关联逻辑,通过material_id精确关联物料表 4. 新增甲方报价历史统计、月度趋势、快速新建等服务功能 5. 完善菜单配置,修正甲方报价菜单结构,添加完整权限控制 6. 新增物料搜索自动补全功能,优化报价单详情页面 7. 在供应商详情页新增报价历史Tab页签,展示该供应商的所有报价物料明细 8. 在物料详情页新增甲方报价记录Tab页签,展示该物料的所有甲方报价历史 9. 新增数据库优化脚本,添加索引并修复历史数据关联
This commit is contained in:
58
sql/20260601/001_client_quote_optimize.sql
Normal file
58
sql/20260601/001_client_quote_optimize.sql
Normal file
@@ -0,0 +1,58 @@
|
||||
-- ============================================================================
|
||||
-- 甲方报价系统优化 - 数据库迁移脚本
|
||||
-- 日期: 2026-06-01
|
||||
-- 说明:
|
||||
-- 1. biz_client_quote_item 表添加 material_id 字段,建立与物料表的正式关联
|
||||
-- 2. 添加必要的索引优化查询性能
|
||||
-- 3. 添加统计数据辅助字段
|
||||
-- 4. 修复历史数据中的 material_id 关联
|
||||
-- ============================================================================
|
||||
|
||||
-- ============================================================================
|
||||
-- PART 1: 甲方报价明细表 - 添加 material_id 字段
|
||||
-- ============================================================================
|
||||
ALTER TABLE biz_client_quote_item
|
||||
ADD COLUMN material_id BIGINT DEFAULT NULL COMMENT '关联物料ID(biz_material.material_id)' AFTER quote_id;
|
||||
|
||||
-- 创建索引以加速按物料查询
|
||||
CREATE INDEX idx_cqi_quote_id ON biz_client_quote_item (quote_id);
|
||||
CREATE INDEX idx_cqi_material_id ON biz_client_quote_item (material_id);
|
||||
|
||||
-- ============================================================================
|
||||
-- PART 2: 甲方报价主表 - 添加统计优化索引
|
||||
-- ============================================================================
|
||||
CREATE INDEX idx_cq_create_time ON biz_client_quote (create_time);
|
||||
CREATE INDEX idx_cq_client_name ON biz_client_quote (client_name);
|
||||
CREATE INDEX idx_cq_status ON biz_client_quote (status);
|
||||
|
||||
-- ============================================================================
|
||||
-- PART 3: 修复历史数据 - 通过物料名称匹配回填 material_id
|
||||
-- ============================================================================
|
||||
-- 注意: 此操作为一次性数据修复,基于 material_name 精确匹配。
|
||||
-- 如果存在同名的多个物料,只会关联第一个匹配到的物料ID。
|
||||
-- 请在执行前确认数据准确性。
|
||||
UPDATE biz_client_quote_item cqi
|
||||
JOIN biz_material m ON cqi.material_name = m.material_name
|
||||
SET cqi.material_id = m.material_id
|
||||
WHERE cqi.material_id IS NULL
|
||||
AND cqi.material_name IS NOT NULL
|
||||
AND cqi.material_name != '';
|
||||
|
||||
-- ============================================================================
|
||||
-- PART 4: 验证数据修复结果
|
||||
-- ============================================================================
|
||||
-- 检查仍有未关联的记录数(如果 > 0,说明有些物料名称在 biz_material 表中不存在)
|
||||
-- SELECT COUNT(*) AS unlinked_count
|
||||
-- FROM biz_client_quote_item
|
||||
-- WHERE material_id IS NULL AND material_name IS NOT NULL AND material_name != '';
|
||||
|
||||
-- 查看关联情况统计
|
||||
-- SELECT
|
||||
-- CASE WHEN cqi.material_id IS NOT NULL THEN '已关联' ELSE '未关联' END AS status,
|
||||
-- COUNT(*) AS count
|
||||
-- FROM biz_client_quote_item cqi
|
||||
-- GROUP BY CASE WHEN cqi.material_id IS NOT NULL THEN '已关联' ELSE '未关联' END;
|
||||
|
||||
-- ============================================================================
|
||||
-- 完成
|
||||
-- ============================================================================
|
||||
Reference in New Issue
Block a user