全文总字数:7521字
1. 研究目的与意义(文献综述)
1.1、题目:基于移动平台的网上办单与审批系统的设计与开发
1.2、背景资料:
港口信息化建设是港口现代化的标志,人们根据综合整理过的港口信息可以便捷快速的处理一系列的任务达到提高经济效益的作用。港口除了成吨的货物还蕴含着海量数据信息,在这个信息时代我们不能让港口仅仅成为一个物流中心还要懂得结合一些前沿技术将港口开发成一个信息中心。
2. 研究的基本内容与方案
2、基本内容和技术方案
2.1、基本内容:
2.1.1、总体结构
整体分为两个模块,客户端模块和港口端模块。
客户端模块分为:
(1)船舶资料管理
船舶资料查询从港口数据库中查询所有船舶资料
船舶资料录入录入船舶资料数据到港口数据库中
(2)提交装卸作业委托书管理
装卸作业委托书查询 从港口数据库中查询本公司的所有装卸作业委托书(内容、提交时间、港口确认时间及人员)
装卸作业委托书录入 录入装卸作业委托书数据到港口数据库中
(3)提交发货指令管理
查询发货指令从港口数据库中查询本公司的所有发货指令(内容、提交时间、港口确认时间及人员)
录入发货指令录入发货指令数据到港口数据库中
港口端模块分为:
(1)装卸作业委托书管理
查询装卸作业委托书 从港口数据库中查询所有装卸作业委托书(内容、提交时间)
确认装卸作业委托书 录入是否同意、作业时间、地点数据到港口数据库中
(2)发货指令管理
查询发货指令 从港口数据库中查询所有发货指令(内容、提交时间)
确认发货指令 录入是否同意、作业时间、地点数据到港口数据库中
系统模块图如图1所示。
图1 系统模块图
2.1.2、功能说明
各部分功能如图所示:
船舶资料管理活动图
(1)船舶资料查询
图2 船舶资料信息查询
(2)船舶资料的录入
图3 船舶资料录入
装卸作业委托书管理活动图
(1)装卸作业委托书查询
图4 装卸委托书录入
(2)装卸作业委托书的申请及审批
图5 装卸作业委托书的申请及审批
发货指令管理活动图
(1)发货指令查询
图6 发货指令查询
(2)发货指令的申请及审批
图7 发货指令申请及审批
2.2、技术方案:
2.2.1、设计方法
设计的方法大致可为:理论学习、交流讨论、编码调试、测试优化等。
1、理论学习中主要为学习微信小程序编码技术,熟悉微信小程序开发平台,能熟练的运用该技术进行项目开发。其次则是关于毕业设计选题的相关内容学习,了解设计该系统的主要目的和系统的功能需求;
2、交流讨论,在例会或者周间和老师同学等进行交流,解决自己在理论学习中或则编码中所遇到的问题;
3、编码调试,在对系统进行详细的总体设计后开始编码工作并能够根据设计方案实现该系统;
4、测试优化,在实现系统后对其进行测试,针对在测试中碰到的问题进行调试及优化,确保系统的可靠性。
2.2.2、技术要求
该系统的使用的主要技术用微信小程序应用开发、MySQL作为后台数据库。使用微信小程序技术开发应用端用java,用java编写后端api。主要框架springboot,开发工具myeclipse,服务器阿里云服务器,开发服务端。
1、微信小程序开发技术:
(1)使用 JSON 技术来表现应用的配置信息。包含应用的基本信息,页面配置和路由,应用全体的信息等。
(2)使用经过定制 CSS XML 技术来实现视图层的描述。画面元素,例如列表、按钮、文本框、选择框等都通过 XML 语言来描述,遵从 XML 语法,对于页面的共同风格,使用 CSS 进行定义。
(3)使用 JavaScript 语言来实现逻辑层结构。包括用户操作的处理,系统 API 的调用等。
(4)架构在视图层和逻辑层之间提供数据和事件传输功能,从而尽量减少难度。
2、后端框架
(1)DAO层只是封装增删改查,比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查。至于增删查改如何去实现一个功能,dao是不管的。在接口中对方法进行了定义,在UserDao.xml中给出了sql语句实现。
(2)entity实体层,放置一个个实体,及其相应的set、get方法。如果想要对数据库进行一些操作(比如说读取)的话,就要先写entity层。
(3)Service层 粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。service层里面的方法相较于dao层中的方法进行了一层包装,例如通过id查找用户,通过用户名查找用户,是在基础的操作上又增加了一层包装的,实现的是相对高级的操作。最后将这些操作在serviceimpl类中实现。
(4)Controler主要处理外部请求、负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。
(5)View层 此层与控制层结合比较紧密,需要二者结合起来协同工发,View层主要负责前台jsp页面的表示。
(6)Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Entity层进行传递的。
3、使用MySQL作为后台数据库
与其他的大型数据库例如Oracle、IBM DB2、MS SQL等相比,MySQL自有它的不足之处,如规模小、功能有限等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人用户和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源代码软件,因此可以大大降低总体拥有成本。
其特点有:
(1)使用C和C 编写,并使用了多种编译器进行测试,保证源代码的可移植性。
(2)支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell NetWare、NetBSD、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
(3)为多种编程语言提供了API。这些编程语言包括C、C 、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
(4)支持多线程,充分利用CPU资源,支持多用户。
(5)优化的SQL查询算法,有效地提高查询速度。
(6)既能够作为一个单独的应用程序在客户端服务器网络环境中运行,也能够作为一个程序库而嵌入到其他的软件中。
(7)提供多语言支持,常见的编码如中文的GB 2312、BIG5,日文的Shift JIS等都可以用作数据表名和数据列名。
(8)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
(9)提供用于管理、检查、优化数据库操作的管理工具。
(10)可以处理拥有上千万条记录的大型数据库。
2.2.3、可行性分析
1.条件分析:港口网上办单系统运用微信小程序应用开发前端、MySQL作为后台数据库。java的SSM框架编写后端的框架,条件上可行。
2.技术可行性:微信小程序的框架包含两部分View视图层、App Service逻辑层,View层用来渲染页面结构,AppService层用来逻辑处理、数据请求、接口调用,它们在两个线程里运行。视图层使用WebView渲染,逻辑层使用JSCore运行。视图层和逻辑层通过系统层的JSBridage进行通信,逻辑层把数据变化通知到视图层,触发视图层页面更新,视图层把触发的事件通知到逻辑层进行业务处理。技术上可行。
3.可操作性:微信小程序和SSM架构都是现在主流开发技术,可操作性强。
2.2.4、拟解决的关键问题及解决办法
1.登录模块设计。
负责人填写申请单,总经理进行审批然后入库员审批,管理员可以查看所有审批结果。登录者需要填写正确的登录账号和密码,并选择相应权限,当点击登录按键后,系统会识别相应身份的登录账号是否存在,密码是否正确。如果无误则跳转至各自响应的主界面。登陆页面的逻辑代码写在LoginServlet.java中,在这个.java文件中通过request.getParameter从界面获取到登录时的账户名、密码和权限。通过request.setAttribute保存用户的账号、姓名、所属公司和权限以便在其他页面获取使用。
2.信息录入模块设计。
本系统涉及到的信息录入模块分别有:录入船舶资料、录入装卸作业委托书、录入发货指令,由于功能性质相似就放在一起描述了。相对应的界面分别是:entershipinformation.jsp、enterauthorizeletter.jsp、enterinstruct.jsp,与这些JSP相对应的servlet分别是:AddshipServlet.java、AddletterServlet.java、AddinstructServlet.java。用户在各页面填写表单确认申请之后会触发与之相对应的.java文件(servlet函数),这些servlet函数获取到用户填写的所有数据然后再调用DAO层的包含有SQL语句的函数,从而实现控制
3.信息查询模块设计。
本系统涉及到的信息查询模块分别有:查询船舶资料、发货指令的申请查询、装卸作业委托书的申请查询。相对应的界面是各自对应的searchapplyinforma
tion.jsp,为了让用户每次点击菜单时就可以查询到数据显示在页面,使用的方法是将各JSP页面对应的servlet地址放在菜单栏对应的地方。将数据存入数据库。
4.审批表单模块的设计。
本系统涉及到的审批表单模块分别有:对装卸作业委托书申请的审批和对发货指令的审批。数据库中对每一项任务都由状态标记,根据状态为“未审批”来显示所有待审批的表单,从而总经理和入库员可以对各表单进行处理。总经理处理完之后,表单的总经理审批状态会变更为已审批状态,入库员任然处于未审批状态。待入库员审批结束之后,会更新一个新的审批状态,审批通过或审批未通过,同时总经理和入库员在审批结束的时候数据库会产生一个时间记录,这样用户下次登录时就可以看到每一个表单的审核信息以及各表单在不同审批阶段的处理时间。
5、数据库设计。数据库设计是整个系统的基石,是重中之重。设计出了一个适合系统的好的数据库对后来整个系统的开发起着至关重要的作用。在数据库设计上一旦出现问题,那么后期整个系统的开发都将受到牵连。所以,一定要做好数据库的设计。
拟分为四个阶段进行数据库设计,分别为:需求分析阶段,综合各个用户的应用需求;概念设计阶段,形成独立于机器特点,独立于各个DBMS产品的概念模式(E-R图);逻辑设计阶段,首先将E-R图转换成具体的数据库产品支持的数据模型,如关系模型,形成数据库逻辑模式;然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图(View),形成数据的外模式;物理设计阶段,根据DBMS特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
6、安全管理。微信小程序的安全管理很重要,在获得了灵活性、可以满足各种定制需求的同时,也损失了部分安全性。一旦开发出来的小程序出现了安全性问题,将会导致用户的个人隐私数据可能发生泄漏,账户信息可能被盗取,如果与钓鱼等攻击结合,甚至可能产生经济损失。
2.2.5、预期的研究成果
1、开发设计出一个港口网上办单与审批系统,能够实现客户网上自助办单程序、港口后台审批程序。
2、通过完成港口网上办单系统设计与开发的学习与研究的过程中,不断提升自己,并完成相应的本科生毕业论文。
3. 研究计划与安排
(1)2020/1/13—2020/1/27:确定选题,查阅文献;
(2)2020/1/28—2020/2/23:撰写开题报告,修改开题报告,完善开题报告;
(3)2020/2/23—2020/2/28:翻译文献,修改文献,完善文献;
4. 参考文献(12篇以上)
附录:参考文献
[1] 裘雪红. 计算机专业毕业设计宝典. 西安:西安电子科技大学出版社, 2008.
[2] retor meier著. 王鹏杰,霍建同 译. android高级编程[m]. 北京:清华大学出版社,2010.6
