毕业论文(设计)小区物业管理系统的设计与实现.docx
《毕业论文(设计)小区物业管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《毕业论文(设计)小区物业管理系统的设计与实现.docx(31页珍藏版)》请在冰点文库上搜索。
小区物业管理系统的设计与实现
摘 要
在信息化的今天,人们的生活已经发生了巨大的变化。
与此同时经济也在不断地发展,乡村开始与城市接轨,越来越多的农村开始合并,居住在农村的人们逐渐搬入新建造的小区生活。
如何做到高效方便的管理小区日常工作已成为一个急需的问题。
为了解决上述问题,小区物业管理系统就应运而生了。
本系统的开发工具是Eclipse,使用的数据库是MySQL。
本系统用到了
SSM框架即Spring+SpringMVC+MyBatis。
SpringMVC负责处理接收请求和视图管理,Spring负责业务逻辑,MyBatis负责数据的存储和修改。
该系统总共有5个模块,包括了房产管理、人员管理、费用管理、维修管理、公告管理。
本系统中包括了给小区居民使用的前台和给管理员使用的后台管理系统。
【关键词】小区物业;MySQL;Java;MyBatis
盐城师范学院毕业设计
Thedesignandimplementationofresidentialpropertymanagementsystem
Abstract
Intheinformationtechnology,people'slifehasbeenagreatchange.Atthesametime,theeconomyisinconstantdevelopment,thecountrysidebegantoconnectwiththecity,moreandmoreruralareasbegantomerge,peoplelivinginruralareasbegantomoveintothenewconstructionofresidentiallife.Howtoachieveefficientandconvenientmanagementofthedailyworkhasbecomeanurgentproblem.Inordertosolvetheaboveproblems,theresidentialpropertymanagementsystemcameintobeing.
ThedevelopmenttoolofthissystemisEclipseandthedatabaseusedisMySQL.ThesystemusestheSSMframeworkthatisSpring+SpringMVC+MyBatis.SpringMVCisresponsibleforhandlingthereceivingrequestandviewmanagement,Springisresponsibleforbusinesslogic,MyBatisisresponsiblefordatastorageandmodification.Thesystemhas5modules,includingtherealestatemanagement,personnelmanagement,costmanagement,maintenancemanagement,announcementmanagement.Thesystemisdividedintothedistrictresidentstousethefrontdeskandtotheadministratortousethebackgroundmanagementsystem.
[Keywords]Residentialproperty,MySQL,Java,MyBatis
目 录
1引言 1
1.1开发背景 1
1.2开发概述 1
1.3开发内容 1
1.4开发目的 2
2开发工具与相关技术 2
2.1Eclipse 2
2.2Java 2
2.3MySQL 2
2.4Tomcat 2
2.5JavaScript 2
2.6SSM框架 2
2.7Spring 3
2.8SpringMVC 3
2.9MyBatis 3
3系统需求分析 3
4系统设计 5
4.1功能模块 5
4.2数据库设计 6
5系统实现 9
5.1系统架构 9
5.2系统结构 9
5.3详细实现 10
5.3.1住户前台申请维修页面 10
5.3.2住户查看维修进度 14
5.3.3系统管理员进行派工 15
5.3.4住户再次查看维修申请进度 19
5.3.5住户点击维修完成 19
5.3.6系统管理员查看维修记录 22
5.3.7导出维修记录 23
6系统测试 23
6.1查询住房测试 23
6.2派工测试 23
6.3导出维修记录测试 24
7系统开发总结 24
参考文献 25
致 谢 26
1引言
1.1开发背景
在科技飞速发展的今天,信息化已经与人们的生活融合在一起,社会上到处都能看到信息化发展给人们生活带来的改变。
随着农村城镇化,农村的人们也开始搬到小区中,因而物业管理也变得越来越重要。
在现代社会中,物业管理也要不断的跟着时代一起发展,向着信息化的方向发展。
这不仅仅可以很大程度上方便物业的管理,提高办事效率,也能够让小区居民方便的了解到小区的最新动态和与自己相关的信息。
在现在的网络技术中,基于B/S(浏览器/服务器)架构的模式越来越多,使得系统能够快速方便的通过网络的方式传递出去。
人们也能够在第一时间了解到这些资讯。
本系统是为了方便物业对小区各种事情进行管理而设计开发的,在系统开发中涉及到很多内容,比如有MySQL和Java以及MyBatis,这个系统开发能够很好的锻炼到个人的软件开发技术。
为以后的软件开发打下了扎实的基础。
1.2开发概述
在实际工作开发环境中,越来越多的企业通过框架来开发,所以本系统也使用了框架,所使用的框架为SSM,这也是现在实际开发中用到比较多的框架。
本框架能够很好的体现出MVC的设计思想。
表现层使用JSP和JQuery来实现,向用户展现页面;控制层中Controller负责接收从页面上传过来的数据交给
Service来处理,在调用完成后交给页面渲染或是直接返回一个JSON对象;模型层通过MyBatis对数据库进行映射,从而完成数据持久化。
本系统分为用于展示的前台和用于管理的后台两部分,系统管理员在登录进入后台后的操作可以在前台反映出来。
1.3开发内容
小区物业管理系统是为方便小区物业处理小区各项事情而开发的系统,该系统提供了对房产、人员、费用、维修以及新闻信息查询的功能,也提供了修改图片、导出户主名单和导出维修记录等功能。
第0页,共26页
1.4开发目的
小区物业管理系统把方便小区物业管理作为主要目的,以此来提高管理效率,真正实现高效的物业管理。
2开发工具与相关技术
2.1Eclipse
Eclipse是免费的、使用率很高的开发工具。
就Eclipse本身而言,它只是一个框架,开发人员可以通过插件钻进构建开发环境[1]。
2.2Java
Java是目前较为流行的编程语言,与C语言不同的是,Java是面向对象的编程语言,它具有通用性、高效性、平台移植性和安全性的特点,也正是这些特点使得Java能被大家认可所使用[2]。
2.3MySQL
MySQL数据库在市面上一直有较高的使用率。
MySQL同Oracle相比较而言,MySQL较小,没有像Oracle那样严格的权限管理机制,而且它是开源免费的[3]。
2.4Tomcat
Tomcat服务器是一个使用广泛的web服务器。
它是免费的,开源的。
2.5JavaScript
JavaScript属于前端开发的一种技术。
它是脚本语言,现在被广泛用于Web
应用开发,可以用来为网页添加各种动态的效果,给用户带来更好的的用户体验,增强了系统与用户之间的交互性[4]。
2.6SSM框架
SSM是由Spring、SpringMVC以及MyBatis三个框架整合而成,用于进行
Web项目的开发,这也是现在常用的框架技术。
SpringMVC负责处理接收请求和视图管理,Spring负责业务逻辑,MyBatis负责数据的存储和修改[5]。
第26页,共26页
2.7Spring
Spring是一个开源的轻量级框架。
Spring提供了AOP的功能,这就可以进行切面编程,另外Spring也提供的事务管理机制,这些使得Spring成为系统开发的主流框架之一[6]。
2.8SpringMVC
SpringMVC是Spring中自带的一个开发框架,该框架体现了MVC的设计思想。
SpringMVC将控制器、模型对象、分派器以及处理程序对象分离开来,这使得系统更加清晰。
通过在XML文件中进行配置后就会根据请求跳转到相应的视图[7]。
2.9MyBatis
MyBatis是apache的一个开源项目。
是目前较为流行的持久层框架,
MyBatis通过XML或注解来完成配置和原始映射,将接口和Java对象映射成数据库中的记录[8]。
3系统需求分析
需求分析是分析系统应该要具有什么样的功能。
在需求分析确定下来后就基本不会再有什么变动。
需求分析为后续的开发指明了方向。
所以需求分析显得尤为重要。
下面就对本系统的功能需求进行分析。
本系统主要是给小区的物业公司和小区居民提供一个平台,使得物业公司
可以方便高效的对所管理的小区进行管理以及一些信息的发布,小区居民也可以通过该系统了解到与自己相关的信息。
本系统分为两部分:
前台、后台。
1.前台
前台为该小区的展示页面,页面上面展示的是该小区的一些信息,小区居民在通过登陆后查看自己的基本信息和自己申请维修的记录情况。
居民用户能做的如图3-1所示:
1)小区居民能够查看自己的信息;
2)小区居民能够申请维修;
3)小区居民能够查看申请维修单的进度;
4)小区居民能够查看过往的维修记录。
2.后台
图3-1居民用例图
后台为本系统的管理端,系统管理员可以在后台管理小区的各项事情,对小区的日常进行高效、便捷的管理,系统管理员在通过前台的登录界面进行登录后,就可进入到后台页面。
系统管理员所能做的如图3-2所示:
1)系统管理员能够查看和修改小区住房信息;
2)系统管理员能够查看和修改小区车位信息;
3)系统管理员能够添加、删除、修改和查看小区住户信息;
4)系统管理员能够导出小区住户信息,生成Excel表格;
5)系统管理员能够添加和删除维修人员信息;
6)系统管理员能够添加小区住户各项费用使用情况;
7)系统管理员能够查看小区住户过往各项费用的使用情况;
8)系统管理员能够对居民提出的维修申请进行派工处理;
9)系统管理员能够查看和导出维修记录;
10)系统管理员能够发布小区新闻。
图3-2管理员用例图
4系统设计
4.1功能模块
小区物业管理系统分为前台和后台:
小区居民能够使用前台,后台只有系统管理员能够使用,小区物业管理系统的功能模块如图4-1所示。
图4-1小区物业管理功能模块图
4.2数据库设计
数据库设计在开发过程中属于一项重要工作,如果数据库在系统设计初期考虑的比较周全的话会方便之后系统的开发和以后的系统的维护。
按照需求分析对数据库进行设计,系统中涉及到的每个表的详细信息如下:
1)T_HOUSE:
小区住房信息表,用于存放小区住房的详细信息,如表4-1
所示:
表4-1T_HOUSE表
名称
类型
主键
备注
能否为空
h_id
int
√
住房ID
×
h_o_id
int
×
住房所对应的户主ID
×
h_area_name
varchar(255)
×
小区名字
×
h_unite
varchar(255)
×
小区单元号
×
h_height
int
×
住房所在楼层
×
h_no
varchar(255)
×
门牌号
×
h_area
float
×
住房面积
×
h_type
varchar(255)
×
住房户型
×
h_desc
varchar(255)
×
住房描述
×
h_price
int
×
房价
×
h_state
varchar(255)
×
住房状态
×
h_img
varchar(255)
×
照片
×
2)T_PARK:
车位信息表,用于存放小区所有车位的详细信息,如表4-2
所示:
表4-2T_PARK表
名称
类型
主键
备注
能否为空
p_id
int
√
车位ID
×
p_o_id
int
×
车位所对应的户主ID
×
p_area_name
varchar(255)
×
小区名字
×
p_no
varchar(255)
×
车位号
×
p_car_no
varchar(255)
×
车牌号
×
p_state
varchar(255)
×
车位状态
×
p_username
varchar(255)
×
车位户主的名字
×
p_price
float
×
价格
×
3)T_OWNER:
户主信息表,用于存放户主的详细信息,如表4-3所示
表4-3T_OWNER表
名称
类型
主键
备注
能否为空
o_id
int
√
住户ID
×
o_name
varchar(255)
×
名字
×
o_age
int
×
年龄
×
o_gender
varchar(255)
×
性别
×
o_personId
varchar(255)
×
身份证号
×
o_tel
varchar(255)
×
电话
×
o_img
varchar(255)
×
头像
×
o_birth
varchar(255)
×
出生日期
×
o_nation
varchar(255)
×
民族
×
o_checkin
varchar(255)
×
入住时间
×
o_state
varchar(255)
×
住户状态
×
4)T_REPAIRMAN:
维修人员信息表,用于存放维修人员详细信息,如表
4-4所示:
表4-4T_REPAIRMAN表
名称
类型
主键
备注
能否为空
r_id
int
√
维修员ID
×
r_name
varchar(255)
×
名字
×
r_gender
varchar(255)
×
性别
×
r_age
int
×
年龄
×
r_personId
varchar(255)
×
身份证号
×
r_tel
varchar(255)
×
电话
×
r_state
varchar(255)
×
维修员状态
×
5)T_COST:
费用信息表,用于存放住户各项费用的详细信息,如表4-5
所示:
表4-5T_COST表
名称
类型
主键
备注
能否为空
c_id
int
√
费用ID
×
c_o_id
int
×
费用所对应的户主ID
×
c_time
varchar(255)
×
收费时间
×
cw_amount
float
×
使用水费总量
×
cw_price
float
×
水费价格
×
ce_amount
float
×
使用电费总量
×
ce_price
float
×
电费价格
×
cp_price
float
×
物业费价格
×
6)T_REPAIR_SQ:
维修申请信息表,用于存放维修申请的详细信息,如表
4-6所示:
表4-6T_REPAIR_SQ表
名称
类型
主键
备注
能否为空
rsq_id
int
√
申请ID
×
rsq_o_id
int
×
申请维修单所对应的户主
ID
×
rsq_name
varchar(255)
×
姓名
×
rsq_areaname
varchar(255)
×
小区名
×
rsq_unite
varchar(255)
×
单元号
×
rsq_hno
varchar(255)
×
门牌号
×
rsq_content
varchar(255)
×
维修内容
×
rsq_tel
varchar(255)
×
电话
×
rsq_s_time
varchar(255)
×
申请时间
×
res_state
varchar(255)
×
状态
×
7)T_REPAIR:
维修记录信息表,用于存放维修记录的详细信息,如表4-
7所示:
表4-7T_REPAIR表
名称
类型
主键
备注
能否为空
r_id
int
√
维修记录ID
×
rm_id
int
×
维修记录多对应的维修
人员ID
×
r_o_id
int
×
维修记录多对应的户主
ID
×
r_content
varchar(255)
×
维修内容
×
r_s_time
varchar(255)
×
维修申请时间
×
r_e_time
varchar(255)
×
维修结束时间
×
r_state
varchar(255)
×
状态
×
8)T_INFO:
公告信息表,用于存放社区新闻的详细信息,如表4-8所示:
表4-8T_INFO表
名称
类型
主键
备注
能否为空
i_id
int
√
新闻ID
×
i_title
varchar(255)
×
新闻标题
×
i_content
varchar(255)
×
新闻内容
×
i_pub_time
varchar(255)
×
发布时间
×
续4-8T_INFO表
i_author
varchar(255)
×
作者
×
i_state
varchar(255)
×
状态
×
i_view_times
int
×
浏览次数
×
9)T_USER_PASS:
注册信息表,用于存放用户注册的详细信息,如表4-9
所示:
表4-9T_USER_PASS表
名称
类型
主键
备注
能否为空
up_id
int
√
注册ID
×
up_nick
varchar(255)
×
昵称
×
up_username
varchar(255)
×
注册手机号
×
up_password
varchar(255)
×
密码
×
up_character
varchar(255)
×
角色
×
up_o_id
int
×
所对应的户主ID
×
up_state
varchar(255)
×
状态
×
5系统实现
5.1系统架构
本系统使用SSM的框架,能够很好的体现出MVC三层架构思想,其中表现层使用JSP来实现,控制层通过Controller调用相应的方法来实现[9],模型层使用MyBatis的映射文件来将数据保存到数据库中[10]。
5.2系统结构
系统结构如图5-1所示,property是本系统的项目名,src下的包里面有业务逻辑类,数据访问映射文件,控制器和实体类等,WebRoot目录下有
JSP、JS、CSS、图片等文件和目录, web.xml是本系统的配置文件。
其中
controller包里是控制器,用来接收各种请求名并且在调用相应的方法后返回相应的页面或是返回JSON对象,DAO包是对数据库的操作调用的方法存放在
mapper包下,entity包存放的是项目中的实体类,mapperxml下存放的是对数据库操作的SQL语句,pojo下面存放的是实体类这些实体类里面的属性来自不同表中的字段,service包下存放的是调用DAO中的方法,utils包下存放的是工
具类,有图片上传工具类,MD5加密工具类,生成Excel表格的工具类。
jdbc.properties里写的是连接数据库时driverClassName, url,username以及
password。
图5-1系统包图
5.3详细实现
5.3.1住户前台申请维修页面
1.用户登录后点击首页上的申请维修,点完后会跳转到填写维修单页面,页面上填写户主姓名,户主地址,维修内容以及户主的联系电话,页面如图5-
2所示
图5-2前台维修申请页面
functionaddRepairSQ(){
$.ajax({
type:
"GET",
url:
"../../cms/home/addRepairSQ",dataType:
"json",
data:
{
rsq_o_id:
rsq_o_id,rsq_name:
rsq_name,rsq_areaname:
rsq_areaname,rsq_unite:
rsq_unite,rsq_hno:
rsq_hno,rsq_content:
rsq_content,rsq_tel:
rsq_tel
},
success:
function(data){if(data.success){
alert("添加成功");
}else{
alert("添加失败");
}
}
});
}
2.当用户填写完申请单后,点击申请,就能完成维修申请,在代码方面会发送一个ajax请求,请求名为”../../cms/home/addRepairSQ”,请求参数有rsq_o_id,rsq_name,rsq_areaname,rsq_unite,rsq_hno,rsq_contennt,rsq_tel,也就是之前在页面上输入的户主姓名,户主地址,维修内容以及户主的联系电话,下面是ajax代码
3.在Controller中有RequestMapping这个注解,