📘 補貨參數計算系統 — 操作教學

本教學將引導您了解系統的完整操作流程,從資料準備到最終產出報表。

🔍 系統概述

補貨參數計算系統(RP Parameter Calculation System) 是將原本 Microsoft Access MDB 版本的補貨參數計算邏輯,移植到 Python Flask 網頁應用。本系統主要用於計算並管理商品補貨參數,支援兩種補貨類型(RP Type)的轉換與參數更新。

什麼是 RP Type?

  • ND(Normal Distribution / 正常配送):商品經由倉庫配送至店舖,安全庫存量設為 0。
  • RF(Replenishment by Forecast / 預測補貨):商品直接由供應商或倉庫補貨,安全庫存量依據 MOQ、ABC 分類及理想庫存來計算。

系統核心功能

  • 商品主檔管理 — 彙入 / 檢視商品基本資料
  • 三步驟計算工作流程 — 清除資料 → 產生計算結果 → 套用理想庫存
  • MOQ 檢查 — 確保安全庫存不低於最低訂購量
  • 問題交易檢查 — 自動標記異常資料
  • 類型轉換 — ND ↔ RF 雙向轉換與參數重算
  • 輸出報表 — 產生 RP 清單 / MSS 清單並可彙出 CSV

適用人員

  • 供應鏈規劃人員
  • 採購人員
  • 庫存管理人員
資料準備 Step 1
清除資料
Step 2
產生結果
Step 3
套用理想庫存
輸出報表

📂 資料準備

在執行計算流程之前,需要先準備好以下資料。請依序彙入各項資料。

① 商品主檔(Article Master)

操作路徑 導覽列「資料管理」 → 「商品主檔」

上傳 CSV 檔案,欄位包含:article, article_description, brand, mc, mc_description, article_category, status, major_vendor_sap, supplu_source

② 理想庫存(Ideal Stock)

操作路徑 導覽列「資料管理」 → 「理想庫存」

CSV 格式:Site, Article, Ideal_Stock

💡 提示:理想庫存僅對「店舖分類(Shop Class)」中有記錄的 Site 生效。

③ 最低訂購量(MOQ)

操作路徑 導覽列「資料管理」 → 「最低訂購量(MOQ)」

CSV 格式:SKU, MOQ

④ 參考資料(Reference Data)

資料表用途主要欄位
店舖分類定義各店舖的 ABC 分類及覆蓋天數Shop, Class, Coverage_A/B/C_Items
供應商排程定義各供應商的運送與計畫週期Shop, Vendor, Delivery_S, Planning_S, Lead_Time
倉庫日曆定義倉庫的計畫與配送週期Shop, P, D
MC 庫存參考MC 層級的 A/B/C 庫存量參考Shop, MC, A_Qty, B_Qty, C_Qty
⚠️ 注意:執行 Step 1 清除資料後,所有已彙入的資料都會被刪除。請務必先彙入商品主檔及參考資料。

🧹 Step 1:清除全部資料

操作路徑 導覽列「工作流程」 → 「Step 1: 清除全部」

目的:清空所有資料表,為重新計算做好準備。

系統會清除:article_master、final_result、nd_to_rf、rf_to_nd、problem_transactions、rp_list、mss_list

🚨 重要:此操作無法復原。執行前請確認已備份所有需要的資料。

⚙️ Step 2:產生計算結果

操作路徑 導覽列「工作流程」 → 「Step 2: 產生結果」

目的:根據商品主檔及參考資料,計算每筆商品的 RP 補貨參數。

RF → ND 轉換

  • new_safety_qty = 0
  • new_planning_cycle = 倉庫日曆.P
  • new_delivery_cycle = 倉庫日曆.D
  • new_delivery_days = 3
  • new_target_coverage = min(delivery_days + ABC 加成, Shop_Class 覆蓋天數)
  • new_supply_source = 2

ND → RF 轉換

  • Vendor(Supply Source = 1):依供應商排程計算 planning_cycle、delivery_cycle、delivery_days(lead_time)
  • Warehouse(Supply Source = 2):delivery_days = 3、target_coverage = 3
  • 安全庫存量:ND=0 ,RF+A=取A量,RF+B=取B量,RF+C=取C量

📊 Step 3:套用理想庫存

操作路徑 導覽列「工作流程」 → 「Step 3: 套用理想庫存」

目的:將「理想庫存(Ideal Stock)」的值覆蓋到對應商品的 new_safety_qty 欄位。

僅對「店舖分類」中有記錄的 Site 生效,且僅在理想庫存值與目前值不同時更新。

⚠️ 注意:Step 3 會強制覆蓋 Step 2 計算出的安全庫存量。請確認理想庫存資料的正確性。

🔎 MOQ 檢查 & 問題交易 & 類型轉換

① MOQ 檢查

操作路徑 導覽列「計算執行」 → 「MOQ檢查」

ND → new_safety_qty = 0 ;RF → new_safety_qty = MAX(MOQ, 原本值)

② 問題交易檢查

操作路徑 導覽列「計算執行」 → 「問題交易」

檢查三類異常:安全庫存為負數、缺少 RP 類型、商品不在主檔

③ 類型轉換

操作路徑 導覽列「計算執行」 → 「類型轉換」

記錄 ND ↔ RF 轉換並重算參數

📄 輸出報表

計算完成後可產生:

  • RP 清單 — 從 final_result 篩選 new_rp_type 有值的記錄
  • MSS 清單 — final_result 完整輸出
  • 最終結果 — 可篩選、編輯、彙出 CSV

🔄 完整操作流程

① 準備資料 ② Step 1 ③ Step 2 ④ Step 3 ⑤ 輸出報表
動作導覽路徑説明
上傳商品主檔資料管理 → 商品主檔CSV 上傳,支援多欄位
上傳理想庫存資料管理 → 理想庫存CSV: Site, Article, Ideal_Stock
清除全部工作流程 → Step 1清空所有資料表
計算結果工作流程 → Step 2產生補貨參數
套用理想庫存工作流程 → Step 3覆蓋安全庫存量
一次完成工作流程 → 完整流程 1→③→④三步驟一次執行
MOQ 檢查計算執行 → MOQ檢查確保安全庫存 ≥ MOQ
問題交易計算執行 → 問題交易檢查異常資料
產生 RP 清單輸出報表 → 產生RP清單產生補貨清單
彙出 CSV最終結果 → 彙出CSV下載所有計算結果