《物流系统开发文档(DOC81)66437.docx》由会员分享,可在线阅读,更多相关《物流系统开发文档(DOC81)66437.docx(114页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、作者:尤帅物流系统开发文档物流系统开发文档1目录11. 概述述22. 系统统分析与与总体设设计32.1系统统分析332.1.11需求描描述32.1.22用例分分析32.2总体体设计442.2.11系统软软件结构构设计442.2.22功能模模块设计计52.2.33数据库库设计552.2.44系统结结构设计计82.2.55界面设设计样式式102.2.66通用组组件配置置文件1123. 功能能模块的的详细设设计与实实现1223.1接单单管理模模块1223.1.11接单管管理总体体结构1123.1.22订单信信息MVVC模式式的设计计123.1.33接单信信息实体体类的实实现1333.1.44接单信信
2、息实体体接口类类143.1.55接单信信息实体体接口的的实现类类153.1.66接单信信息业务务逻辑类类173.1.77接单信信息业务务逻辑类类的实现现类1773.1.88接单信信息控制制类1993.1.99视图层层的实现现243.2送货货员信息息管理模模块2553.2.11送货员员信息管管理总体体结构2263.2.22送货员员信息MMVC模模式的设设计2663.2.33送货员员信息实实体类的的实现2273.2.44送货员员信息实实体接口口类2993.2.55送货员员信息实实体接口口的实现现类2993.2.66送货员员信息业业务逻辑辑类3223.2.77送货员员信息业业务逻辑辑类的实实现类33
3、33.2.88送货员员信息控控制类3343.2.99视图层层的实现现403.3送货货管理模模块4223.3.11送货管管理总体体结构4423.3.22送货管管理MVVC模式式的设计计423.3.33送货管管理实体体类的实实现4223.3.44送货管管理实体体接口类类443.3.55送货管管理实体体接口的的实现类类443.3.66送货管管理业务务逻辑类类483.3.77送货管管理业务务逻辑类类的实现现493.3.88送货管管理控制制类5333.3.99视图层层的实现现583.4仓库库管理模模块5993.4.11仓库管管理总体体结构5593.4.22仓库管管理MVVC模式式的设计计593.4.33
4、仓库管管理实体体类的实实现5993.4.44仓库管管理实体体接口类类613.4.55仓库管管理实体体接口的的实现类类623.4.66仓库管管理业务务逻辑类类673.4.77仓库管管理业务务逻辑类类的实现现673.4.88仓库管管理控制制类7003.4.99视图层层的实现现743.5仓库库管理模模块7663.5.11视图层层的实现现764. 系统统配置7784.1物流流系统给给的数据据库配置置如下:784.2引入入Strructts2支支持7991. 概述本报告对一一个物流流系统的的分析、设设计及编编码实现现进行了了介绍。该该报告说说明了物物流系统统的需求求,软件件设计以以及编码码实现。本系统采
5、用用J2EEE进行行实现,采采用MVVC模式式设计结结构,采采用Sttrutts2+Hibbernnatee框架+MSQQL数据据库系统统。2. 系统分析与与总体设设计2.1系统统分析2.1.11需求描描述物流系统是是用于物物流公司司处理物物流与配配送的业业务,这这个系统统主要具具有以下下功能:1) 仓库管理员员揽货点点节后用用户的货货物、称称重、打打包、填填单、收收费,用用于系统统管理员员将信息息输入计计算机中中,要求求将送货货单号扫扫描入数数据库。2) 送货员到各各个网点点接送货货物,将将货物集集中到物物流仓库库。3) 仓库管理员员每天将将集中的的货物根根据送达达目的地地不同而而分拣成成不
6、同区区域。有有送货员员分别送送到不同同的地方方或收货货人手中中。4) 各个阶段均均由系统统管理员员通过扫扫描进入入数据库库。5) 客户可以根根据送货货单号查查询到货货物状态态6) 财务部分根根据送货货单的信信息处理理收货以以及各相相关人的的结算。2.1.22用例分分析用例图是用用来显示示外部参参与者与与系统的的交互吗吗,能够够更直观观的描述述系统的的功能。从从角色来来看,物物流系统统主要分分为5个个角色,分分别是:系统管管理员、客客户、送送货员、仓仓库管理理员、签签收人。下下图为物物流系统统的用例例图。2.2总体体设计2.2.11系统软软件结构构设计2.2.22功能模模块设计计子系统模块名子功
7、能描述后台订单管理模模块订单信息输输入管理员输入入订单信信息订单查询管理员查询询订单信信息订单信息更更新管理员更新新订单信信息送货员信息息管理模模块送货员信息息输入管理员输入入送货员员信息送货员信息息更新管理员更新新送货员员信息送货员信息息查询管理员查询询送货员员信息工资结算管理员结算算查询送送货员的的工资送货管理模模块送货明细管理员查询询送货明明细信息息订单签收送货员送货货,让客客户签收收订单支付客户付款送货员工资资结算管理员结算算送货员员的工资资仓库管理模模块货物信息输输入管理员输入入货物信信息货物分拣管理员进行行货物分分拣处理理货物发送管理员把货货物让送送货员发发送货物信息更更新管理员更
8、新新货物信信息2.2.33数据库库设计货物单(t_seend_fooods)货物编号字段名是否为空长度描述1idnotint主键2Consiignoor_nnameenotVarchhar(64)发货员名字字3Consiignoor_aaddrresssnotVarchhar(64)发货地址4Consiignoor_ttelnotVarchhar(64)发货人电话话号码5Recesss_nnameenotVarchhar(32)收货人名字字6Recesss_ttelnotVarchhar(32)收货人电话话号码7Recesss_aaddrresssnotVarchhar(32)收货人地址址8C
9、hargge_mmethhodnotVarchhar(64)收费方法9costnotfloatt费用10Goodss_weeighhtnotVarchhar(32)货物重量11Goodss_voolummenotVarchhar(32)货物体积12Is_siignnotInt(33)是否签收13Is_coostnotInt(33)是否收费14accepptorrnotVarchhar(3)受理人送货员(t_deelivveryy)送货货员编号字段名是否为空长度描述1idnotint主键2Workeer_nnubnotVarchhar(64)职工号3Delivveryy_adddreessnot
10、Varchhar(64)送货员家庭庭地址4Delivveryy_teelnotVarchhar(64)送货员电话话号码5Delivveryy_naamenotVarchhar(32)送货员名字字6sexnotVarchhar(32)性别7agenotVarchhar(32)年龄8Id_caarnotVarchhar(64)身份证号9Delivveryy_arreanotfloatt送货范围入库明细表表(t_waarehhoussingg_deetaiil)入入库明细细表编号字段名是否为空长度描述1idnotint主键2Warehhoussingg_daatenotVarchhar(64)入库时
11、间3Send_idnotint送货单号4Warehhousse_mmanaagerrnotVarchhar(64)仓库管理员员5Warehhoussingg_arreanotVarchhar(32)入库存放区区分拣明细表表(t_maanagge_ddetaail)入库明明细表编号字段名是否为空长度描述1idnotint主键2managge_ddateenotVarchhar(64)分拣时间3Send_idnotint送货单号4Managge_nnameenotVarchhar(64)分拣员5areanotVarchhar(32)目的地区域域送货明细表表(t_deetaiil)送送货明细细表编号
12、字段名是否为空长度描述1idnotint主键2Send_dattenottime送货时间3Send_idnotint送货单号4Chargge_metthoddnotVarchhar(64)收费方法5Consiignoor_nnameenotVarchhar(32)发货员名字字6Delivveryy_naamenotVarchhar(32)送货员名字字7Real_cosstnotVarchhar(32)实收费用8Send_staatussnotVarchhar(64)送货状态9Sign_nammeVarchhar(64)签收人姓名名10Is_siignVarchhar(64)是否签收费用结算表表
13、(t_seettllemeent)送货明明细表编号字段名是否为空长度描述1idnotint主键2settllemeent_dattenottime结算时间3Send_idnotint送货职工号号4Send_nubbnotVarchhar(64)送货数量5Lose_debbitssnotVarchhar(32)损耗扣款6Real_monneynotVarchhar(32)实发总数7Totall_coommiissiionnotVarchhar(32)提成总数8salarrynotVarchhar(64)底薪 物物流系统统数据库库表及其其关系2.2.44系统结结构设计计系统采用分分层结构构,整体体
14、上分为为4层:视图层层、控制制层、业业务逻辑辑层和数数据访问问层项目名称为为loggistticssSyss。数据据访问层层与业务务逻辑层层采用SSH框架架的Sttrutts2+Hibbernnatee技术实实现。视视图层和和控制层层采用JJSP技技术实现现。包名说明org.llogiistiic.aactiion控制类包org.llogiistiic.ddao数据访问层层接口包包org.llogiistiic.ddao.imppl数据访问层层实现类类包org.llogiistiic.eentiity数据模型类类包,实实体包org.llogiistiic.sservvicee业务逻辑层层接口包
15、包org.llogiistiic.sservvicee.immpl业务逻辑层层实现类类org.llogiistiic.uutill配置文件包包logissticcsSyys包的的划分 WebRRoott 文件件的划分分2.2.55界面设设计样式式该部分为界界面设计计的公共共部分,给给界面提提供样式式。2.2.66通用组组件配置置文件3. 功能模块的的详细设设计与实实现3.1接单单管理模模块3.1.11接单管管理总体体结构3.1.22订单信信息MVVC模式式的设计计层次功能所在的包/位置程序M接单信息管管理相关关实体接接口类org.llogiistiic.ddaoSendFFooddsDaao.
16、jjavaa接单信息管管理相关关实体接接口实现现类org.llogiistiic.ddao.impplSendFFooddsDaao,iimpll.jaava接单信息管管理相关关实体类类org.llogiistiic.eentiitySendFFoodds.jjavaa接单信息管管理相关关实体类类的配置置org.llogiistiic.eentiitySendFFoodds.hhbm.xmllV接单信息管管理逻辑辑类org.llogiistiic.sservviceeSendFFooddsSeerviice.javva接单信息管管理的逻逻辑实现现类org.llogiistiic.sservvi
17、cee.immplSendFFooddsSeerviice,imppl.jjavaa接单信息管管理相关关实体类类org.llogiistiic.aactiionSendFFooddsAcctioon.jjavaaC接单输入页页面logissticcsSyysjjspSend_fooods_Addd.jssp接单信息列列表页面面logissticcsSyysjjspSend_fooods_lisst.jjsp接单信息编编辑页面面logissticcsSyysjjspSend_fooods_upddatee.jssp接单入库页页面logissticcsSyysjjspwarehhourrse.js
18、pp3.1.33接单信信息实体体类的实实现SendFFoodds.jjavaapubliiccllasss SeendFFoodds privaateiintiid;privaate Strringg coonsiignoorNaame;privaate Strringg coonsiignoorAdddreess;privaate Strringg coonsiignoorTeel;privaate Strringg reecesssNaame;privaate Strringg reecesssTeel;privaate Strringg chharggeMeethood;privaate
19、ffloaatcoost;privaate Strringg gooodssWeiightt;privaate Strringg gooodssVollumee;privaatebboolleannisSSignn;privaatebboolleannisCCostt;privaate Strringg acccepptorr;privaate Strringg reecesssAdddreess;SendFFoodds.hhbm.xmll3.1.44接单信信息实体体接口类类SendFFooddDaoo.jaavapubliicinnterrfacce SSenddFooodsDDao ext
20、tendds IIBasseDaaopubliicboooleean warrehoousee(WaarehhoussinggDettaill waarehhoussinggDettaill);publiic SStriing gettHQLL(SeendFFoodds ssenddFooods);3.1.55接单信信息实体体接口的的实现类类SendFFooddDaooImppl.jjavaapubliiccllasss SeendFFooddsDaaoImmpl exttendds HHibeernaateSSesssionn immpleemennts SenndFooodssDaoo p
21、ubliicboooleean delletee(innt iid) returrnsuuperr.delleteeEnttityyBeaan(SSenddFooods.claass,id); SupppresssWaarniingss(unncheeckeed)publiic LListt finndAlll(SStriing senndFooodss) returrnsuuperr.gettQueeryLListt(frrom +ssenddFooods);publiicboooleean savve(SSenddFooods senndFooodss) returrnsuuperr.in
22、sserttEnttityyBeaan(ssenddFooods);publiicboooleean upddatee(SeendFFoodds ssenddFooods) returrnsuuperr.upddateeEnttityyBeaan(ssenddFooods);SupppresssWaarniingss(unncheeckeed)publiic LListt finndByyId(intt idd) Strringg sqql = ffromm SeendFFoodds wwherre iid=+idd;returrnsuuperr.gettQueeryLListt(sqql);
23、/* * 分分页查询询 * parram hqll 查询询的条件件 * parram offfsett 开始始记录 * parram lenngthh 一次次查询几几条记录录 * retturnn */SupppresssWaarniingss(unncheeckeed)publiic LListt finndByySQLLForrPagge(SStriing hqll, iint offfsett, iint lenngthh) returrnsuuperr.gettQueeryLListt(hqql, offfsett, llenggth);/* * 查查询所有有记录数数 * rettur
24、nn 总记记录数 */publiicinnt ggetAAllRRowCCounnt(SStriing hqll) returrnsuuperr.gettQueeryLListt(hqql).sizze();publiicboooleean warrehoousee(WaarehhoussinggDettaill waarehhoussinggDettaill) Strringg hqql1=frrom WarrehoousiingDDetaail w wwherre ww.seendIId=+wwareehouusinngDeetaiil.ggetSSenddId()+;Warrehoous
25、iingDDetaail w=(WarrehoousiingDDetaail)supper.gettEnttityyBeaan(hhql11);/如果查查询有结结果,则则入库失失败if(w=nuull)waarehhoussinggDettaill.seetWaarehhoussinggDatte(nnew Datte();returrnsuuperr.insserttEnttityyBeaan(wwareehouusinngDeetaiil);returrnfaalsee;publiic SStriing gettHQLL(SeendFFoodds ssenddFooods)Strringg
26、 hqql = ffromm SeendFFoodds ss; /查询语语句 if(seendFFoodds!=nulll)if(seendFFoodds.ggetCConssignnorNNamee()!=nuull)hhql+= wheere s.cconssignnorNNamee=+seendFFoodds.ggetCConssignnorNNamee()+;elseiif(ssenddFooods.gettConnsiggnorrTell()!=nuull) hqll+= whheree s.connsiggnorrTell=+seendFFoodds.ggetCConssignno
27、rTTel()+; elseiif(ssenddFooods.gettAcccepttor()!=nulll) hqll+= whheree s.acccepttor=+senndFooodss.geetAcccepptorr()+; elseiif(ssenddFooods.gettReccesssTell()!=nuull) hqll+= whheree s.reccesssTell=+seendFFoodds.ggetRReceessTTel()+; else if(seendFFoodds.ggetIIsSiign() hqll+= whheree s.isSSignn=1; else
28、 hqll+= whheree s.isSSignn=0; returrn hhql;3.1.66接单信信息业务务逻辑类类SendFFooddsSeerviice.javvapubliicinnterrfacce SSenddFooodsSServvicee publiicboooleean deelette(iint id);publiic LListt finndAlll(SStriing tabble);publiic LListt finndByyId(intt idd);publiicboooleean savve(SSenddFooods senndFooodss);publiic
29、boooleean upddatee(SeendFFoodds ssenddFooods);publiic PPageeBeaan qquerryFoorPaage(intt paageSSizee,innt ccurrrenttPagge,SSenddFooods senndFooodss);publiicinnt ggetAAllRRowCCounnt(SStriing hqll);publiicboooleean warrehoousee(WaarehhoussinggDettaill waarehhoussinggDettaill);3.1.77接单信信息业务务逻辑类类的实现现类Sen
30、dFFooddsSeerviiceIImpll.jaavapubliiccllasss SeendFFooddsSeerviiceIImpll immpleemennts SenndFooodssSerrvicce privaate SenndFooodssDaoo seendFFooddsDaao = neew SSenddFooodsDDaoIImpll();publiicboooleean delletee(innt iid) returrnseendFFooddsDaao.ddeleete(id);publiic LListt finndAlll(SStriing tabble) re
31、turrnseendFFooddsDaao.ffinddAlll(taablee);publiic LListt finndByyId(intt idd) returrnseendFFooddsDaao.ffinddByIId(iid);publiicboooleean savve(SSenddFooods senndFooodss) returrnseendFFooddsDaao.ssavee(seendFFoodds);publiicboooleean upddatee(SeendFFoodds ssenddFooods) sendFFooddsDaao.ffinddByIId(ssend
32、dFooods.gettId();returrnseendFFooddsDaao.uupdaate(senndFooodss);publiic SSenddFooodsDDao gettSenndFooodssDaoo() returrnseendFFooddsDaao;publiicvooid settSenndFooodssDaoo(SeendFFooddsDaao ssenddFooodsDDao) this.senndFooodssDaoo = senndFooodssDaoo;/* * 分分页查询询 * parram hqll 查询询的条件件 * parram offfsett 开始
33、始记录 * parram lenngthh 一次次查询几几条记录录 * retturnn */publiic PPageeBeaan qquerryFoorPaage(intt paageSSizee, iint pagge,SSenddFooods senndFooodss) Strringg hqql = seendFFooddsDaao.ggetHHQL(senndFooodss); /查询语语句 int aallRRow = ssenddFooodsDDao.gettAlllRowwCouunt(hqll); /总总记录数数 int ttotaalPaage = PPageeBeaan
34、.ccounntTootallPagge(ppageeSizze, alllRoww); /总总页数 finallintt offfseet = PaageBBeann.coounttOfffsett(paageSSizee, ppagee); /当当前页开开始记录录 finallintt leengtth = paageSSizee; /每页页记录数数 finallintt cuurreentPPagee = PaggeBeean.couuntCCurrrenttPagge(ppagee); Liist llistt = senndFooodssDaoo.fiindBBySQQLFoorPa
35、age(hqll,offfseet, lenngthh); /一页页的记记录 /把分页页信息保保存到BBeann中 PaageBBeann paageBBeann = neww PaageBBeann(); paageBBeann.seetPaageSSizee(paageSSizee); paageBBeann.seetCuurreentPPagee(cuurreentPPagee); paageBBeann.seetAlllRoow(aallRRow); paageBBeann.seetTootallPagge(ttotaalPaage); paageBBeann.seetLiist(lisst); paageBBeann.innit(); returrn ppageeBeaan;/* * 查查询所有有记录数数 * retturnn 总记记录数 */publiicinnt ggetAAllRRowCCounnt(SStriing hqll) returrnseendFFooddsDaao.ggetAAllRRowCCounnt(hhql);/进库publiicboooleean warrehoousee(Waarehhoussing