SSM第三方物流系统
摘 要
科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用Java技术建设第三方物流系统。
本设计主要实现集人性化、高效率、便捷等优点于一身的第三方物流系统,系统功能有后台首页、企业资料、车队资料、车辆资料、厢型分类、司机资料、员工资料、运输登记、出车登记、维修登记、保养登记、事故登记、违章登记、订单管理、财务记录、银行存款、工资管理等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。第三方物流系统使用Java语言,采用基于 MVC模式的SSM框架进行开发,使用 MyEclipse 2017 CI 10 编译器编写,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS 技术完成系统的开发。
关键词:第三方物流系统;MySQL数据库;SSM框架
SSM logistics information system
The rapid development of science and technology has caused tremendous changes in people's daily lives. The rapid development of electronic information technology has made the application level of electronic information technology in various fields popular and applied. The arrival of the information age has become an irresistible fashion trend, and the history of human development is entering a new era. In practical applications, Java technology is used to build logistics information systems based on the working rules and development steps of application software.
This design mainly implements a logistics information system that integrates the advantages of humanization, efficiency, and convenience. The system functions include functional modules such as home page, personal information (personal information, password modification), user management (administrator, logistics enterprise), enterprise information, customer resources, and logistics resources. The system communicates with the server through a browser to achieve data interaction and change. This system improves work efficiency and reduces errors and omissions in data storage through scientific management methods and convenient services. The logistics information system is developed using the Java language and the SSM framework based on the MVC mode, using the MyEclipse 2017 CI 10 compiler. The data aspect mainly uses Microsoft's MySQL relational database as the data storage medium, and cooperates with the front-end HTML+CSS technology to complete the system development.
Key words:Logistics information; mysql database; SSM framework
目录
第一章 绪 论
1.1课题开发背景与意义
随着社会分工的不断深化和经济的迅猛发展,物流业发展到一定阶段必然会出现第三方物流。西方国家的物流业实证研究证明,独立的第三方物流至少占社会的50%时,物流产业才能真正形成,第三方物流的发展程度反映和体现着一个国家物流业发展的整体水平.近年来,在中国政府高度重视下,物流业发展取得了巨大成绩,尤其在第三方物流新型理念影响下,很多原来从事运输、仓储、配送等业务的物流企业都有向第三方物流发展的趋势,甚至出现了实力雄厚的大型第三方物流企业集团。但是同发达国家相比,中国物流业发展水平整体上相对落后.第三方物流(Th i rd p art logis t ic s ,即3PL)作为一个新兴产业,在中国的发展历程很短,无论从产业规模、结构还是从产业绩效等方面,与发达国家相比都存在明显差距.第三方物流是指由与货物有关的发货人和收货人之外的专业企业,即第三方来承担企业物流活动的一种物流状态。它指有物流劳务的供方和需方之外的第三方去完成物流服务的物流运做方式,可以说它是物流专业化的一种形式。这种物流服务形式是建立在现代消息技术基础上的、企业之间的联盟关系。所以,通俗的说,第三方物流其实其实就是将自己企业“不拿手”的送货,贮藏和发货到每个门店这样的“细致”活交给更专业的物流公司来做。而这个物流公司不是商业企业自己的,而是商业企业的一个合作者,对于厂家和零售商而言,它是第三方,所以这种先进的物流方式就叫做第三方物流。针对这一情况,论文研究目的是探讨我国第三方物流发展的问题,提出适应中国国情的建设性策略,积极探索和构建符合中国实际情况的第三方物流发展模式,以促进我国第三方物流更快更强发展。论文以我国第三方物流发展为主线。
1.2 国内外研究现状
随着我国社会主义市场经济的不断发展和完善,我国第三方物流企业也随之不断发展和壮大,对第三方物流的研究也在不断深入。
2008年,王道平在《现代物流管理》中对第三方物流一体化进行了研究并做了生实证分析并指出,为了加快我国第三方物流企业发展,应加快产权制度改革,加强信息系统和网点建设,加强政府的协调指导作用,强化增值服务,推动物流企业重组联盟,加强人力资源建设。
2007年,王瑾在《财经》上指出,面对经济全球化趋势和加入WTO后国外大型物流企业抢滩国内市场,我国第三方物流企业生存并发展壮大的重要途径就是实现物流企业的战略联盟,并对建立物流联盟的可能性给予了分析,提出了我国第三方物流企业构建战略联盟的方式。
2007年,李红霞等在《经济理论与经济管理》中指出,在当今电子商务高速发展的环境下,第三方物流出现信息化、自动化、联盟化、网络化、个性化和柔性化等趋势,建立与之相适应的发展新模式已成为中国物流企业需要解决的重要问题。
2005年,张永在《当代经济科学》针对第三方物流企业物流设施网络设计相关研究的不足,以第三方物流结点的布局方法为研究主题,对候选物流结点的评价与选择、模糊环境下物流结点布局模型的建立与求解及物流阶段布局方案的评价与选择等问题进行了重点研究。张亦弛在《南方日报》中利用层次分析法的思想,建立了第三方物流组织层次模型,并进行分层描述,分析了第三方物流组织协作流程模型,对第三方组织内部的协作模式做了整体的描述。
1.3本文的组织结构
第一章是绪论,本文章的开头部分,对本题目的研究背景与意义和国内外研究现状等一些做文字性的描述。
第三章是系统分析部分,包括系统总体需求描述、功能性角度分析系统需求、非功能性等各个方面分析系统是否可以实现。
第四章是系统设计部分,本文章的重要部分,提供了系统架构的详细设计和一些主要功能模块的设计说明。
第五章是系统的具体实现,介绍系统的各个模块的具体实现。
第六章在前几章的基础上对系统进行测试和运行。
最后对系统进行了认真的总结,以此对未来有一个新的展望。
2.1 J2EE技术
人可以掌握多门外语,而一个计算机科学家精通的大多是编程语言,它不是人类的自然语言,比如C语言、Java、Perl等等。由于不同的公司开发出的“中间件”不够规范,所以Sun公司推出J2EE,用这个标准来解决弊病。它提供了良好的机制,让每个层次允许与之相对的服务器、组件运行,使得系统的搭建稳定可用、开发高效、维护方便。
2.2 MVC模式
MVC模式是常用的开发模式,主要是在代码实现上将其分为M层、V层和C层。
视图(View)代表物流企业交互界面,一个 Web 应用就可能有很多的界面,在 MVC 模式中,视图仅仅处理的只有数据采集、处理,还有物流企业的请求, 并不包括业务流程的处理,业务流程由模型(Model)来处理。
模型(Model)就是业务流程/状态的处理及业务规则的制定。模型处理业务流程的过程其它层是无法看见了的,它就像黑箱子,在接受视图请求的数据之后,然后返回最终的处理结果。MVC 最主要的核心就是业务模型的设计,一个典型的应用例子就是目前流行的 EJB 模型,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但是它不能作为应用设计模型的框架[4]。
控制器(Controller)可以理解为接收物流企业的请求,然后视图和模型匹配在一起,一起再完成物流企业请求。它有非常明显的作用在划分控制层上,可以很清晰地告诉你,它就是一个分发器,选择什么样的模型、视图,可以完成物流企业的什么样的请求。控制层不做所有的数据处理,比如说:物流企业点击一个连接,控制层接受到请求之后,并不处理业务信息,它只是向模型传递物流企业的信息,同时告诉模型做什么,然后选择符合需求的视图返回给物流企业。
2.3 MySQL数据库
科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的第三方物流系统也需要这项技术的支持[7]。
用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象[8]。
2.4 B/S结构
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题[9]。
2.5 SSM框架
SSM即SpringMVC+Spring+Mybatis,这三个框架有各自最独有的优势,那么将它们组合在一起能够碰撞出很强的火花。设计者在不需消耗大量功夫,能做出Web应用程序,而且这个程序还具有层次清晰、升级更新操作不影响正常使用的、允许多次使用的特点。这个复合框架形成一个有着结构完整、功能强大和结构良好的体系:SpringMVC使各板块分离,Spring使开发更灵活方便,使用Mybatis让开发者直接对对象进行操纵,各层次分工明细,并实现各个层次间的解耦,让代码更加的灵活精简。这个框架使程序员能够规避在开发时期避免个别错误导致整体被破坏,也能在后期应对客户对产品提出的新需求[10] [11]。
2.6 MyEclipse开发工具
MyEclipse是由Genuitec公司开发的,一款功能非常强大的JavaEE的集成开发环境,其中包括有:完备的编码、调试、测试和发布功能[10],完整支持JSP、Spring、CSS、JavaScript、SpringMVC、HTML、JSF、Mybatis、SQL等技术。在体系结构上,MyEclipse的特征可以被分为7类:JavaEE模型;Web开发工具、EJB开发工具、JavaEE项目部署服务、应用程序服务器的而连接器、数据库服务、MyEclipse整合帮助[11]。
对于以上每一种功能的类别,在MyEclipse中都有相应的功能部件,并通过一系列的插件来实现它们。MyEclipse在结构上的这种模块化,可以让它在不影响其他模块的情况下,对其中任意的一个模块进行单独的扩展和升级。强大的MyEclipse应用开发平台也不仅仅只是Eclipse的插件而已,同时更是一款功能强大的,用于JavaEE的集成开发环境[12]。
第三章 系统分析
3.1需求分析
任何一个项目在开发研究前,都需要对研发系统本身的需求做一个认真的分析,市场的调研是不可忽视的,从实际场景中确定使用人员的功能需求,从而明确目标,对整个系统的开发有一个更加准确的定位,在这个章节,需要对系统的性能分析,业务流程分析,和数据等进行分析,第三方物流系统的整体界面简单,功能完善。
需求的可行性是分析和讨论发达的系统能达到什么样的要求。开发的系统平台是否符合之前的要求。只有在预先评估系统的开发中,才能在系统开发和实施之前完成需求。如果您不具备开发一个功能不合格的系统的可行性,那就是开发失败。开发系统是否有用,可以完成之前讨论过的需求,以下分析了第三方物流系统的实际需求。
系统设计需要从第三方物流系统设计的实际需求开始,以了解他们需要实施哪些功能以及他们可以包括哪些管理工作。
考虑到第三方物流系统设计的特点,应满足几个要求:
(1)它可以通过网络开展第三方物流系统信息管理工作,促进对第三方物流系统信息管理。
(2)第三方物流系统设计管理员可以查看车队资料、司机资料、企业资料等;
(3)它提供了一个免费的渠道,以确保数据的实时有效沟通。
3.2可行性分析
3.2.1技术可行性:技术背景
第三方物流系统采用了SSM技术,开发了功能完备、使用简单的前端应用程序,并建立、维护了一个数据完整、安全、稳定性强的后台数据库系统。
系统使用SSM技术和Mysql数据库作为设计工具,可简单易行地学习操作。管理员之间的相结合开发一套第三方物流系统是值得尝试的,数据完整性和许多品质为数据的功能分配和管理提供了依据。它也是数据库安全平台的重要组成部分,是提高和增强数据安全性的重要手段。此外,为了提供更平滑,更智能和更有效的基本控制方法,定义了同时构建对安全计算环境的支持所需的步骤,并帮助维护安全性。因为在这两种开发工具中,功能强大且免费且界面良好,所以第三方物流系统在技术方面是可行的。
3.2.2经济可行性
第三方物流系统管理的开发是由开发者自己开发,不需要购买其他软件或者端口之类的,而且在第三方物流系统管理的开发之前所做的市场调研及其他的第三方物流系统,都是没有任何费用的,通过开发者自己的努力,所有的工作的都是自己亲力亲为,在碰到自己比较难以解决的问题,大多是通过同学和指导老师的帮助进行相关信息的解决,所以对于第三方物流系统的开发在经济上是完全可行的,没有任何费用支出的。
使用SSM技术是比较成熟的技术,所以第三方物流系统的开发在经济上是没有问题的。
3.2.3操作可行性:
可操作性主要是对第三方物流系统设计完成后,是为了让企业的使用者更加方便的进行管理物流相关联的一些信息,通过界面导航菜单可以简单明了地操作功能模块,对于系统的操作,不需要专业人员都可以直接进行功能模块的操作管理,所以在系统的可操作性是完全可以的。本系统的操作使用的也是界面窗口进行登录,所以操作人员只要会简单的电脑操作就完全可以的。
3.3性能分析
对于性能分析,与传统的管理方式相比,传统的管理方式是使用人工通过用纸和笔进行数据信息的统计和管理,并且这种方式对于存储和查找某一数据信息都比较麻烦,随着计算机网络的到来,这种传统的方法很难适应当下社会的发展,不仅降低人们的办事效率,而且还需要很多的人力和物力,对于使用的时间和所要花费的费用都是比较高的,为了降低成本费用,提高物流企业的工作效率,进行开发一套基于计算机和网络技术的第三方物流系统。
第三方物流系统的开发设计时一个独立的系统,以流行数据库进行数据的存储开发,主要是为了实现第三方物流系统的员工及相对应的功能模块,让第三方物流系统的管理不会存在管理差异、低效率,而是跟传统的管理信息恰好相反,第三方物流系统的实现可以节约资源,并且对于业务的处理速度也提高,速度快、效率高,功能性强大。
3.4系统操作流程
3.4.1物流企业登录流程
对于系统的安全性的第一关,就是管理人员想要进入系统,必须通过登录窗口,输入自己的登录信息才可以进行登录,管理人员输入的信息准确无误后才可以进入到操作系统界面,进行功能模块的相对应操作,如果管理人员输入的信息不正确,则窗口出现提示框,管理人员登录失败,返回到第一步进行重新输入,如图3-1所示。
图3-1登录操作流程图
3.4.2信息添加流程
对于第三方物流系统,需要随时添加所需要的数据信息,对于管理人员添加信息,需要根据添加界面,根据选框的内容进行填写所要添加的数据信息,信息输入完成后判断数据信息是否符合要求,符合要求则添加完成,管理人员所添加的信息不符合要求,则需要返回到第一步,重新输入数据信息,再进行判断操作,如图3-2所示。
图3-2 信息添加流程图
3.4.3信息删除流程
不管是哪个管理人员进入到系统操作界面,都可以进行不同的信息内容的操作功能,对用系统数据信息的删除,管理人员一旦将信息删除,那么该删除的数据信息将无法恢复,所以管理人员在对数据删除事,一定判断删除的内容是否是确定要删除的,确定无误后选择确定删除操作,如图3-3所示。
图3-3 信息删除流程图
第四章 系统设计与实现
4.1系统架构设计
第三方物流系统的系统项目的概述设计分析,主要内容物流货物信息的具体分析,进行数据库的是设计,数据采用mysql数据库,并且对于系统的设计采用比较人性化的操作设计,对于系统出现的错误信息可以及时做出处理及反馈。
基于第三方物流系统的设计基于现有的网络信息,可以实现后台首页、企业资料、车队资料、车辆资料、厢型分类、司机资料、员工资料、运输登记、出车登记、维修登记、保养登记、事故登记、违章登记、订单管理、财务记录、银行存款、工资管理等功能。
图4-1管理员功能模块图
4.2开发流程设计
第三方物流系统的开发对管理模块和系统使用的数据库进行分析,编写代开发,规划和操作是构建信息管理应用程序的必要三步曲,它决定了系统是否能够真正实现预设功能以及是否可以在成功设计后实施。在开发过程中,每个阶段必须严格按照线性顺序进行开发,并且在相应阶段生成的每个工作都可以通过技术进行验证和检查。确保一个阶段完成后是正确的,不会造成下一阶段拖拽现象,使系统完成设计功能后得到保证。
从第三方物流系统的成功开发经验来看,上述方法效果最为明显,最大程度地降低了系统开发的复杂性。如图4-2所示。
图4-2开发系统流程图
4.3数据库设计
数据库是信息系统的基础和核心。数据库设计的好坏直接影响到信息系统开发的成败。创建数据库表首先确定实体的属性和实体之间的关系。根据关系创建一个数据表。
4.3.1实体ER图
数据库是整个软件编程中最重要的一个步骤,对于数据库问题主要是判定数据库的数量和结构公式的创建。展示系统使用的是Mysql进行对数据库进行管理,进行保证数据的安全性、稳定性等。
概念模型的设计是为了抽象真实世界的信息,并对信息世界进行建模。它是数据库设计的强大工具。数据库概念模型设计可以通过E-R图描述现实世界的概念模型。系统的E-R图显示了系统中实体之间的链接。而且Mysql数据库是自我保护能力比较强的数据库,下图主要是对数据库实体的E-R图:
(1) 员工资料管理实体属性图,如图4-3所示:
图4-3 员工资料实体属性图
(2)运输登记管理实体属性图,如图4-4所示:
图4-4运输登记实体属性图
(3)工资管理实体属性图,如图4-5所示:
图4-5工资管理实体属性图
(4)维修登记管理实体属性图,如图4-6所示:
图4-6维修登记管理实体属性图
4.3.2数据表
我们可以根据数据结构的详细分析要求,我们根据输入和输出数据量的要求进行分析,确定什么表表,结构之间的关系,我们可以验证,调整和完善,查询和浏览过程,可以实现数据库,以使物流企业对数据和功能有更多要求。
基于系统使用的数据库管理系统的特点,对数据库的概念模型进行了转换和构建。但是,这个系统只需要充分考虑第三方物流系统的功能,而且组织比较清晰。
表accident_registration (事故登记)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | accident_registration_id | int | 10 | 0 | N | Y | 事故登记ID | |
2 | date_of_accident | date | 10 | 0 | Y | N | 事故日期 | |
3 | registration_of_vehicles | varchar | 64 | 0 | Y | N | 登记车辆 | |
4 | vehicle_driver | varchar | 64 | 0 | Y | N | 车辆司机 | |
5 | accident_location | varchar | 64 | 0 | Y | N | 事故地点 | |
6 | responsible_party | varchar | 64 | 0 | Y | N | 责任方 | |
7 | amount_of_damages | varchar | 64 | 0 | Y | N | 损失金额 | |
8 | operator | varchar | 64 | 0 | Y | N | 经办人 | |
9 | entered_by | varchar | 64 | 0 | Y | N | 录入人 | |
10 | entry_time | datetime | 19 | 0 | Y | N | 录入时间 | |
11 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表bank_deposit_and_withdrawal (银行存取)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | bank_deposit_and_withdrawal_id | int | 10 | 0 | N | Y | 银行存取ID | |
2 | access_title | varchar | 64 | 0 | Y | N | 存取标题 | |
3 | access_type | varchar | 64 | 0 | Y | N | 存取类型 | |
4 | total_deposit_and_withdrawal_amount | int | 10 | 0 | Y | N | 0 | 存取总额 |
5 | accessing_items | varchar | 64 | 0 | Y | N | 存取项目 | |
6 | access_notes | text | 65535 | 0 | Y | N | 存取备注 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表classification_of_compartment_type (厢型分类)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | classification_of_compartment_type_id | int | 10 | 0 | N | Y | 厢型分类ID | |
2 | classification_of_compartment_type | varchar | 64 | 0 | Y | N | 厢型分类 | |
3 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
4 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
5 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表departure_registration (出车登记)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | departure_registration_id | int | 10 | 0 | N | Y | 出车登记ID | |
2 | license_plate | varchar | 64 | 0 | Y | N | 车牌号码 | |
3 | vehicle_model | varchar | 64 | 0 | Y | N | 车辆型号 | |
4 | date_of_departure | date | 10 | 0 | Y | N | 出车日期 | |
5 | driver | varchar | 64 | 0 | Y | N | 驾驶人员 | |
6 | car_customers | varchar | 64 | 0 | Y | N | 用车客户 | |
7 | destination | varchar | 64 | 0 | Y | N | 目的地 | |
8 | bill_of_lading_number | varchar | 64 | 0 | Y | N | 提单号 | |
9 | remarks | varchar | 64 | 0 | Y | N | 备注信息 | |
10 | settlement_status | varchar | 64 | 0 | Y | N | 结算状态 | |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表driver_information (司机资料)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | driver_information_id | int | 10 | 0 | N | Y | 司机资料ID | |
2 | drivers_name | varchar | 64 | 0 | Y | N | 司机姓名 | |
3 | driver_gender | varchar | 64 | 0 | Y | N | 司机性别 | |
4 | drivers_age | varchar | 64 | 0 | Y | N | 司机年龄 | |
5 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
6 | drivers_license_number | varchar | 64 | 0 | Y | N | 驾驶证号 | |
7 | type_of_drivers_license | varchar | 64 | 0 | Y | N | 驾驶证类别 | |
8 | driving_vehicle_number | varchar | 64 | 0 | Y | N | 驾驶车号 | |
9 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
10 | contact_address | varchar | 64 | 0 | Y | N | 联系地址 | |
11 | emergency_contact | varchar | 64 | 0 | Y | N | 紧急联系人 | |
12 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系人电话 | |
13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表employee_information (员工资料)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | employee_information_id | int | 10 | 0 | N | Y | 员工资料ID | |
2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
3 | employee_gender | varchar | 64 | 0 | Y | N | 员工性别 | |
4 | employee_age | varchar | 64 | 0 | Y | N | 员工年龄 | |
5 | employee_position | varchar | 64 | 0 | Y | N | 员工职务 | |
6 | id_number | varchar | 64 | 0 | Y | N | 身份证号 | |
7 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
8 | contact_address | varchar | 64 | 0 | Y | N | 联系地址 | |
9 | emergency_contact | varchar | 64 | 0 | Y | N | 紧急联系人 | |
10 | contact_phone_number | varchar | 64 | 0 | Y | N | 联系人电话 | |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表employee_users (员工用户)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | employee_users_id | int | 10 | 0 | N | Y | 员工用户ID | |
2 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
3 | employee_gender | varchar | 64 | 0 | Y | N | 员工性别 | |
4 | employee_age | varchar | 64 | 0 | Y | N | 员工年龄 | |
5 | examine_state | varchar | 16 | 0 | N | N | 已通过 | 审核状态 |
6 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
7 | user_id | int | 10 | 0 | N | N | 0 | 用户ID |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表enterprise_information (企业资料)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | enterprise_information_id | int | 10 | 0 | N | Y | 企业资料ID | |
2 | corporate_name | varchar | 64 | 0 | Y | N | 公司名称 | |
3 | company_address | varchar | 64 | 0 | Y | N | 公司地址 | |
4 | institution_code | varchar | 64 | 0 | Y | N | 机构代码 | |
5 | legal_representative | varchar | 64 | 0 | Y | N | 法人代表 | |
6 | opening_bank | varchar | 64 | 0 | Y | N | 开户银行 | |
7 | bank_account | varchar | 64 | 0 | Y | N | 银行账号 | |
8 | tax_account | varchar | 64 | 0 | Y | N | 纳税账号 | |
9 | mailing_address | varchar | 64 | 0 | Y | N | 通信地址 | |
10 | postal_code | varchar | 64 | 0 | Y | N | 邮政编码 | |
11 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表financial_records (财务记录)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | financial_records_id | int | 10 | 0 | N | Y | 财务记录ID | |
2 | record_type | varchar | 64 | 0 | Y | N | 记录类型 | |
3 | record_total_amount | int | 10 | 0 | Y | N | 0 | 记录总额 |
4 | record_date | date | 10 | 0 | Y | N | 记录日期 | |
5 | record_items | varchar | 64 | 0 | Y | N | 记录项目 | |
6 | record_remarks | text | 65535 | 0 | Y | N | 记录备注 | |
7 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
8 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
9 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表fleet_information (车队资料)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | fleet_information_id | int | 10 | 0 | N | Y | 车队资料ID | |
2 | fleet_name | varchar | 64 | 0 | Y | N | 车队名称 | |
3 | contacts | varchar | 64 | 0 | Y | N | 联系人 | |
4 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
5 | contact_address | varchar | 64 | 0 | Y | N | 联系地址 | |
6 | opening_bank | varchar | 64 | 0 | Y | N | 开户银行 | |
7 | bank_account | varchar | 64 | 0 | Y | N | 银行账号 | |
8 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
9 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
10 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
11 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表maintenance_registration (保养登记)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | maintenance_registration_id | int | 10 | 0 | N | Y | 保养登记ID | |
2 | maintenance_date | date | 10 | 0 | Y | N | 保养日期 | |
3 | maintenance_vehicle_number | varchar | 64 | 0 | Y | N | 保养车号 | |
4 | vehicle_driver | varchar | 64 | 0 | Y | N | 车辆司机 | |
5 | maintenance_program | varchar | 64 | 0 | Y | N | 保养项目 | |
6 | maintenance_details | varchar | 64 | 0 | Y | N | 保养明细 | |
7 | maintenance_location | varchar | 64 | 0 | Y | N | 保养地点 | |
8 | last_kilometers | varchar | 64 | 0 | Y | N | 上次公里数 | |
9 | maintenance_kilometers | varchar | 64 | 0 | Y | N | 保养公里数 | |
10 | next_kilometer | varchar | 64 | 0 | Y | N | 下次公里数 | |
11 | maintenance_amount | varchar | 64 | 0 | Y | N | 保养金额 | |
12 | operator | varchar | 64 | 0 | Y | N | 经办人 | |
13 | recorder | varchar | 64 | 0 | Y | N | 录单人 | |
14 | entry_time | datetime | 19 | 0 | Y | N | 录入时间 | |
15 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
16 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
17 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
18 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表order_management (订单管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | order_management_id | int | 10 | 0 | N | Y | 订单管理ID | |
2 | order_number | varchar | 64 | 0 | Y | N | 订单编号 | |
3 | order_receiving_time | datetime | 19 | 0 | Y | N | 接单时间 | |
4 | contacts | varchar | 64 | 0 | Y | N | 联系人 | |
5 | contact_number | varchar | 64 | 0 | Y | N | 联系电话 | |
6 | shippers_address | varchar | 64 | 0 | Y | N | 托运方地址 | |
7 | ship_to_address | varchar | 64 | 0 | Y | N | 收货方地址 | |
8 | cargo_weight | varchar | 64 | 0 | Y | N | 货物重量 | |
9 | freight_for_goods | varchar | 64 | 0 | Y | N | 货物运费 | |
10 | order_status | varchar | 64 | 0 | Y | N | 订单状态 | |
11 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
12 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
13 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表repair_registration (维修登记)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | repair_registration_id | int | 10 | 0 | N | Y | 维修登记ID | |
2 | repair_order_number | varchar | 64 | 0 | Y | N | 维修单号 | |
3 | repair_date | date | 10 | 0 | Y | N | 维修日期 | |
4 | maintenance_depot | varchar | 64 | 0 | Y | N | 维修车厂 | |
5 | repair_vehicle_number | varchar | 64 | 0 | Y | N | 维修车号 | |
6 | repair_driver | varchar | 64 | 0 | Y | N | 送修司机 | |
7 | maintenance_items | varchar | 64 | 0 | Y | N | 维修项目 | |
8 | accessory_code | varchar | 64 | 0 | Y | N | 配件编码 | |
9 | accessory_name | varchar | 64 | 0 | Y | N | 配件名称 | |
10 | accessories_specifications | varchar | 64 | 0 | Y | N | 配件规格 | |
11 | number_of_accessories | varchar | 64 | 0 | Y | N | 配件数量 | |
12 | unit_price_of_accessories | varchar | 64 | 0 | Y | N | 配件单价 | |
13 | accessories_costs | varchar | 64 | 0 | Y | N | 配件费用 | |
14 | labor_costs | varchar | 64 | 0 | Y | N | 人工费用 | |
15 | payable_amount | varchar | 64 | 0 | Y | N | 应付金额 | |
16 | amount_paid | varchar | 64 | 0 | Y | N | 已付金额 | |
17 | operator | varchar | 64 | 0 | Y | N | 经办人 | |
18 | recorder | varchar | 64 | 0 | Y | N | 录单人 | |
19 | entry_time | datetime | 19 | 0 | Y | N | 录入时间 | |
20 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
21 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
22 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
23 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表salary_management (工资管理)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | salary_management_id | int | 10 | 0 | N | Y | 工资管理ID | |
2 | employee_users | int | 10 | 0 | Y | N | 0 | 员工用户 |
3 | employee_name | varchar | 64 | 0 | Y | N | 员工姓名 | |
4 | employee_base_salary | int | 10 | 0 | Y | N | 0 | 员工底薪 |
5 | employee_performance | int | 10 | 0 | Y | N | 0 | 员工绩效 |
6 | employee_bonus | int | 10 | 0 | Y | N | 0 | 员工奖金 |
7 | absence_deduction | int | 10 | 0 | Y | N | 0 | 缺勤扣款 |
8 | absence_days | int | 10 | 0 | Y | N | 0 | 缺勤天数 |
9 | salary_month | varchar | 64 | 0 | Y | N | 工资月份 | |
10 | total_distribution | varchar | 64 | 0 | Y | N | 总计发放 | |
11 | release_date | date | 10 | 0 | Y | N | 发放日期 | |
12 | salary_details | text | 65535 | 0 | Y | N | 工资详情 | |
13 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
14 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
15 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表transportation_registration (运输登记)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | transportation_registration_id | int | 10 | 0 | N | Y | 运输登记ID | |
2 | transport_note_number | varchar | 64 | 0 | Y | N | 运输单号 | |
3 | date_of_departure | date | 10 | 0 | Y | N | 出车日期 | |
4 | arrival_date | date | 10 | 0 | Y | N | 到达日期 | |
5 | transport_fleet | varchar | 64 | 0 | Y | N | 运输车队 | |
6 | fleet_vehicle_number | varchar | 64 | 0 | Y | N | 车队车号 | |
7 | main_driver | varchar | 64 | 0 | Y | N | 主驾司机 | |
8 | co_driver | varchar | 64 | 0 | Y | N | 副驾司机 | |
9 | dispatching_personnel | varchar | 64 | 0 | Y | N | 调度人员 | |
10 | transport_type | varchar | 64 | 0 | Y | N | 运输类型 | |
11 | current_state | varchar | 64 | 0 | Y | N | 当前状态 | |
12 | template_number | varchar | 64 | 0 | Y | N | 模板编号 | |
13 | round_trip_information | varchar | 64 | 0 | Y | N | 往返信息 | |
14 | vehicle_identification_number | varchar | 64 | 0 | Y | N | 车签号 | |
15 | task_order_number | varchar | 64 | 0 | Y | N | 任务单号 | |
16 | container_volume | varchar | 64 | 0 | Y | N | 货箱容积 | |
17 | shipper | varchar | 64 | 0 | Y | N | 托运方 | |
18 | ship_to | varchar | 64 | 0 | Y | N | 收货方 | |
19 | loading_address | varchar | 64 | 0 | Y | N | 装货地址 | |
20 | unloading_address | varchar | 64 | 0 | Y | N | 卸货地址 | |
21 | name_of_goods | varchar | 64 | 0 | Y | N | 货物名称 | |
22 | unit_of_measurement | varchar | 64 | 0 | Y | N | 计量单位 | |
23 | quantity_of_goods | varchar | 64 | 0 | Y | N | 货物数量 | |
24 | route_name | varchar | 64 | 0 | Y | N | 路线名称 | |
25 | deadweight_kilometers | varchar | 64 | 0 | Y | N | 载重公里 | |
26 | empty_kilometers | varchar | 64 | 0 | Y | N | 空车公里 | |
27 | freight_unit_price | varchar | 64 | 0 | Y | N | 运费单价 | |
28 | receivable_amount | varchar | 64 | 0 | Y | N | 应收金额 | |
29 | received_amount | varchar | 64 | 0 | Y | N | 已收金额 | |
30 | outstanding_amount | varchar | 64 | 0 | Y | N | 未收金额 | |
31 | payment_unit | varchar | 64 | 0 | Y | N | 支付单位 | |
32 | salesman | varchar | 64 | 0 | Y | N | 业务员 | |
33 | departure_and_payment_collection | varchar | 64 | 0 | Y | N | 出车领款 | |
34 | payee | varchar | 64 | 0 | Y | N | 领款人 | |
35 | payable_repayment | varchar | 64 | 0 | Y | N | 应交还款 | |
36 | paid_in_repayment | varchar | 64 | 0 | Y | N | 实交还款 | |
37 | commission_ratio | varchar | 64 | 0 | Y | N | 提成比例 | |
38 | drivers_salary | varchar | 64 | 0 | Y | N | 司机工资 | |
39 | co_drivers_salary | varchar | 64 | 0 | Y | N | 副驾工资 | |
40 | total_departure_fee | varchar | 64 | 0 | Y | N | 出车费合计 | |
41 | total_plus_postage | varchar | 64 | 0 | Y | N | 加邮费合计 | |
42 | total_toll_fees | varchar | 64 | 0 | Y | N | 路卡费合计 | |
43 | total_of_places | varchar | 64 | 0 | Y | N | 之处合计 | |
44 | single_trip_profit | varchar | 64 | 0 | Y | N | 单趟利润 | |
45 | driving_kilometers | varchar | 64 | 0 | Y | N | 行驶公里 | |
46 | fuel_consumption | varchar | 64 | 0 | Y | N | 耗油量 | |
47 | standard_fuel_consumption | varchar | 64 | 0 | Y | N | 标准油耗 | |
48 | excessive_fuel_consumption | varchar | 64 | 0 | Y | N | 油耗节超 | |
49 | received_fuel_card | varchar | 64 | 0 | Y | N | 已收油卡 | |
50 | entered_by | varchar | 64 | 0 | Y | N | 录入人 | |
51 | entry_time | datetime | 19 | 0 | Y | N | 录入时间 | |
52 | receipt_form | varchar | 64 | 0 | Y | N | 签收单 | |
53 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
54 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
55 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
56 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表user (用户账户:用于保存用户登录信息)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | user_id | mediumint | 8 | 0 | N | Y | 用户ID:[0,8388607]用户获取其他与用户相关的数据 | |
2 | state | smallint | 5 | 0 | N | N | 1 | 账户状态:[0,10](1可用|2异常|3已冻结|4已注销) |
3 | user_group | varchar | 32 | 0 | Y | N | 所在用户组:[0,32767]决定用户身份和权限 | |
4 | login_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 上次登录时间: |
5 | phone | varchar | 11 | 0 | Y | N | 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时 | |
6 | phone_state | smallint | 5 | 0 | N | N | 0 | 手机认证:[0,1](0未认证|1审核中|2已认证) |
7 | username | varchar | 16 | 0 | N | N | 用户名:[0,16]用户登录时所用的账户名称 | |
8 | nickname | varchar | 16 | 0 | Y | N | 昵称:[0,16] | |
9 | password | varchar | 64 | 0 | N | N | 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成 | |
10 | | varchar | 64 | 0 | Y | N | 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时 | |
11 | email_state | smallint | 5 | 0 | N | N | 0 | 邮箱认证:[0,1](0未认证|1审核中|2已认证) |
12 | avatar | varchar | 255 | 0 | Y | N | 头像地址:[0,255] | |
13 | create_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间: |
表vehicle_information (车辆资料)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | vehicle_information_id | int | 10 | 0 | N | Y | 车辆资料ID | |
2 | affiliated_fleet | varchar | 64 | 0 | Y | N | 所属车队 | |
3 | license_plate | varchar | 64 | 0 | Y | N | 车牌号码 | |
4 | vehicle_model | varchar | 64 | 0 | Y | N | 车辆型号 | |
5 | tank_volume | varchar | 64 | 0 | Y | N | 厢体容积 | |
6 | classification_of_compartment_type | varchar | 64 | 0 | Y | N | 厢型分类 | |
7 | tonnage_ton | varchar | 64 | 0 | Y | N | 吨位(吨) | |
8 | vehicle_length_meters | varchar | 64 | 0 | Y | N | 车长(米) | |
9 | vehicle_width_meters | varchar | 64 | 0 | Y | N | 车宽(米) | |
10 | vehicle_status | varchar | 64 | 0 | Y | N | 车辆状态 | |
11 | driving_license | varchar | 255 | 0 | Y | N | 行驶证 | |
12 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
13 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
14 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
表violation_registration (违章登记)
编号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
1 | violation_registration_id | int | 10 | 0 | N | Y | 违章登记ID | |
2 | violation_date | date | 10 | 0 | Y | N | 违章日期 | |
3 | illegal_vehicle_number | varchar | 64 | 0 | Y | N | 违章车号 | |
4 | violating_driver | varchar | 64 | 0 | Y | N | 违章司机 | |
5 | violation_location | varchar | 64 | 0 | Y | N | 违章地点 | |
6 | illegal_items | varchar | 64 | 0 | Y | N | 违章项目 | |
7 | penalty_points_for_violations | varchar | 64 | 0 | Y | N | 违章扣分 | |
8 | penalty_amount | varchar | 64 | 0 | Y | N | 罚款金额 | |
9 | amount_borne_by_the_company | varchar | 64 | 0 | Y | N | 公司承担金额 | |
10 | amount_borne_by_the_driver | varchar | 64 | 0 | Y | N | 司机承担金额 | |
11 | entered_by | varchar | 64 | 0 | Y | N | 录入人 | |
12 | entry_time | datetime | 19 | 0 | Y | N | 录入时间 | |
13 | remarks | text | 65535 | 0 | Y | N | 备注信息 | |
14 | recommend | int | 10 | 0 | N | N | 0 | 智能推荐 |
15 | create_time | datetime | 19 | 0 | N | N | CURRENT_TIMESTAMP | 创建时间 |
16 | update_time | timestamp | 19 | 0 | N | N | CURRENT_TIMESTAMP | 更新时间 |
第五章 系统实现
5.1管理员功能
第三方物流系统登录界面,通过填写账号、密码、滑动滑块进行登录,如图5-1所示。
图5-1登录界面图
登录关键代码如下所示.
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[执行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
QueryWrapper wrapper = new QueryWrapper<User>();
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.selectBaseList(service.select(map, new HashMap<>()));
}else{
return error(30000, "账号或密码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或密码不能为空");
}
//判断是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.selectBaseList(userGroupService.select(groupMap, new HashMap<>()));
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String res = service.selectExamineState(userGroup.getSourceTable(),byUsername.getUserId());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或密码不正确");
}
}
public String select(Map<String,String> query,Map<String,String> config){
StringBuffer sql = new StringBuffer("select ");
sql.append(config.get(FindConfig.FIELD) == null || "".equals(config.get(FindConfig.FIELD)) ? "*" : config.get(FindConfig.FIELD)).append(" ");
sql.append("from ").append("`").append(table).append("`").append(toWhereSql(query, "0".equals(config.get(FindConfig.LIKE))));
if (config.get(FindConfig.GROUP_BY) != null && !"".equals(config.get(FindConfig.GROUP_BY))){
sql.append("group by ").append(config.get(FindConfig.GROUP_BY)).append(" ");
}
if (config.get(FindConfig.ORDER_BY) != null && !"".equals(config.get(FindConfig.ORDER_BY))){
sql.append("order by ").append(config.get(FindConfig.ORDER_BY)).append(" ");
}
if (config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE))){
int page = config.get(FindConfig.PAGE) != null && !"".equals(config.get(FindConfig.PAGE)) ? Integer.parseInt(config.get(FindConfig.PAGE)) : 1;
int limit = config.get(FindConfig.SIZE) != null && !"".equals(config.get(FindConfig.SIZE)) ? Integer.parseInt(config.get(FindConfig.SIZE)) : 10;
sql.append(" limit ").append( (page-1)*limit ).append(" , ").append(limit);
}
log.info("[{}] - 查询操作,sql: {}",table,sql);
return sql.toString();
}
public List selectBaseList(String select) {
List<Map<String,Object>> mapList = baseMapper.selectBaseList(select);
List<E> list = new ArrayList<>();
for (Map<String,Object> map:mapList) {
list.add(JSON.parseObject(JSON.toJSONString(map),eClass));
}
return list;
}
管理员界面,功能包含后台首页、系统用户、企业资料、车队资料、车辆资料、厢型分类、司机资料、员工资料、运输登记、出车登记、维修登记、保养登记、事故登记、违章登记、订单管理、财务记录、银行存款、工资管理等信息,如图5-2所示。
图5-2管理员功能界面图
个人信息,可以进行修改个人信息以及查看功能。如图5-3所示。
图5-3个人中心页面图
系统用户管理,在系统用户管理信息页面可以对管理员进行添加或删除和修改等操作,如图5-4所示。
图5-4添加管理员页面图
企业资料管理,在企业资料管理页面可查看公司名称、公司地址、机构代码、法人代表、开户银行、银行账号、纳税账号、联系电话等信息,可根据需要进行添加、删除等操作,如图5-5所示。
图5-5企业资料管理页面图
车队资料:在车队资料页面可查看车队名称、联系人、联系电话、联系地址、开户银行、银行账号等信息,可根据需要进行添加、删除等操作,如下图5-6所示。
图5-6 车队资料管理页面图
车辆资料:在车辆资料页面可查看所属车队、车牌号码、车辆型号、厢体容积、吨位、车长、行驶证等信息,可根据需要进行添加、删除等操作,如图5-7所示。
图5-7 车辆资料管理页面图
司机资料:在司机资料页面可查看司机姓名、司机性别、司机年龄、身份证号、驾驶证号、驾驶车号、联系电话等信息,可根据需要进行添加、删除等操作,如图5-8所示。
图5-8 司机资料管理界面图
第六章 系统的测试
6.1 测试目的
程序设计不能保证没有错误,这是一个开发过程,在错误或错误的过程中难以避免,这是不可避免的,但我们不能使这些错误始终存在于系统中,错误可能会造成无法估量的后果 如系统崩溃,安全信息,系统无法正常启动,导致安装物流企业网络信息屏幕等,为了避免这些问题,我们需要测试程序,并发现这些问题,并纠正它们 ,并使系统更长时间稳定成熟,本章的作用是发现这些问题,并对其进行修改,虽然耗时费力,但长期非常重要和必要系统的开发。
软件测试与开发过程是一样的,都必须按照软件工程的正规原理进行,遵守管理学理论。不过,目前国内的软件测试已经积累了大量经验和方法,步骤相对成熟,软件测试的效率也越来越高。
第三方物流系统的实现,对于系统中功能模块的实现及操作都必须通过测试进行来评判系统是否可以准确的实现。在第三方物流系统正式上传使用之前必须做的一步就是系统测试,对于测试发现的错误及时修改处理,保证系统准确无误的供给物流企业使用。
6.2 测试方案设计
6.2.1 测试策略
1、功能测试
从管理员的角度来看,测试时不了解新开发软件的内部结构,因此可以将系统与黑匣子进行比较,盲目输入后可以查看系统给出的反馈。这种测试属于黑盒测试,在测试中如果输入错误信息系统会报错。
2、性能测试
测试软件程序的整体状况(称为性能测试)通常使用自动化测试工具来检测系统的整体功能,在负载测试和压力测试之间进行分配,在某些情况下,将这两种情况结合起来。虽然压力测试可以检测到系统可以提供的最高级别的服务,但负载测试可以测试系统如何响应增加的负载。
6.2.2 测试分析
测试评估系统质量的方法不局限于系统编码和过程,应该与软件设计工作和历史需求分析密切相关。
软件测试应遵循以下原则:
(1)软件测试应尽快进行,整个测试部分应在软件开发和设计的整个过程中进行。如发现错误,立即处理,将大大减少软件开发的时间,并提高软件的质量。
(2)在软件的各种测试中,测试过程中使用的计划、报告等应妥善处理和存储。其主要目的是为了便于以后系统的维护。
(3)软件测试整个过程中的聚类现象应优先考虑。
(4)对于软件测试,我们应该尽量不去和自己设计的系统进行参考,而是要测试对方的程序,以确保软件测试结果的客观性和公平性。
(5)整个测试计划严格按照软件测试的具体实施细则进行。
(6)对整个测试结果进行综合检查,尽量避免重复错误。
本第三方物流系统满足物流企业的要求和需求,本第三方物流系统的使用能够有效的提高物流企业的使用率。
6.3 测试结果
测试后得到的性能和用例,系统具有足够的正确性、可靠性、稳定性,并且可以对输入数据进行准确的点击操作处理和响应测试物流企业的体验也得到了很好的反馈和响应时间。合理的范围,可以兼容所有主流浏览器,设计所需的效果。
结 论
在这个设计中,我花了大量的时间去理解系统开发中使用的知识,经过这段时间的努力工作最终完成了系统设计。通过这一阶段的学习,我发现了自己的不足,充分掌握了必要的应用技能,进一步的学习使我充实了自己的知识基础,完成了这个艰巨的任务。当遇到问题时,我很及时的寻求老师的帮助,通过专业的网站来解决,他们的帮助让我一步一步的成功克服了困难的问题。系统设计过程不容易,你需要不断充实自己,有勇气克服困难。系统开发的一些功能还不完善,需要继续改善后,通过物流企业体验来修改设计完美的系统,让物流企业得到更好的体验,我觉得很高兴,因为这是我第一次通过自己的努力实现这个系统,但绝不是我的最后一个,在未来我将努力实现更多的优秀的系统。
在一些编程语言的系统实现中,对词汇表不太熟悉,导致了开发的困难,但是我通过了合适的字典软件来解决这个大问题。由此,我学会了自己的英语缺陷。在那之后,我不断地提高自己的英语知识,这样我就不会有任何未来的工作和生活。毕业设计过程我感觉很深刻,从一开始就不熟悉开发技术,一步一步的使用,接触到文献和信息,不难理解,系统是一次又一次的实现,系统本身对于在线学习是有用的。我从这个设计中获益良多,论文的编写需要有自己的意愿去实现一点,学习生活中所有的问题的勇气,学习的过程就是学习的过程。毕业设计,我学会了将理论知识应用于实践。让我知道该怎么做,我们必须认真对待。勇于克服困难,相信未来,我会做得更好。
参考文献
[1]赵将.Java语言在计算机软件开发中的应用[J].数字技术与应用,2023,41(03):160-162.DOI:10.19695/j.cnki.cn12-1369.2023.03.46.
[2]李乐.Java语言应用研究[J].智慧中国,2022(09):80-81.
[3]欧阳桂秀.基于Java和MySQL的数据库管理系统的设计与实现[J].信息记录材料,2022,23(09):240-242.DOI:10.16009/j.cnki.cn13-1295/tq.2022.09.007.
[4]郑戟明,董云朝,柳青.MySQL数据库数据导入导出方法的探讨[J].电脑知识与技术,2022,18(22):24-25.DOI:10.14004/j.cnki.ckt.2022.1517.
[5]王景.基于MySQL的数据库查询性能优化技术研究[J].电脑与电信,2022(06):90-93.DOI:10.15966/j.cnki.dnydx.2022.06.007.
[6]李博文,董昊楠,李鹏,吕晓峰.云计算平台下第三方物流管理系统设计[J].电子测试,2020(18):84-85.DOI:10.16520/j.cnki.1000-8519.2020.18.033.
[7]Kevin Kline. The Java Language Extension for SQL Server Is Now Open Source[J]. Database Trends and Applications,2020,34(4).
[8]Margaretha Ohyver,Jurike V. Moniaga,Iwa Sungkawa,Bonifasius Edwin Subagyo,Ian Argus Chandra. The Comparison Firebase Realtime Database and MySQL Database Performance using Wilcoxon Signed-Rank Test[J]. Procedia Computer Science,2019,157(C).
[9]Prince Asabere,Francois Sekyere,Willie K Ofosu. Wireless Biometric Fingerprint Attendance System using Arduino and Mysql Database[J]. International Journal of Computer Science, Engineering and Applications,2019,10(5).
[10]李雨金. 基于MySQL的数据库[D].南京大学,2019.DOI:10.27235/d.cnki.gnjiu.2019.002083.
[11]陈华东,刘籽宏,周锐,何薇,吴秀林.第三方物流管理模式及其信息系统[J].商场现代化,2016(23):36-37.DOI:10.14013/j.cnki.scxdh.2016.23.023.
[12]Wei Wei Han. Third-Party Logistics System Based on Lean Logistics[J]. Advanced Materials Research,2013,2584(765-767).
[13]包函,刘乃丽.第三方物流系统的设计与开发[J].轻工科技,2013,29(10):60-61+67.
[14]王钧. 第三方物流运输管理系统的分析与设计[D].山东大学,2013.
[15]何铮. 第三方物流企业订单管理系统研究[D].昆明理工大学,2013.
[16]Sheng Qiu Sheng. Study on Development Strategy of Third Party Logistics Based on Electronic Commercial Environment[J]. Key Engineering Materials,2013,584(584-584).
[17]冯茜,王绍光.浅谈第三方物流信息管理系统[J].商场现代化,2012(31):137.
[18]邱少恪. 第三方物流系统的设计与实现[D].电子科技大学,2012.
[19]王秀荣. 第三方物流系统设计优化策略研究[D].山东大学,2011.
[20]王艳,毕利,刘树军.第三方物流系统中权限管理的研究与实现[J].计算机系统应用,2010,19(10):18-22.
致 谢
第三方物流系统的完成,如何实现的更好,其中付出的努力是很大的,这段时光将会终身难忘。
第三方物流系统的设计可以顺利完成,首先,我要感谢我的指导老师,他在我遇到设计问题时及时帮助了我,并在我对设计感到困惑时给了我充分的指导。在他的帮助下,我可以完成高质量的毕业设计。在第三方物流系统的设计和开发中,指导老师提出了许多实用的意见和建议,并为我提供了大量相关的研究资料,使我对设计有了更深入的了解。只有在老师的指导下,才能在毕业设计中取得成功。在此,我要向指导老师表示深深的谢意。
在此,我还要感谢我的同学们,他们为我的设计提供了许多参考意见,并与我讨论了设计中的问题,从而使我的设计一步一步走向成熟。
请关注点赞+私信博主,免费领取项目源码