物流業(yè)務管理系統(tǒng)的設計與實現(xiàn)+畢業(yè)論文_第1頁
物流業(yè)務管理系統(tǒng)的設計與實現(xiàn)+畢業(yè)論文_第2頁
物流業(yè)務管理系統(tǒng)的設計與實現(xiàn)+畢業(yè)論文_第3頁
物流業(yè)務管理系統(tǒng)的設計與實現(xiàn)+畢業(yè)論文_第4頁
物流業(yè)務管理系統(tǒng)的設計與實現(xiàn)+畢業(yè)論文_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

南通大學畢業(yè)設計(論文) 南通大學南通大學畢業(yè)設計(論文)姓姓名:xxxx指導教師:xxxx專業(yè):網(wǎng)絡工程題目:物流業(yè)務管理系統(tǒng)的設計與實現(xiàn) 南通大學計算機學院第五章物流業(yè)務管理系統(tǒng)的實現(xiàn)與測試5.1開發(fā)環(huán)境服務器端:軟件要求:操作系統(tǒng)為WindowsXP或者Windows7,需安裝JDK1.6.0_25與MySQL以及ApacheTomcat,安裝有Myeclipse硬件要求:內(nèi)存最小為2G,硬盤最小為250G。客戶端:操作系統(tǒng)最低為WindowsXP,至少一款瀏覽器,能夠連接到Internet。5.2功能詳細設計5.2.1流程圖 5.2.2Java類的編寫JavaBean是一種組件,但它質上就是一個Java類,不過它需要要遵循一些規(guī)范。通過使用JavaBeans組件,代碼可以被重復使用,還可以通過可視的應用程序開發(fā)工具將Javabean編寫到java程序中。此外JavaBeans簡單的說就是一種寫Java類的規(guī)則,在對數(shù)據(jù)庫的連接和操作中,可由Javabean來執(zhí)行對數(shù)據(jù)庫的操作,JSP只用來接收和顯示數(shù)據(jù),這樣就可以實現(xiàn)顯示和邏輯的一定程度上的分離。此外在現(xiàn)實生活中它在一些小型項目的開發(fā)中應用的比較多,本系統(tǒng)中:BaseDao.java用于數(shù)據(jù)庫的連接用于數(shù)據(jù)庫連接,在頁面中通過調用此javaBeans完成頁面與數(shù)據(jù)庫的連接,從而使得數(shù)據(jù)可以動態(tài)處理。UserDaoImol.java用于對用戶名的操作,用戶可以通過輸入正確用戶名進入相應的系統(tǒng)。GoodsDaoImpl.java用于對商品的處理,用戶可以通過它查詢修改刪除商品的信息。OutStoreRequestDaoImpl.java,可以通過它查詢和審核出庫請求單。StoreDaoImpl.java,倉管員可以通過它查詢物品庫存,以此來審核出庫任務單。5.2.3系統(tǒng)主頁系統(tǒng)采用綠色作為主色調,頁面布局采用CSS+DIV的方式,整個頁面一共分為三塊區(qū)域,頁面頂部為系統(tǒng)BANNER,在頁面的左側為導航操作菜單,在頁面的右側是功能操作區(qū)代碼實現(xiàn):<title>物流配送管理系統(tǒng)查詢配送通知單</title><styletype="text/css"> body{font-size:12px;margin:0px;padding:0px;background:#ccc;} a{text-decoration:none;color:#000;} .wl_container{width:1002px;margin:0pxauto;background:#fff;} .wl_head{height:122px;background:url(../images/wl_head_01.jpg)no-repeat;} .wl_separater{background:url(../images/wl_vline_04.jpg)repeat-x;margin-top:1px;color:#fff;text-align:center;line-height:2.3em;font-weight:bold;} .wl_main{height:645px;background:#01a333;float:left;} .wl_left{float:left;width:209px;margin-left:1px;margin-right:2px;display:inline;} .wl_item{display:block;width:169px;height:24px!important;height:23px;background:url(../images/wl_item_04.jpg)no-repeat;padding:9px0px0px40px!important;padding:10px0px0px40px;margin-bottom:2px;font-size:14px;font-weight:bold;} .wl_right{width:790px;height:645px;float:left;background:#fff;} .wl_foot{clear:both;background:#01a333;text-align:center;color:#fff;font-weight:bold;line-height:2em;} .wl_table{width:700px;border-collapse:collapse;border:1pxsolid#ccc;margin:30pxauto0px;} .wl_table.first{background-color:#eceff1;} .wl_tableth,.wl_tabletd{border:1pxsolid#、5.2.4用戶登錄為了保證系統(tǒng)的安全性,只有授權的用戶才能進入系統(tǒng)的相應模塊進行操作,輸入正確的用戶名和密碼,登錄成功后,可以根據(jù)用戶類型選擇進入相應的模塊。否則系統(tǒng)則會提示用戶“用戶名或密碼錯誤!”或“對不起,您沒有權限進入本系統(tǒng)!”。判斷此次登錄是否成功,代碼如下:protectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{ StringuserName=request.getParameter("userName"); StringuserPass=request.getParameter("userPass"); HttpSessionsession=request.getSession(); Useruser=userDao.getUserByName(userName); if(user!=null&&user.getUserPass().equals(userPass)){ session.setAttribute("loginUser",user); request.getRequestDispatcher("/index.jsp").forward(request,response); }else{ request.setAttribute("message","用戶名或密碼錯誤!"); request.getRequestDispatcher("/login.jsp").forward(request,response); }}5.2.5接單模塊接單模塊:該模塊的主要功能是增加新的配送通知單,以及對系統(tǒng)中的配送通知單進行修改和查詢以及審核。配送通知單審核通過之后能自動生成對應的出庫請求單和運輸請求單,并且供調度員在調度模塊中使用。接單模塊中客戶可以增加配送單,輸入配送單信息,選擇送貨地點(包含各省市信息)。這些省市信息是在后臺代碼中體現(xiàn)的,代碼如下://北京市轄區(qū)名稱varcity1=["東城區(qū)","西城區(qū)","崇文區(qū)","宣武區(qū)","朝陽區(qū)","海淀區(qū)","豐臺區(qū)","石景山區(qū)","房山區(qū)","通州區(qū)","順義區(qū)","門頭溝區(qū)","昌平區(qū)","大興區(qū)","懷柔區(qū)","平谷區(qū)","密云縣","延慶縣"];//江蘇省主要城市名稱varcity10=["南京市","無錫市","徐州市","常州市","蘇州市","南通市","連云港市","淮安市","鹽城市","揚州市","鎮(zhèn)江市","泰州市","宿遷市"];varprovinceName=["北京市","上海市","天津市","重慶市","河北省","山西省","遼寧省","吉林省","河南省","江蘇省","浙江省","安徽省","福建省","江西省","山東省","湖北省","湖南省","廣東省","海南省","四川省","貴州省","云南省","陜西省","甘肅省","青海省","黑龍江省","內(nèi)蒙古自治區(qū)","廣西壯族自治區(qū)","西藏自治區(qū)","寧夏回族自治區(qū)","新疆維吾爾自治區(qū)","臺灣省","香港特別行政區(qū)","澳門特別行政區(qū)","其它"];5.2.6調度模塊調度員在此模塊中能查詢相應的請求單、運輸工具和庫存,并且可以根據(jù)庫存和運力情況對出入庫請求單進行相應的審核。一旦請求單被審核通過,調度員就能執(zhí)行調度進而生成相應的任務單。5.2.7庫存模塊倉管員可以進入庫存模塊查詢出、入庫單,并且根據(jù)庫存情況對出、入庫單進行審核。倉管員也同時能對退換貨進行檢驗。如果發(fā)現(xiàn)貨物沒有質量或者是包裝上的問題,則將貨物重新入庫。如果發(fā)現(xiàn)確實貨物有問題則把貨物放入退換貨庫。5.2.8運輸點模塊運輸調度員可以進入運輸點模塊查詢相應的運輸任務,派車任務以及運力情況,根據(jù)運力的類型以及數(shù)量情況對派車任務單進行審核,審核完成之后執(zhí)行相應指派任務,形成運輸單和派車單5.3關鍵技術實現(xiàn)5.3.1用戶權限不同用戶只能進入相應的系統(tǒng),其中用到標志位實現(xiàn)權限控制。代碼實現(xiàn)如下:if(session.getAttribute("loginUser")==null){ request.setAttribute("message","請登錄"); request.getRequestDispatcher("/login.jsp").forward(request,response); }else{ intuserType=((User)session.getAttribute("loginUser")).getUserType(); intsysItem=Integer.parseInt(request.getParameter("msg")); switch(sysItem){ case1: //進入接單系統(tǒng) if(userType==1||userType==2){ request.getRequestDispatcher("/jd/querydispatch").forward(request,response); }else{ request.setAttribute("privilegeMsg","對不起,您沒有權限進入本系統(tǒng)!"); request.getRequestDispatcher("/index.jsp").forward(request,response); } break; case2: //進入調度系統(tǒng) if(userType==3){ request.getRequestDispatcher("/dd/queryoutstorerequest").forward(request,response); }else{ request.setAttribute("privilegeMsg","對不起,您沒有權限進入本系統(tǒng)!"); request.getRequestDispatcher("/index.jsp").forward(request,response); } break; case3: //進入庫存系統(tǒng) if(userType==4||userType==5||userType==6){ request.getRequestDispatcher("/kc/kc_execchuku.jsp").forward(request,response); }else{ request.setAttribute("privilegeMsg","對不起,您沒有權限進入本系統(tǒng)!"); request.getRequestDispatcher("/index.jsp").forward(request,response); } break; case4: if(userType==7){ request.getRequestDispatcher("/tra/queryyl2").forward(request,response); }else{ request.setAttribute("privilegeMsg","對不起,您沒有權限進入本系統(tǒng)!"); request.getRequestDispatcher("/index.jsp").forward(request,response); } }5.3.2審核配送單對配送單進行審核,審核通過的生成出庫請求單,技術實現(xiàn)代碼:intstate=stateDao.getStateByName("未審核").getStateId(); List<DispatchDto>listDispatchDto=dispatchDao.getDispatchByState(state); request.setAttribute("listDispatchDto",listDispatchDto); request.getRequestDispatcher("/jd/jd_shenhepeisongdan.jsp").forward(request,response); break; case2: //審核操作 for(inti=0;i<dispatchIdList.length;i++){ //獲取待審核的配送通知單 Dispatchdispatch=dispatchDao.getDispatchById(Integer.parseInt(dispatchIdList[i])); StoreRefGoodstoreRefGood=storeRefGoodDao.examineDispatch(dispatch.getGoodName(),dispatch.getGoodQuantity()); //審核通過 if(storeRefGood!=null){ //修改配送通知單狀態(tài)為"已審核未執(zhí)行" dispatchDao.updateDispatchState(dispatch.getDispatchId(),2); //修改配送通知單狀態(tài) //生成出庫請求單 OutStoreRequestoutStoreRequest=newOutStoreRequest(); outStoreRequest.setDispatchId(dispatch.getDispatchId()); outStoreRequest.setStoreId(storeRefGood.getStoreId()); outStoreRequest.setState(1); outStoreRequestDao.addOutStoreRequest(outStoreRequest); //生成出庫請求單 //生成運輸請求單 //獲取需要運輸?shù)纳唐沸畔ⅲ〝?shù)量,載重,體積),決定需要的車輛數(shù)目 GoodsDtogoodsDto=goodsDao.getGoodByGoodName(dispatch.getGoodName()).get(0); doublereqWeight=dispatch.getGoodQuantity()*Double.parseDouble(goodsDto.getGoodWeight())/2000;//需求的重量 doublereqMulk=dispatch.getGoodQuantity()*Double.parseDouble(goodsDto.getGoodBulk())/1000000;//需求的空間 //獲取運輸車輛類型信息 TransferToolDtotransferToolDto=transferToolDao.getTransferToolById(dispatch.getTransferTool()); TransferModeltransferModel=transferModelDao.getTransferModelById(transferToolDto.getTransferModel()); doublefactWeight=Double.parseDouble(transferModel.getTrmoWeight()); doublefactMulk=Double.parseDouble(transferModel.getTrmoMulk()); TransferRequesttransferRequest=newTransferRequest(); transferRequest.setDispatchId(dispatch.getDispatchId()); transferRequest.setTransferToolId(dispatch.getTransferTool()); transferRequest.setState(1); intrequestNum=1; while(reqWeight>factWeight||reqMulk>factMulk){ requestNum++; factWeight+=factWeight; factMulk+=factMulk; } transferRequest.setRequestNum(requestNum); transferRequestDao.addTransferRequest(transferRequest); //生成運輸請求單 }else{ //審核未通過,修改配送通知單的狀態(tài)為"未滿足條件" dispatchDao.updateDispatchState(dispatch.getDispatchId(),3); } } break; } response.sendRedirect("querydispatch"); }}5.4系統(tǒng)測試5.4.1增加配送通知單如圖:當輸入訂單號不是11位,則系統(tǒng)提示錯誤如圖后臺代碼:("goodNameId").onblur=function(){ varxhr=createXHR(); varuri="existsgoods?"+encodeURIComponent("goodsName")+"="+encodeURIComponent($("goodNameId").value)+"&fresh="+newDate().getTime(); xhr.onreadystatechange=function(){ if(xhr.readyState==4){ if(xhr.status==200){ varf=xhr.responseText; if(f=="0"){ //表示不存在此商品 $("btnAddDispatch").disabled=true; $("errorTip").innerHTML="必須要是已存在的商品"; $("goodNameId").focus(); $("goodNameId").select(); }elseif(f=="1"){ //表示存在此商品 $("btnAddDispatch").disabled=false; $("errorTip").innerHTML="*"; } } } }; xhr.open("get",uri,true); xhr.send(); }; functioncheckOrderId(){ varval=$("orderIdId").value; varreg=/^\d{11}$/; if(reg.test(val)){ returntrue; } alert("訂單ID必須為11位數(shù)字"); $("orderIdId").select(); returnfalse; } functioncheckGoodName(){ varval=$("goodNameId").value; varreg=/^\S+$/; if(reg.test(val)){ returntrue; } $("goodNameId").select(); alert("商品名稱不能為空"); returnfalse; } functioncheckQuantity(){ varval=$("goodQuantityId").value; varreg=/^\d+$/; if(reg.test(val)){ returntrue; } alert("貨物數(shù)量必須為數(shù)字"); $("goodQuantityId").select(); returnfalse; } functioncheckSendName(){ varval=$("sendNameId").value; varreg=/^\S+$/; if(reg.test(val)){ returntrue; } $("sendNameId").focus(); alert("發(fā)貨人改名不能為空"); returnfalse; } functioncheckSendTel(){ varval=$("sendTelId").value; varreg=/^\d{11}$/; if(reg.test(val)){ returntrue; } $("sendTelId").select(); alert("手機號應為11位"); returnfalse; } functioncheckReceName(){ varval=$("receiverNameId").value; varreg=/^\S+$/; if(reg.test(val)){ returntrue; } $("receiverNameId").focus(); alert("收貨人姓名不能為空"); returnfalse; } functioncheckReceTel(){ varval=$("receiverTelId").value; varreg=/^\d{11}$/; if(reg.test(val)){ returntrue; } $("receiverTelId").select(); alert("手機號應為11位"); returnfalse; } functioncheckStreet(){ varval=$("receiverStreetId").value; varreg=/^\S+$/; if(reg.test(val)){ returntrue; } $("receiverStreetId").focus(); alert("街道地址不能為空"); returnfalse; } functioncheck(){ if(checkOrderId()&&checkGoodName()&&checkQuantity()&&checkSendName()&&checkSendTel()&&checkReceName()&&checkReceTel()&&checkStreet()){ returntrue; } returnfalse; } </script></body></html>5.4.2審核配送單5.4.3退換貨1.新增商品入庫(1)業(yè)務概述:倉管員執(zhí)行退換貨。(2)輸入要素:選擇貨無問題,輸入產(chǎn)品信息。如圖所示圖4-14新增商品入庫(3)輸出要素:生成入庫單。2.退貨商品入庫(1)業(yè)務概述:倉管員執(zhí)行退換貨。(2)輸入要素:選擇貨有問題,輸入商品信息。如圖所示:退貨(3)輸出要素:生成入庫單。5.5故障處理本系統(tǒng)可能出錯的情況:1.無法進入某一個系統(tǒng)。2.信息輸入輸出出錯。出錯處理方法及補救措施:1.根據(jù)出錯的種類提示身份認證重新輸入。2.系統(tǒng)給出錯誤提示。5.6小結由于各種各樣的原因,在開發(fā)過程中,我遇到了許多技術上的問題,但是通過與指導老師的溝通,加上請教同學和自己的努力終于把問題一一解決了,例如:在JAVA中編碼與解碼的問題、AJAX的級聯(lián)的實現(xiàn)以及手動用JS保存狀態(tài)、MySql觸發(fā)器以及存儲過程的大量使用。本系統(tǒng)主要分為四個模塊:接單模塊、調度模塊、庫存模塊、運輸點模塊。每個模塊之間互相都有關系,整個系統(tǒng)的處理流程是先由接單模塊得到一定的數(shù)據(jù)處理后,傳給后面的模塊,后面的模塊再進行相應的處理。第6章總結與展望

由于畢業(yè)設計時間較短,本系統(tǒng)還有諸地方不盡如人意,比如用戶界面單調不夠美觀,出錯處理不夠人性化,新增修改數(shù)據(jù)沒有突出顯示等,希望各位老師和同學給予評和指正。新增修改數(shù)據(jù)沒有突出顯示。在頁面當中沒有把CSS樣式歸類到一個外部樣式表文件中,分頁代碼沒有抽取出來放到一個統(tǒng)一的文件當中去。數(shù)據(jù)庫表比較多,沒有把狀態(tài)表歸為一個參數(shù)表以及系統(tǒng)后臺Servlet當中沒有把分頁后臺代碼抽象出來。以上這些都是以后需要改進的地方。在系統(tǒng)前臺框架上面,我通過使用DIV+CSS的方式來模擬frameset,但是沒有考慮到維護的問題,導致在每個頁面中都需要重復寫很多超鏈接,右側應該使用iframe框的,由于當初做的時候比較急,所以就沒有考慮充分,這也是以后需要改進的地方。但是系統(tǒng)整體上采用MVC結構,使用Servlet充當控制器、JSP充當視圖、系統(tǒng)中的實體充當模型。但是,我把業(yè)務放到了Servlet當中去實現(xiàn)了,沒有把它單獨列出來,也是為了開發(fā)時候的簡便,但是后面維護就困難了,這些都是以后需要改進和注意的地方。雖然結果并不完美,但是在這個過程中我通過查過資料、上網(wǎng)學到了許多與專業(yè)相關的知識,也得到了老師同學的許多幫助,同時也鍛煉了自己的邏輯思維能力以及解決問題的能力,我很欣慰。在整個系統(tǒng)開發(fā)過程中,我明白了軟件開發(fā)是相當辛苦的,但成功以后的喜悅也是非常美妙的,而且我發(fā)現(xiàn),當我投入的心血越多,成功以后我所獲得的快樂與充實感也更多更強。所以我覺得軟件開發(fā)是件很有趣的工作,現(xiàn)在在無錫一家對日的軟件外包公司實習,從事軟件開發(fā)工作,我很滿足。我相信我一定會以積極、認真、上進的態(tài)度面對今后的學習和工作,做自己喜歡的工作,實現(xiàn)自己的價值。參考文獻[1]何世明.我國電子商務物流配送模式的運作設計[J].廣東商學院學報,2003(02):81-85.[2]張勁松.電子商務環(huán)境下物流模式分析及其問題研究[J].情報雜志,2006(11):13-15.[3]何宜軍.MVC設計模式在Java

溫馨提示

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

最新文檔

評論

0/150

提交評論