Springboot面向园区管理的物联网云平台
摘 要
随着互联网趋势的到来,物联网概念越来越盛行,园区管理最好方式就是建立自己的互联网系统。在现实运用中,应用软件的工作规则和开发步骤,采用Springboot框架建设面向园区管理的物联网云平台。
本设计主要实现集人性化、高效率、便捷等优点于一身的面向园区管理的物联网云平台,完成园区企业管理、工业设备管理、来访登记管理等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。只需通过一台电脑,动动手指就可以操作系统,实现数据通信管理。整个系统的设计过程都充分考虑了数据的安全、稳定及可靠等问题,而且操作过程简单。本系统通过科学的管理方式、便捷的服务提高了工作效率,减少了数据存储上的错误和遗漏。
面向园区管理的物联网云平台使用Java语言,采用基于Springboot框架、Java技术进行开发,使用 MyEclipse 2017 CI 10 编译器编写,数据方面主要采用的是微软的MySQL关系型数据库来作为数据存储媒介,配合前台HTML+CSS 技术完成系统的开发。
关键词:物联网;园区管理;Mysql数据库
Springboot Internet of things cloud platform for park management
With the advent of the Internet trend, the concept of Internet of things is becoming more and more popular. The best way to manage the park is to establish its own Internet system. In practical application, according to the working rules and development steps of the application software, the springboot framework is used to build the Internet of things cloud platform for park management.
This design mainly realizes the Internet of things cloud platform for park management, which integrates the advantages of humanization, high efficiency and convenience, and completes the functional modules of park enterprise management, industrial equipment management, visit registration management and so on. The system communicates with the server through the browser to realize the interaction and change of data. You can operate the system and realize data communication management by moving your fingers through a computer. The safety, stability and reliability of data are fully considered in the design process of the whole system, and the operation process is simple. Through scientific management and convenient service, the system improves work efficiency and reduces errors and omissions in data storage.
The Internet of things cloud platform for park management uses Java language, is developed based on springboot framework and Java technology, and is written with MyEclipse 2017 CI 10 compiler. In terms of data, Microsoft's MySQL relational database is mainly used as the data storage medium, and the system development is completed with foreground HTML + CSS Technology.
Key words: Internet of things; Park management; Mysql database
目 录
2.3.1J2EE技术 3
2.3.2MVC模式 3
2.3.3MySQL数据库 3
2.3.4 B/S结构 4
2.3.5Springboot框架 4
2.3.6Vue.js 主要功能 4
2.3.7Ajax 介绍 4
物联网技术是新一代信息技术的重要组成部分,随着社会和信息技术的发展,它必然会融入人们日常生活中的方方面面,促进生活的改善和优化,使得人们的生活越来越智能化。尤其对于现代环境监测系统的建设,其建设的物联网监测系统对于节能型社会的发展,新时期环境保护以及国家实行节能减排都有巨大的促进作用,也使得现代经济得到持续、健康、稳定发展。
在国家政策的引导下,近年来,我国的园区经济得到快速的发展,众多传统工业园区正在向科技化、创新化的新型园区过渡,智慧园区管理已成为新的发展趋势。这一趋势也在技术上提出了更高的要求,更加智能、高效的物联网云平台是园区管理中不可缺少的组成部分。随着园区的规模逐渐扩张,园区的管理方面的工作越来越多,对于园区管理平台智能化的要求也随之提高。对于一个商业园区,管理者需要管理的事项有很多,如园区里的工业设备、园区能源、园区企业管理等。而传统园区的管理系统,无法为管理者提供一个一体化和智能化的管理平台。许多事务的管理工作相互分立,存在重复工作和管理盲区;经营活动产生的大量数据,无法很好地整合、统计和分析,即使花费了大量人力物力也无法得到想要的结果;园区内的各种资源、能源等难以监测和控制等,传统园区的管理系统仍旧存在着诸多不足。另外,很多园区的管理者在园区楼宇的管理、工业设备管理等业务方面花费了很多的精力,而这样的管理业务却通常收效甚微。所以开发一套“面向园区管理的物联网云平台”是顺应时代的发展。
1.2物联网研究现状
物联网是指把智能设备与互联网相连接,通过终端或云平台,实现物联设备识别、定位、跟踪、监控和管理的概念,利用物理网,可以实现对生产和生活更加精细和动态的管理,从而提高资源利率、生产水平和生活质量,达到智慧的状态。物联网中的物并非是指一般概念上的物,而是指能够联网、具备信息发送和信息处理能力、遵循物联网通信协议、能够被唯一识别的物体。
早1999年,MIT的Ashton教授就已经正式将物联网的概念提出过,不过当时的概念比较狭隘,仅仅是指基于RFID技术的物联网l5-6%。在2008年金融危机背景下,IBM根据自身的优势率先提出智慧地球的概念,强调了“实体基础设施与信息基础设施不应分开建设,而应该是统一的智能基础设施”,物联网的概念也得到了完善。各国政府为了促进科技和经济的发展,在物联网方面也进行了大量投入,愿景虽好,但是由于物联网涉及的技术面广,需要多种技术的协同和进步,使其在发展过程中要克服很多问题:物联网技术缺乏统一标准,制约了硬件和软件的开发;物联节点能源有限,无法长时间工作;无线发射模块传输距离短,传输过程不稳定,传输协议不统一;物联网安全缺乏保证等。在国家的政策支持、智能设备的发展、云计算以及移动互联网的等技术的不断融入、相关协议逐步完善、应用场景不断被挖掘的情况下,物联网技术得到了很大的发展,近几年出现的LPWAN技术有望达到物联网技术的愿景,即在大区域内实现物联网的低成本全覆盖。
1.3研究内容
面向园区管理的物联网云平台的开发及实现,所需要的工作内容:
(1)首先是确定选题,确定好所要做的系统,并对系统的背景及现在面临的一些问题等进行系统的初步确认。
(2)系统确认完成后,结合系统开发的需求进行确认系统开发所使用的技术,面向园区管理的物联网云平台的开发使用Springboot框架,数据库进行平台的搭建开发,确认好使用的技术进行技术分析,所使用的技术是否可以完成系统的实现。
(3)确定好系统使用的技术,进行在线确认系统所划分的用户角色,并且根据用户角色划分确定所要设计的功能模块,对面向园区管理的物联网云平台的设计主要划分用户角色,并所使用的功能模块也相应不同,但是系统的数据库实现的内容是交互的,用户可以随时根据自己的需求进行信息查看,对于系统工作人员可以根据自己的分管内容进行在线信息的处理及操作。
(4)系统的功能模块确认完成后进行程序及界面的设计,设计完成后,并且通过测试来判断程序是否完善,对于系统测试,需要不同的用户进行不同的内容编辑及提交,及使用不同的测试方式找出程序中存在的漏洞,并对程序出现的漏洞问题进行在线解决处理,如果测试系统没有任何问题时,可以将系统上传进行正式操作使用。
本文具体内容包括:绪论、系统采用的关键技术、系统分析、系统设计、系统实现和系统测试。本文着重描述了系统的组成与结构,阐述了系统的设计方案、实现方法以及所采用的开发工具和相关技术,另外,重点剖析了部分环节的开发过程。本系统在一定的环境下对系统的重要模块进行了模拟测试,证实了系统的可用性、可靠性。
1.软件体系结构方案:采用B/S模式,B/S代表的是服务器端由web服务器发放,客户端由浏览器接收的系统,它的前台是html语言,由浏览器解释。B/S结构可以由web服务器能够解释的脚本语言如jsp、php、asp、JavaScript。
2.操作系统方案:Windows 7(旗舰版)操作系统,该系统可以兼容需要的软件,并且具有良好的运行速度,界面良好。
3.后台数据库:选用Mysql。Mysql旨在通过数据库加密、更加安全的默认设置、加强的密码政策和细化许可控制、及加强的安全模型等特性,为企业数据提供最高级别的安全性。
4.开发工具:选用Myeclipse10
5.开发语言:Java语言。
6.开发技术:Springboot+html+css+js技术
统一建模语言(Unified Modeling Language ,UML)是一种可视化建模语言,通俗上讲就是系统开发者利用UML可以清楚地表达出自己对系统是如何设计,是一种设计思想的体现,然而UML就是作为辅助工具,就如汽车轴承的轮滑油。UML包括了一些可以相互组合图表的图形元素。由于UML是一种语言,所以UML具有组合这些元素的法规。UML提供了多种图来设计设计系统,如设计系统前期常用的用例图,行为图等,这些图需要用多个视图来展示一个系统,这组视图被称为一个模型(Model)。一个UML模型描述了一个系统需要做什么。同时,UML提供了组织和扩展这些图的方法。
2.3.1J2EE技术
人可以掌握多门外语,而一个计算机科学家精通的大多是编程语言,它不是人类的自然语言,比如C语言、Java、Perl等等。由于不同的公司开发出的“中间件”不够规范,所以Sun公司推出J2EE,用这个标准来解决弊病。它提供了良好的机制,让每个层次允许与之相对的服务器、组件运行,使得系统的搭建稳定可用、开发高效、维护方便[1][2]。
2.3.2MVC模式
MVC模式是常用的开发模式,主要是在代码实现上将其分为M层、V层和C层。
视图(View)代表用户交互界面,一个 Web 应用就可能有很多的界面,在 MVC 模式中,视图仅仅处理的只有数据采集、处理,还有用户的请求, 并不包括业务流程的处理,业务流程由模型(Model)来处理[3]。
模型(Model)就是业务流程/状态的处理及业务规则的制定。模型处理业务流程的过程其它层是无法看见了的,它就像黑箱子,在接受视图请求的数据之后,然后返回最终的处理结果。MVC 最主要的核心就是业务模型的设计,一个典型的应用例子就是目前流行的 EJB 模型,它从应用技术实现的角度对模型做了进一步的划分,以便充分利用现有的组件,但是它不能作为应用设计模型的框架[4]。
控制器(Controller)可以理解为接收用户的请求,然后视图和模型匹配在一起,一起再完成用户请求。它有非常明显的作用在划分控制层上,可以很清晰地告诉你,它就是一个分发器,选择什么样的模型、视图,可以完成用户的什么样的请求。控制层不做所有的数据处理,比如说:用户点击一个连接,控制层接受到请求之后,并不处理业务信息,它只是向模型传递用户的信息,同时告诉模型做什么,然后选择符合需求的视图返回给用户[5][6]。
2.3.3MySQL数据库
科技的进步,给日常带来许多便利:教室的投影器用到了虚拟成像技术,数码相机用到了光电检测技术,比如超市货物进出库的记录需要一个信息仓库。这个信息仓库就是数据库,而这次的物流信息管理系统也需要这项技术的支持[7]。
用MySQL这个软件,是因为它能接受多个使用者访问,而且里面存在Archive等。它会先把数据进行分类,然后分别保存在表里,这样的特别操作就会提高数据管理系统自身的速度,让数据库能被灵活运用。MySQL的代码是公开的,而且允许别人二次编译升级。这个特点能够降低使用者的成本,再搭配合适的软件后形成一个良好的网站系统。虽然它有缺点,但是综合各方面来说,它是使用者的主流运用的对象[8]。
2.3.4B/S结构
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就达到“瘦身”效果, 不需要考虑不停装软件的问题[9]。
2.3.5Springboot框架
Springboot即SpringMVC+Spring+Mybatis,这三个框架有各自最独有的优势,那么将它们组合在一起能够碰撞出很强的火花。设计者在不需消耗大量功夫,能做出Web应用程序,而且这个程序还具有层次清晰、升级更新操作不影响正常使用的、允许多次使用的特点。这个复合框架形成一个有着结构完整、功能强大和结构良好的体系:SpringMVC使各板块分离,Spring使开发更灵活方便,使用Mybatis让开发者直接对对象进行操纵,各层次分工明细,并实现各个层次间的解耦,让代码更加的灵活精简。这个框架使程序员能够规避在开发时期避免个别错误导致整体被破坏,也能在后期应对客户对产品提出的新需求[10] [11]。
2.3.6Vue.js 主要功能:
Vue.js是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合。另一方面,Vue 完全有能力驱动采用单文件组件和Vue生态 系统支持的库开发的复杂单页应用。
Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue.js 自身不是一个全能框架——它只聚焦于视图层。因此它非常容易学习,非常容易与其它库或已有项目整合。另一方面,在与相关工具和支持库一起使用时,Vue.js 也能驱动复杂的单页应用。
2.3.7Ajax 介绍:
Ajax即Asynchronous Javascript And XML(异步JavaScript和XML)在 2005年被Jesse James Garrett提出的新术语,用来描述一种使用现有技术集合的‘新’方法,包括:HTML或XHTML,CSS,JavaScript,DOM,XML,XSLT, 以及最重要的XMLHttpRequest。使用Ajax技术网页应用能够快速地将增量更新呈现在用户界面上,而不需要重载(刷新)整个页面,这使得程序能够更快地回应用户的操作。
。
本系统操作简单,易理解。基于面向园区管理的物联网云平台与大部分信息管理系统的操作流程类似,避免了用户学习使用系统的时间和负担。
3.1.1操作可行性
本系统使用的是现流行的开发语言,即Java技术。同时所有的信息都是以网页的形式展示,系统中的信息都可以在后台操作数据库达到数据更新的效果。用户只需要会计算机的基本操作或者会上网就可以使用本系统,系统管理员只需要懂得文件上传,处理文本即可操作管理后台。系统布局较简单,功能操作不复杂,完全符合现代市场需求。因此本系统具有操作可行性。
3.1.2技术可行性
本系统在Windows7开发环境下,利用Myeclipse10开发工具,并使用Mysql作为数据库管理系统来实现系统的各种功能。Mysql属于主从式的数据库服务器这也是主从式数据库服务器的特点,服务器本身重在数据的管理,为用户端应用程序提供一致的接口。可以提高系统的性能,降低它的局限性。
3.1.3经济可行性
本系统是一个在线的基于面向园区管理的物联网云平台,同时计算机的价格十分低廉,性能却有了长足的进步。而此系统的开发可以有效的提高工作效率,降低管理成本,节省管理费用,为企业的工作效率带来了一个质的飞跃。因此,本系统在经济上是完全具有可行性的。
3本系统管理功能需求(面向管理员用户)
对工业设备的管理(添加、删除,修改,查询)。
对园区企业的管理(删除,修改,查询)。
对来访登记信息的管理(删除,修改,查询)。
1.管理员主要负责系统管理、工业设备管理、园区企业管理、来访登记管理,下图所示描述管理员的用例。
数据流图的设计主要是由于系统目前功能还没有确定,可以先描述可能要使用到的功能内容,并且向用户了解“系统从外界接受什么数据”和“系统向外界送出什么数据”等信息,根据用户所给的答复进行设计数据流图。
如下为系统的0层数据流图,系统用户分为管理员和普通用户。
图3-2系统数据流图(0层)
基于面向园区管理的物联网云平台第二层数据流图主要详细反应各功能模块对应的操作与数据进行交互的原理。并且更详细的显示出各角色对功能模块操作的数据流向,让开发人员能了解该系统的开发方向,能够更准确的开发出系统模型。
将工业设备信息维护进行细化得到工业设备信息管理二层数据流程图,如下图所示。
图3-3工业设备管理数据流图(2层)
1.数据存储描述
下表描述了用户信息的数据流、数据来源、数据去向和数据流组成的词条。
数据流 | 用户信息 |
数据流来源 | Mysql数据库中用户信息表,用户详细信息表 |
数据去向 | 系统界面,用户信息管理界面 |
数据流组成 | 用户名、用户密码、添加时间、编号 |
下表描述了工业设备信息的数据流、数据来源、数据去向和数据流组成的词条。
数据流 | 工业设备信息 |
数据流来源 | Mysql数据库中查询工业设备表,工业设备详细信息表 |
数据去向 | 工业设备界面 |
数据流组成 | 用户ID |
下表描述了园区企业信息的数据流、数据来源、数据去向和数据流组成的词条。
数据流 | 园区企业信息 |
数据流来源 | Mysql数据库中园区企业表,园区企业详情表 |
数据去向 | 用户查看园区企业界面,园区企业管理界面 |
数据流组成 | 园区企业ID、企业介绍 |
目前B/S体系的系统主要的数据访问方式是:通过浏览器页面用户可以进入系统,系统可以自动对用户向服务器发送的请求进行处理,处理请求是在系统后台中进行的,用户在浏览器页面上进行相应操作,就能够看到服务端传递的处理结果。康泰小区物业管理系统主要分为视图-模型-控制三层架构设计。在视图层中,主要是操作在服务器端向客户端反馈并显示的数据,在模型层中,主要处理相关的业务逻辑、数据整合等,最后的控制层它介于视图和模型之间,主要是调整两层之间的关系,最终落实数据的传递。
系统架构图如下图所示。
图4-1系统架构图
1.用户登录模块:确保用户注册信息的真实度是提高系统效率和盈利的重要因素。真实的用户才能带来价值,注册是保证真实用户使用系统主要业务的第一步,通过对用户注册信息的审核,可防止机器注册。使用现如今较为流行的管理员进行账号激活的验证方式,对用户注册信息进行过滤,未激活用户信息将不能使用系统主要功能。
如下图所示为用户登录流程图。
图4-2用户登录流程图
2.园区企业模块:登录的用户可以进行园区企业查看,具体包括:企业名称、所在位置、占地面积、涉及业务、企业简介等,还可以通过企业名称的关键字进行搜索。
如下图所示为园区企业流程图。
图4-3园区企业流程图
3.园区企业管理模块
4.用户管理模块
系统管理员可以对用户信息进行增、删、改、查的操作。
系统管理员可以对工业设备信息进行增、删、改、查的操作。
系统管理员可以对来访信息进行审核回复操作。
4.3.1概念设计
本系统的E-R图表现了系统中各个实体之间的联系,经过分析,系统的实体有工业设备、园区企业、来访情况等。
工业设备管理的实体图如下图所示。
图4-4工业设备管理实体图
来访登记管理实体图如下图所示。
图4-5来访登记管理实体图
园区企业管理的实体图如下图所示。
图4-6园区企业管理实体图
4.3.2逻辑设计
Yaunquqiye 表是园区企业表,存储园区的相关企业信息,其中包括:企业名称、联系电话、所在位置、占地面积、涉及业务、企业简介等相关信息。
Gongyeshebei 表是工业设备表,存储设备表信息,其中包括:设备名称、设备编号、所造位置、运行状态、维修记录等相关信息。
Laifangdegnji 表是来访登记表,存储来访登记的信息,其中包括:访客姓名、性别、访客体温、访问企业、来访事由等相关信息。
4.3.3表设计
数据库表设计:经过前期的需求分析、可执行分析、数据流分析等各个流程分析,结合软件工程的高内聚、低耦合规则,并考虑到以后的程序功能扩展,设计如下几张表。
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
industrial_equipment_id | int | 11 | 是 | 是 | 工业设备ID |
equipment_name | varchar | 64 | 否 | 否 | 设备名称 |
equipment_number | varchar | 64 | 是 | 否 | 设备编号 |
location | varchar | 64 | 否 | 否 | 所在位置 |
running_state_ | varchar | 64 | 否 | 否 | 运行状态 |
device_details_ | text | 0 | 否 | 否 | 设备详情 |
maintenance_record | text | 0 | 否 | 否 | 维修记录 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
park_enterprises_id | int | 11 | 是 | 是 | 园区企业ID |
enterprise_name | varchar | 64 | 否 | 否 | 企业名称 |
contact_information | varchar | 64 | 否 | 否 | 联系方式 |
location | varchar | 64 | 否 | 否 | 所在位置 |
area_covered | varchar | 64 | 否 | 否 | 占地面积 |
business_involved | text | 0 | 否 | 否 | 涉及业务 |
company_profile | text | 0 | 否 | 否 | 企业简介 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
upload_id | int | 11 | 是 | 是 | 上传ID |
name | varchar | 64 | 否 | 否 | 文件名 |
path | varchar | 255 | 否 | 否 | 访问路径 |
file | varchar | 255 | 否 | 否 | 文件路径 |
display | varchar | 255 | 否 | 否 | 显示顺序 |
father_id | int | 11 | 否 | 否 | 父级ID |
dir | varchar | 255 | 否 | 否 | 文件夹 |
type | varchar | 32 | 否 | 否 | 文件类型 |
名称 | 类型 | 长度 | 不是null | 主键 | 注释 |
visit_registration_id | int | 11 | 是 | 是 | 来访登记ID |
visitor_name | varchar | 64 | 否 | 否 | 访客姓名 |
visitor_gender | varchar | 64 | 否 | 否 | 访客性别 |
contact_information | varchar | 64 | 否 | 否 | 联系方式 |
id_number | varchar | 64 | 否 | 否 | 身份证号 |
visiting_time | datetime | 0 | 否 | 否 | 来访时间 |
visitor_temperature | varchar | 64 | 否 | 否 | 访客体温 |
visit_enterprise | varchar | 64 | 否 | 否 | 访问企业 |
reason_for_visit | text | 0 | 否 | 否 | 来访事由 |
recommend | int | 11 | 是 | 否 | 智能推荐 |
create_time | datetime | 0 | 是 | 否 | 创建时间 |
update_time | timestamp | 0 | 是 | 否 | 更新时间 |
5.1登录模块
本系统最基本的功能就是登录功能,本系统可以进行系统登录的角色有用户,用户对应登录界面,首先进入登录页,输入用户名和密码,然后提交至服务端进行数据库数据验证,通过JavaEE逻辑代码判断数据库是否存在用户输入的这一个记录,如果存在,则判断用户身份,如果是用户,则进入用户前台,如果是管理员用户,则进入系统主页,并把用户对象存放在session中,如果不存在这样一条记录,则返回登录界面。
登录界面如下所示。
登录关键代码如下:
* 注册
* @param user
* @return
*/
@PostMapping("register")
public Map<String, Object> signUp(@RequestBody User user) {
// 查询用户
Map<String, String> query = new HashMap<>();
query.put("username",user.getUsername());
List list = service.select(query, new HashMap<>()).getResultList();
if (list.size()>0){
return error(30000, "用户已存在");
}
user.setUserId(null);
user.setPassword(service.encryption(user.getPassword()));
service.save(user);
return success(1);
}
/**
* 用户ID:[0,8388607]用户获取其他与用户相关的数据
*/
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "user_id")
private Integer userId;
/**
* 账户状态:[0,10](1可用|2异常|3已冻结|4已注销)
*/
@Basic
@Column(name = "state")
private Integer state;
/**
* 所在用户组:[0,32767]决定用户身份和权限
*/
@Basic
@Column(name = "user_group")
private String userGroup;
/**
* 上次登录时间:
*/
@Basic
@Column(name = "login_time")
private Timestamp loginTime;
/**
* 手机号码:[0,11]用户的手机号码,用于找回密码时或登录时
*/
@Basic
@Column(name = "phone")
private String phone;
/**
* 手机认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "phone_state")
private Integer phoneState;
/**
* 用户名:[0,16]用户登录时所用的账户名称
*/
@Basic
@Column(name = "username")
private String username;
/**
* 昵称:[0,16]
*/
@Basic
@Column(name = "nickname")
private String nickname;
/**
* 密码:[0,32]用户登录所需的密码,由6-16位数字或英文组成
*/
@Basic
@Column(name = "password")
private String password;
/**
* 邮箱:[0,64]用户的邮箱,用于找回密码时或登录时
*/
@Basic
@Column(name = "email")
private String email;
/**
* 邮箱认证:[0,1](0未认证|1审核中|2已认证)
*/
@Basic
@Column(name = "email_state")
private Integer emailState;
/**
* 头像地址:[0,255]
*/
@Basic
@Column(name = "avatar")
private String avatar;
/**
* 创建时间:
*/
@Basic
@Column(name = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Timestamp createTime;
@Basic
@Transient
private String code;
}
过去传统的手工登记管理系统人员信息很不方便,也很容易造成数据出错,所以本系统需要一个可以管理登记人员信息的功能,管理员登入系统,可以添加新的管理员用户,删除现有的管理员,也可以对自己的密码和管理员用户的密码进行修改。修改密码是经过跟数据库的原来的密码字段的数据进行判断,如果输入两次的新密码一致,则更新密码这属性对应的一条数据。
系统用户管理关键代码如下:
public Map<String, Object> obj(HttpServletRequest request) {
List resultList = service.selectBaseList(service.select(service.readQuery(request), service.readConfig(request)));
if (resultList.size() > 0) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("obj",resultList.get(0));
return success(jsonObject);
} else {
return success(null);
}
}
5.3园区企业管理模块
用户在系统前台浏览园区企业,管理员登录系统后,可以对添加、删除、修改园区企业信息,系统前台的园区企业信息时随系统后台变化而变化的。
园区企业管理的界面如下图所示。
园区企业管理关键代码如下:
public Map<String, Object> error(Integer code, String message) {
Map<String, Object> map = new HashMap<>();
map.put("error", new HashMap<String, Object>(4) {{
put("code", code);
put("message", message);
}});
return map;
}
5.4工业设备管理模块
管理人员可以对工业设备信息及逆行维护操作,这些操作将在工业设备管理界面进行。
如下图所示为工业设备管理界面。
工业设备管理关键代码如下:
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.5来访登记管理模块
管理人员可以对来访登记进行增删查改的操作,这些操作将在来访登记管理界面进行。
如下图为来访登记管理界面。
来访登记管理关键代码如下:
@Transactional
public Map<String, Object> add(HttpServletRequest request) throws IOException {
service.insert(service.readBody(request.getReader()));
return success(1);
}
@Transactional
public Map<String, Object> addMap(Map<String,Object> map){
service.insert(map);
return success(1);
}
public Map<String,Object> readBody(BufferedReader reader){
BufferedReader br = null;
StringBuilder sb = new StringBuilder("");
try{
br = reader;
String str;
while ((str = br.readLine()) != null){
sb.append(str);
}
br.close();
String json = sb.toString();
return JSONObject.parseObject(json, Map.class);
}catch (IOException e){
e.printStackTrace();
}finally{
if (null != br){
try{
br.close();
}catch (IOException e){
e.printStackTrace();
}
}
}
return null;
}
public void insert(Map<String,Object> body){
StringBuffer sql = new StringBuffer("INSERT INTO ");
sql.append("`").append(table).append("`").append(" (");
for (Map.Entry<String,Object> entry:body.entrySet()){
sql.append("`"+humpToLine(entry.getKey())+"`").append(",");
}
sql.deleteCharAt(sql.length()-1);
sql.append(") VALUES (");
for (Map.Entry<String,Object> entry:body.entrySet()){
Object value = entry.getValue();
if (value instanceof String){
sql.append("'").append(entry.getValue()).append("'").append(",");
}else {
sql.append(entry.getValue()).append(",");
}
}
sql.deleteCharAt(sql.length() - 1);
sql.append(")");
log.info("[{}] - 插入操作:{}",table,sql);
Query query = runCountSql(sql.toString());
query.executeUpdate();
}
6.1测试目的
该系统能够完成园区企业管理,工业设备管理,用户管理等功能,做到所开发的系统操作简单,尽量使系统操作不受用户对电脑知识水平的限制,符合系统可维护性,由于系统涉及的信息比较广,数据库中的数据需定期修改,系统可利用的空间及性能也随之下降,为了使系统更好地运转,系统可以对系统数据及一些简单的功能进行独立的维护及调整;符合系统开放性要求,该系统能够在开放的硬件体系结构中运行,并且能与其他系统顺利连接。
6.2测试用例
1.注册测试
字段名称 | 描述 |
测试项 | 首页注册功能测试 |
输入数据 | 1、输入正确的邮箱、用户名、密码、确认密码、以及验证码之后点击“注册”按钮 2、输入错误的用户名或密码、邮箱、验证码等,单击“注册”按钮 3、不输入邮箱、用户名、密码、确认密码、以及验证码之后点击“注册”按钮 |
预计输出数据 | 1、用户能正确注册账号,成功插入数据库用户的账户资料,提示注册成功。 2、无法注册用户信息,注册失败。 3、无法注册用户信息,注册失败。 |
使用上述测试用例对前台首页注册界面进行测试,当在输入正确的邮箱、用户名、密码、确认密码、以及验证码之后,系统将弹出注册成功信息提示对话框。
使用上述测试用例对前台首页注册界面进行测试,当在输入错误的用户名或密码、邮箱、验证码之后,系统将提示错误。
使用上述测试用例对前台首页注册界面进行测试,当在不输入用户名、密码、邮箱、验证码之后,点击注册按钮。
2.登录界面进行测试
测试项 | 首页登录功能测试 |
输入数据 | 1、输入正确的用户名和密码,单击“登录”按钮 2、输入错误的用户名和密码,单击“登录”按钮 3、不输入用户名和密码,单击“登录”按钮 |
预计输出数据 | 1、数据库中存在的用户能正确登录,。结果弹出主界面。 2、错误的或者无效用户登录,登录系统失败。 3、输入用户名或密码信息为空,登录系统失败。 |
经过这几个月的设计和开发,“Springboot基于面向园区管理的物联网云平台”已经完成了,其功能符合设计需求,经过最后的使用,证明系统完全具有可行性与可扩充性。在系统的分析阶段,主要是分析系统的需求,理解系统要完成的基本功能,找出系统的用例(Use Case)和角色(Actor),画出系统的用例模型图,用例模型是此后系统建模的基础。在用例的基础上分析顺序图和协作图,得到系统的所有对象,然后建立对象模型。抽象出系统的类,并将系统中联系紧密的类划分为若干个包,画出包图。有了这些基础,就可以将系统划分为小单元功能模块。
整个过程中,我必须认可UML统一建模语言,它让我很清晰的知道自己想做什么,想实现什么,对系统后面的代码编写起到决定性的帮助,同时经过本次系统的设计与实现,让我积累了很多经验,提高了编写程序的能力,为以后的学习和工作打下了坚实的基础。
由于时间有限,本系统还有待继续完善和改进,因此需要进一步进行分析和修改,以使其更加完善!
参考文献
[1]冷泽琪,王坤昊,梁纬,郑月锋.重构图视角下超级账本在物联网的应用研究综述[J/OL].计算机应用研究:1-13[2022-04-28].DOI:10.19734/j.issn.1001-3695.2022.01.0040.
[2]白雪杰,郭雷岗,姜丽鸽.物联网技术在智能电网中的应用研究[J].物联网技术,2022,12(03):83-85+88.DOI:10.16667/j.issn.2095-1302.2022.03.025.
[3]常力强. 园区管理服务平台建设落地更要“生根”[N]. 农民日报,2022-03-12(006).DOI:10.28603/n.cnki.nnmrb.2022.000992.
[4]杨燕红,何大安.中国物联网产业政策演变、内在逻辑与发展趋向——基于政策文本计量分析的方法[J].经济与管理,2022,36(02):27-35.
[5]秦明.论物联网在物流工程前期管理中的运用[J].中国储运,2022(03):169-171.DOI:10.16301/j.cnki.cn12-1204/f.2022.03.087.
[6]黄衎,兰天一,龙飞霏.基于700MHz NB-IoT的物联网网络部署探索[J].广播电视网络,2022,29(02):57-60.DOI:10.16045/j.cnki.catvtec.2022.02.023.
[7]郭成波,闫薪宇,海靖,王涵彬,孙术发.物流工程专业物联网技术课程建设[J].物流技术,2022,41(02):128-132.
[8]王国锋,沈惠梁.智慧园区综合管理平台建设要点[J].浙江建筑,2022,39(01):79-82.DOI:10.15874/j.cnki.cn33-1102/tu.2022.01.015.
[9]阎涛,曾恒,陈晓亮,万方智.智能化园区管控平台在“智慧安全”管理中的研究与应用[J].军民两用技术与产品,2021(12):25-31.DOI:10.19385/j.cnki.1009-8119.2021.12.013.
[10]张铭昕,么军.园区运营管理平台设计实践[J].智能建筑,2021(12):42-44+50.
[11]曹明昊. 基于SpringBoot和Vue框架的邯郸市现代农业园区信息管理系统的研发[D].河北工程大学,2021.DOI:10.27104/d.cnki.ghbjy.2021.000671.
[12]王文波.循环经济园区管理实践解析[J].化工管理,2021(29):5-6.DOI:10.19900/j.cnki.ISSN1008-4800.2021.29.003.
[13]齐雪鹏.可视化智慧园区管理系统建设研究[J].信息与电脑(理论版),2021,33(15):92-94.
[14]余华胜,李涛,居飞. 智慧园区综合管理信息共享平台的设计与实现[C]//.第二十二届华东六省一市测绘学会学术交流会论文集2021:120-122.
[15]吴品堃.新型物联网智慧园区管理系统探索[J].智能建筑,2021(07):21-23.
[16]撖书培.大型园区建设项目总控咨询服务管理规划专项研究[J].建设监理,2021(06):16-19.DOI:10.15968/j.cnki.jsjl.2021.06.006.
致 谢
大学的学习生活总是感觉短暂的,总感到知识还没有学够,但大学毕业就在我们面前,即毕业设计即将的结束,意味着我们的大学生涯即将结束。毕业设计是我们在大学所学知识的一次总结,更是对我们过去所学知识的提炼和升华,通过毕业设计,我们认识到大学学习过程中还有那些知识没有掌握,那些知识需要我们进入深入研究。这次毕业设计让我学到了很多新的知识,研究了一些新的以前自己不熟悉的领域,使我处理问题的能力得到了一定的提升,同时也为今后的继续深造或踏入社会大门提供了很好的锻炼机会。
我也曾经沮丧过,失落过,想放弃过,可是因为你们这不厌其烦的鼓励和支持才使得我坚持了下来,这里我要对我的老师和同学们说句“谢谢你们”。因为我们的知识是有限的,所以本文将不可避免的会出现一 些错误和不足之处,还请老师指正。
点赞+收藏+关注 → 私信领取本源代码、数据库