项目介绍
现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。
开发环境
编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SpringBoot
编译工具:idea或者eclipse,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net
系统实现
5.1 住户管理
如图5.1显示的就是住户管理页面,此页面提供给管理员的功能有:对住户信息进行查询,添加,删除以及批量删除操作。
图5.1 住户管理页面
5.2 房间管理
如图5.2显示的就是房间管理页面,管理员可以对房间信息进行添加,修改,删除,查询操作。
图5.2 房间管理页面
5.3 维修人员管理
如图5.3显示的就是维修人员管理页面,管理员可以对维修人员信息进行添加,修改,删除,查询操作。
图5.3 维修人员管理页面
5.4 维修分类管理
如图5.4显示的就是维修分类管理页面,管理员可以对维修分类进行添加修改删除查询操作。
图5.4 维修分类管理页面
5.5 物品信息管理
如图5.4显示的就是物品信息管理页面,管理员可以对物品信息进行添加修改删除查询操作。
图5.5 物品信息管理页面
5.6 维修申请管理管理
如图5.4显示的就是维修申请管理页面,管理员可以对维修申请信息进行查询操作。
图5.6 维修申请管理页面
核心代码
package com.controller;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;
import com.entity.WeixiurenyuanEntity;
import com.entity.view.WeixiurenyuanView;
import com.service.WeixiurenyuanService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;
/**
* 维修人员
* 后端接口
* @author
* @email
* @date
*/
@RestController
@RequestMapping("/weixiurenyuan")
public class WeixiurenyuanController {
@Autowired
private WeixiurenyuanService weixiurenyuanService;
@Autowired
private TokenService tokenService;
/**
* 登录
*/
@IgnoreAuth
@RequestMapping(value = "/login")
public R login(String username, String password, String captcha, HttpServletRequest request) {
WeixiurenyuanEntity user = weixiurenyuanService.selectOne(new EntityWrapper<WeixiurenyuanEntity>().eq("weixiuzhanghao", username));
if(user==null || !user.getMima().equals(password)) {
return R.error("账号或密码不正确");
}
String token = tokenService.generateToken(user.getId(), username,"weixiurenyuan", "维修人员" );
return R.ok().put("token", token);
}
/**
* 注册
*/
@IgnoreAuth
@RequestMapping("/register")
public R register(@RequestBody WeixiurenyuanEntity weixiurenyuan){
//ValidatorUtils.validateEntity(weixiurenyuan);
WeixiurenyuanEntity user = weixiurenyuanService.selectOne(new EntityWrapper<WeixiurenyuanEntity>().eq("weixiuzhanghao", weixiurenyuan.getWeixiuzhanghao()));
if(user!=null) {
return R.error("注册用户已存在");
}
Long uId = new Date().getTime();
weixiurenyuan.setId(uId);
weixiurenyuanService.insert(weixiurenyuan);
return R.ok();
}
/**
* 退出
*/
@RequestMapping("/logout")
public R logout(HttpServletRequest request) {
request.getSession().invalidate();
return R.ok("退出成功");
}
/**
* 获取用户的session用户信息
*/
@RequestMapping("/session")
public R getCurrUser(HttpServletRequest request){
Long id = (Long)request.getSession().getAttribute("userId");
WeixiurenyuanEntity user = weixiurenyuanService.selectById(id);
return R.ok().put("data", user);
}
/**
* 密码重置
*/
@IgnoreAuth
@RequestMapping(value = "/resetPass")
public R resetPass(String username, HttpServletRequest request){
WeixiurenyuanEntity user = weixiurenyuanService.selectOne(new EntityWrapper<WeixiurenyuanEntity>().eq("weixiuzhanghao", username));
if(user==null) {
return R.error("账号不存在");
}
user.setMima("123456");
weixiurenyuanService.updateById(user);
return R.ok("密码已重置为:123456");
}
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,WeixiurenyuanEntity weixiurenyuan,
HttpServletRequest request){
EntityWrapper<WeixiurenyuanEntity> ew = new EntityWrapper<WeixiurenyuanEntity>();
PageUtils page = weixiurenyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, weixiurenyuan), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,WeixiurenyuanEntity weixiurenyuan,
HttpServletRequest request){
EntityWrapper<WeixiurenyuanEntity> ew = new EntityWrapper<WeixiurenyuanEntity>();
PageUtils page = weixiurenyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, weixiurenyuan), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( WeixiurenyuanEntity weixiurenyuan){
EntityWrapper<WeixiurenyuanEntity> ew = new EntityWrapper<WeixiurenyuanEntity>();
ew.allEq(MPUtil.allEQMapPre( weixiurenyuan, "weixiurenyuan"));
return R.ok().put("data", weixiurenyuanService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(WeixiurenyuanEntity weixiurenyuan){
EntityWrapper< WeixiurenyuanEntity> ew = new EntityWrapper< WeixiurenyuanEntity>();
ew.allEq(MPUtil.allEQMapPre( weixiurenyuan, "weixiurenyuan"));
WeixiurenyuanView weixiurenyuanView = weixiurenyuanService.selectView(ew);
return R.ok("查询维修人员成功").put("data", weixiurenyuanView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
WeixiurenyuanEntity weixiurenyuan = weixiurenyuanService.selectById(id);
return R.ok().put("data", weixiurenyuan);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
WeixiurenyuanEntity weixiurenyuan = weixiurenyuanService.selectById(id);
return R.ok().put("data", weixiurenyuan);
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody WeixiurenyuanEntity weixiurenyuan, HttpServletRequest request){
weixiurenyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(weixiurenyuan);
WeixiurenyuanEntity user = weixiurenyuanService.selectOne(new EntityWrapper<WeixiurenyuanEntity>().eq("weixiuzhanghao", weixiurenyuan.getWeixiuzhanghao()));
if(user!=null) {
return R.error("用户已存在");
}
weixiurenyuan.setId(new Date().getTime());
weixiurenyuanService.insert(weixiurenyuan);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody WeixiurenyuanEntity weixiurenyuan, HttpServletRequest request){
weixiurenyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(weixiurenyuan);
WeixiurenyuanEntity user = weixiurenyuanService.selectOne(new EntityWrapper<WeixiurenyuanEntity>().eq("weixiuzhanghao", weixiurenyuan.getWeixiuzhanghao()));
if(user!=null) {
return R.error("用户已存在");
}
weixiurenyuan.setId(new Date().getTime());
weixiurenyuanService.insert(weixiurenyuan);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody WeixiurenyuanEntity weixiurenyuan, HttpServletRequest request){
//ValidatorUtils.validateEntity(weixiurenyuan);
weixiurenyuanService.updateById(weixiurenyuan);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
weixiurenyuanService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 提醒接口
*/
@RequestMapping("/remind/{columnName}/{type}")
public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request,
@PathVariable("type") String type,@RequestParam Map<String, Object> map) {
map.put("column", columnName);
map.put("type", type);
if(type.equals("2")) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
Date remindStartDate = null;
Date remindEndDate = null;
if(map.get("remindstart")!=null) {
Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindStart);
remindStartDate = c.getTime();
map.put("remindstart", sdf.format(remindStartDate));
}
if(map.get("remindend")!=null) {
Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
c.setTime(new Date());
c.add(Calendar.DAY_OF_MONTH,remindEnd);
remindEndDate = c.getTime();
map.put("remindend", sdf.format(remindEndDate));
}
}
Wrapper<WeixiurenyuanEntity> wrapper = new EntityWrapper<WeixiurenyuanEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = weixiurenyuanService.selectCount(wrapper);
return R.ok().put("count", count);
}
}
论文参考
目录
第一章 绪论 5
1.1 研究背景 5
1.2 系统研究现状 5
1.3 系统实现的功能 6
1.4 系统实现的特点 6
1.5 本文的组织结构 6
第二章开发技术与环境配置 7
2.1 Java语言简介 7
2.2 Vue技术 8
2.3 MySQL环境配置 8
2.4 IDEA环境配置 9
2.5 Mysql数据库介绍 9
2.6 B/S架构 9
第三章系统分析与设计 11
3.1 可行性分析 11
3.1.1 技术可行性 11
3.1.2 操作可行性 11
3.1.3经济可行性 11
3.2 需求分析 12
3.3 总体设计 12
3.4 数据库设计与实现 13
3.4.1 数据库概念结构设计 13
3.4.2 数据库具体设计 14
第四章 系统功能的具体实现 22
4.1 系统功能模块 22
4.2 管理员功能模块 25
第五章 系统测试 29
总结 30
参考文献 31
致谢 32