基于idea-SSM的小区物业管理系统(javaweb-php-asp.netC#-j2ee)包含车型管理、车位管理、业主房产管理、车辆登记、缴费登记、投诉管理、报修管理、年度分析报表

 

 

 

目录

0、效果展示

1、概述

2、搭建环境

3、数据表结构

​4、后端代码示例

5、前端代码示例


0、效果展示

 

 

1、概述

 

 

 花园小区物业运用现代化的计算机管理手段,使物业的硬件管理结合软件管理,为物业管理走向现代化,制度化与规范化创造条件。系统的主要功能包括:系统管理、管理员维护、修改密码、车型管理、添加车型、车位管理、添加车位、业主房产管理、添加业主房产、车辆登记、缴费登记、车位缴费信息查询、车费缴纳年报告表、车费缴纳月报表。

本系统最大的特点是使用操作简单、友好的提示信息。本系统将实现以下基本功能:

(1)系统具有简洁大方的页面,使用简便,友好的错误操作提示

(2)管理员用户具有系统管理、车位管理、业主房产管理、缴费管理、财务报表统计

(3)具有较强的安全性,避免用户的恶意操作

管理员功能模块图说明:

(1) 注册用户管理模块:在该模块中定义了注册用户信息的管理,其功能包括注册用户信息查询、删除等操作。

(2) 车位管理模块:该模块实现了系统属性、管理员维护、修改密码。

(3) 业主房产管理模块:该模块实现的功能有业主房产管理、添加业主房产。

(4) 缴费信息管理模块:该模块实现了车辆登记、缴费登记、缴费信息查询。

(5) 财务管理:该模块主要实现了车费缴费年报表、车费缴费月报表等。

2、搭建环境

 

本文以实现一个小区物业管理系统为目标,从环境搭建到编码实现全过程讲述

我们使用javaweb、J2EE来构建小区物业管理系统,环境使用最新版jdk和tomcat,配合mysql数据库

开发工具使用idea(也可以使用eclipse),数据库管理工具使用Navicat Premium 

开发框架使用JavaBean Servlet MVC结构;

没有使用SSH(Struts+Spring+Hibernate)或SSM(Spring+SpringMVC+MyBatis),这两个框架我们在别的项目中再介绍开发过程

 

在项目中会引入My97DatePicker作为前端日期时间选择工具,使用fckeditor作为富媒体编辑器(也可以使用百度的ueditor)

 

 

使用DWR(Direct Web Remoting)用于改善web页面与Java类交互,实现远程服务器端AJAX读取登录数据。

使用JSTL(Java server pages standarded tag library,即JSP标准标签库),此库是由JCP(Java community Proces)所制定的标准规范,它主要提供给Java Web开发人员一个标准通用的标签库,并由Apache的Jakarta小组来维护。开发人员可以利用这些标签取代JSP页面上的Java代码,从而提高程序的可读性,降低程序的维护难度。

 

3、数据表结构

表3 t_chewei 车位管理

字段名称

字段大小

字段类型

说明

id

4

int

编号

catelog_id

4

int

分类编号

name

150

varchar

车位号

weizhi

150

varchar

位置

fuzheren

150

varchar

负责人

isuse

150

varchar

是否使用

beizhu

150

varchar

备注

del

150

varchar

图片

photo

536870910

varchar

-

表4 t_churu 收费管理

字段名称

字段大小

字段类型

说明

id

4

int

编号

danjuhao

150

varchar

单据号

shijian

8

datetime

登记时间

lkshijian

8

datetime

到期时间

zongjiage

4

int

价格

jingshouren

150

varchar

经手人

beizhu

150

varchar

备注

del

150

varchar

是否删除

chewei_id

4

int

车位ID

xingming

536870910

varchar

姓名

dianhua

536870910

varchar

联系方式

表5 t_kehu 业主管理

字段名称

字段大小

字段类型

说明

id

4

int

编号

name

150

varchar

名称

sex

150

varchar

性别

age

150

varchar

年龄

tel

150

varchar

电话

address

150

varchar

地址

 

 

​4、后端代码示例

 

package com.action;

import java.io.IOException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.directwebremoting.WebContext;
import org.directwebremoting.WebContextFactory;

import com.dao.DB;
import com.orm.TAdmin;
import com.orm.Tchewei;
import com.orm.Tchuru;
 
import com.service.liuService;

public class churu_servlet extends HttpServlet
{ 
	public void service(HttpServletRequest req,HttpServletResponse res)throws ServletException, IOException 
	{
		String type=req.getParameter("type");
		
		if(type.endsWith("churuAdd"))
		{
			churuAdd(req, res);
		}
		if(type.endsWith("churuEdit"))
		{
			churuEdit(req, res);
		}
		if(type.endsWith("churuMana"))
		{
			churuMana(req, res);
		}
		if(type.endsWith("churuDel"))
		{
			churuDel(req, res);
		}
		
		 
	}
	
	
	
	
	public void churuAdd(HttpServletRequest req,HttpServletResponse res)
	{
		String danjuhao="";
		String shijian=req.getParameter("shijian");
		String chewei_id=req.getParameter("chewei_id");
			String lkshijian="";
			int zongjiage=0;
			String jingshouren=req.getParameter("jingshouren");
			String xingming=req.getParameter("xingming");
			String dianhua=req.getParameter("dianhua");
		String beizhu=req.getParameter("beizhu");
		String del="no";
		
		
	 	String sql="INSERT INTO t_churu ( danjuhao, shijian, lkshijian, zongjiage, jingshouren, beizhu, del, chewei_id, xingming, dianhua) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
		Object[] params={danjuhao,shijian,null,zongjiage,jingshouren,beizhu,del,chewei_id,xingming,dianhua};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		
		
		
		String sql1="update t_chewei set  isuse='未缴费' where id="+Integer.parseInt(chewei_id);
		Object[] params1={};
		  mydb=new DB();
		mydb.doPstm(sql1, params1);
		
		
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "churu?type=churuMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}
	
	public void churuEdit(HttpServletRequest req,HttpServletResponse res)
	{
	 	String lkshijian=req.getParameter("lkshijian");
		int zongjiage=Integer.parseInt(req.getParameter("zongjiage"));
	 	
		String sql="update t_churu set  lkshijian='"+lkshijian+"',zongjiage='"+zongjiage+"'  where id="+Integer.parseInt(req.getParameter("id"));
		Object[] params={};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
	
		
		String sql1="update t_chewei set  isuse='已缴费' where id="+Integer.parseInt(req.getParameter("chewei_id"));
		Object[] params1={};
		  mydb=new DB();
		mydb.doPstm(sql1, params1);
		
		
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "churu?type=churuMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}
	
	public void churuDel(HttpServletRequest req,HttpServletResponse res)
	{
		int id=Integer.parseInt(req.getParameter("id"));
		
		String sql="update t_churu set del='yes' where id=?";
		Object[] params={id};
		DB mydb=new DB();
		mydb.doPstm(sql, params);
		mydb.closed();
		
		req.setAttribute("message", "操作成功");
		req.setAttribute("path", "churu?type=churuMana");
		
        String targetURL = "/common/success.jsp";
		dispatch(targetURL, req, res);
	}
	
	public void churuMana(HttpServletRequest req,HttpServletResponse res) throws ServletException, IOException
	{
		String page1=req.getParameter("page");
		if(page1==null){
			page1="1";
		}
		//分页设置
		int EVERYPAGENUM=10;//每页条数
		int page=Integer.parseInt(page1);   //传递过来的当前页
		int cou = 1;//得到信息总数	
		int pagecount=1;  //总页数
		String sql1="select count(*) as cou from t_churu where del='no'";
		Object[] params1={};
		DB mydb1=new DB();
		try
		{
			mydb1.doPstm(sql1, params1);
			ResultSet rs=mydb1.getRs();
			while(rs.next())
			{
			cou= rs.getInt("cou");
			}
			rs.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		mydb1.closed();
		
		
		
		if (cou % EVERYPAGENUM == 0) {
			pagecount= cou / EVERYPAGENUM;
        } else {
        	pagecount=cou / EVERYPAGENUM + 1;
        }	
		
		
		
		
		
		
		req.setAttribute("EVERYPAGENUM", EVERYPAGENUM);	
		req.setAttribute("page", page);
		req.setAttribute("cou", cou);
		req.setAttribute("pagecount", pagecount);
		
		
		
		List churuList=new ArrayList();
		String sql="select * from t_churu where del='no'";
		Object[] params={};
		DB mydb=new DB();
		try
		{
			mydb.doPstm(sql, params);
			ResultSet rs=mydb.getRs();
			 for (int i = 0; i < (page - 1) * EVERYPAGENUM; i++) {
	                rs.next();
	            }
	            for (int t = 0; t < EVERYPAGENUM; t++) {
	                if (rs.next()) {
				Tchuru churu=new Tchuru();
				churu.setId(rs.getInt("id"));
				churu.setChewei_id(rs.getInt("chewei_id"));
	churu.setDanjuhao(rs.getString("danjuhao"));
	churu.setChewei_name(liuService.getCheweiName(rs.getInt("chewei_id")));
	churu.setShijian(rs.getTimestamp("shijian"));
	churu.setLkshijian(rs.getTimestamp("lkshijian"));
			churu.setZongjiage(rs.getInt("zongjiage"));
				churu.setJingshouren(rs.getString("jingshouren"));
				churu.setXingming(rs.getString("xingming"));
				churu.setDianhua(rs.getString("dianhua"));
							churu.setBeizhu(rs.getString("beizhu"));
				
				if(rs.getTimestamp("lkshijian")!=null){
					/*		SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				   java.util.Date now = df.parse(rs.getTimestamp("lkshijian").toString());
				   java.util.Date date=df.parse(rs.getTimestamp("shijian").toString());
				   long l=now.getTime()-date.getTime();
				   long day=l/(24*60*60*1000);
				   long hour=(l/(60*60*1000)-day*24);
				   long min=((l/(60*1000))-day*24*60-hour*60);
				   long s=(l/1000-day*24*60*60-hour*60*60-min*60);
				   System.out.println(""+day+"天"+hour+"小时"+min+"分"+s+"秒");
				   */
				   
				   
				   SimpleDateFormat dfs = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
				   java.util.Date end = dfs.parse(rs.getTimestamp("lkshijian").toString());
				   java.util.Date begin=dfs.parse(rs.getTimestamp("shijian").toString());
				  //java.util.Date begin=dfs.parse("2004-01-02 11:30:24");
				   //java.util.Date end = dfs.parse("2004-03-26 13:31:40");
				   long between=(end.getTime()-begin.getTime())/1000;//除以1000是为了转换成秒

				   long day1=between/(24*3600);
				   long hour1=between%(24*3600)/3600;
				   long minute1=between%3600/60;
				   long second1=between%60/60;
				   System.out.println(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");
				   
				   
					churu.setFenshu(""+day1+"天"+hour1+"小时"+minute1+"分"+second1+"秒");
				}
	      		churuList.add(churu);
		          } else {
	                    break; //减少空循环的时间
	                }
	            }
			rs.close();
		}
		catch(Exception e)
		{
			e.printStackTrace();
		}
		mydb.closed();
		
		req.setAttribute("churuList", churuList);
		req.getRequestDispatcher("admin/churu/churuMana.jsp").forward(req, res);
	}
	
	
	
	public void dispatch(String targetURI,HttpServletRequest request,HttpServletResponse response) 
	{
		RequestDispatcher dispatch = getServletContext().getRequestDispatcher(targetURI);
		try 
		{
		    dispatch.forward(request, response);
		    return;
		} 
		catch (ServletException e) 
		{
                    e.printStackTrace();
		} 
		catch (IOException e) 
		{
			
		    e.printStackTrace();
		}
	}
	public void init(ServletConfig config) throws ServletException 
	{
		super.init(config);
	}
	
	public void destroy() 
	{
		
	}
}

 

5、前端代码示例

 

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ page isELIgnored="false" %> 
<%
String path = request.getContextPath();
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<link rel="stylesheet" type="text/css" href="<%=path %>/css/base.css" />
		<script type="text/javascript" src="<%=path %>/js/public.js"></script>
		<script type="text/javascript" src="<%=path %>/My97DatePicker/WdatePicker.js"></script>
		<script type="text/javascript" src="<%=path %>/js/popup.js"></script>
        <script language="javascript">
           function churuDel(id)
           {
               if(confirm('您确定删除吗?'))
               {
                   window.location.href="<%=path %>/churu?type=churuDel&id="+id;
               }
           }
           
          
           
           
       </script>
	</head>

	<body leftmargin="2" topmargin="2" background='<%=path %>/images/allbg.gif'>
			<table width='98%'  border='0'style="margin-top:8px;margin-left: 5px;">
			  <tr>
			    <td>
			      
			    </td>
			  </tr>
		    </table>
			<table width="98%" border="0" cellpadding="1" cellspacing="1" bgcolor="#D1DDAA" align="center" style="margin-top:8px">
				<tr bgcolor="#E7E7E7">
					<td height="14" colspan="10"  class='title'>缴费管理</td>
				</tr>
				<tr align="center" bgcolor="#FAFAF1" height="22">
					<td width="15%">登记时间</td>
					<td width="15%">到期时间</td>
					<td >缴费期限</td>
					<td >车位号</td>
					<td >车主姓名</td>
					<td >联系方式</td>
					<td >总金额</td>
					<td >经手人</td>
					<td >备注</td>
 					<td >选项</td>
		        </tr>	
				<c:forEach items="${requestScope.churuList}" var="churu">
				<tr align='center' bgcolor="#FFFFFF" onMouseMove="javascript:this.bgColor='red';" onMouseOut="javascript:this.bgColor='#FFFFFF';" height="22">
 					<td bgcolor="#FFFFFF" align="center">
					    ${churu.shijian} 
					</td>
 					<td bgcolor="#FFFFFF" align="center">
					    ${churu.lkshijian} 
					</td>
 					<td bgcolor="#FFFFFF" align="center">
					    ${churu.fenshu} 
					</td>
					<td bgcolor="#FFFFFF" align="center">
						${churu.chewei_name}
					</td>
					<td bgcolor="#FFFFFF" align="center">
						${churu.xingming}
					</td>
					<td bgcolor="#FFFFFF" align="center">
						${churu.dianhua}
					</td>
					<td bgcolor="#FFFFFF" align="center">
						${churu.zongjiage}
					</td>
					<td bgcolor="#FFFFFF" align="center">
						${churu.jingshouren}
					</td>
					<td bgcolor="#FFFFFF" align="center">
					    ${churu.beizhu}
					</td>
					
					<td bgcolor="#FFFFFF" align="center">
                        <form action="<%=path %>/admin/churu/churuEdit.jsp" name="" method="post">
						   <input type="button" value="删除" onclick="churuDel(${churu.id})"/>
						        <input type="hidden" name="id" value="${churu.id}"/>
 						        <input type="hidden" name="shijian" value="${churu.shijian}"/>
 							        <input type="hidden" name="chewei_id" value="${churu.chewei_id}"/>
					    <input type="submit" value="缴费"/>
						</form>					
                         
					</td>
				</tr>
				</c:forEach>
			</table>
	 <table width='98%'  border='0'style="margin-top:8px;margin-left: 5px;">
			 <TR align="right">
              <TD ><form action="" method="post" name="formpage">
                  <input type="hidden" name="pageCount" value="${requestScope.pagecount}" />
                  <!--//用于给上面javascript传值-->
                  <input type="hidden" name="page" value="${requestScope.page}" />
                  <!--//用于给上面javascript传值-->
                  <input type="hidden" name="jumpurl" value="<%=path%>/xubao?type=xubaoMana&" />
                  <!--//用于给上面javascript传值--> 
                  <a href="#" onClick="PageTop()"><strong>首页</strong></a>&nbsp;&nbsp;&nbsp; 
                  <a href="#" onClick='PagePre()'><strong>上一页</strong></a>&nbsp;&nbsp;&nbsp;
                  共${requestScope.cou}条记录,
                  共计${requestScope.pagecount}页,
                  当前第${requestScope.page}页&nbsp;&nbsp;&nbsp; 
                  <a href="#" onClick="PageNext()"><strong>下一页</strong></a>&nbsp;&nbsp;&nbsp; 
                  <a href="#" onClick="PageLast()"><strong>尾页</strong></a> 第
                  <input name="busjump" type="text" size="3" value="${requestScope.page}" style=" width:15px"/>
                  页<a href="#" onClick="bjump()"><strong>跳转</strong></a>&nbsp;&nbsp;&nbsp;
                </form>
                <script type="text/javascript" src="<%=path%>/js/page.js"></script></TD>
            </TR>
		    </table>
	</body>
</html>

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
本项目使用IDEA作为IDE,bootstrap(HTML5 CSS JS)做前端,springMVC做后端,mySQL做数据库。 UI请使用蓝色和白色为主色调。不用做得太华丽,做得像一个正常的毕设就行。 首先是登录,分为业主管理员两种身份。不同的身份看到的模块数量和内容不一样。 系统管理模块,我设想的是每个人对自己这个账户的基本信息的修改。这一部分我不太确定,可以适当自由添加一点功能。 楼盘管理业主只能看到自己的住房信息。管理员这边,可以显示这个小区有哪些大楼,选择大楼可以看到大楼内部有哪些房间,还可以显示这些房间与哪些业主相关联(即被谁买下),可以查找指定业主的住房。管理员可以添加、删除、更新业主和房屋的关联(表示入住或者搬离)。 收费管理,初步想法是管理员向业主发出收费通知(物业、水电等),可以向所有业主群发,也可以向指定业主发送。业主的界面会收到通知,业主线下缴费后线上确认,然后管理员确认即可完成缴费全过程。 停车管理业主只能看到自己的车位信息。管理员界面显示小区内所有车位,以及这些车位的状态,无人归属或者归谁所有,可以查找指定业主车位,或者指定车位业主。可以添加、更新和删除业主车位的关联(表示购买车位车位转让、车位到期等)。 业主管理业主看不到这个模块。业主注册时向管理员发出信号,管理员批准后业主注册正式完成。该模块可以显示有哪些业主业主的基本信息。管理员也可以删除业主的账号(表示业主已经搬离该小区,与小区没有关联了)。 保修和投诉两个模块是类似的,业主在自己这里发出具体的请求,管理员界面可以看到这些请求。管理员可以接受请求,等待线下任务完成后,业主确认完成后,管理员确认完成,即正式完成,本次保修、投诉结束。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

计算机程序设计开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值