1、小区物业管理系统摘要随着我国经济的发展和城市的开发,住宅小区越来越受到人们的欢迎,小区物业管理是针对当今社会这一市场需要应运而生的。而小区物业管理系统的开发,可以给小区物业管理者的工作带来极大的便利,同时,也可以让小区业主得到更加人性化的服务。根据需求分析,实现小区管理业务,方便物业管理人员的工作,提高工作效率。该系统是基于J2EE和MySql数据库的一种在Internet上公开发布、共享信息的系统,管理员可以方便的完成小区物业信息的发布、更新,及时的与业主沟通。业主同样也可以同步得到管理员所发布的物业管理信息、与管理员就物业信息进行交流。本系统主要包括管理员管理模块、业主管理模块、投诉管理模
2、块、报修管理模块、收费管理模块、业主留言模块及相关公告信息模块等。 关键词:物业管理;数据库;信息发布AbstractAs our countrys economy and exploitation of the cities develop day by day, residence communities have become the mainstream of housing. Thus property management isbecomingmorepopularthanbefore. The development of community property managemen
3、t system can offer considerable convenience to the manager, meanwhile, it also provides the owner with more humanized service. With the analysis based the need, we can realize the management operation with higher efficiency and also make the administrative staffs work more convenient.This system, wh
4、ich is released openly on the internet, is founded on the database of J2EE and MySql and all the information on it can be shared. Administrative staff can release, refresh the information of residence community easily on it. They can communicate with property owners on time, on the other hand, prope
5、rty owners also can get access to those released information then commencing communication concerning the property. This system mainly includes manager management module, owner management module, complaint filing module, repair request module, charging management module, owners message module and re
6、levant information announcement modules and so on.Keywords: PropertyManagement; Database; Information Release目 录第1章 绪论11.1系统开发背景11.2系统研究目的和意义1第2章 系统需求分析22.1用户功能需求分析22.2系统性能要求22.3业务流程分析3第3章 系统总体设计53.1系统功能模块分析53.2实体联系图6第4章 系统详细设计104.1开发工具简介104.2数据库设计104.3用户界面设计134.3.1登录界面134.3.2管理员界面174.3.3业主管理界面26第5章
7、 软件测试和调试335.1测试目的335.2测试环境335.3测试用例33第6章 工作总结和展望38参考文献39致 谢4041第1章 绪论1.1系统开发背景 物业管理行业是房地产行业的一个重要组成部分,随着房地产行业的快速发展,人们逐渐接受了小区物业管理。良好的小区物业管理已经成为楼盘销售的重要因素,也成为业主或租户选择物业公司的重要考虑因素。长期以来,小区的物业管理工作只停留在看看门、扫扫地、补补漏、收收垃圾等很浅的层次上面,又由于物业管理公司的启动基金不足,多种经营服务不善等因素,导致物业公司招不到专业水平高的工作人员,再加上管理手段落后,所以就很难提高小区物业管理公司的效益。小区物业管理
8、在手工操作时代,工作非常繁琐,需要大量的人力、物力和财力,极大的浪费了小区物业的资源,同时也需要手工记录这些事情,不但麻烦琐碎,还经常容易出现错误,给广大业主带来很多不便。通过对洛阳的周边小区进行实地考察以及利用网络等多种渠道,了解到了洛阳的物业公司目前在小区物业管理方面的一些现状,也是停留在手动纯依赖人力操作的时代,物业公司需要专门的安排人力来与业主们一个个的进行物业信息的发布与维护。 1.2系统研究目的和意义本次小区物业系统的开发,其中包含了日常小区物业管理的基本模块,其目的是物业公司采用该系统后,物业管理的报修、公告、投诉等基本信息能够通过该系统平台得到更加及时发布与接收,不用业主与物业
9、管理人员依靠人力方式进行面对面沟通,节省时间、物力、减少物业管理人员的工作量,提高物业公司的服务质量。小区物业系统的开发,对物业管理实现由人工管理向数字化管理的阶段起到了过渡的作用,可以提高物业管理的效率,给广大的业主与物业管理人员带来了极大的方便。各种人性化的服务模块,使管理者和业主对住宅小区中的事物能够得到更方便、更快捷、更满意的答复。 智能铁路查询系统第2章 系统需求分析2.1用户功能需求分析设计小区物业管理系统时应该首先充分了解到用户的各个方面需求,包括现有的以及将来可能增加的需求,通过对洛阳周边小区进行详细的实地考察以及利用网络等多种渠道,了解到洛阳本地在小区物业管理方面的一些现状以
10、及业主、物业管理人员对小区物业管理系统的各种要求,调研结果如下:业主:可以查看缴费信息,查看公告信息,进而获得自己所需要知道的物业管理信息,因此查看这两种信息不能对其进行数据的修改、编辑;业主可以参与投诉、报修,将所需要维修的设备信息提交给管理员,管理员接受到保修信息后可回复给业主处理结果;业主可以投诉小区的某些不如人意的地方,管理员得到投诉信息并可回复;此外,业主可以修改自己的密码,账号信息,使该用户的账户更加安全,为了便于维持业主个人信息的真实性,业主不能修改自己的个人信息。普通管理员:可以发布公告信息并进行添加、删除、修改、查看的操作;可以查看、发布、删除留言信息,可以同业主进行交流;可
11、以查看、删除和回复报修信息与投诉信息;可以对业主信息进行添加、删除、修改、查看;有一点需注意,新注册的业主用户必须经过管理员的审核后才能登陆该系统,这样做是为了维护该小区内信息发布的安全性,防止被不法人员所知。超级管理员:拥有普通管理员的所有权限;可以对管理员进行管理等;可以使用系统的一切功能;并且应该能够保证系统的安全性。该系统功能模块虽然不是太多,但也包含了物业管理的基本业务,具有很高的实用性,且简单易于操作,维护成本低。2.2系统性能要求1、安全性该系统的安全性主要是防止他人非法进入系统,从而保证了数据的安全性,数据存储的完整性和数据的可靠性。设置三种不同的身份进行登录,即超级管理员、普
12、通管理员和业主;系统的一些关键信息的删除并未从删除数据,而是加上一些字段使其查找不出来,从一定程度上可以降低数据的损坏程度。2、高效性使用此小区物业管理系统既可以方便管理小区的物业相关信息,又可以大大减轻小区工作人员的负担,不用物业管理人员挨家挨户通知相关信息,同时,业主也可以方便的通过该系统向物业管理者提交报修与投诉信息,与传统上的人工服务相比效率得到了很大的提高。 3、便捷性本系统的界面友好,操作方便,能够达到所见即所得的效果,方便用户的使用。2.3业务流程分析依据系统的需求分析,得到系统业主的流程图:图2-1 业主流程图图2-2 管理员流程图第3章 系统总体设计系统总体设计需要完成的主要
13、功能是概念和逻辑结构的设计,其中概念结构设计是将需求分析得到的用户需求抽象为概念模型的过程,它是整个数据库设计的关键。逻辑结构设计阶段的任务是将概念结构设计阶段所得到的概念模型转换为具体DBMS所能支持的数据模型,并对其进行优化。3.1系统功能模块分析本系统主要分为管理员信息管理、业主信息管理、投诉信息管理、报修信息管理、收费信息管理、业主留言管理和小区公告信息管理七个功能模块。1、管理员信息管理超级管理员(admin)具有最高权限可以添加和删除普通管理员,便于有更多的物业管理人员管理物业信息。2、业主信息管理对业主信息进行管理维护;添加和删除业主,编辑业主的个人信息;对新注册的业主用户进行身
14、份的确认审核后新注册业主才可以登录成功。3、投诉信息管理业主:可以添加所要投诉的信息,并查看自己的投诉信息的审核结果。管理员:可以查看业主所提交的投诉信息,并处理投诉信息。4、报修信息管理业主:可以查看自己的报修信息记录;可以添加提交自己的新的报修信息。管理员:查看业主提交的报修信息;删除业主提交的报修信息;向业主回复报修信息已开始受理。5、收费信息管理业主:可以查看要交的费用信息;管理员:可以对某位业主的某项费用进行添加;可以删除某条收费记录;可以查看收费记录。6、业主留言管理业主:可以查看留言版的留言信息;可以提交新的留言,参与到留言中去。管理员:可以查看留言板信息;可以删除留言板的某条记
15、录;可以发布留言信息。7、小区公告信息业主:可以查看公告信息。管理员:可以查看公告信息;可以删除某条公告信息;可以发布公告信息。系统设置了三种身份的登录,包括超级管理员、普通管理员和业主。其中超级管理员和普通管理员是一个表,系统默认为admin的为超级管理员,已经写在数据库中,该系统没有游客,只能登陆进去才能浏览,如图3-1就是系统的总体结构框图。图3-1 系统总体结构框图3.2实体联系图通过需求分析,现定义以下每个实体的属性:管理员表(管理员id,登陆名,密码)业主表(业主id,业主姓名,电话,住址,备注信息,删除标示,登录名,密码)报修表(报修id ,时间,报修信息,业主id,删除标示,报
16、修状态)留言表(留言id,标题,内容,时间,留言者)公告表(公告id,编号,标题,对象,开始时间,结束时间,内容,删除标示)投诉表(投诉id,时间,内容,业主id,删除标示,投诉状态)收费表(收费id,时间,名称,金额,业主id,删除标示)1、管理员表名为vm_admin,存放的是管理员的登录信息,起登陆服务端验证的作用,管理员信息实体属性图如图3-2所示。图3-2 管理员信息实体属性图2、业主表名为vm_user,存放的是业主的个人信息、登陆账号和密码信息,业主信息实体属性图如图3-3所示。图3-3 业主信息实体属性图3、报修信息表名为vm_repair,存放的是报修的相关信息,报修信息实体
17、属性图如图3-4所示。图3-4报修信息实体属性图4、留言信息表名为vm_note,存放的好似留言的相关信息,留言信息实体属性图如图3-5所示。图3-5 留言信息实体属性图5、公告信息表名为vm_notice,存放的是公告的相关信息,公告信息实体属性图如图3-6所示。图3-6 公告信息实体属性图6、投诉信息表名为vm_complain,存放的是投诉的相关信息,投诉信息实体属性图如图3-7所示。图3-7 投诉信息实体属性图7、收费信息表名为vm_charge,存放的是收费的相关信息,收费信息实体属性图如图3-8所示。图3-8 收费信息实体属性图实体之间关系的E-R图如图3-9所示。图3-9 总的实
18、体联系图第4章 系统详细设计4.1开发工具简介MyEclipse企业级工作平台是对Eclipse IDE的扩展,利用它我们可以在数据库和Java EE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的Java EE集成开发环境,利用它我们可以在数据库和J2EE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的J2EE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、JavaScript、Spring、SQL、Hibernate。利用MyEclipse开发项目,有许多便利之处,我们可以能看到类或
19、者变量、方法被哪些其它的类所引用,在写 JavaBean的时候常常要写一些模式化的getXXX()和setXXX()这样的方法,我们同样可以用MyEclipse来自动生成这些模版化的方法,在MyEclipse里有许多这样的方法,这都将会大大的加快开发程序或者理解程序结构的进度。在程序开发的过程中,当程序出现错误时,可以使用debug模式,使用该模式可以很容易的查询出程序中的错误,极大的提高的程序的开发的效率,同时可视化的开发界面,我们也很容易学会难度,这都我们项目的开发带来了便利。4.2数据库设计数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率以及实现的
20、效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。本系统主要用到了以下7张表:1、管理员表,表名为vm_admin,存储的是管理员id(主键),管理员登录名和密码,管理员表的具体信息,如图4-1管理员表图所示。图4-1 管理员表2、业主表,表名为vm_user,字段有业主id、用户名、电话、住址、备注、删除标示、登录名字、登录密码,其详细设计,如图4-2业主表所示。图4-2 业主表3、报修表,表名为vm_repair,存储的字段为:报修id、报修时间、详细信息、业主id、删除标示、处理情况,其中,vm_repair的repairId主键关联vm_user的user
21、Id,详细设计,如图4-3所示。图4-3 报修表4、公告表,表名为vm_notice,存储的字段有公告id、编号、公告名称、对象、开始时间、截止时间、内容、删除标示,该表的详细设计,如图4-4公告表所示。图4-4 公告表5、留言表,表名为vm_note,存储的字段有留言id、标题、内容、时间、留言人,详细设计,如图4-4留言表所示。图4-5 留言表6、投诉表,表名为vm_complain,,存储的字段有投诉id、时间、内容、业主id、删除标示、处理情况,其中vm_complain的complainId主键关联vm_user表的userId,详细设计,如图4-6投诉表所示。图4-6 投诉表7、收
22、费信息,表名为vm_charge,存储的字段有收费id、时间、收费项目名、金额、业主id、删除标示,其中vm_charge的主键chargeId关联vm_user表的userId,详细设计,如图4-7收费表所示。表4-7 收费表4.3用户界面设计4.3.1登录界面1、系统主界面超级管理员拥有最高权限,可以使用系统内的所有功能;而普通管理员和业主登录时,操作受到相应的限制,执行所禁止的权限的操作会提示权限不够,其界面图,如图4-8系统主界面所示。图4-8 系统主界面menu界面中单选框事件代码如下 个人信息管理a href=/admin/person_info/info_pwd.jsp targ
23、et=main个人密码修改 管理员信息管理a href=/adminManage.action target=main管理员信息维护 a href=/admin/index/adminAdd.jsp target=main管理员信息添加 业主信息管理a href=/userManage.action target=main业主信息维护a href=/admin/user/user_add.jsp target=main业主信息添加 a href=/user_register.action target=main业主信息审核 投诉信息管理a href=/complainManage.action
24、 target=main投诉信息维护 报修信息管理a href=/repairManage.action target=main报修信息维护 收费信息管理a href=/chargeManage.action target=main收费信息维护a href=/admin/charge/charge_add.jsp target=main收费信息添加 业主留言管理a href=/noteManage.action target=main业主留言维护 小区公告信息a href=/noticeManage.action target=main公告信息维护a href=/admin/notice/no
25、tice_Add.jsp target=main公告信息添加2、登录界面管理员和业主必须通过用户名和密码进行登录,登录时会进行身份验证。在登陆页面输入用户名和密码,点击提交按钮,跳转到登陆的service中,在该service中会对用户名,密码,验证码进行判断,验证通过进入对应的页面。新用户注册的后台代码如下,输入注册信息,单机提交,执行下列语句,进而跳转到登录页面。用户登录页面,如图4-9登录界面所示。图4-9 登录界面1、javaScript事件代码如下:function login() if(document.ThisForm.userName.value=) alert(请输入用户名)
26、; document.ThisForm.userName.focus(); return false;if(document.ThisForm.userPwd.value=) alert(请输入密码); document.ThisForm.userPwd.focus(); return false;if(document.ThisForm.userType.value=-1) alert(请选择登陆角色!); document.ThisForm.userType.focus(); return false;document.getElementById(indicator).style.dis
27、play=block;LoginService.login(document.ThisForm.userName.value,document.ThisForm.userPwd.value,document.ThisForm.userType.value,callback);2、function callback(data)document.getElementById(indicator).style.display=none;if(data=no) alert(用户名或密码错误);if(data=yes) alert(通过验证,系统登录成功); window.location.href=/
28、login_success.jsp; function reset() document.getElementById(ThisForm).reset(); 3、loginservice关键代码:if(userType=0)/系统管理员登陆String sql=from Admin where userName=? and userPwd=?;Object con=userName,userPwd;List adminList = admindao.getHibernateTemplate().find(sql,con);if(adminList.size()=0)result=no;else
29、WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); Admin admin=(Admin)adminList.get(0);session.setAttribute(userType, 0); session.setAttribute(admin, admin); result=yes;if(userType=1)/业主登录String sql=from User where userName=? and userPwd=? and userDel=no;Object con = use
30、rName,userPwd;List userList = userdao.getHibernateTemplate().find(sql,con);if(userList.size() = 0) result=no;elseWebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); User user=(User)userList.get(0);session.setAttribute(userType, 1); session.setAttribute(user, user); result
31、=yes;return result;4、注册服务器端代码。User user = new User();user.setUserName(userName);user.setUserPwd(userPwd);user.setUname(uname);user.setUserTel(userTel);user.setUserAddress(userAddress);user.setUserInfo(userInfo);user.setUserDel(shenhe);userdao.save(user);return msg;4.3.2管理员界面1、个人密码修改“个人密码修改”按钮事件代码如下,
32、其界面如图4-10个人密码修改所示。其代码可以判断原密码是否正确,新密码的二次输入是否一致。单击修改按钮后,执行service中的adminPwdEdi()方法,执行完成后返回本界面,其相关代码信息如下列举。图4-10个人密码修改function check() var userPwdReal=$sessionScope.admin.userPwd;if(document.formPw.userPwd.value !=userPwdReal) alert(原密码不正确); return ; if(document.formPw.userPwd1.value =) alert(新密码不能空);
33、return ;if(document.formPw.userPwd1.value != document.formPw.userPwd2.value) alert(两次输入的密码不一致); return ;public String adminPwdEdit(String userPwNew) WebContext ctx = WebContextFactory.get(); HttpSession session=ctx.getSession(); Admin admin=(Admin)session.getAttribute(admin);admin.setUserPwd(userPwN
34、ew);admindao.getHibernateTemplate().update(admin);session.setAttribute(admin, admin);return yes;2、管理员维护“管理员信息维护”按钮clicked事件代码如下, 服务器端可以判断该管理员是否为超级管理员是否具有该权限,“添加“按钮单击后,页面跳转到管理员添加页面,进而填入相关信息再提交信息,完成普通管理员的注册,其界面信息如图4-11所示。图4-11 管理员维护界面function adminDel(adminId) if(confirm(您确定删除吗?) var userName=$session
35、Scope.admin.userName; if(userName!=admin) alert(您无此操作权限!); return false; window.location.href=/adminDel.action?adminId=+adminId; function adminAdd() var url=/admin/index/adminAdd.jsp; window.location.href=url; public String adminAdd()if(userName.trim().equals(admin)this.setMessage(admin账户已存在!);this.
36、setPath(admin/index/adminAdd.jsp);return succeed;elseAdmin admin=new Admin();admin.setUserName(userName);admin.setUserPwd(userPwd);admindao.save(admin);this.setMessage(添加管理员成功!);this.setPath(adminManage.action);return succeed;3、业主信息管理管理员登录本系统后,可以查看注册的业主信息,删除、编辑、添加、审核业主信息;分别调用各自对应的action,来执行相应的方法,完成对
37、业主信息的各种操作。其界面,如图4-12业主信息维护界面所示。图4-12 业主信息维护界面“业主信息维护”按钮事件代码如下:String sql = from User where userDel !=yes;List userList = userdao.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get(request);request.put(userList, userList);return ActionSupport.SUCCESS;“查询”按钮clicked
38、事件代码如下:String sql=from User where userDel !=yes and uname like %+uname.trim()+%;List userList=userdao.getHibernateTemplate().find(sql);Map request=(Map)ServletActionContext.getContext().get(request);request.put(userList, userList);return ActionSupport.SUCCESS; “添加”按钮clicked事件代码如下:var url=/admin/user
39、/user_add.jsp;window.location.href=url;“删除”按钮clicked事件代码如下:if(confirm(您确定删除吗?) window.location.href=/userDel.action?userId=+userId; “编辑”按钮clicked事件代码如下:function userEditPre(userId) window.location.href=/userEditPre.action?userId=+userId; 4、投诉信息维护先是点击投诉信息维护,页面跳转到投诉信息维护界面,浏览所有的业主投诉信息,点击要删除的投诉信息,执行点击确定
40、按钮,完成投诉信息删除操作。其界面,如图4-13投诉信息维护界面。4-13 投诉信息维护界面查看投诉事件代码如下:String sql=from Complain where complainDel = no order by complainId desc;List complainList = complaindao.getHibernateTemplate().find(sql);for(int i=0;icomplainList.size();i+) Complain complain = (Complain)complainList.get(i); complain.setUserN
41、ame(userdao.findById(complain.getUserId().getUserName();Map request=(Map)ServletActionContext.getContext().get(request);request.put(complainList, complainList);return ActionSupport.SUCCESS; “受理”按钮clicked事件代码如下:Complain complain = complaindao.findById(complainId);complain.setComplainIdentify(yishouli
42、);complaindao.saveup(complain);this.setMessage(授理成功!);this.setPath(complainManage.action);return succeed;5.报修信息维护先是点击报修信息维护,页面跳转到报修信息维护界面,浏览所有的业主报修信息,点击要删除的报修信息,点击确定按钮,完成报修信息的删除操作,点击要受理的报修信息,完成受理报修信息的操作,其界面,如图4-14报修信息维护。图4-14 报修信息维护“删除”按钮代码如下:Repair repair = repairdao.findById(repairId);repair.setRepairDel(yes);repa