朱光亞+周月如
摘要:紡織樣品管理系統是專為國內某紡織領域國企樣品倉庫設計的用戶樣品管理平臺,旨在提高企業樣品管理規范化程度,有效監管、統計企業紡織樣品的實際生產、銷售情況[1]。樣品出入存報表功能作為系統為實現樣品全流程追蹤中最為關鍵的功能模塊,很好的反映了一段時間內所有樣品的銷售情況,為公司下一步經營生產策略的制定提供重要的數據保證。該模塊沿襲了系統的C/S架構,初步設定以MySQL作為數據庫,客戶端采用WPF與服務器進行數據交互,服務器采用SpringMVC+Hibernate+Mysql完成業務邏輯功能實現[2-5]。
關鍵詞:紡織企業應用;樣品管理系統;Java;Hibernate
中圖分類號:TP311 文獻標識碼:A 文章編號:1009-3044(2018)01-0099-02
隨著“互聯網+”的逐漸普及,互聯網與傳統行業的深度融合正在日益加深。紡織行業作為中國自古以來“男耕女織”式自然經濟的主要代表,可以稱作最為古老的傳統行業。“紡織樣品管理系統”的提出,不僅僅是企業的現實需求,更是對“互聯網+”時代的最好回應。樣品管理系統正是在這一客觀條件下提出,可以作為原ERP系統中紡織品跟蹤、倉庫管理、樣品營銷的取締品。出入存報表功能作為系統的一個重要功能模塊,是對樣品全流程追蹤的總結和直觀體現[6-9]。
1 出入存報表總體功能設計
出入存報表模塊的后臺功能設計主要包括數據獲取、數據初始篩選、數據記錄類別分類、同編號信息合并、樣品信息補全、待返回數據處理。前端以WPF窗口程序作為客戶端,其主要功能是與后臺進行信息的交互,通過HTTP.POST方法傳參,提交用戶查看出入存報表的具體要求,并使用DEVEXPRESS數據報表中的Reporting相關組件向客戶展示報表。用戶可以通過本地客戶端提交有效的信息反饋給后臺,由服務器實現報表記錄的計算生成,從而完成本地C端與服務器之間的通信[10]。功能結構如圖1所示。
服務器功能實現通過Java實現。采用SpringMVC框架,數據庫操作通過Hibernate實現每張表映射為一個實體類。服務器分為Controller層、Dao層、Service層、Entity、ViewModel。Controller層主要負責數據的接收與返回。Dao層完成對數據庫的操作。Service層用以實現所有的業務邏輯。Entity中每一個實體類對應數據庫的一張表。ViewModel用來定義傳參的參數類具體內容。為保證數據的一致性,事務“@Transactiona l”注解設置在Service層,防止業務邏輯實現過程中出現了異常導致數據庫出現錯誤的記錄[11,12]。
2 數據庫設計
紡織樣品管理系統的數據存儲采用MySQL數據庫,數據庫名稱為hfsampledb。根據客戶需求和系統設計必要需求,數據庫主要分為用戶管理相關表、樣品業務相關表、樣品詳細信息相關表、原系統數據轉存相關表、樣品展廳相關表五大類。針對目前客戶所提出的實際需求,出入存報表主要是對樣品入庫表、樣品出庫表、面料信息表中的信息進行分類統計。與該功能相關的數據庫結構圖如圖2所示。
以出入庫表為例,其數據表設計如下。
1) 樣品入庫表(table_business_i nstorage):主要保存樣品入庫時所產生的數據記錄,包括入庫編號、樣品編號、入庫數量、入庫日期、操作員編號、業務員編號、倉庫名稱、庫位名稱、創建時間戳、單據回沖標識、入庫原因、樣品轉移倉庫來源。其他詳細信息見圖2 。
2) 樣品出庫表(table_business_o utstorage):主要保存樣品出庫時所產生的數據記錄,包括出庫編號、樣品編號、合同編號、出庫數量、出庫日期、業務員編號、客戶姓名、樣品郵寄狀態標識、樣品歸還狀態標識、歸還數量、歸還日期、記錄銷毀狀態標志、創建時間戳、倉庫名稱、庫位名稱、出庫原因。其他詳細信息見圖2 。
3 功能實現
3.1 主界面設計
主界面包括條件篩選和報表兩個界面[13]。條件篩選界面實現對報表生成條件的限制,目前基于客戶需求限制條件為出入庫的時間上下限節點,一共四點,可以全部限制,也可以部分限制。如圖3所示。報表界面為用戶提供所有樣品的出入存信息,包括部門、訂單編號、規格、顏色、樣品類型、樣品來源、客戶名稱、業務員、克重等屬性,同時計算每月出庫數量、入庫數量、庫存的各自流水總量。報表附加功能包括按已有屬性進行排列和分組、自定義報表屬性(可以修改已有的屬性,隱藏或添加)、導出excel。如圖4所示。
3.2 出入存報表功能詳細設計
出入存報表打印需要企業用戶通過前臺客戶端提交報表篩選條件,由服務器按照錄入的條件進行符合要求的數據初始獲取。服務器進行第一步數據獲取后,產生兩個未經處理的List ,按照樣品編號遞增排列。對于這兩條List,根據實際應用中對于最終結果的要求,進行數據初始篩選,去除每一條同倉庫間倉庫轉移的單據記錄,去除每一條被銷毀的單據記錄。數據初始篩選后兩條List中的數據都是有效數據,接下來處理第一條數據。結果數據列表resultList的結構由主界面設計中提到的所有屬性名組成,resultList中,每個樣品編號對應的出庫記錄分別占據序號2n,2n+1(n∈N),resultList[2n]是計劃內樣品記錄,resultList[2n+1]是計劃外樣品記錄。n=0時,選擇兩個列表中樣品編號較小的一條,如果一樣則直接選入庫列表的第一條作為結果列表的第一組數據[14]。功能流程圖如圖5所示。
出入庫兩個列表沒有一個處理完時,不斷地比較未處理的最新記錄的樣品編號,若與結果數據列表最新一條一致則累加,若不一致則新建兩個記錄,分別保存樣品編號新的計劃內外記錄。當出入庫列表有一條已經處理完成,剩下的一個列表的所有元素都是符合順序的遞增排列,逐個添加到結果列表即可。每新建一條記錄的同時需要在面料樣品信息表中補足足夠的信息。轉化為Json格式之前需要把resultList中樣品編號對應出入庫數量都為0的移除。endprint
4 結束語
服務器采用的設計模式便于處理用戶在實際生產和使用中產生的新需求。ViewModel作為篩選條件和返回結果的數據層,僅修改ViewModel層即可改變返回結果,適用性強。而報表界面提供強大的分組、排序、導出、自定義列表項功能對企業月度年度總結報表產生了很大的便利,為員工按勞計算獎金、部門按量計算籌資提供了簡單有效的方法。
參考文獻:
[1] 吳澤全,東忠閣,劉立強. 基于物聯網的水田無線監控系統設計[J]. 農機化研究,2018,40(3):65-69.
[2] 曾觀音. 基于權限和功能的APP個性化推薦算法的研究[D]. 武漢:武漢大學,2017.
[3] 余久久. 面向SPOC的自主學習系統的設計與應用[J]. 西昌學院學報:自然科學版,2017,31(1):57-61.
[4] 田紅. 智慧課堂學習平臺的設計與應用[J]. 軟件,2017,38(2):139-142.
[5] 洪莉萍. 基于C/S架構的稅務報表收集管理系統的設計與實現[D].長春:吉林大學,2016.
[6] 程玲. ERP系統中會計電子檔案的設計與實施[D].濟南:山東大學,2016.
[7] 丁恒,陸偉. 標準文獻知識服務系統設計與實現[J]. 現代圖書情報技術,2016 (Z1):120-128.
[8] 趙靜. 基于.NET的企業培訓管理系統的設計與實現[D]. 北京:北京工業大學,2016.
[9] 陳海明,崔莉. 面向服務的物聯網軟件體系結構設計與模型檢測[J]. 計算機學報,2016,39(5):853-871.
[10] 于春平. C/S模式車間級生產管理系統的研究[D]. 大連:大連理工大學,2008.
[11] 李繼唐. 基于C/S和B/S的教務管理系統的設計與實現[D]. 天津:天津大學,2008.
[12] 唐明靖. 面向Web的報表、圖表統計系統研究與實現[C]//中國通信學會青年工作委員會.第一屆中國高校通信類院系學術研討會論文集.中國通信學會青年工作委員會,2007:7.
[13] 鄒堅,李世平,魏小飛. 基于LabVIEW的自動測試系統中的報表生成研究[J]. 自動化儀表,2006 (11):68-70.
[14] 張軍. 基于.NET的報表生成系統設計[D].西安:西北工業大學,2004.endprint