《物流系统开发文档(DOC81页)33010.docx》由会员分享,可在线阅读,更多相关《物流系统开发文档(DOC81页)33010.docx(94页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、作者:尤帅物流系统开开发文档物流系统开开发文档11目录11. 概述述22. 系统统分析与总总体设计332.1系统统分析32.1.11需求描述述32.1.22用例分析析32.2总体体设计42.2.11系统软件件结构设计计42.2.22功能模块块设计52.2.33数据库设设计52.2.44系统结构构设计82.2.55界面设计计样式1002.2.66通用组件件配置文件件123. 功能能模块的详详细设计与与实现1223.1接单单管理模块块123.1.11接单管理理总体结构构123.1.22订单信息息MVC模模式的设计计123.1.33接单信息息实体类的的实现1333.1.44接单信息息实体接口口类14
2、3.1.55接单信息息实体接口口的实现类类153.1.66接单信息息业务逻辑辑类173.1.77接单信息息业务逻辑辑类的实现现类173.1.88接单信息息控制类1193.1.99视图层的的实现2443.2送货货员信息管管理模块2253.2.11送货员信信息管理总总体结构2263.2.22送货员信信息MVCC模式的设设计263.2.33送货员信信息实体类类的实现2273.2.44送货员信信息实体接接口类2993.2.55送货员信信息实体接接口的实现现类293.2.66送货员信信息业务逻逻辑类3223.2.77送货员信信息业务逻逻辑类的实实现类3333.2.88送货员信信息控制类类343.2.99
3、视图层的的实现4003.3送货货管理模块块423.3.11送货管理理总体结构构423.3.22送货管理理MVC模模式的设计计423.3.33送货管理理实体类的的实现4223.3.44送货管理理实体接口口类443.3.55送货管理理实体接口口的实现类类443.3.66送货管理理业务逻辑辑类483.3.77送货管理理业务逻辑辑类的实现现493.3.88送货管理理控制类5533.3.99视图层的的实现5883.4仓库库管理模块块593.4.11仓库管理理总体结构构593.4.22仓库管理理MVC模模式的设计计593.4.33仓库管理理实体类的的实现5993.4.44仓库管理理实体接口口类613.4.
4、55仓库管理理实体接口口的实现类类623.4.66仓库管理理业务逻辑辑类673.4.77仓库管理理业务逻辑辑类的实现现673.4.88仓库管理理控制类7703.4.99视图层的的实现7443.5仓库库管理模块块763.5.11视图层的的实现7664. 系统统配置7884.1物流流系统给的的数据库配配置如下:784.2引入入Struucts22支持7991. 概述本报告对一一个物流系系统的分析析、设计及及编码实现现进行了介介绍。该报报告说明了了物流系统统的需求,软软件设计以以及编码实实现。本系统采用用J2EEE进行实现现,采用MMVC模式式设计结构构,采用SStrutts2+HHiberrnat
5、ee框架+MMSQL数数据库系统统。2. 系统分析与与总体设计计2.1系统统分析2.1.11需求描述述物流系统是是用于物流流公司处理理物流与配配送的业务务,这个系系统主要具具有以下功功能:1) 仓库管理员员揽货点节节后用户的的货物、称称重、打包包、填单、收收费,用于于系统管理理员将信息息输入计算算机中,要要求将送货货单号扫描描入数据库库。2) 送货员到各各个网点接接送货物,将将货物集中中到物流仓仓库。3) 仓库管理员员每天将集集中的货物物根据送达达目的地不不同而分拣拣成不同区区域。有送送货员分别别送到不同同的地方或或收货人手手中。4) 各个阶段均均由系统管管理员通过过扫描进入入数据库。5) 客
6、户可以根根据送货单单号查询到到货物状态态6) 财务部分根根据送货单单的信息处处理收货以以及各相关关人的结算算。2.1.22用例分析析用例图是用用来显示外外部参与者者与系统的的交互吗,能能够更直观观的描述系系统的功能能。从角色色来看,物物流系统主主要分为55个角色,分分别是:系系统管理员员、客户、送送货员、仓仓库管理员员、签收人人。下图为为物流系统统的用例图图。2.2总体体设计2.2.11系统软件件结构设计计2.2.22功能模块块设计子系统模块名子功能描述后台订单管理模模块订单信息输输入管理员输入入订单信息息订单查询管理员查询询订单信息息订单信息更更新管理员更新新订单信息息送货员信息息管理模块块
7、送货员信息息输入管理员输入入送货员信信息送货员信息息更新管理员更新新送货员信信息送货员信息息查询管理员查询询送货员信信息工资结算管理员结算算查询送货货员的工资资送货管理模模块送货明细管理员查询询送货明细细信息订单签收送货员送货货,让客户户签收订单支付客户付款送货员工资资结算管理员结算算送货员的的工资仓库管理模模块货物信息输输入管理员输入入货物信息息货物分拣管理员进行行货物分拣拣处理货物发送管理员把货货物让送货货员发送货物信息更更新管理员更新新货物信息息2.2.33数据库设设计货物单(t_seend_ffoodss)货物编号字段名是否为空长度描述1idnotint主键2Consiignorr_n
8、ammenotVarchhar(664)发货员名字字3Consiignorr_adddresssnotVarchhar(664)发货地址4Consiignorr_tellnotVarchhar(664)发货人电话话号码5Recesss_naamenotVarchhar(332)收货人名字字6Recesss_teelnotVarchhar(332)收货人电话话号码7Recesss_adddresssnotVarchhar(332)收货人地址址8Chargge_meethoddnotVarchhar(664)收费方法9costnotfloatt费用10Goodss_weiightnotVarchh
9、ar(332)货物重量11Goodss_vollumenotVarchhar(332)货物体积12Is_siignnotInt(33)是否签收13Is_coostnotInt(33)是否收费14accepptornotVarchhar(33)受理人送货员(t_deeliveery)送送货员编号字段名是否为空长度描述1idnotint主键2Workeer_nuubnotVarchhar(664)职工号3Delivvery_addrressnotVarchhar(664)送货员家庭庭地址4Delivvery_telnotVarchhar(664)送货员电话话号码5Delivvery_nameeno
10、tVarchhar(332)送货员名字字6sexnotVarchhar(332)性别7agenotVarchhar(332)年龄8Id_caarnotVarchhar(664)身份证号9Delivvery_areaanotfloatt送货范围入库明细表表(t_waarehoousinng_deetaill)入库明明细表编号字段名是否为空长度描述1idnotint主键2Warehhousiing_ddatenotVarchhar(664)入库时间3Send_idnotint送货单号4Warehhousee_mannagerrnotVarchhar(664)仓库管理员员5Warehhousiing
11、_aareanotVarchhar(332)入库存放区区分拣明细表表(t_maanagee_dettail)入库明细细表编号字段名是否为空长度描述1idnotint主键2managge_daatenotVarchhar(664)分拣时间3Send_idnotint送货单号4Managge_naamenotVarchhar(664)分拣员5areanotVarchhar(332)目的地区域域送货明细表表(t_deetaill)送货明明细表编号字段名是否为空长度描述1idnotint主键2Send_dateenottime送货时间3Send_idnotint送货单号4Chargge_mmethoo
12、dnotVarchhar(664)收费方法5Consiignorr_nammenotVarchhar(332)发货员名字字6Delivvery_nameenotVarchhar(332)送货员名字字7Real_costtnotVarchhar(332)实收费用8Send_stattusnotVarchhar(664)送货状态9Sign_nameeVarchhar(664)签收人姓名名10Is_siignVarchhar(664)是否签收费用结算表表(t_seettleementt)送货明明细表编号字段名是否为空长度描述1idnotint主键2settllemennt_daatenottime结
13、算时间3Send_idnotint送货职工号号4Send_nubnotVarchhar(664)送货数量5Lose_debiitsnotVarchhar(332)损耗扣款6Real_moneeynotVarchhar(332)实发总数7Totall_commmisssionnotVarchhar(332)提成总数8salarrynotVarchhar(664)底薪 物流系系统数据库库表及其关关系2.2.44系统结构构设计系统采用分分层结构,整整体上分为为4层:视视图层、控控制层、业业务逻辑层层和数据访访问层项目名称为为logiisticcsSyss。数据访访问层与业业务逻辑层层采用SHH框架的
14、SStrutts2+HHiberrnatee技术实现现。视图层层和控制层层采用JSSP技术实实现。包名说明org.llogisstic.actiion控制类包org.llogisstic.dao数据访问层层接口包org.llogisstic.dao.impll数据访问层层实现类包包org.llogisstic.entiity数据模型类类包,实体体包org.llogisstic.servvice业务逻辑层层接口包org.llogisstic.servvice.impll业务逻辑层层实现类org.llogisstic.utill配置文件包包logissticssSys包包的划分 WebRRoot
15、文件的划划分2.2.55界面设计计样式该部分为界界面设计的的公共部分分,给界面面提供样式式。2.2.66通用组件件配置文件件3. 功能模块的的详细设计计与实现3.1接单单管理模块块3.1.11接单管理理总体结构构3.1.22订单信息息MVC模模式的设计计层次功能所在的包/位置程序M接单信息管管理相关实实体接口类类org.llogisstic.daoSendFFoodssDao.javaa接单信息管管理相关实实体接口实实现类org.llogisstic.dao.impllSendFFoodssDao,impll.javva接单信息管管理相关实实体类org.llogisstic.entiitySe
16、ndFFoodss.javva接单信息管管理相关实实体类的配配置org.llogisstic.entiitySendFFoodss.hbmm.xmllV接单信息管管理逻辑类类org.llogisstic.servviceSendFFoodssServvice.javaa接单信息管管理的逻辑辑实现类org.llogisstic.servvice.impllSendFFoodssServvice,impll.javva接单信息管管理相关实实体类org.llogisstic.actiionSendFFoodssActiion.jjavaC接单输入页页面logissticssSysjspSend_fo
17、odds_Addd.jssp接单信息列列表页面logissticssSysjspSend_foodds_liist.jjsp接单信息编编辑页面logissticssSysjspSend_foodds_uppdatee.jspp接单入库页页面logissticssSysjspwarehhoursse.jssp3.1.33接单信息息实体类的的实现SendFFoodss.javvapubliicclaass SSendFFoodss privaateinntid;privaate SStrinng coonsiggnorNName;privaate SStrinng coonsiggnorAAddr
18、eess;privaate SStrinng coonsiggnorTTel;privaate SStrinng reecesssNamee;privaate SStrinng reecesssTel;privaate SStrinng chhargeeMethhod;privaateflloatccost;privaate SStrinng gooodsWWeighht;privaate SStrinng gooodsVVolumme;privaateboooleaanisSSign;privaateboooleaanisCCost;privaate SStrinng acccepttor;
19、privaate SStrinng reecesssAddrress;SendFFoodss.hbmm.xmll3.1.44接单信息息实体接口口类SendFFoodDDao.jjavapubliicintterfaace SSendFFoodssDao exteends IBasseDaoopubliicboooleann warrehouuse(WWarehhousiingDeetaill warrehouusinggDetaail);publiic Sttringg gettHQL(SenddFoodds seendFooods);3.1.55接单信息息实体接口口的实现类类SendFFoo
20、dDDaoImmpl.jjavapubliicclaass SSendFFoodssDaoIImpl exteends HibeernatteSesssionn impplemeents SenddFooddsDaoo publiicboooleann dellete(int iid) returrnsupper.deleeteEnntityyBeann(SenndFooods.cclasss,id); SupppresssWarnningss(unccheckked)publiic Liist fiindAlll(Sttringg senndFooods) returrnsupper.get
21、QQueryyListt(froom +senddFoodds);publiicboooleann savve(SeendFooods senddFoodds) returrnsupper.inseertEnntityyBeann(senndFooods);publiicboooleann upddate(SenddFoodds seendFooods) returrnsupper.updaateEnntityyBeann(senndFooods);SupppresssWarnningss(unccheckked)publiic Liist fiindByyId(iint iid) Strri
22、ng sql = ffrom SenddFoodds whhere id=+id;returrnsupper.getQQueryyListt(sqll);/* * 分页页查询 * pparamm hqll 查询的的条件 * pparamm offfset 开始记录录 * pparamm lenngth 一次查询询几条记录录 * rreturrn */SupppresssWarnningss(unccheckked)publiic Liist fiindByySQLFForPaage(SStrinng hqql, iint ooffseet, iint llengtth) returrnsupp
23、er.getQQueryyListt(hqll, offfsett, leengthh);/* * 查询询所有记录录数 * rreturrn 总记记录数 */publiicintt gettAllRRowCoount(Striing hhql) returrnsupper.getQQueryyListt(hqll).siize();publiicboooleann warrehouuse(WWarehhousiingDeetaill warrehouusinggDetaail) Strring hql11=frrom WWarehhousiingDeetaill w wwheree w.sse
24、ndIId=+warrehouusinggDetaail.ggetSeendIdd()+;WarrehouusinggDetaail ww=(WaarehoousinngDettail)supeer.getEEntittyBeaan(hqql1);/如果查查询有结果果,则入库库失败if(w=nulll)waarehoousinngDettail.setWWarehhousiingDaate(nnew DDate();returrnsupper.inseertEnntityyBeann(warrehouusinggDetaail);returrnfallse;publiic Sttringg g
25、ettHQL(SenddFoodds seendFooods)Strring hql = ffrom SenddFoodds s; /查查询语句 if(seendFooods!=nulll)if(seendFooods.getCConsiignorrNamee()!=nulll)hhql+= whhere s.coonsiggnorNName=+ssendFFoodss.gettConssignoorNamme()+;elseiif(seendFooods.getCConsiignorrTel()!=nnull) hql+= wwheree s.cconsiignorrTel=+ssendFF
26、oodss.gettConssignoorTell()+; elseiif(seendFooods.getAAccepptor()!=nnull) hql+= wwheree s.aaccepptor=+ssendFFoodss.gettAcceeptorr()+; elseiif(seendFooods.getRRecesssTell()!=nulll) hql+= wwheree s.rrecesssTell=+senddFoodds.geetReccessTTel()+; else if(seendFooods.getIIsSiggn() hql+= wwheree s.iisSiggn
27、=1; else hql+= wwheree s.iisSiggn=0; returrn hqql;3.1.66接单信息息业务逻辑辑类SendFFoodssServvice.javaapubliicintterfaace SSendFFoodssServvice publiicboooleann dellete(int iid);publiic Liist fiindAlll(Sttringg tabble);publiic Liist fiindByyId(int iid);publiicboooleann savve(SeendFooods senddFoodds);publiicbooo
28、leann upddate(SenddFoodds seendFooods);publiic PaageBeean qqueryyForPPage(int ppageSSize,int ccurreentPaage,SSendFFoodss senndFooods);publiicintt gettAllRRowCoount(Striing hhql);publiicboooleann warrehouuse(WWarehhousiingDeetaill warrehouusinggDetaail);3.1.77接单信息息业务逻辑辑类的实现现类SendFFoodssServviceIImpl.
29、javaapubliicclaass SSendFFoodssServviceIImpl impllemennts SSendFFoodssServvice privaate SSendFFoodssDao senddFooddsDaoo = neew SeendFooodsDDaoImmpl();publiicboooleann dellete(int iid) returrnsenndFooodsDaao.deeletee(id);publiic Liist fiindAlll(Sttringg tabble) returrnsenndFooodsDaao.fiindAlll(taable
30、);publiic Liist fiindByyId(iint iid) returrnsenndFooodsDaao.fiindByyId(iid);publiicboooleann savve(SeendFooods senddFoodds) returrnsenndFooodsDaao.saave(ssendFFoodss);publiicboooleann upddate(SenddFoodds seendFooods) sendFFoodssDao.finddByIdd(senndFooods.ggetIdd();returrnsenndFooodsDaao.uppdatee(sen
31、ndFooods);publiic SeendFooodsDDao ggetSeendFooodsDDao() returrnsenndFooodsDaao;publiicvoiid seetSenndFooodsDaao(SeendFooodsDDao ssendFFoodssDao) this.senddFooddsDaoo = ssendFFoodssDao;/* * 分页页查询 * pparamm hqll 查询的的条件 * pparamm offfset 开始记录录 * pparamm lenngth 一次查询询几条记录录 * rreturrn */publiic PaageBeea
32、n qqueryyForPPage(int ppageSSize, intt pagge,SeendFooods senddFoodds) Striing hhql = senndFooodsDaao.geetHQLL(senndFooods); /查询询语句 int aallRoow = senddFooddsDaoo.gettAllRRowCoount(hql); /总总记录数 int ttotallPagee = PPageBBean.counntTottalPaage(ppageSSize, alllRow); /总总页数 finallint ooffseet = PageeBeann
33、.couuntOfffsett(paggeSizze, ppage); /当当前页开始始记录 finallint llengtth = pageeSizee; /每每页记录数数 finallint ccurreentPaage = PaggeBeaan.coountCCurreentPaage(ppage); Listt listt = ssendFFoodssDao.finddBySQQLForrPagee(hqll,offfset, lenngth); /一页的的记录 /把分页页信息保存存到Beaan中 PageeBeann paggeBeaan = new PPageBBean(); p
34、ageeBeann.settPageeSizee(paggeSizze); pageeBeann.settCurrrentPPage(currrentPPage); pageeBeann.settAllRRow(aallRoow); pageeBeann.settTotaalPagge(tootalPPage); pageeBeann.settListt(lisst); pageeBeann.iniit(); returrn paageBeean;/* * 查询询所有记录录数 * rreturrn 总记记录数 */publiicintt gettAllRRowCoount(Striing hh
35、ql) returrnsenndFooodsDaao.geetAlllRowCCountt(hqll);/进库publiicboooleann warrehouuse(WWarehhousiingDeetaill warrehouusinggDetaail) returrnsenndFooodsDaao.waarehoouse(wareehoussingDDetaiil);3.1.88接单信息息控制类SendFFoodssActiion.jjavapubliicclaass SSendFFoodssActiion eextennds AActioonSuppportt privaatestta
36、ticcfinaallonngserrialVVersiionUIID = 1L;privaate SSendFFoodssServvice senddFooddsSerrvicee = neew SeendFooodsSServiiceImmpl();privaateinntpagge = 1;privaateinntpaggeSizze = 10;privaate PPageBBean pageeBeann; /包包含分布信信息的beeanprivaate SSendFFoodss senndFooods;privaate LList ssendFFoodssListt;privaate SStrinng seelectt=;privaate SStrinng teext=;privaate WWarehhousiingDeetaill warrehouusinggDeta