物流業(yè)務(wù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文_第1頁
已閱讀1頁,還剩36頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、<p><b>  摘 要</b></p><p>  現(xiàn)如今,隨著社會(huì)的不斷發(fā)展,人們對(duì)信息的需求越來越豐富,對(duì)于信息的傳遞交流也要求越來越高。幾乎各行各業(yè)都有關(guān)于計(jì)算機(jī)技術(shù)的應(yīng)用,這使得計(jì)算機(jī)技術(shù)成為人們中不可或缺的事物。因?yàn)橛?jì)算機(jī)技術(shù)的使用,人們?cè)诠芾?,服?wù)及操作上都變得更加方便快捷,大幅度的的提高了工作效率。如今的工作已經(jīng)離不開計(jì)算機(jī),計(jì)算機(jī)在企業(yè)的管理、辦公的便捷、

2、人性化等方面得到了普遍的應(yīng)用,受到人們的廣泛歡迎。物流業(yè)務(wù)管理系統(tǒng)是為了幫助物流公司更好的管理日常物流業(yè)務(wù)。方便物流公司工作人員對(duì)貨物整理,運(yùn)輸和調(diào)度。同時(shí)讓客戶更及時(shí)準(zhǔn)確的了解貨物的信息動(dòng)態(tài)。結(jié)合現(xiàn)代物流的特點(diǎn)并加以分析調(diào)查,為此開發(fā)的基于B/S的WEB系統(tǒng),其主要功能是快速、便捷和高效率的完成物流公司的貨物配送信息管理以及日常工作管理。減輕了物流公司工作人員的負(fù)擔(dān),使其面對(duì)紛繁復(fù)雜的工作更加得心應(yīng)手,起到事半功倍的效果。</p

3、><p>  關(guān)鍵詞:信息,物流業(yè)務(wù),管理,系統(tǒng)</p><p><b>  ABSTRACT</b></p><p>  Nowadays, with the continuous development of society, people's demand for information is more and more abunda

4、nt, the transfer and exchange of information also to request more and more high. Almost all walks of life on the application of computer technology, the computer technology has become an indispensable things people. Beca

5、use of the use of computer technology,people in the management, service and operation more convenient, greatly improves the work efficiency. Now the work already cannot do</p><p>  Keywords: Information;Log

6、istics business Management;Distribution</p><p><b>  目錄</b></p><p>  第一章 緒論1</p><p>  1.1 開發(fā)背景及意義1</p><p>  1.2 開發(fā)目標(biāo)及內(nèi)容2</p><p>  1.2.1

7、開發(fā)目標(biāo)2</p><p>  1.2.2 內(nèi)容2</p><p>  第二章 相關(guān)技術(shù)介紹3</p><p>  2.1 MVC框架3</p><p>  2.1.1 MVC模式的優(yōu)點(diǎn)3</p><p>  2.2 JSP技術(shù)4</p><p>  2.2.1 JSP優(yōu)點(diǎn)4&l

8、t;/p><p>  2.3 Servlet程序應(yīng)用4</p><p>  第3章 物流業(yè)務(wù)管理系統(tǒng)開發(fā)需求分析5</p><p>  3.1 需求分析概述5</p><p>  3.2 可行性分析5</p><p>  3.3 系統(tǒng)開發(fā)工具5</p><p>  3.4 系統(tǒng)

9、功能設(shè)計(jì)6</p><p>  3.5 系統(tǒng)結(jié)構(gòu)分析6</p><p>  第四章 物流業(yè)務(wù)管理系統(tǒng)的開發(fā)設(shè)計(jì)7</p><p>  4.1系統(tǒng)設(shè)計(jì)目標(biāo)7</p><p>  4.2 系統(tǒng)框架設(shè)計(jì)7</p><p>  4.3 數(shù)據(jù)庫概念設(shè)計(jì)7</p><p>  第五章 物

10、流業(yè)務(wù)管理系統(tǒng)的實(shí)現(xiàn)與測試14</p><p>  5.1 開發(fā)環(huán)境14</p><p>  5.2 功能詳細(xì)設(shè)計(jì)14</p><p>  5.2.1 流程圖14</p><p>  5.2.2 Java類的編寫15</p><p>  5.2.3 系統(tǒng)主頁15</p><p> 

11、 5.2.4 用戶登錄16</p><p>  5.2.5接單模塊17</p><p>  5.2.6 調(diào)度模塊17</p><p>  5.2.7庫存模塊18</p><p>  5.2.8 運(yùn)輸點(diǎn)模塊18</p><p>  5.3 關(guān)鍵技術(shù)實(shí)現(xiàn)18</p><p>  5.3

12、.1 用戶權(quán)限18</p><p>  5.3.2 審核配送單20</p><p>  5.4 系統(tǒng)測試22</p><p>  5.4.1 增加配送通知單22</p><p><b>  如圖:22</b></p><p>  5.4.2 審核配送單26</p><

13、;p>  5.5 故障處理28</p><p>  5.6 小結(jié)28</p><p><b>  致 謝31</b></p><p><b>  第一章 緒論</b></p><p>  1.1 開發(fā)背景及意義</p><p>  我們的生活方式正在徹

14、底的發(fā)生改變,究其原因是網(wǎng)絡(luò)技術(shù)的日新月異。隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展和進(jìn)步,各種功能完備、性能卓越、可應(yīng)用性強(qiáng)的B/S系統(tǒng)陸續(xù)出現(xiàn),可見計(jì)算機(jī)技術(shù)已經(jīng)得到了大范圍的應(yīng)用,幾乎各行各業(yè)都有關(guān)于計(jì)算機(jī)技術(shù)的應(yīng)用,這使得計(jì)算機(jī)技術(shù)成為人們中不可或缺的事物。現(xiàn)如今,隨著社會(huì)的不斷發(fā)展,人們對(duì)信息的需求越來越豐富,對(duì)于信息的傳遞交流也要求越來越高。因?yàn)橛?jì)算機(jī)技術(shù)的使用,人們?cè)诠芾?,服?wù)及操作上都變得更加方便快捷,大幅度提高了工作效率。如今的工作已

15、經(jīng)離不開計(jì)算機(jī),計(jì)算機(jī)在企業(yè)的管理、辦公的便捷、人性化等方面得到了普遍的應(yīng)用,受到人們的廣泛歡迎。如今的工作已經(jīng)離不開計(jì)算機(jī),計(jì)算機(jī)在企業(yè)的管理、辦公的便捷、人性化等方面得到了普遍的應(yīng)用,受到人們的廣泛歡迎。隨著流通經(jīng)濟(jì)的發(fā)展,現(xiàn)代物流的重要性越來越受到了人們的關(guān)注,為了降低成本、提高效益、充分發(fā)揮自身核心競爭力、增加企業(yè)對(duì)環(huán)境的迅速應(yīng)變能力、第三方物流這種新興物流形態(tài)和管理模式開始引起人們的重視。</p><p&g

16、t;  物流跟我們的生活息息相關(guān),隨著人們生活節(jié)奏的加快,我們?cè)絹碓诫x不開物流,物流公司也猶如雨后春筍般涌現(xiàn)。我們對(duì)物流公司進(jìn)行分類,有兩種分類方法:</p><p>  根據(jù)物流公司的服務(wù)功能,并因此延伸擴(kuò)展的功能可以劃分劃分:運(yùn)輸型物流公司、倉儲(chǔ)型物流公司和綜合服務(wù)型物流公司。按照承擔(dān)和完成物流業(yè)務(wù)是自己,還是委托他人進(jìn)行操作,同樣可將物流企業(yè)分為物流自理公司和物流代理公司。物流自理公司就是常物流公司。

17、 </p><p>  物流業(yè)務(wù)管理系統(tǒng)是為了幫助物流公司更好的管理日常物流業(yè)務(wù)。方便物流公司工作人員對(duì)貨物整理,運(yùn)輸和調(diào)度。同時(shí)讓客戶更及時(shí)準(zhǔn)確的了解貨物的信息動(dòng)態(tài)。結(jié)合現(xiàn)代物流的特點(diǎn)并加以分析調(diào)查,為此開發(fā)的基于B/S的WEB系統(tǒng),其主要功能是快速、便捷和高效率的完成物流公司的貨物配送信息管理以及日常工作管理。減輕了物流公司工作人員的負(fù)擔(dān),使其面對(duì)紛繁復(fù)雜的工作更加得心應(yīng)手,起到事半功倍的效果。</p&

18、gt;<p>  近些年,隨著社會(huì)的進(jìn)步和發(fā)展,傳統(tǒng)的物流方式已經(jīng)不能滿足人們的需求,社會(huì)迫切需求適應(yīng)現(xiàn)代物流的平臺(tái)供人們使用,所以數(shù)字化的現(xiàn)代物流管理得到空前發(fā)展</p><p>  本次研究設(shè)計(jì)的物流業(yè)務(wù)管理系統(tǒng)是為了幫助物流公司更好的管理日常物流業(yè)務(wù)。方便物流公司工作人員對(duì)貨物整理,運(yùn)輸和調(diào)度,同時(shí)讓客戶更及時(shí)準(zhǔn)確的了解貨物的信息動(dòng)態(tài)。</p><p>  1.2 開

19、發(fā)目標(biāo)及內(nèi)容</p><p>  1.2.1 開發(fā)目標(biāo) </p><p>  使用系統(tǒng)客戶能發(fā)布自己的需求單,可以查詢自己的貨物動(dòng)態(tài)信息。物流公司可以根據(jù)單據(jù)進(jìn)行貨物配送,車輛調(diào)度,審核單據(jù)等操作。使紛繁的工作簡單化,提高效率,更加人性化</p><p><b>  1.2.2 內(nèi)容</b></p><p>  客戶

20、訂單信息生成配送單,系統(tǒng)具有對(duì)各單據(jù)的增加,修改,刪除等功能,并且可以對(duì)各種單據(jù)進(jìn)行審核 。實(shí)現(xiàn)系統(tǒng)屬性的增刪改查。</p><p>  第二章 相關(guān)技術(shù)介紹</p><p><b>  2.1 MVC框架</b></p><p>  MVC是指Model(數(shù)據(jù)模型) View(顯示視圖) Control(控制器)。是一種現(xiàn)在普遍使用的軟件設(shè)計(jì)

21、模式,它通過將將業(yè)務(wù)模型和用戶界面顯示進(jìn)行分離,將傳統(tǒng)開發(fā)中業(yè)務(wù)邏輯存在于頁面中,各種處理相糅合的情況得以解決[1]。因此使得各層結(jié)構(gòu)清晰,程序員和頁面美工可以同時(shí)工作,減輕了程序員的負(fù)擔(dān),加速了整個(gè)開發(fā)流程,為推動(dòng)軟件開發(fā)起到了重要作用。</p><p>  2.1.1 MVC模式的優(yōu)點(diǎn)</p><p><b> ?。?)系統(tǒng)耦合性低</b></p>

22、<p>  MVC模式中層次的構(gòu)成及獨(dú)立性:首先,業(yè)務(wù)層與視圖層的分隔,視圖層代碼的改變不需要改動(dòng)其他模塊;其次,模型與控制器和視圖相隔,模型的改變不對(duì)視圖層造成印象。 由于運(yùn)用MVC結(jié)構(gòu)后的三個(gè)模塊之間是相互獨(dú)立的,變動(dòng)其中一個(gè)層次不會(huì)另外對(duì)兩層造成改變,所以這種模式具有松耦合的作用。</p><p><b>  (2)代碼重用性高</b></p><p>

23、;  IT技術(shù)發(fā)展迅速,應(yīng)用程序被越來越多的方式訪問。在MVC模式下,各種不同樣式的視圖來訪問同一個(gè)服務(wù)器端的代碼成為可能,其原因是它們使用同一個(gè)模型,它包括任何無線瀏覽器(wap)和WEB(HTTP)瀏覽器等。這是因?yàn)槟P蛯訑?shù)據(jù)沒有格式化,因此相同的構(gòu)件可以被不同的頁面使用。再如,數(shù)據(jù)可以有多中表示形式,但這只是改變視圖層,而模型層和控制層無需改變。這點(diǎn)正是基于分層實(shí)現(xiàn)的原因。</p><p> ?。?)較低的

24、生命周期成本</p><p>  開發(fā)周期短費(fèi)用低。使用后模型層次鮮明,使得維護(hù)費(fèi)用降低和開發(fā)接口采用技術(shù)難度降低。</p><p><b>  快速部署</b></p><p>  由于層次結(jié)構(gòu)細(xì)化,采用MVC設(shè)計(jì)模式開發(fā)時(shí)間大大縮減,使得程序員和界面程序員能各自集中精力處理自己相關(guān)的模塊開發(fā)上面去。</p><p>

25、<b>  項(xiàng)目可維護(hù)性高</b></p><p>  分層的實(shí)現(xiàn)方式使得WEB應(yīng)用也易于修改和維護(hù)。</p><p><b>  2.2 JSP技術(shù)</b></p><p>  Web頁面為了創(chuàng)建顯示動(dòng)態(tài)生成的內(nèi)容需要用到Jsp技術(shù),他為此提供了一個(gè)簡單快捷的方法。</p><p>  2.2.1

26、 JSP優(yōu)點(diǎn)</p><p><b>  一次編寫即可</b></p><p>  代碼不用做任何修改,可以隨處可用。</p><p><b>  (2)多平臺(tái)支持</b></p><p>  幾乎上可以在所有平臺(tái)上的任意環(huán)境中開發(fā),在任意環(huán)境中進(jìn)行系統(tǒng)部署,在任意環(huán)境中擴(kuò)展。</p>

27、<p> ?。?)強(qiáng)大的可伸縮性</p><p>  從只有一個(gè)小的Jar文件就可以運(yùn)行Servlet/JSP,到由多臺(tái)服務(wù)器進(jìn)行集群和負(fù)載均衡,到多臺(tái)Application進(jìn)行事務(wù)處理,消息處理,一臺(tái)服務(wù)器到無數(shù)臺(tái)服務(wù)器,Java顯示了一個(gè)巨大的生命力。</p><p><b>  多種開發(fā)工具支持</b></p><p>  這

28、一點(diǎn)與ASP很像,Java已經(jīng)有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費(fèi)得到,并且其中許多已經(jīng)可以順利的運(yùn)行于多種平臺(tái)之下。</p><p><b>  支持服務(wù)器端組件</b></p><p>  web應(yīng)用需要強(qiáng)大的服務(wù)器端組件來支持,開發(fā)人員需要利用其他工具設(shè)計(jì)實(shí)現(xiàn)復(fù)雜功能的組件供web頁面調(diào)用,以增強(qiáng)系統(tǒng)性能。JSP可以使用成熟的JAVA BEANS 組件來

29、實(shí)現(xiàn)復(fù)雜商務(wù)功能。</p><p>  2.3 Servlet程序應(yīng)用</p><p>  Servlet 程序是由服務(wù)器調(diào)用和執(zhí)行的Java類,有瀏覽器的JVM執(zhí)行的Java類叫Applet,由Web服務(wù)器的JVM執(zhí)行的Java類則叫Servlet程序</p><p>  第3章 物流業(yè)務(wù)管理系統(tǒng)開發(fā)需求分析</p><p>  3.1

30、 需求分析概述</p><p>  隨著信息行業(yè)的快速發(fā)展,人們辦公自動(dòng)化意識(shí)的增強(qiáng),物流業(yè)務(wù)公司的工作也紛繁復(fù)雜,原來的物流管理系統(tǒng)已經(jīng)不能完全滿足人們使用的需求了。為了使物流管理更加便捷,可操作性更強(qiáng),工作效率更高;充分利用信息行業(yè)的現(xiàn)有資源,開發(fā)更好的物流配送管理系統(tǒng)勢在必行。</p><p>  物流業(yè)務(wù)管理系統(tǒng)是將計(jì)算機(jī)技術(shù)應(yīng)用于物流業(yè)務(wù)信息的管理,它可以夠便捷準(zhǔn)確地收集和存儲(chǔ)

31、客戶信息,可以滿足物流公司日常的物流業(yè)務(wù),提高公司的辦事效率</p><p>  3.2 可行性分析</p><p>  第一,本系統(tǒng)的運(yùn)行可以代替人工進(jìn)行許多繁雜的勞動(dòng);</p><p>  第二,本系統(tǒng)的運(yùn)行可以節(jié)省許多資源;</p><p>  第三,本系統(tǒng)的運(yùn)行可以大大的提高物流公司的工作效率。</p><p&g

32、t;  所以,本系統(tǒng)在經(jīng)濟(jì)上是可行的。</p><p>  本系統(tǒng)的開發(fā)使用Mysql作為系統(tǒng)的數(shù)據(jù)庫,Mysql數(shù)據(jù)庫安裝簡便,體積小速度快,成本很低,運(yùn)行很方便。</p><p>  本系統(tǒng)使用MyEclipse作為系統(tǒng)的開發(fā)工具,它用于java語言的開發(fā)。支持代碼編寫、配置、測試以及除錯(cuò),應(yīng)用起來很方便</p><p>  本系統(tǒng)是一個(gè)中小型物流業(yè)務(wù)管理系統(tǒng),

33、資源耗費(fèi)很小,無論是硬件還是軟件,用戶的個(gè)人電腦都能夠滿足條件,無需專業(yè)級(jí)服務(wù)器。</p><p>  3.3 系統(tǒng)開發(fā)工具</p><p>  本系統(tǒng)使用MyEclipse作為系統(tǒng)的開發(fā)工具,它用于java語言的開發(fā)。支持代碼編寫、配置、測試以及除錯(cuò),應(yīng)用起來很方便。使用MyEclipse可以在數(shù)據(jù)庫和Java程序的開發(fā)編碼,調(diào)試上提高效率。功能豐富,完整支持html,struts,j

34、sp,css,javascript,spring,sqlhibernate.</p><p>  系統(tǒng)的開發(fā)使用Mysql作為系統(tǒng)的數(shù)據(jù)庫,Mysql數(shù)據(jù)庫安裝簡便,體積小速度快,成本很低,運(yùn)行很方便</p><p>  圖片處理選用計(jì)算機(jī)win7系統(tǒng)自帶的畫圖工具,畫圖工具可以對(duì)圖片進(jìn)行簡單地處理,方便快捷,操作起來也很簡單利用它可以方便處理圖片信息,美化系統(tǒng)界面。</p>

35、<p>  3.4 系統(tǒng)功能設(shè)計(jì)</p><p>  為了開發(fā)滿足用戶要求的系統(tǒng),首先一點(diǎn)是要針對(duì)要開發(fā)的系統(tǒng)進(jìn)行功能分析,提出設(shè)計(jì)方案。系統(tǒng)功能分析是建立在系統(tǒng)總體目標(biāo)的基礎(chǔ)上完成的,根據(jù)物流業(yè)務(wù)管理系統(tǒng)的要求設(shè)計(jì)出具體的模塊,其中有登錄模塊、接單模塊、調(diào)度模塊、庫存模塊以及運(yùn)輸點(diǎn)模塊。本系統(tǒng)需要完成的功能如下圖2-1所示:</p><p>  圖2-1 系統(tǒng)功能<

36、/p><p>  3.5 系統(tǒng)結(jié)構(gòu)分析</p><p>  本系統(tǒng)從結(jié)構(gòu)上劃分為:登錄模塊、接單模塊、調(diào)度模塊、庫存模塊、運(yùn)輸點(diǎn)模塊。</p><p>  第四章 物流業(yè)務(wù)管理系統(tǒng)的開發(fā)設(shè)計(jì)</p><p><b>  4.1系統(tǒng)設(shè)計(jì)目標(biāo)</b></p><p>  本系統(tǒng)目標(biāo)是建立一個(gè)安全,多用戶,

37、方便,自動(dòng)化的數(shù)字物流業(yè)務(wù)管理系統(tǒng)。本系統(tǒng)基于B/S結(jié)構(gòu),即采用瀏覽器/服務(wù)器模式,服務(wù)器端采用Apache Tomcat,客戶端可以通過瀏覽器訪問系統(tǒng)。本系統(tǒng)體現(xiàn)了將IT技術(shù)用于物流業(yè)務(wù)的管理, 幫助物流公司簡化流程,節(jié)省人力物力,提高效率。</p><p>  4.2 系統(tǒng)框架設(shè)計(jì)</p><p>  根據(jù)需求分析,系統(tǒng)框架設(shè)計(jì)完成,如圖所示:</p><p>

38、;  4.3 數(shù)據(jù)庫概念設(shè)計(jì)</p><p>  根據(jù)制定的設(shè)計(jì)方案,可以將數(shù)據(jù)庫抽象為以下三個(gè)部分E-R圖,如圖示:</p><p>  調(diào)度系統(tǒng)相關(guān)E-R圖</p><p>  庫存系統(tǒng)相關(guān)E-R圖</p><p>  運(yùn)輸點(diǎn)系統(tǒng)相關(guān)E-R圖</p><p>  4.3 數(shù)據(jù)庫表邏輯結(jié)構(gòu)設(shè)計(jì)</p>

39、<p>  本系統(tǒng)定義的數(shù)據(jù)庫中包含多個(gè)表下。</p><p><b>  1.登錄模塊</b></p><p>  相應(yīng)的用戶在登錄之后進(jìn)入系統(tǒng),只能行使本用戶的權(quán)限,需要兩個(gè)數(shù)據(jù)庫表信息:</p><p>  (1)用戶類型表(tbl_usertype),用于存儲(chǔ)用戶類型信息,定義數(shù)據(jù)類型長度約束條件等。具體如下表所示:<

40、/p><p>  表tbl_usertype結(jié)構(gòu)</p><p> ?。?)用戶表tbl_users,用于存儲(chǔ)用戶信息,包括用戶編號(hào)、用戶名、密碼和數(shù)據(jù)類型類型,具體如表所示:</p><p>  表tbl_users結(jié)構(gòu)</p><p><b>  2.接單模塊</b></p><p> ?。?)配

41、送單表(tbl_dispatch),具體如下表所示:</p><p>  表tbl_dispatch結(jié)構(gòu)</p><p> ?。?)出庫請(qǐng)求單表tbl_outstorerequest,用于存儲(chǔ)出庫請(qǐng)求單信息具體如下表所示:</p><p>  表tbl_outstorerequest結(jié)構(gòu)</p><p> ?。?)倉庫表(tbl_store)

42、,用于存儲(chǔ)倉庫信息,包括倉庫ID、倉庫名稱、倉庫地具體如下表所示:</p><p>  表tbl_store結(jié)構(gòu)</p><p><b>  3.調(diào)度模塊</b></p><p> ?。?)入庫請(qǐng)求單表tbl_instorerequest,用于存儲(chǔ)入庫請(qǐng)求單、入庫任務(wù)單信息,包括入庫請(qǐng)求單編號(hào)、貨物編號(hào)、入庫時(shí)間、入庫數(shù)量、入庫倉庫編號(hào)、單據(jù)狀

43、態(tài)等</p><p><b>  如下表</b></p><p>  表tbl_instorerequest</p><p>  (2)出庫任務(wù)單表(tbl_outstoretask),用于存儲(chǔ)出庫任務(wù)單、出庫單信息,包括出庫任務(wù)單ID(或出庫單ID)、出庫請(qǐng)求單ID、出庫倉庫ID、單據(jù)狀態(tài),具體如下表所示:</p><p&

44、gt;  表tbl_outstoretask結(jié)構(gòu)</p><p> ?。?)運(yùn)輸任務(wù)單表tbl_transfertask,用于存儲(chǔ)運(yùn)輸任務(wù)單的各種信息。包括transfertask,transferrequest,transfertool,state,dispuser.</p><p>  表tbl_transfertask結(jié)構(gòu)</p><p> ?。?)運(yùn)輸點(diǎn)表t

45、bl_transferplace,用于存儲(chǔ)運(yùn)輸點(diǎn)信息,包括運(yùn)輸點(diǎn)Id、運(yùn)輸點(diǎn)的名稱,具體如表3-16所示:</p><p>  表tbl_transferplace結(jié)構(gòu)</p><p><b>  4.庫存模塊</b></p><p><b>  表tbl_tra</b></p><p><b

46、>  5.運(yùn)輸點(diǎn)模塊</b></p><p>  (1)運(yùn)輸單表(tbl_tra),用于存儲(chǔ)運(yùn)輸單信息,包括運(yùn)輸單ID、商品名稱、商品數(shù)量、收貨人姓名、收貨人電話、所屬省份、所屬城市、街道、配送員ID、運(yùn)輸任務(wù)單ID,具體如下表3-17所示:</p><p>  表3-17 表tbl_tra結(jié)構(gòu)</p><p>  第五章 物流業(yè)務(wù)管理系統(tǒng)的

47、實(shí)現(xiàn)與測試</p><p><b>  5.1 開發(fā)環(huán)境</b></p><p><b>  服務(wù)器端:</b></p><p>  軟件要求:操作系統(tǒng)為WindowsXP或者Windows 7,需安裝JDK1.6.0_25與MySQL以及Apache Tomcat,安裝有Myeclipse</p><

48、;p>  硬件要求:內(nèi)存最小為2G,硬盤最小為250G。</p><p>  客戶端:操作系統(tǒng)最低為WindowsXP,至少一款瀏覽器,能夠連接到Internet。</p><p>  5.2 功能詳細(xì)設(shè)計(jì)</p><p><b>  5.2.1 流程圖</b></p><p>  5.2.2 Java類的編寫&l

49、t;/p><p>  JavaBean是一種組件,但它質(zhì)上就是一個(gè)Java類,不過它需要要遵循一些規(guī)范。通過使用JavaBeans組件,代碼可以被重復(fù)使用,還可以通過可視的應(yīng)用程序開發(fā)工具將Javabean編寫到j(luò)ava程序中。此外JavaBeans簡單的說就是一種寫Java類的規(guī)則,在對(duì)數(shù)據(jù)庫的連接和操作中,可由Javabean來執(zhí)行對(duì)數(shù)據(jù)庫的操作,JSP只用來接收和顯示數(shù)據(jù),這樣就可以實(shí)現(xiàn)顯示和邏輯的一定程度上的

50、分離。此外在現(xiàn)實(shí)生活中它在一些小型項(xiàng)目的開發(fā)中應(yīng)用的比較多,本系統(tǒng)中:</p><p>  BaseDao.java用于數(shù)據(jù)庫的連接用于數(shù)據(jù)庫連接,在頁面中通過調(diào)用此javaBeans完成頁面與數(shù)據(jù)庫的連接,從而使得數(shù)據(jù)可以動(dòng)態(tài)處理。</p><p>  UserDaoImol.java用于對(duì)用戶名的操作,用戶可以通過輸入正確用戶名進(jìn)入相應(yīng)的系統(tǒng)。</p><p>

51、  GoodsDaoImpl.java用于對(duì)商品的處理,用戶可以通過它查詢修改刪除商品的信息。</p><p>  OutStoreRequestDaoImpl.java,可以通過它查詢和審核出庫請(qǐng)求單。</p><p>  StoreDaoImpl.java,倉管員可以通過它查詢物品庫存,以此來審核出庫任務(wù)單。</p><p>  5.2.3 系統(tǒng)主頁</p

52、><p>  系統(tǒng)采用綠色作為主色調(diào),頁面布局采用CSS+DIV的方式,整個(gè)頁面一共分為三塊區(qū)域,頁面頂部為系統(tǒng)BANNER,在頁面的左側(cè)為導(dǎo)航操作菜單,在頁面的右側(cè)是功能操作區(qū)</p><p><b>  代碼實(shí)現(xiàn):</b></p><p>  <title>物流配送管理系統(tǒng)---查詢配送通知單</title></p

53、><p>  <style type="text/css"></p><p>  body{font-size:12px;margin:0px;padding:0px;background:#ccc;}</p><p>  a{text-decoration:none;color:#000;}</p><p>  

54、.wl_container{width:1002px;margin:0px auto;background:#fff;}</p><p>  .wl_head{height:122px;background:url(../images/wl_head_01.jpg) no-repeat;}</p><p>  .wl_separater{background:url(../images/w

55、l_vline_04.jpg) repeat-x;margin-top:1px;color:#fff;text-align:center;line-height:2.3em;font-weight:bold;}</p><p>  .wl_main{height:645px;background:#01a333;float:left;}</p><p>  .wl_left{float:l

56、eft;width:209px;margin-left:1px;margin-right:2px;display:inline;}</p><p>  .wl_item{display:block;width:169px;height:24px !important;height:23px;background:url(../images/wl_item_04.jpg) no-repeat;padding:9px

57、 0px 0px 40px !important;padding:10px 0px 0px 40px;margin-bottom:2px;font-size:14px;font-weight:bold;}</p><p>  .wl_right{width:790px;height:645px;float:left;background:#fff;}</p><p>  .wl_foot{

58、clear:both;background:#01a333;text-align:center;color:#fff;font-weight:bold;line-height:2em;}</p><p>  .wl_table{width:700px;border-collapse:collapse;border:1px solid #ccc;margin:30px auto 0px;}</p>&

59、lt;p>  .wl_table .first{background-color:#eceff1;}</p><p>  .wl_table th,.wl_table td{border:1px solid #、</p><p>  5.2.4 用戶登錄</p><p>  為了保證系統(tǒng)的安全性,只有授權(quán)的用戶才能進(jìn)入系統(tǒng)的相應(yīng)模塊進(jìn)行操作,輸入正確的用戶名和

60、密碼,登錄成功后,可以根據(jù)用戶類型選擇進(jìn)入相應(yīng)的模塊。否則系統(tǒng)則會(huì)提示用戶“用戶名或密碼錯(cuò)誤!”或“對(duì)不起,您沒有權(quán)限進(jìn)入本系統(tǒng)!”。</p><p>  判斷此次登錄是否成功,代碼如下:</p><p>  protected void doPost(HttpServletRequest request, HttpServletResponse response) </p>

61、<p>  throws ServletException, IOException {</p><p>  String userName = request.getParameter("userName");</p><p>  String userPass = request.getParameter("userPass");&l

62、t;/p><p>  HttpSession session = request.getSession();</p><p>  User user = userDao.getUserByName(userName);</p><p>  if(user != null && user.getUserPass().equals(userPass)){&l

63、t;/p><p>  session.setAttribute("loginUser", user);</p><p>  request.getRequestDispatcher("/index.jsp").forward(request, response);</p><p><b>  }else{</b&g

64、t;</p><p>  request.setAttribute("message","用戶名或密碼錯(cuò)誤!");</p><p>  request.getRequestDispatcher("/login.jsp").forward(request, response);</p><p><b&g

65、t;  }</b></p><p><b>  }</b></p><p><b>  5.2.5接單模塊</b></p><p>  接單模塊:該模塊的主要功能是增加新的配送通知單,以及對(duì)系統(tǒng)中的配送通知單進(jìn)行修改和查詢以及審核。配送通知單審核通過之后能自動(dòng)生成對(duì)應(yīng)的出庫請(qǐng)求單和運(yùn)輸請(qǐng)求單,并且供調(diào)度員在調(diào)度

66、模塊中使用。接單模塊中客戶可以增加配送單,輸入配送單信息,選擇送貨地點(diǎn)(包含各省市信息)。這些省市信息是在后臺(tái)代碼中體現(xiàn)的,代碼如下:</p><p><b>  //北京市轄區(qū)名稱</b></p><p>  var city1 = ["東城區(qū)","西城區(qū)","崇文區(qū)","宣武區(qū)",&q

67、uot;朝陽區(qū)","海淀區(qū)","豐臺(tái)區(qū)","石景山區(qū)","房山區(qū)","通州區(qū)","順義區(qū)","門頭溝區(qū)","昌平區(qū)","大興區(qū)","懷柔區(qū)","平谷區(qū)","密云縣","延慶縣&qu

68、ot;]; </p><p>  //江蘇省主要城市名稱</p><p>  var city10 = ["南京市","無錫市","徐州市","常州市","蘇州市","南通市","連云港市","淮安市","鹽城市"

69、;,"揚(yáng)州市","鎮(zhèn)江市","泰州市","宿遷市"];</p><p>  var provinceName = ["北京市","上海市","天津市","重慶市","河北省","山西省","遼寧省"

70、;,"吉林省","河南省","江蘇省","浙江省","安徽省","福建省","江西省","山東省","湖北省","湖南省","廣東省","海南省","四川省","貴州省&

71、quot;,"云南省","陜西省","甘肅省","青海省","黑龍江省","內(nèi)蒙古自治區(qū)","廣西壯族自治區(qū)","西藏自治區(qū)","寧夏回族自治區(qū)","新疆維吾爾自治區(qū)","臺(tái)灣省","香港特別行政區(qū)"

72、,"澳門特別行政區(qū)","其它"]; </p><p>  5.2.6 調(diào)度模塊</p><p>  調(diào)度員在此模塊中能查詢相應(yīng)的請(qǐng)求單、運(yùn)輸工具和庫存,并且可以根據(jù)庫存和運(yùn)力情況對(duì)出入庫請(qǐng)求單進(jìn)行相應(yīng)的審核。一旦請(qǐng)求單被審核通過,調(diào)度員就能執(zhí)行調(diào)度進(jìn)而生成相應(yīng)的任務(wù)單。</p><p><b>  5.2.7庫存模

73、塊</b></p><p>  倉管員可以進(jìn)入庫存模塊查詢出、入庫單,并且根據(jù)庫存情況對(duì)出、入庫單進(jìn)行審核。倉管員也同時(shí)能對(duì)退換貨進(jìn)行檢驗(yàn)。如果發(fā)現(xiàn)貨物沒有質(zhì)量或者是包裝上的問題,則將貨物重新入庫。如果發(fā)現(xiàn)確實(shí)貨物有問題則把貨物放入退換貨庫。</p><p>  5.2.8 運(yùn)輸點(diǎn)模塊</p><p>  運(yùn)輸調(diào)度員可以進(jìn)入運(yùn)輸點(diǎn)模塊查詢相應(yīng)的運(yùn)輸任務(wù),

74、派車任務(wù)以及運(yùn)力情況,根據(jù)運(yùn)力的類型以及數(shù)量情況對(duì)派車任務(wù)單進(jìn)行審核, 審核完成之后執(zhí)行相應(yīng)指派任務(wù),</p><p><b>  形成運(yùn)輸單和派車單</b></p><p>  5.3 關(guān)鍵技術(shù)實(shí)現(xiàn)</p><p>  5.3.1 用戶權(quán)限</p><p>  不同用戶只能進(jìn)入相應(yīng)的系統(tǒng),其中用到標(biāo)志位實(shí)現(xiàn)權(quán)限控制。代

75、碼實(shí)現(xiàn)如下:if(session.getAttribute("loginUser") == null){</p><p>  request.setAttribute("message", "請(qǐng)登錄");</p><p>  request.getRequestDispatcher("/login.jsp").

76、forward(request, response);</p><p><b>  }else{</b></p><p>  int userType = ((User)session.getAttribute("loginUser")).getUserType();</p><p>  int sysItem = Inte

77、ger.parseInt(request.getParameter("msg"));</p><p>  switch(sysItem){</p><p><b>  case 1:</b></p><p><b>  //進(jìn)入接單系統(tǒng)</b></p><p>  if(user

78、Type == 1 || userType == 2){</p><p>  request.getRequestDispatcher("/jd/querydispatch").forward(request, response);</p><p><b>  }else{</b></p><p>  request.set

79、Attribute("privilegeMsg", "對(duì)不起,您沒有權(quán)限進(jìn)入本系統(tǒng)!");</p><p>  request.getRequestDispatcher("/index.jsp").forward(request, response);</p><p><b>  }</b></p>

80、;<p><b>  break;</b></p><p><b>  case 2:</b></p><p><b>  //進(jìn)入調(diào)度系統(tǒng)</b></p><p>  if(userType == 3){</p><p>  request.getRequest

81、Dispatcher("/dd/queryoutstorerequest").forward(request, response);</p><p><b>  }else{</b></p><p>  request.setAttribute("privilegeMsg", "對(duì)不起,您沒有權(quán)限進(jìn)入本系統(tǒng)!"

82、;);</p><p>  request.getRequestDispatcher("/index.jsp").forward(request, response);</p><p><b>  }</b></p><p><b>  break;</b></p><p>&l

83、t;b>  case 3:</b></p><p><b>  //進(jìn)入庫存系統(tǒng)</b></p><p>  if(userType == 4 || userType == 5 || userType == 6){</p><p>  request.getRequestDispatcher("/kc/kc_exec

84、chuku.jsp").forward(request, response);</p><p><b>  }else{</b></p><p>  request.setAttribute("privilegeMsg", "對(duì)不起,您沒有權(quán)限進(jìn)入本系統(tǒng)!");</p><p>  reques

85、t.getRequestDispatcher("/index.jsp").forward(request, response);</p><p><b>  }</b></p><p><b>  break;</b></p><p><b>  case 4:</b></p

86、><p>  if(userType == 7){</p><p>  request.getRequestDispatcher("/tra/queryyl2").forward(request, response);</p><p><b>  }else{</b></p><p>  request.

87、setAttribute("privilegeMsg", "對(duì)不起,您沒有權(quán)限進(jìn)入本系統(tǒng)!");</p><p>  request.getRequestDispatcher("/index.jsp").forward(request, response);</p><p><b>  }</b></p

88、><p><b>  }</b></p><p>  5.3.2 審核配送單</p><p>  對(duì)配送單進(jìn)行審核,審核通過的生成出庫請(qǐng)求單,技術(shù)實(shí)現(xiàn)代碼:</p><p>  int state = stateDao.getStateByName("未審核").getStateId();</p&g

89、t;<p>  List<DispatchDto> listDispatchDto = dispatchDao.getDispatchByState(state);</p><p>  request.setAttribute("listDispatchDto", listDispatchDto);</p><p>  request.getR

90、equestDispatcher("/jd/jd_shenhepeisongdan.jsp").forward(request, response);</p><p><b>  break;</b></p><p><b>  case 2:</b></p><p><b>  //審核操作

91、</b></p><p>  for(int i = 0 ; i < dispatchIdList.length ; i++){</p><p>  //獲取待審核的配送通知單</p><p>  Dispatch dispatch = dispatchDao.getDispatchById(Integer.parseInt(dispatchIdL

92、ist[i]));</p><p>  StoreRefGood storeRefGood = storeRefGoodDao.examineDispatch(dispatch.getGoodName(), dispatch.getGoodQuantity());</p><p><b>  //審核通過</b></p><p>  if(st

93、oreRefGood != null){</p><p>  //修改配送通知單狀態(tài)為"已審核未執(zhí)行"</p><p>  dispatchDao.updateDispatchState(dispatch.getDispatchId(), 2);</p><p>  //修改配送通知單狀態(tài)</p><p><b>

94、;  //生成出庫請(qǐng)求單</b></p><p>  OutStoreRequest outStoreRequest = new OutStoreRequest();</p><p>  outStoreRequest.setDispatchId(dispatch.getDispatchId());</p><p>  outStoreRequest.s

95、etStoreId(storeRefGood.getStoreId());</p><p>  outStoreRequest.setState(1);</p><p>  outStoreRequestDao.addOutStoreRequest(outStoreRequest);</p><p><b>  //生成出庫請(qǐng)求單</b><

96、;/p><p><b>  //生成運(yùn)輸請(qǐng)求單</b></p><p>  //獲取需要運(yùn)輸?shù)纳唐沸畔ⅲ〝?shù)量,載重,體積),決定需要的車輛數(shù)目</p><p>  GoodsDto goodsDto = goodsDao.getGoodByGoodName(dispatch.getGoodName()).get(0);</p><

97、;p>  double reqWeight = dispatch.getGoodQuantity() * Double.parseDouble(goodsDto.getGoodWeight()) / 2000;//需求的重量</p><p>  double reqMulk = dispatch.getGoodQuantity() * Double.parseDouble(goodsDto.getGoodB

98、ulk()) / 1000000;//需求的空間</p><p>  //獲取運(yùn)輸車輛類型信息</p><p>  TransferToolDto transferToolDto = transferToolDao.getTransferToolById(dispatch.getTransferTool());</p><p>  TransferModel tra

99、nsferModel = transferModelDao.getTransferModelById(transferToolDto.getTransferModel());</p><p>  double factWeight = Double.parseDouble(transferModel.getTrmoWeight());</p><p>  double factMulk =

100、 Double.parseDouble(transferModel.getTrmoMulk());</p><p>  TransferRequest transferRequest = new TransferRequest();</p><p>  transferRequest.setDispatchId(dispatch.getDispatchId());</p>&

101、lt;p>  transferRequest.setTransferToolId(dispatch.getTransferTool());</p><p>  transferRequest.setState(1);</p><p>  int requestNum = 1;</p><p>  while(reqWeight > factWeight

102、|| reqMulk > factMulk){</p><p>  requestNum++;</p><p>  factWeight += factWeight;</p><p>  factMulk += factMulk;</p><p><b>  }</b></p><p>  

103、transferRequest.setRequestNum(requestNum);</p><p>  transferRequestDao.addTransferRequest(transferRequest);</p><p><b>  //生成運(yùn)輸請(qǐng)求單</b></p><p><b>  }else{</b>&

104、lt;/p><p>  //審核未通過,修改配送通知單的狀態(tài)為"未滿足條件"</p><p>  dispatchDao.updateDispatchState(dispatch.getDispatchId(), 3);</p><p><b>  }</b></p><p><b>  }&l

105、t;/b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  response.sendRedirect("querydispatch");</p><p><b>  }</b></p

106、><p><b>  }</b></p><p><b>  5.4 系統(tǒng)測試</b></p><p>  5.4.1 增加配送通知單</p><p><b>  如圖:</b></p><p>  當(dāng)輸入訂單號(hào)不是11位,則系統(tǒng)提示錯(cuò)誤如圖</p&g

107、t;<p>  后臺(tái)代碼:("goodNameId").onblur = function(){</p><p>  var xhr = createXHR();</p><p>  var uri = "existsgoods?" + encodeURIComponent("goodsName") + "

108、=" + encodeURIComponent($("goodNameId").value) + "&fresh=" + new Date().getTime();</p><p>  xhr.onreadystatechange = function(){</p><p>  if(xhr.readyState == 4){<

109、;/p><p>  if(xhr.status == 200){</p><p>  var f = xhr.responseText;</p><p>  if(f == "0"){</p><p>  //表示不存在此商品</p><p>  $("btnAddDispatch"

110、).disabled = true;</p><p>  $("errorTip").innerHTML = "必須要是已存在的商品";</p><p>  $("goodNameId").focus();</p><p>  $("goodNameId").select();</

111、p><p>  }else if(f == "1"){</p><p><b>  //表示存在此商品</b></p><p>  $("btnAddDispatch").disabled = false;</p><p>  $("errorTip").inner

112、HTML = "*";</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>  };</b></p><p>  xhr

113、.open("get",uri,true);</p><p>  xhr.send();</p><p><b>  };</b></p><p>  function checkOrderId(){</p><p>  var val = $("orderIdId").value

114、;</p><p>  var reg = /^\d{11}$/;</p><p>  if(reg.test(val)){</p><p>  return true;</p><p><b>  }</b></p><p>  alert("訂單ID必須為11位數(shù)字");&

115、lt;/p><p>  $("orderIdId").select();</p><p>  return false;</p><p><b>  }</b></p><p>  function checkGoodName(){</p><p>  var val = $(&q

116、uot;goodNameId").value;</p><p>  var reg = /^\S+$/;</p><p>  if(reg.test(val)){</p><p>  return true;</p><p><b>  }</b></p><p>  $("g

117、oodNameId").select();</p><p>  alert("商品名稱不能為空");</p><p>  return false;</p><p><b>  }</b></p><p>  function checkQuantity(){</p><

118、p>  var val = $("goodQuantityId").value;</p><p>  var reg = /^\d+$/;</p><p>  if(reg.test(val)){</p><p>  return true;</p><p><b>  }</b></p&

119、gt;<p>  alert("貨物數(shù)量必須為數(shù)字");</p><p>  $("goodQuantityId").select();</p><p>  return false;</p><p><b>  }</b></p><p>  function ch

120、eckSendName(){</p><p>  var val = $("sendNameId").value;</p><p>  var reg = /^\S+$/;</p><p>  if(reg.test(val)){</p><p>  return true;</p><p><

121、;b>  }</b></p><p>  $("sendNameId").focus();</p><p>  alert("發(fā)貨人改名不能為空");</p><p>  return false;</p><p><b>  }</b></p>&

122、lt;p>  function checkSendTel(){</p><p>  var val = $("sendTelId").value;</p><p>  var reg = /^\d{11}$/;</p><p>  if(reg.test(val)){</p><p>  return true;&l

123、t;/p><p><b>  }</b></p><p>  $("sendTelId").select();</p><p>  alert("手機(jī)號(hào)應(yīng)為11位");</p><p>  return false;</p><p><b>  }&l

124、t;/b></p><p>  function checkReceName(){</p><p>  var val = $("receiverNameId").value;</p><p>  var reg = /^\S+$/;</p><p>  if(reg.test(val)){</p>&

125、lt;p>  return true;</p><p><b>  }</b></p><p>  $("receiverNameId").focus();</p><p>  alert("收貨人姓名不能為空");</p><p>  return false;</p

126、><p><b>  }</b></p><p>  function checkReceTel(){</p><p>  var val = $("receiverTelId").value;</p><p>  var reg = /^\d{11}$/;</p><p>  i

127、f(reg.test(val)){</p><p>  return true;</p><p><b>  }</b></p><p>  $("receiverTelId").select();</p><p>  alert("手機(jī)號(hào)應(yīng)為11位");</p>&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論