<nav id="w0g0m"><code id="w0g0m"></code></nav>
  • <xmp id="w0g0m">
    <xmp id="w0g0m"><nav id="w0g0m"></nav><menu id="w0g0m"><strong id="w0g0m"></strong></menu>
  • <xmp id="w0g0m">
  • <nav id="w0g0m"></nav>
    <menu id="w0g0m"><menu id="w0g0m"></menu></menu>
    1. 網站地圖
    2. 設為首頁
    3. 關于我們
    ?

    基于FTP的盤點信息管理系統的設 計與實現

    發布時間:2023-07-17 14:38
    目錄
    摘要 I
    Abstract II
    第一章緒論 1
    1.1課題研究背景及意義 1
    1.2課題國內外研究現狀 2
    1.3論文主要內容及組織結構 3
    本章小結 4
    第二章盤點信息管理系統關鍵技術 5
    2.1面向對象編程相關技術及使用工具 5
    2.1.1面向對象編程技術 5
    2.1.2Microsoft Visual Studio 2008 6
    2.2數據存儲相關技術及使用工具 6
    2.2.1數據存儲技術 7
    2.2.2Microsoft SQL Server 2008 8
    2.3 FTP文件傳輸協議 8
    2.3.1FTP的工作模型 10
    2.3.2FTP的工作模式 11
    2.3.3FTP的數據表示 12
    本章小結 12
    第三章系統需求分析及總體設計 13
    3.1貨物盤點業務流程分析  , 13
    3.2系統功能需求分析 14
    3.3系統架構設計 15
    3.3.1系統整體結構 15
    3.3.2系統功能模塊組成 16
    3.4系統數據庫的設計 16
    3.4.1 E-R模型的構建 17
    3.4.2數據庫表的設計 17
    3.4.3系統數據庫的連接 22
    3.5系統可行性分析 23
    本章小結 23
    第四章盤點信息管理系統軟件的設計與實現 24
    4.1系統登錄功能 24
    4.2盤點計劃管理模塊 26
    4.2.1盤點計劃查詢及錄入 26
    4.2.2盤點計劃統計及歷史查詢 .....30
    4.2.3計劃提醒及盤點計劃制訂 32
    4.3盤點信息管理模塊 35
    4.3.1實盤-帳盤信息審核 35
    4.3.2賬目信息審核 36
    4.3.3綜合信息統計 39
    4.4進銷存信息管理模塊 40
    4.4.1進貨信息管理 40
    4.4.2銷售信息管理 43
    4.4.3庫存合計 43
    4.5職工信息管理模塊 45
    4.5.1職工基本信息管理 45
    4.5.2職工考評及考勤津貼 46
    4.6盤點效率監測分析模塊 47
    4.6.1盤點效率監測 47
    4.6.2差錯統計分析 51
    4.7 FTP文件傳輸模塊 54
    本章小結 58
    第五章盤點信息管理系統測試 59
    5.1文件傳輸及數據庫連接測試 59
    5.1.1文件傳輸測試 59
    5.1.2數據庫連接測試 60
    5.2系統軟件功能及性能測試 61
    5.2.1系統軟件測試環境 61
    5.2.2系統軟件功能測試 62
    5.2.3系統軟件性能測試 70
    5.3測試結果分析 73
    本章小結 73
    結 論 74
    參考文獻 76
    攻讀碩士學位期間發表的學術成果 78
    致謝 79
    第一章緒論
    1.1課題研究背景及意義
    隨著社會對物流效率要求的不斷提高,以人工為主的傳統貨物盤點模式正承受著信 息化時代的強烈沖擊,導致以倉儲工作為主的行業所面對的競爭也越來越激烈⑴,因此, 以信息處理為主的貨物盤點工作模式逐漸受到大多數企業高層及職工的關注。為了有效 保護企業的利益,如何利用現代信息技術高效地管理貨物盤點過程,實時、動態、全面 地掌握貨物盤點信息,已經成為存貨狀態要求較高的企業在殘酷的競爭中獲得優勢的決 定性因素。
    盤點工作在企業的運營及管理流程中起著舉足輕重的作用⑵。可以說,如果沒有便 捷、高效的盤點模式,這些企業的管理系統就無法正常工作。在現實生活中,由于盤點 工作的重要性往往不被單位及管理者重視,以致于出現了貨物存放雜亂,不便清查及庫 存管理冗余等問題⑶。例如,大多數企業每個月都會對倉庫內存儲的貨物進行一次盤點, 以便了解本月進出貨數量和庫存余量,但是由于商品數量過多,盤點過程無組織無計劃, 且大量的產品無分類,無整理的放在庫房,給盤點工作帶來了極大的不便[“〕。并且,由 于大多數企業還在通過手抄記錄的方式保存盤點信息,使得盤點工作不僅花費大量時間, 而且常常會因為環境或者人為等原因破壞盤點記錄,使得盤點數據的存儲也成為了很大 的問題,長此以往,既耗費存儲紙質盤點表格的空間,又影響之后的盤點工作,成為限 制企業發展的一大阻礙。
    不僅如此,一些企業由于沒有將貨物信息與職工等信息有效的結合,時常會導致為 有限的盤點工作配置人數過多或過少的事情發生,•并且因為缺乏對職工能力的了解,經「 常會把能力出色的員工安排在與其能力不匹配的職位上,使員工沒有發揮出其應有的作 業水平,進而降低了公司的效益[6閭。而且因為大多數企業運營期間存貨的數量是浮動的, 存貨的盤點工作又不能影響企業正常的運營,所以企業通常會在兩個正常工作日調整的 空隙,來進行該日的盤點業務,因此,盤點工作的效率的高低對于企業效益就顯得尤為 重要。
    基于以上分析,企業要想提高盤點工作效率應該主要從以下四個方面入手:
    (1)詳細、準確且行之有效的盤點計劃;
    (2)簡潔、明了且操作簡單的盤點信息管理過程;
    (3)全面、豐富且關聯性強的綜合信息;
    (4)精確、直觀且強大的盤點工作過程分析。
    根據上述四點可以看出,盤點效率的高低是保證盤點工作質量的關鍵,詳細及準確 的盤點數據,是提高盤點工作效率的核心。由此本課題提出了以貨物盤點工作為背景的 基于FTP的貨物盤點信息管理系統的設計方案。本設計方案旨在改善傳統盤點工作過 程及管理方面的匱乏,并利用Visual Studio2008 發平臺和Net技術,完成了該信息管 理系統的軟件設計與實現。該系統不僅能夠完成對盤點過程的監督及管理,還能夠實現 對盤點結果的統計和分析,提高盤點過程效率,增強以庫存工作為主的單位的綜合競爭 力,達到提高企業營收凈利潤的目標。
    1.2課題國內外研究現狀
    物流和倉儲是支撐人類社會生產和經營活動的重要支柱,隨著我國逐漸向工業4.0 邁進,貨物盤點相關工作漸漸成為更多的企業和單位的重點對象。因為以往的庫存管理 方法已經不能滿足如今倉儲行業發展的需求,所以,市場對庫存相關工作提出了更高的 要求和標準,以達到提升倉儲行業整體工作效率的目的[9」2】。因此,企業及高校應該增 強對于貨物盤點相關工作的研究,提升盤點工作的質量和效率,實現盤點相關工作的信 息化,達到加快貨物的運轉周期大幅提升企業效益的目的。
    這些年以來,部分對庫存狀態要求較高的企業在不停地施行體制及運作流程的革新, 但是,對于一些關鍵的弊病,仍沒有提出相應的解決方案。一些企業的管理能力、責任 意識以及接受新事物能力不足等問題,已經成為制約企業規模擴大的重要因素。同時, 由于近些年制造業及電子商務行業井噴式的發展,促使市場對該行業提出了更高的要求, 可是,現實中很多中小型倉儲企業服務能力并不能滿足市場旺盛的貨物存儲需求。在這 一趨勢下,這些企業往往將優化庫存環境及擴大庫存容量作為改革的重點,卻忽視了企 業庫存管理信息化及增強庫存周邊服務的開發等問題,以致于許多企業雖然體量很大、 總收入很高,但企業凈利潤并沒能獲得顯著的提高,陷入了一個企業規模再發展的死循 環當中[13-16]。綜上所述,要想提高企業倉儲及現代信息化建設必須從庫存管理入手,而 盤點工作就是庫存管理中最關鍵的一步。
    自工業革命以來,眾多學者對企業庫存管理及貨物盤點進行了深入研究,有關庫存 的管理模式經歷了漫長的發展歷程,而且逐步構成了一套相對完善的理論體系。在1931 年,雷蒙德費爾菲爾德首先提出經濟訂貨批量管理方法;1951年,管理學家戴克提出 ABC庫存管理方法;20世紀70年代貨物管理多釆用物料需求計劃(MRP)管理方法;20 世紀90年代又相繼出現了企業資源規劃(ERP)管理方法;而進入21世紀后人們又提出 了供應鏈(SCM)管理系統。[⑺這些庫存管理方法分別從不同角度對盤點工作過程提出了 各種行之有效的要求。根據這些要求及理念人們設計了諸多與貨物盤點相關的軟件,例 如,現在市面流行的”超級盤點機”、”智能盤點機”、”易盤點固定資產管理專家”及”盤點 寶”等軟件,這些軟件大多數用于采集貨物信息,而用于管理盤點信息并對其進行統計 分析的軟件則較少。
    在這一發展趨勢下,國內外企業及高校對貨物盤點工作過程也做了很多研究,2014 年,西南交通大學研究生陳彥恒提出了企業庫存定位盤點系統和質檢數據采集系統的研 究與設計,使用RFID藍牙讀寫器與安卓開發技術開發手持移動平板上的庫存定位盤點 系統,實現了對貨物的實時定位及盤點過程[罔;2016年,天津大學的研究生杜書升設計 實現了基于Android的設備盤點軟件系統,通過把RFID技術與移動設備相結合,實現 了對貨物的定位及盤點〔⑼;2016年,天津科技大學的研究生溫嬌等人提出物聯網技術在 立體庫貨物盤點定位方面應用研究,使用RFID技術及RSSI定位算法對貨物盤點定位 進行研究并進行了相應的仿真㈤】;2016年,AnasM.Atieh等人提岀了一套自動化庫存管 理方案,通過研究調查倉庫管理對供應鏈績效的影響,設計了以處理信息數據為主的倉 庫管理系統0〕;2015年,QinY等人設計了一種用于視覺輔助存貨盤點的目標檢測方法, 該方法能夠有效地協助工作人員對庫存貨物數量進行精準地計數QI;由上述研究可知, 雖然貨物盤點過程已經引起了企業及高校的重視,但是其主要研究領域還是貨物定位及 信息采集方面,并沒有考慮盤點工作過程的效率對企業庫存管理的影響,不能對企業倉 儲運行過程中的效益進行系統的分析。
    綜上述可知,盤點信息管理及分析現已成為各大企業關注的熱點。但由于貨物盤點 工作過程的復雜性,對于貨物盤點工作過程,企業及高校的大多數研究還停留在貨物信 息的采集及盤點方面,缺少對整個盤點工作系統的監控以及貨物盤點工作的優良對企業 效益影響的剖析。
    1.3論文主要內容及組織結構
    目前我國大多數對庫存狀態要求較高的企業的庫存管理過程仍缺少對盤點信息的 管理和分析,導致整個盤點過程混亂及冗余。貨物盤點工作在企業的庫存管理工作中至 關重要,由于企業忽視了盤點相關工作的重要性,使得企業在盤點工作過程中無法準確 的判斷盤點的時間及效率,進而影響了企業的生產效率。在盤點工作過程中,通過對各 次盤點數據的統計和盤點工作過程的管理,企業管理者能夠對歷次盤點工作的實際情況、 盤點效率和盤點差異等信息了解的更詳細。
    通過分析以上企業及企業員工在實際工作中所遇到的一系列問題,本文研究并設計 開發了基于FTP的貨物盤點信息管理系統。該系統主要工作過程為用戶首先制訂盤點 工作計劃,然后一線職工通過FTP協議傳輸盤點過程及結果信息,用戶在客戶端接收數 據并審核相關盤點數據,最后把審核通過的盤點相關數據保存到企業數據庫中。本系統 通過使用.NET技術實現了系統軟件各個功能模塊,完成對盤點信息的處理,實現對貨 物盤點過程的監控及分析。
    第一章:通過分析目前庫存管理及盤點工作的背景和現狀,明確了論文研究將盤點 信息管理融合應用于日常盤點工作的重要意義。介紹了盤點工作及庫存管理的研究現狀 并對本課題所研究的內容與整體的組織結構做出說明;
    第二章:介紹了系統開發工具以及關鍵技術,主要使用了面向對象編程相關技術和 數據存儲相關技術,經過對比分析,選擇了適合本系統環境的研發工具,為本系統軟件 的設計與實現提供了技術保障。并對FTP文件傳輸協議進行研究,著重闡述了 FTP的 工作原理及模式;
    第三章:分析了盤點工作的業務流程以及軟件功能需求,完成對貨物盤點信息管理 系統的總體設計。本系統設計方案由盤點信息收集、FTP文件傳輸及盤點信息管理平臺 構成。最后介紹了盤點信息管理平臺的功能模塊組成及系統數據庫的設計;
    第四章:設計并實現了貨物盤點信息管理系統各部分功能。系統功能模塊主要包含 盤點計劃管理模塊、盤點信息管理模塊、職工信息管理模塊、盤點效率監測分析模塊及 FTP文件傳輸模塊。在盤點效率監測分析模塊中,通過對盤點過程信息的統計與分析, 達到了監測盤點過程,提高盤點工作效率的目的;
    第五章:本章主要完成對系統數據傳輸及系統平臺的測試。系統數據傳輸測試包括 數據庫及FTP連接過程測試;系統平臺測試部分包括系統功能和性能的測試。通過對測 試結果統計分析,驗證本系統設計符合實際且切實可行。
    本章小結
    本章首先通過對盤點工作的工作特點及其現有問題的分析,明確了貨物盤點信息管 理系統研究與設計的重要意義,然后介紹了與貨物盤點工作過程相關的國內外研究現狀, 最后闡述了本文主要內容以及各個章節組織結構。本文主要完成了針對貨物盤點信息管 理的研究與設計,旨在提高盤點工作的質量和效率,達到優化庫存管理模式和提升企業 競爭力的目的。
    第二章盤點信息管理系統關鍵技術
    2.1面向對象編程相關技術及使用工具
    貨物盤點信息管理系統用于對貨物盤點相關信息的存儲、處理及分析,所以系統應 根據盤點工作過程的主要特點采用相應的編程技術對系統平臺進行開發,盤點工作主要 有工作頻率較快、傳輸信息量較大、參與工作職能部門較多及一線員工計算機水平有限 等特點。根據這些特點系統平臺的開發應側重于系統平臺的可維護性、完整性、安全性 及用戶友好性等特性。
    目前,主流的編程技術主要包括以下四種:
    (1)面向過程編程(Procedure-OrientedProgramming, POP),以•事件為中心的編程 思想,把問題分解成多個步驟并一一實現;
    ⑵面向對象編程(Object-OrientedProgramming, OOP),以事物為中心的編程思 想,主要包括對象以及類兩部分㈡〕;
    (3)面向組件編程(Component-OrientedProgramming, COP),把系統拆分成松散 藕合的組件并進行獨立開發,通過接口及腳本語言將它們連接起來實現系統所需功能;
    ⑷面向服務編程(Service-OrientedProgramming, SOP),以客戶機服務器模式為 基礎的軟件設計方法。
    結合盤點工作特點及以上四種編程技術的應用范圍、體系完善程度等因素,面向對 象編程技術的可重用性、完整性、以數據為程序設計的重點及根據對象特性設計數據結 構等優點都更加符合本系統的需求,所以本系統采用面向對象編程技術開發本系統平臺。
    2. 1. 1面向對象編程技術
    對象主要通過"屬性"(attribute)和"行為"(behavior)兩個方面對其進行解釋,對于 面向對象程序設計語言,存儲在一個對象中的數據表達該對象的狀態,這個數據就稱為 屬性;行為就是指對象能夠做什么,而這些行為大多包含在方法(method)中。總的來說, 若有一個實體能夠同時包含數據和行為,就把這個實體稱作對象,而面向對象程序設計 就是對這個實體所擁有的屬性及行為進行的一系列設置和設計。相對于通常將系統的信 息與處理這些信息的操作相分離的過程式程序設計來說,面向對象程序設計最根本的優 點就是信息和處理這些信息的過程都封裝在對象中BI。例如,通過一個網絡傳輸對象時, 面向對象程序設計會傳送對象整體(包括數據和行為),而過程式程序設計需要在用戶和 服務器中間存在某種握手協議才能傳輸數據。因而,本文根據系統的需要及實際工作情 況,采用面向對象編程技術對整個系統實施具體的開發和設計。
    目前,市面上與面向對象設計相關開發軟件主要包括J2EE、Microsoft .NET以及 WEB系列等開發平臺。其中,Microsoft.NET平臺最為適應未來發展的需要且能夠最大 程度的保護用戶現有投資。Visual Studio.NET是Microsoft開發的系統集成開發環境, 該集成系統推動了.NET應用程序的開發和應用。Visual Studio.NET中擁有許多復雜且 功能完善的工具,而且C#、JAVASCRIPT、C++及VisualBasic.NET等各種編程語言都 能夠在該環境中使用。其中.NET主要使用的編程語言為面向對象程序語言C#,該語言 結合多種其它編程語言的優點,且使用語法與C較為相似。得益于大量類庫的支持以及 與.NET Framework的完美結合,C#能夠更容易開發出功能更強大、系統結構更穩固的 殺手級應用程序。
    無論是開發大型工程軟件,還是個人使用的輕量型應用程序,C#.NET能夠實現企 業及個人所需要的任何編程功能。在C#.NET中,基于XML的AD0.NET代替了之前 的.NET的可訪問數據源類型單一的數據連接工具,而AD0.NET的優勢就在于它可以 將所有把XML為輸出的數據源當作數據源【⑹。ADO. NET也具有一定的創新性,基于 XML的特性使其可以處理極其豐富的信息源,由于HTTP協議在其架構之下,使得防 火墻對其攔截減少,從而讓數據互通變得更加方便。不僅如此,經過測試,相對于.Net CLR,由于Java的JRE在Windows平臺上的運行速度較慢,也突顯出C#. NET開發過 程較快的優點,而且C#.NET還具有安全性較強,可以與數據庫的無縫結合以及簡單易 懂的圖形化的編程界面等諸多優點,所以,對于系統平臺的設計開發,本系統使用 C#.NET相關工具及語言。
    2.1.2 Microsoft VisuaI Studio 2008
    與Visual Studio 2005相比,Microsoft Visual Studio 2008功能更加全面且集成程度 更高。在整合了關系型數據和對象等多種元素的情況下,經典的Windows窗體應用、 ASP.NET Web相關應用、移動應用和XML Web Services都可以借助Microsoft Visual Studio 2008這個全面的開發工具進行生成。在設計、開發及調試等諸多方面,Microsoft Visual Studio 2008是常見的客戶端、XML Web Services> Web等多種應用程序提供了契 合的開發工具。所以,根據系統需求,本文使用Microsoft Visual Studio 2008開發本系 統平臺及相關功能。
    2.2數據存儲相關技術及使用工具
    本系統主要工作內容是對貨物盤點信息的存儲、處理及分析,經過調查研究,盤點 信息的主要特點分為以下幾點:
    (1)數據量大,根據倉庫的容量及貨物類型的不同,一個倉庫通常可以存儲幾千件 甚至上萬件貨物,而盤點這些貨物所產生的信息量是非常龐大的;
    (2)數據種類豐富,盤點工作一般需要企業多個部門合作完成,所以系統存儲的不 僅是所盤點貨物的信息同時也包括與盤點工作相關的多種信息;
    (3)數據關聯性強,一次貨物盤點工作所要存儲的數據包括經手人、金額及存儲位 置等諸多信息,所以盤點貨物產生的數據與財務、人員等信息是密不可分的;
    (4)數據更新頻次快,根據不同的貨物類型,盤點周期可分為每年度一次、每季度 一次、每周一次甚至每日一次,因此,系統對盤點數據的更新速度有較高的需求〔26】。
    隨著數據存儲技術不斷的發展,以及數據庫開發企業之間的相互影響和來自開源社 區的壓力等諸多因素,促使著數據庫系統在功能和擴展性上不斷的進步。下面,本文將 根據盤點信息的主要特點對數據存儲相關技術及所選用的工具進行介紹。
    2. 2.1數據存儲技術
    提到數據存儲技術,大多數人不禁聯想到如今市面上常用的與數據存儲相關的數據 庫軟件,主要包括來自微軟的 Microsoft Access> Microsoft Visual FoxProMicrosoft SQL Server以及Oracle、Sybase, DB2、Informix等數據庫軟件,其中較為常見的如Microsoft Access,多年來該數據庫通常作為一些版本的Office軟件包的一個組成部分出現,所以 人們經常會用到Microsoft Access,但因為Access的靈活性、速度及可擴縮性較差,無 法承擔較大系統數據的壓力,導致其大多數應用于小型的內部系統;Oracle在可擴縮性、 靈活性及性能方面有著不俗的表現,但從開發者的角度來看,Oracle的可用性卻略顯不 足,例如,開發過程需要建立完整的數據庫解決方案,以及需要有專門的XML工具、 Web和SQL Query技術工具等因素,都使得初學者難以快速上手Oracle; Sybase與SQL Server較為相似,但是Sybase沒有SQL Server那樣豐富的命令和特性。因此,對于本 系統來說SQL Server是最佳的選擇。
    因為本系統采用Microsoft Visual Studio 2008作為系統開發平臺,同時SQL Server 與許多Microsoft其它的服務和各層之間有著緊密的集成,所以SQL Server更加適合本 系統的數據存儲需求。作為.NET的API的ADO.NET能夠為.NET相關應用程序給予相 應的數據訪問支持,盡管借助其本身的.NET數據供給的程序,使得ADO. NET可以與 多種數據庫進行連接,但SQL Server本地客戶端與ADO.NET API已緊密集成,可以通 過數據鏡像來提供諸如SQL通知和自動故障轉移等功能的API層次的支持。而且SQL Server的高可用性、互操作性、集中報表以及能處理非結構化數據等多種特性都非常符 合存儲盤點相關信息的需求。
    2.2.2 Microsoft SQL Server 2008
    對于數據倉庫的實現來說,提供了持續查詢的能力以及增強了管道的可擴展性是 SQL Server 2008相對于SQL Server 2005 一個很重要的擴展功能。SQL Server 2008新增 了 SQL Server集成服務、支持處理非結構化數據及基于策略對數據進行管理等諸多強 大的服務,例如,SQL Server 2008對非結構化數據的支持,就意味著無論用戶需要什么 格式的數據,需要這些數據為了什么目的,SQLServer引擎都將發揮更廣泛的作用。
    在實際工作中,雖然SQL Server 2008有諸多版本(Web版、工作組版、標準版及企 業版等),但其每一個版本都各有優劣LI。大多數版本都適用于32位和64位環境,只 有企業版和開發版適用于IA64。經過對本系統需求及工作環境的綜合分析,標準版的 SQL Server 2008 R2 更適合開發本系統的數據庫,SQL Server 2008 與 SQL Server 2008 R2共享SQLServer的相同的主版本,而且二者也共用SQL Server部分組件。但是,相 對于SQL Server 2008, SQL Server 2008 R2在性能和可擴展性方面有了極大提升。
    2. 3 FTP文件傳輸協議
    在日常的盤點工作過程中,貨物信息的收集主要有手抄記錄和智能盤點機記錄兩種 方法,本系統主要通過接收這兩種方式采集的貨物盤點數據對整個盤點過程進行分析, 因此,盤點記錄的接收過程對本系統十分重要。經過調查研究,貨物盤點記錄文件類型 主要分為“.X1S”、“.txt”及“.CSV”三種,其中“.X1S”類型文件較為常用。貨物盤點 相關數據的傳輸過程分別有如下幾點需求:
    (1)能夠在短時間內傳輸大量的不同類型文件,且較少的占用網絡帶寬;
    (2)能夠完成多用戶之間的文件傳輸;
    (3)擁有安全的文件傳輸環境,并能夠對每個用戶的權限進行設置。
    根據以上系統數據傳輸需求,本文對下面幾種常用的數據傳輸方式進行分析。
    (1)Socket方式,在客戶機與服務器之間通過TCP/IP或TCP/UDP協議傳輸數據, 常見的HTTP調用就是采用這種方式進行數據傳輸;
    (2)數據庫共享數據方式,用戶通過連接相同數據庫的同一張表進行數據交換;
    (3)Message方式,用戶通過連接同一個消息服務器對數據進行交換,Java消息服務 就是使用這種數據傳輸方式實現了數據傳輸過程;
    (4)FTP/文件共享服務器方式,系統指定FTP服務器地址,用戶借助服務器上傳和 下載文件實現大數據量的交互。
     
    上述四種常用的數據傳輸方式其特點及使用場景各不相同,具體如表2.1所示
    表2.1四種常用數據傳輸方式的比較
    Table 2.1 Comparison of four common data transmission methods
    數據傳輸方式 主要優點 主要缺點 適用場景
    Socket方式 通用性較強、利于編 程及控制權限 占用網絡帶寬、客戶機 與服務器需同時工作 傳輸數據量較少,即 時性需求較高的系統
    數據庫共享數據方式 交互靈活,數據交換 過程可靠 數據庫連接池有限, 限制多用戶數據交互 用戶數目少且需要靈
    活的數據交互的系統
    Message 方式 通用性及靈活性較 強,消息處理可靠 大數據量會產生消息 積壓、丟失等現象 傳輸數據量少且消息
    處理過程穩定的系統
    FTP/文件共享服務器
    方式 可傳輸大數據量,占 用少量網絡帶寬 需有共同的文件服務 器并對文件迸行管理 傳輸數據量較大,常 處理批量任務的系統
     
    結合貨物盤點相關數據的傳輸過程的需求,通過表2.1可知,FTP/文件共享服務器 方式的可傳輸大數據量、占用少量網絡帶寬且傳輸文件種類多等特性更適用于本系統。
    FTP( File Transfer Protocol)是具有悠久歷史的網絡工具之一,近40多年來,FTP憑 借其不可替代的功能使其成為因特網中最常用的文件傳輸工具,FTP在OSI與TCP/IP 關系模型的位置如表2.2所示[叫 其中,FTP在RFC959中定義,使用TCP傳輸而不是 UDP。FTP通過在客戶端與服務器端之間建立一個需要經過”三次握手”的過程,保證了 客戶端與服務器之間穩定的連接,而且面向連接的方式也確保了安全的傳輸數據"I。
    表2.2 OSI及TCP/IP協議模型
    Table 2.2 OSI and TCP/IP protocol models
    0SI模型 TCP/IP協議模型
    第七層 應用層 應用層 FTP、 HTTP、 TELNET、 SMTP TFTP、 SNMP
    第六層 表示層
    第五層 會話層
    第四層 傳輸層 傳輸層 TCP UDP
    第三層 網絡層 網絡層 IP、 ICMP、 IGMP
    第二層 數據鏈路層 網絡接口層 SLIP、 CSLIP、 PPP、 MTU
    第一層 物理層 IS02I10、IEEE802. IEEE802.2
     
    2.3. 1 FTP的工作模型
    FTP協議釆用客戶端與服務器結合的模式為用戶提供文件傳輸相關服務,所以基于 FTP的工作原理是每個FTP的客戶端軟件的核心,FTP客戶端與FTP服務器借助TCP 提供的可靠傳輸在二者中間創建了兩個完整的連接過程,從而達到安全、快捷的在兩個 主機之間傳輸文件的目的。
    當FTP命令等信息由客戶端發出時,用戶就要與FTP服務器創建連接,該連接就 被稱為控制連接,控制連接傳輸的核心信息包含客戶端的請求指令及對應FTP服務器 的應答信息。傳輸數據前的連接是FTP另外一個重要連接過程,即數據傳輸過程DTP, 其主要功能是當客戶端向FTP發出文件下載及上傳等請求時,臨時在客戶端與FTP服 務端之間搭建一個負責傳輸數據的通信鏈路,并及時對所選的文件進行傳輸。數據連接 使用全雙工工作方式,可以同時完成上行和下行數據的傳送,即用戶的上傳和下載過程 可以同時完成。在完整的FTP文件傳輸過程中,FTP—般會在用戶與服務器之間創建單 個控制連接和多個數據連接,在此過程中,控制連接一直處在連接的狀態,而數據連接 則在發現有數據傳輸時打開,并在文件傳送結束后關閉㈤3〕。FTP文件傳輸系統模型如 圖2.1所示。
     
    同時從安全角度考慮,客戶還需向FTP服務器提供用戶名和登錄口令,服務器會自 動審核并拒絕非法用戶的訪問,從而保證了客戶端及服務器內容的安全,當客戶端與服 務器創建連接成功之后,圖像、文本及各種類型的文件便可以進行傳輸。
    2.3.2 FTP的工作模式
    PORT(主動)和PASV(被動)工作模式是FTP的兩種工作模式,在PORT工作模式 中,數據傳輸前必須在FTP用戶端與服務器之間創建控制連接,FTP客戶端會打開一個 端口號需大于1024的任意端口,與服務器端口號21的端口連接【32,33]。文件傳輸過程中, 通過在控制通道中使用PORT指令發送本地IP地址以及端口號給對應服務器,服務器 會主動與發送過來的指定端口號的端口進行連接,進而完成數據傳輸。
    PASV工作模式下,創建控制連接的過程與PORT模式基本相同,但其數據連接創 建的過程卻出現了一定的差異,FTP服務器會先收到由用戶利用控制連接發送的被動工 作模式的相關命令,然后,服務器端會打開一個隨機端口,且該隨機端口的端口號大于 1024,客戶端會接收到由服務器發岀的IP地址和此端口號,最后客戶端去連接服務器, 的該端口,從而完成數據連接過程[環37〕。由于PORT模式的安全性較低,如今大部分客 戶端通常使用PASV模式,即本系統使用的客戶端被動式,PASV模式工作過程如圖2.2 所示。其中,List表示列表,Retr表示數據從服務器端發出,Stor表示數據從客戶端發
    出,且Stoi■和Retr都需要對方進行ACK確認。
    /
    口 1 FT卩服務器
    Port21
    卜;堿',=v
    客戶端
    Portxxxx (1)連接初始化,建立控制連接
    請求同步(SYN) r
     
    Portxxxx 確認同步(SYN+ACK)
    V Port21
    Portxxxx 確認(ACK) Port21
    (2)被動連接數據端口初始化
    Portxxxx PASV命令請求 Port21
    Portxxxx -PASV命令響應(IP、PORTzzzz) Port21
    Portyyyy 請求同步(SYN) Portzzzz
    Portyyyy 確認同步(SYN+ACK)
    : Portzzzz
    確認(ACK)
    Portyyyy Portzzzz
    (3)數據傳輸
    Portyyyy 文件傳輸請求(List、Retr\Stor^ Port21
    Portyyyy 確認數據(DATA*ACK) Portzzzz
    圖2.2 PASV (被動)傳輸方式工作過程
    Fig. 2.2 PASV (passive) transmission mode working process
    2.3. 3 FTP的數據表示
    FTP的數據表示包括文件類型、數據結構以及傳輸方式三個方面。每一方面都由多 種類型及方式組成,并可以根據需求選擇一種方式。
    1.文件類型
    (1 )ASCn碼文件類型:在數據傳輸過程中僅傳輸ASCII字符編碼的字符文本文件;
    (2)二進制文件類型:主要應用于圖形文件;
    (3 )EBCDIC文件類型:客戶與服務器端皆采用EBCDIC系統對文本文件進行傳輸;
    (4)本地文件類型:在所具有字節大小不等的計算機中間傳遞二進制數據。
    2•數據結構
    (1)文件結構:字節流,無結構:
    (2)記錄結構:主要針對文本文件,且使用記錄對文件進行劃分:
    (3)頁結構:以頁為單位對文件進行劃分。
    3.傳輸方式
    (1)流模式:采用字節流式的數據進行傳送;
    (2)壓縮模式:使用壓縮過后的數據進行傳輸;
    (3)塊模式:文件通過塊的形式進行傳輸,且每個塊都擁有自己的頭部分。
    本章小結
    本章首先通過對盤點工作、盤點相關信息及數據傳輸特點的分析,明確了系統的設 計過程的需求。接著在此基礎上,對系統的編程技術、數據存儲技術及數據傳輸技術展 開分析,最后介紹系統所選用的關鍵技術及開發工具。系統使用Visual Studio 2008對系 統平臺進行開發,選用SQL Server 2008 R2存儲盤點信息,采用FTP/文件共享服務器方 式傳輸盤點相關數據。
    第三章系統需求分析及總體設計
    3.1貨物盤點業務流程分析
    盤點就是指企業定期或不定期對倉庫內所存儲貨品的現有數量實施清查、清點的作 業,其目的是讓企業及時了解貨物數量的浮動情況及存儲狀態,并對庫內現有貨物的實 際數量與其賬目記錄上的數量進行核對,從而達到能夠準確地掌握庫存數量及企業財務 狀況的目的。企業通常根據盤點周期的不同,將盤點大致分為四類即日常、盤點、年度 以及半年盤點。這四種盤點方式主要的區別在于其各自的盤點規模以及所用時間的不同, 但是它們的盤點流程基本一致,主要流程分為盤點前準備、盤點計劃制訂、計劃賬目核 對、實地盤點、實盤\帳盤核對以及盤點統計報告六個步驟,其中虛線代表不同部門之間 的信息交互過程,實線代表單個部門內的信息交互過程,具體流程如圖3.1所示。
     
    Fig. 3.1 Inventory business flow chart
    3.2系統功能需求分析
    貨物存儲是企業流動資產的主要組成部分,然而存貨的狀態則主要通過盤點工作確 認[38,39]。但是,在日常實際生產工作過程中,倉庫主管們經常忽視盤點工作的重要性, 為了確保庫存信息的精確,將工作的重心都放在了貨品出入庫信息的準確上。事實上, 出現大量庫存數據與賬目數據不相符的情況,通常都是由許多容易被人忽略的盤點數據 誤差日積月累而成,其后果就是產生一系列連鎖反應,進而對企業利益造成一定損失【創。 本系統主要針對庫存管理需求較高且貨物盤點頻次較快的中小型企業,滿足企業復雜的 盤點工作需求,對企業盤點狀態進行實時監管,從而達到提升企業效益的目的。經過對 該類型企業盤點工作的調查以及分析,得到要對企業盤點工作進行有效的管理,系統主 要需要實現以下六個功能:
    (1)盤點計劃的制訂,其內容主要包括盤點時間、參與盤點相關工作人員的分工以 及盤點區域的確定。盤點計劃是整個盤點工作的核心,同時也是管理人員與一線職工之 間溝通的橋梁,其精確程度及可行性直接影響盤點工作的效率。盤點計劃主要由企業管 理層制訂,員工則根據計劃進行實地盤點。
    C2)實盤\帳盤信息的審核,盤點的目的是為了賬實相符,賬實相符的條件是賬賬 相符,系統需將財務部門及倉儲部門上傳的實盤\帳盤信息實時呈現給管理員方便其進 行核對,對于較為貴重貨物應采取一一核對的方法。
    (3)盤點情況匯總,在實盤\帳盤信息審核無誤的情況下,系統需生成該次盤點的 盤點盈虧匯總及盤點效率分析等情況匯總表,經審核通過后更新倉儲及財務部門的后臺 數據,從而達到整體掌握倉儲情況的目的。
    (4)職工及進銷存信息的查詢,管理員通過對進銷存及職工信息的查詢不僅可以 檢驗實盤\帳盤信息的準確性,而且還可以根據職工考評、職工人數、進貨及銷售等信息 為盤點計劃的制訂提供可靠的依據。
    (5)盤點效率監測,系統通過整理分析每次盤點所用時間、所用人數、盤點貨物量 及盤點差異數目等信息。使管理員能夠詳細的了解每次盤點情況,可以避免之前出現的 管理漏洞方便其制訂高效的盤點計劃。
    (6)不同種類且數目較多的文件傳輸,企業倉儲日常管理中需要處理數目較多且 種類繁多的文件,系統需要能夠快捷高效的對這些復雜的文件進行傳輸并分類,從而解 決后臺數據冗余、復雜且混亂的問題。
    3. 3系統架構設計
    對于架構一詞,有很多種定義,其中 IEEE(Institute of Electrical and Electronics Engineers)美國電氣和電子工程協會是這樣定義的:“架構是以組件、組件之間的關系、 組件與環境之間的關系為內容的某一系統的基本組織結構,以及指導上述內容設計與演 化的原理【⑷。”簡單理解,軟件架構就是圍繞著一系列重要的決策展開的。本文經過對 盤點過程中的實際需求的分析,設計了系統的整體結構,接下來本節將對本系統的整體 架構展開介紹。
    3.3.1系統整體結構
    本課題針對現如今倉儲盤點過程中實際存在的問題及需求,設計了基于FTP的貨物 盤點信息管理系統架構。該架構為C/S開發框架,主要由企業數據庫、盤點信息管理系 統平臺、FTP服務器以及信息收集端組成。如圖3.2所示。
     
     
     
     
     
     
     
    圖3.2系統整體架構
    Fig. 3.2 System architecture
     
    其中盤點信息管理系統平臺主要用于對盤點信息的處理及分析,客戶端通過FTP協 議下載并查閱FTP服務器中的文件,不僅使管理者實時了解現場盤點工作情況并且能 夠及時對實盤及帳盤等信息進行審核,同時能夠監測現場盤點效率并對其進行分析,為 下次盤點計劃的制訂提供了可靠的依據;企業數據庫負責存儲盤點及與盤點相關的數據, 為平臺提供數據支撐,是整個系統的數據中心;FTP服務器主要負責快捷、安全地傳輸 和存儲多種類型及數量較大的盤點信息文件;信息收集端由不同部門的數據管理部門及 一線盤點職工組成,其主要負責盤點相關信息的收集、匯總及上傳等工作。
    3.3. 2系統功能模塊組成
    本系統平臺采用模塊化設計,分為六個功能模塊:盤點計劃管理模塊、盤點信息管 理模塊、進銷存信息管理模塊、職工信息管理模塊、效率監測分析模塊及FTP文件傳輸 模塊。本系統平臺具體功能模塊組成如圖3.3所示。
     
    盤點信息管理系統
     
     
    3.4系統數據庫的設計
    貨物盤點信息的特點是實時、大量、多來源,由于盤點信息的存儲對于盤點信息管 理系統十分關鍵,所以系統數據庫的設計尤為重要。該系統的主要功能是通過對貨物盤 點信息的查詢,從而能夠詳細掌握庫存狀況并精準制定下一次盤點計劃,豐富的盤點信 息能夠支撐系統所需功能。數據庫的主要作用是存儲盤點信息并與軟件系統進行實時交
    互。根據本系統的實際需求,數據庫應能存儲盤點計劃信息、貨物盤點信息、進銷存信 息、職工信息、貨物信息及盤點狀態監測信息等,依據貨物盤點的特點,本文創建數據 庫E-R模型,設計完成系統數據庫表。
    3.4.1 E-R模型的構建
    E-R模型主要由實體、屬性及邏輯關系三方面組成,由于其對事物之間關系的表現 能力較強以及簡明扼要的表達方式,使之成為較為常見的一種數據概念模型。本文通過 分析貨物盤點過程中的實際需求,描述了各實體之間的邏輯關系,創建了系統E-R模型, 如圖3.4所示,由于篇幅有限,本文主要描述系統主要實體的部分屬性及這些實體之間 的主要關系。
     
    3. 4. 2數據庫表的設計
    (1)用戶信息表
    該表存儲了系統用戶信息,包括用戶ID、登錄名、密碼以及權限級別等信息,如下 表3.1所示。
     
    表3.1用戶信息表
    Table 3.1 User information table
    序號 字段名 屬性 數據類型 主鍵/
    外鍵 是否允
    許為空 說明
    1 ID INT 整型 PK N ID編號
    2 sysuser VARCHAR(40) 字符串型 N 登錄名
    3 password VARCHAR(20) 字符串型 N 密碼
    4 authority_level INT 整型 N 用戶權限等級
    5 contact_way VARCHAR(40) 字符串型 N 聯系方式
     
    (2)貨物信息表
    該表存儲了貨物信息,包括交易碼、貨物名稱、交易方式、交易單位及產地等信息, 如表3.2所示。
    表3.2貨物信息表
    Table 3.2 Cargo infbnnation table
    序號 字段名 屬性 數據類型 主鍵/
    外鍵 是否允
    許為空 說明
    1 tradecode VARCHAR(5) 字符串型 PK N 交易碼
    2 fiillname VARCHAR(50) 字符串型 N 貨物名稱
    3 tradetype VARCHAR(IO) 字符串型 N 交易方式
    4 standard VARCHAR(IO) 字符串型 N 產品標準
    5 tradeunit VARCHAR(20) 字符串型 N 交易單位
    6 produce VARCHAR(20) 字符串型 Y 產地
    7 qty FLOAT 浮點型 N 現存數量
    8 purchasing_price FLOAT 浮點型 Y 進價
    9 average_price FLOAT 浮點型 Y 市場均價
    10 sale_price FLOAT 浮點型 Y 銷售價
    11 check FLOAT 浮點型 Y 盤點數目
     
     
    續表3.2
    12 upperlimit INT 整型 Y 庫存上限
    13 lowerlimit INT 整型 Y 庫存下限
     
    (3)盤點計劃表
    該表存放了盤點計劃信息,包括盤點時間、盤點區域、盤點職工及職工姓名等信息, 如下表3.3所示。
    表3.3盤點計劃表
    Table 3.3 Counting schedule
    序號 字段名 屬性 數據類型 主鍵/
    外鍵 是否允
    許為空 說明
    1 pddate DATA 時間類型 PK N 盤點時間
    2 pdjob VARCHAR(20) 字符串型 N 具體工作
    3 employeecode VARCHAR(5) 字符串型 FK N 職工號
    4 handle VARCHAR(10) 字符串型 Y 職工姓名
    5 pdlocation VARCHAR(20) 字符串型 N 盤點區域
    6 pdtype VARCHAR(20) 字符串型 Y 盤點類型
     
    (4)計劃完成情況表
    該表存放了計劃完成情況,包括盤點總數、盤點輪次、盤點時長及核算情況等信息, 如表3.4所示。
    表3.4計劃完成情況表
    Table 3.4 Plan completion table
    序號 字段名 屬性 數據類型 主鍵/
    外鍵 是否允
    許為空 說明
    1 pddate DATA 時間類型 FK N 盤點時間
    2 pdlocation VARCHAR(20) 字符串型 N 盤點區域
    3 pdtype VARCHAR(20) 字符串型 Y 盤點類型
     
     
    續表3.4
    4 Qt INT 整型 N 盤點總數
    5 R INT 整型 N 盤點輪次
    6 Ts FLOAT 浮點型 N 總計時長
    7 To FLOAT 浮點型 N 加班時長
    8 Nt INT 整型 N 工作總人數
    9 Difference FLOAT 浮點型 N 差異數目
    10 reason varchar(40) 字符串型 Y 差異原因
     
    (5)職工信息表
    該表存放了職工信息,包括職工號、職工姓名、所屬部門及入職時間等信息,如表
    3.5所示。
    表3.5職工信息表
    Table 3.5 Employee information table
    序號 字段名 屬性 數據類型 主鍵/
    外鍵 是否允
    許為空 說明
    1 employeecode VARCHAR(5) 字符串型 PK N 職工號
    2 fiillname VARCHAR(20) 字符串型 N 姓名
    3 sex VARCHAR(4) 字符串型 N 性別
    4 dept VARCHAR(20) 字符串型 N 所屬部門
    5 tel VARCHAR(20) 字符串型 N 聯系方式
    6 education VARCHAR(IO) 字符串型 Y 學歷
    7 age INT 整型 Y 年齡
    8 marriage VARCHAR(IO) 字符串型 Y 婚姻狀況
    9 entrytime DATA 時間類型 Y 入職時間
    10 memo varchar(40) 字符串型 Y 備注
     
     
    (6)供貨單位信息表
    該表存放了供貨單位信息,包括單位編號和單位名稱等信息,如表3.6所示。
    表3.6供貨單位信息表
    Table 3.6 Suppliers of information table
    序號 字段名 屬性 數據類型 主鍵/
    外鍵 是否允
    許為空 說明
    1 unitcode VARCHAR(5) 字符串型 PK N 單位編號
    2 fullname VARCHAR(20) 字符串型 N 單位名稱
    3 tax FLOAT 浮點型 N 交易稅額
    4 linkman VARCHAR(20) 字符串型 N 聯系人
    5 tel VARCHAR(20) 字符串型 N 聯系方式
    6 address VARCHAR(60) 字符串型 N 單位地址
    7 accounts VARCHAR(60) 字符串型 N 賬戶
    8 payment FLOAT 浮點型 N 支付總額
     
    (7)差錯狀況統計表
    該表存放了差錯狀況,包括盤點日期、系統數、實盤數及差異數等信息,如表3.7。
    表3.7差錯狀況統計表
    Table 3.7 Error status statistics
    序號 字段名 屬性 數據類型 主鍵/
    外鍵 是否允
    許為空 說明
    1 pd_date DATA 時間類型 FK N 盤點日期
    2 pdjype VARCHAR(20) 字符串型 Y 盤點類型
    3 director VARCHAR(20) 字符串型 N 負責人
    4 area VARCHAR(60) 字符串型 N 區域
    5 sys_number INT 整型 Y 系統數
    6 pd_number INT 整型 Y 實盤數
    7 difference INT 整型 Y 差異數
    3.4.3系統數據庫的連接
    建立系統數據庫不僅包括數據結構以及數據表的設計,數據庫的連接也十分重要, 采用正確的數據庫連接方式方法,能夠極大的提升軟件數據存儲及數據傳輸的能力。由 于本系統采用C#.NET作為開發環境,所以系統主要通過ADO.NET訪問數據源0 .NET 數據源提供者有很多種,面對種類繁多的數據源AD0.NET會使用與其相對應的 Connection對象與數據庫實施連接。Connection類能夠提供多種連接方式跑〕。它不僅為 使用者省去了一些的繁復的實現過程,而且完成了一種簡單、快捷的實現方法供開發者 使 用。OdbcConnection、SqlConnection、OracleConnection 以 及 OleDbConnection 是 Connection類的主要成員,其中,Oracle數據庫主要由OracleConnection類負責連接: OLEDB數據庫主要通過OleDbConnection類進行連接;OdbcCoimection類支持的數據 源類型較為廣泛,但是其可擴展性較差;SqlConnection類的對象連接SQL Server數據 庫,由于本系統采用SQL Server作為系統數據庫,所以采用SqlConnection類作為數據 庫連接方式c同時為了提高代碼的復用,本系統通過建立DataBase.cs公共類完成軟件 平臺與數據庫的連接。
    DataBase 類中定義了 Open、Close> MakelnParam> MakeParam、RunProc 以及 RunProcRetum等多個方法,其中,創建數據連接過程使用Open方法并調用 SqlConnection類;Close方法用于結束數據連接過程;MakelnParam及MakeParam方法 負責傳入參數和轉換參數;執行對數據增、刪、改等操作主要調用RunProc方法,該方 法可重載⑷〕;使用SQL語句查詢及帶SqlParamaeter查詢命令文本主要使用 RunProcRetum可重載方法網,DataBase類的MakeParam方法部分開發代碼如下: Public SqlParameter MakeParam(stringParamName,SqlDbTypeDbTypeJnt32Size,Parameter Direction Direction, object Value)
    {
    SqlParameter param;
    if(Size>0)
    param = new SqlParameter(ParamName, DbType, Size);
    else
    param = new SqlParameter(ParamName, DbType); param.Direction = Direction;
    if (! (Direction = ParameterDirection.Output && Value = null)) param. Value = Value;
    return param;
    }
    3. 5系統可行性分析
    一個完整系統不僅要設計合理的架構,同時也需要保證系統在日常生活過程中是可 行的。接下來本文將從技術、操作與經濟因素對系統的可行性進行全方位的分析〔佝。
    技術可行性即要求開發系統所用到的技術能夠滿足整個項目的設計需求。貨物盤點 信息管理系統核心需求就是對盤點相關信息的操作以及文件的傳輸,所以系統采用 Visual Studio對系統平臺進行設計,使用C#語言開發軟件相關功能,使用ADO.NET技 術連接數據庫,對SQL Server數據庫內數據執行增、刪、改、查等操作,并調用FTP相 關類連接FTP客戶端與服務器。由此可見,本系統在技術方面是可行的。
    為了讓不同的用戶都能夠快速的了解本系統具體功能并可以快速地完成相應的操 作,本文針對系統操作可行性進行研究,目的是讓系統用戶有一個簡單愉快的使用體驗。 本系統采用模塊化的設計方式就是為了讓用戶方便、快捷的找到用戶需要的功能,而且 系統會盡可能多根據用戶的需要,對用戶進行提示和引導,同時,更多的采用下拉欄的 方式讓用戶了解該類功能的相關選項,使用戶減少繁復的操作,讓系統軟件界面更加簡 潔,所以本系統能夠滿足用戶的操作需求。
    經濟可行性主要是指系統對企業所能回報的收益是否高于系統的開發及運行的成 本。本系統的開發及運行成本主要包括設備及人力成本。人力成本主要包括為了開發系 統所雇傭的開發人員及系統操作人員所消耗的費用;設備成本主要是指為搭建服務器及 安裝客戶端所需要的設備使用的費用;從系統收益上來看,系統解決了貨物盤點過程的 冗余及管理混亂的問題,降低了存貨的損失,優化了企業管理結構,節省了大量的企業 日常管理及運營的費用,從而大幅增加了企業收益,而且這部分收益要遠遠高于系統的 成本。所以,本系統從收入支出相比的角度來看同樣是有價值的。
    本章小結
    本章首先介紹了貨物盤點業務流程,明確了系統的主要工作流程,接著詳細分析了 系統主要的功能需求,根據這些需求設計了系統的整體架構,系統主要包括數據收集端、 FTP文件傳輸部分、貨物盤點信息管理三部分,同時介紹了系統功能模塊組成。然后構 建了數據庫中E-R模型,展示了部分數據庫表并詳述了系統數據庫的連接過程。最后從 技術、操作及經濟三個方面對系統的可行性進行分析。
    第四章盤點信息管理系統軟件的設計與實現
    本章主要通過對盤點信息管理系統的需求以及功能的分析,依照功能模塊劃分從系 統登錄功能、盤點計劃管理、盤點信息管理、進銷存信息管理、職工信息管理、盤點效 率監測分析以及FTP文件傳輸七個方面介紹本系統的開發設計過程。
    4.1系統登錄功能
    登錄模塊主要作用是校對使用者所輸入的用戶名稱和密碼,審核該用戶是否為系統 允許登錄用戶,從而達到保護企業及用戶數據資料的目的。本模塊主要通過把輸入的用 戶名和密碼通過與數據庫內用戶名及密碼比較,檢測已返回比較結果的DataSet中所擁 有表的行數是否大于0,來判斷該用戶是否可以合法登錄;若行數大于0,用戶登錄進 入本系統,反之,彈出登錄錯誤提示信息[他。登錄部分流程圖如圖4」所示。
     
    圖4.1用戶登錄流程圖
    Fig. 4.1 User login flow chart
     
    本模塊通過編寫Login_Click、Exit_Click及UserPaswd KeyUp等事件實現用戶登 陸功能。當用戶點擊“登錄”按鍵時系統執行Login_Click事件,審核用戶信息并根據 用戶權限設置功能菜單的可用狀態;用戶在“用戶名”或"密碼”輸入相應值并按下Enter 時觸發UserName_KeyUp或UserPaswd_KeyUp事件,并將鼠標焦點跳轉至"用戶名" 或“登錄”按鈕上;用戶點擊“退出”按鍵,系統執行Exit_Click事件,關閉登錄界面 并退出系統。用戶登錄界面如圖4.2所示。
     
    圖4.2用戶登錄界面
    Fig. 4.2 User login interface
     
    Login_Click事件主要代碼如下。 private void Logn_Click (object sender, EventArgs e)
    {
    if (UserName.Text = string.Empty)
    {
    MessageBox.Show(n用戶名稱不能為空!",”錯誤提示”,
    MessageBoxButtons.OK, MessageBoxIcon.Error); return;
    }
    DataSet ds = null;
    popedom. SysUser = UserName.Text;
    popedom.Password = UserPaswd.Text;
    ds = baseinfo ,Login(popedom);
    if (ds.Tables[0].Rows.Count > 0)
    {
    frmMain frm_main = new frmMain(); frm_main.Show();
    } else{...}
    4.2盤點計劃管理模塊
    盤點計劃管理模塊可以根據用戶事先設置的提醒內容,及時根據所設置的提前提醒 天數提醒用戶執行計劃。另外,用戶還可以錄入新的計劃并查詢已執行和未執行計劃的 記錄,同時為了方便用戶使用,本模塊界面主要通過5個Panel控件的疊加,以及6個 PictureBox控件的羅列實現了簡單易懂的可視化操作界面,使用戶能夠快速了解并使用 該模塊。盤點計劃管理模塊由盤點計劃的查詢、錄入、統計、制訂、歷史查詢及提醒設 置6個部分組成I"〕。
    4. 2. 1盤點計劃查詢及錄入
    企業日常的盤點計劃主要包括盤點日期、盤點區域、盤點職工、職工級別以及計劃 完成情況等信息,而計劃查詢模塊正是根據這些重要信息,通過選擇查詢類別并輸入關 鍵字進行盤點計劃的分類查詢。該部分邏輯流程圖如圖4.3所示。
     
    圖4.3計劃查詢流程圖
    Fig. 4.3 Plan query flow chart
    與數據庫操作類DataBase類似,系統創建了 Baselnfo.cs(基礎功能模塊類),BaseInfb 用于處理業務邏輯,完成功能窗體與相關數據庫操作的業務。以Baselnfb為主的部分依 賴關系如圖 4.4 所示。其中 Summarized_Infbrmation、frmStockSummationfirmMain、 frmBuyStock以及employee為依賴于 BaseInfo的業務窗體類,DataBase、 cSummarized_InformationInfo > cEmployeeInfb^ cPdplanlnfb 及 cStocklnfo 為 Baselnfo 所 依賴的數據連接和數據結構相關類。
    IrmbtockSumma:i on frmMain fimRuy Stock
    -rimStockSurnnat ion Load 0 +frmMai n 丄oad() ■"•fmiBuyStock Load ()
    *i lBtnFind Click() 〒edi【Enabled0 payment TexiChangodO
    *ilBinAdc! €lick( i *clearTexl () -Bu\ StockL i st Cej 1 Doubl eCi i ck ()
     
    I
    I
    I
    I
    I / / /
    Summar i zed_ Informat i on '、、i / employee
    4 Sifflimar i w  1 nfurmai i on Load () 、、 I //
    '、J"/ -^employee Load ()
    +Sudl add Ci ick(J
    / *PowerSet Ciick()
    t Cl jck (1 、 、 Baselnfo / -EmSave Click()
    /
    •''' *Add$tock ()
    *l)el el el* nip I oyeeO
    +F indStockByProducp() /
     
    / / /
    cSumniar ized_ Inf ormat i on I n 1 > z
    ? z
    / +Get AlJJ'dp I an () *LpdateSiock 0 、 、 、 cEmployeelnf'o
    Pd_t iffle / a -EmployceCodc-
    Area I、、 -Dept
    -Pd Typt / I 、、 -Tel
    / I 、、
    / I 、、
    " I
    I
    I
    、、 、
     
    cSiocklnfo DataBase cPdplanlnfo
    -HuiiNamt “Open 0 -Pddaie
    Qiv *CreateDat aAdaper () -Pdjob
    Produce ♦R unP rcc RrturnO -Handle
     
     
    圖4.4 Baselnfb類的部分依賴關系
    Fig. 4.4 Partial dependencies of the Baseinfo class
    盤點計劃查詢模塊主要調用了 Baseinfo中的GetALLPdplan (獲取所有盤點計劃信 息)、FindPdplanByEmployeeCode(根據職工編號查詢計劃信息)、F indPdplanBy Pdlocation (根據盤點區域查詢計劃信息)、FindPdplanByHandle (根據職工姓名查詢計劃信息) 及FindPdplanByPdjob (根據職工工作類型查詢計劃信息)等方法。
     
    該模塊使用了 pictureBox2_Click、tlBtnFind_Click等事件,用于跳轉及執行查詢等 操作。計劃查詢功能主要包括查詢類型選擇及輸入關鍵詞兩部分,其界面如圖4.5所示。
     
    Fig. 4.5 Plan query interface
     
    為了方便用戶添加新的盤點計劃,本模塊設計了盤點計劃錄入功能,該功能主要負 責錄入盤點日期、盤點區域以及計劃完成情況等內容,同時也可以對已有或新增計劃執 行編輯或刪除,并將這些內容同步存儲到數據庫。其邏輯流程圖如圖4.6所示。
     
    圖4.6計劃錄入流程圖
    Fig. 4.6 Plan entry flow chart
    計劃錄入功能調用了 BaseInfo基礎功能模塊類的GetALLPdplan (獲取所有盤點計 劃信息)、AddPdpIan (增加盤點計劃信息)、UpdatePdplan (更新盤點計劃信息)、 DeletePdplan (刪除盤點計劃信息)等方法。并自定義了 cancelEnabled (取消使能)、 editEnabled (編輯使能)以及clearText (清空文本)三個方法,其中cancelEnabled及 editEnabled方法是為了在不同操作情況下對每個按鍵使能屬性進行設置,clearText用于 在"取消”等事件發生時,將對應文本框內容清除。同時,本模塊編寫了 pictureBox3_Click、 tlBtnIncrease_Click > tlBtnSave_Click、tlBtnEdit_Click、tlBtnCancel_Click tlBtnDeleteClick 等事件,分別用于跳轉至計劃錄入界面及執行計劃添加、保存、編輯、取消、刪除等操 作。tlBtnIncrease_Click事件開發代碼如下,其中省略了部分參數定義代碼。
    private void tlBtnIncrease_Click(object sender, EventArgs e)
    {
    this.editEnabled(); this.clearText();
    ds = baseinfd.GetALLPdplan("pdplan");
    if (ds.TabIes[0].Rows.Count — 0)
    {
    txtEmployeeCode.Text = "E0001";
    }
    else {
    P_Str_newEmployeeCode= Convert.ToString(ds.Tables[0].Rows[ ds.Tables[0].Rows.Count -1 ] ["employeecode"]);
    P_Int_newEmployeeCode=Convert.ToInt32(P_Str_newEmployeeCode.S ubstring(l,4))+ 1;
    P_Str_newEmployeeCode="E"+P_Int_newEmployeeCode.ToString(); txtEmployeeCode.Text = P_Str_newEmployeeCode;
    } txtPddate.Text = DateTime.Now.ToStringC^yyyy-MM-dd*');
    }
    計劃錄入界面主要由6個Labek 6個TextBox、5個Button以及1個DataGridView 控件組成,計劃錄入界面如圖4.7所示。
     
     
    4. 2. 2盤點計劃統計及歷史查詢
    計劃統計功能用于對已執行和未執行計劃的查詢。計劃統計的實現過程主要分為兩 步,分別是計劃執行情況(已執行計劃和未執行計劃)選擇以及查詢,當用戶選擇完計 劃執行情況,進行搜索,便可以得到相應的結果,從而使用戶清晰的了解到盤點計劃的 完成情況。
    計劃統計功能主要調用了 Baselnfb基礎功能模塊類FindPdplanBytruePdmemo(根據 計劃備注查詢計劃信息)和GetALLPdplan (獲取所有盤點計劃信息)兩個方法,編寫了 tlbtnpdplanstat_search_Click事件,用于執行搜索操作以及pictureBox4_Click事件,用于 跳轉至計劃統計界面。計劃統計功能中tlbtnpdplanstat_search_Click事件代碼如下:
    private void tlbtnpdplanstat_search_Click(object sender, EventArgs e) {
    DataSet ds = null;
    if (rb_DoFlag.Checked)
    {
    ds = baseinfo.FindPdplanBytruePdmemo(pdplaninfo? npdplanH); dgv_PlanSearch_Stat.DataSource = ds.Tables[O].DefaultView;
    }
    else ds = baseinfb.FindPdplanByfalsePdmemo(pdplanmfb, "pdplan"); dgvPlanSearchStat.DataSource = ds. Tables [0]. Default V iew;
    } this.Setdgv_PlanSearch_StatHeadText();
    }
    該部分界面主要由1個Button控件、2個RadioButton控件以及1個DataGridView 控件組成。其界面如圖4.8所示。
     
    圖4.8計劃統計界面
    Fig. 4.8 Plan statistics interface
     
    歷史查詢主要用于對已執行完畢且比較久遠的盤點計劃執行記錄的查詢。其主要內 容包括時間選擇、輸入關鍵詞以及查詢三部分,從而達到為那些想要了解已執行且存留 時間較長的執行計劃的用戶服務的目的。該功能主要使用了 BaseInfo基礎功能模塊類的 FindPdplanByAllInformation(根據所選年份獲取該年盤點計劃信息)和GetALLPdplanC獲 取所有盤點計劃信息)等方法,編寫了 btn HisSearch Click事件,執行歷史查詢操作觸 發以及pictureBox5_Click事件,用于跳轉至歷史查詢界面。
    歷史查詢界面如圖4.9所示。
     
     
    圖4.9歷史查詢界面
    Fig. 4.9 Historical query interface
    4. 2. 3計劃提醒及盤點計劃制訂
    計劃提醒功能用于提醒用戶并滾動播報計劃完成情況。其功能流程如圖4.10所示。
     
     
     
    圖4」0計劃提醒流程圖
    Fig. 4.10 Plan reminder flow chart
    計劃提醒功能由提醒設置及手動輸入兩部分組成,提醒設置能夠方便用戶設置計劃 提醒,自動檢索計劃記錄進行播報;手動輸入是在未檢索到計劃數據或需要手動輸入盤 點計劃時,用戶可以通過手動輸入功能,手動輸入計劃內容進行播報顯示,手動輸入功 能只播報下一次的盤點計劃。計劃提醒模塊主要調用了 Baselnfb基礎功能模塊類的 PdplanAutoCheck(自動檢索盤點計劃記錄)方法,并編寫了 timer 1 Tick,負責定時提醒的 定時器;RemindSetting_Click,保存提醒設置時觸發等事件。提醒模塊界面主要由兩個 GroupBox組成,分別是提醒設置及手動輸入兩部分,其界面截圖如圖4.11所示。
     
    圖4.11計劃提醒界面
    Fig. 4.11 Plan reminder interface
     
    盤點計劃制訂功能主要為了方便用戶能夠快速準確的根據盤點核心問題對盤點計 劃進行制定。該功能主要包括標記盤點路線、制訂計劃主要信息以及各區的計劃詳情。 該功能模塊不僅方便用戶制定計劃并使其認識到需要處理哪些核心問題,同時還能夠讓 執行計劃人員清楚的知道自己工作的時間、地點及任務量等重要信息。
    計劃制訂功能設計主要包括標記路線、制訂主要計劃及制訂詳細計劃三部分,其中 路線標記部分,主要使用了 Graphics類的DrawingLine (繪制直線)、DrawingEllipse (繪 制橢圓)及Drawingstring (繪制文本)等方法,實現對盤點路線進行標記,使用戶可以 直觀地了解自己的路線工作;主要計劃制訂包括召開盤點會議及計劃一覽兩個部分,這 兩部分制定了該次計劃的主要目標;詳細計劃的制訂則對12個區的具體盤點情況進行 規劃。其功能流程圖如圖4.12所示。
     
     
    計劃制訂功能編寫了 map_MouseDown、map_MouseMove、map_MouseUp 及新建 ToolStripMenuItem Click等多個事件,實現了鼠標在指定區域繪圖以及新建文件等操作。 其界面如圖4.13所示。
     
    4.3盤點信息管理模塊
    盤點信息管理模塊用于解決實盤/帳盤比對審核的問題,能夠使用戶直觀地了解到 一線盤點工作的實際狀況。本模塊主要分為實盤/帳盤信息審核、賬盤信息審核以及綜合 信息統計三部分。
    4. 3.1實盤-帳盤信息審核
    實盤-帳盤信息審核用于核對實盤信息與賬目信息,該功能主要包括信息審核、定時 導入、盤點信息匯總及錄入數據庫四部分。其中信息審核部分用于對差異情況統計,用 戶核對完實盤信息與賬目信息需將差異情況統計并錄入至該模塊,并根據差異情況生成 再盤初步計劃;定時導入功能用于在指定時間將實盤信息導入指定文件夾內并實時顯示 在實盤核對區域內;盤點信息匯總用于把多個盤點記錄單合并為單個盤點記錄單;錄入 數據庫負責把沒有錯誤的實盤記錄導入數據庫進行保存,方便用戶以后對其進行查閱。 該功能邏輯流程圖如圖4.14所示。
     
    圖4.14實盤-帳盤信息核對流程圖
    Fig. 4.14 Cargo inventory-Account inventory information check flow chart
     
    實盤-帳盤信息審核功能主要解決了用戶與Execl表格及Sql Server數據庫的互動問 題,系統引用了 Execl相關對象。該部分主要自定義了 GetAllFile方法,獲取指定文件夾 下所有文件;GetSheetName方法,獲取所有工作表名稱;GetTable方法,獲取指定服務 器內所有數據庫;ImportDataToSql方法,將工作表內容導入到數據庫;ReadDataToExcel 方法,讀取數據至指定Execl表格中。同時編寫了 ckbox_Windows_CheckedChanged,選 擇數據庫登錄方式;tsbtn_Open_Click,打開實盤文件;btn SelectFlod Click,用于選擇 接收源等多個事件。
    實盤-帳盤信息審核界面主要分為三部分,數據顯示、差異統計及數據輸入輸岀三部 分,其中實盤與帳盤數目不符的單位,系統自動進行標黃顯示。其界面如圖4.15所示。
     
    圖4.15實盤■帳盤信息核對界面
    Fig. 4.15 Goods inventory-Account inventory infonnation check interface
    4.3.2賬目信息審核
    賬目信息審核功能是為了方便用戶對財務數據進行核對,為實盤/帳盤信息審核做 準備。主要包括賬目信息統計及保存部分。其中賬目信息統計主要由倉庫帳目、往來帳 目及賬目統計三部分組成;信息保存則是將審核無誤的賬目信息導入數據庫,并等待與 實盤信息的核對。其功能流程圖如圖4.16所示。
     
     
    圖4.16賬目信息審核流程圖
    Fig. 4.16 Account information review flow chart
     
    帳盤信息審核功能主要編寫了 btn_Select_Click事件,用于選擇導入數據庫文件; btn_Export_Click事件,負責把文件導入數據庫;checkBoxl_CheckedChanged事件,選 擇是否結算完畢以及checkBox3_CheckedChanged事件,選擇所有項目是否收賬。其中, GetSheetNanae方法,用于獲取工作表名稱的開發代碼如下:
    private List<string> GetSheetN ame(string P_str_Excel)
    {
    List<string> P_list_SheetName = new List<string>();
    OleDbConnection olecon = new 01eDbConnection("Provider= Microsoft.Jet. OLEDB.4.0;DataSource=M+P_str_Excel+,,;Extended Properties=Excel 8.0n); olecon.Open();
    System.Data.DataTable DTable = olecon.GetSchema(” Tables”); DataTableReader DTReader = new DataTableReader(DTable); while (DTReader.Read())
    string P_str_Name = DTReader[1,Table_Name,,].ToString().ReplaceC$\
    * )Trim(); if (!P_list_SheetName.Contains(P_str_Name))
    P_list_SheetName.Add(P_str_Name); } ~
    DTable = null;
    DTReader = null;
    olecon.Close();
    return P_li st_SheetName;
    }
    帳目信息審核功能界面主要包括由數據顯示、數據導入及賬目統計三部分,帳目信 息審核界面如圖4.17所示。
     
    圖4.17帳目信息審核界面
    Fig. 4.17 Account information review interface
    4. 3. 3綜合信息統計
    綜合信息統計用于詳細統計歷次盤點過程的信息,根據盤點工作的總結報告及一線 盤點工作情況對其主要信息進行錄入。該部分通過呈現盤點過程的相關數據,讓用戶詳 細了解實際盤點工作情況,同時為盤點過程分析提供數據支撐。其流程如圖4.18所示。
     
    圖4.18綜合信息統計流程圖
    Fig. 4.18 Comprehensive information statistics flow chart
     
    綜合信息統計調用了 BaseInfo基礎功能模塊類的FindSummarized_InformationBy Pd_timexFindSummarized_InfbrmationByArea>FindSummarized_InfbnnationByR^^vi, 根據盤點時間、盤點區域、盤點輪次等信息統計盤點信息,并編寫了 Sum_add_Click, 用于添加統計信息等諸多事件,其中FindSummarized_InformationByArea方法代碼如下: public DataSet FindSurnmarized_InfonnationByArea(cSummarized_
    Informationinfo Summarized^nfbrmation, string tbName) {
    SqlParameter[] prams = {
    data.MakeInParam("Area", SqlDbType.VarChar, 5, Summarized_Information.Area+"%"),
    };
    return (data.RunProcRetum(Hselect * from Summarized_Information where Area like @Area*\ prams, tbName));
    綜合信息統計分為功能、信息錄入區及信息顯示區三部分,其界面如圖4.19所示。
     
    查誨輕:: 它 關卻: 必婁 說詢* 磁統計 辭 匹
    盤空時;司.匕;士瀉丁已□盤點區幔:1 2盤點類型:i E1盤點總魏:: :盤點輪次 二
     
     
    [復,鏗 ^"^^二二一一二二…,二二…~z===z—-—^二 總計聘長:: j 菅理歳程尋Eg長:[ 1加班H托:I |
    ~~— : 二二二:.'二”.. 二二:-2z—:.一-二—
    總王作A魏; [財務郵門人數 差異數r 主要差異原13
     
    盤點時間 盤點區域 番點類型 盤忽數 工作總人數 胃理人數 財霽人數
    2018-4-1 C 首盤 3672 6 1 1 3
    2018-4-1 D 6378 6 1 1 '•4
    2018-4-1 E 首盤 5841 6 1 1 6
    2018-4-1 F 首盤 12240 6 1 1 6 5
    2018-4-1 G 首盤 3896 6 1 1 ■A
    2018-4-1 H 首盤 5642 6 1 1 4.5
    2018-4-1 I 首盤 3428 6 1 : |3.2
    2018-4-1 J 首盤 3560 )6 1 1 ?2.6
    2018-4-1 K 首盤 5635 6 1 .1 4
    共th 7
     
    圖4.19綜合信息統計界面
    Fig. 4.19 Comprehensive information statistics interface
    4. 4進銷存信息管理模塊
    進銷存信息管理模塊主要用于對進銷存信息的增、刪、改、查以及對庫存狀況的統 計,從而達到管理員通過對進銷信息查詢核對實盤-帳盤信息的目的。該模塊包括進貨信 息管理、出貨信息管理、銷售信息管理及庫存合計三部分,其中進貨信息管理用于對進 貨和調貨信息執行統計、增加及刪除等操作;出貨信息管理用于統計出貨信息情況,由 于其流程與進貨部分較為相似,所以本文主要描述進貨信息管理部分;銷售信息管理負 責對銷售狀況及成本進行統計;庫存合計能夠對現有庫存信息進行統計。
    4. 4. 1進貨信息管理
    進貨信息功能包括進貨、進貨退貨及調貨的管理,由于它們實現原理及過程類似, 本文著重介紹進貨部分的實現過程,進貨部分流程圖如圖4.20所示。進貨管理包括進貨 單及進貨統計兩部分,進貨單用于增添新的進貨信息;進貨統計負責統計近期進貨信息, 并可以額外錄入或增補新的進貨信息,為了防止進貨信息被打亂,進貨統計禁止對原有 進貨信息修改。
     
     
    圖4.20進貨管理流程圖
    Fig. 4.20 Purchase management flow chart
     
    進貨管理功能調用了 Baselnfb基礎功能模塊類的GetAllBill方法,獲取進貨單信息; AddTableMainWarehouse 方法,錄入進貨商品信息主表;AddTableDetailedWarehouse 方 法,錄入進貨商品信息明細表;AddCurrentAccount方法,添加出入賬信息。主要編寫了 btnSelectHandle_CIick事件,選擇經手人;btnSave_Click事件,負責保存進貨單信息; btnSelectUnits_Click 事件,選擇供貨單位;BuyStockList CellDoubleClick 事件,選擇供 貨商品信息;BuyStockList_CellValueChanged事件,數據表中加入商品信息時,根據進 貨數量及單價計算商品總金額;BuyStockList_CellStateChanged事件,數據表中商品信 息發生變化時,計算應付金額并顯示在文本框中;txtpayment_TextChanged事件,用于 輸入實付金額,并計算差價。BuyStockList_CellStateChanged事件開發代碼如下: private void BuyStockList_CellStateChanged(object sender
    ,DataGridViewCellStateChangedEventArgs e)
    {
    try
    {
    float sum = 0;
    float qty = 0;
    for (int i = 0; i <= BuyStockList.RowCount; i-H-)
    {
    sum = sum + Convert.ToSingle(BuyStockList[5, i].VaIue.ToString()); qty = qty + Convert.ToSingle(BuyStockList[3, i].Value.ToString()); txtFullPayment.Text = sum.ToString();
    txtStockQty .Text = qty.ToString();
    }
    }
    catch { }
    }
    進貨管理界面采用TabControl控件將進貨管理信息進行層疊顯示,用戶在一個界面 內便可對多種進貨信息執行增添、查閱等操作。進貨信息的進貨單界面如圖4.21所示。
     
    圖4.21進貨單界面
    Fig. 4.21 Purchase order interface
    4. 4. 2銷售信息管理
    銷售信息管理主要包括銷售統計、整體銷售狀況、銷售成本清單以及銷售退貨統計 四部分,由于使用的方法以及實現的過程類似,本文主要介紹銷售統計部分。通過該功 能用戶可以查閱由企業數據庫提供的一定時間段內的銷售信息,而且用戶可以清楚地了 解到商品實際售賣情況,同時也能夠作為盤點信息核對的數據支撐,根據銷售情況檢驗 實盤與帳盤信息的準確性。
    該部分主要調用了 BaseInfo基礎功能模塊類的SellStockStatusSum,合計主要銷售 狀況;SellStockSumDetailed,合計詳細銷售狀況;SellStockSum,商品銷售總計等多個 方法。編寫了 tlbtnSumDetailed Click事件,對銷售信息進行詳細統計;tlbtnSum_Click 事件,負責統計所有銷售信息;tlbtnRank_Click事件,點擊數量排序時觸發,根據銷售 數量對商品進行排序。該界面也采用了 TabControl控件層疊顯示銷售狀況,其界面效果 如圖4.22所示。
    和迸苗瑋信宜一舅伍信宜 ….—二此心!
    ”*鞏卄 整體請售狀說飛肖售竄云看童~爲售噸貨統計——
    (2010年2月2日Q (2019^ 2月 23 曰 1.,詳疇計 -數尉E序
    商品編號 商品名稱 謂售金額
    產品T 15 3900
    S0010 產品T0 75 4500
    S0002 產品-2 7 5460
    S0003 產品-3 52 7800
    S0004 產品 48 6240
    S0005 產品-5 26 22100
    S0006 產品 105 75600
    S0007 產品-7 45 20250
    S0008 產品-8 32 10240
    S0009 產品-9 68 32640
    %*
    < >
    圖4.22銷售統計界面
    Fig. 4.22 Sales statistics interface
     
    4. 4. 3庫存合計
    庫存合計功能負責對現有庫存信息進行統計,用戶可以對庫存合計信息進行查詢、 添加、刪除等操作,還可根據庫存數量對庫存貨物進行排序。該部分主要通過選擇貨物 編號、貨物名稱及貨物型號等條件并輸入關鍵詞方便用戶查看庫存現狀,同時根據銷售
    及進貨信息對庫存信息核對修改,保證了庫存信息的準確性。庫存合計的新增及編輯功 能的時序圖如圖4.23所示,本文只展示主要的對象生命線以及這些生命線之間傳輸的 主要消息。
    管理員 this : frmStockSummation this, baseinfo : BaseInfo this, baseinfo, data : DataBase
     
     
     
    圖4.23新增及編輯庫存信息時序圖
    Fig. 4.23 Inventory total flow chart
    庫存合計功能調用了 BaseInfo自定義類的FindStockByProduce,根據貨物產地查詢 商品信息;FindStockByFullName,根據貨物名稱查詢商品信息;FindStockByTradeCode, 根據貨物編號查詢貨物信息;DeleteStock,刪除貨物信息;AddStock,增加貨物信息等 多個方法,并在本功能內自定義了 SetStockSummationListHeadText,設置數據表標題等 方法。編寫了 tlBtnAdd_CIick、tlBtnSave_Click、tlBtnDelete_Click、tlBtnFind Click 等事 件,用于對庫存信息增添、保存及編輯。庫存合計由功能選擇、文本輸入及數據顯示三 部分組成。其界面如圖4.24所示。
     
     
    圖4.24庫存合計界面
    Fig. 4.24 Inventory total interface
    4. 5職工信息管理模塊
    職工信息管理模塊包括職工基本信息管理、職工考評及考勤津貼三部分,主要用于 管理員工的職位、能力、在崗狀態及日常表現等信息。
    4. 5. 1職工基本信息管理
    職工基本信息管理由員工信息設置、調職及調職信息查詢三個部分組成,本文主要 介紹員工信息設置部分,員工信息設置用于管理員工基本信息及賬號信息,這些內容主 要由管理員對其進行設置【鋼。其中員工信息設置界面如圖4.25所示。
     
     
     
     
    圖4.25員工信息設置界面
    Fig. 4.25 Employee information setting interface
    職工基本信息管理調用了BaseInfo自定義類的AddEmployee、DeleteEmployee、 FindEmployeeByDept> FindEmployeeByFuIlName及GetAllEmployee等方法對職工的基 本信息執行增加、刪除、查詢等操作,并編寫了PowerSet一Click、KeyUpdate_Click等事 件對員工賬號信息進行設置。
    4. 5. 2職工考評及考勤津貼
    職工考評及考勤津貼用于評價用戶的能力及日常表現,對表現突岀、工作勤勉的職 工進行物質獎勵并保存獎勵記錄。職工考評主要考察職工的盤點效率,根據其表現進行 評級,用戶通過查詢考評信息可以了解到每個員工的盤點工作能力,并為其分配與其能 力相匹配的工作;考勤津貼則根據員工日常盤點工作出席及工作效率等情況對員工工作 及日常表現進行記錄。職工考評及考勤津貼部分流程圖,如圖4.26所示。
     
    圖4.26職工考評及考勤津貼流程圖
    Fig. 4.26 Staff evaluation and attendance allowance flow chart
     
    職工考評及考勤津貼使用了 BindDataGridView,綁定DataGridView控件及GYSD 計算個人所得稅。其中考評結果計數方法HumanNum代碼如下:
    public int HumanNum(string strsql)
    {
    conn.Open();
    SqlCommand cmd = new SqlCommand(strsql, conn);
    int i = (int)cmd.ExecuteScalar();
    conn.CloseO;
    return i;
    }
    職工考評界面分為功能選擇、結果顯示及結果計數三部分,其界面如圖4.27所示。
     
    圖4.27職工考評界面
    Fig. 4.27 Staff evaluation interface
     
    4. 6盤點效率監測分析模塊
    盤點效率監測分析模塊表現了盤點工作的綜合效率,通過各類圖表使用戶直觀地了 解到盤點工作中各區域、各時間段的工作情況,同時也對盤點過程出現的各種情況進行 了全面分析。盤點效率監測分析模塊分為盤點效率檢測和差錯統計分析兩部分。
    4. 6.1盤點效率監測
    盤點效率監測功能主要分為三部分,即盤點時長統計、實際/預測盤點效率對比以及 職工能力分析三部分。其中盤點時長主要用于統計歷次盤點各區所用時長,同時可以對 每個區所用時間進行比較;實際/預測盤點效率對比用于監測該次盤點工作情況是否正常, 并且將該次各區盤點的效率與預測值進行比較,其中預測值為之前各次盤點效率的平均 值;職工能力分析用于統計每個員工在不同倉儲區的工作表現,通過計算每次盤點工作 該職工在每個區域工作時間的平均值,達到對員工的整體能力清楚了解的目的。
    盤點效率(Inventory Eficiency )的計算主要包括盤點貨物總量(Total Quantity of Goods)、有效工作時間(Effective Working Time)及實際參與人數(Actual Number of Participants),即總量、時間及人數三方面,因為貨物總量由盤點結果報告生成,所以 漏盤貨物數量不計入貨物總量。根據盤點工作實際情況并依據生產效率計算等方法得出 盤點效率主要計算公式〔49】:
    Ei=呈 (4.1)
    其中,El為盤點效率、Qt為貨物總量、Te為有效工作時間。
    由此可以看出,盤點效率計算過程中,盤點時間長度的精確程度十分重要,盤點時 長統計部分通過選擇盤點時間及盤點區域便可查詢該次盤點使用時間情況。通過實地調 查A倉儲公司盤點所用時間,得出關于有效工作時間Te算式如下:
    Te = Ts-Tp + To (4.2)
    其中,Ts 為標準工時(Standard Working Hours),Tp 為流程工時(Process Work Hours), 即管理、行政等工作所占用標準工時的時間、To為加班工時(Overtime Work Hours)。 盤點時長統計采用柱狀圖進行表示,具體如圖4.28所示。
     
    』上戲% ?- •養的-
     
    12區盤點時長統計
     
     
     
    圖4.28貨物盤點時長統計界面
    Fig. 4.28 Cargo counting time statistics interface
     
    通常情況下,倉儲企業都會選擇將同類型的貨物存在一個倉房對庫存進行管理,然 而不同類型的貨物對盤點工作的影響往往會被人忽視,通過計算每個廠區的人工盤點效
     
    率(Participant Inventory Efficiency),計算人工盤點效率的作用是判斷不同類型的貨物 對于盤點工作的影響,可以讓用戶實時了解各廠區的實際工作狀況。本文設計了實際/ 預測盤點效率對比功能,實際人工盤點效率計算公式為:
     
    其中,x表示A至L廠區中的一個廠區,£>心)為一個廠區的人工盤點效率、“仲匕) 為該廠區實際參與人數、Qt®為該廠區盤點貨物總數、心⑴為該廠區貨物盤點有效時間。 通過對A倉儲公司盤點過程人力使用情況的分析,關于實際參與人數“廿算式如下:
    ^ap = NT — Nm — NF (4.4)
    其中,Nt為參與人數總計(Total Number of Participants)、Nm為管理部門人數 (Number of Management) , Nf 為財務部門人數(Number of Financial Department) o
    實際/預測盤點效率中,預測人工盤點效率計算公式為:
    爲心)=- Ohl, /?>2) (4.5)
    其中,i為表示盤點次數的變量,R為截至當前盤點工作輪次,分子為書1 Ep©)q) 用于求前R-1次的A-L中一個倉房實際人工盤點效率的總和,分母R-1表示該次盤點之 前的盤點輪次,£>心)則表示前R-1次該倉房實際人工盤點效率的均值即預測人工盤點 效率。該功能通過選擇盤點時間便可查詢該次盤點實際與預計人工盤點效率對比情況, 其界面如圖4.29所示。
    ,wwwtt
    A * S•勺 AW- _
    實際盤點效率與預計盤點效率對比
    •W
    BCDEFGHIJKL 區城(A-L)
    血血 實赫人王蕊點製揮/盒色:穫計人.工盤慮玻率
    圖4.29實際/預測盤點效率對比
    Fig. 4.29 Actual/Predictive inventory efficiency comparison
     
    同時為了分析的更加全面,本文選取了多次具有代表性的全區盤點歷史數據進行統 計。在盤點總數Qt不同的情況下,隨著人數Nap的變化,觀察有效盤點時長Te的變化 趨勢。通過圖4.30以觀察出在Nap恒定的情況下,Qt越大則Te越小,但當Nap>70之 后,不同Qt使用的Te差距越來越小;在Qt恒定的情況下,Nap越大則Te越小,但當 Nap>120之后,所有Qt使用的Te近乎相等。通過分析該圖表得出A倉儲公司日常盤點
    人員儲備在70人至120人之間。
     
    實際參與人數(Nap)
     
     
     
    圖4.30人工盤點效率分析
    Fig. 4.30 Manual inventory efficiency analysis
    職工能力分析用于統計分析每個員工的個人能力,該模塊根據每個職工的考評信息 對員工各項能力進行統計分析,通過統計該員工在A至L十二個倉房每個倉房的平均 盤點效率,體現出該員工盤點工作的綜合能力并分配給其相匹配的工作。如圖4.31o
     
    盤點效率監測模塊主要使用了 Visual Studio 2008水晶報表及繪制圖表相關功能。自 定義了多種方法,主要有GetCrystalReports方法,動態綁定數據源;drowPic方法,用 于繪制圖形;ShowPic方法,繪制框架并顯示扇形圖表。并編寫了 printDocumentPrintPage, 用于分頁打印等多種事件。其中ShowPic方法部分代碼如下:
    private void ShowPic(int Sum)
    {
    using (cmd = new SqlCommand("select t_Point,sum(t_Num) from manpower group by t_Point order by sum(t_Num) desc", con))
    {
    Bitmap bmp = new Bitmap(this.panel 1 .Width, this.panel 1 .Height); Graphics g = Graphics.Fromlmage(bmp);
    cmd.Connection.Open();
    g.DrawLine(newPen(Color.Black), 0, this.panel 1 .Height / 2, this.panel 1.
    Width, this.panel 1 .Height / 2); g.DrawLine(newPen(Color.Black),this.panel 1 .Width/ 2, O.this.panell.
    Width / 2, this.panel 1 .Height); this.panel 1 .Backgroundimage = bmp;
    dr.Close(); con.Close();
    }
    }
    4. 6. 2差錯統計分析
    差錯統計分析主要由盤點差異情況統計、準確率對比、差錯原因統計以及區域綜合 分析四部分組成。差異情況統計功能用于統計歷次盤點差異總數;準確率對比則是將該 次盤點的準確率與企業對于該類貨品給出的允許最低準確率進行比較,判斷該區域此次 盤點工作準確程度是否達標:差錯原因統計是對誤盤、漏盤等操作發生原因進行統計, 并在實際生產工作過程中避免該類錯誤發生;區域綜合分析主要作用是讓用戶了解該區 域的重要性及其對應的盤點工作難易程度。
    盤點差異情況統計用于統計歷次盤點的差異情況,其目的是通過該部分讓用戶直觀 地了解到每次盤點的差異數,同時能夠對每次盤點的差異數進行比較,進而對盤點質量 的高低有一定的把握。盤點差異情況統計如圖4.32所示。
     
     
    圖4.32貨物盤點差異情況統計
    Fig. 4.32 Statistics on the difference of cargo inventory
    準確率對比部分通過對該次盤點準確率與企業規定的允許最低準確率進行比較,判 斷各區的盤點工作準確率是否達標。根據實際工作情況得出盤點準確率的計算公式為:
     
    其中,Ai為該次盤點準確率(Inventory Accuracy)、乙為該次錯誤盤點數(Error Inventory),該式通過計算盤點出錯比例IeIQt,得出貨物盤點的準確率。
    準確率對比通過選擇盤點日期對其盤點精確度查詢并對比,結果如圖4.33所示。
     
    BCDEFGHIJKL 區域(A-L)
    圖4.33貨物盤點準確率對比
    Fig. 4.33 Cargo inventory accuracy ratio comparison
     
    誤差占比統計主要計算每種盤點失誤數量占所有盤點失誤數的比例,其界面如圖 4.34所示,通過報表可以看出,A倉儲公司盤點工作出現誤盤狀況的主要原因占比為: 管理流程不完善占36.0%、財務結算出錯占20.0%以及出入庫作業失誤占15.0%o所以 建議A倉儲公司應該加強企業盤點流程的管理以及財務部門的核算精度。
    誤差占比統計
     
     
     
    區域綜合分析包含各區平均盤點時長、盤點難度系數及資產占比三部分,平均盤點 時長通過計算各區有效盤點時間Te的平均值得出,其計算公式為:
    (i> 1, /? > 1)
    Te(x)= Ts(x)_ Tpg + To(x)
    其中"(R為A至L中一個廠區的有效盤點時間,R為截至當前該區域盤點的盤點次 數。盤點難度系數主要通過該區的資產占比、盤點的復雜程度及盤點貨物易碎、體積較 大等貨物自身屬性對該類盤點貨物難度進行評定。資產占比統計各廠區貨物的價值占廠 區總價值的百分比,體現每個倉房的重要性。
    區域綜合分析界面如圖4.35所示。
     
     
    圖4.35區域綜合分析
    Fig. 4.35 Regional Comprehensive Analysis
    差錯統計分析模塊中用于動態綁定數據源的GetCrystalReports方法代碼如下: public ReportDocument CrystalReports(string P_str_creportName, string P_str_sql)
    {
    ReportDocument reportDocument = new ReportDocument();
    string P_str_creportPath = Application,StartupPath.Substring(0 ,Application.StartupPath.Substring(0,Application.StartupPath.LastIndexOf(,,\\n)).
    LastIndexOf^\\n)); P_str_creportPath +二 n\\" + P str creportName; reportDocument.Load(P_str_creportPath);
    reportDocument.DataDefinition.RecordSelectionFormula ~ P_str_sql; return reportDocument;
    }
    4. 7 FTP文件傳輸模塊
    FTP文件傳輸模塊可以對本地及FTP服務器端的文件進行管理及傳輸,負責對盤點 相關文件進行上傳和下載,其主要實現功能包括復制、剪切本地文件;上傳本地文件或 文件夾;刪除、粘貼本地文件;從服務器端下載文件;刪除服務器端文件以及在服務器 端創建目錄a®】。
    FTP文件傳輸模塊工作的整體功能流程圖如圖4.36所示。
     
    圖4.37 FTP登錄流程圖
    Fig. 4.37 FTP login flow chart
    其中,用戶上傳及下載的時序圖如圖4.38所示,本文只展示主要的對象生命線以及 這些生命線之間傳輸的主要消息,其中FTPfrm為FTP窗體類、FTPBaseClass為自定義 的FTP功能相關類。
     
    FTP文件傳輸模塊主要分為FTP登錄、本機文件操作及FTP服務器文件操作三部 分。主要使用了 FtpWebRequest類和WebRequestMethods.Ftp類來實現這三部分功能, FtpWebRequest和WebRequestMethods.Ftp是.Net下系統定義的一種用于支持FTP工作 的類,其主要包括 CreateObjRef> EndGetResponse> AppendFileDownLoadFile>GetFileSize> ListDirectory、MakeDirectory等諸多成員。本模塊通過設置并使用FtpWebRequest及 WebRequestMethods.Ftp類的各種屬性和方法,就可以完成一系列與FTP相關的操作。 同時,本模塊還調用系統API (是Windows操作系統的部分動態鏈接庫(DLL))協助 本軟件完成FTP相關任務。
    為了方便編寫并能夠集中管理FTP相關代碼,本模塊編寫了 FTPBaseCIass自定義 類,其中包括ListFolders,獲取本地磁盤;GoBack,返回上一級;GetPath,獲取文件路 徑;GetListViewItem,獲取指定路徑下文件及圖標等諸多方法。這些方法通過調用、設 置FtpWebRequest和WebRequestMethods.Ftp類的成員等內容,從而實現FTP文件傳輸 模塊中的一些操作。例如,DownLoad方法通過 WebRequestMethods.Ftp類的 DownLoadFile成員設置FtpWebRequest類的Method屬性實現下載FTP服務器中的文 件,其主要代碼如下,本文省略了部分FTP相關設置代碼。
    public bool Download(string filePath, string fileName, string ftpServerIP, string ftpUserlD, string ftpPassword, string path) {
    bool check = true;
    FtpWebRequest reqFTP;
    string uri;
    if (path. Length = 0)
    uri = "ftp://" + ftpServerlP + + fileName;
    else
    uri = "ftp://" + ftpServerlP + + path + fileName;
    try
    {
    FileStream outputStream = new FileStream(filePath + + fileName,
    FileMode.Create);
    reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(uri)); reqFTP.Method = WebRequestMethods.Ftp.DownloadFile; reqFTP.UseBinary = true;
    while (readCount > 0)
    { outputStream.Write(buffer, 0, readCount); readCount = ftpStream.Read(buffer5 0, bufferSize);
    }
    ftpStream.CIose();
     
    outputStream.CloseO; response.Close();
    }
    catch
    {
    check = false;
    }
    return check;
    }
    FTP文件傳輸模塊主窗體分為三個部分:第一部分是位于頂部用于登錄FTP服務器 的功能模塊,輸入主機地址、端口號、用戶名和密碼,點擊“連接”按鍵,登錄服務器; 第二部分是在左側顯示本地文件并可對本地文件進行操作;第三部分是右側顯示FTP服 務器內文件并可對服務器內文件進行操作。其界面如圖4.39所示。
     
    ,2018-04-01
    ,2018-05-01
    ,2016-06-01
    ,2318-DT-Ol
    ,2018-08-01
    2018-09-01
    2018-10-01
    2018-11-01
    2018-12-01
    厲戻差異總計 畛結賬記錄
    【蘭館建錄毘戶xirfa pe ng]
    圖4.39 FTP文件傳輸模塊界面
    Fig. 4.39 FTP file transfer module interface
    本章小結
    本章首先設計系統登錄模塊,接著在盤點計劃管理模塊中實現對盤點計劃的制訂、 錄入及查詢等功能,并在盤點信息管理模塊中設計了對盤點信息的審核及統計功能,通 過設計進銷存信息及職工信息管理模塊對盤點相關信息進行管理,然后根據實際盤點信 息對盤點效率進行監測并統計分析盤點差錯情況。最后設計了 FTP文件傳輸模塊,實現 了盤點相關文件的傳輸。
    第五章盤點信息管理系統測試
    5.1文件傳輸及數據庫連接測試
    盤點信息管理系統主要用于對盤點工作相關信息和數據的查閱、處理及分析等,所 以只有保證了穩定的數據傳輸過程才能保證系統正常的工作。接下來本文主要從FTP文 件傳輸過程以及數據庫連接兩方面對系統的數據傳輸過程進行測試,之后通過觀察相關 測試結果對數據及文件的傳輸過程進行判斷,進而驗證本系統的文件傳輸及數據連接部 分是否可以正常工作。
    5.1.1文件傳輸測試
    本節將對本文所實現的FTP客戶端文件傳輸過程進行測試,測試其是否實現了預 期的文件上傳與下載功能。本次測試將客戶端與服務器進行連接,觀察眼務器日志的測 試方法去判斷FTP文件傳輸模塊能否實現相關功能,使用Serv-U (—款用于搭建FTP 服務器的軟件)對FTP服務器進行搭建,在Serv-U中設置服務器地址為192.16&43二5, 端口為21,用戶名為xufapeng,密碼為aaal23,用戶訪問權限為完全訪問。
    FTP傳輸模塊測試主要包括用戶登錄及文件傳輸測試兩部分。通過在Serv-U域活 動功能中查看服務器內活動日志對FTP通信過程進行驗證。其中,FTP登錄功能對應的 活動日志如圖5.1所示,其內容為FTP登錄活動日志。
    ]
    FTP.Tesn - MS?動 1
    HLS動■ 5!亍去于芻EES価2痂三辭曲豈5!寫劊■遠項卡可”figf 幻三手僅愿―
    H | 說計 | =.= *sS»ii«T-, 5 7 vdt
    Domain Log
     
    1023 Mon CKAprW 12 2V28-(00-3038; 192 '63 心 *52 165 43.25 .話匚 2八
    [03! h'or 12 T Zi - P色獰:J;冷卜;G'「•"於々?5
    |021 Mon DSAprtg ,2 2:.2E - (KXJO&3' 巨戶、ufaoeng"三登耒
    全這 貝卸嘗導扳 彌日志 師一 、' T8BS
    圖5.1 FTP登錄功能測試
    Fig. 5.1 FTP login and exit function test
    FTP文件傳輸部分對應活動日志如圖5.2所示,其中文件發送為下載文件過程,文 件接收為上傳文件操作過程,圖中所下載文件為A倉儲公司2018年4月1日的部分貨 物盤點信息,所上傳文件為A倉儲公司2019年4月1日的部分貨物盤點信息。
     
     
    ' ==.*ej»1£e^ =* g
    Domain Log
    (10] Mon 08ACTS9 12:55.22 - iOOKXX 三舷純文件"C FTP SERvER\20lB-04-0i iAccuntCnec^CneciAAcc(w«_Oh€ck xs"阿 OB K3旳-5Z 76D s=
    (1DJ Mon D8Ac<-:9 12:55.22 • <0®004',己成畑陡文詳"C FTP SERVER'2O1&-D4-O1 cun?Chect'a^enceiAccounl_Cnee»: vi? (956 75 *3.f - 15 3'2 3==-
    (10] MonOSAprif 1255.22- (ODODOA 牛"C 7rTP_SER'WR\20:8"MD火cuntChecKjmporf^countOhec<txf (C •: KB-^- *4;孚三:
    110] Mon 0WL9 12 55 22 -(000004〉已成弟發匡丈件'C VTP.SERVeR^O^S-Oa-Oi \FirstCheckCnecK\First0neO.xis' (3.333 33 KB尾-41t 字
    J1Q] Mon OEApr^ 1155.22 - .:D00304j 己筋注送艾"C V:TF_SERVeR\2Dl9-D^-0nrtrsteheeWDffferenc6lFirstChetk(aiffe'%nte ms" (24 OS KB*.- - 2£.576 s~'
    (10]Mcr.OSAix-S-1255.22 - (OOCKJOd "C 'FTF_SER^R201^4^^Fire1CbecWrripomFfrstChec>-.ur (1,013.?3+®*' - 572 =■=,
    |10) Mon DSAp^S 12 55.22 - (003X)4}己成為反連文體"C *F7PZSER*.?ER\2O1&-04-01 '.SeccnCCnecH'.CnecFVSei ondCneci W 637 10 K5矽-28.160 宴弓'
    1101 Mon OSApd* 12 55.22 - ;030004 \ 已舷爲乏二件 PFTP—SERVSRQOt&CUP代SeconCCneck\DrftefFie'Seconc6ec"crfHencg 心 r.25C DO KB/»r - 2D 紹0 寒壬、 I1D; 02Ax>^? 12 S5 22 - fOC^KM' C ■n'F.SER'. LRJDiS-C^-Oi'vSeioncCheLK'Jmt^Sef . >• -4£- -二」二芋=
    (ID] Mon 08A©f^9 1Z55 22 -,0»004 -己曲St住W 牛•CATrP_SER'.,ER^Diet-D4-0V>ThircChecr3heck,'h^Chect >*' * 091 75 KEV - -?.?2C 車虧;
    pDJ Mon OSAir^ 125S 22 - (DOOiW;己武4龍2M詳"C 'TTP.SE^R'JDi&-W-0i ■.ThrcOnec-^ifference'.Th.rdOhecKiafle^ni e xi: :2尖 S" <3/t - M 攻:=三 pOjMon 0oApf!5 12 55.2? • (O&3DO4:已成忑?£迭文焊"C FTP_SERVER\2:).&04D:TnunJChecKMmooft:-rP:3neo.irr,‘矽 3" KMO -£32:工壬
    p 1j Mor. 03A©r!5 12 55 50 - (000004 "C \FTP_SERVeR^D1 ShU-DI VAcc jnJChecK\Chec^ '.Accoun._Che:t «" ,.3£C ?3 K3f -4Z4&6 s:~.
    |-.1] Mon 08Apr"!c 125:. 50 -(000304 三成野S述?牛 X FTP_SERVERV2Dl&-D4-O1'.ActUffiCnecK0-.fferen;elA:covnt_C-'eci ■- :HO i: K3T -1£ MM 孚云
    |11]Mon0&Apn5 1Z55 50- (DDODG* ■己成呢藥7件"C^FTP.SER'^R'JO^CU^I'AccuntCheci JmpomAccountCnec• M ■ : 21 - 22: :'
    f11|Mon05Ajx-!& 12:5£ 50 - <003004} 戈件"C >FTP_SER'./ER2D'!&-D4-OnFirstOiecK\CnecH\Fi!S!C nett »w「: ?5 KE匕 乂 L2C 書云
    |111 Mon £feAprl$ 12:55 50 - tOOSKW "C ^FTr.SERV-ER^O^&^u-oi'.FjrstChecl<Offierenee\=ntCn£«(d!^ence 1 ■ s' ■ 03K?.P - 22.52T ==.
    |11l MortOSAonG 12.55.50- (003904> C FTF_S=RVER2D-M)4-0r.F:rstCbecWmDorftFirstCt>ecktxr ■ '27 K KE* ■: 22 孚虧
    |11]Mon ObAp-t? 1Z55:5: (D0Gi»4; ■C:VTP_SER\/ER'20i9i-Di-0nS«onCChetrACnec» iSeconcOec- >•.' .27 £ 1& KB>. -26CK,
    |11|Mon 0SAIX1& 12 55.51 -:033004- "C ■rTP_SERV,ER'>20lsMU-Di'SeconQCneciftD«ere»K&'.S蘭cnCUheepM&encw *5- ;362 KB今-1S.8S*
    (11]Mon OSApf-55 12 E6 51 - ?0DG004、已筋5«S範:詳"C ^HT_SERV^RQDt&-OA-OiiSeconaChfie^Jmooft.SecondC^eo h . *£4 2?- KB4' - *4 J棗三 !11] Mor. OSAon? 12.55 51 - rO&JXM;己S沁JHC "C 'LTF_SERVE驗ydC"CmThi96ecMhecbr“P68C『燈(2;x i?KB^ -皓吧,字m
    [11] Mon DS Apr? & 12:55® - <'000004】 •,C'.?TP_SERVER'2Di &-IU-01 •.TtiiroCheci-'-n^fenc e'TmrdChecioa^e^enc e > xl:- (K 2 KSg - - :-22- s=:
    fill Mnn ftAAnrltf 1"片- rgVWU 戸•fiOzrSit'Zftt "C '.=~TP SURVParX^iAUHVrrwriCnpc理rnnn金M' - p " *3段-ZP;
    亦進EW 全遴 麗日志 B«... 雄日姦… 、,下慕日忘
    圖5.2 FTP文件上傳及下載功能測試
    Fig. 5.2 FTP file upload and download function test
    文件上傳及下載完畢之后,FTP文件傳輸模塊對應彈出“上傳成功”和“下載成功” 對話框。為了驗證文件的傳輸過程無誤,本次測試在“C:\FTP_SERVER\2019-04-01\ SecondCheck\Difference"路徑下打開了 "SecondCheck(difference).xls"文件,并在接收端 打開了 “2018-04-0l\FirstCheck\Check”路徑下的 “FirstCheck.xls”文件,這兩個文件的內 容皆與對應的下載及上傳源文件的內容一致,說明FTP文件傳輸模塊成功地實現了文 件傳輸功能。
    5.1.2數據庫連接測試
    由于本系統功能需要對盤點及人員等信息進行大量的增、刪、改、查等操作,因此, 數據庫連接的穩定性就顯得至關重要。本文使用UDL測試數據庫的連接情況。 UDL(Universal Data Link)是通用數據連接文件。其主要工作原理是UDL通過創建ADO 連接,并根據數據源的類型不同進行變化,從而達到可以和ODBC-樣可視化地定義要 連接的數據源并實現數據訪問的透明性的目的。
    首先創建一個后綴為“.udl”的文件,打開該文件,輸入數據庫對應服務器名稱、用戶 名及密碼,最后選擇本系統所用數據庫“db_PD”并點擊測試連接按鈕對數據庫連接情況 進行測試。其結果如圖5.3所示。
     
     
    圖5.3數據庫連接測試
    Fig. 5.3 Database connection test
     
    圖中數據鏈接屬性顯示測試連接成功,驗證“db_PD”數據庫能夠與本系統等其它 應用正常連接。
    5.2系統軟件功能及性能測試
    在軟件的設計過程中難免出現一些無法預知的問題,這就需要對軟件進行測試,軟 件測試就是根據實際場景中用戶的實際需求,對系統軟件進行相應的測試,及時發現系 統不符合實際需求的地方并進行完善。軟件測試的主要任務就是盡可能多地找出隱藏在 軟件中的問題,并且保證軟件的質量能夠達到既定要求。本節軟件測試部分主要包括介 紹軟件測試環境、軟件功能測試及軟件性能測試三部分。
    5. 2.1系統軟件測試環境
    測試環境(Test Environment)是對測試所使用的軟件和硬件環境的描述。通過營造穩 定的測試環境,就可以高效率的執行測試用例,而且無論何時每一個被測試出的問題都 會得到應有的重視[舛。因此擁有良好的測試環境,能夠有效提高測試工作的效率和質量 本次測試使用的軟硬件配置如表5.1所示。
     
    表5.1貨物盤點信息管理軟硬件配置表
    Table 5.1 Goods inventory information management software and hardware configuration table
    設備型號 戴爾 Inspiron 15-3537
    硬件 CPU 15-4220U 主頻:1.6GHz
    內存 4. 00GB DDR3L 1600MHz
    硬盤 SATA 465. 76GB
    軟件 操作系統 Microsoft Windows 7
    數據庫系統 SQL Server 2008 R2
    辦公軟件 Microsoft Office 2016
     
    經過調查分析,盡管選擇的品牌不同,但是大部分倉儲企業選用的辦公電腦軟硬件 配置還是比較相似,具體參數如表5.2所示。
    表5.2企業選用的辦公電腦軟硬件配置表
    Table 5.2 Office computer software and hardware configuration table selected by the enterprise
    設備型號 Lenovo 揚天 M4000e
    硬件 CPU i 5-7400 主頻:3GHz
    內存 4. 00GB,可擴展至& 00GB
    硬盤 SATA 500GB
    軟件 操作系統 Microsoft Windows 10
    數據庫系統 SQL Server 2008 R2
    辦公軟件 Microsoft Office 2016
     
    5. 2. 2系統軟件功能測試
    從軟件的內部實現情況了解程度的角度可以把測試軟件的方法分為白盒測試、黑盒 測試及灰盒測試[刈。白盒測試是指基于被測對象的內部結構進行測試的方法:黑盒測試 是指在不考慮被測對象內部實現情況而進行的測試方法;灰盒測試是黑盒測試和白盒測 試的混合體,是在了解一部分被測對象內部實現的情況下的測試方法由于本次測 試主要測試本系統軟件功能,所以本次測試選用黑盒測試方法測試軟件功能完成情況。
    黑盒測試分為靜態及動態黑盒測試,靜態黑盒測試是對系統規格說明書的評審;動 態黑盒測試是通過運行被測系統進而發現系統缺陷,驗證系統能否滿足用戶的需求。本 次測試主要使用動態黑盒測試方法,其工作過程是首先根據系統的功能選擇一些輸入, 接著運行系統,最后查看結果是否達到預期結果,并根據測試結果驗證該功能是否正常。
    下面本文主要對登錄模塊、盤點計劃管理模塊、盤點信息管理模塊、進銷存信息管 理模塊、職工信息管理模塊、盤點效率監測分析模塊及FTP文件傳輸模塊的主要功能的 測試過程進行描述。其主要過程即通過執行每個模塊對應的功能測試用例,觀察總結功 能測試結果,進而驗證本系統功能是否正常工作。
    (1)用戶登錄測試
    用戶登錄模塊負責審核用戶信息,主要用于防止非系統用戶登錄。其部分測試結果 如表5.3。
    表5.3用戶登錄測試用例
    Table 5.3 User login test cases
    用例標識 測試場景/條件 具體操作 預計結果 測試結果 結論
    TC001 用戶成功登錄 輸入正確的用戶名和密 碼,點擊“登錄” 進入系統主界面 進入系統主界面 通過
    TC002 輸入用戶名或 密碼錯誤 輸入用戶名,且輸入錯誤 密碼,點擊“登錄” 彈出“用戶名稱 或密碼不正 確!” 彈出“用戶名稱 或密碼不正 確!” 通過
     
    用戶名或密碼輸入錯誤場景測試結果如圖5.4所示。
     
    圖5.4用戶名或密碼輸入錯誤測試
    Fig. 5.4 User name or password input error test
     
    (2)盤點計劃管理模塊測試
    盤點計劃管理模塊用于制訂、查詢及統計盤點計劃。本文只展示盤點計劃錄入部分 的計劃刪除功能的測試用例及測試結果,其功能測試用例如表5.4所示。
    表5.4盤點計劃刪除測試用例
    Table 5.4 Inventory plan to delete test cases
    用例標識 測試場景/條件 具體操作 預計結果 測試結果 結論
    TC003 成功刪除盤點 計劃 在員工編號一欄輸入存在 的員工號,并點擊“刪除” 彈出“刪除盤 點計劃-成 功!” 彈岀“刪除-盤 點計劃-成 功!” 通過
    TC004 未輸入職工號 在員工編號一欄為空,并
    點擊“刪除” 彈岀“刪除盤 點計劃-失 敗!” 彈岀“刪除-盤 點計劃-失
    敗!” 通過
    TC005 輸入不存在職 工號 輸入不存在職工編號,并 點擊“刪除” 彈出“刪除-盤 點計劃-失
    敗!” 彈出“刪除-盤 點計劃-失 敗!” 通過
     
    盤點計劃刪除功能在未輸入職工號場景測試結果如圖5.5所示。
     
    圖5.5盤點計劃刪除功能測試
    Fig. 5.5 Cargo inventory plan delete function test
    (3)盤點信息管理模塊測試
    盤點信息管理模塊主要用于審核盤點情況。本文只展示實盤/帳盤信息審核中審核 通過信息導入部分的存儲功能的測試用例及測試結果,如表5.5所示。
    表5.5盤點信息錄入測試用例
    Table 5.5 Inventory information entry test cases
    用例標識 測試場景/條件 具體操作 預計結果 測試結果 結論
    TC006 盤點信息成功 錄入數據庫 選擇正確導入文件,輸入 正確服務器、用戶名及密 碼信息,選擇對應數據庫, 并點擊“存儲” 彈出“己將選擇 盤點信息導入到 指定的數據庫 中!" 彈岀“已將選擇 盤點信息導入到 指定的數據庫
    中!” 通過
    TC007 服務器、用戶 名及密碼輸入
    錯誤 選擇正確導入文件,輸入 錯誤服務器、用戶名及密 碼信息,選擇對應數據庫 無法顯示服務器
    內數據庫列表 無法顯示服務器
    內數據庫列表 通過
    TC008 盤點信息重復 錄入數據庫 選擇重復文件導入,輸入 正確服務器、用戶名及密 碼信息,選擇對應數據庫 彈岀“數據庫中 已存在該盤點信
    息!” 彈出“數據庫中 已存在該盤點信
    自1 ” 通過
     
    審核通過信息導入部分的存儲功能錄入在盤點信息重復場景測試結果如圖5.6所示。
     
    圖5.6盤點信息重復錄入測試
    Fig. 5.6 Counting information duplicate record test
    (4)進銷存信息管理模塊測試
    進銷存信息管理模塊用于統計、查詢銷售、進貨及庫存信息。接下來將展示進貨信
    息管理中進貨單部分的保存功能的測試用例及測試結果,其功能測試用例如表5.6所示。
    表5.6進貨單保存測試用例
    Table 5.6 Purchase order save test cases
    用例標識 測試場景/條件 具體操作 預計結果 測試結果 結論
    TC009 進貨信息成功 保存 選擇供貨單位和經手人, 選擇貨物信息且信息完 善,應付金額一欄不為
    “0”,點擊“保存” 彈出“進貨單-
    過賬成功!” 彈出“進貨單-
    過賬成功!” 通過
    TC010 供貨單位或經
    手人未選擇 選擇貨物信息且信息完 善,應付金額一欄不為
    “0”,點擊“保存” 彈出“供貨單位 和經手人為必填
    項!” 彈出“供貨單位 和經手人為必填 項! ” 通過
    TCOU 貨物信息不完 善 選擇供貨單位和經手人, 未選擇貨物信息或信息不 完善,應付金額一欄不為
    “0”,點擊“保存” 彈岀“請核實列 表中數據:,數 量•、’單價'、’金 額'不能為空!” 彈出“請核實列 表中數據:,數 量,、,單價,、’金 額'不能為空!” 通過
    TC012 應付金額為0 選擇供貨單位和經手人,
    選擇貨物信息且信息完 善,應付金額一欄為
    “0”,點擊“保存” 彈出“應付金額
    不能為©!” 彈出“應付金額
    不能為” 通過
    保存供貨單功能在應付金額為“0”場景下測試結果如圖5.7所示。
     
    進疝重:麗 應付金額.0 ]
    實付金酸:卜5500 差販 卜15600 j'Mj
    (5)職工信息管理模塊測試
    職工信息管理模塊用于統計、查詢職工基本信息。職工基本信息管理中職工基本信 息管理部分的保存功能的測試用例及測試結果如表5.7所示。
    表5.7職工入職測試用例
    Table 5.7 Employee entry test cases
    用例標識 測試場景/條件 具體操作 預計結果 測試結果 結論
    TC013 職工信息成功 保存 填寫姓名,選擇職位及所 屬部門且員工編號不為 空,點擊“保存” 彈出“職工信息
    -保存成功!” 彈出“職工信息
    -保存成功!” 通過
    TC014 職工姓名一欄 未填寫 選擇職位及所屬部門且員 工編號不為空,點擊“保
    存” 彈出“職工姓名 未填!” 彈出“職工姓名 未填!” 通過
    TC015 未選擇職工職
    位或所屬部門 填寫姓名且員工編號不為 空,點擊“保存” 彈出“職工職位 或職工所屬部門
    未選擇!” 彈出“職工職位 或職工所屬部門
    未選擇!” 通過
    TC016 員工編號為空 填寫姓名,選擇職位及所
    屬部門并刪除員工編號,
    點擊“保存” 彈出“員工編號
    不能為空!” 彈出“員工編號
    不能為空!” 通過
     
    保存員工入職信息功能在完整填寫入職信息場景下測試結果如圖5.8所示。
     
     
    圖5.8員工基本信息保存功能測試
    Fig. 5.8 Employee basic information saving function test
     
    (6)盤點效率監測分析模塊測試
    盤點效率監測分析模塊用于監測、分析貨物盤點效率及差異情況盤點。接下來將展 示盤點效率監測中職工能力分析部分的測試用例及測試結果,其功能測試用例如表5.8 所示。
    表5.8職工能力分析測試用例
    Table 5.8 Employee ability analysis test cases
    用例標識 測試場景/條件 具體操作 預計結果 測試結果 結論
    TC017 職工能力分析 查詢成功 選擇存在員工編號,點擊
    "查詢” 顯示對應員工能 力分析信息 顯示對應員工能 力分析信息 通過
    TC018 所查詢職工不 存在 選擇不存在員工編號,點
    擊“查詢” 彈出“不存在該 員工信息!” 彈出“不存在該
    員工信息!” 通過
    TC019 員工編號未選 擇 不選擇員工編號,點擊
    縊查詢” 彈出“請輸入員 工編號! ” 彈出“請輸入員 工編號!” 通過
     
    職工能力分析部分在未選擇職工編號場景下測試結果如圖5.9所示。
     
    圖5.9職工能力分析測試
    Fig. 5.9 Staff ability analysis test
     
    (7)FTP文件傳輸模塊測試
    FTP文件傳輸模塊用于傳輸貨物盤點信息。FTP登錄功能的功能測試用例如表5.9 所示。
    表5.9 FTP登錄測試用例
    Table 5.9 FTP login test cases
    用例標識 測試場景/條件 具體操作 預計結果 測試結果 結論
    TC020 FTP登錄成功 網絡連接正常且正確輸入 主機名稱、端口號、用戶 名及密碼,點擊“登錄” 連接狀態顯示
    “已連接!”, 井顯示登錄用戶
    及FTP目錄。 連接狀態顯示
    “已連接!”, 并顯示登錄用戶
    及FTP目錄。 通過
    TC021 未輸入主機名 稱 網絡連接正常且正確輸入 端口號、用戶名及密碼,
    點擊“登錄” 彈岀“輸入主機 名稱!” 彈出“輸入主機 名稱!” 通過
    TC022 未輸入端口號 網絡連接正常且正確輸入 主機名稱、用戶名及密 碼,點擊“登錄” 彈岀“輸入端口
    號!” 彈出“輸入端口
    號!” 通過
    TC023 未輸入用戶名 網絡連接正常且正確輸入 主機名稱及密碼,點擊
    “登錄,, 彈出“輸入用戶
    名!” 彈出“輸入用戶
    名!” 通過
    TC024 未輸入密碼 網絡連接正常且正確輸入 主機名稱及用戶名,點擊
    “登錄” 彈出“輸入密
    碼!” 彈出“輸入密
    碼!” 通過
    TC025 輸入用戶名或 密碼錯誤 •網絡連接正常且正確輸入 主機名稱,輸入錯誤用戶 名或密碼,點擊"登錄” 彈出“FTP登錄 失敗,請檢查用 戶名和密碼是否
    正確!” •彈出“FTP登錄 失敗,請檢查用 戶名和密碼是否 正確!” 通過
    TC026 輸入主機名稱
    或端口號錯誤 網絡連接正常且正確輸入 用戶名及密碼,輸入錯誤 主機名稱或端口號、,點 擊“登錄” 連接狀態顯示
    “連接失敗!” 連接狀態顯示
    “連接失敗!” 通過
    TC027 網絡連接異常 網絡連接異常且正確輸入 用戶名及密碼,輸入錯誤 主機名稱及端口號、,點 擊“登錄” 連接狀態顯示
    “連接失敗!” 連接狀態顯示
    “連接失敗!” 通過
     
    FTP登錄功能的測試結果如圖5.10所示。
     
     
     
     
    圖5.10 FTP登錄功能測試
    Fig. 5」0 FTP login function test
    5. 2.3系統軟件性能測試
    性能是指與被測系統相關的一系列度量指標,性能測試是指借助測試工具或測試腳 本對典型用戶行為進行模擬,并通過觀察模擬結果從而判斷系統目標是否達到期望標準。 然而對于不同類型的系統用戶所關心的性能指標也不同,例如,對于一款側重于通信功 能的軟件來說,接通率、掉話率及接續容量等指標是關鍵的性能指標。然而對于盤點信 息管理系統來說,數據傳輸速度、行為響應時間等性能指標更加重要。
    性能測試主要通過模擬大量用戶的行為從而對軟件性能是否達標進行評判,如果使 用手工評判法不僅會極大的浪費測試時間,同時也會提高測試成本。本系統主要使用 Jmeter測試系統性能。Apache Jmeter主要用于測試客戶端/服務端結構的軟件,它可以 用來測試動態和靜態資源的性能,并有小巧靈活、開源免費、支持多種測試方法等優點。
    經過研究分析,貨物盤點信息管理主要的用戶行為是對盤點相關信息的增、刪、改、 查以及文件的上傳及下載,所以,接下來本次測試主要針對這兩點測試系統軟件性能。 在測試之前,測試人員還需要清楚這些經典的用戶行為有哪些特性,根據用戶需求可以 得出,盤點相關信息的基本操作有用戶少但操作次數多的特點,而文件的上傳及下載有 用戶多但單次操作次數少的特點,接下來本次測試將根據這些行為特性對系統軟件性能 進行測試。使用Jmeter過程包括建立線程組、添加請求及監聽器等步驟,其工作界面如 圖5.11所示。
     
    圖5.11 Jmeter性能測試工具工作界面
    Fig. 5.11 Jmeter performance test tool work interface
    增、刪、改、查等用戶行為主要是軟件與數據庫之間的互動,由于系統采用SQL Server作為數據庫,所以在Jmeter中配置了 JDBC連接,并向本系統數據庫db_PD發送 JDBC請求,請求內容主要包括對多種盤點相關信息的增、刪、改、查。本文以職工信 息查詢測試為例,根據各區域的負責人數量情況,在Jmeter中將線程數分別定為5、10、 20,即5、10及20個用戶,通過使用循環控制器來增加查詢操作循環次數,即模擬增 加每個用戶查詢操作次數,其中在10個用戶情況下的測試結果如圖5.12。
    View Results in Table
    M?me週尹殆審電a ♦
    Commems:
    WrtW resuffs te Mr Raad Iroir HM
    mename
     
     
    圖5.12職工信息查詢性能測試
    Fig. 5.12 Employee information query performance test
    本文對職工信息查詢過程共模擬執行了 3800次,查詢操作平均響應時間為1ms, 具體過程結果如表5.10所示,其中,前一次循環次數并不計入下一次循環次數中,采樣 次數為疊加后的累計采樣次數。
    表5.10職工信息查詢測試結果
    Table 5.10 Staff information inquiry test result
    用戶數量(線程數) 單次循環次數 累計采樣次數 平均響應時間(ms)
    10 10 100 1
    10 20 300 1
    10 50 800 1
    10 100 1800 1
    10 200 3800 1
     
    通過文件傳輸測試結果可以觀察岀FTP模塊能夠與由Serv-U搭建的FTP服務器完 成正常的文件傳輸,所以為了模擬本客戶端文件上傳及下載過程,本文在Jmeter中配置 了 FTP連接并向使用Serv-U搭建的FTP服務器發送FTP相關請求。根據用戶實際需 求,設置傳輸循環次數恒定為2,即每個用戶進行2次文件上傳下載過程。本次測試選 用2018年12月1日的文件類型分別為“.xls”和“.txt”的盤點差異及盤點備注信息作 為傳輸文件進行測試,通過不斷的增加線程數測試文件傳輸性能,其測試過程如圖5.13o
    View Results in Table
    name:用興梏察看結黑
    Comments:
    Wnie resafts tofiie Read from tHe
    Rianatne log/Dtsplay Ontr 二 Errws 二? Successes CtHifigure
     
    SaTijsie i Start Tffne ThrasdName !_a網 Ssmpie Timet fnsi 1 Status 6>tes Lateg
    773 --•. . <- 2 -94
    20 \ 二-ern^Tts- 2-^a -2? zi^FTP fes: 2-94 2'5 1E3S0- •--
    7'4 ■:巳_屮<_。3:_ rr
    :RF Downioac fesf 22 29
    15350
    775, 20 1: 23 22£Fr» 3 23 ■" I'i'- <S7FTPTest2-§£ ■ :尸 F Jjj 03::_t & 彳
    ^Tr^buwnloa:. ~?zi' 42 22 "'29 :
    33 —360 __ ;:
    778 2Dt:24 1S6KPTes4 2-$f :FtP UDi.oa:*e3t 42 22. 25
    201: •F7F_f .swnioac.'est 64 -5360. *對*
    'SO 20 1. 24 ?14:FT^ Tet: 2 FTPjJpLg:亠M 32 22 19:
    761 201?2£ ieOFTP7^sl2-?« 汨】P_D3wr,r>as_T eSt 40 一丄 15360 J-
    7V2 2C1F*~Tf-s'£ “匕uae:_“>:• 30 mA 22
    20 221FT--estz-9« fTP_Downi<;ac. 'est 34 •>£360: 25:
    - 20 13 25.2cS!FTP Test 2-ffi,
    2C U 2F ■'i ~ FT^ 7 6 ;• ; 57 >'^_l.:ps.oao_'es, 22
    786 20 2 2& 1£-2!FTPTe$»2 S? ■- • 38 ..s 22 ?-…>!
    20 i:2f 230 FTP Test 2-§~ ;FTF_bowriiba:_ Test 35 "■■■ - ~”…遂:
    'C8 2!'1-26 2-S7 FTP_IJpL03:_Te3t 37 22
    "€9 20 1: 2? 1£1 F ,- Test 2-58 •F7P_Downioac_T est 45. 1=360 •錨:.
    20 U 2’2d FTP Test 2-?& iFTP_UpLcsS_Test 42 22 2鏟冷
    7&1 20 FTP tcst2.PS > 1 tJ_DowTi;<>3a_T est 37; 15360: 2£-iA
    7&2 20 1? 2' 2f= FTTest2-?C .F;P_upLoao_^es; 102 mA 22;
    793 ro 10 28 U1:FTPT«SI2-3S f7P_Cowniu3G_lest 46 1£360 3il| F
    =0 '«• 28 7:」「: P Test 2-99 :卜.H_jjpL03C_Te5: 35 22 0 !
    7?5 20 12 28 24&FTP Tesl 2-99 n'P_C-ov»-nic>aJ_Te$t 3S. 灼3如
    796 2Q 13 28 28G!FTPTe$! 2-9$ :FTP UDlC33.T«St 53 22 —”……珂j
    20 1: 2? 1:£ FTP Test 2-100 FT P_Do*>r.ioa 3_te;-l 一.Q .- 巧S60 19 ;
    •98 2:> -< 29 i(,6 F'P_L'pLC3i_TeSt 22 空:
    29 1: 29 FTP D0«rniO3C T ®st 42 153G0 281? |
    zG1?29 2fvF-^T?s! MD0 :卜屮_UpLos:_Te& 41 22i 2勺門
    匚 Scrofl a«tomat<caUy? ChtkJ samples? Ho of Samptes 1200 Latest Samfrfe 35 Average 45 Deviation *7
     
    圖5.13 FTP文件傳輸性能測試
    Fig. 5.13 FTP file transfer performance test
    本次測試功共模擬執行了 1200次文件上傳及下載過程,單次文件傳輸或下載平均 響應時間為45ms,具體過程結果如表5.11所示,其中,用戶數為累加結果,即后一次 用戶數包含前一次的用戶數,本次測試共計上傳、下載兩個請求。
    表5.11文件上傳及下載過程測試結果
    Table 5.11 File upload and download process test results
    累計用戶數 單個請求循環次數 累計采樣次數 平均響應時間(ms)
    10 2 40 44
    50 2 200 44
    100 2 400 45
    200 2 800 46
    300 2 1200 45
     
    5. 3測試結果分析
    系統測試結果分析是為了驗證系統能否滿足用戶的實際需求。測試工作是系統應用 前的重要階段,分析系統需求得出用戶的經典行為,并使用一系列測試手段對其進行測 試分析,對于與需求不符的測試結果,測試人員應及時報備并對這些錯誤進行修正。
    本系統測試分為文件傳輸測試、數據庫連接測試、系統軟件功能測試及系統軟件性 能測試四個部分,對于文件傳輸過程測試,本次測試采用服務器與系統平臺連接的測試 方法對FTP文件傳輸過程進行驗證,FTP服務器由Serv-U搭建,通過FTP服務器日志 可以看出系統FTP文件傳輸模塊可以正常工作:數據庫連接測試通過創建UDL文件對 數據庫連接情況進行測試,且測試連接成功;系統軟件功能測試通過編寫功能測試用例 測試軟件相關功能,經觀察,其實際測試結果與預計測試結果相符;最后本次測試對系 統軟件性能進行測試,根據系統實際需求,本次測試使用性能測試工具Jmeter對系統的 文件傳輸過程及數據操作過程進行系統的測試,測試結果表明在不同場景下系統對絕大 多數操作都能做到快速響應,證明本系統能夠滿足實際性能需求。
    本章小結
    本章首先對FTP文件傳輸及數據庫連接進行測試,驗證了本系統能夠完成大量盤點 信息文件的傳輸及數據庫的連接。接著介紹了系統軟件測試環境,然后對系統軟件從功 能和性能兩方面展開測試。通過編寫各功能模塊測試用例驗證了本系統功能模塊能夠滿 足系統預期要求,并使用Jmeter測試工具測試系統各部分性能,最后對測試結果分析顯 示該系統性能能夠滿足系統正常應用,各功能模塊界面顯示良好,滿足設計要求。
    結論
    本文在對貨物盤點工作情況實際調研的基礎上,針對目前庫存管理系統中盤點工作 管理方面的匱乏,對盤點工作效率等方面進行研究,結合.NET技術和C/S架構,設計 并實現了基于FTP的盤點信息管理系統。該系統能夠實現對盤點工作相關信息的統計與 分析,可以有效減少傳統盤點模式所產生的盤點工作冗余現象,加快庫存管理信息化進 程,提升相關企業的經濟效益。
    本文主要完成工作如下:
    (1)通擔:充分調研庫存管理過程中的盤點工作現狀,明確了當前貨物盤點工作過程 中存在的缺陷,了解了本課題需解決的問題,并選擇了解決這些問題合適的工具,分析 了盤點工作的業務流程,詳細設計了系統的架構。
    ⑵完成系統總體方案設計,系統主要包括盤點信息收集、FTP文件傳輸及貨物盤 點信息管理平臺三部分。盤點信息收集模塊通過智能盤點機和手抄記錄等方式完成對盤 點相關信息的收集,FTP文件傳輸模塊接收盤點數據并為系統用戶提供下載功能,盤點 信息管理平臺下載所需盤點數據并對其進行處理及分析,最后介紹系統功能模塊組成、 系統數據庫E-R模型的構建、數據庫表的設計及系統數據庫的連接。本系統主要用于傳 輸、存儲、處理及分析盤點相關信息并監測盤點工作的具體狀況。
    (3)設計并實現系統各功能模塊。系統包含盤點計劃管理、盤點信息管理、進銷存 信息管理、職工信息管理、盤點效率監測分析、FTP文件傳輸六個功能模塊,實現了盤 點計劃制定、盤點信息審核、進貨信息管理、職工基本信息管理、盤點效率監測及FTP 文件傳輸等系統基本功能,通過對盤點相關信息的處理分析,實現對盤點工作過程監測 及差錯情況統計。
    (4)在盤點效率監測分析模塊中,本文依據生產效率計算等方法,從有效盤點時間、 盤點貨物總數及有效盤點人數等方面對盤點工作效率進行分析。同時,根據盤點誤差占 比計算方法及貨物盤點數據統計分析了盤點差錯情況。
    (5)從多個方面對系統進行測試,主要有文件傳輸測試、數拯庫連接測試、系統軟 件功能和性能測試。文件傳輸測試通過客戶端與服務器聯合測試的方法驗證系統能夠實 現盤點相關文件的傳輸;功能應用測試結果表明本系統完整實現了所需功能;性能測試 過程主要針對用戶的經典行為進行多用戶操作及文件傳輸響應時間的測試,測試結果顯 示本系統能夠滿足實際性能需求。
    在本系統開發和測試過程中,由于本人的學識以及時間有限,并且受到了實際環境 等客觀因素的影響,本系統還可以從以下幾方面進行改進:
    (1)在本文盤點效率監測分析模塊中,盤點效率及差錯統計的計算方法相對簡單, 今后仍需對盤點效率監測工作進行深入的研究分析,提出更優的盤點數據分析模型。
    (2)在本系統測試過程中,由于測試環境有限,測試過程所采用的樣本及方案還不 夠全面。隨著文件傳輸及用戶使用時間的遞增,系統能否承受數據量大幅度增多所帶來 的運行負擔還需要驗證。
    參考文獻
    [1]徐安國.基于移動終端技術的倉儲管理系統[D].合肥工業大學,2013.
    [2]孫凡凡.曹妃甸港口有限公司倉儲管理系統的研究及應用[D].燕山大學,2017.
    [3]Moorthy R, Behera S, Verma S, et al. [ACM Press the Third International Symposium - Kochi, India (2015.08」0?2015.08.13)] Proceedings of the Third International Symposium on Women in Computing and Informatics - WCI V'15 - Applying Image Processing for Detecting On-Shelf Availability and Product Positioning in Retail Stores[J]. 2015:451-457.
    [4]孫淑莉.淺談存貨盤點前的準備工作[J].佳木斯大學社會科學學報,2001年第7期.
    [5]李娜.汽修企業存貨盤點存在的問題及解決策略[J].科技經濟導刊,2018, 26(29):244.
    [6]Dehoratius N, Raman A. Inventory Record Inaccuracy: An Empirical Analysis[J]. Management Science, 200& 54(4):627-641.
    [7]Bruccoleri M, Cannella S, Porta G L. Inventory record inaccuracy in supply chains: the role of workers* behavior[J]. International Journal of Physical Distribution & Logistics Management, 2014, 44(10):796- 819.
    [8]Chuang H Cf Oliva R. Inventory Record Inaccuracy: Causes and Labor EfiectsfJ]. Journal of Operations Management, 2015, s39 - 40:S0272696315000649.
    [9]范愛理•倉儲管理實務[M] •人民交通出版社,2012.
    [10]薛威.倉儲作業管理[M].北高等教育出版社,2012.
    [H]羅書林.劉翠芳.倉儲管理實務[M].東北大學出版社,2014.
    [12]陳云秀.淺談如何做好上市公司存貨盤點工作[幾 商場現代化,2016,26:113?114.
    [13]Tang D. Managing finished-goods inventory under capacitated delayed differentiationfJ]. Omega,2011, 39(5):481-492.
    [14]Brooks R B / L W. Inventory Record Accuracy: Unleashing the Power of Cycle Counting[J], Bulletin of the American Mathematical Society, 2008, 50(12):831-833.
    [15]Schrady D A. Operational definitions of inventory record accuracy [J]. Naval Research Logistics Quarterly, 2010, 17(1):133-142.
    [16]Wild T. The right environment - Improving Inventory Record Accuracy - Chapter 6[J]. Improving Inventory Record Accuracy, 2010:61-74.
    [17]韓真真.庫存管理發展歷程研究[J].中國學術期刊電子出版社,2014,4(7):105-107.
    [18]陳彥恒.企業庫存定位盤點系統和質檢數據采集系統的研究與設計[D]西南交通大學,2014.
    [19]杜書升.基于android的設備盤點軟件系統的設計與實現[D]天津大學,2016.
    [20]溫嬌.物聯網技術在立體庫貨物盤點定位方面應用研究[D].天津科技大學,2016.
    [21 ] Atieh A M, Kaylani H, Al-abdallat Y, et al. Performance improvement of inventory management system processes by an automated warehouse management system[J], Procedia Cirp, 2016,41: 568?572.
    [22]Qin Y, Zhang Y. Object detection for vision-aided inventory counting[J]. Nippon Seikeigeka Gakkai Zasshi, 2015,45(10):834-6.
    [23]文東,馬名S. Visual C++程序設計基礎與項目實訓[M].中國人民大學出版社,2009.
    [24]譚娟.面向過程與面向對象程序設計的比較[J].湖南科技學院學報,200& 12:117-118.
    [25]萬科,覃劍.VisualC#.NET程序設計基礎與上機指導[M].清華大學出版社,2007.
    [26]范愛理.胡勇.存貨盤點實務探析[J].物流技術,2016, 35(10):22-25.
    [27]王琬茹.SQL Server 2005數據庫原理及應用教程[M].清華大學出版社,200&
    [28]劉悴.OSI參考模型與TCP/IP參考模型的比較研究[J].信息技術,2009, 11:127-12&
    [29]侯整風.網絡與信息安全系列課程實踐教程[M].合肥工業大學出版社,2006.
    [30]顧彤辰.FTP客戶端及服務器系統的設計與實現[D].南京郵電大學,2016.
    [31]Xia L, Chao-Shengl F, Ding Y, et al. Design of secure FTP system[C]// International Conference on Communications. IEEE, 2010.
    [32]蔣鵬.基于IPv6的FTP安全策略研究[D].中北大學,2013.
    [33]孟欣.基于FTP的文件高效上傳方法的研究與實現[D].華南理工大學,2014.
    [34]湯海晨,陳賢敏.基于.NET的技術FTP文件傳輸的實現[J].浙江工貿職業技術學院學報,2006, 2:57-63.
    卩5]雷震甲.網絡工程師教程[M].清華大學出版社,2004.
    [36]黃仕凰.基于FTP協議的客戶端軟件開發[J].科技信息(學術研究),200& 21:164-166.
    [37]周宏生.基于FTP協議的文件上傳和下載[JJ.科技資訊,2006,02:5-6.
    [38]Zadeh A H, Sharda R, Kasiri N. Inventory record inaccuracy due to theft in production-inventory systems[J]. International Journal of Advanced Manufacturing Technology, 2016, 83(1-4):623-631.
    卩9] Kull T J, Barratt M, Sodero A C, et al. Investigating the Effects of Daily Inventory Record Inaccuracy in Multichannel Retailing[J], Journal of Business Logistics, 2013,34(3):189-20&
    [40]Cannella S, Framinan J M, Bruccoleri M, et al. The effect oflnventory Record Inaccuracy in Information Exchange Supply Chains[J]. European Journal of Operational Research, 2015,243(1):120-129.
    [41]溫昱.軟件架構設計[M].電子工業出版社,2009.
    [42]郭洪濤,劉丹妮,陳明華.ASP.NET (C#)大學實用教程[M].電子工業出版社,2007.
    [43]石磊.基于Web技術的遠程自動化系統的研究與開發[叨.蘭州理工大學,2016.
    [44]明日科技.C#數據庫系統開發完全手冊[M].人民郵電出版社,2006.
    [45]廖璐.服裝貿易管理系統的設計與實現[D].江西財經大學,2017.
    [46]張東棟.工業現場信息智能變送與采集記錄系統研制[D].青島科技大學,2014.
    [47]明日科技.C#典型模塊精解[M].清華大學出版社.2012.
    [48]賈翠軍.基于VB的人事薪金管理系統的設計與實現[J].電腦知識與技術,2008, 26:707-70&
    [49]陳進華.生產效率改善務實[M].廈門大學出版社,2012.
    [50]孟祥成.基于.NET的FTP客戶端設計與實現卩].軟件導刊,2015,06:123-124.
    [51]李瑋琦.基于命令行實現FTP上傳下載[J].電子世界,2013,16:109-110.
    [52]吳珂,盧秉亮.基于FTP協議客戶端軟件的實現[JJ.沈陽航空工業學院學報,2006, 04:39-42.
    [53]明日科技.C#項目案例分析[M].清華大學出版社.2012.
    [54]孫海英.軟件測試方法與應用[M].中國鐵道出版社,2009.
    [55]陸璐,王柏勇.軟件自動化測試技術[M].清華大學出版社,2006.
    [56]冷先剛.軟件測試模型與方法研究[D].武漢理工大學,2009.
    【本文地址:http://www.bzhlmm.com//guanlilei/gongshangguanli/xixinguanli/8877.html

    上一篇:職業介紹代征信息管理系統的設計與實現

    下一篇:沒有了

    相關標簽: