仓库管理系统设计报告9923.docx
南京理工工大学紫紫金学院院课程设计计说明书书作 者者:仇慎超学 号:07066021122学院(系系):南理工紫紫金学院院(计算算机系)专业:网络工程程题 目目:仓库管理理系统20100年 4 月目录一、概述述 ·································································22二、需求求分析······························································2三、系统统设计·······························································4四、系统统实施·······························································9五、系统统测试·······························································9六、收获获和体会会 ···························································9七、附录录··································································99八、参考考文献····························································99一、概述述1、项目目背景:随着市场场竞争的的日益激激烈,如如何降低低成本更更加便捷捷的处理理库存管管理,越越来越受受到各个个企业的的重视。管理的好坏对企业至关重要。而对经销商而言,渠道扁平化已是大势所趋,这使经销商对产品的库存管理合理化也提出了更高的要求。该库存管理系统正是基于客户亟待解决多商品、大业务,等复杂的库存管理的要求而开发。2、 编写目的的:使用计算算机管理理系统,实实现经济济性和技技术性满满足企业业的现代代化管理理要求。3、 软件定义义:本系统是是基于JJSP、JJavaaBeaan模式式并使用用MySSQL数数据库系系统开发发而成。并并实现了了仓库进进出管理理功能的的软件。4、 开发环境境: 操作系系统:WWinddowss XPP。 数据库库:MyySQLL。开发工具具包:JJDK 1.66,Ecclippse33.2,MMyEcclippse88.xJSP服服务器:Tommcatt 6.0浏览器:IE 7.00二、需求求分析1、问题题的提出出:仓库进货货、库存存管理环环节中,由由于商品品种类繁繁多、业业务量大大、库存存管理复复杂,使使用手工工操作工工作量很很大,在在操作过过程中也也很容易易出现各各种错误误。如何何使用计计算机解解决目前前的问题题,是本本系统最最重要的的难点。2、 系统的业业务功能能分析:系统业务务需要具具有的功功能:v 具有良好好的用户户界面v 系统具有有良好的的权限管管理功能能v 强大的数数据查询询功能v 可以直接接查看仓仓库库存存情况3、 系统的业业务流程程分析:v 进入系统统管理应应该首先先登陆,取取得管理理权限之之后进入入主界面面v 入库操作作时需要要记录货货品的全全部信息息(新货货入库与与补库区区分对待待)v 出库操作作是需要要修改库库存信息息v 查询操作作时可以以根据输输入条件件查询相相应货品品信息,之之后输出出报表v 人员信息息管理可可以输入入、修改改、查询询员工信信息,也也应具有有客户相相应的信信息录入入、 修修改、查查询方法法4、需完完成的功功能:v 登陆功能能v 注册管理理员功能能v 新货入库库录入功功能v 货品补充充修改功功能v 库存货品品信息管管理功能能v 货品出库库修改功功能v 根据条件件查询功功能v 报表输出出功能v 员工信息息录入功功能v 员工信息息修改功功能v 员工信息息查询功功能v 客户信息息录入功功能v 客户信息息修改功功能v 客户信息息查询功功能v 管理员注注册功能能v 管理员密密码修改改功能v 管理员删删除功能能4、 数据流图图:1、管理理员数据据流图管理员数据库登陆模块注册信息管理员信息修改2、 系统信息息数据流流程图货品补充修改信息库存货品修改信息新货入库信息货品 数据库查询功能模块员工录入信息客户录入信息 员工数据库 客户数据库客户修改信息员工修改信息三、系统统设计1、数据据表: 1、表表的物理理设计:v 管理员信信息表(ttb_uuserr),用于对对管理员员信息的姓姓名、密密码进行行定义字段名数据类型型长度是否为空空是否为主主键描述IDInt4NoYes管理员编编号UserrnammeVarccharr50NoNo管理员名名称PasssworrdVarccharr50YesNo密码v 员工信息息表(ttb_wworkker),用于对对员工信息息的姓名名、职务务、电话话、住址址进行定定义字段名数据类型型长度是否为空空是否为主主键描述IDInt8NoYes员工编号号WknaameVarccharr50NoNo员工姓名名PosttVarccharr50YesNo职位PhonneVarccharr20YesNo电话AddrresssVarccharr100YesNo住址SalaaryInt8YesNo工资v 客户信息息表(ttb_ccusttomeer),用于对对客户的的全称、简简称、地地址、邮邮编、电电话、传传真、联联系人、联联系人电电话、联联系人邮邮箱、银银行账号号、开户户银行进进行定义义字段名数据类型型长度是否为空空是否为主主键描述IDInt8NoYes客户编号号CusnnameeVarccharr100NoNo客户全称称ShorrtVarccharr50YesNo客户简称称AddrresssVarccharr100YesNo地址PosttcoddeVarccharr20YesNo邮编PhonneVarccharr20YesNo电话FaxVarccharr20YesNo传真LinkkmannVarccharr20YesNo联系人LmphhoneeVarccharr20YesNo联系人电电话EmaiilVarccharr50YesNo邮箱AccoounttVarccharr20YesNo账号BankkVarccharr50YesNo银行v 货品信息息表(ttb_bbrannd),用于对对商品的的名称、简简称、编编号、产产地、规规格、包包装、批批号、供供应商、单单位、单单价、数数量、入入库日期期、经手手人进行行定义字段名数据类型型长度是否为空空是否为主主键描述IDInt8NoYes货品编号号GooddsVarccharr100NoNo货品名称称Shorrt Varccharr50YesNo货品简称称AddrresssVarccharr100YesNo产地NormmsVarccharr50YesNo规格PackkVarccharr50YesNo包装LotNNoVarccharr20YesNo批号SuppplieerVarccharr100YesNo供应商UnittVarccharr20YesNo单位PricceVarccharr20YesNo单价AmouuntVarccharr20YesNo数量DateeVarccharr20YesNo入库日期期ManaagemmanVarccharr20YesNo经手人2、软件件功能设设计(1)、仓库系统统的结构构图登陆注册管理系统人员管理查询管理仓库管理入库管理出库管理 主界界面功能能结构图图入库管理旧货补仓新货入库入库管理理功能结结构图仓库管理出库管理货物清仓信息管理出库修改 出库管管理功能能结构图图 仓仓库管理理功能结结构图查询管理货品查询客户查询员工查询 查询管管理功能能结构图图人员管理客户管理管理员员工管理 人员员管理功功能结构构图客户管理信息删除信息录入信息修改客户管理理功能结结构图员工管理信息删除信息录入信息修改员工管理理功能结结构图管理员注册信息删除信息修改管理员功功能结构构图(2)、功功能表及及功能描描述:模块功能功能描述述入库管理理新货入库库创建新的的信息列列表,输输入货品品信息旧货补仓仓在旧的信信息列表表上修改改货品数数量等信信息出库管理理出库修改改在货品信信息列表表上修改改库存数数量信息息仓库管理理信息管理理在货品信信息列表表上修改改供应商商等信息息货物清仓仓当该货品品需要清清仓不再再进货时时进行信信息删除除查询管理理货品查询询根据货品品编号或或名称查查询货品品详细信信息员工查询询根据员工工号或姓姓名查询询该员工工详细信信息客户查询询根据客户户名称查查询客户户详细信信息员工管理理信息录入入输入员工工详细信信息信息修改改修改员工工住址电电话或工工资等信信息信息删除除若该员工工辞职则则删除该该员工信信息管理员注册注册管理理员账号号、密码码。注:只有管管理员可可添加注注册信息修改改修改管理理员登陆陆密码信息删除除删除管理理员信息息客户管理理信息录入入输入客户户详细信信息信息修改改修改客户户地址电电话等详详细信息息信息删除除如该客户户推出则则删除该该客户信信息四、 系统实施施(1)、系系统的界界面设计计: 登陆界面面设计 系统主界界面设计计 入库管理理界面设设计 出库管理理界面设设计 仓库管理理界面设设计 查询管理理界面设设计 员工管理理界面设设计 客户管理理界面设设计 管理员入入口界面面设计(2)、事事件的设设计过程程: 1.登陆事事件的设设计 登登陆事件件需要在在文本框框中输入入账号名名称和密密码,然然后根据据数据库库的内容容判断是是否存在在该用户户,是否否允许登登陆。程程序流程程图如下下所示:开始输入账号密码判断是否存在 N Y登陆跳转结束2.导航航栏事件件的设计计导航栏主主要功能能就是帮帮助用户户选择所所使用的的功能。用用户点击击父框,显显示相应应的子模模块。并并且根据据用户所所点击的的链接到到相应的的界面。流流程图如如下图所所示:开始是否为入库选择操作打开入库子项 T F选择操作打开出库子项是否为出库 T F选择操作打开仓库子项是否为仓库库 TT是否为查询 F选择操作打开查询子项 TT F选择操作打开员工子项是否为员工 TT F选择操作打开客户子项是否为客户 TT FF选择操作打开管理员子项是否为管理员 TT FF跳转页面结束3.新货货入库事事件的设设计由于新货货入库时时仓库内内没有相相应信息息,所以以在处理理时应该该录入详详细数据据。并添添加到数数据库新新项中。处处理过程程如下图图所示:开始录入信息处理保存信息结束3.旧货货补仓事事件的设设计旧货补仓仓处理过过程类似似于新货货入库,如如下图所所示。但但是由于于原先已已经有该该物品的的信息,所所以只需需修改物物品的库库存信息息即可。开始录入信息处理保存信息结束3.出库库修改事事件的设设计货品出库库时由于于数据库库中已经经存在该该物品的的数据,所所以只需需要根据据货号修修改库存存信息即即可。输输入信息息后判断断信息是是否填写写正确,若若是正确确就修改改数据库库信息。否否则就报报错,重重新输入入。过程程如下图图所示:开始录入信息判断数据正确 F T处理保存信息结束4.仓库库信息管管理事件件的设计计仓库信息息管理时时由于数数据库中中已经存存在该物物品的数数据,所所以只需需要根据据货号修修改库存存信息即即可。由由于货品品信息部部可能完完全改变变,所以以需要具具有部分分修改的的功能。输输入信息息后判断断信息是是否填写写正确,若若是正确确就执行行该操作作数据库库信息。否否则就报报错,重重新输入入。过程程如下图图所示:开始录入信息判断数据正确 F T处理保存信息结束5.清仓仓管理事事件的设设计货品清仓仓时由于于数据库库中已经经存在该该物品的的数据,所所以只需需要根据据货号删删除掉库库存信息息即可。输输入信息息后判断断信息是是否填写写正确,若若是正确确就执行行操作数数据库信信息。否否则就报报错,重重新输入入。过程程如下图图所示:开始录入删除货号判断数据正确 F TT处理保存信息开始输入货号判断数据存在打印结束结束6.货品品查询事事件的设设计货品查询询需要在在文本框框中输入入相应的的货号,首首先判断断该货物物是否存存在,如如不存在在或输入入错误,则则跳转到到错误界界面。如如果存在在则输出出货品的的详细信信息。报错6.员工工查询与与客户查查询事件件的设计计员工查询询和客户户查询处处理过程程类似于于货品查查询,流流程图相相同如上上图。7.员工工信息录录入事件件的设计计员工信息息录入类类似于新新货入库库信息的的录入。需需要将员员工的详详细信息息输入数数据库。如如该项不不存在则则可以在在该项写写无。事事件流程程图参见见新货入入库事件件图。8.员工工信息修修改事件件的设计计员工信息息修改类类似于仓仓库管理理信息的的修改。由由于数据据库中已已经存在在所以只只需要修修改相应应的信息息即可。事事件流程程图参见见仓库管管理信息息修改事事件图。9.员工工信息删删除事件件的设计计员工信息息删除类类似于仓仓库管理理的清仓仓管理。由由于数据据库中已已经存在在所以只只需要删删除相应应的信息息即可。事事件流程程图参见见仓库管管理信息息修改事事件图。10.其其他事件件的设计计客户管理理和管理理员入口口管理子子选项的的事件处处理与员员工信息息管理相相类似。处处理流程程相同。(3)、主主要代码码描述:1.登陆陆模块主主要代码码<tittle>>仓库管管理系统统框架<</tiitlee></heead>><fraamessetrrowss="*""colls="*,7788,*""fraamesspaccingg="1""fraamebbordder="noo"boordeer="1""><fraamessrc="bllankk.jssp"nnamee="bllankkFraame""scrrolllingg="NOO"nooressizee><fraamessetrrowss="1117,*"cools="*""fraamebbordder="NOO"boordeer="0""fraamesspaccingg="0""><fraamessrc="toop.jjsp""namme="toopFrramee"sccrolllinng="NOO"nooressizee><fraamessetrrowss="*""colls="1994,*"frrameespaacinng="0""fraamebbordder="NOO"boordeer="0""><fraamessrc="leeft.jspp"naame="leeftFFramme"fframmeboordeer="NOO"sccrolllinng="auuto""norresiize>><fraamessrc="maain.jspp"naame="maainFFramme"fframmeboordeer="noo"sccrolllinng="AUUTO""norresiizemmargginwwidtth="1""marrginnheiightt="1""borrderrcollor="#CCCCCCCC""></frrameesett></frrameesett><fraamessrc="bllankk.jssp"nnamee="bllankkFraame""></frrameesett><nofframmes>><boddy><cennterr><%/获取取reqquesst中传传递的参参数Striing useernaame = nnew Strringg(reequeest.gettParrameeterr("uuserrnamme").geetByytess("iiso-88559-11"),"gbb23112");Striing passswoord = nnew Strringg(reequeest.gettParrameeterr("ppasssworrd").geetByytess("iiso-88559-11"),"gbb23112"); RessulttSett reesullt = nuull;try/构造造SQLL语句Striing sqllStrr="sseleect ID froom ttb_uuserr whheree ussernnamee='""+ussernnamee+"'' annd ppasssworrd=''"+ppasssworrd+""'"/设置置连接dataabasse.ssetCConnnecttionn();/设置置SQLL语句dataabasse.ssetSSqlSStr(sqllStrr);/执行行插入数数据操作作resuult=dattabaase.gettRessultt();if(rresuult.nexxt()elseereespoonsee.seendRRediirecct(""inddex.jspp");catcch(EExceeptiion ex)out.priintlln(""插入数数据操作作失败!");%></ceenteer></boody>></nnofrramees></httml>>2.导航航模块主主要代码码<scrripttlannguaage="jaavasscriipt"">funcctioon sshoww(obbj,mmaxgg,obbj2)if(oobj.styyle.pixxelHHeigght<<maxxg) objj.sttylee.piixellHeiightt+=mmaxgg/100;obj.fillterrs.aalphha.oopaccityy+=220;obj22.baackggrouund="immagees/ttitlle_hhidee.giif"if(oobj.styyle.pixxelHHeigght=maaxg/10) obbj.sstylle.ddispplayy='bblocck'myObbj=oobj;mymaaxg=maxxg;myObbj2=objj2;setTTimeeoutt('sshoww(myyObjj,myymaxxg,mmyObbj2)','5''); funcctioon hhidee(obbj,mmaxgg,obbj2)if(oobj.styyle.pixxelHHeigght>>0)if(oobj.styyle.pixxelHHeigght=maaxg/5) obbj.sstylle.ddispplayy='nnonee' objj.sttylee.piixellHeiightt-=mmaxgg/5;obj.fillterrs.aalphha.oopaccityy-=110;obj22.baackggrouund="immagees/ttitlle_sshoww.giif"myObbj=oobj;mymaaxg=maxxgmyObbj2=objj2;setTTimeeoutt('hhidee(myyObjj,myymaxxg,mmyObbj2)','5''); elseeif(wwhicchCoontiinuee) wwhicchCoontiinuee.cllickk();funcctioon cchanng(oobj,maxxg,oobj22)if(oobj.styyle.pixxelHHeigght) hidde(oobj,maxxg,oobj22);nopeen='''whicchcoontiinuee=''' eelseeif(nnopeen) whhichhConntinnue=objj2; nnopeen.cclicck();elsse shhow(objj,maaxg,objj2); noopenn=obbj2; whhichhConntinnue=''</sccrippt>3.新货货入库模模块主要要代码<%/获取取reqquesst中传传递的参参数int ID = IInteegerr.paarseeIntt(reequeest.gettParrameeterr("IID");Striing gooods = nnew Strringg(reequeest.gettParrameeterr("ggoodds").geetByytess("iiso-88559-11"),"uttf-88");Striing shoortss = neww Sttrinng(rrequuestt.geetPaarammeteer(""shoortss").gettByttes("isso-888599-1""),"uutf-8");Striing adddresss = neew SStriing(reqquesst.ggetPParaametter("adddreess"").ggetBBytees(""isoo-88859-1"),"uutf-8");Striing norrms = nnew Strringg(reequeest.gettParrameeterr("nnormms").geetByytess("iiso-88559-11"),"uttf-88");Striing pacck = neew SStriing(reqquesst.ggetPParaametter("paack"").ggetBBytees(""isoo-88859-1"),"uutf-8");Striing lottNo = nnew Strringg(reequeest.gettParrameeterr("llotNNo").geetByytess("iiso-88559-11"),"uttf-88");Striing supppliier = nnew Strringg(reequeest.gettParrameeterr("ssuppplieer").geetByytess("iiso-88559-11"),"uttf-88");Striing uniit = neew SStriing(reqquesst.ggetPParaametter("unnit"").ggetBBytees(""isoo-88859-1"),"uutf-8");Striing priice = nnew Strringg(reequeest.gettParrameeterr("ppricce").geetByytess("iiso-88559-11"),"uttf-88");Striing amoountt = neww Sttrinng(rrequuestt.geetPaarammeteer(""amoountt").gettByttes("isso-888599-1""),"uutf-8");Striing datte = neew SStriing(reqquesst.ggetPParaametter("daate"").ggetBBytees(""isoo-88859-1"),"uutf-8");Striing mannageemann = neww Sttrinng(rrequuestt.geetPaarammeteer(""mannageemann").gettByttes("isso-888599-1""),"uutf-8");tryif(IID=0)ressponnse.senndReedirrectt("ddefeeat.jspp");if(ggoodds.eequaals("")|shhortts.eequaals("")|adddreess.equualss(""")|norrms.equualss(""")|pacck.eequaals("")|lootNoo.eqqualls(""")|suuppllierr.eqqualls(""")|unnit.equualss(""")|priice.equualss(""")|amoountt.eqqualls(""")|daate.equualss(""")|mannageemann.eqqualls(""")reespoonsee.seendRRediirecct(""deffeatt.jssp");/构造造SQLL语句Striing sqllStrr = "innserrt iintoo tbb_brrandd vaaluees("" + ID + "",'"" + gooods + ""',''" + shhortts + "'','"" + adddresss + "'','"" + norrms + ""',''" + paack + ""',''" + lootNoo + "','" + ssuppplieer + "'','"" + uniit + "'','"" + priice + ""',''" + ammounnt + "'','"" + datte + "'','"" + mannageemann + "')"/设置置连接dataabasse.ssetCConnnecttionn();/设置置SQLL语句dataabasse.ssetSSqlSStr(sqllStrr);/执行行插入数数据操作作dataabasse.iinseertDDataa();respponsse.ssenddReddireect("OKK.jssp");catcch(EExceeptiion ex)/reespoonsee.seendRRediirecct(""deffeatt.jssp");%>4.旧货货补仓模模块主要要代码<%/获取取reqquesst中传传递的参参数int ID = IInteegerr.paarseeIntt(reequeest.gettParrameeterr("IID");Striing amoountt = neww Sttrinng(rrequuestt.geetPaarammeteer(""amoountt").gettByttes("isso-888599-1""),"uutf-8");tryif(IID=0|amoountt.eqqualls(""")reespoonsee.seendRRediirecct(""deffeatt.jssp");/构造造SQLL语句Striing sqllStrr = "uppdatte ttb_bbrannd sset Amoountt='"" + amoountt + "' wheere ID='"+ID+"'""/设置置连接dataabasse.ssetCConnnecttionn();/设置置SQLL语句dataabasse.ssetSSqlSStr(sqllStrr);/执行行插入数数据操作作dataabasse.uupdaateDDataa();respponsse.ssenddReddireect("OKK.jssp");catcch(EExceeptiion ex)respponsse.ssenddReddireect("deefeaa