文末获取源码
开发语言:Java
开发工具:IDEA /Eclipse
数据库:MYSQL5.7
使用框架:springboot+vue
JDK版本:jdk1.8
系统管理也都将通过计算机进行整体智能化操作,对于小区物业管理系统所牵扯的管理及数据保存都是非常多的,例如管理员;首页、个人中心、用户管理、员工管理、业主信息管理、费用信息管理、楼房信息管理、报修信息管理、车位信息管理、停车信息管理、投诉编号管理、公告信息管理、部门信息管理,用户;首页、个人中心、业主信息管理、费用信息管理、楼房信息管理、报修信息管理、车位信息管理、停车信息管理、投诉编号管理、公告信息管理,员工;首页、个人中心、楼房信息管理、报修信息管理、投诉编号管理、公告信息管理、部门信息管理等功能,这给管理者的工作带来了巨大的挑战,面对大量的信息,传统的管理系统,都是通过笔记的方式进行详细信息的统计,后来出现电脑,通过电脑输入软件将纸质的信息统计到电脑上,这种方式比较传统,而且想要统计数据信息比较麻烦,还受时间和空间的影响,所以为此开发了小区物业管理系统;为用户提供了方便管理平台,方便管理员查看及维护,并且可以通过需求进行内容的编辑及维护等;对于用户而言,可以随时进行查询所需信息,管理员可以足不出户就可以获取到系统的数据信息等,而且还能节省用户很多时间,所以开发小区物业管理系统给管理者带来了很大的方便,同时也方便管理员对用户信息进行处理。
使用小区物业管理系统分为管理员和用户、员工三个权限子模块。
管理员所能使用的功能主要有:首页、个人中心、用户管理、员工管理、业主信息管理、费用信息管理、楼房信息管理、报修信息管理、车位信息管理、停车信息管理、投诉编号管理、公告信息管理、部门信息管理等。
用户可以实现;首页、个人中心、业主信息管理、费用信息管理、楼房信息管理、报修信息管理、车位信息管理、停车信息管理、投诉编号管理、公告信息管理等。
员工可以实现;首页、个人中心、楼房信息管理、报修信息管理、投诉编号管理、公告信息管理、部门信息管理等。
管理员用例
管理员登录后可进行首页、个人中心、用户管理、员工管理、业主信息管理、费用信息管理、楼房信息管理、报修信息管理、车位信息管理、停车信息管理、投诉编号管理、公告信息管理、部门信息管理,管理员的用例如图
用户用例
用户注册登录后可进行首页、个人中心、业主信息管理、费用信息管理、楼房信息管理、报修信息管理、车位信息管理、停车信息管理、投诉编号管理、公告信息管理,用户用例如图
系统功能结构图
用户点击进入到系统操作界面,可以对首页、个人中心、业主信息管理、费用信息管理、楼房信息管理、报修信息管理、车位信息管理、停车信息管理、投诉编号管理、公告信息管理等功能模块,
个人信息:通过列表可以获取个人账号、姓名、性别、年龄、身份证号码、手机号码、车牌号、相片并进行修改操作,如图
业主信息管理
费用信息管理:通过列表可以获取费用编号、费用名称、金额、个人账号、姓名、性别、门牌号、楼房名称、发布日期、是否支付等信息,进行详情、修改、删除操作,如图
楼房信息管理:通过列表可以获取信息编号、楼房名称、楼房位置、楼层数、户型、户型数量、发布日期等信息,进行详情、删除操作,如图
报修信息管理:通过列表可以获取报修编号、个人账号、姓名、门牌号、楼房名称、楼房位置、报修类型、报修内容、申请日期、审核回复、审核状态等信息,进行详情、删除操作,如图
管理员通过用户名和密码、角色填写完成后进行登录,如图1所示。管理员登录成功后进入到系统操作界面,可以对首页、个人中心、用户管理、员工管理、业主信息管理、费用信息管理、楼房信息管理、报修信息管理、车位信息管理、停车信息管理、投诉编号管理、公告信息管理、部门信息管理等功能模块进行相对应操作。
用户管理:通过列表可以获取个人账号、姓名、性别、年龄、身份证号码、手机号码、车牌号、相片等内容,可以进行修改或删除操作,如图 2
员工管理:通过列表可以获取工号、员工姓名、性别、年龄、身份证号码、手机号码、相片、部门等信息,进行删除或修改操作,如图
费用信息管理:通过列表可以获取费用编号、费用名称、金额、个人账号、姓名、性别、门牌号、楼房名称、发布日期、是否支付等信息,进行修改或删除操作,如图
楼房信息管理:通过列表可以获取信息编号、楼房名称、楼房位置、楼层数、户型、户型数量、发布日期等信息,进行修改或删除操作,如图
报修信息管理:管理员通过列表可以获取报修编号、个人账号、姓名、门牌号、楼房名称、楼房位置、报修类型、报修内容、申请日期、审核回复、审核状态等信息,进行修改或删除操作,如图
车位信息管理:管理员通过列表可以获取车位编号、车位名称、地址、状态、发布日期等信息,进行修改或删除操作,如图
投诉编号管理:管理员通过列表可以获取投诉编号、投诉名称、投诉日期、个人账号、姓名、审核回复、审核状态、审核等信息,进行修改或删除操作,如图
员工点击进入到系统操作界面,可以对首页、个人中心、楼房信息管理、报修信息管理、投诉编号管理、公告信息管理、部门信息管理等功能模块,
个人信息:通过列表可以获取工号、员工姓名、性别、年龄、身份证号码、手机号码、相片、部门并进行修改操作,如图
楼房信息管理:通过列表可以获取信息编号、楼房名称、楼房位置、楼层数、户型、户型数量、发布日期等信息,进行详情操作,如图
报修信息管理:通过列表可以获取报修编号、个人账号、姓名、门牌号、楼房名称、楼房位置、报修类型、报修内容、申请日期、审核回复、审核状态等信息,进行详情操作,如图
投诉编号管理:通过列表可以获取投诉编号、投诉名称、投诉日期、个人账号、姓名、审核回复、审核状态等信息,进行详情操作,如图
部门信息管理
/**
* 上传文件映射表
*/
@RestController
@RequestMapping("file")
@SuppressWarnings({"unchecked","rawtypes"})
public class FileController{
@Autowired
private ConfigService configService;
/**
* 上传文件
*/
@RequestMapping("/upload")
public R upload(@RequestParam("file") MultipartFile file,String type) throws Exception {
if (file.isEmpty()) {
throw new EIException("上传文件不能为空");
}
String fileExt = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")+1);
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
String fileName = new Date().getTime()+"."+fileExt;
File dest = new File(upload.getAbsolutePath()+"/"+fileName);
file.transferTo(dest);
if(StringUtils.isNotBlank(type) && type.equals("1")) {
ConfigEntity configEntity = configService.selectOne(new EntityWrapper().eq("name", "faceFile"));
if(configEntity==null) {
configEntity = new ConfigEntity();
configEntity.setName("faceFile");
configEntity.setValue(fileName);
} else {
configEntity.setValue(fileName);
}
configService.insertOrUpdate(configEntity);
}
return R.ok().put("file", fileName);
}
/**
* 下载文件
*/
@IgnoreAuth
@RequestMapping("/download")
public ResponseEntity download(@RequestParam String fileName) {
try {
File path = new File(ResourceUtils.getURL("classpath:static").getPath());
if(!path.exists()) {
path = new File("");
}
File upload = new File(path.getAbsolutePath(),"/upload/");
if(!upload.exists()) {
upload.mkdirs();
}
File file = new File(upload.getAbsolutePath()+"/"+fileName);
if(file.exists()){
/*if(!fileService.canRead(file, SessionManager.getSessionUser())){
getResponse().sendError(403);
}*/
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.setContentDispositionFormData("attachment", fileName);
return new ResponseEntity(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
}
} catch (IOException e) {
e.printStackTrace();
}
return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);
}
}