本篇隨筆分析一個實際的用於科室的物質清點系統的實現過程,針對各個模塊的進行詳細的業務分析和基於我們自己的WInform開發框架進行快速實現的整個過程,引入庫房、物資(產品)、庫存、入庫、出庫等主要的業務對象,並根據實際需要對相關的業務界面進行設計開發。
1、系統業務需求
業務需求主要的目的是跟蹤記錄科室物資的入庫和使用情況,並能夠根據實際的 流水數據進行一定的分析統計。
按照一般的進銷存的管理方式,那麼就需要引入庫房、物資(產品)、庫存、入庫、出庫等主要的業務對象,並根據實際需要增加一些輔助業務表即可。但是需要針對實際的使用習慣和需求進行一定的優化和擴展,使之能夠提高使用效率,並符合實際的需求。
在進銷存(採購、銷售、庫存)系統中,關於庫房、物資(產品)、庫存、入庫、出庫等核心業務對象,是系統中最基礎的實體,構成了物料流轉的主線。下面我將從業務邏輯層面詳細介紹它們的含義、關係和常見字段。
1)庫房
庫房是物資的存放地點,是庫存管理的基本單位。
業務意義
-
表示物資實際存放的地點或區域。
-
支撐多庫管理(例如:總庫、分庫、虛擬庫、代管庫)。
-
與組織結構、採購、銷售、調撥等環節關聯。
2)物資 / 產品
物資是庫存管理的核心對象,代表可以入庫、出庫、銷售或採購的單位物料。
業務意義
-
物資是系統中最基礎的數據對象,用於識別和分類所有庫存項目。
-
可以包括原材料、半成品、成品、耗材等。
3)庫存
庫存是庫房與物資的數量狀態表,記錄某個物資在某個庫房中的當前數量和狀態。
業務意義
-
實時反映各庫房中物料的數量。
-
為庫存預警、成本計算、出入庫校驗提供依據。
4)入庫
入庫是庫存增加的業務操作,來源可能是採購、生產、退貨、調撥等。
業務意義
-
表示物資進入庫房的過程。
-
入庫單通常是會計成本和庫存數量的來源憑證。
5)出庫
出庫是庫存減少的業務操作,來源可能是銷售、生產領料、調撥、報廢等。
業務意義
-
表示物資從庫房流出的過程。
-
是銷售、領料、轉庫、退貨等操作的實際執行。
2、業務界面展示分析
1)庫房定義
庫房是所有業務表的基礎,因此我們先設計一個庫房的管理界面,錄入基礎數據前也先準備好庫房的信息,我們通過庫房的名稱進行關聯即可。
2)物資管理
物資也是一些業務開展的基礎信息表,需要再開始的時候錄入一些基礎物資數據。
在物資列表顯示中,我們也需要根據不同物資,彙總他們所有庫存的數量,方便總體瞭解,後面介紹這個地方的邏輯。
物資入口也是我們統一管理查看和管理各個庫房庫存入庫的入口,因此在前期數據準備後,也可以針對物資提供
- 物資導入、導出操作
- 較正各科庫房的庫存量
- 查看該物資的出入庫記錄
- 批量設置備註信息
等相關聯的操作,如下界面的右鍵菜單所示。
物質信息,除了方便進行條件查詢外,我們實際往往需要實現業務數據的導入導出操作,這樣可以再初始化物資信息的時候更加方便,因此我們所有業務基礎表數據,我們都提供標準化的導入、導出操作。
較正庫房庫存,用於盤點實際庫存量和系統庫存量存在差異的時候,進行的庫存統一修正操作。
這裏統計的是所有庫房庫存量,如果庫房的庫存記錄沒有存在,那麼這裏也需要出現為0。
而物資信息,我們有時候需要進行一定的修改,因此在編輯界面中也展示一下對應庫存的信息,供參考瞭解。
3)物資庫存管理
物質的庫存管理,主要就是根據庫存分組列出各個產品的信息和對應庫房的庫存,而為了方便,我們可以切換是否顯示庫存大於0的物資,以及提供一些方便的物資信息同步操作。
物資庫存的列表提供了一些常見的右鍵菜單操作,如下界面所示。
- 設置物資庫存
- 批量設置庫存
- 批量設置備註信息
如庫存設置,可以對該庫房的物資庫存的數量進行修改處理。
4)物資入庫登記
物資入庫、出庫登記,是我們管理日常物資流水記錄的操作,同時也是為後面的數據統計分析提供數據基礎。
入庫記錄的顯示,我們處理提供一些基礎的查詢操作外,並可以對記錄批量進行一些標記處理,如
- 設置消碼出庫
- 撤銷消碼出庫
- 批量設置備註信息
為了方便,我們提供了在單元格中快速查詢和選擇物資的處理,並在物資信息後面,列出各個庫房當前的庫存數量,供參考。
在入庫操作保存的時候,我們會提供一個確認明細的操作,方便核對下具體的數量是否正確,確認無誤後再保存入庫記錄信息。
5)物資使用/出庫登記
物資的出庫/使用記錄,是我們跟蹤物質使用情況的重要依據,也是後續統計的數據基礎,因此我們需要根據實際信息進行錄入處理,並能進行快速的查詢。
對於錄入物資出庫使用的處理,和入庫差不多,不過增加不同的一些所需業務數據記錄而已。
6)物資調撥
物資庫存調撥,也是進銷存常見的一種業務處理,是指把某個庫房的物資,調撥到另外一個庫房,並對不同庫房庫存進行增減的業務處理。
7) 統計報表
有了基礎數據的支撐,我們就可以對數據進行統計分析,使得我們可以對不同科室的入庫數量、出庫數量等進行一些統計分析處理了。
這樣就可以統計各個月份科室的物資使用情況了。
3、數據庫設計
上面介紹了實際的業務信息和界面展示,對於上面的業務對象和界面操作,我們提供一些基礎的數據庫的相關表信息,主要的數據表如下所示。
包括倉庫-Warehouse、物資-Product,物資庫存-ProductStock,入庫ProductReceipt、出庫-ProductTakeOut幾個業務表。
一般業務的設計,入庫和出庫設計為主從表的方式,主表記錄一些公共的基礎信息和彙總信息。
不過,由於我們業務主表的信息不多,而主要針對明細表進行統計和分析,因此我把它們設計為單一表的方式,通過彙總入庫/出庫編碼模式進行展示即可,也更加簡單化一些。
由於我們有時候需要對出庫的明細記錄進行一定的快速錄入的需求,如對於某些醫療小組的物資需求是差不多的,因此可以增加一個所需物資記錄的標籤分組來輔助快速選擇。
因此設計了出庫明細分組的輔助表-ProductTakeOutTag。
另外,對於出庫使用和入庫的數量變化,我們需要增加一個庫存變化的日誌來進行核對和查看處理,因此設計了輔助表ProductStockLog表。