快递信息管理系统的设计和实现毕业论文.doc_第1页
快递信息管理系统的设计和实现毕业论文.doc_第2页
快递信息管理系统的设计和实现毕业论文.doc_第3页
快递信息管理系统的设计和实现毕业论文.doc_第4页
快递信息管理系统的设计和实现毕业论文.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

第 45 页中国矿业大学2015届本科生毕业设计(论文)快递信息管理系统的设计和实现毕业论文 1 绪 论随着时代的发展。互联网改变了我们的生活。而在其中,电商作为一个重要的互联网行业对于人们日常生活的重要性不言而喻。现在不少的创业公司都会选择电商这一行业作为首选。而电商的一个重要的助力就是快递行业。目前快递行业非常火爆。每年的双十一时期,一天将产生上亿件快递。这个数字无疑是非常惊人的。因此在那段时间时间内,效率高才可以得到更高的收入。而在平时的生活中,快递公司的管理也是一个很大的难题。而本次的快递信息管理系统就可以帮助广大的快递公司更好地管理公司的快件的流程、网点信息等。帮助快递公司提高办公的效率,这样才可以获得更高的收入。1.1快递信息管理系统的现状研究无论从那个方面来讲。快递信息管理系统的现状比起快递行业还是不足。很多大物流公司的主页还是停留在那种简单的查询页面阶段。查询之后的快件信息的显示的页面的排版不是很美观。有的时候查出来的数据每行都是斜的。这对于用户来说简直是个灾难。由于互联网的快速发展,现在用户的口味还是比较挑剔的,如果一个页面的功能和外表都不好。这对于用户的印象分会给的很低。而在快递公司内部管理系统的模块中。讲究的就是物流的管理和运转技术了。得益于当今社会硬件技术的发展。各种终端设备开始出现。现在的快递管理并不是通过人手工录入的方式。而是通过一张小小的快递单就可以读出用户的信息。采用各种带有扫描功能的机器可以自动更改快件的状态而不是通过手工输入。这样对于快件管理的规范度有了极大的提升。并且就效率来说提升得还是很大的。不过,有的时候系统对于网点之间的选择存在比较大问题。这个要归功于算法类的研究方面快件公司的研究还不是很有效。有时候明明可以有更好的路线但是系统偏偏会选择那个路径和时间都不是最好的。更有甚者有时候快件会在路上耽搁很长时间。比如本来两三天的时间可以到但是在路上花了半个月才到用户的手中。这对于用户来说简直是灾难。所以还有很多地方还是有待加强的。1.2快递信息管理系统的研究意义快递信息管理系统是一个办公自动化的很好的例子。以前没有这种类型的软件的时候。人们只能靠人工来进行数据的记录。而再往后的时候,人们有软件使用时使用的却是那种与硬件结合得不是很好的系统。还是依靠人在电脑前操作。而现在处于一个很好的年代,软件和硬件设备都比较齐全。我们可以利用软件来实现很多功能。硬件终端技术的发展也给人们带来了福音。我们只要用终端扫描特定的东西就可以得到榆次相关的信息。而且现代面向对象的编程以及大量框架的出现已经可以将很多的业务逻辑用代码来抽象。利用代码来模拟快件管理的所有步骤已经成为了理想的方法。另一方面,现在社会快递行业还是比较红火的。而伴随着电子商务这个行业在中国的持续发展。快递行业也会有一个很好的发展前景。而从亚马逊实验无人机送货这一事件可以看出快递行业真的是一个很讲究效率的行业。如果你慢,那么你将失去大量的用户。所以,提高效率将会成为最近时间内快递公司的大问题。而通过研究本课题可以更加深入地了解到快递行业的流程以及容易出现问题的地方。从而可以想办法帮助他们提高效率。开发出一套有实际使用价值的软件,帮助快递企业占得先机。1.3快递信息管理系统的主要内容及结构本次开发的快递信息管理系统主要的功能有员工管理、个人信息管理、网点管理、快件管理、快件查询几个人大模块。围绕这几个个模块之间进行操作。同时还有统计公司总信息的功能。主要功能就是网点、员工的增删该查以及围绕快件状态进行的操作。员工还可以修改自己的个人信息、用户名以及密码等操作。还有前台和后台快件的查询。开发的数据库采用的是MySql5.6。开发语言采用的是JAVA。开发架构为MVC架构,框架采用的是Struts2+Spring2.5+Hibernate3.前台数据展示采用的是JSP技术。服务器用的是Tomcat6。 另外系统还进行了一定权限管理。不同等级的用户拥有的权限不同。对应于系统中就是看到的界面不同。因为不同权限的人看到的数据以及操作界面还是有一定的区别的。而只有登陆的用户才可以进入到管理主页面中,否则会转到登录的页面。 2.快递信息管理系统主要技术概述 2.1 开发工具本次软件开发用的是JavaEE技术。开发工具用的是Eclipse4.3。eclipse是一个开源的可扩展的开发平台,其本身是用Java语言开发的。不过本身只是作为一个框架和一组服务存在的。开发人员可以通过添加插件的功能来让这个开源的IDE的功能更加强大。由于它在使用时可以添加大量的插件,所以有了更强大的功能。它最初是由IBM公司开发的用于替代Visual Age for Java而开发的而作为下一代的IDE的开发环境。2001年,IBM公司宣布将其贡献给开源组织。现在由Eclipse基金会(Eclipse Foundation)管理。软件刚开始开发的时候只是用作Java的开发工具。现在已经扩展到了其他的语言例如C+、Python等。并且已经吸引到越来越多的公司和人参与到其中一起进行开发。作为一个WEB系统,服务器是必不可少的。本次软件开发采用的服务器是Tomcat.是Apache软件基金会的一个开源软件。由Apache、Sun等其他一些公司共同开发而成。因为其技术先进、性能稳定,并且作为开源软件,免费这一好处是天生的。因此受到了很多软件开发商和开发人员的喜爱。成为了一个比较流行的Java服务器。作为一个开放源代码的服务器。它属于那种轻量级服务器。如果系统的规模不是特别大,并且并发量不多的话。这个服务器无疑是一个很好的选择。是开发和调试Jsp程序的首选服务器。2.2 数据库2.2.1 系统数据库介绍数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。它在六十多年前产生。在信息飞速发展的90年代,数据库的发展也非常迅速。从简单的存储表格的小型数据库到进行海量存储的大型数据库在现在的应用是非常广泛的。在整个互联网时代,数据无疑是一笔宝贵的财富。因此可以预见到数据库的发展在进来还会持续很长一段时间。本次开发采用的是MySql数据库。它是一个应用非常广泛的中小型数据库。可以收说是比较适合小型系统的开发使用。不久之前传出国内著名的互联网公司阿里巴巴在公司内部开启的去IOE的活动。其中数据库的替代者就是这个MySql数据库。由此看来他的性能还是毋庸置疑的。而作为一个性能很出色的关系型数据库。其特点是关联的数据是保存在不同的表中而不是将他们放在同一个仓库中,这样就提高了速度和灵活性。而且MySql所使用的Sql语句是标准的访问数据库的标准化语言。同时由于其体积小、速度比较、成本较低。尤其是他是一个开源的软件。也就是说使用者可以不用支付任何费用便可以使用它。同时还能看到他的源代码,所以安全性大大提升。2.2.2 Hibernate访问数据库Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。Hibernate框架的作用主要在于处理程序对于数据库的访问的请求。Hibernate作为一个开源的轻量级的JavaEE框架。在JDBC的基础上进行了一定程度的封装。让开发人员可以使用面向对象编程的思维来进行数据库的操作,这一点让很多程序员非常喜爱。并且该框架的性能也有一定的保证。只要不是用于非常大量的数据的处理都可以应付。由于封装了JDBC操作,所以大大简化了开发人员的工作。开发人员不需要再去打开关闭数据库连接,不用将得到的数据进行类型处理。这些Hiberante都会帮我们实现。我们只要按照API操作输入便可以得到想要的结果。并且它在B/S、C/S系统中都可以使用。2.3 JSP简介JSP全名叫做Java Server Pages.其实际上是一个简化的Servlet。在运行的时候服务器也是将它转换成一个servlet的。它是由Sun公司倡导并且建立的一种动态页面的技术标准。与此类似的标准是微软的Asp技术。并且用它开发的应用是跨平台的,既可以在Linux下运行,也可以在其他类型的操作系统下运行。由于它是在Html的基础上增加了一些东西。所以客户端只要有浏览器就可以进行浏览。与Servlet一样,JSP也是由服务器来运行的。在服务器端执行结束之后,通常会给用户返回一个Html的页面。Servlet技术是Jsp技术的基础。并且在应用系统中,Servlet负责后台的逻辑操作,而JSP负责的是前台数据的展示。所以开发中一般两个共同使用来完成指定操作。并且他有Java的平台无关性的有点,因此安全可靠,可移植性比较好。很适合用来进行WEB应用的开发。Jsp内置对象1request对象这个对象封装了用户在前台页面提交的信息,调用该对象可以获得封装的数据及信息。 2response对象对客户端的请求做出响应的对象,主要用于向客户端对发送请求信息处理的结果以及数据。3session对象session对象是一个很特殊的JSP内置对象,它在第一个JSP页面被访问时自动创建,在特定的时间段存在,不过如果长时间没有用,服务器会将这个对象自动销毁。当客户打开浏览器访问页面连接到服务器开始,到客户关闭浏览器,被称为一个会话。当用户访问一个服务器时,可能会在几个页面之间反复连接。还可能反复访问同一个页面,服务器应当有办法知道访问这是同一个客户,并且知道访问用户的信息,这就是session对象的作用。4application对象服务器启动后就产生了这个application对象,通俗的说这就是当前访问的整个WEB应用程序。无论什么时候访问页面,只要服务器没有关闭或重启,这个对象都是启动服务器时创建的那个。但与session不同的,所有用户访问的application对象都是同一个。所以该对象只能放公共的数据。 5out对象这是一个输出流对象,用来向客户端输出数据的。out对象用于在页面中各种数据的输出工作。6page java.lang.ObjectJSP网页本身,page对象是指当前页面转换后的Servlet类的实例。7Config该实例代表该JSP 页面的配置信息。8Exception该对象表示页面中的异常和错误。9 pageContext该对象表示该JSP 页面的上下文,使用它可以访问当前页面中共享的数据。2.4 Struts2+Hibernate+Spring简介Struts 2作为Struts的下一代产品,在 struts 1和WebWork的基础上进行了合并。但是Struts 2的结构与Struts 1差别巨大。可以说这两个框架从结构上来说完全是两个产品。Struts 2以WebWork为核心,利用拦截器来处理请求,这样的设计可以让业务逻辑控制器可以和ServletAPI完全脱离开。而作为对比struts1的处理请求的方式则是和Servlet API紧密结合在一起。所以Struts 2倒是可以理解为WebWork的下一代产品。这是因为虽然从Struts 1到Struts 2变化非常大,但是相对于WebWork来说,Struts 2的变化很小。不过三个框架都是非常优秀的MVC框架。而现在来说用struts1的已经不多,现在Struts2的应用还是很广泛的。主要是由于他有以下的有点:1 struts2属于无侵入式设计,不依赖Servlet API。2 提供了拦截器,而我们利用拦截器可以进行AOP即面向切面编程,实现例如权限拦截等功能。3 提供类型转换器,可以把用户传过来的数据根据我们的需要转换成其他的类型。4 支持多种表现层技术,例如:Jsp、treeMaker等。5 输入检校可以对指定方法进行检校。6 提供了全局范围、包范围以及国际化资源文件管理的功能。Hibernate是一个开源的的OR-Mapping框架,对JDBC进行了一定的对象封装,使得开发人员可以的使用面向对象编程思维来操作数据库。Hibernate可以应用在任何可以使用JDBC的地方,既可以在c/s程序中使用,也可以在Web应用中使用。Spring是一个非常著名的开源框架。它是基于Core来构建多层JavaEE系统的,简化企业开发是它产生的主要目的.它用一种非侵入式的方式来管理开发人员的代码,Spring提倡“最少侵入”,这也就意味着你可以适当的时候安装或卸载Spring。这个框架的主要特点就是他的分层架构,这个特性允许开发人员可以自己选择使用哪些组件来进行开发。Spring使用的是最基本的JavaBean来完成那些以前只可能由EJB框架完成的事。然而,Spring的用途却不仅仅局限于在服务器端的开发。从简单性、可测试性和松耦合的角度来看,任何类型的Java程序都可以从采用spring框架开发中获益。那是因为其核心是控制反转(IoC)和面向切面(AOP)编程。 3. 快递信息管理系统的可行性分析及需求分析3.1系统可行性分析本节从技术的可行性,经济的可行性以及操作的可行性三个方面来说明本管理系统的可行性。3.1.1技术可行性就硬件方面来说,现在计算机的内存增加了很多,运算速度成倍提升,另外现在cpu的多核心技术运用的非常成熟。工艺也比以前要进步许多。内存的提升不仅体现在内存量的增加。内存的运算速度也是非常迅速的。硬盘的容量在现在来说已经算是在一个比较合理的范围。另外在大型的存储应用中,可以多块硬盘一起工作。所以足够支撑一个网站的运营.从软件开发的角度来说,Java语言现在发展的很好。从服务器,个人电脑,手机都可以看到他的大量应用。可以说Java语言是现在最火的编程语言之一。Java作为一种可以编写跨平台应用软件的面向对象的编程语言。在移动端以及Web应用领域可以说是最成功的语言。JavaEE作为java用来编写WEB应用程序的分支。在线代社会中应用非常广泛。大型的系统例如银行电信的系统都采用Java语言编写。不仅是由与其高超的性能,还有他的安全性是其他很多语言比不上的。从数据库的角度来说,MySql数据库现在的应用非常多。很多中小型系统都采用它作为主数据库。由于它是开源的,并且性能也是比较好的更加兼具体积小的优点,成为很多开发人员喜欢才用的数据库。作为一个关系型数据库的典型代表,该数据库的特点是将数据依据类型用不同的表去存储。在WEB应用方面Mysql可以说是最好的数据库之一。对于一般的应用开发来说,他的性能可以说是绰绰有余。在这个系统的开发中,我们要用一个数据库来存放相关信息,比如员工、快件等信息。通过上文的分析,这一点MySql数据库绝对可以胜任。另外还要制作分别针对公司员工和用户的网页。即后台页面与前台页面。就可以可实现相关功能。对于后台,我们可以用Java 和MYSQL来实现。至于网页可以用jsp来实现各种功能以及进行前台的数据展示。还可以用Javascript来辅助实现特定的功能。从上文的分析可以得出结论Java语言对于后台管理以及前台页面的实现绝对可以完成。所以在技术上该系统是可行的。3.1.2经济可行性从经济角度看,快递信息管理系统对系统的投资不是很大,只需要很少的投入便可以得到一个可以极大地提升办公效率的软件。另外系统应用后节约的人力物力绝对要比该系统开发时投入的费用要多。在以前没有类似系统的时候,若采用的是人自己去管理。造成的结果是效率低下,并且不方便管理,而用人去干活有时还比较容易出现错误。有了这个管理系统之后情况会大为改观。软件的效率绝对比人要高同时不容易出现错误,并且所有的操作在电脑上都有据可查。从本系统开发带来的效益的角度出发,系统开发成功会减低人员费用的支出,办公用品的支出,同时,规范了管理的流程。让每个人各司其职。从开发的角度上讲,这个系统的功能并不复杂,并且用到的技术也是比较成熟的技术。Java做管理系统是一个很常见的应用领域。现在管理系统领域里Java和.net绝对是首选。而java写的系统一般并发性和安全性方面比后者还是强很多。在开发中我们只需要尽快理清快件管理的流程和各种业务逻辑,而后可以在很短的时间内利用代码模拟功能从而完成整个系统的编写。而快递信息管理系统的模块并不多,所以编写系统用到的花费很少。从维护角度讲,本系统只需要将后台应用挂到服务器上即可正常工作。修改和维护都在后台进行,维护并不需要太大的花费。本系统对于维护的成本要求不高。因此在经济上是可行的。3.1.3操作可行性本系统大概需要1个月的时间完成。第一个星期主要是以看书以及收集有关快递行业方面的资料为主。在这个时间段内我们必须理清大概的业务逻辑和流程。并且对比较复杂的流程和逻辑予以记录。同时要明确系统的模块以及每个模块的功能。接下来就是对系统的分析,设计出系统的详细的结构和模块。画出软件的顶层和第二层的流程图。并且设计出实体类,然后对数据库进行设计。确定要用到的技术和框架。做好准备工作之后。便是编码的开始了,首先搭建开发环境,编写实体类以及数据库的操作,而后是逻辑处理操作。最后测试下jsp前台的显示的效果。最后是设计前台界面。所以该系统的开发对于熟悉Javaee编程的作者来说是可行的。3.2 系统功能分析3.2.1 用户模块部分的主要功能本次开发的快递信息管理系统侧重后台操作。在前台可以进行的操作比较有限,主要有以下操作:1. 快件查询作为一个快递公司,最基本的功能肯定就是用户对于自己快件的查询了。因为每个人都想随时掌握自己东西动态。在查询结果中如果存在就显示相关信息,没有要进行友好提示。显示快件信息时要显示快件的历史流转记录包括快件到达每个网点的时间、状态以及下一个网点的信息。2. 公司主页的显示为了能更方便地推广自己的公司,很多公司都会在网上挂上自己公司的主页。这样一来可以让用户更加了解自己的公司。二来可以给自己公司做个广告。还可以展示公司的动态及信息。3.2.2 管理员模块部分的主要功能1. 员工管理作为一个管理系统,对于自己公司员工的管理是必不可少的。通过该系统可以添加、删除、修改以及查询员工的信息。并且该系统对于员工还是有一定分级的,不同等级的员工拥有的权限不同。最底层员工等级最低,可以进行的操作数最少。等级越高,可以进行的操作自然越多。而权限的等级体现在看到的界面不一样。高等级用户看到的界面有更多的超链接和按钮。2. 用户名、密码管理以及个人信息管理每个员工在系统里都有唯一的用户名,作为用户登录时所用,并且用户名在用户被添加之后只能被用户修改一次。另外用户也可以在系统里对自己的登陆密码进行修改操作。员工登陆系统之后可以修改自己的相关信息。3. 网点管理网点作为快递公司运输中转站,他们的地位是非常重要的。在系统中我们可以方便地添加、删除、修改以及查询网点的信息。如同员工操作那样。不同类型的网点操作也是需要一定的权限的。不同等级用户可以对网点进行的操作不同。另外,显示每个每个网点还可以查看快件总数、问题件总数、退单总数等信息。不过也需要一定的用户等级才可以查看这些高级一点的信息。4公司信息单显示这个是用来显示公司总的信息单。包括快件总数、问题件总数、退单总数、今年总收入和今年已处理快件数量等信息。这个信息只有公司的高层员工登陆之后才可以看到。5快件管理这个是该系统的核心也是难点所在。主要功能有快件的添加、修改状态、查询。其中查询可以通过多种关键字查询,包括根据单号查询,根据目的地查询,寄件地址、根据发件人查询,根据收件人查询。同时查询还是有范围的,分别为查询当前网点和查询所有网点。而快件状态的改变则是整个系统的关键所在。快件状态包括待审核、待发出、已发出、正派送、已签收、退单、问题件七个状态。在快件的物流过程中始终围绕这几个状态不停地改变。直到最后变为已签收状态。而在快件查询中我们要在页面中显示浏览每个快件的历史记录的超链接。在这个页面中我们可以浏览每个快件的物流历史记录。3.3数据流图3.3.1顶层数据流图顶层的数据的数据流图如图3.1所示。后台员工操作改变快件的状态。根据实际情况操作来改变快件的状态。而在前台用户通过前台查询页面查询自己快件的状态。 图3.1 顶层数据流图3.3.2一层数据流图一层数据流图如图3.2所示,不过将系统划分为员工管理、网点管理、快件管理、个人信息管理以及前台的快件查询等五大模块。也将每个模块用到的数据库写明了。图3.2一层数据流图3.3.3二层数据流图将顶层数据流图展开后得到了员工管理、网点管理、快件管理、个人信息管理以及前台的快件查询等五大模块。将一层数据流图展开之后得到每个模块的详细的数据流图。(1)员工管理模块包括对员工增删改查以及重置密码等功能,不过要有一定权限才可以进行每个操作。如图3.3图3.3员工管理模块(2)网点管理模块包括对网点增删改查等功能,同样也要有一定权限才可以进行每个操作。如图3.4图3.4网点管理模块(3)快件管理模块包括对快件的增加、改变状态、查询、问题件管理以及退单管理等五个功能模块,同样也要有一定权限才可以进行每个操作。并且快件的状态分为审核、待发出、已发出、正派件、已签收、退单和问题件。快件的最终状态一定是已签收。问题件处理完毕之后状态也要改为已签收。退单则是将收件与发件信息互换,并且开始新的一轮物流。如图3.5 图3.5快件管理模块(4)个人信息管理模块包括用户信息修改、密码修改、用户名修改三个功能。如图3.6。 图3.6个人信息管理模块(5)用户查询模块只包括用户查询快件的功能。如图3.7 图3.7前台用户查询模块 4快递信息管理系统的总体设计网站主要功能,如图4.1所示: 图4.1 系统架构图从上图可以明显看出本系统的结构。快递信息管理系统的功能侧重于快件管理这块,所以这块的业务逻辑比较复杂。模块也比较多。4.1 用户模块介绍图4.2 用户功能模块图从上图可以看出,用户模块的规模比较小,只有一个前台供用户查询的功能。这也是本系统提供给用户查询快递信息的界面。4.2 管理模块介 图4.3 管理功能模块图从图4.3看出后台管理三大模块包括:(1)员工管理:其包括员工的添加、删除、修改以及查询员工的信息。员工添加员工时,只能添加员工等级比自己低的员工。所以只有员工等级在1级即最低级以上的员工才可以进行员工的添加操作。修改员工时也是同一个道理,一个员工只能修改比自己等级低的员工的信息。1级以上才可以进行员工修改操作。删除也是只能删除比自己等级低的员工。查询用户的功能是所有员工都可以进行的。另外员工还可以修改自己的用户名以及密码等特殊信息。用户被新增之后默认的用户名是自己的电话号码。用户可以进行一次用户名的修改。用户名一经修改就不能再次修改了。并且用户名要做到唯一性。修改密码则要先输入原密码验证再输入两次新密码才可以成功修改。(2)网点管理:其中包括网点的添加、删除、修改以及查询网点的信息。另外还有显示网点的快件总数、问题件总数、退单总数以及总收入等相关类型的统计类信息。(3)快件管理:这是整个系统的核心。包括揽件、快件列表、快件物流、问题件管理、退单管理以及快件后台查询等。其中快件查询是一个比较重要的小模块。公司员工可以通过多种方式比如运单号、寄件人、收件人、寄件地址以及收件地址等查询快件的相关信息。同时在查询页面中我们可以查看快件的历史流转过程记录。主要包括快件在什么时候到达那个网点以及状态等信息。这个历史信息由一张专门记录历史流转记录的数据库表去记录。4.3数据库介绍本系统数据库的功能主要是存储网站中所有数据,以便进行操作。本系统共有三张表,分别为express、employee、point以及historyRecord分别对应快件,员工、网点以及历史流转记录四个实体类。4.3.1 实体关系图图4.4实体关系模型图4.3.2 数据表结构1. 数据表employee该表比较简单,主要用来管理员工的个人信息以及用户名及密码等相关信息,表的结构如表4-1所示:表4-1 数据表employee字段名称数据类型说明id自动编号编号loginName文本用户名password文本密码loginNameStateint用户名状态Name文本姓名gender文本性别phoneNumber文本电话email文本邮箱levelint用户等级birthdaydatetime生日address文本地址imagePath文本头像地址pointIdbigint(20)所在网点的编号2. 数据表point该表存储了网点的相关信息,该表结构如表4-2所示: 表4-2 数据表point字段名称数据类型说明id自动编号编号Name文本姓名address文本地址phoneNumber文本电话email文本邮箱3. 数据表express该表存储了快件的相关信息,该表结构如表4-3所示:表4-3 数据表express字段名称数据类型说明id自动编号编号expressNumber文本运单号state文本状态postAddress文本寄件地址receiveAddress文本收件地址postName文本寄件人receiveName文本收件人pricedouble运费postPhoneNumber文本寄件人电话receivedPhoneNumber文本收件人电话stateTimedatetime状态改变的时间pointIdbigint(20)所在网点的编号nextPointIdbigint(20)下一个网点的编号4. 数据表historyRecord该表存储了快件的历史流转相关信息,该表结构如表4-4所示: 表4-4 数据表historyRecord字段名称数据类型说明id自动编号编号state文本状态datedatetime状态改变时间expressIdbigint(20)快件的idpointIdbigint(20)网点的id 5快递信息管理系统的详细设计5.1 数据库的实现数据库的的表并不是我们自己创建的。我们只要创建一个数据库并且将数据库名称写到Hibernate框架要连接的数据库名称上。并在配置文件中将相关的配置信息一起写入。比如连接的URL、用户名、密码等信息。但是在本系统中由于使用了Spring框架。所以数据库的连接配置信息写到了Spring的配置文件中,有spring来管理数据库的连接。并且事务的处理采用spring的申明式的事务处理方式。但启动服务器时Hibernate框架就可以根据我们写的实体类生成相对应的数据库的表。并且数据库中表的维护也是依靠框架来进行。也就是说如果我们修改了实体类的属性框架将会自动更新对应的表。而且可以通过简单的配置实现多个表之间外键的关联。在本系统中实体类一共有三个分别为Employee、Point、Express三个实体类。对应于前文提到的员工、网点和快件三张表。将三个实体类的属性写完之后。分别为每个实体写一个对应的配置文件并将其路径写到Hibernate的配置文件中。当数据库表被创建之后,实体类中的属性对应的将是表中的字段。org.hibernate.dialect.MySQL5InnoDBDialect truetrueupdate上面的代码是Hibernate的配置文件。可以在图的下方看到导入的三个实体类的配置文件的地址及名称。其中Hibernate.dialect的值表示的本次开发用到的是数据库是MySql数据库。而hbm2ddl.auto的属性值为update表示每次启动服务器是Hibernate框架将会检查数据库的表结构和对应的实体类的配置文件,如果发现有变动则更新数据库中表的结构。5.2 主要功能的实现5.2.1 前台模块前台的主页面如下图所示: 图5.1前台查询页面从图5.1可以看到前台的查询页面的全貌。在主页中,我们看到的是一个非常简洁的页面。通过在输入框输入运单号之后点击查询按钮便可以进行查询操作。如果未输入运单号进行查询便提示请输入运单号再查询。如果数据库没有这个运单号便提示运单号不存在。如果查询成功的话便跳转到结果显示页面。显示的格式为:在XXXX时间到XX网点,下一个网点为XX。每行显示一个历史流转信息。5.2.2后台模块主页 图5.2系统主页面如图5.2所示是本系统后台管理的主界面。主界面的结构是一个frameSet的结构。一共有四个部分top部分就是最上面的深蓝色部分。这个用来显示系统名称、退出按钮、当前登陆用户的姓名等信息。点击个人设置按钮转到的是用户的个人信息的显示页面。Bottom部分是最下面深蓝的部分,显示版权的相关信息。Left部分是菜单部分,根据登陆员工的等级不同,看到的菜单页面会有所不同。right部分是白色的那块。这个页面是用来显示网页的。当点击左边的菜单时,在右边的模块显示相应的页面。本系统还进行了一定的权限控制,并且将员工一共分为4级。每一级员工可以进行的操作及查看的数据可能会有不同。而超级管理员作为4级用户拥有的是系统的最高的权限。当浏览器访问系统时会先判断用户是否已经登录系统,同时判断用户访问的页面类型。如果进行的是前台查询操作以及后台的用户登录和注销操作则放行。如果不是就转到登录界面。5.2.3用户登录图5.3系统登录页面如图5.3所示的就是本系统的登陆页面。在蓝色的背景图片上有两个输入框分别为用户名输入框和密码输入框。右边有一个登录按钮。当点击登陆按钮后。后台的Action类会查询数据库看一下登陆信息是否正确。如果正确则登陆进入系统的主页面,否则返回登陆页面并且用红色的字体提示用户名或者密码错误。同时将输入的用户名回显。5.2.4员工管理图5.4员工列表页面如图5.4,显示的是公司所有员工相关信息的列表,当员工等级为1时只能看到员工列表。并不能看到后面的相关操作一列中的删除员工,修改员工,初始化密码等连接。同时还有新建员工的按钮也看不见。也就是说不能进行以上的操作。当员工等级为2及以上时可以看到删除链接,修改链接以及新建按钮。但是当该行的员工等级比自己高或者和自己一样就不能看到删除和修改链接。即员工只能管理比自己等级低的员工。并且只有当员工等级为4即超级管理员才可以对所有用户进行初始化密码的操作。图5.5员工修改和新增页面上图显示的是用户的添加页面和修改页面。由于两个界面相同,所以采用同一个页面来进行操作。在操作时如果页面传过来的用户id的值是null则表示是新增操作,否则就是修改操作。修改用户时要将要修改的用户的信息回显到页面上。这一点采用Struts2框架的特点来写属性和方法就可以达到目的。同时要将网点和职位的相关信息也封装显示到页面中。当点击保存按钮是会弹出提示框如果保存成功会提示执行成功,点击确定会跳转到用户列表的页面。如果保存失败会提示执行失败,点击确定并不会跳转页面依旧会留在当前页面。而新增的时候只要将职位和网点信息查询出来后显示到页面上。当页面提交的时候后台Action将数据封装好存到数据库。当提交表单时会弹出提示窗口,如果提示操作成功,点击确定会转到员工列表页面。5.2.5个人信息管理 图5.6个人信息页面上图显示的是我的信息页面。显示的是当前登陆的用户的个人信息。如果要修改个人信息只要点击下面的修改按钮就进入修改页面。 图5.7修改个人信息页面上图显示的用户修改个人信息的界面。页面显示的时候会回显用户的个人信息。这个同样是利用Struts2框架完成的。当点击保存按钮时会弹出提示窗口,如果提示执行成功,点击确定后会转到个人信息页面。 图5.8用户名修改页面上图是员工修改自己的用户名的界面。当员工要修改自己的用户名时,系统会判断用户是否已经修改过用户名,如果修改过则提示用户名已经修改过了。如果没有修改过用户名则显示修改用户名的文本框,当输入完毕将光标从文本框移开时采用异步交互的方式提交新用户名并进行检测,然后在文本框后面提示用户名是否已经存在。如果存在则需要修改用户名,否则修改不会成功。如果不存在则可以进行提交修改。提交表单之后弹出提示窗口提示修改是否成功。 图5.9密码修改页面上图显示的是用户修改自己密码的操作。首先需要输入原来的密码。当光标移开时异步提交输入的原密码到后台判断是否正确。如果不对则在文本框后面用红色字体提示密码错误。如果正确则提示密码正确。下面两个密码框输入的就是新密码。并且必须按照写明的要求输入,两次输入的密码必须一致才可以修改。点击保存按钮后弹出提示窗口提示修改是否成功。5.2.6网点管理图5.10网点列表页面上图所示的是网点信息的列表,如果员工等级在3级及以上可以看到删除、修改、新建等超链接。此时可以对网点进行操作。3级以下的员工只能查看到网点列表。点击查看详情链接可以转到网点详细信息的页面。到那可以看到网点当前的库存总数、问题件总数和退单总数等每个网点的统计类的相关信息。图5.11网点新增和修改页面上图显示的是网点的新增和修改页面。修改网点时同样要回显网点的相关信息。提交时同样会弹出提示窗口。如果操作成功的话点击确定会转到网点的列表页面或者个人网点信息的页面。5.2.7 快件管理图5.12当前库存列表页面上图所示的是当前登陆员工所在网点的快件列表.不过还有问题件列表和退单列表也使用的是同一个页面,只是显示数据时查询数据库的语句不同。但是显示数据的列表是一样的。但显示当前网点可处理的列表是快件表中字段pointId为当前网点id,或者快件表中字段nextPointId为当前网点的id.就是说在当前网点的快件或者下一站为当前网点的状态为已发出的快件的列表。在这个页面中任何等级的用户都可以进行快件管理。如果是问题件就显示问题件管理,点击超链接表示问题件处理完毕将状态变为已签收。如果是退单则显示退单管理,点击超链接表示将快件的寄件相关的属性与收件相关的属性调换,运回到寄件地址。 图5.13快件管理页面上图显示的是快件管理的页面.快件管理主要是管理快件的状态和即将发放的网点。快件的状态一共有待审核、待发出、已发出、正派送、已签收、退单以及问题件7种。可以在下拉菜单中选择任意的状态然后提交去修改。而点击下方的改为问题件按钮和改为退单的按钮可以将快件状态改为问题件和退单。当添加一个快件时,快件的状态默认是待审核,如果状态改变为待发出和正派件则只改变快件的状态并且记录下状态改变的时间。如果改为已发出,则要将pointId的值改为null,并且要指定nextPointId即下一个网点id。同时也要记录状态改变的时间。 图5.14新增快件页面上图显示的是快件的添加页面。点击保存时如果保存成功会弹出提示按钮。5.2.8后台快件查询图5.15快件后台查询页面上图显示的是后台的快件的查询页面我们可以根据运单号、收件人、寄件人、收件地址、寄件地址查询当前网点以及所有网点的快件。查询结果显示在当前页面中。并且在查询结果显示页面中也可以进行上文提到的快件管理。同样也是只能管理当前页面的快件以及下一个网点为当前页面的快件。5.2.9 公司统计

温馨提示

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

评论

0/150

提交评论