name: erp-sales-analysis
description: "ERP銷售資料分析全流程:理解需求→生成SQL→執行查詢→輸出分析報告。覆蓋光伏金剛線行業(鹽城吉瓦新材料)"
version: 1.0.0
visibility: "public"
ERP 銷售資料分析
一、企業背景(僅用於分析參考,不編造資料依據)
鹽城吉瓦新材料科技有限公司
- 光伏金剛線製造企業,產品:光伏/半導體級電鍍金剛石線鋸(線徑 20-70μm)
- 產品線:光伏單晶線、多晶線、半導體線(半導體金剛線市佔率≥20%)
- 產能:月產能 170 萬 km,年產能 1,200 萬 km
- 客戶:阿特斯、晶澳、正泰、協鑫等光伏頭部企業
- 訂單以 km(千米)為數量單位,金額單位為元
二、資料庫表結構(精簡版)
表關聯全景
sx_bas_customer ← sx_sale_salescontract → sys_user
↓ ↓
sx_sale_salesorder ─→ sx_sale_salesorderdetails ─→ sx_bas_inventory → sx_bas_warehouse
↓ sys_user
sys_user / sys_office
sx_sale_salescontract - 銷售合同
- JOIN: customer_id→sx_bas_customer.id, create_by→sys_user.id
- 關鍵欄位:id(varchar PK), contract_code(varchar), customer_id(varchar), contract_time(varchar 日期), create_by(varchar), create_date(datetime), del_flag
sx_sale_salesorder - 銷售訂單
- JOIN: customer_id→sx_bas_customer.id, salescontract_id→sx_sale_salescontract.id, create_by→sys_user.id, id→sx_sale_salesorderdetails.salesorder_id
- 關鍵欄位:id(varchar PK), salesorder_code(varchar), customer_id(varchar), salescontract_id(varchar), totalprice_includingtax(varchar 含稅總金額), total_number(varchar 總數量), salesorder_state(varchar 狀態), create_by(varchar), create_date(datetime), del_flag
- 字典:salesorder_state: 0=開立,1=已確認,2=生產中,3=部分入庫,4=全部入庫,5=部分出庫,6=全部出庫,7=已發貨
sx_sale_salesorderdetails - 訂單明細
- JOIN: salesorder_id→sx_sale_salesorder.id, inventory_id→sx_bas_inventory.id, default_warehouse_id→sx_bas_warehouse.id
- 關鍵欄位:id(varchar PK), salesorder_id(varchar), inventory_id(varchar), salesorder_num(varchar 數量), unit_price(varchar 含稅單價), total_price(varchar 含稅總價), delivery_date(varchar 交期), default_warehouse_id(varchar), create_date(datetime), del_flag
sx_bas_customer - 客戶
- 關鍵欄位:id(varchar PK), customer_name(varchar), contacts(varchar), contacts_phone(varchar), del_flag
sx_bas_inventory - 產品/存貨
- JOIN: pre_storage_warehouse→sx_bas_warehouse.id
- 關鍵欄位:id(varchar PK), inventory_type_id(varchar 類別), inventory_code(varchar), inventory_name(varchar 名稱), model(varchar 規格型號), singal_unit(varchar 單位), taxincluded_price(varchar 含稅單價), inventory_in_stock(varchar 庫存), del_flag
- 字典:inventory_type_id: 1=輔材,2=原輔材料,3=半成品,4=成品
- 字典:singal_unit: 137=km,128=L,126=kg,106=ct(件/個)
sx_bas_warehouse - 倉庫
- 關鍵欄位:id(varchar PK), name(varchar 倉庫名), del_flag
sys_user - 員工
- JOIN: office_id→sys_office.id
- 關鍵欄位:id(varchar PK), office_id(varchar), no(varchar 工號), name(varchar 姓名), del_flag
sys_office - 部門
- 關鍵欄位:id(varchar PK), name(varchar 部門名), del_flag
三、SQL 生成規則(強制遵守)
- del_flag 過濾:所有業務表 WHERE 條件追加
del_flag = '0'
- CAST 轉換:金額/數量欄位為 VARCHAR,SUM/AVG 前必須
CAST(欄位 AS DECIMAL(18,2))(金額)或 CAST(欄位 AS DECIMAL)(數量)更多技能請訪問小蔥技能站7w4.net。
- 僅 SELECT:只支援 SELECT 查詢,禁止其他 DML
- 禁止 SELECT *:只查需要的欄位;禁止
SELECT COUNT(*),統一用 SELECT COUNT(1)
- CASE WHEN 轉字典:字典值編碼必須用 CASE WHEN 轉為中文輸出(如
CASE salesorder_state WHEN '0' THEN '開立' WHEN '1' THEN '已確認' ... END AS 訂單狀態)
- 先過濾再聚合:WHERE 條件先行,減少聚合資料量
- JOIN 規範:嚴格按表結構中給出的 JOIN 鏈路關聯,用主外部索引鍵,禁止笛卡爾積
- 排行加 LIMIT:明細/排行類查詢加 LIMIT(如 LIMIT 10)
- 產品維度 model:涉及產品必須關聯 sx_bas_inventory,結果包含 model(規格型號)欄位
- MySQL 5.7 相容:ORDER BY 中禁止對聚合別名做算術運算;複雜運算用子查詢巢狀後外層排序;避免多層巢狀子查詢,優先標準 JOIN + 聚合
四、MCP 呼叫指引
使用 batchQuerySalesData 工具,引數 queries 為 JSON 字串陣列:
[{"title":"分析維度名稱","sql":"SELECT ... WHERE del_flag = '0'"}]
- 最多 10 條 SQL/批
- 返回值:Markdown 表格
五、分析報告規範
- 100% 基於資料:所有結論來自查詢結果,不編造、不推演未給出的趨勢
- 排版:標準 Markdown,用 emoji 點綴標題和關鍵要點(📊📈🏆✅⚠️)
- 單位:金額統一「萬元」保留 1 位小數;數量保留整數加千分位分隔符
- 突出 TOP:排行類只列 TOP3-5,避免冗長羅列
- 模組整合:將查詢維度整合為 2-4 個重點模組,不碎片化
- 核心摘要:開篇 3-5 段核心摘要,高度提煉整體態勢
- 無資料標註:某維度無資料時標註「該維度無有效統計資料」
- 可結合行業:可結合光伏金剛線行業特性分析(如線徑規格、客戶型別)
六、執行流程
Step 1: 理解使用者需求 → 確定分析維度(時間/客戶/產品/銷售員/狀態/合同/倉庫)
Step 2: 按 SQL 規則生成 JSON 陣列(最多 10 條),調 batchQuerySalesData 執行
Step 3: 解析返回的 Markdown 結果
Step 4: 按報告規範生成結構化分析報告