Skip to content

庫存批量操作與歷史查看功能

🔒 封存狀態: 未來功能規劃,尚未實現 本文檔記錄功能設計,待系統穩定後評估實現優先級。

📋 概述

本文檔記錄了庫存管理系統的兩個重要未來功能:批量盤點操作和操作歷史查看。這些功能已在原型階段完成基本設計,但為保持系統簡潔,暫時從主要功能中移除,作為未來優化項目保留。

🎯 功能規劃

1. 批量盤點功能

功能描述

允許管理員一次性調整多個產品的庫存,特別適用於定期盤點和庫存校正。

核心特性

  • 多產品選擇: 支援搜尋和批量選擇產品
  • 批量調整: 統一調整原因和操作記錄
  • 預覽確認: 調整前顯示影響範圍和預計結果
  • 分批處理: 大量資料分批執行,避免系統負荷

技術實現要點

typescript
// 批量調整介面
interface BatchInventoryAdjustment {
  products: {
    productId: string
    currentStock: number
    newStock: number
    adjustQuantity: number
  }[]
  adjustmentReason: string
  batchNote: string
  operatorName: string
}

// API 端點
POST /api/inventory/batch-adjust

UI 組件結構

BatchInventoryDialog.vue
├── ProductSelector.vue          # 產品選擇器
├── BatchAdjustmentForm.vue     # 批量調整表單
├── AdjustmentPreview.vue       # 調整預覽表格
└── BatchConfirmation.vue       # 確認對話框

2. 操作歷史查看功能

功能描述

提供完整的庫存操作歷史記錄查看,包括入庫、出庫、調整等所有操作的追蹤。

核心特性

  • 操作時間線: 按時間順序顯示所有庫存變動
  • 多維度篩選: 按產品、操作類型、時間範圍、操作者篩選
  • 詳細記錄: 顯示操作前後庫存、原因、備註等完整資訊
  • 匯出功能: 支援 Excel/CSV 格式匯出歷史記錄

技術實現要點

typescript
// 歷史記錄介面
interface InventoryHistory {
  id: string
  productId: string
  productName: string
  operationType: 'stock_in' | 'stock_out' | 'adjustment'
  previousStock: number
  newStock: number
  adjustQuantity: number
  reason: string
  note?: string
  operatorName: string
  operatedAt: Date
  source: string
  referenceId?: string
}

// API 端點
GET /api/inventory/history?productId&type&startDate&endDate&operator

UI 組件結構

InventoryHistoryView.vue
├── HistoryFilters.vue          # 篩選器組件
├── HistoryTimeline.vue         # 時間線展示
├── HistoryTable.vue           # 表格展示
└── ExportDialog.vue           # 匯出對話框

🗄️ 資料庫設計

批量操作記錄表

sql
CREATE TABLE inventory_batch_operations (
  id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
  batch_id UUID NOT NULL,
  operation_type TEXT NOT NULL,
  total_products INTEGER NOT NULL,
  total_adjustments INTEGER NOT NULL,
  operator_name TEXT NOT NULL,
  batch_reason TEXT NOT NULL,
  batch_note TEXT,
  created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
  completed_at TIMESTAMP WITH TIME ZONE,
  status TEXT DEFAULT 'pending'
);

操作歷史增強

sql
-- 為現有 inventory_logs 表增加批量操作支援
ALTER TABLE inventory_logs ADD COLUMN batch_id UUID;
ALTER TABLE inventory_logs ADD COLUMN operation_sequence INTEGER;

🚀 實施優先級

高優先級 (Phase 1)

  • 操作歷史查看: 提供基本的歷史記錄查看功能
  • 簡單篩選: 按產品和時間範圍篩選
  • 基本匯出: CSV 格式匯出

中優先級 (Phase 2)

  • 批量盤點: 實現基本的批量調整功能
  • 進階篩選: 多維度複合篩選
  • 視覺化: 操作趨勢圖表

低優先級 (Phase 3)

  • 自動盤點: 基於規則的自動庫存調整建議
  • 權限控制: 細粒度的批量操作權限
  • API 整合: 與第三方 ERP 系統整合

📊 商業價值評估

批量盤點功能

  • 效率提升: 減少 80% 的手動操作時間
  • 準確性: 降低人工錯誤率
  • 適用場景: 月度/季度盤點、大宗商品調整

操作歷史功能

  • 審計合規: 滿足財務審計要求
  • 問題追蹤: 快速定位庫存異常原因
  • 決策支援: 基於歷史數據的庫存管理優化

🔧 技術考量

效能優化

  • 分頁載入: 歷史記錄分頁展示,避免大量資料載入
  • 索引優化: 在常用查詢欄位建立索引
  • 快取策略: 常用篩選結果快取

安全性

  • 操作日誌: 記錄所有批量操作的完整日誌
  • 權限控制: 不同角色的操作權限限制
  • 資料驗證: 防止異常資料寫入

擴展性

  • 模組化設計: 可獨立開發和部署
  • API 標準化: 遵循 RESTful 設計原則
  • 介面解耦: 前後端分離,支援多平台

📝 後續行動

即時可執行

  1. 建立詳細的功能規格文檔
  2. 設計資料庫表結構
  3. 建立基礎 API 端點

開發階段

  1. 實現操作歷史查看功能
  2. 開發批量盤點 UI 組件
  3. 整合測試和使用者驗收測試

部署準備

  1. 效能測試和優化
  2. 安全性檢查
  3. 使用者培訓材料準備

此文檔將隨功能開發進度持續更新