版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
商務網(wǎng)站模擬與實現(xiàn)題目:物流配送系統(tǒng)商務網(wǎng)站設計院系專業(yè)班級學號姓名指導教師2009年6月課程設計任務書課程設計時間:年月日至年月日課程設計地點課程設計內容及要求:設計題目物流配送系統(tǒng)商務網(wǎng)站設計總體目標、設計目標及要求設計目標:物流配送系統(tǒng)的作用就是為了給客戶提供物流配送信息發(fā)布的平臺。使用ASP技術設計的物流配送系統(tǒng)可以使物流配送的管理變得很輕松。管理員只需設置訂單號、出發(fā)地點和目的地等運單信息元素就可以了,系統(tǒng)將自動生成對應得運送。而使用Access數(shù)據(jù)庫,將減輕維護人員的工作量,使系統(tǒng)便于維護和管理。本物流信息網(wǎng)分為前臺和后臺兩個部分進行設計。前臺主要用于客戶瀏覽站內信息,并了解本公司和物流行業(yè)的相關信息;后臺主要用于管理員對管理員信息、公司簡介、倉庫服務、運輸服務、配送服務、運單管理、聯(lián)系我們等模塊的管理。(二)系統(tǒng)目標如下:該物流配送系統(tǒng)是針對中小型企業(yè)的運營管理過程進行設計的,主要實現(xiàn)如下目標:操作簡單方便、界面簡潔美觀。網(wǎng)站整體結構和操作流程合理順暢,實現(xiàn)人性化設計。向客戶全面展示該系統(tǒng)的各項業(yè)務。提供貨物運單信息添加功能。提供密碼修改功能。為管理員提供登錄窗口。通過后臺,管理員可以對運單信息進行全面管理。系統(tǒng)最大限度的實現(xiàn)了易維護和易操作。9、系統(tǒng)運行穩(wěn)定、安全可靠(三)、設計完成后,應提交設計結果及設計說明書,設計結果以光盤形式提交,設計說明以A4紙打印好提交。設計說明書應體現(xiàn)設計思想、設計過程、設計創(chuàng)意及資料來源等還說明設計結果在應用時的應用時的注意事項、局限性、適宜的應用環(huán)境條件等。設計內容網(wǎng)站設計的策劃主題:物流配送系統(tǒng)商務網(wǎng)站設計網(wǎng)站要提供對管理員信息、倉庫管理、運輸管理、配送管理、運單管理等模塊的管理。確定網(wǎng)站名稱及網(wǎng)站虛擬域名。網(wǎng)站總體設計網(wǎng)站CI設計符合規(guī)范、版面整潔樸素。網(wǎng)站以淺紫色為背景顏色及視覺效果。網(wǎng)頁基本要素設計。網(wǎng)頁布局及版面設計、欄目設計。網(wǎng)站導航圖用自己設計的圖片作為導航。網(wǎng)頁層次設計網(wǎng)站文件有效保存設計(存在“曾巖網(wǎng)站”的文件夾)網(wǎng)站分步設計主頁的設計制作·頁面設計·頁面圖片設計制作·頁面文檔設計排版·超鏈接設計·表單設計·動態(tài)圖標、文字、層的設計·其他相關信息設計次級頁面設計·頁面結構設計(框架網(wǎng)頁、共享邊框)·超鏈接及信息項表設計·與主頁協(xié)調的風格設計·次級頁面圖片、文檔的布局設計網(wǎng)站數(shù)據(jù)庫及網(wǎng)站管理設計(可選)網(wǎng)站統(tǒng)計分析計數(shù)系統(tǒng)設計(可選)相關服務器擴展功能設計設計環(huán)境要求硬件要求586以上多媒體電腦軟件環(huán)境·Windows98/2000(操作系統(tǒng))·office97/2000(字處理軟件)·Dreamweaver4.0(專業(yè)網(wǎng)頁制作工具)·Fireworks5.0(網(wǎng)頁圖像處理軟件)·Flash5.0(網(wǎng)頁圖像處理軟件)·MicrosoftVisio(繪圖工具)設計時間安排·網(wǎng)站設計總體策劃(定題)、基礎資料收集加工1周·網(wǎng)站設計制作1周·網(wǎng)站測試調整、網(wǎng)站設計說明書撰寫、提交及通過測試的網(wǎng)站1周目錄TOC\o"1-2"\u前言 1一.XXXXX策劃書 2二.網(wǎng)站功能需求設計分析 3三、網(wǎng)站概要設計 7四、網(wǎng)站詳細設計 15五、網(wǎng)站測試設計 19六、網(wǎng)站開發(fā)總結性報告 29結束語 31一.選題背景在市場競爭的激烈的時代,建立科學,規(guī)范,高效管理體系是非常重要的。隨著經濟的快速發(fā)展,對庫存的高效管理十分重要,高效的庫存管理離不開信息技術,信息技術的飛速發(fā)展也為庫存管理提供了廣闊的舞臺,采用現(xiàn)代化的手段管理庫存,可以及時準確地反映庫存狀況,保證庫存的數(shù)量保持在合理的水平,在滿足客戶的需要的同時最大限度地減少庫存占用,從而在競爭中保持優(yōu)勢。傳統(tǒng)的庫存管理靠人工完成,需要大量的人力物力,人工管理方式有許多缺點和不便的地方,易出錯,不能及時地把庫存信息反映出來,大量的文件和數(shù)據(jù)不利于查找更新和維護。利用信息技術開發(fā)信息管理系統(tǒng)對庫存進行管理,可以方便地實現(xiàn)快速查詢,入庫出庫方便,可靠性高。因此,建立庫存管理系統(tǒng),對庫存進行優(yōu)化存儲、管理,從而提高企業(yè)的科學管理水平,節(jié)省開支,使企業(yè)在競爭中立于不敗之地。二.解決方案的選擇(一)系統(tǒng)說明設計和實現(xiàn)庫存管理系統(tǒng),使庫存管理的工作系統(tǒng)化、規(guī)范化和自動化,從而達到提高管理效率的目的。1.利用計算機系統(tǒng)實現(xiàn)商品庫存管理。2.流程符合庫存管理要求。3.查詢方便,無論是按商品名稱、倉庫、區(qū)域、貨位、時間、操作員其中任一項都可以進行有效查詢。4.系統(tǒng)擴充容易,有很多地方還需要更好地完善。5.友好的用戶界面,既面向系統(tǒng)開發(fā)者,又面向用戶。(二)系統(tǒng)初步調查庫存管理需要有:產品相關信息設置,產品入庫、出庫、移庫、采購、庫存盤點、庫存查詢等功能。應有入庫信息的輸入窗口,出庫信息輸入窗口,移庫信息輸入窗口、采購信息的輸入窗口,產品相關信息設置的輸入窗口,并且界面要自然、簡便,要有充分的提示和幫助,以便于操作人員學習使用和掌握。對輸入的錯誤又有好的措施,并隨時掌握任務的進展情況,輸出的形式要易于理解,結果要正確。當然了,對于用戶來說,界面就是系統(tǒng)本身。用戶特別關心能否有效地使用軟件來解決問題,用戶對軟件功能的理解都在界面上表現(xiàn)出來。人機界面體現(xiàn)了系統(tǒng)的功能,以及操作的方便程度是否符合使用的要求與工作習慣??傊?,應使管理部門及時掌握產品庫存全面情況,并通過這樣的系統(tǒng),做到信息的規(guī)范管理,科學統(tǒng)計和快速查詢,從而減少管理方面的工作量。根據(jù)用戶提出的建議,為了開發(fā)出有效的庫存管理系統(tǒng),遵循以下原則:1.滿足用戶需要。之所以開發(fā)新系統(tǒng)是因為舊系統(tǒng)存在問題,束縛著組織的發(fā)展,不能適應用戶的需要。系統(tǒng)必須能被用戶接受,實現(xiàn)用戶的初衷。2.功能更完善。功能是否完整,是指能否覆蓋組織的主要業(yè)務管理范圍。同時,還表現(xiàn)在各部分接口是否完備,數(shù)據(jù)采集和存儲格式是否統(tǒng)一,各部分是否協(xié)調一致。3.技術更先進。正確認識各種先進技術的優(yōu)劣長短,從而根據(jù)組織的實際情況和未來得發(fā)展將其合理的運用到庫存管理系統(tǒng)的開發(fā)中去。要努力發(fā)揮其高速度、高精度、高密度的優(yōu)點,也要避免其缺乏靈活性,不便于處理意外情況的缺點。同時,不要為了一味的先進,而忽視了技術本身的成熟性。4.實現(xiàn)輔助決策。許多組織的決策任務非常復雜、耗時,而決策關系到組織的興衰。因此,所有的組織都需要能夠幫助他們做出最佳的決策支持系統(tǒng)。(三)可行性研究可行性分析研究的目的就是用最小的代價在盡可能短的時間里確定問題是否能解決,通過研究與此類似的系統(tǒng)后,我們具體從下面三方面考慮。1.經濟可行性庫存管理系統(tǒng)是一個小型的管理系統(tǒng),在開發(fā)時需要軟件開發(fā)人員花費一定的時間和精力,因此需要一定的資金。但它給企業(yè)帶來的利潤是不可估量的,節(jié)省了許多人力,物力上的開支,使庫存管理工作變繁為簡,使其更加合理化、規(guī)范化。工作效率的提高就意為著整體水平的提高,是非常值得投資的。2.操作可行性系統(tǒng)采用了可視化面向對象的工具開發(fā),其窗口、界面簡潔易懂,所以系統(tǒng)在操作上是可行的。隨著計算機知識的普及和推廣,越來越多的人掌握了計算機的基本使用方法和基本。目前,公司的管理人員已經具備了一定的計算機基礎知識和實際操作經驗。對于局域網(wǎng)、WINDOWS等環(huán)境下的軟件使用比較熟悉,對于新系統(tǒng)的開發(fā),用戶表現(xiàn)出極大的興趣和熱情,提出了各種很好的建議和要求。(四)對設計工具和相關技術的說明系統(tǒng)是采用JavaBean,Servlet,JSP開發(fā),以MyEclipse,Dreamweaver作為開發(fā)工具,以SQLServer開發(fā)數(shù)據(jù)庫,以Tomcat為服務器。系統(tǒng)開發(fā)技術(1)JSP技術介紹JSP(JavaServerPages)是由SunMicrosystems公司倡導、許多公司參與一起建立的一種技術標準。JSP技術有點類似技術,它是在傳統(tǒng)的網(wǎng)頁文件(*.htm,*.html)中插入程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。JSP技術的強勢:=1\*GB3①一次編寫,到處運行。在這一點上Java比更出色,除了系統(tǒng)之外,代碼不用做任何更改。=2\*GB3②系統(tǒng)的多平臺支持。基本上可以在所有平臺上的任意環(huán)境中開發(fā),在任意環(huán)境中進行系統(tǒng)部署,在任意環(huán)境中擴展。相比ASP/PHP的局限性是顯而易見的。=3\*GB3③強大的可伸縮性。從只有一個小的文件就可以運行Servlet/JSP,到由多臺服務器進行集群和負載均衡,到多臺Application進行事務處理,消息處理,一臺服務器到無數(shù)臺服務器,Java顯示了一個巨大的生命力。=4\*GB3④多樣化和功能強大的開發(fā)工具支持。這一點與ASP很像,Java已經有了許多非常優(yōu)秀的開發(fā)工具,而且許多可以免費得到,并且其中許多已經可以順利的運行于多種平臺之下。(2)JavaBean技術介紹JavaBean是一種寫成的可重用組件。用戶可以使用JavaBean將功能、處理、值、數(shù)據(jù)庫訪問和其他任何可以用java代碼創(chuàng)造的對象進行打包,并且其他的開發(fā)者可以通過內部的JSP頁面、Servlet、其他JavaBean、applet程序或者應用來使用這些對象。用戶可以認為JavaBean提供了一種隨時隨地的復制和粘貼的功能,而不用關心任何改變。(3)Servlet技術介紹Servlet是一種獨立于平臺和協(xié)議的服務器端的應用程序,可以生成動態(tài)的頁面。它擔當Web瀏覽器或其他客戶程序發(fā)出請求,與HTTP服務器上的或應用程序之間的中間層。Servlet是位于Web服務器內部的服務器端的Java應用程序,與傳統(tǒng)的從命令行啟動的Java應用程序不同,Servlet由Web服務器進行加載,該Web服務器必須包含支持Servlet的Java。系統(tǒng)開發(fā)環(huán)境和相關開發(fā)工具(1)Tomcat介紹Tomcat服務器是一個免費的開放源代碼的Web應用服務器。Tomcat是Apache軟件基金會(ApacheSoftwareFoundation)的Jakarta項目中的一個核心項目,由Apache、Sun和其他一些公司及個人共同開發(fā)而成。由于有了Sun的參與和支持,最新的Servlet和JSP規(guī)范總是能在Tomcat中得到體現(xiàn),Tomcat5支持最新的Servlet2.4和JSP2.0規(guī)范。因為Tomcat技術先進、性能穩(wěn)定,而且免費,因而深受Java愛好者的喜愛并得到了部分軟件開發(fā)商的認可,成為目前比較流行的Web應用服務器。Tomcat是一個小型的輕量級應用服務器,在中小型系統(tǒng)和并發(fā)訪問用戶不是很多的場合下被普遍使用,是開發(fā)和調試JSP程序的首選。Tomcat和IIS、Apache等Web服務器一樣,具有處理HTML頁面的功能,另外它還是一個Servlet和JSP容器,獨立的Servlet容器是Tomcat的默認模式。不過,Tomcat處理靜態(tài)HTML的能力不如Apache服務器。(2)MyEclipse介紹MyEclipse企業(yè)級工作平臺是對EclipseIDE的擴展,利用它我們可以在數(shù)據(jù)庫和J2EE的開發(fā)、發(fā)布,以及應用程序服務器的整合方面極大的提高工作效率。它是功能豐富的J2EE集成開發(fā)環(huán)境,包括了完備的編碼、調試、測試和發(fā)布功能,完整支持HTML,CSS,JavaScript,SQL,,Struts,Hibernate等。(3)Dreamweaver介紹Dreamweaver是公司開發(fā)的集網(wǎng)頁制作和管理網(wǎng)站于一身的所見即所得網(wǎng)頁編輯器,它是第一套針對專業(yè)網(wǎng)頁設計師特別發(fā)展的視覺化網(wǎng)頁開發(fā)工具,利用它可以輕而易舉地制作出跨越平臺限制和跨越瀏覽器限制的充滿動感的網(wǎng)頁。系統(tǒng)開發(fā)中,MyEclipse負責后臺數(shù)據(jù)、業(yè)務邏輯的開發(fā),而Dreamweaver負責前臺網(wǎng)頁的開發(fā)及美化。三、系統(tǒng)設計(一)系統(tǒng)設計原則(1)簡單性:在達到預定的目標、具備所需要的功能前提下,系統(tǒng)應盡量簡單,這樣可減少處理費用,提高系統(tǒng)效益,便于實現(xiàn)和管理。(2)靈活性和適應性:以便適應外界的環(huán)境變化??勺冃允乾F(xiàn)代化企業(yè)的特點之一,是指其對外界環(huán)境的變化的適應能力。作為企業(yè)的管理信息系統(tǒng)也必須具有相當?shù)撵`活性,以便適應外界環(huán)境的不斷變化,而且系統(tǒng)本身也需不斷修改和改善。因此,在這里系統(tǒng)的可變性是指允許系統(tǒng)被修改和維護的難易程度。一個可變性好的系統(tǒng),各個部分獨立性強,容易進行變動,從而可提高系統(tǒng)的性能,不斷滿足對系統(tǒng)目標的變化要求。(3)一致性和完整性:一致性是指系統(tǒng)中信息編碼、采集、信息通信要具備一致性設計規(guī)范應標準;完整性是指系統(tǒng)作為一個統(tǒng)一的整體而存在,系統(tǒng)功能應盡量完整。(4)可靠性:系統(tǒng)的可靠性指系統(tǒng)硬件和軟件在運行過程中抵抗異常情況的干擾及保證系統(tǒng)正常工作的能力。衡量系統(tǒng)可靠性的指標是平均故障間隔時間和平均維護時間。前者指平均的前后兩次發(fā)生故障的時間,反映了系統(tǒng)安全運行時間,后者指故障后平均每次所用的修復時間,反映系統(tǒng)可維護性的好壞。只有可靠的系統(tǒng),才能保證系統(tǒng)的質量并得到用戶的信任,否則就是沒有使用價值。(5)經濟性:系統(tǒng)的經濟性是指系統(tǒng)的收益應大于系統(tǒng)支出的總費用。系統(tǒng)支出費用包括系統(tǒng)開發(fā)所需投資的費用與系統(tǒng)運行維護費用之和;系統(tǒng)收益除有貨幣指標外,還有非貨幣指標。系統(tǒng)應該給用戶帶來相應的經濟效益。系統(tǒng)的投資和經營費用應當?shù)玫窖a償。需要指出的是,這種補償有時是間接的或不能定量計算的。(二)總體設計通過對庫存信息流程的詳細調查分析,弄清了庫存管理工作的業(yè)務流程和管理功能,符號定義如下:圖3.1系統(tǒng)符號定義圖系統(tǒng)業(yè)務流程圖如下:圖3.2基礎數(shù)據(jù)管理圖圖3.3庫存管理圖(三)系統(tǒng)數(shù)據(jù)字典的創(chuàng)建為了對數(shù)據(jù)流程圖中的各個元素做出詳細的說明,有必要建立數(shù)據(jù)字典。數(shù)據(jù)字典的內容主要是對數(shù)據(jù)流程圖中的數(shù)據(jù)項、數(shù)據(jù)結構、數(shù)據(jù)流、處理邏輯、數(shù)據(jù)存儲和外部實體等六個方面進行具體的定義。表3.1數(shù)據(jù)項的定義數(shù)據(jù)項編號數(shù)據(jù)項名稱簡述類型及其寬度U-01用戶編號用戶的編碼數(shù)值型U-02用戶名用戶的名稱字符型,20位U-03用戶密碼用戶登錄時的密碼字符型,16位U-04用戶級別用戶使用權限數(shù)值型U-05用戶Email用戶的電子郵件字符型,20位U-06用戶手機用戶的手機號碼字符型,11位W-01倉庫編號倉庫的編號數(shù)值型W-02倉庫名倉庫的名稱字符型,50位W-03最大區(qū)域數(shù)允許的最大區(qū)域數(shù)數(shù)值型W-04地址倉庫所在的地址字符型,100位A-01區(qū)域編號倉庫的編號數(shù)值型A-02區(qū)域名倉庫的名稱字符型,50位A-03最大貨位數(shù)允許的最大貨位數(shù)數(shù)值型A-04所在倉庫區(qū)域所在的倉庫數(shù)值型S-01貨位編號貨位的編號數(shù)值型S-02貨位名貨位的名稱字符型,50位S-03最大貨物數(shù)允許的最大貨物數(shù)數(shù)值型S-04所在區(qū)域貨位所在的區(qū)域數(shù)值型ST-01類別編號類別的編號數(shù)值型ST-02類別名類別的名稱字符型,50位G-01貨物編號貨物的編號數(shù)值型G-02貨物名貨物的名稱字符型,50位G-03類別貨物所屬的類別數(shù)值型G-04最大庫存允許存儲的最大貨物數(shù)數(shù)值型G-05最小庫存允許存儲的最小貨物數(shù)數(shù)值型G-06價格貨物的價格數(shù)值型表3.2數(shù)據(jù)結構的定義數(shù)據(jù)結構編號數(shù)據(jù)結構名稱簡述數(shù)據(jù)結構組成DS-01用戶表記錄用戶信息U-01+U-02+U-03+U-04DS-02倉庫表記錄倉庫信息W-01+W-02+W-03+W-04DS-03區(qū)域表記錄區(qū)域信息A-01+A-02+A-03+A-04DS-04貨位表記錄貨位信息W-01+W-02+W-03+W-04DS-05類別表記錄類別信息ST-01+ST-02+ST-03+ST-04DS-06貨物表記錄貨物信息G-01+G-02+G-03+G-04+G-05+G-06表3.3數(shù)據(jù)流的定義數(shù)據(jù)流編號數(shù)據(jù)流名稱簡述數(shù)據(jù)流來源數(shù)據(jù)流去向數(shù)據(jù)流組成D-01入庫單用戶入庫填寫的單據(jù)用戶入庫管理模塊商品名稱,數(shù)量,倉庫,區(qū)域,貨位,備注D-02出庫單用戶出庫時填寫的單據(jù)用戶出庫管理模塊商品名稱,數(shù)量,倉庫,區(qū)域,貨位,備注D-03移庫單用戶移庫時填寫的單據(jù)用戶移庫管理模塊商品名稱,數(shù)量,移入倉庫,移入?yún)^(qū)域,移入貨位,移出倉庫,移出區(qū)域,移出貨位,備注D-04采購單用戶采購時填寫的單據(jù)用戶采購管理模塊商品名稱,數(shù)量,備注表3.4處理邏輯的定義處理邏輯編號處理邏輯名稱簡述輸入的數(shù)據(jù)流處理輸出的數(shù)據(jù)流P1入庫處理向入庫表中添加信息,更新庫存信息入庫單查收貨物要入庫的貨物,判斷庫存量是否滿足入庫量,登記入庫信息,更新庫存信息入庫單P2出庫處理向出庫表中添加信息,更新庫存信息出庫單查收貨物要出庫的貨物,判斷出庫后庫存是否低于安全庫存,登記出庫信息,更新庫存信息出庫單P3移庫處理向移庫表中添加信息,更新庫存信息移庫單查收貨物要移庫的貨物,登記移庫信息,更新庫存信息移庫單P4采購處理向采購表中添加信息,更新庫存信息采購單查收貨物要采購的貨物,登記采購信息,更新庫存信息采購單表3.5數(shù)據(jù)存儲的定義數(shù)據(jù)存儲的編號數(shù)據(jù)存儲的名稱簡述數(shù)據(jù)存儲的組成關鍵字F1用戶表存儲用戶信息用戶編號,用戶名,密碼,級別,電子郵件,用戶手機用戶編號F2倉庫表存儲倉庫信息倉庫編號,倉庫名,最大區(qū)域數(shù),地址倉庫編號F3區(qū)域表存儲區(qū)域信息區(qū)域編號,區(qū)域名,最大貨位數(shù),倉庫區(qū)域編號F4貨位表存儲貨位信息貨位編號,貨位名,最大貨物數(shù),區(qū)域貨位編號F5類別表存儲類別信息類別編號,類別名類別編號F6貨物表存儲貨物信息貨物編號,貨物名,類別,最大庫存,最小庫存,價格貨物編號F7庫存表存儲庫存信息庫存編號,貨物名,數(shù)量,倉庫,區(qū)域,貨位庫存編號F8入出庫表存儲入出庫信息入出庫編號,貨物名,倉庫,區(qū)域,貨位,操作員,數(shù)量,操作時間,類型,備注入出庫編號F9移庫表存儲移庫信息移庫編號,貨物名,操作員,數(shù)量,操作時間,移入倉庫,移入?yún)^(qū)域,移入貨位,移出倉庫,移出區(qū)域,移出貨位移庫編號F10采購表存儲采購信息采購編號,貨物名,數(shù)量,操作時間,操作員,備注采購編號(四)系統(tǒng)功能模塊劃分根據(jù)用戶操作需求,將系統(tǒng)劃分如下,并對其模塊的劃分和功能進行描述。1.基礎數(shù)據(jù)管理(1)倉庫信息管理(2)區(qū)域信息管理(3)貨位信息管理(4)類別信息管理(5)用戶信息管理(6)貨物信息管理2.庫存管理(1)入庫管理(2)出庫管理(3)移庫管理(4)庫存盤點管理(5)庫存統(tǒng)計管理(6)采購管理整個系統(tǒng)的模塊結構如圖所示。圖3.4系統(tǒng)的功能模塊圖(五)系統(tǒng)功能模塊明細系統(tǒng)共包括2大功能模塊,12個小功能模塊1.基礎數(shù)據(jù)管理主要完成基本信息(倉庫、區(qū)域、貨位、類別、貨物、用戶)的維護工作,包括添加、修改、刪除、瀏覽等功能。2.庫存管理(1)入庫管理。完成貨物入庫的管理,包括填寫入庫單,瀏覽入庫信息等功能。貨物入庫時需要檢查入庫后貨物庫存是否超過貨物最大庫存,超出時,返回錯誤提示信息,禁止貨物入庫。貨物入庫后更新庫存信息。(2)出庫管理。完成貨物出庫的管理,包括填寫出庫單,瀏覽出庫信息等功能。貨物出庫時需要檢查出庫后貨物庫存是否低于貨物安全庫存,低于時,返回錯誤提示信息,禁止貨物出庫。貨物出庫后更新庫存信息。(3)移庫管理。完成貨物移庫的管理,包括填寫移庫單,瀏覽移庫信息等功能。貨物移庫后更新庫存信息。(4)庫存盤點管理。完成庫存盤點的管理,包括瀏覽、查找?guī)齑嫘畔ⅲ聨齑鏀?shù)目等功能,保證庫存信息與實際保持一致,還可以通過倉庫、區(qū)域、貨位單條件或多條件瀏覽貨物庫存信息。(5)庫存統(tǒng)計管理??梢詫齑嫘畔ⅰ⑷霂?、出庫、采購操作進行詳細的查詢。查詢條件包括按倉庫、區(qū)域、貨位查詢,按時間查詢,按操作員查詢。四、數(shù)據(jù)庫設計(一)數(shù)據(jù)庫設計概述1.數(shù)據(jù)庫概念結構設計這一階段是在需求分析的基礎上,設計出能夠滿足客戶需求的各種實體,以及他們之間的關系,為后面的邏輯設計打下基礎。本例的實體有:入庫實體、出庫實體、移庫實體、采購實體。庫存管理系統(tǒng)的局部E-R視圖:圖4.1系統(tǒng)局部E-R圖庫存管理系統(tǒng)的集成E-R視圖:圖4.2系統(tǒng)集成E-R圖2.數(shù)據(jù)庫邏輯結構設計現(xiàn)在需要將上面的數(shù)據(jù)庫概念結構設計轉化為SQLServer2000所支持的實際數(shù)據(jù)類型,也就是數(shù)據(jù)庫邏輯結構。在上面的實體和實體關系的基礎上,形成數(shù)據(jù)庫的表格和個表格之間的關系。本系統(tǒng)的各個表格的設計結果如下:表4.1用戶表編號字段名稱數(shù)據(jù)結構說明1useridInt用戶編號2usernameVarchar(20)用戶名稱3passwordVarchar(16)用戶密碼4gradeInt用戶級別,1—超級用戶,2—管理員,3-普通用戶5emailVarvhar(20)電子郵件6mobileVarchar(11)手機號碼表4.2倉庫表編號字段名稱數(shù)據(jù)結構說明1wareidInt倉庫編號2warenameVarchar(50)倉庫名稱3maxareaInt最大區(qū)域數(shù)4addressVarchar(100)地址表4.3區(qū)域表編號字段名稱數(shù)據(jù)結構說明1areaidInt區(qū)域編號2areanameVarchar(50)區(qū)域名稱3wareidInt所在倉庫4maxspaceInt最大貨位數(shù)表4.4貨位表編號字段名稱數(shù)據(jù)結構說明1spaceidInt貨位編號2spacenameVarchar(50)貨位名稱3areaidInt所在區(qū)域4maxgoodsInt最大貨物數(shù)表4.5類別表編號字段名稱數(shù)據(jù)結構說明1sortidInt類別編號2sortnameVarchar(50)類別名稱表4.6貨物表編號字段名稱數(shù)據(jù)結構說明1goodsidInt貨物編號2goodsnameVarchar(20)貨物名稱3sortidInt所屬類別4maxnumberInt最大庫存5minnumberInt最小庫存6priceInt價格表4.7庫存表編號字段名稱數(shù)據(jù)結構說明1stockidInt庫存編號2goodsidInt貨物名稱3numberInt數(shù)量4wareidInt所屬倉庫5areaidInt所屬區(qū)域6spaceidInt所屬貨位表4.8入出庫表編號字段名稱數(shù)據(jù)結構說明1inventoryidInt入出庫編號2goodsidInt貨物名稱3wareidInt所在倉庫4areaidInt所在區(qū)域5spaceidInt所在貨位6usernameVarchar(20)操作員7numberInt入出庫數(shù)量8modifytimedatetime入出庫時間9typeVarchar(10)入出庫類型10remarkVarchar(500)備注表4.9移出庫表編號字段名稱數(shù)據(jù)結構說明1transferidInt移庫編號2goodsidInt貨物名稱3usernameVarchar(20)操作員4numberInt移庫數(shù)量5transtimedatetime移庫時間6inputwareidInt移入倉庫7inputareaidInt移入?yún)^(qū)域8inputspaceidInt移入貨位9outputwareidInt移出倉庫10outputareaidInt移出區(qū)域11outputspaceidInt移出貨位表4.10采購表編號字段名稱數(shù)據(jù)結構說明1purchaseidInt采購編號2goodsidInt貨物名稱3numberInt采購數(shù)量4purtimedatetime采購時間5usernameVarchar(20)操作員6remarkVarchar(500)備注表4.11系統(tǒng)表編號字段名稱數(shù)據(jù)結構說明1wareinitialInt倉庫是否初始化(0-否,1-是)2areainitialInt區(qū)域是否初始化(0-否,1-是)3spaceinitialInt貨位是否初始化(0-否,1-是)4sortinitialInt類別是否初始化(0-否,1-是)5goodsinitialInt貨物是否初始化五、詳細設計(一)引言為使用本系統(tǒng)的用戶提供完善的庫存管理服務,以及精確的庫存查詢服務,為企業(yè)管理者提供實時庫存信息,幫助企業(yè)決策者了解庫存狀態(tài),輔助做出合理的決策。該部分所有業(yè)務邏輯代碼詳見附錄Ⅱ。(二)系統(tǒng)程序設計1.用戶登錄設計說明該程序檢查用戶登錄信息是否合法,合法用戶的信息會被保存到Session中,如果未登錄用戶想使用系統(tǒng)其它功能都會被拒絕。該程序的設計可有效避免SQL注入漏洞。如圖5.1為用戶登陸界面,用戶登錄時要求用戶名長度在20個字符以內,密碼長度為6-16個字符圖5.1系統(tǒng)登錄界面如圖5.2所示為用戶登錄后界面。圖5.2用戶管理主界面該功能流程邏輯圖如下所示:圖5.3用戶管理流程邏輯圖LoginServlet得到用戶提交的數(shù)據(jù)username,password,然后調用UserProcess類的loginCheck(Stringu,Stringp)方法對數(shù)據(jù)進行檢查。檢查方法如下:(1)首先檢查用戶名為username時的密碼(selecttop1passwordfromuserswhereusername='"+u+"'"),若不存在,表明不存在該用戶,返回用戶名錯誤提示信息。(2)若存在,檢查username的密碼與password是否相等(p.equals(rs.getString(1))),若相等,登錄成功,跳轉到用戶管理界面;否則,返回密碼錯誤提示信息。該算法有效避免了SQL注入漏洞。因為如果采用以下SQL查詢語句:selecttop1*fromuserswhereusername='"+u+"'andpassword='"+p+"'時,用戶在登錄時隨意輸入用戶名,而輸入以下密碼:'or1='1就可以成功登錄到系統(tǒng)。2.實體添加設計說明該程序功能是添加實體到數(shù)據(jù)庫,以倉庫添加為實例,其他實體的添加過程與倉庫類似,不在一一贅述。如圖5.4為倉庫添加界面,添加倉庫時要求倉庫名長度在50個字符以內,地址長度為100個字符以內。圖5.4添加倉庫界面如圖5.5所示為成功添加倉庫后界面。圖中第一條數(shù)據(jù)即為剛剛添加數(shù)據(jù)。圖5.5成功添加倉庫界面該功能流程邏輯圖為:圖5.6添加倉庫流程邏輯圖WareServlet得到用戶提交的數(shù)據(jù)warename,maxarea,address,然后調用WareProcess類的addWare(WareBeanwb)方法將數(shù)據(jù)添加到數(shù)據(jù)庫,SQL語句如下:Stringsql="insertintowarehousevalues('"+wb.getWarename()+"',"+wb.getMaxarea()+",'"+wb.getAddress()+"')";3.分頁瀏覽設計說明該程序功能是添加實體到數(shù)據(jù)庫,以倉庫添加為實例,其他實體的添加過程與倉庫類似,不在一一贅述。如圖5.7為倉庫分頁瀏覽界面圖5.7倉庫分頁瀏覽界面1如圖5.8所示為點擊下一頁后倉庫分頁瀏覽界面。圖5.8倉庫分頁瀏覽界面2 該算法有四個主要的參數(shù),pageNo代表當前的頁數(shù),pageSize代表每頁顯示幾行記錄,pageCount代表共有多少頁,rowCount代表共有多少行記錄。其中rowCount由以下SQL語句求出:selectcount(*)fromwarehouse;pageSize由程序員自己設置,pageCount的值可由以下方法求出:如果rowCount%pageSize=0,pageCount=rowCount/ageSize,否則pageCount=rowCount/ageSize+1;pageNo的值是通過參數(shù)傳遞過來的,那么上述四個參數(shù)確定后,第pageNo頁的記錄通過以下的SQL語句求的:Stringsql1="selecttop”+pageSize+"*fromwarehousewherewareidnotin(selecttop"+(pageNo-1)*pageSize+"wareidfromwarehouse)orderbywareiddesc";4.實體修改設計說明該程序功能是修改實體的信息,然后保存到數(shù)據(jù)庫,以倉庫修改為實例,其他實體的修改過程與倉庫類似,不在一一贅述。如圖5.9為倉庫修改界面,修改倉庫時要求倉庫名長度在50個字符以內,地址長度為100個字符以內。圖5.9添加倉庫界面如圖5.10所示為成功修改倉庫后界面。圖5.10成功修改倉庫界面該功能流程邏輯圖為:圖5.11成功修改倉庫流程邏輯圖WareServlet得到用戶提交的數(shù)據(jù)wareid,warename,maxarea,address,然后調用WareProcess類的modifyWare(WareBeanwb)方法修改倉庫信息,然后將數(shù)據(jù)保存到數(shù)據(jù)庫,SQL語句如下:Stringsql="updatewarehousesetwarename='"+wb.getWarename()+"',maxarea="+wb.getMaxarea()+",address='"+wb.getAddress()+"'wherewareid="+wb.getWareid();5.實體刪除設計說明該程序功能是刪除實體的信息,以倉庫刪除為實例,其他實體的刪除過程與倉庫類似,不在一一贅述。如圖5.12為倉庫刪除界面圖5.12倉庫刪除界面如圖5.13所示為成功刪除倉庫后界面。圖5.13成功刪除倉庫界面該功能流程邏輯圖為:圖5.14刪除倉庫業(yè)務邏輯流程圖WareServlet得到用戶提交的數(shù)據(jù)wareid,然后調用WareProcess類的deleteWare(intwareid)方法刪除倉庫信息,SQL語句如下:Stringsql="deletefromwarehousewherewareid="+wareid;6.入庫設計說明該程序功能是實現(xiàn)貨物的入庫。如圖5.15、5.16所示為入庫界面圖5.15入庫界面1圖5.16入庫界面2如圖5.17所示為成功入庫后界面。圖5.17成功入庫界面該功能流程邏輯圖為:圖5.18入庫流程邏輯圖InventoryServlet得到用戶提交的數(shù)據(jù),然后調用InventoryProcess類的addInventory(InventoryBeanib)方法添加入庫信息,同時更新庫存信息,更新庫存信息的SQL語句如下:Stringsql="updatestocksetnumber=number+"+number+"wheregoodsid="+gb.getGoodsid()+"andwareid="+wb.getWareid()+"andareaid="+ab.getAreaid()+"andspaceid="+sb.getSpaceid();7.移庫設計說明該程序功能是實現(xiàn)貨物的移庫。如圖5.19所示為移庫界面圖5.19移庫界面如圖5.20所示為成功移庫后界面。圖5.20成功移庫界面該功能流程邏輯圖為:圖5.21移庫流程邏輯圖TransferServlet得到用戶提交的數(shù)據(jù),然后調用TransferProcess類的addTransfer(TransferBeantb)方法添加移庫信息,同時更新庫存信息:sp.putin(gb,inputware,inputarea,inputspace,number);sp.putout(gb,outputware,outputarea,outputspace,number);8.采購設計說明該程序功能是實現(xiàn)貨物的采購。如圖5.22所示為采購界面圖5.22采購界面如圖5.23所示為成功采購后界面。圖5.23成功采購界面該功能流程邏輯圖為:圖5.24采購流程邏輯圖PurchaseServlet得到用戶提交的數(shù)據(jù),然后調用PurchaseProcess類的addPurchase(PurchaseBeanpb)方法添加采購信息,同時更新庫存信息。六、系統(tǒng)安裝與調試本系統(tǒng)順利運行需要以下安裝環(huán)境:jdk1.6.0以上,Tomcat6.0以上,SQLServer2000以上以及SP4升級包。開發(fā)環(huán)境為:(一)系統(tǒng)安裝1.jdk安裝首先下載jdk安裝包,地址如下:;下載完成后,雙擊安裝文件,按提示完成安裝。2.Tomcat安裝首先下載Tomcat安裝包,地址如下:下載完成后,雙擊安裝文件,按提示完成安裝。安裝完成后,進入Tomcat主目錄下Tomcat6.0\bin,雙擊tomcat6.exe,啟動tomcat;新建IE窗口,在地址欄中輸入如下地址:,如果頁面訪問成功,則Tomcat安裝成功。3.系統(tǒng)安裝打開SQLServer查詢分析器,輸入數(shù)據(jù)庫建表語句(建附錄Ⅰ),點擊運行,完成數(shù)據(jù)庫的建立。將本系統(tǒng)文件夾拷貝到Tomcat主目錄下Tomcat6.0\webapps目錄下,在IE窗口地址欄中輸入,如果訪問成功則表示本系統(tǒng)安裝成功。(二)系統(tǒng)調試錯誤1:java.lang.NumberFormatException:Forinputstring:""解決方法:檢查輸入的數(shù)據(jù)是否為空。錯誤2:java.sql.SQLException:Errorestablishingsocket.解決方法:檢查是否SQLServer服務器是否啟動。錯誤3:java.sql.SQLException:違反了UNIQUEKEY約束.解決方法:輸入的數(shù)據(jù)項與數(shù)據(jù)庫中已有的數(shù)據(jù)重復,而該數(shù)據(jù)項對應的數(shù)據(jù)庫字段設定了UNIQUE約束,即該字段數(shù)據(jù)不允許重復,修改輸入數(shù)據(jù)即可解決。錯誤4:java.sql.SQLException:DELETE語句與COLUMNREFERENCE約束沖突。解決方法:刪除數(shù)據(jù)時違反了數(shù)據(jù)庫的外鍵約束,即刪除的數(shù)據(jù)的字段是其他表的外鍵。首先刪除與該記錄有關的記錄,再刪除該記錄。結束語本系統(tǒng)的設計與實現(xiàn)歷時兩個多月的時間,目前基本的功能均已實現(xiàn)。本系統(tǒng)的主要特點有以下幾個方面:(1)由于本系統(tǒng)采用的設計語言是基于java的,所以本系統(tǒng)能夠跨平臺運行,即在windows,unix,linux等不同的操作系統(tǒng)環(huán)境下均可運行。(2)由于本系統(tǒng)的設計遵循MVC的設計模式,所以代碼可重用性高,低耦合性,代碼維護方便。(3)系統(tǒng)查錯能力強,而且對于用戶的操作錯誤都有友好而詳細的提示。(4)界面設計簡潔,以淺綠色為主色調,操作方便、簡潔。但是,本系統(tǒng)設計依然不夠完善,有許多不足之處。主要有以下幾點:(1)前期系統(tǒng)調研不足,系統(tǒng)功能還不夠完善。(2)系統(tǒng)的可擴展性不佳,往往系統(tǒng)的一小部分修改會牽扯到許多地方的改動,工作量大且容易出錯。(3)數(shù)據(jù)庫設計不夠合理,數(shù)據(jù)冗余多,安全性不夠。綜合以上不足,系統(tǒng)的仍需不斷改進。包括進行更加詳細的系統(tǒng)調研,了解用戶的真正需求,不斷完善系統(tǒng)的功能,增加系統(tǒng)的實用性。技術方面可以考慮目前比較流行的SSH框架,提高系統(tǒng)的可擴展性。參考文獻[1]王斌斌,吳孝麗.庫存管理系統(tǒng)UML設計[J].平頂山工學院學報,2008,(03).[2]陳瑞斌,南理勇.基于Web服務的倉庫管理系統(tǒng)設計[J].信息服務報,2008,(02).[3]杜來紅.基于Web的物料庫存管理系統(tǒng)的研究[J].物流技術,2006,(8).[4]朱士高,朱軍,朱彩霞.基于WEB的企業(yè)進銷存管理系統(tǒng)的設計[J].淮陰工學院學報,2007,(5).[5]HuangSC,HuangYM,ShiehSM.Vibrationandstabilityofarotatingshaftcontainingatransersecrack[J].JSoundandVibration,1993,162(3):387-401.[6]汪旭敏,陳曉川,楊建國等.基于WEB的庫存管理系統(tǒng)的設計和實現(xiàn)[J].機械設計與制造,2008,(1).[7]俞文躍,張長勝.基于WebService三層體系結構的庫存管理系統(tǒng)的開發(fā)[J].福建電腦報,2008,(12).[8]喬榮麗,高淑芝,孫水亮.基于MVC模式的物資供應管理信息系統(tǒng)的設計[J].化工之友,2007,(15).[9]張興旺,趙嘉.基于JSP的物流管理系統(tǒng)的設計與實現(xiàn)[J].物流工程,2007,(7).[10]馬穎,張勞模.基于J2EE平臺的庫存管理系統(tǒng)設計與實現(xiàn)[J].鄭州鐵路職業(yè)技術學院學報,2006,18(4).[11]許維.J2EE架構下的物流信息系統(tǒng)設計[J].中國管理信息化,2006,9(5).[12]Manuel.DRossetti,MehmetMiman,VijithVarghese.Object-OrientedFrameworkforSimulatingMulti-EchelonInventorySystems[J],2006.[13]薛小鋒.企業(yè)采購管理系統(tǒng)的設計與實現(xiàn)[J].數(shù)據(jù)庫及信息管理,2007,(06).[14]許跟勇,周炳海.基于RFID的第三方物流倉儲管理系統(tǒng)設計應用[J].物流科技,2008,(11).[15]陳瀟.第三方物流管理信息系統(tǒng)設計——庫存管理信息系統(tǒng)[J].山西財經大學學報,2008,11(1).致謝經過長達三個月的努力我的畢業(yè)論文終于完成了。在這期間,指導教師xxx老師給了我細致、專業(yè)的指點以及耐心的輔導,在此深表敬意和感謝!同時,在我完成畢業(yè)論文的過程中,教研室的老師、輔導員老師以及同學們也給予了我莫大的幫助,對他們的關心、幫助我深表感謝!我更要感謝大學四年來所有教過我的老師,沒有他們深厚的專業(yè)理論知識和經驗的授予,就沒有我今天的成績。附錄Ⅰ數(shù)據(jù)庫建表語句createdatabaseinventory;useinventory;createtableusers(useridintprimarykeyidentity(1,1),usernamevarchar(20)unique,passwordvarchar(12),gradeint);insertintousers(username,password,grade)values('sa','sa',1);select*fromusers;createtablewarehouse(wareidintprimarykeyidentity(1,1),warenamevarchar(50)unique);select*fromwarehouse;createtablearea(areaidintprimarykeyidentity(1,1),areanamevarchar(50)unique,wareidint,foreignkey(wareid)referenceswarehouse(wareid));select*fromarea;createtablespace(spaceidintprimarykeyidentity(1,1),spacenamevarchar(50)unique,areaidint,foreignkey(areaid)referencesarea(areaid));select*fromspace;createtablesort(sortidintprimarykeyidentity(1,1),sortnamevarchar(50)unique);select*fromsort;createtablegoods(goodsidintprimarykeyidentity(1,1),goodsnamevarchar(50),priceint,numberint,sortidint,wareidint,areaidint,spaceidint,maxnumberint,minnumberint,foreignkey(sortid)referencessort(sortid),foreignkey(wareid)referenceswarehouse(wareid),foreignkey(areaid)referencesarea(areaid),foreignkey(spaceid)referencesspace(spaceid));select*fromgoods;createtablestock(stockidintprimarykeyidentity(1,1),goodsidint,usernamevarchar(20),numberint,modifytimedatetime,typevarchar(10),auditbit,remarkvarchar(500)foreignkey(username)referencesusers(username),foreignkey(goodsid)referencesgoods(goodsid));select*fromstock;createtabletransfer(transferidintprimarykeyidentity(1,1),goodsidint,usernamevarchar(20),numberint,transtimedatetime,inputwareint,inputareaint,inputspaceint,outputwareint,outputareaint,outputspaceint,foreignkey(username)referencesusers(username),foreignkey(goodsid)referencesgoods(goodsid),foreignkey(inputware)referenceswarehouse(wareid),foreignkey(inputarea)referencesarea(areaid),foreignkey(inputspace)referencesspace(spaceid),foreignkey(outputware)referenceswarehouse(wareid),foreignkey(outputarea)referencesarea(areaid),foreignkey(outputspace)referencesspace(spaceid));select*fromtransfer;createtablesystem(wareinitialbit,areainitialbit,spaceinitialbit,sortinitialbit,goodsinitialbit);insertintosystemvalues(0,0,0,0,0);select*fromsystem;附錄Ⅱ系統(tǒng)主要業(yè)務邏輯代碼登錄功能主要業(yè)務邏輯代碼:publicStringloginCheck(Stringu,Stringp){ Stringstr=""; try{ conn=newConnectionProcess().getConn(); Stringsql="selecttop1passwordfromuserswhereusername='"+u+"'"; pstmt=conn.prepareStatement(sql); rs=pstmt.executeQuery(); if(rs.next()){ if(!p.equals(rs.getString(1))){ str="密碼錯誤!"; } }else{ str="用戶名錯誤!"; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnstr;}添加功能業(yè)務邏輯代碼:publicbooleanaddWare(WareBeanwb){ booleanb=false; try{ conn=newConnectionProcess().getConn(); Stringsql="insertintowarehousevalues('"+wb.getWarename() +"',"+wb.getMaxarea()+",'"+wb.getAddress()+"')"; pstmt=conn.prepareStatement(sql); inti=pstmt.executeUpdate(); if(i>0){ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb;}分頁瀏覽功能業(yè)務邏輯代碼:publicArrayList<WareBean>getWares(intpageNo,intpageSize){ ArrayList<WareBean>al=newArrayList<WareBean>(); introwCount=0; try{ conn=newConnectionProcess().getConn(); Stringsql="selectcount(*)fromwarehouse"; pstmt=conn.prepareStatement(sql); rs=pstmt.executeQuery(); if(rs.next()){ rowCount=rs.getInt(1); } if(rowCount%pageSize==0){ pageCount=rowCount/pageSize; }else{ pageCount=rowCount/pageSize+1; } Stringsql1="selecttop"+pageSize+ "*fromwarehousewherewareidnotin(selecttop"+ (pageNo-1)*pageSize+"wareidfromwarehouse)orderbywareiddesc"; pstmt=conn.prepareStatement(sql1); rs=pstmt.executeQuery(); while(rs.next()){ WareBeanwb=newWareBean(); wb.setWareid(rs.getInt(1)); wb.setWarename(rs.getString(2)); wb.setMaxarea(rs.getInt(3)); wb.setAddress(rs.getString(4)); al.add(wb); } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnal;}修改功能業(yè)務邏輯代碼:publicbooleanmodifyWare(WareBeanwb){ booleanb=false; try{ conn=newConnectionProcess().getConn(); Stringsql="updatewarehousesetwarename='"+wb.getWarename() +"',maxarea="+wb.getMaxarea() +",address='"+wb.getAddress() +"'wherewareid="+wb.getWareid(); pstmt=conn.prepareStatement(sql); inti=pstmt.executeUpdate(); if(i>0){ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb;}刪除功能業(yè)務邏輯代碼:publicbooleandeleteWare(intwareid){ booleanb=false; try{ conn=newConnectionProcess().getConn(); Stringsql="deletefromwarehousewherewareid="+wareid; pstmt=conn.prepareStatement(sql); inti=pstmt.executeUpdate(); if(i>0){ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb;}添加入出庫記錄業(yè)務邏輯代碼:publicbooleanaddInventory(InventoryBeanib){ booleanb=false; SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Stringmodifytime=sdf.format(ib.getModifytime()); try{ conn=newConnectionProcess().getConn(); Stringsql="insertintoinventoryvalues("+ ib.getGoods().getGoodsid()+","+ ib.getWare().getWareid()+","+ ib.getArea().getAreaid()+","+ ib.getSpace().getSpaceid()+",'"+ ib.getUser().getUsername()+"',"+ ib.getNumber()+",'"+ modifytime+"','"+ ib.getType()+"','"+ ib.getRemark()+"')"; pstmt=conn.prepareStatement(sql); inti=pstmt.executeUpdate(); if(i>0){ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb;}入庫時更新貨物庫存業(yè)務邏輯代碼:publicbooleanputin(GoodsBeangb,WareBeanwb,AreaBeanab,SpaceBeansb,intnumber){ booleanb=false; try{ conn=newConnectionProcess().getConn(); Stringsql="updatestocksetnumber=number+"+number +"wheregoodsid="+gb.getGoodsid() +"andwareid="+wb.getWareid() +"andareaid="+ab.getAreaid() +"andspaceid="+sb.getSpaceid(); pstmt=conn.prepareStatement(sql); inti=pstmt.executeUpdate(); if(i>0){ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb;}彈出貨物選擇對話框是用JavaScript實現(xiàn)的,代碼如下:functionshow(){ document.all['Layer1'].style.visibility='visible';}functioncloseDiv(){ document.all['Layer1'].style.visibility='hidden';}functionchange(){ varstr; closeDiv();}<divalign="center"> <divid="Layer1"> <tablewidth="400"border="0"cellpadding="0"cellspacing="0"id="table1"><%for(inti=0;i<goods.size();i=i+5){ try{ gb1=goods.get(i);%><tr><%if(gb1!=null){%><td><aid="<%=gb1.getGoodsname()%>"onclick="change();"><%=gb1.getGoodsname()%></a></td><%}if(gb2!=null){%><td><aid="<%=gb2.getGoodsname()%>"onclick="change();"><%=gb2.getGoodsname()%></a></td><%}if(gb3!=null){%><td><aid="<%=gb3.getGoodsname()%>"onclick="change();"><%=gb3.getGoodsname()%></a></td><%}if(gb4!=null){%><td><aid="<%=gb4.getGoodsname()%>"onclick="change();"><%=gb4.getGoodsname()%></a></td><%}if(gb5!=null){%><td><aid="<%=gb5.getGoodsname()%>"onclick="change();"><%=gb5.getGoodsname()%></a></td><%}%></tr><%}%> <tr> <tdcolspan="5"align="center"valign="middle"><inputtype="button"value="關閉"onClick="closeDiv();"/></td></tr></table></div>出庫時更新貨物庫存業(yè)務邏輯代碼:publicbooleanputout(GoodsBeangb,WareBeanwb,AreaBeanab,SpaceBeansb,intnumber){ booleanb=false; try{ conn=newConnectionProcess().getConn(); Stringsql="updatestocksetnumber=number-"+number +"wheregoodsid="+gb.getGoodsid() +"andwareid="+wb.getWareid() +"andareaid="+ab.getAreaid() +"andspaceid="+sb.getSpaceid(); pstmt=conn.prepareStatement(sql); inti=pstmt.executeUpdate(); if(i>0){ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb;}添加移庫記錄業(yè)務邏輯代碼:publicbooleanaddTransfer(TransferBeantb){ booleanb=false; try{ conn=newConnectionProcess().getConn(); SimpleDateFormatsdf=newSimpleDateFormat("yyyy-MM-ddHH:mm:ss"); Stringtransfertime=sdf.format(tb.getTransfertime()); Stringsql="insertintotransfer(goodsid,username,number,transtime," +"inputware,inputarea,inputspace,outputware,outputarea,outputspace)values(" +tb.getGoods().getGoodsid()+",'" +tb.getUser().getUsername()+"'," +tb.getNumber()+",'" +transfertime+"'," +tb.getInputware().getWareid()+"," +tb.getInputarea().getAreaid()+"," +tb.getInputspace().getSpaceid()+"," +tb.getOutputware().getWareid()+"," +tb.getOutputarea().getAreaid()+"," +tb.getOutputspace().getSpaceid()+")"; pstmt=conn.prepareStatement(sql); inti=pstmt.executeUpdate(); if(i>0){ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb;}庫存盤點業(yè)務邏輯代碼:publicbooleanupdate(intgoodsid,intwareid,intareaid,intspaceid,intnumber){ booleanb=false; try{ conn=newConnectionProcess().getConn(); Stringsql="updatestocksetnumber="+number +"wheregoodsid="+goodsid +"andwareid="+wareid +"andareaid="+areaid +"andspaceid="+spaceid; pstmt=conn.prepareStatement(sql); inti=pstmt.executeUpdate(); if(i>0){ b=true; } }catch(SQLExceptione){ e.printStackTrace(); }finally{ this.close(); } returnb;}庫存統(tǒng)計功能代碼:publicintcount(GoodsBeangb,WareBeanware,AreaBeanarea,SpaceBeanspace){ intcount=0; Stringstr="";Stringstr1="";Stringstr2="";Stringstr3="";Stringstr4=""; if(gb.getGoodsid()!=0){ str1="goodsid="+gb.getGoodsid(); }else{ str1="1=1"; } if(ware.getWareid()!=0){ str2="andwareid="+ware.getWareid(); }else{ str2="and1=1"; } if(area.getAreaid()!=0){ str3="andareaid="+area.getAreaid(); }else{ str3="and1=1"; } if(space.getSpaceid()!=0){ str4="andspaceid="+space.getSpaceid(); }else{ str4="and1=1"; } str=str1+str2+str3+str4; try{ conn=newConnectionProcess().getConn(); Stringsql="selectsum(number)fromstockwhere"+str; pstmt=conn.prepareStatement(sql); rs=pstmt.executeQuery(); if(rs.next()){ count=rs.getInt(1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 兒童康復治療知識試題及答案
- 自考《00233 稅法》考前強化練習試題庫(含答案)
- 2025年河北藝術職業(yè)學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年江漢藝術職業(yè)學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 2025年杭州萬向職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
- 專題06 人的由來(第1期)
- 私人銀行金融服務合同
- 投資咨詢服務合同模板
- 第二節(jié)國際貨物運輸合同
- 贖樓借款標準合同
- 2025江蘇太倉水務集團招聘18人高頻重點提升(共500題)附帶答案詳解
- 2024-2025學年人教新版高二(上)英語寒假作業(yè)(五)
- 借款人解除合同通知書(2024年版)
- 江蘇省泰州市靖江市2024屆九年級下學期中考一模數(shù)學試卷(含答案)
- 沐足店長合同范例
- 《旅游資料翻譯》課件
- 2024年安徽省中考數(shù)學試卷含答案
- 2024年湖南省公務員錄用考試《行測》真題及答案解析
- 2025屆天津市部分學校高三年級八校聯(lián)考英語試題含解析
- 微項目 探討如何利用工業(yè)廢氣中的二氧化碳合成甲醇-2025年高考化學選擇性必修第一冊(魯科版)
- 廣東省廣州市黃埔區(qū)2024-2025學年八年級物理上學期教學質量監(jiān)測試題
評論
0/150
提交評論