物流業務管理系統的設計與實現+畢業論文_第1頁
物流業務管理系統的設計與實現+畢業論文_第2頁
物流業務管理系統的設計與實現+畢業論文_第3頁
物流業務管理系統的設計與實現+畢業論文_第4頁
物流業務管理系統的設計與實現+畢業論文_第5頁
已閱讀5頁,還剩32頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

南通大學畢業設計(論文) 南通大學南通大學畢業設計(論文)姓姓名:xxxx指導教師:xxxx專業:網絡工程題目:物流業務管理系統的設計與實現 南通大學計算機學院第五章物流業務管理系統的實現與測試5.1開發環境服務器端:軟件要求:操作系統為WindowsXP或者Windows7,需安裝JDK1.6.0_25與MySQL以及ApacheTomcat,安裝有Myeclipse硬件要求:內存最小為2G,硬盤最小為250G。客戶端:操作系統最低為WindowsXP,至少一款瀏覽器,能夠連接到Internet。5.2功能詳細設計5.2.1流程圖 5.2.2Java類的編寫JavaBean是一種組件,但它質上就是一個Java類,不過它需要要遵循一些規范。通過使用JavaBeans組件,代碼可以被重復使用,還可以通過可視的應用程序開發工具將Javabean編寫到java程序中。此外JavaBeans簡單的說就是一種寫Java類的規則,在對數據庫的連接和操作中,可由Javabean來執行對數據庫的操作,JSP只用來接收和顯示數據,這樣就可以實現顯示和邏輯的一定程度上的分離。此外在現實生活中它在一些小型項目的開發中應用的比較多,本系統中:BaseDao.java用于數據庫的連接用于數據庫連接,在頁面中通過調用此javaBeans完成頁面與數據庫的連接,從而使得數據可以動態處理。UserDaoImol.java用于對用戶名的操作,用戶可以通過輸入正確用戶名進入相應的系統。GoodsDaoImpl.java用于對商品的處理,用戶可以通過它查詢修改刪除商品的信息。OutStoreRequestDaoImpl.java,可以通過它查詢和審核出庫請求單。StoreDaoImpl.java,倉管員可以通過它查詢物品庫存,以此來審核出庫任務單。5.2.3系統主頁系統采用綠色作為主色調,頁面布局采用CSS+DIV的方式,整個頁面一共分為三塊區域,頁面頂部為系統BANNER,在頁面的左側為導航操作菜單,在頁面的右側是功能操作區代碼實現:<title>物流配送管理系統查詢配送通知單</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用戶登錄為了保證系統的安全性,只有授權的用戶才能進入系統的相應模塊進行操作,輸入正確的用戶名和密碼,登錄成功后,可以根據用戶類型選擇進入相應的模塊。否則系統則會提示用戶“用戶名或密碼錯誤!”或“對不起,您沒有權限進入本系統!”。判斷此次登錄是否成功,代碼如下: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接單模塊接單模塊:該模塊的主要功能是增加新的配送通知單,以及對系統中的配送通知單進行修改和查詢以及審核。配送通知單審核通過之后能自動生成對應的出庫請求單和運輸請求單,并且供調度員在調度模塊中使用。接單模塊中客戶可以增加配送單,輸入配送單信息,選擇送貨地點(包含各省市信息)。這些省市信息是在后臺代碼中體現的,代碼如下://北京市轄區名稱varcity1=["東城區","西城區","崇文區","宣武區","朝陽區","海淀區","豐臺區","石景山區","房山區","通州區","順義區","門頭溝區","昌平區","大興區","懷柔區","平谷區","密云縣","延慶縣"];//江蘇省主要城市名稱varcity10=["南京市","無錫市","徐州市","常州市","蘇州市","南通市","連云港市","淮安市","鹽城市","揚州市","鎮江市","泰州市","宿遷市"];varprovinceName=["北京市","上海市","天津市","重慶市","河北省","山西省","遼寧省","吉林省","河南省","江蘇省","浙江省","安徽省","福建省","江西省","山東省","湖北省","湖南省","廣東省","海南省","四川省","貴州省","云南省","陜西省","甘肅省","青海省","黑龍江省","內蒙古自治區","廣西壯族自治區","西藏自治區","寧夏回族自治區","新疆維吾爾自治區","臺灣省","香港特別行政區","澳門特別行政區","其它"];5.2.6調度模塊調度員在此模塊中能查詢相應的請求單、運輸工具和庫存,并且可以根據庫存和運力情況對出入庫請求單進行相應的審核。一旦請求單被審核通過,調度員就能執行調度進而生成相應的任務單。5.2.7庫存模塊倉管員可以進入庫存模塊查詢出、入庫單,并且根據庫存情況對出、入庫單進行審核。倉管員也同時能對退換貨進行檢驗。如果發現貨物沒有質量或者是包裝上的問題,則將貨物重新入庫。如果發現確實貨物有問題則把貨物放入退換貨庫。5.2.8運輸點模塊運輸調度員可以進入運輸點模塊查詢相應的運輸任務,派車任務以及運力情況,根據運力的類型以及數量情況對派車任務單進行審核,審核完成之后執行相應指派任務,形成運輸單和派車單5.3關鍵技術實現5.3.1用戶權限不同用戶只能進入相應的系統,其中用到標志位實現權限控制。代碼實現如下: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: //進入接單系統 if(userType==1||userType==2){ request.getRequestDispatcher("/jd/querydispatch").forward(request,response); }else{ request.setAttribute("privilegeMsg","對不起,您沒有權限進入本系統!"); request.getRequestDispatcher("/index.jsp").forward(request,response); } break; case2: //進入調度系統 if(userType==3){ request.getRequestDispatcher("/dd/queryoutstorerequest").forward(request,response); }else{ request.setAttribute("privilegeMsg","對不起,您沒有權限進入本系統!"); request.getRequestDispatcher("/index.jsp").forward(request,response); } break; case3: //進入庫存系統 if(userType==4||userType==5||userType==6){ request.getRequestDispatcher("/kc/kc_execchuku.jsp").forward(request,response); }else{ request.setAttribute("privilegeMsg","對不起,您沒有權限進入本系統!"); request.getRequestDispatcher("/index.jsp").forward(request,response); } break; case4: if(userType==7){ request.getRequestDispatcher("/tra/queryyl2").forward(request,response); }else{ request.setAttribute("privilegeMsg","對不起,您沒有權限進入本系統!"); request.getRequestDispatcher("/index.jsp").forward(request,response); } }5.3.2審核配送單對配送單進行審核,審核通過的生成出庫請求單,技術實現代碼: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){ //修改配送通知單狀態為"已審核未執行" dispatchDao.updateDispatchState(dispatch.getDispatchId(),2); //修改配送通知單狀態 //生成出庫請求單 OutStoreRequestoutStoreRequest=newOutStoreRequest(); outStoreRequest.setDispatchId(dispatch.getDispatchId()); outStoreRequest.setStoreId(storeRefGood.getStoreId()); outStoreRequest.setState(1); outStoreRequestDao.addOutStoreRequest(outStoreRequest); //生成出庫請求單 //生成運輸請求單 //獲取需要運輸的商品信息(數量,載重,體積),決定需要的車輛數目 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{ //審核未通過,修改配送通知單的狀態為"未滿足條件" dispatchDao.updateDispatchState(dispatch.getDispatchId(),3); } } break; } response.sendRedirect("querydispatch"); }}5.4系統測試5.4.1增加配送通知單如圖:當輸入訂單號不是11位,則系統提示錯誤如圖后臺代碼:("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位數字"); $("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("貨物數量必須為數字"); $("goodQuantityId").select(); returnfalse; } functioncheckSendName(){ varval=$("sendNameId").value; varreg=/^\S+$/; if(reg.test(val)){ returntrue; } $("sendNameId").focus(); alert("發貨人改名不能為空"); 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)業務概述:倉管員執行退換貨。(2)輸入要素:選擇貨無問題,輸入產品信息。如圖所示圖4-14新增商品入庫(3)輸出要素:生成入庫單。2.退貨商品入庫(1)業務概述:倉管員執行退換貨。(2)輸入要素:選擇貨有問題,輸入商品信息。如圖所示:退貨(3)輸出要素:生成入庫單。5.5故障處理本系統可能出錯的情況:1.無法進入某一個系統。2.信息輸入輸出出錯。出錯處理方法及補救措施:1.根據出錯的種類提示身份認證重新輸入。2.系統給出錯誤提示。5.6小結由于各種各樣的原因,在開發過程中,我遇到了許多技術上的問題,但是通過與指導老師的溝通,加上請教同學和自己的努力終于把問題一一解決了,例如:在JAVA中編碼與解碼的問題、AJAX的級聯的實現以及手動用JS保存狀態、MySql觸發器以及存儲過程的大量使用。本系統主要分為四個模塊:接單模塊、調度模塊、庫存模塊、運輸點模塊。每個模塊之間互相都有關系,整個系統的處理流程是先由接單模塊得到一定的數據處理后,傳給后面的模塊,后面的模塊再進行相應的處理。第6章總結與展望

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

溫馨提示

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

評論

0/150

提交評論