From b14e72d368e8685e07ba218c1cff4f62af282d92 Mon Sep 17 00:00:00 2001 From: zhuYanFei Date: Thu, 5 Feb 2026 10:56:18 +0800 Subject: [PATCH] chore: 整合 SQL 模式文件并更新 `README.md` 和 `init.sql`。 --- README.md | 12 +++--------- sql/final_schema.sql | 151 ------------------------------------------------------------------------------------------------------------------------------------------------------- sql/init.sql | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------- sql/v2_add_log_tables.sql | 60 ------------------------------------------------------------ sql/v3_add_suggestion_reason.sql | 6 ------ sql/v4_cleanup_unused_tables.sql | 7 ------- sql/v4_report_json_structure.sql | 17 ----------------- sql/v5_add_priority_and_confidence.sql | 6 ------ sql/v6_add_part_summary.sql | 37 ------------------------------------- sql/v7_add_low_frequency_count.sql | 6 ------ sql/v8_analysis_report.sql | 44 -------------------------------------------- 11 files changed, 67 insertions(+), 416 deletions(-) delete mode 100644 sql/final_schema.sql delete mode 100644 sql/v2_add_log_tables.sql delete mode 100644 sql/v3_add_suggestion_reason.sql delete mode 100644 sql/v4_cleanup_unused_tables.sql delete mode 100644 sql/v4_report_json_structure.sql delete mode 100644 sql/v5_add_priority_and_confidence.sql delete mode 100644 sql/v6_add_part_summary.sql delete mode 100644 sql/v7_add_low_frequency_count.sql delete mode 100644 sql/v8_analysis_report.sql diff --git a/README.md b/README.md index dc125e8..bdd9417 100644 --- a/README.md +++ b/README.md @@ -22,8 +22,7 @@ graph LR B --> C[FetchPartRatio] C --> D[SQLAgent
LLM分析] D --> E[AllocateBudget] - E --> F[GenerateReport
LLM] - F --> G[SaveResult] + E --> G[SaveResult] ``` 详细架构图见 [docs/architecture.md](docs/architecture.md) @@ -36,7 +35,6 @@ graph LR |------|------|------| | **SQL Agent** | LLM 分析 | 直接分析 part_ratio 数据生成补货建议 | | **补货分配** | Replenishment | 转换 LLM 建议为补货明细 | -| **分析报告** | Report | LLM 生成库存分析报告 | ### 🚧 计划中 @@ -97,8 +95,7 @@ fw-pms-ai/ 1. FetchPartRatio - 从 part_ratio 表获取库销比数据 2. SQLAgent - LLM 分析数据,生成补货建议 3. AllocateBudget - 转换建议为补货明细 -4. GenerateReport - LLM 生成分析报告 -5. SaveResult - 写入数据库 +4. SaveResult - 写入数据库 ``` ### 业务术语 @@ -116,9 +113,8 @@ fw-pms-ai/ | `part_ratio` | 配件库销比数据(来源表) | | `ai_replenishment_task` | 任务记录 | | `ai_replenishment_detail` | 配件级别补货建议 | -| `ai_replenishment_report` | 分析报告 | +| `ai_replenishment_part_summary` | 配件汇总表 | | `ai_task_execution_log` | 任务执行日志 | -| `ai_llm_suggestion_detail` | LLM 建议明细 | ## 快速开始 @@ -143,7 +139,6 @@ cp .env.example .env ```bash mysql -u root -p fw_pms < sql/init.sql -mysql -u root -p fw_pms < sql/v2_add_log_tables.sql ``` ### 4. 运行 @@ -167,7 +162,6 @@ Prompt 文件存放在 `prompts/` 目录: |------|------| | `suggestion.md` | 补货建议生成(含业务术语定义) | | `analyze_inventory.md` | 库存分析 | -| `generate_report.md` | 报告生成 | ## 开发 diff --git a/sql/final_schema.sql b/sql/final_schema.sql deleted file mode 100644 index b202c3e..0000000 --- a/sql/final_schema.sql +++ /dev/null @@ -1,151 +0,0 @@ --- ============================================================================ --- AI 补货建议系统 - 表结构 --- ============================================================================ --- 版本: 1.0.0 --- 更新日期: 2026-01-31 --- ============================================================================ - --- 1. AI补货任务表 -DROP TABLE IF EXISTS ai_replenishment_task; -CREATE TABLE ai_replenishment_task ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL UNIQUE COMMENT '任务编号(AI-开头)', - group_id BIGINT NOT NULL COMMENT '集团ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - dealer_grouping_name VARCHAR(128) COMMENT '商家组合名称', - brand_grouping_id BIGINT COMMENT '品牌组合ID', - plan_amount DECIMAL(14,2) DEFAULT 0 COMMENT '计划采购金额(预算)', - actual_amount DECIMAL(14,2) DEFAULT 0 COMMENT '实际分配金额', - part_count INT DEFAULT 0 COMMENT '分配配件数量', - base_ratio DECIMAL(10,4) COMMENT '基准库销比', - status TINYINT DEFAULT 0 COMMENT '状态: 0-运行中 1-成功 2-失败', - error_message TEXT COMMENT '错误信息', - llm_provider VARCHAR(32) COMMENT 'LLM提供商', - llm_model VARCHAR(64) COMMENT 'LLM模型名称', - llm_total_tokens INT DEFAULT 0 COMMENT 'LLM总Token数', - statistics_date VARCHAR(16) COMMENT '统计日期', - start_time DATETIME COMMENT '任务开始时间', - end_time DATETIME COMMENT '任务结束时间', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - INDEX idx_group_date (group_id, statistics_date), - INDEX idx_dealer_grouping (dealer_grouping_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货任务表-记录每次补货建议任务执行'; - --- 2. AI补货建议明细表 -DROP TABLE IF EXISTS ai_replenishment_detail; -CREATE TABLE ai_replenishment_detail ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - brand_grouping_id BIGINT COMMENT '品牌组合ID', - shop_id BIGINT NOT NULL COMMENT '库房ID', - shop_name VARCHAR(128) COMMENT '库房名称', - part_code VARCHAR(64) NOT NULL COMMENT '配件编码', - part_name VARCHAR(256) COMMENT '配件名称', - unit VARCHAR(32) COMMENT '单位', - cost_price DECIMAL(14,2) DEFAULT 0 COMMENT '成本价', - current_ratio DECIMAL(10,4) COMMENT '当前库销比', - base_ratio DECIMAL(10,4) COMMENT '基准库销比', - post_plan_ratio DECIMAL(10,4) COMMENT '计划后预计库销比', - valid_storage_cnt DECIMAL(14,2) DEFAULT 0 COMMENT '有效库存数量', - avg_sales_cnt DECIMAL(14,2) DEFAULT 0 COMMENT '平均销量(月)', - suggest_cnt INT DEFAULT 0 COMMENT '建议采购数量', - suggest_amount DECIMAL(14,2) DEFAULT 0 COMMENT '建议采购金额', - suggestion_reason TEXT COMMENT '补货建议理由', - priority INT NOT NULL DEFAULT 2 COMMENT '优先级: 1-高, 2-中, 3-低', - llm_confidence FLOAT DEFAULT 0.8 COMMENT 'LLM置信度', - statistics_date VARCHAR(16) COMMENT '统计日期', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - INDEX idx_task_no (task_no), - INDEX idx_shop_part (shop_id, part_code) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货建议明细表-存储每次任务的配件分配结果'; - --- 3. AI补货分析报告表 -DROP TABLE IF EXISTS ai_replenishment_report; -CREATE TABLE ai_replenishment_report ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - dealer_grouping_name VARCHAR(128) COMMENT '商家组合名称', - total_storage_amount DECIMAL(16,2) COMMENT '总库存金额', - total_sales_amount DECIMAL(16,2) COMMENT '总销售金额(90天)', - overall_ratio DECIMAL(10,4) COMMENT '整体库销比', - target_ratio DECIMAL(10,4) COMMENT '目标库销比', - total_part_count INT DEFAULT 0 COMMENT '配件总数', - shortage_part_count INT DEFAULT 0 COMMENT '缺货配件数', - overstock_part_count INT DEFAULT 0 COMMENT '超标配件数', - normal_part_count INT DEFAULT 0 COMMENT '正常配件数', - stagnant_part_count INT DEFAULT 0 COMMENT '呆滞配件数', - suggest_total_amount DECIMAL(14,2) COMMENT '建议采购总金额', - suggest_part_count INT DEFAULT 0 COMMENT '建议采购配件数', - top_priority_parts TEXT COMMENT '重点关注配件(JSON数组)', - report_content JSON COMMENT '结构化报告内容(JSON)', - llm_provider VARCHAR(32) COMMENT 'LLM提供商', - llm_model VARCHAR(64) COMMENT 'LLM模型', - generation_tokens INT DEFAULT 0 COMMENT '生成Token数', - statistics_date VARCHAR(16) COMMENT '统计日期', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - INDEX idx_task_no (task_no), - INDEX idx_dealer_grouping (dealer_grouping_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货分析报告表-存储LLM生成的分析报告'; - --- 4. AI任务执行日志表 -DROP TABLE IF EXISTS ai_task_execution_log; -CREATE TABLE ai_task_execution_log ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - brand_grouping_id BIGINT COMMENT '品牌组合ID', - brand_grouping_name VARCHAR(128) COMMENT '品牌组合名称', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - dealer_grouping_name VARCHAR(128) COMMENT '商家组合名称', - step_name VARCHAR(64) NOT NULL COMMENT '步骤名称', - step_order INT DEFAULT 0 COMMENT '步骤顺序', - status TINYINT DEFAULT 0 COMMENT '状态: 0-进行中 1-成功 2-失败 3-跳过', - input_data TEXT COMMENT '输入数据(JSON)', - output_data TEXT COMMENT '输出数据(JSON)', - error_message TEXT COMMENT '错误信息', - retry_count INT DEFAULT 0 COMMENT '重试次数', - sql_query TEXT COMMENT 'SQL查询语句(如有)', - llm_prompt TEXT COMMENT 'LLM提示词(如有)', - llm_response TEXT COMMENT 'LLM响应(如有)', - llm_tokens INT DEFAULT 0 COMMENT 'LLM Token消耗', - execution_time_ms INT DEFAULT 0 COMMENT '执行耗时(毫秒)', - start_time DATETIME COMMENT '开始时间', - end_time DATETIME COMMENT '结束时间', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - INDEX idx_task_no (task_no), - INDEX idx_group_date (group_id, create_time), - INDEX idx_dealer_grouping (dealer_grouping_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI任务执行日志表-记录每个步骤的执行详情'; - --- 5. AI补货配件汇总表 -DROP TABLE IF EXISTS ai_replenishment_part_summary; -CREATE TABLE ai_replenishment_part_summary ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - part_code VARCHAR(64) NOT NULL COMMENT '配件编码', - part_name VARCHAR(256) COMMENT '配件名称', - unit VARCHAR(32) COMMENT '单位', - cost_price DECIMAL(14,2) DEFAULT 0.00 COMMENT '成本价', - total_storage_cnt DECIMAL(14,2) DEFAULT 0.00 COMMENT '商家组合内总库存数量', - total_avg_sales_cnt DECIMAL(14,2) DEFAULT 0.00 COMMENT '商家组合内总月均销量', - group_current_ratio DECIMAL(10,4) COMMENT '商家组合级库销比', - total_suggest_cnt INT DEFAULT 0 COMMENT '总建议数量', - total_suggest_amount DECIMAL(14,2) DEFAULT 0.00 COMMENT '总建议金额', - shop_count INT DEFAULT 0 COMMENT '涉及门店数', - need_replenishment_shop_count INT DEFAULT 0 COMMENT '需要补货的门店数', - part_decision_reason TEXT COMMENT '配件级补货决策理由', - priority INT NOT NULL DEFAULT 2 COMMENT '优先级: 1=高, 2=中, 3=低', - llm_confidence FLOAT DEFAULT 0.8 COMMENT 'LLM置信度', - statistics_date VARCHAR(16) COMMENT '统计日期', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - INDEX idx_task_no (task_no), - INDEX idx_part_code (part_code), - INDEX idx_dealer_grouping (dealer_grouping_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货建议-配件汇总表'; - diff --git a/sql/init.sql b/sql/init.sql index c6427c8..3940902 100644 --- a/sql/init.sql +++ b/sql/init.sql @@ -1,43 +1,11 @@ --- AI 补货建议系统表结构 --- 版本: 2.0 --- 更新: 2026-01-27 +-- ============================================================================ +-- AI 补货建议系统 - 表结构 +-- ============================================================================ +-- 版本: 1.0.0 +-- 更新日期: 2026-01-31 +-- ============================================================================ --- 1. AI预计划明细表 -DROP TABLE IF EXISTS ai_pre_plan_detail; -CREATE TABLE ai_pre_plan_detail ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - group_id BIGINT NOT NULL COMMENT '集团ID', - brand_grouping_id BIGINT COMMENT '品牌组合ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - dealer_grouping_name VARCHAR(128) COMMENT '商家组合名称', - dealer_id BIGINT COMMENT '商家ID', - dealer_name VARCHAR(128) COMMENT '商家名称', - area_id BIGINT COMMENT '区域ID', - area_name VARCHAR(128) COMMENT '区域名称', - shop_id BIGINT NOT NULL COMMENT '库房ID', - shop_name VARCHAR(128) COMMENT '库房名称', - part_id BIGINT COMMENT '配件ID', - part_code VARCHAR(64) NOT NULL COMMENT '配件编码', - part_name VARCHAR(256) COMMENT '配件名称', - unit VARCHAR(32) COMMENT '单位', - cost_price DECIMAL(14,2) DEFAULT 0 COMMENT '成本价', - base_ratio DECIMAL(10,4) COMMENT '基准库销比', - current_ratio DECIMAL(10,4) COMMENT '当前库销比', - valid_storage_cnt DECIMAL(14,2) DEFAULT 0 COMMENT '有效库存数量(在库未锁+在途+计划数+调拨在途)', - avg_sales_cnt DECIMAL(14,2) DEFAULT 0 COMMENT '平均销量(月)', - target_storage_cnt DECIMAL(14,2) DEFAULT 0 COMMENT '目标库存数量', - plan_cnt INT DEFAULT 0 COMMENT '建议计划数量', - plan_amount DECIMAL(14,2) DEFAULT 0 COMMENT '建议计划金额', - part_biz_type TINYINT DEFAULT 1 COMMENT '配件业务类型: 1-配件 2-装饰', - statistics_date VARCHAR(16) NOT NULL COMMENT '统计日期(yyyy-MM-dd)', - yn TINYINT DEFAULT 1 COMMENT '是否有效: 1-是 0-否', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - INDEX idx_group_date (group_id, statistics_date), - INDEX idx_dealer_grouping (dealer_grouping_id), - INDEX idx_shop (shop_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI预计划明细表-存储每日计算的配件补货建议'; - --- 2. AI补货任务表 +-- 1. AI补货任务表 DROP TABLE IF EXISTS ai_replenishment_task; CREATE TABLE ai_replenishment_task ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', @@ -63,7 +31,7 @@ CREATE TABLE ai_replenishment_task ( INDEX idx_dealer_grouping (dealer_grouping_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货任务表-记录每次补货建议任务执行'; --- 3. AI补货建议明细表 +-- 2. AI补货建议明细表 DROP TABLE IF EXISTS ai_replenishment_detail; CREATE TABLE ai_replenishment_detail ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', @@ -93,38 +61,61 @@ CREATE TABLE ai_replenishment_detail ( INDEX idx_shop_part (shop_id, part_code) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货建议明细表-存储每次任务的配件分配结果'; --- 4. AI补货报告表 -DROP TABLE IF EXISTS ai_replenishment_report; -CREATE TABLE ai_replenishment_report ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - dealer_grouping_name VARCHAR(128) COMMENT '商家组合名称', - total_storage_amount DECIMAL(16,2) COMMENT '总库存金额', - total_sales_amount DECIMAL(16,2) COMMENT '总销售金额(90天)', - overall_ratio DECIMAL(10,4) COMMENT '整体库销比', - target_ratio DECIMAL(10,4) COMMENT '目标库销比', - total_part_count INT DEFAULT 0 COMMENT '配件总数', - shortage_part_count INT DEFAULT 0 COMMENT '缺货配件数', - overstock_part_count INT DEFAULT 0 COMMENT '超标配件数', - normal_part_count INT DEFAULT 0 COMMENT '正常配件数', - stagnant_part_count INT DEFAULT 0 COMMENT '呆滞配件数', - suggest_total_amount DECIMAL(14,2) COMMENT '建议采购总金额', - suggest_part_count INT DEFAULT 0 COMMENT '建议采购配件数', - top_priority_parts TEXT COMMENT '重点关注配件(JSON数组)', - report_title VARCHAR(256) COMMENT '报告标题', - executive_summary TEXT COMMENT '执行摘要', - inventory_analysis TEXT COMMENT '库存分析', - risk_assessment TEXT COMMENT '风险评估', - purchase_recommendations TEXT COMMENT '采购建议', - optimization_suggestions TEXT COMMENT '优化建议', - full_report_markdown LONGTEXT COMMENT '完整报告(Markdown)', - llm_provider VARCHAR(32) COMMENT 'LLM提供商', - llm_model VARCHAR(64) COMMENT 'LLM模型', - generation_tokens INT DEFAULT 0 COMMENT '生成Token数', - statistics_date VARCHAR(16) COMMENT '统计日期', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', +-- 3. AI任务执行日志表 +DROP TABLE IF EXISTS ai_task_execution_log; +CREATE TABLE ai_task_execution_log ( + id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', + task_no VARCHAR(32) NOT NULL COMMENT '任务编号', + group_id BIGINT NOT NULL COMMENT '集团ID', + brand_grouping_id BIGINT COMMENT '品牌组合ID', + brand_grouping_name VARCHAR(128) COMMENT '品牌组合名称', + dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', + dealer_grouping_name VARCHAR(128) COMMENT '商家组合名称', + step_name VARCHAR(64) NOT NULL COMMENT '步骤名称', + step_order INT DEFAULT 0 COMMENT '步骤顺序', + status TINYINT DEFAULT 0 COMMENT '状态: 0-进行中 1-成功 2-失败 3-跳过', + input_data TEXT COMMENT '输入数据(JSON)', + output_data TEXT COMMENT '输出数据(JSON)', + error_message TEXT COMMENT '错误信息', + retry_count INT DEFAULT 0 COMMENT '重试次数', + sql_query TEXT COMMENT 'SQL查询语句(如有)', + llm_prompt TEXT COMMENT 'LLM提示词(如有)', + llm_response TEXT COMMENT 'LLM响应(如有)', + llm_tokens INT DEFAULT 0 COMMENT 'LLM Token消耗', + execution_time_ms INT DEFAULT 0 COMMENT '执行耗时(毫秒)', + start_time DATETIME COMMENT '开始时间', + end_time DATETIME COMMENT '结束时间', + create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + INDEX idx_task_no (task_no), + INDEX idx_group_date (group_id, create_time), + INDEX idx_dealer_grouping (dealer_grouping_id) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI任务执行日志表-记录每个步骤的执行详情'; + +-- 4. AI补货配件汇总表 +DROP TABLE IF EXISTS ai_replenishment_part_summary; +CREATE TABLE ai_replenishment_part_summary ( + id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', + task_no VARCHAR(32) NOT NULL COMMENT '任务编号', + group_id BIGINT NOT NULL COMMENT '集团ID', + dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', + part_code VARCHAR(64) NOT NULL COMMENT '配件编码', + part_name VARCHAR(256) COMMENT '配件名称', + unit VARCHAR(32) COMMENT '单位', + cost_price DECIMAL(14,2) DEFAULT 0.00 COMMENT '成本价', + total_storage_cnt DECIMAL(14,2) DEFAULT 0.00 COMMENT '商家组合内总库存数量', + total_avg_sales_cnt DECIMAL(14,2) DEFAULT 0.00 COMMENT '商家组合内总月均销量', + group_current_ratio DECIMAL(10,4) COMMENT '商家组合级库销比', + total_suggest_cnt INT DEFAULT 0 COMMENT '总建议数量', + total_suggest_amount DECIMAL(14,2) DEFAULT 0.00 COMMENT '总建议金额', + shop_count INT DEFAULT 0 COMMENT '涉及门店数', + need_replenishment_shop_count INT DEFAULT 0 COMMENT '需要补货的门店数', + part_decision_reason TEXT COMMENT '配件级补货决策理由', + priority INT NOT NULL DEFAULT 2 COMMENT '优先级: 1=高, 2=中, 3=低', + llm_confidence FLOAT DEFAULT 0.8 COMMENT 'LLM置信度', + statistics_date VARCHAR(16) COMMENT '统计日期', + create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', INDEX idx_task_no (task_no), + INDEX idx_part_code (part_code), INDEX idx_dealer_grouping (dealer_grouping_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货分析报告表-存储LLM生成的分析报告'; +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货建议-配件汇总表'; + diff --git a/sql/v2_add_log_tables.sql b/sql/v2_add_log_tables.sql deleted file mode 100644 index 1b22616..0000000 --- a/sql/v2_add_log_tables.sql +++ /dev/null @@ -1,60 +0,0 @@ --- AI 任务执行日志表 --- 版本: 1.0 --- 创建日期: 2026-01-28 - --- 任务执行日志表 -CREATE TABLE IF NOT EXISTS ai_task_execution_log ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - brand_grouping_id BIGINT COMMENT '品牌组合ID', - brand_grouping_name VARCHAR(128) COMMENT '品牌组合名称', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - dealer_grouping_name VARCHAR(128) COMMENT '商家组合名称', - step_name VARCHAR(64) NOT NULL COMMENT '步骤名称', - step_order INT DEFAULT 0 COMMENT '步骤顺序', - status TINYINT DEFAULT 0 COMMENT '状态: 0-进行中 1-成功 2-失败 3-跳过', - input_data TEXT COMMENT '输入数据(JSON)', - output_data TEXT COMMENT '输出数据(JSON)', - error_message TEXT COMMENT '错误信息', - retry_count INT DEFAULT 0 COMMENT '重试次数', - sql_query TEXT COMMENT 'SQL查询语句(如有)', - llm_prompt TEXT COMMENT 'LLM提示词(如有)', - llm_response TEXT COMMENT 'LLM响应(如有)', - llm_tokens INT DEFAULT 0 COMMENT 'LLM Token消耗', - execution_time_ms INT DEFAULT 0 COMMENT '执行耗时(毫秒)', - start_time DATETIME COMMENT '开始时间', - end_time DATETIME COMMENT '结束时间', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - INDEX idx_task_no (task_no), - INDEX idx_group_date (group_id, create_time), - INDEX idx_dealer_grouping (dealer_grouping_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI任务执行日志表-记录每个步骤的执行详情'; - --- LLM补货建议明细表(商家组合维度) -CREATE TABLE IF NOT EXISTS ai_llm_suggestion_detail ( - id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - dealer_grouping_name VARCHAR(128) COMMENT '商家组合名称', - shop_id BIGINT NOT NULL COMMENT '库房ID', - shop_name VARCHAR(128) COMMENT '库房名称', - part_code VARCHAR(64) NOT NULL COMMENT '配件编码', - part_name VARCHAR(256) COMMENT '配件名称', - unit VARCHAR(32) COMMENT '单位', - cost_price DECIMAL(14,2) DEFAULT 0 COMMENT '成本价', - current_storage_cnt DECIMAL(14,2) DEFAULT 0 COMMENT '当前库存数量', - avg_sales_cnt DECIMAL(14,2) DEFAULT 0 COMMENT '平均销量(月)', - current_ratio DECIMAL(10,4) COMMENT '当前库销比', - suggest_cnt INT DEFAULT 0 COMMENT 'LLM建议采购数量', - suggest_amount DECIMAL(14,2) DEFAULT 0 COMMENT 'LLM建议采购金额', - suggestion_reason TEXT COMMENT 'LLM建议依据/理由', - priority INT DEFAULT 0 COMMENT '优先级(1-高 2-中 3-低)', - llm_confidence DECIMAL(5,2) COMMENT 'LLM置信度(0-1)', - statistics_date VARCHAR(16) COMMENT '统计日期', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - INDEX idx_task_no (task_no), - INDEX idx_dealer_grouping (dealer_grouping_id), - INDEX idx_shop_part (shop_id, part_code) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='LLM补货建议明细表-存储LLM生成的商家组合维度配件补货建议及依据'; diff --git a/sql/v3_add_suggestion_reason.sql b/sql/v3_add_suggestion_reason.sql deleted file mode 100644 index b9677d7..0000000 --- a/sql/v3_add_suggestion_reason.sql +++ /dev/null @@ -1,6 +0,0 @@ --- AI补货建议明细表 - 添加建议理由字段 --- 版本: 3.0 --- 创建日期: 2026-01-29 - -ALTER TABLE ai_replenishment_detail -ADD COLUMN suggestion_reason TEXT COMMENT 'LLM建议理由' AFTER suggest_amount; diff --git a/sql/v4_cleanup_unused_tables.sql b/sql/v4_cleanup_unused_tables.sql deleted file mode 100644 index 61b1606..0000000 --- a/sql/v4_cleanup_unused_tables.sql +++ /dev/null @@ -1,7 +0,0 @@ --- 清理无效的 AI 业务表 --- 版本: 4.0 --- 创建日期: 2026-01-30 --- 描述: 删除不再使用的 ai_llm_suggestion_detail 和 ai_pre_plan_detail 表 - -DROP TABLE IF EXISTS ai_llm_suggestion_detail; -DROP TABLE IF EXISTS ai_pre_plan_detail; diff --git a/sql/v4_report_json_structure.sql b/sql/v4_report_json_structure.sql deleted file mode 100644 index 4a3421a..0000000 --- a/sql/v4_report_json_structure.sql +++ /dev/null @@ -1,17 +0,0 @@ --- 报告结构化重构 - 将 Markdown 字段改为 JSON --- 版本: 4.0 --- 日期: 2026-01-30 - --- 1. 新增 JSON 字段 -ALTER TABLE ai_replenishment_report -ADD COLUMN report_content JSON COMMENT '结构化报告内容(JSON)' AFTER top_priority_parts; - --- 2. 删除旧的 Markdown 字段 -ALTER TABLE ai_replenishment_report -DROP COLUMN report_title, -DROP COLUMN executive_summary, -DROP COLUMN inventory_analysis, -DROP COLUMN risk_assessment, -DROP COLUMN purchase_recommendations, -DROP COLUMN optimization_suggestions, -DROP COLUMN full_report_markdown; diff --git a/sql/v5_add_priority_and_confidence.sql b/sql/v5_add_priority_and_confidence.sql deleted file mode 100644 index aad5366..0000000 --- a/sql/v5_add_priority_and_confidence.sql +++ /dev/null @@ -1,6 +0,0 @@ --- 5. 添加优先级和置信度字段 --- 时间: 2026-01-30 - -ALTER TABLE ai_replenishment_detail -ADD COLUMN priority INT NOT NULL DEFAULT 2 COMMENT '优先级: 1-高, 2-中, 3-低' AFTER suggestion_reason, -ADD COLUMN llm_confidence FLOAT DEFAULT 0.8 COMMENT 'LLM置信度' AFTER priority; diff --git a/sql/v6_add_part_summary.sql b/sql/v6_add_part_summary.sql deleted file mode 100644 index 6ed4391..0000000 --- a/sql/v6_add_part_summary.sql +++ /dev/null @@ -1,37 +0,0 @@ --- v6: 新增配件汇总表 --- 用于存储配件在商家组合维度的汇总补货建议 - -CREATE TABLE IF NOT EXISTS ai_replenishment_part_summary ( - id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键ID', - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - part_code VARCHAR(64) NOT NULL COMMENT '配件编码', - part_name VARCHAR(256) COMMENT '配件名称', - unit VARCHAR(32) COMMENT '单位', - cost_price DECIMAL(14,2) DEFAULT 0.00 COMMENT '成本价', - - -- 商家组合级别汇总数据 - total_storage_cnt DECIMAL(14,2) DEFAULT 0.00 COMMENT '商家组合内总库存数量', - total_avg_sales_cnt DECIMAL(14,2) DEFAULT 0.00 COMMENT '商家组合内总月均销量', - group_current_ratio DECIMAL(10,4) COMMENT '商家组合级库销比', - - -- 补货建议汇总 - total_suggest_cnt INT DEFAULT 0 COMMENT '总建议数量', - total_suggest_amount DECIMAL(14,2) DEFAULT 0.00 COMMENT '总建议金额', - shop_count INT DEFAULT 0 COMMENT '涉及门店数', - need_replenishment_shop_count INT DEFAULT 0 COMMENT '需要补货的门店数', - - -- LLM分析结果 - part_decision_reason TEXT COMMENT '配件级补货决策理由', - priority INT NOT NULL DEFAULT 2 COMMENT '优先级: 1=高, 2=中, 3=低', - llm_confidence FLOAT DEFAULT 0.8 COMMENT 'LLM置信度', - - -- 元数据 - statistics_date VARCHAR(16) COMMENT '统计日期', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - - INDEX idx_task_no (task_no), - INDEX idx_part_code (part_code), - INDEX idx_dealer_grouping (dealer_grouping_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI补货建议-配件汇总表'; diff --git a/sql/v7_add_low_frequency_count.sql b/sql/v7_add_low_frequency_count.sql deleted file mode 100644 index 5c56518..0000000 --- a/sql/v7_add_low_frequency_count.sql +++ /dev/null @@ -1,6 +0,0 @@ --- v7: 添加低频件统计字段 --- 用于记录出库次数<3 或 平均出库间隔>=30天的配件数量 - -ALTER TABLE ai_replenishment_report -ADD COLUMN low_frequency_part_count INT DEFAULT 0 COMMENT '低频件数量' -AFTER stagnant_part_count; diff --git a/sql/v8_analysis_report.sql b/sql/v8_analysis_report.sql deleted file mode 100644 index 2ed386a..0000000 --- a/sql/v8_analysis_report.sql +++ /dev/null @@ -1,44 +0,0 @@ --- v8_analysis_report.sql --- 分析报告表,支持按品牌组合分组的分析数据持久化 --- 分析内容由 LLM 生成 - -CREATE TABLE IF NOT EXISTS ai_analysis_report ( - id BIGINT AUTO_INCREMENT PRIMARY KEY, - task_no VARCHAR(32) NOT NULL COMMENT '任务编号', - group_id BIGINT NOT NULL COMMENT '集团ID', - dealer_grouping_id BIGINT NOT NULL COMMENT '商家组合ID', - brand_grouping_id BIGINT DEFAULT NULL COMMENT '品牌组合ID,NULL表示全部品牌', - brand_grouping_name VARCHAR(256) DEFAULT NULL COMMENT '品牌组合名称', - - -- 风险管控统计(数量) - total_count INT DEFAULT 0 COMMENT '配件总数', - shortage_count INT DEFAULT 0 COMMENT '缺货数量', - overstock_count INT DEFAULT 0 COMMENT '超标数量', - normal_count INT DEFAULT 0 COMMENT '正常数量', - low_frequency_count INT DEFAULT 0 COMMENT '低频数量', - stagnant_count INT DEFAULT 0 COMMENT '呆滞数量', - - -- 风险管控统计(金额) - total_amount DECIMAL(16,2) DEFAULT 0 COMMENT '总金额', - shortage_amount DECIMAL(16,2) DEFAULT 0 COMMENT '缺货金额', - overstock_amount DECIMAL(16,2) DEFAULT 0 COMMENT '超标金额', - normal_amount DECIMAL(16,2) DEFAULT 0 COMMENT '正常金额', - low_frequency_amount DECIMAL(16,2) DEFAULT 0 COMMENT '低频金额', - stagnant_amount DECIMAL(16,2) DEFAULT 0 COMMENT '呆滞金额', - - -- LLM 生成的分析内容 - overview_analysis TEXT COMMENT '核心经营综述(LLM生成)', - risk_analysis TEXT COMMENT '风险管控分析(LLM生成)', - action_plan TEXT COMMENT '行动计划分析(LLM生成)', - report_content JSON COMMENT '结构化报告内容', - - llm_provider VARCHAR(32) COMMENT 'LLM提供商', - llm_model VARCHAR(64) COMMENT 'LLM模型名称', - generation_tokens INT DEFAULT 0 COMMENT '生成token数', - statistics_date VARCHAR(16) COMMENT '统计日期', - create_time DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - - INDEX idx_task_no (task_no), - INDEX idx_task_brand (task_no, brand_grouping_id), - INDEX idx_dealer_grouping (dealer_grouping_id) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='AI分析报告表'; -- libgit2 0.22.2