包貨
未轉出貨量統計與 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
銷貨訂單查詢與來源統計系統
📌 功能簡介
此系統透過 Flask + MSSQL 建置 Web 查詢平台,提供每日銷貨訂單明細檢視、訂單來源統計,並支援依來源匯出 SKU 統計。
🔧 系統架構
-
框架:Flask (Python)
-
資料庫:MSSQL (pyodbc 連線)
-
資料處理:Pandas
-
UI:HTML(Flask Templates)
-
設定檔:
display_config.json控制 SKU 排序 -
埠號:5104
📑 功能說明
1. 首頁查詢 (/)
-
預設顯示今日銷貨訂單(可輸入日期查詢)。
-
顯示內容:
-
銷貨日期、銷貨單號、訂單來源
-
訂購人資訊(姓名、電話)
-
收件人資訊(姓名、地址、電話、手機)
-
付款方式、託運單號
-
訂單總金額(Total + Tax)
-
宅配代收金額(透過 OBTNumber 查詢)
-
商品明細(SKU、品名規格、數量、分錄備註)
-
-
自動排除以下 SKU:
-
P07-005-09 -
A
-
-
同時計算各「訂單來源」的統計數量並顯示。
2. 來源 SKU 統計匯出 (/export_stat)
-
可選擇指定的訂單來源,輸出 SKU 統計。
-
統計內容:
-
SKU
-
品名規格
-
總數量
-
-
排序規則:
-
依照
display_config.json中的 SKU 順序排序 -
未列入設定的 SKU 排在最後
-
-
輸出為 JSON 格式,前端可進一步處理或下載。
3. display_config.json 設定
{
"SKU": ["P01-001-01", "P01-002-05", "P01-003-10"]
}
用來控制統計結果的 SKU 排序。
📂 主要 SQL 查詢
主檔(銷貨單)
SELECT
A.BillDate AS 銷貨日期,
A.FundBillNo AS 銷貨單號,
C.FullName AS 訂單來源,
A.ContactPerson AS 訂購人,
A.ContactPhone AS 訂購人電話,
A.Remark AS 備註,
A.EBOUserDef4 AS 付款方式,
A.ReceMan AS 收件人姓名,
A.ReceAddress AS 收件人地址,
A.ReceTelephone AS 收件人電話,
A.ReceMobilePhone AS 收件人手機,
A.ConsignNo AS 託運單號,
A.Total,
A.Tax,
A.OBTNumber
FROM comBillAccounts A
LEFT JOIN comCustomer C ON A.CustID = C.ID
WHERE A.BillDate = '{bill_date}' AND A.Flag = 500
明細(過濾指定 SKU)
SELECT
S.BillNO AS 銷貨單號,
B.CustBillNo AS 來源單號,
S.ProdID AS SKU,
S.ProdName AS 品名規格,
S.Quantity AS 數量,
S.ItemRemark AS 分錄備註
FROM comProdRec S
LEFT JOIN (
SELECT BillNO, MIN(CustBillNo) AS CustBillNo
FROM stkBillSub
WHERE Flag = 500 AND CustBillNo IS NOT NULL
GROUP BY BillNO
) B ON S.BillNO = B.BillNO
WHERE S.Flag = 500
AND S.BillNO IN ({placeholders})
AND S.ProdID NOT LIKE '%P07-005-09%'
AND S.ProdID != 'A'
每日工廠零售補貨整合功能(零售SKU自動轉工廠SKU)
📌 功能簡介
本系統以 Flask + MSSQL + Pandas 建構,提供依據 調撥單單號前綴查詢商品明細 的功能,並能將結果匯出為 Excel,方便工廠對應與後續作業。
🔧 系統架構
-
後端框架:Flask
-
資料庫:MSSQL (
CHIComp02) -
Python套件:
pyodbc、pandas、openpyxl -
匯出格式:Excel (
output.xlsx) -
埠號:5109
📑 功能說明
1. 首頁查詢 (/)
-
使用者輸入 調撥單單號前綴 進行查詢。
-
查詢結果顯示:
-
序號
-
SKU
-
品名規格
-
工廠SKU(UserDef1)
-
溫層(UserDef2)
-
總數量
-
2. Excel 匯出 (/download)
-
匯出檔案包含:
-
SKU(工廠SKU)
-
品名規格
-
數量(整數化)
-
-
若查無資料,會輸出空的 Excel 檔。
📂 查詢邏輯
-
從
comProdRec讀取 Flag=100 的銷貨明細 -
Join
comProduct以取得商品資訊 (ProdName,UserDef1,UserDef2) -
根據輸入的銷貨單號前綴 (
BillNO LIKE '輸入%') 篩選 -
使用
SUM(Quantity)統計數量 -
顯示查詢結果並產出 Excel
交貨便印單功能
本系統為一套以 Flask 開發的 Web 應用,主要用途為處理「交貨便」訂單資料的查詢、上傳與列印功能。結合正航 SQL Server 資料庫,並支援 CSV 匯入與資料預覽。
📌 功能摘要
✅ 1. 查詢交貨便訂單
-
從
comBillAccounts表查詢指定日期 (BillDate) 的訂單資料 -
條件為
Flag = 500 -
顯示欄位:
-
EBOBillNo(訂單編號)
-
ReceMan(收件人)
-
ReceAddress(地址)
-
ReceTelephone(電話)
-
✅ 2. 上傳 CSV 範本
-
上傳
template.csv檔案(以 cp950 編碼) -
可預覽資料內容(分頁顯示,每頁6筆)
-
顯示欄位:
-
訂單編號、收件人、地址、電話
-
-
使用者可勾選資料送出列印
✅ 3. 下載範本
-
提供下載格式統一的
template.csv檔案 -
位於
/uploads/template.csv
✅ 4. 列印畫面預覽
-
勾選欲列印的資料
-
導向
/print頁面進行印單預覽顯示 -
支援多筆同時顯示,格式可客製化為實體印單
🛠 技術架構
-
Flask:後端框架
-
Jinja2:HTML模板渲染
-
pyodbc:連接 SQL Server 資料庫
-
CSV 模組:處理匯入檔案
- Bootstrap(假設):支援畫面樣式與分頁
📂 路由說明
| 路由 | 方法 | 功能 |
|---|---|---|
/ |
GET/POST | 查詢指定日期的交貨便訂單 |
/upload |
GET/POST | 上傳並預覽 CSV 資料 |
/download_template |
GET | 下載固定範本檔案 |
/print |
POST | 顯示使用者選取的資料供列印使用 |