程序员小王的博客:程序员小王的博客
欢迎点赞 收藏 ⭐留言
如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
如果需要源码,扫描主页左侧二维码,加我微信 一起学习、一起进步
java自学的学习路线:java自学的学习路线
这是我今年三月份左右实现的一套前后端分离的物业管理系统,现在在CSDN上面演示给大家看一下,如果对这套系统感兴趣的同学,可以私底下和一起交流学习!对于小区物业管理来说,其工作流程的繁杂性、多样化、管理复杂、收缴费用与设备维护繁琐。计算机已完全能够胜任物业管理工作,而且更加准确、方便、快捷、高效、清晰、透明,它完全可以克服以上所述的不足之处。这将给项目查询和管理带来很大的方便,从而给物业管理工作带来更高的效率,这也是物业管理正规化、现代化的重要标志。
因此,开发一套高效率、无差错的小区物业管理系统软件十分必要。本系统的主要目的是告别帐本,安全、快捷的保存数据信息。针对以上问题,我想设计一套当前潮流的前后端分离项目,前台主要使用vue作为开发语言,饿了么公司的ElementUI框架作为前端框架,后台使用MySQL作为数据库管理系统,SpringBoot+MyBatisPlus作为后端框架,设计开发了小区物业管理系统。
本系统在功能实现上采用了目前比较流行的SpringBoot,MyBatisPlus两个主流框架完成开发,还使用了servlet的一些技术完成前后端的网页请求,和JSON数据的接受和发送。在系统框架上可以分为物业管理员进入系统,可以查看住户资料,可以查看那些人投诉了物业并积极处理,还有那家家里面东西坏了,保修处理,电费水费等缴费管理,停车位管理,疫情防疫管理等进行CURD的操作,还添加了一些搜索等功能完善了系统的功能架构,使得界面在简约好看的基础上,还有很多丰富的功能。既满足了物业管理员对小区管理的需求,也完成了系统能让普通的物业管理员能简单上手操作的目标。
近年来,我国物业管理企业如雨后春笋,迅猛发展,展现了这一新兴产业的生机与活力。不少学者都认为,物业管理这一行业的前景很好,大有可为。笔者现结合工作实际,试图从专业的角度,分析物业管理行业的现状,并对中国物业管理行业发展方向进行分析,探索物业管理的未来发展方向。
随着我国经济建设蓬勃发展和人民生活水平的不断提高,近年来在我国的一些大、中、小城市相继开发建设了大量的生活小区、写字楼等。为适应市场经济的需要,物业服务企业应运而生,并逐步发展成为一个新兴的行业。物业管理作为现代房屋管理的一种管理模式,是随着房地产经济市场化和住房商品化的发展而产生的,它是房地产生产、流通、消费领域的延续,也是房地产产业的一个重要分支。物业管理实行的是企业化经营、专业化管理、社会化服务和市场化运作的运行机制,适应了社会主义市场经济体制的需要。物业管理是新生事物,受地域经济发展水平、政策规范、城市规划、设计环境和建筑质量等诸多因素的制约和影响,其规范化、规模化发展仍需一个艰难的探索过程。
对品质住宅而言,高端的设备与高品质的物业管理并重。品质住宅物业项目是现代城市建设文明的结晶,同时彰显物业服务的文化价值。品质住宅除了过硬的硬件、高品位的设计外,其承载的生活也应该充满文化和享受体验。毕竟,住进高端楼盘的业主更希望通过良好的服务来触达美好生活。
因此,开发这样一套小区物业管理系统软件成为很有必要的事情,我们将就本次毕业设计的系统选定为小区物业管理系统
基于我国在小区物业管理方面的诸多现状,经过多方面的调查,参阅现有的一些物业管理系统参考资料等等,,开发出现在的小区物业管理系统,实现与小区业主相关的各种信息的系统化、规范化和自动化
本系统可以实现:通过这个系统完成对业主基本信息、业主缴费基本信息、管理员基本信息、管理员-业主交流信息的充分共享和规范化管理;通过对小区信息的开发过程的调查和记录,希望在小区人员有调动时,能够及时的进行小区信息的维护与更新,以便更好地了解小区业主的信息及维护后台数据库;
本作品的研发内容是通过目前主流前后端分离的技术,前端主要采用Vue、ElementUI,后端主要采用SpringBoot、MyBatisPlus+mysql数据库的技术去实现一个符合市场需求的物业管理系统,其中的主要内容包括物业管理系统的登录,然后注册由系统内部进行注册,然后登录管理系统后,有住户资料管理模块,投诉管理模块,报修管理模块,缴费处理模块,停车位管理模块,疫情防控管理模块,实现小区智能化管理。
2.1 开发工具
IDEA 全称 IntelliJ IDEA,是java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一。
Intellij IDEA 最突出的功能自然是调试(Debug),可以对Java代码,JavaScript,JQuery,Ajax等技术进行调试。[3]。
WebStorm2021是一款专业的HTML编辑工具,在html5和JavaScript 方面也很出色。可以说是“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”。新版对JavaScript,TypeScript和CSS支持更好,改进了Vue.js的体验,并为Jest集成增加了新功能。
JetBrains 打造的前端开发工具 WebStorm 发布了 2021.3。WebStorm 2021.3 最新变化:ES2022 私有类成员支持、新远程开发功能、更出色的单仓库支持、Deno LSP、拆分 Run(运行)工具窗口等。
tomcat是一个开源而且免费的jsp服务器,可实现JavaWeb程序的装载,是配置JSP(Java Server Page)和JAVA系统必备的一款环境。它是apache软件基金会的jakarta项目中的一个核心项目,因为tomcat技术先进性能稳定和监督易用性已成为最为广泛的jsp服务器。
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。 对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。中小型企业很喜欢它的一个原因[2]。
基于SpringBoot、MyBatisPlus+Vue前后端分离的技术体系,MySQL数据库,Tomcat服务器,以及maven搭建技术;应用SpringBoot、MyBatisPlu开源框架搭建系统;应用Vue及axios等JS框架技术实现了前端网页。聚焦Vue3、SSM、ElementUI等主流技术栈实现一个拥有前后端分离技术的物业管理管理系统[4]。
Spring Boot是用来简化Spring应用初始搭建以及开发过程的全新框架,被认为是Spring MVC的“接班人”,和微服务紧密联系在一起。
在使用传统的Spring去做Java EE(Java Enterprise Edition)开发中,大量的 XML 文件存在于项目之中,导致JavaEE项目变得慢慢笨重起来,,繁琐的配置和整合第三方框架的配置,导致了开发和部署效率的降低。
Spring Boot 并不是用来替代 Spring 的解决方案,而是和 Spring 框架紧密结合用于提升 Spring 开发者体验的工具。同时它集成了大量常用的第三方库配置,Spring Boot应用中这些第三方库几乎可以是零配置的开箱即用(out-of-the-box),大部分的 Spring Boot 应用都只需要非常少量的配置代码(基于 Java 的配置),开发者能够更加专注于业务逻辑。
MyBatis-Plus 是一个 Mybatis 增强版工具,在 MyBatis 上扩充了其他功能没有改变其基本功能,为了简化开发提交效率而存在。在使用过程中,MP提供一套通用的Mapper和Server的操作,只需要继承简单配置即可使用单表大部分CRUD操作。MP还支持Lambda形式调用、支持多种数据库操作。MP内置也有代码生成器、物理分页插件,MP的内置生成器不仅仅生成实体、持久层接口、xml文件,还可以生成server以及controller等等。
我们学习VUE,知道它的核心思想式组件和数据驱动,但是每一个组件都需要自己编写模板,样式,添加事件,数据等是非常麻烦的,所以饿了吗推出了基于VUE2.0的组件库,它的名称叫做element-ui,提供了丰富的PC端组件element-ui 是饿了么前端出品的基于 Vue.js的后台组件库,方便程序员进行页面快速布局和构建
在Web应用开发中,有两种开发模式:前后端不分离和前后端分离。
前后端不分离的开发模式耦合度高,适合纯网页开发;前后端分离的开发模式耦合度低,前端可以通过访问接口来对数据进行增删改查。所以,前后端分离的开发模式是更被开发者广泛使用的一种。
前后端分离主要是指,随着Web技术的发展,采用前端、后端各自独立开发的模式,解决前端后端一体化开发所带来的互相制约问题,提高网站项目开发效率和后续的可维护性,同时可以通过标准化的Web API为前后端传递标准化数据,如JSON、XML格式的数据。
Django Rest Framework,简称DRF,中文意思是“Django表述状态转化框架”,是一款功能强大、基于Django框架开发的、用于构建符合RESTful风格Web API的、前后端分离的商业化开发工具包。
它是免费开源的,被一些大型IT企业所使用,是目前非常流行的商业级技术框架之一。
Django的Rest Framework前后端分离实现原理如图所示。
本作品的研发内容是通过JavaWeb的技术去实现以中大南方学生宿舍为参考需求来源,本设计旨在开发出一款能够对宿舍信息和用户人员进行科学管理的系统。系统要能够通过操作,对用户的信息和宿舍的信息进行CURD,同时也增加了一些小设计便于管理员更加简洁的使用系统。接下来从功能需求分析和软硬件需求分析两方面来介绍本系统的需求分析。
小区物业管理系统采用了当前的主流计算结构模式进行开发,前台开发工具选用Vue、ElementUI。VueVue 渐进式javascript框架: 让我们通过操作很少的DOM, 甚至不需要操作页面中任何DOM元素,就很容易的完成数据和视图绑定,具有易用、通用和开发效率高的特点。后台的数据库开发工具选用了SpringBoot、MyBatisPlus。Spring Boot 是一套全新的框架,它来自于 Spring 大家族,因此 Spring 所有具备的功能它都有,而且更容易使用;Spring Boot 以约定大于配置的核心思想,默认帮我们进行了很多设置,多数 Spring Boot 应用只需要很少的 Spring 配置。Spring Boot 开发了很多的应用集成包,支持绝大多数开源软件,让我们以很低的成本去集成其它主流开源软件。MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。Mybatis-Plus 在 MyBatis 之上套了一层外衣,单表 CURD 的操作几乎都可以由 MyBatis-Plus 代替执行。而且提供了各种查询方式,分页行为。作为使用者无需编写 xml,直接调用 MyBatis-Plus 提供的 API 就可以了。这两种开源框架功能强大,有较好的接口,作为本系统开发工具是可行的。
随着计算机技术的飞速发展,计算机在企业管理中应用的普及,利用计算机实现企业人事管理势在必行。21世纪是一个充满竞争和挑战的世纪。在这个世纪中,高效化、系统化、规范化、自动化已成为现代企业的代名词。做为我国支柱产业之一的房地产业在当今智能化小区的发展的驱动下,在当今信息时代的推动下,拥有自己的一套特色的小区物业管理系统是非常必要的,与小区内繁多的硬件设施相比较,传统的手工式的管理方式已经无法适合当今的庞大的数据处理和精确的运算需求,所以一套精美完善的小区物业管理系统是提高工作效率节省人力物力的有效解决方案。传统的管理方式,对物业管理人员要求数量多,耗资高,错误率高,工作人员流动和对新人的培训经费也是不小的开支。一套完善的小区物业管理系统可持续使用并能随着时代和工作的需求不断更新,一期投入终身受用,按长期的使用计算,开发系统的造价平均到每年与传统式的管理方式的年耗资本相对比,性价比是可行的。开发这套系统的经济可行性是很高的。
对于这套小区物业管理系统而言,在投入使用前,会由开发并能熟练操作本系统的工程人员对用户群进行专业系统的培训。培训内容应包括,熟练掌握系统的各个功能和简单的系统维护,在开发设计程序的过程中直观的界面和控件的文字解释完全能使得用户充分理解起功能和意义,在计算机普及的今天,用户对本系统的操作完全可以看做是一种简单的,配合形式的手工操作,因为本系统最适合用于微型机,可以说几乎任何人都可以使用和管理。所以本系统的操作是完全可行的。
调度可行性指的是建议的计算机系统能否在规定的期限内交付给用户。由于合同的规定,能否预期的交付涉及到开发人员的信誉等等。所以开发期限的选定也是非常重要的因素,根据小区物业管理的日常的正常的业务运作规律和工作性质,可以看出这些内容是我们平时常见的工作,所以开发人员在开发起来比较容易入手,所以可以判断开发本系统的周期比较短,开发中的不可预见问题会比较容易解决,在开发小组的分析后应该容易做出相对准确的,误差微小的开发期限,应该可以在规定时间内,快速的、完整的交付给用户使用。
目前已有许多的成功的小区管理系统的先例,社会需要小区管理系统的全面化和智能化。本系统开发也严格遵照国家有关的小区务业管理相关的法律法规相一致。执行国家规定的费率标准,及宣传法规。另外,系统的操作和工作方式也符合管理人员的日常业务处理习惯。而且操作方便灵活,便于学习,日常的维护更新。因此,具有可行性。
经过调研与可行性分析,出于对人们生活住房考虑,设计了这套小区物业管理系统,本系统主要考虑到小区物业管理的普遍要求,小区物业管理系统主要包括:
(1) 对小区所有住户资料的录入和增、删、改、模糊查询,查看统计等功能实现,在基于这些小区的房产资源对小区进行管理。
(2) 对小区住户的投诉进行管理,搜索投诉内容等,解决后删除投诉内容
(3) 在具有了所有的基本资料信息后,需要实现实质性的物业管理。主要的管理业务包括:物业设备管理、生活收费管理、停车场管理,小区疫情防护等。这些成为小区物业管理的主体。
这样就可以便于管理员对小区进行全面的了解和管理了。
用例图描述了执行者和系统之间的关系,以及执行者可以使用那些功能和了解那些功能和执行者之间的联系,我们使用了powerdesigner画的用例图,如图所示。
一个完整的系统离不开前端页面和数据库,本章主要介绍在基于前后端分离实现的的业务管理系统的设计目录结构,主要界面设计和数据库设计,为实现系统做准备。
首先介绍一下后端的结构目录。
图4-1 目录
图4-2 目录
如图4-1和图4-2所示,我的后端文件目录一共有三大模块,分别是java代码、resource资源目录、测试三大板块,首先先说第一个板块,它撰写的内容是后端java代码,里面又细分了四大类,分别是controller控制器(处理器代码)、持久层接口Dao、、业务层模块service、还有测试模块test。
再介绍一下前端的结构目录。
图4-3 目录
图4-4 目录
如图4-3和图4-4所示,我的前端文件目录一共有两大模块,前端页面模块,和启动项目模块
由上面需求分析板块中的系统实体类图和数据字典[8],在这最少需要设计了11个表。如图4-21所示:
图4-21 数据表
物业管理系统数据库表设计描述:
数据库名: community
文档版本: V1.0.0
文档描述: 物业管理系统数据库表设计描述
表名: p_admin
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | adminName | varchar | 8 | 0 | Y | N | ||
3 | adminPassword | varchar | 12 | 0 | Y | N | ||
4 | realName | varchar | 8 | 0 | Y | N | ||
5 | birthday | date | 10 | 0 | Y | N | ||
6 | address | varchar | 50 | 0 | Y | N | ||
7 | phone | varchar | 30 | 0 | Y | N |
表名: p_complaint
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | complaintTitle | varchar | 255 | 0 | Y | N | ||
3 | complaint | varchar | 500 | 0 | Y | N | ||
4 | result | int | 10 | 0 | Y | N | ||
5 | ownerId | int | 10 | 0 | Y | N | ||
6 | acceptTime | datetime | 19 | 0 | Y | N | ||
7 | accepter | varchar | 8 | 0 | Y | N |
表名: p_covid19annouc
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | time | date | 10 | 0 | Y | N | ||
3 | title | varchar | 255 | 0 | Y | N | ||
4 | detail | text | 65535 | 0 | Y | N |
表名: p_healthreport
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | reportTime | datetime | 19 | 0 | Y | N | CURRENT_TIMESTAMP | |
3 | situation | varchar | 10 | 0 | Y | N | ||
4 | ownerId | int | 10 | 0 | Y | N |
表名: p_owner
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | name | varchar | 8 | 0 | Y | N | ||
3 | sex | varchar | 2 | 0 | Y | N | ||
4 | birthday | date | 10 | 0 | Y | N | ||
5 | icId | varchar | 50 | 0 | Y | N | ||
6 | phone | varchar | 30 | 0 | Y | N | ||
7 | room | varchar | 10 | 0 | Y | N | ||
8 | time | date | 10 | 0 | Y | N | ||
9 | remark | varchar | 255 | 0 | Y | N |
表名: p_parking
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | location | varchar | 50 | 0 | Y | N | ||
3 | name | varchar | 50 | 0 | Y | N | ||
4 | parkingSum | int | 10 | 0 | Y | N |
表名: p_parkingplace
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | empty | varchar | 11 | 0 | Y | N | ||
3 | parkingId | int | 10 | 0 | Y | N |
表名: p_parkingrecord
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | beginTime | datetime | 19 | 0 | Y | N | ||
3 | requestEndTime | datetime | 19 | 0 | Y | N | ||
4 | endTime | datetime | 19 | 0 | Y | N | ||
5 | placeId | int | 10 | 0 | Y | N | ||
6 | ownerId | int | 10 | 0 | Y | N | ||
7 | parkingFee | float | 13 | 0 | Y | N |
表名: p_paybill
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | sumBill | double | 23 | 0 | Y | N | ||
3 | waterBill | double | 23 | 0 | Y | N | ||
4 | elecBill | double | 23 | 0 | Y | N | ||
5 | fuelBill | double | 23 | 0 | Y | N | ||
6 | packingBill | double | 23 | 0 | Y | N | ||
7 | publicBill | double | 23 | 0 | Y | N | ||
8 | fixBill | double | 23 | 0 | Y | N | ||
9 | ownerId | int | 10 | 0 | Y | N | ||
10 | acceptTime | datetime | 19 | 0 | Y | N | CURRENT_TIMESTAMP | |
11 | accepter | varchar | 8 | 0 | Y | N |
表名: p_paybillrecord
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | Y | N | ||
2 | ownerId | int | 10 | 0 | Y | N | ||
3 | sumBill | double | 23 | 0 | Y | N | ||
4 | acceptTime | datetime | 19 | 0 | Y | N | CURRENT_TIMESTAMP | |
5 | accepter | varchar | 8 | 0 | Y | N |
表名: p_repair
序号 | 名称 | 数据类型 | 长度 | 小数位 | 允许空值 | 主键 | 默认值 | 说明 |
---|---|---|---|---|---|---|---|---|
1 | id | int | 10 | 0 | N | Y | ||
2 | detail | varchar | 255 | 0 | Y | N | ||
3 | result | int | 10 | 0 | Y | N | 0 | |
4 | ownerId | int | 10 | 0 | Y | N | ||
5 | acceptTime | datetime | 19 | 0 | Y | N | ||
6 | accepter | varchar | 8 | 0 | Y | N |
登录页面,如图4-3-1所示。
图4-3-1登录界面
用户主界面:
图4-3-2用户主界面
住户资料管理页面:
图4-3-2住户资料管理界面
查看统计界面:
图4-3-3查看统计日历界面
投诉管理界面:
图4-3-4 投诉管理界面图
报销管理界面:
图4-3-5 报销管理界面图
缴费处理界面:
图4-3-6缴费管理界面图
缴费记录界面:
图4-3-7缴费记录界面图
停车场管理界面:
图4-3-8停车场管理界面图
车位管理界面:
图4-3-9车位管理界面图
停车记录管理界面:
图4-3-10车位管理界面图
疫情防控健康状况管理界面:
图4-3-11疫情防控健康状况
首先要介绍的是配置文件部门,我们开发的是SpringBoot项目,习惯大于配置,所以写入的配置文件比较少,主要就是服务器的配置,数据库链接配置。
项目依赖的入口类
该系统以居民小区为例,为小区的居民操作一系列的信息提供了方便,该系统所实现的功能是在调研相关人员参考资料中得知,本系统实现了主要的基本功能。但是由于时间有限,个人能力有限,整个系统的功能显然远远不够完善的,特别是物资使用模块的功能尤其需要完善。在设计过程中,由于需要达到进度要求和整个系统的实用性,我需要从用户的角度来考虑使用此系统。此系统的核心点是:管理员可以通过编号来查询单个的响应数据信息,虽然本系统在功能上存在着不足,不能完全符合现实的需要,但总体来说,界面友好、简单易用。
该系统满足了小区业主和物业的要求。系统以简单,方便的方式给小区业主提供了很大的方便,全面是的实现了所谓互联网时代的人机操作,给管理员对数据的录入,修改,查询和删除和备份提供了很大的节省时间,从而使管理员可以更充分的维护整个小区的信息安全。
微信公众号:搜索《程序员小王》
原创不易,如果觉得不错请给我一个,三连、收藏、加关注,需要资料的同学可以私聊我!
有问题可以点击下方私信交流
如果我的博客对您有帮助 再次希望大家点赞 收藏 ⭐留言 啦 、感谢大家对我支持,让我有了更多的创作动力,希望我的博客能帮助到你
如果需要项目源码可以私聊我获取!
**项目源码可以私聊我获取!