未轉出貨量統計與 LINE 通知系統
📌 功能簡介
此系統透過 Flask 建置 Web 介面,結合 MSSQL 訂單與庫存資料,提供未轉出貨量統計、匯出 Excel 報表,並支援將重點訊息推播至 LINE 群組。
🔧 系統架構
-
框架:Flask (Python)
-
資料庫:MSSQL (透過 pyodbc 連線)
-
報表:Pandas + ExcelWriter (xlsxwriter)
-
通知:LINE Messaging API
-
環境變數管理:python-dotenv
-
埠號:5100
📑 功能說明
1. 未轉出貨量查詢 (/)
-
預設查詢 明日 的預交貨日。
-
依據訂單來源(客戶 FullName)分類,統計:
-
總訂單數
-
未轉出貨訂單數
-
銷售金額(SumAmtATax)
-
EBOUdef3(自定金額)
-
-
可勾選來源條件過濾。
-
查詢結果顯示於頁面,支援篩選多來源。
2. 匯出未轉出貨量統計 Excel (/export)
-
匯出欄位包含:
-
品名規格
-
SKU
-
未轉數量
-
D 倉庫存
-
B 倉庫存
-
建議叫貨量(D倉庫存 - 未轉數量)
-
-
自動排除指定 SKU:
P07-005-09、P07-005-10。 -
檔名格式:
未轉出貨量統計_YYYYMMDD_YYYYMMDD.xlsx
3. LINE 群組推播 (/send_line)
-
透過環境變數讀取:
-
LINE_CHANNEL_ACCESS_TOKEN -
LINE_GROUP_IDS
-
-
支援一次推播至多個群組。
-
訊息長度超過 480 字會自動截斷。
📂 環境變數設定(.env)
LINE_CHANNEL_ACCESS_TOKEN=xxxxxxxx
LINE_GROUP_IDS=groupid1,groupid2
📂 主要 SQL 查詢
訂單未轉出貨量
SELECT s.BillNO, s.ProdID, s.ProdName, s.Quantity, s.QtyRemain,
m.CustomerID, c.FullName,
m.SumAmtATax, m.EBOUdef3
FROM ordBillSub s
LEFT JOIN ordBillMain m ON s.BillNO = m.BillNO
LEFT JOIN comCustomer c ON m.CustomerID = c.FundsAttribution
WHERE s.PreInDate BETWEEN ? AND ?
ORDER BY s.PreInDate, s.BillNO
D 倉 / B 倉 庫存
SELECT ProdID, WareID, SUM(Quantity) AS 庫存
FROM StkYearMonthQty
WHERE WareID IN ('D', 'B')
GROUP BY ProdID, WareID
No comments to display
No comments to display