毕业设计(论文)-进销存一体化网络管理平台的设计与开发.doc_第1页
毕业设计(论文)-进销存一体化网络管理平台的设计与开发.doc_第2页
毕业设计(论文)-进销存一体化网络管理平台的设计与开发.doc_第3页
毕业设计(论文)-进销存一体化网络管理平台的设计与开发.doc_第4页
毕业设计(论文)-进销存一体化网络管理平台的设计与开发.doc_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

盐城师范学院毕业设计盐 城 师 范 学 院毕业设计进销存一体化网络管理平台的设计与开发学生姓名 学 院 信息工程学院 专 业 数字媒体技术 班 级 12(1) 学 号 指导教师 2016年 5 月 16 日盐城师范学院毕业设计进销存一体化网络管理平台的设计与开发摘 要随着社会的发展,以及科学技术的进步,仓库的信息化管理已经成为当前生活中不可忽视的一环,小到超市,大到跨国企业,都离不开对货物的进销存管理。现有系统过多且使用繁琐,为简化信息管理功能,故进行该系统的开发。该系统主要实现了仓库内部之间的调度,货物出入库的管理,销售统计等功能。本文主要阐述了一款基于JAVA的进销存一体化网络管理平台的设计与开发。系统具有大众化,简洁高效,易操作,管理流程安全,智能化等特点。关键词:进销存;JAVA;JSP;S.S.H全套设计加扣 3012250582 Design and Implementation of Invoicing Integrated Network Management Platform AbstractBecause of the progress of science and technology,the development of society.Warehouse management has become an important part of the current life. such as supermarket,evenmultinational companies,all cannot do without the Warehouse management.Too many existing systems and the use of cumbersome. In order to simplify the information management function. Therefore, the development of the system is carried out.This system mainly realizesthe warehouse scheduling,warehouse goods out of storage management,sales statisti-cs and other functions.This paper mainly expounds the Design and Development of Invoicing integrated network management platform based on JAVA.The system is popular, simple and efficient, easy to operate, management process safety,intelligent and so on.Keywords: Invoicing Management System; JAVA; JSP; S.S.H目 录1 绪论11.1 库存管理信息化的背景11.2 研究的目的及意义11.3 研究的主要内容12 系统的开发环境与相关技术12.1 开发环境22.1.1 开发软件MyEclipse22.1.2 数据库SqlServer22.1.3 服务器Tomcat22.2 相关技术与思想22.2.1 JSP动态页面技术与MVC开发模式22.2.2 S.S.H框架的使用23 需求分析与可行性33.1 需求分析33.2 可行性分析34 系统的结构与设计34.1 系统目标44.2 系统流程图44.3 系统功能模块54.3.1 系统管理员功能54.3.2 仓库管理员功能54.4 数据库的设计与实现64.4.1 数据库分析64.4.2 E-R图64.4.3 数据表设计85 系统功能模块的具体实现145.1 登陆模块的实现145.2 系统管理员的主要功能模块的实现165.2.1 库房信息管理模块165.2.2 用户管理模块175.2.3 审核模块185.2.4 动态库存管理205.3 仓库管理员的主要功能模块的实现215.3.1 产品信息的管理215.3.2 产品出入库225.3.3 仓库内部调度管理235.4 智能化模块245.4.1 库存报警245.4.2 销售建议255.5 附加功能265.5.1 销售数据的查询与打印265.5.2 销售数据的图表统计276 系统测试286.1 软件测试的目的286.2 测试方法与环境296.3 测试结果297 结论307.1 遇到的问题及解决方法307.2 收获与体会30参考文献32致 谢331 绪论 1.1 库存管理信息化的背景随着时代的发展,计算机技术的应用已经深入人们的日常生活中。在时代发展的推动下,创新进取驱使着人们摒弃以往落后的管理模式与管理方法,信息化的管理软件凭借着强大的数据库服务,使得信息数据的处理尤为便利。当今市场的飞速发展,促使了信息化管理系统的诞生与发展。1.2 研究的目的及意义一个信息化的仓库管理平台可以克服人为数据录入速度慢、易出错等问题,拥有效率高、易于维护、失误率低等优点。为了能将货物以信息的形式展现,体现信息化,故将研究课题选为进销存一体化网络管理平台的设计与开发。该平台通过对货物的出库调拨,入库调拨,管理员审核,仓库之间的调度,库存内货物的查询,销售统计等功能的实现,对需要库存业务的企业进行整体的把控与记录,让公司做出更好的需求对策。1.3 研究的主要内容该系统是针对中小型公司或者私人仓库而进行开发的一款仓库管理网络平台。该系统在Windows操作系统下开发,运用JAVA编程语言,辅以主流框架技术与数据库技术。系统核心功能为货物的出入库调度、审核、库存管理、产品信息管理等,在系统中分为系管(系统管理员)与仓管(仓库管理员)两种身份,货物的调度需要经过申请(仓管)、审核(系管)、确认(仓管)三个基本步骤,以保证货物的调度安全。另外系统额外添加了销售模拟统计功能,对于销售火爆的产品可以有更直观的体现,同时通过图表展现出来。2 系统的开发环境与相关技术2.1 开发环境2.1.1 开发软件MyEclipse该软件在Eclipse原有的基础上加上了强大的功能插件,使用起来更为的便捷,也因此被人们广泛使用,其主要被用在JAVA、JavaEE、移动端应用的开发1。它还是一个企业级的工作平台,可以支持多种开发中所需要的功能,另外对很多开源的软件支持性也较完美,所以兼容性也是很出色。还有一点不容忽视的是当只作为个人开发时此软件是可供免费使用的,所以个人开发MyEclipse是一个很明智的选择。2.1.2 数据库SqlServerSqlServer是一款简单高效,也便于学习的关系型数据库,最初是由三家公司共同开发的,之后,由于重心不同,三家公司便分道扬镳了。SqlServer到目前为止已经出了好几个版本了,熟知的几个版本是2000、2005和2008版。在本次开发中,所使用的版本是SqlServer2008 R2。较之前的两个版本,2008版的突出特点是更高效,更安全,也是SqlServer产品中功能较强大的一个版本,在人群中的使用很是广泛2。2.1.3 服务器TomcatTomcat是一款可以用于发布网站的小型服务器。本系统测试使用的Tomcat版本为Tomcat6.0。该服务器有着较好的扩展性,且在个人使用中极为的方便,不会过多的占用资源,所以在个人开发和访问数量较少的情况下被广泛使用,是一款轻量级的应用服务器3。2.2 相关技术与思想2.2.1 JSP动态页面技术与MVC开发模式JSP是一种开发中常用的动态网页技术,它是为JAVA而生的,前台依然是用传统的HTML技术,但是在此基础上插入了JAVA代码段4。MVC是一种比较前卫的开发模式,M即Model、V即View、C即Controller,三个层次分别用不同的技术来实现,大大减少了程序开发中的代码量,做到了高效利用与快速开发5。JSP在其中处于View层,即视图层。2.2.2 S.S.H框架的使用S.S.H即Struts/Spring/Hibernate的缩写,此三大框架要结合使用才能达到最高效。在MVC模式中,通过Struts框架和Hibernate框架的结合使用实现了Model层和Controller层,Struts在整个框架中有一个很重要的作用,也就是拦截,它可以拦截用户的各种请求并作出相应的回应,程序员只需要对相应的Action做好后台处理即可6;Hibernate在框架中处于持久层的地位,主要用来处理Dao层;一个完整的用户请求过程是JspAction(拦截)DaoAction(返回)Jsp;而Spring则可以简单理解为将二者紧密的联系在一起7。3 需求分析与可行性3.1 需求分析进销存网管平台主要工作是对企业的进货,库存以及销售统计进行信息化的管理,以减少公司在各个环节中可能因人为记录而出现的错误。同时该平台可以有效减少很多不合理的步骤,降低采购成本,做好内部调整。本系统在调查的基础上实现了以下需求:a、界面符合实际需要,操作适合大众。b、实现强大的进销存管理,包括以不同身份进行的出入库管理,货物信 息管理等。c、得益于JAVA的兼容性,可以在多种平台上运行。d、有库存盘点以及货物动态信息查询等功能。e、添加了对销售的统计功能,并通过图表的形式展现。f、审核安全,智能化等特点。3.2 可行性分析a、背景:因毕业需要,在结合实际并在与导师商量的情况下,定下此课 题。b、技术方面:进销存管理系统的核心是对数据库的操作,通过JAVA、框 架等技术结合大量的资料完全可以实现,所以在技术方面是可行的。c、效益方面:因本系统是毕业设计需要,所以在时间和资金上不存在太 大问题,属于个人开发,因此可行。d、结论:综上所述,个人开发一款具有实际意义的进销存网管平台是完 全可行的,故认为该项目可以开发。4 系统的结构与设计4.1 系统目标在实现基本需求的基础上,争取在实用性上达到以下目标:提供强大的进销存管理功能,减少因公司盲目采购而带来的资源损耗,有效节约预算成本,对销售做到基本把控。在操作方面达到简单易用,模块清晰的目标。在界面上达到模块简洁,颜色和谐,条理清晰的目标。4.2 系统流程图进入系统首先要填写账户信息,默认的登陆身份是仓库管理员,用户可以自行切换身份进入(详见登陆模块),每个用户都有一个标记字段role,用以标记身份。然后按照系统管理员或仓库管理员的职能进行功能操作,功能图请见4.3.1(系统管理员功能)和4.3.2(仓库管理员功能)。系统流程图如图4-1所示: 图 4-1 系统流程图货物的出入库与仓库内部的调度主要经过申请-审核-确认三个步骤,其中,申请与确认是仓管负责的,审核时系管负责的,三个步骤缺一不可。如果审核没有通过,那么仓管申请的出入库单等就不能生效,即不会因此而更新数据库中仓库内的货物信息,同理,如果审核通过但仓管却没有确认的话,信息也不能生效,因此通过这种三步骤的策略可以有效保证货物出入库和调度的安全性。以入库单为例,如图4-2所示: 图 4-2 入库流程图4.3 系统功能模块4.3.1 系统管理员功能系统管理员主要包含仓库信息管理,用户信息管理,对出入库单、调度单的审核,动态库存的查询管理,销售统计的查询,报警查询等功能,初始系统下是没有仓库管理员的,必须先由系管创建仓库管理员账户。系统管理员在整个系统中起到统筹全局的作用,所以重要性不言而喻,系统管理员之下则是仓库管理员,在细节上协助系统管理员,将管理员身份区分开,这样更有利于仓库的管理,对于较大的仓库这种做法更是必不可少的。系管功能如图4-3所示:图 4-3 系统管理员功能图4.3.2 仓库管理员功能仓库管理员主要功能有对仓库中产品信息的管理,包括产品的添加修改和删除;产品入库的管理,包括入库单的申请、修改与确认;产品出库的管理,包括出库单的申请、修改与确认;仓库内部调度的管理,包括调度单的申请、修改与确认;动态查询;库存盘点等。仓管功能如图4-4所示:图 4-4 仓库管理员功能图4.4 数据库的设计与实现4.4.1 数据库分析对于任何一款与管理相关的平台,所有的管理都是建立在数据库信息之上的,所以事先选择一款稳定安全的数据库是很必要的。按实际开发需要,本此开发中系统所使用的数据库版本为SqlServer2008 R2。该数据库轻便高效,并且在功能上完全能满足系统的开发需求。4.4.2 E-R图货物主要包含id(编号)、kucunNumber(库存数量)、name(名称)等基本属性,仓库主要有id(编号)、storageNum(仓库号)、name(库房名称)等基本属性。本系统中,实体联系主要有两块:a、 货物与仓库之间的联系以及仓库与仓库之间的联系,出库与入库的操作是仓库与货物之间的联系;仓库内部之间的调度是仓库与仓库之间的联系。b、 各个功能模块的实现是管理员与功能的联系,出入库的申请、产品申请等是仓库管理员与功能之间的联系;审核、销售系统管理员与功能之间的联系。为了使关系图更加清晰明了,也为了更好的画图,故分画成两个实体联系图。仓库与货物的E-R图如图4-5所示:图 4-5 货物仓库联系图仓库管理员更注重对细节的管理,而系统管理员更注重对整体的管理,其中仓库管理员主要负责个体产品的登记,管理等;系统管理员在仓库管理员的管理基础之上,对仓库管理员所建立的出入库单、调度单进行审核管理,做到整体的把控。具体联系如图4-6所示,因空间有限,实体属性将在后文另作说明:图 4-6 管理员功能联系图这里列举部分主要实体的主要属性,分别是管理员、调度申请单,出入库单,报警提醒,属性补充如图4-7图4-10所示:图4-7 管理员属性图4-8 调度单属性图4-9 出入库单属性图4-10 报警属性4.4.3 数据表设计根据系统需要,在数据库中共设计了包括货物信息表(goods)、调度单表(diaoru)、管理员信息表(user)、库房表(storage)、出入库单表(chuku/ruku)、货物明细表(detail)、销售统计表(tongji)、报警信息表(warning)等在内的14张数据表。数据表的详细信息见表4-1表4-12:表4-1 货物表(goods)字段名类型字段大小主/外键说明idBigint20主键idwarningMinInt10货物下限数量warningMaxInt10货物上限数量createtimedatetime创建时间supplierVarchar50供应商信息nameVarchar20货物名称kucunNumberInt10货物数量goodslockInt10标记useridBigint20外键用户idaddressVarchar20生产地表4-2 管理员表(user)字段名类型字段大小主/外键说明idBigint20主键idcreatetimedatetime创建时间passwordVarchar20密码roleInt10身份级别userlockInt10标记usernameVarchar20姓名表4-3 库房表(storage)字段名类型字段大小主/外键说明idBigint20主键idbeizhuVarchar50备注warningMinNumberInt10数量下限warningMaxNumberInt10数量上限createtimedatetime创建时间storagelockInt10标记storageNumVarchar20库房号mianjiVarchar20库房面积nameVarchar20库房名称rukuNumberInt10入库数量MaxNumberInt10最大数量表4-4 内部调出表(diaochu)字段名类型字段大小主/外键说明idBigint20主键idcreatetimedatetime创建时间diaoduNumberInt10内部调度数量diaochulockInt10标记rukudanNumVarchar20内调编号checkfanhuiVarchar50审核信息stateVarchar20审核状态storageidBigint20外键库房调出信息storage2idBigint20外键库房调入信息goodsidBigint20外键货物idrukuReasonidBigint20外键理由iduseridBigint20外键管理员id表4-5 货物入库表(ruku)字段名类型字段大小主/外键说明idBigint20主键idrukudanNumVarchar20入库单编号createtimedatetime创建时间rukulockInt10标记rukuNumberInt10入库数量stateVarchar50审核状态kucunidBigint20外键库存编号storageidBigint20外键库房编号reasonidBigint20外键理由编号goodsidBigint20外键货物编号useridBigint20外键管理员编号表4-6 货物与库房关联表(kucun)字段名类型字段大小主/外键说明idBigint20主键idNumberInt10数量storageidBigint20外键库房编号goodsidBigint20外键货物编号useridBigint20外键管理员编号表4-7 货物明细表(detail)字段名类型字段大小主/外键说明idBigint20主键idgoodsVarchar50货物contentVarchar50货物说明createtimedatetime创建时间reasonVarchar50理由说明numberInt10数量useridBigint20外键管理员id表4-8 销售统计表(tongji)字段类型字段大小主/外键说明idBigint20主键idslInt10销售数量goodsidBigint20外键货物id表4-9 折线图数据表(zhexiantu)字段类型字段大小主/外键说明idBigint20主键iddayVarchar20日期slInt10销售数量goodsidBigint20外键货物id表4-10 月统计表(tongjimonth)字段类型字段大小主/外键说明idBigint20主键idslInt10销售数量goodsidBigint20外键货物idmonthVarchar20月份表4-11 报警信息表(warning)字段类型字段大小主/外键说明idBigint20主键idcontentVarchar50信息内容表4-12 入库理由表(rukureason)字段类型字段大小主/外键说明idBigint20主键idinfotypeVarchar20信息类型createtimedatetime创建时间reasonVarchar50理由内容rukuReasonlockInt10标记系统采用的是SSH框架,所以系统通过Hibernate数据池连接映射来达到与数据库的连接,配置方式类似于JDBC连接,但是只用配置一次,这也是框架技术的优点之一。登陆数据库所使用的账户是数据库的系统管理员,拥有最高的权限,框架中对于Sqlserver数据库配置如下:/数据池DBPool/连接数据库用的urljdbc:jtds:sqlserver:/:1433;/连接地址DatabaseName=db_storage/数据库名称net.sourceforge.jtds.jdbc.Driver/数据库连接所需的驱动类型/数据库的账户名与密码/默认的系统账户/对数据库的其他设置略5 系统功能模块的具体实现5.1 登陆模块的实现登陆界面以主流的深蓝色为主题色,配以系统标题,简介易用。遵循了简洁合理、美观与协调性并存的界面设计原则。在角色下拉列表中,用户可以自行选择系管或仓管。当用户点击登陆时,会触发login请求,该请求会被Struts拦截并获取用户的账户信息,然后便是业务逻辑的处理与后台数据的验证,如果信息正确则进入系统,并在初始界面显示平台信息8。如图5-1所示: 图5-1 登陆界面图如果信息错误会显示用户名或者密码错误,此步骤在业务逻辑中直接采用脚本处理,如果信息有误直接通过窗口提示用户,并重新刷新页面。如果管理员的登陆信息无误,那么会根据字段role的标记来判别身份并进入系统管理员界面或者仓库管理员界面。主界面在样式上是完全一样的,不同点在于两种身份的管理员所能进行的操作是不一样的。管理员各自的功能模块在系统的设计与结构中已经详细说明。主页面如图5-25-3所示:主界面结构式左右结构式的,左边是各个功能模块,右边是个功能的具体操作界面,上边是管理员身份的显示与一些基本的如刷新退出等基本操作快捷按钮,左上方是系统名称,仓库管理员的操作主界面如下图5-2所示: 图5-2 仓管主界面系统管理员的操作主界面如下图5-3所示: 图5-3 系管主界面public String login() throws Exception /登陆验证login方法HttpServletRequest userReq = ServletActionContext.getRequest();String uname = userReq.getParameter(username); /获取用户输入信息String pword = userReq.getParameter(password); /用户输入的密码String Temp = userReq.getParameter(role); /用户选择的身份User userTemp = userDao.select( where username = + uname+ and password= + pword + and userlock=0 and role=+Temp); /查询用户数据./其他逻辑判断this.setUrl(main.jsp); /如果信息正确则跳转至主界面public String loginout() /登出实现/创建HttpServletRequest 和Session对象session.removeAttribute(user);this.setUrl(index.jsp); return SUCCESS;业务逻辑实现如下:UserDao与UserDaoImpl的具体实现:UseDaoImpl是前者的具体实现,UserDao是一个接口类,其中有关于Bean的各种方法,这些方法由后者实现,业务逻辑通过调用这些方法来达到相关数据的关联性9。实现部分如下:a、 UserDao(在此接口种包含了多种操作方法以供调用):public interface UserDao /接口public void insert(User User); /向Bean中插入数据public void delete(User User); /从Bean中删除数据public void update(User User); /在Bean中更新数据public User select(String where); /从Bean中查询数据public List selectBeanList(final int start, final int limit,final String where);/查询user返回类型是Listb、 UserDaoImpl(以selectBean方法的实现为例):public User selectBean(String where) /selectBean的实现List list = this.getHibernateTemplate().find(from User +where);/从数据库中查询用户并保存在List中,List泛型为Userif(list.size()=0)return null; /如果list长度为0,则表示信息错误,返回为空 return list.get(0); /从列表中获取并返回用户对象5.2 系统管理员的主要功能模块的实现5.2.1 库房信息管理模块系统管理员第一次进入系统需要设置库房信息与出入库理由信息,库房设置包括库房编号、库房名、最大货物量、面积,报警数量,添加完成后,管理员可以查询相关的仓库信息,系统中所有的查询都是采用的模糊查询的方式。其中库房编号是系统根据当前的时间生成的,以免发生重复。如图5-4所示:图5-4 添加库房图添加库房方法的实现,当提交请求被触发后,Struts便会拦截到需要添加库房的请求,然后便会获取用户已经输入的仓库信息,然后再将数据插入数据库中,业务逻辑代码如下:public void addStorage() throws IOException /添加仓库的方法./创建request对象String maxNumber = request.getParameter(maxNumber);String name = request.getParameter(name); /获取库房名称./其他信息的获取不再过多展示Storage storagebean = new Storage(); /新建库房对象bean/将信息置入Bean中storagebean.setStorageNumber(Util.getTime(); /按当前时间生成库房编号storagebean.setName(name);storagebean.setmaxNumber(Integer.parseInt(maxNumber);. /其他信息的置入storageDao.insertBean(storagebean); /调用dao层的方法,将bean中数据传入数据库window.location.href=method!storagelist;);由于Hibernate属于全自动持久层,Dao层的方法都是封装的,调用便可,但是也造成了语句的固定化。storageDao是一个接口,里面含有库房的多种操作方法,具体实现由storageDaoImpl来完成,实现代码如下:public void insertBean(Storage Storage) this.getHibernateTemplate().save(Storage); /dao层方法,直接调用即可说明:此部分属于系统管理员范畴,仓库管理员没有对库房信息操作的权限,系管可以在此执行添加新库房或者修改已有库房信息等操作,在库房管理中有一个理由添加功能,理由是仓管进行出入库单制定时所需要选择的信息。理由信息设置如图5-5所示: 图5-5 理由设置图5.2.2 用户管理模块本系统中,只有系统管理员(简称为系管)和仓库管理员(简称为仓管)两种身份,默认状态下,只有一个系管,并且系管没有办法通过系统直接添加,而仓管可以由系管添加,若要添加系管需要直接通过数据库添加。此模块为系管对仓管的管理,系管拥有最高权限。因用户管理不是该系统核心功能,在此不再赘述代码的实现。仓管的添加如下图5-6所示: 图5-6 用户管理图5.2.3 审核模块系统中需要审核的操作主要包括出入库,内部调出,内部调入这四种。任何一种货物进行流动都需要经过申请-审核-确认三个步骤,其中审核由系管负责。在货物信息表中有一标记字段,专门用于标记货物的流程是否完成,如果未完成,在入库单状态中会显示未审核,系管可以进行审核步骤。审核流程以入库为例,具体步骤如图5-7到5-9所示:首先是仓库管理员制定入库单,在制定入库单之前,首先要更新仓库和产品信息,这里不做展示,制定入库单如图5-7所示: 图5-7 入库申请图仓库管理员在制定完入库单后,入库单便会处于一个锁定状态,在数据库中有一个锁定字段专门用于订单锁定,表示该单正在处理中,在此期间,入库信息不会正式提交至数据库。审核操作如图5-8所示: 图5-8 审核图最后,当审核通过后,仓库管理员进行确认即可,入库单的锁定才算解除,确认入库如图5-9所示: 图5-9 入库确认图 $bean.user.username /获取用户名 $bean.rukudanNum /获取入库单编号 ./其他信息的获取 /系管审核 审核 在实现部分,对入库单的审核有已经审核和未审核区分,所以在JSP部分通过C标签库的if方法,通过对审核状态的判断,显示不同的审核操作,并实现不同的触发请求,jsp部分实现如下:前台的实现离不开后台的处理,在业务逻辑部分有专门的审核处理,审核部分业务逻辑的实现如下:if (state != null & !.equals(state) sb.append( state like % + state + %);request.setAttribute(state, state);/查找未审核的入库单if(审核通过.equals(state)storage.setRukuNumber(storage.getRukuNumber()+bean.getRukuNumber();storageDao.updateBean(storage);Goods goods = goodsDao.selectBean( where id=+bean.getGoods().getId();goods.setKucunNumber(goods.getKucunNumber()+bean.getRukuNumber();goodsDao.updateBean(goods);/审核通过,那么获取入库单信息存入bean中以待入库bean.setCheckfanhui(checkfanhui);bean.setstate(state);/更新审核状态./其他逻辑判断rukuDao.updateBean(bean);/调用dao层方法,更新数据说明:系管在货物管理模块中主要负责对申请单的审核。出库、入库、内部调出、内部调入的审核模式类似,在此不再一一展示。当系管查询各个模块中的单子信息时,如果申请单处于未处理状态,那么系管才可以进行审核操作,然后,仓管接到通过审核的信息后,确认审核,整个货物的管理才算正式完成。这一系列流程需要仓库管理员与系统管理员共同完成,仓库管理员的功能实现将在后文展示。5.2.4 动态库存管理此模块分别有动态查询,明细查询以及库存盘点,都是对货物的查询,但是侧重不同。动态查询主要是最近的货物动态,包括出入库,调度等基本信息;明细查询是对货物的信息跟踪,更针对货物的来源、去处以及货物信息。库存盘点则是针对仓库内货物的详细信息。货物明细如图5-10所示: 图5-10 货物明细图StringBuffer sb = new StringBuffer();/用字符串流来存储信息sb.append( where );/语句的拼接/查询货物流动的形式if (flowtype != null & !.equals(flowtype) sb.append( flowtype like % + flowtype + %);sb.append( and );/拼接语句request.setAttribute(flowtype, flowtype);/查询货物名称if (goodsName != null & !.equals(goodsName) sb.append( goodsName like % + goodsName + %);sb.append( and );/拼接语句request.setAttribute(goodsName, goodsName);./其他信息查询类似这里展示明细查询部分代码。将信息从数据库中取出后存在字符串流中,然后将信息添加到缓存中,前台再从缓存中取出已经保存好的数据,再以表格的形式展现出来,主要包含货物名称,货物流动形式,处理时间,数量等基本信息,明细查询具体实现代码如下:业务逻辑层查询货物信息后会将信息设置在缓存中,前台在从缓存中获取信息并展示在页面上,信息获取的代码如下:$bean.flowtype td height=20 ./其他信息的获取同上5.3 仓库管理员的主要功能模块的实现5.3.1 产品信息的管理产品信息由仓库管理员添加。产品的信息主要包括产品名、生产地址、供应商、报警上下限。仓库管理员在此模块可以添加新的产品信息,修改现有的产品信息等,在此基础上,仓库管理员才可以制定出入库单,调度单。如图5-11所示: 图5-11 产品信息图管理员可以对每一件货物设置报警上下限,如果在仓库里的货物总数低于报警下限或者高于报警上限,货物的报警信息便会在登陆后的主界面率先展示出来,以达到提醒的目的。添加如图5-12所示: 图5-12 添加产品图产品添加与库房的添加类似,实现部分也基本类似,详细请参考5.2.1,在此不再展示具体实现。管理员填写所需要的信息后,系统会拦截相应的请求,由业务逻辑处理数据,通过调用GoodsDao层的方法实现数据的更新,此接口的具体实现在 GoodsDaoImpl中。在此展示产品管理模块中添加产品的时序图(如图5-10所示),其他操作如产品的添加,产品信息的查询,对已有产品的信息更新等与此类似。时序图如图5-13所示: 图5-13产品管理时序图5.3.2 产品出入库出入库申请单是由仓库管理员率先申请的,但必须建立在仓库已有产品的基础上才可以执行,所以,仓库管理员拥有添加与修改货物信息等权限。因出入库操作类似,在此着重展示入库功能的实现。如图5-14所示: 图5-14 产品入库图每个库房和产品都有报警设置,如果某一产品的入库数量大于仓库的剩余容量,那么就会提示警告,并且此次的入库单申请失败。同理出库、内部调入、内部调出都会有类似的报警检测,本文将在5.4.1中详细展示报警功能。入库操作部分代码:String storage = request.getParameter(storage);/从request中获取仓库信息String reason = request.getParam

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论