基于SpringBoot的社区报修维修管理系统

96 篇文章 3 订阅
71 篇文章 0 订阅

末尾获取源码
作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发

更多项目:CSDN主页YAML墨韵

学如逆水行舟,不进则退。学习如赶路,不能慢一步。

一、项目简介

21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识,科学化的管理,使信息存储达到准确、快速、完善,并能提高工作管理效率,促进其发展。
社区维修平台主要的模块包括基本住户管理、社区公告管理、维修工管理、维修订单管理、接单信息管理、订单信息管理、在线沟通管理、举报信息管理、留言板管理、系统管理模块等功能。管理员对后台对有相应的操作权限。系统中管理员为主要是为了安全有效地存储和管理及维护系统的各类信息,可以对系统进行管理与更新维护。

二、开发技术与环境配置

以Java语言为开发工具,利用了当前先进的springboot框架,以IDEA为系统开发工具,MySQL为后台数据库,vue为后台管理页面开发的一个社区报修维修管理系统。

2.1 SpringBoot框架

SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计,其不仅继承了Spring框架原来有的优秀特性,而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原本的Spring中由于随着项目的扩大导入的jar包数量越来越大,随之出现了jar包版本之间的兼容性问题,而此时SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性问题得到了很好的解决。

SpringBoot可以看做是Spring的加强版本,但实质上都是Spring的相关技术,有了这些优秀的开源框架,程序员在开发过程中将事半功倍。

2.2 Java语言简介

Java是由SUN公司推出,该公司于2010年被oracle公司收购。Java本是印度尼西亚的一个叫做爪洼岛的英文名称,也因此得来java是一杯正冒着热气咖啡的标识。Java语言在移动互联网的大背景下具备了显著的优势和广阔的前景,它是面向对象的,分布式的,动态的,具有平台无关性、安全性、健壮性。Java语言的基本语句语法和C++一样,但是它面向对象的技术更加彻底,因为Java要求将所有的内容都必须封装成类,把类作为程序的基本单位。由于不允许类外有变量、方法。 Java语言的分布式体现在数据分布和操作分布,它是面向网络的语言,可以处理TCP/IP协议,它也支持客户机/服务器的计算模式。Java语言的动态性是指类在运行时是动态安装的,使得Java可以动态的维护程序。Java不支持指针,对内存访问的所有操作都是通过对象实例化实现的,这样就避免了指针操作中易产生的错误,同时也预防了病毒对系统的破坏和威胁。

Java语言的编程风格与C语言非常接近,它继承了C++面向对象技术的核心,它面世之后发展迅速,非常流行,对高级C语言形成了很大的冲击。业内人士称之为“一次编译、到处执行”。当然java也有缺点,在每次执行编译后,字节码都需要消耗一定的时间,在某些程度上降低了性能。但是这并不影响java成为此次设计语言的选择。Java语言简单易学,使用它的编程时间短,功能性强,开发者学习起来更简便、更快。Java的主要特性有以下几个:

面向对象
面向对象有四个特点:封装、继承、多态、抽象。抽象是指忽略一个问题中的次要部分,关注主要部分。多态是指对同一种消息做出的不同反应。继承是指在原有的父类方法基础上增加自己独有的方法,而不改变原来父类。

平台无关性、
Java编译出来的是字节码,直接由虚拟机执行。在任何平台上,只要有Java虚拟机,Java代码都能运行。

可靠性和安全性
Java对内存的访问都必须通过对象的实例变量来实现,避免了指针中出现的错误。

多线程
Java提供了多线程功能,利用编程实现同一时间同时工作的功能。

2.3 Vue的介绍

Vue.js致力于构建数据驱动的web应用开发框架,以简洁化,轻量级,数据驱动,模块友好等优势深受企业以及前端开发者的喜爱,成为前端开发人员必备的技能。Vue3.0的出现,又带动周边生态的发展,奠定了vue在企业级开发的重要地位。

Vue是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

渐进式框架做分层设计,每层都可选,不同层可以灵活接入其他方案。而当你都想用官方的实现时,会发现也早已准备好,各层之间包括配套工具都能比接入其他方案更便捷地协同工作。 一个个放入,放多少就做多少。

2.4 mysql数据库介绍

利用MYSQL的数据独立性、安全性等特点,在软件项目中对数据进行操作,可以保证数据准确无误,并降低了程序员的应用开发时间。
MYSQL的特点是支持多线程,能方便的对系统资源充分利用,有效提高速度,还提供多种方式途径来对数据库进行连接;MYSQL的功能相对弱小、规模也小,但本系统要求不高,MYSQL完全可以满足本系统使用。
利用MYSQL建立系统数据库,不仅有利于数据处理业务的早期整合,还能利于发展后两种数据扩展的操作。

2.5 B/S架构

B/S结构是目前使用最多的结构模式,它可以使得系统的开发更加的简单,好操作,而且还可以对其进行维护。使用该结构时只需要在计算机中安装数据库,和一些很常用的浏览器就可以了。浏览器就会与数据库进行信息的连接,可以实现很多的功能,B/S结构是可以直接进行使用的,而且B/S结构在使用中极大的减少了工作的维护。基于B/S的软件,所有的数据库之间都是相互独立的,因此是非常安全的。因为基于B/S结构可以清楚的看到系统正在处理的业务,并且能够及时的让管理人员做出决策,这样就可以避免企业的损失。B/S结构的基本特点是集中式的管理模式,用户使用系统生成数据后,这些数据就可以存储到系统的数据库中,方便日后能够用到,这样就可以满足人们的所有的需求。

三、系统功能实现

功能模块图

登录系统结构图

系统结构图

四、系统项目截图

前台页面

登录页面

维修员通过登录页面,可以进行填写用户名和密码,等信息,输入无误后进行登录操作

个人中心

维修员通过个人中心页面可以进行输入账号、密码、姓名、性别、密码、等级、上传图片、身份证、电话等信息,进行更新信息或退出操作。

留言反馈

通过页面可以进行在线留言,输入留言内容进行立即提交操作。

维修工

通过点击维修工可以进行查看维修工的账号、性别、头像、等级、身份证、电话、简介等信息,进行查看或举报操作,如图5-14所示。通过点击举报进入举报页面可以进行输入标题、账号、姓名、举报内容、举报日期、用户名、住户姓名等信息,进行举报提交操作。

 

新闻资讯

通过点击新闻资讯可以进行查看新闻内容、发布时间、新闻标题等信息,进行查看

维修订单

通过点击维修订单可以进行查看维修订单的物品名称、维修类型、发布日期、用户名、住户姓名、手机号、地址等信息,进行查看、接单,在线交流。维修员通过点击接单进入接单页面可以进行查看物品名称、维修类型、用户名、住户姓名、接单内容、接单日期、账号、姓名、电话等信息,进行提交或重置操作。维修员通过点击交流可以进行页面进行在线查看标题、用户名、住户姓名、进行输入聊天内容、日期等信息,进行在线交流操作。

 

用户后台管理页面

用户通过用户登录页面可以填写用户名和密码,等信息进行登录操作,用户登录成功后,进入用户后台系统页面可以查看个人中心、维修订单管理、接单信息管理、订单信息管理、在线沟通管理、举报信息管理模块等功能模块,进行相对应操作。

个人中心

可以进行查看修改密码、个人信息两个子模块,个人信息:通过页面可以进行输入用户名、住户姓名、性别、头像、手机号等信息,进行修改操作。

维修订单管理

用户通过列表可以进行查看名称、物品名称、维修类型、图片、发布日期、用户名、住户姓名、手机、地址等信息,进行查看、添加或删除操作。住户通过点击添加进入页面可以进行填写名称、维修类型、物品名称、图片、发布日期、用户名、住户姓名、地址、手机、维修内容等信息,进行提交维修订单操作。

接单信息管理

住户通过接单信息列表可以进行查看订单编号、物品名称、维修类型、用户名、住户姓名、接单内容、接单日期、账号、姓名、电话等信息,进行查看详情或通过输入订单编号进行查询操作

订单信息管理

住户通过接单信息列表可以进行查看订单编号、物品名称、维修类型、用户名、住户姓名、维修费用、账号、姓名、是否支付等信息,进行查看详情或通过输入订单编号、物品名称、住户姓名进行查询操作。

在线沟通管理

通过在线沟通列表可以进行查看标题、用户名、住户姓名、聊天内容、聊天回复、账号、姓名等信息,进行查看详情或修改、删除操作,通过输入标题、住户姓名进行查询操作

举报信息管理

通过举报信息列表可以进行查看标题、账号、姓名、举报内容、举报日期、住户姓名、审核回复、审核状态等信息,进行查看详情或修改、删除操作,通过输入标题、姓名进行查询操作

后台管理页面

管理员通过后台登录页面,可以进行填写用户名和密码,等信息,输入无误后进行登录操作

系统操作界面

管理员通过个人中心可以获取修改密码和个人信息两个子模块,通过个人信息列表可以进行查看管理员的个人信息并进行查看修改操作

住户管理

管理员通过列表查看用户名、密码、住户姓名、性别、头像、手机号等信息,管理员可以进行修改或查看删除操作,也可以通过点击输入用户名可以进行搜索

社区公告管理

管理员通过列表可以获取公告标题、图片、公告内容、发布时间等信息,进行插件社区公告详情信息、修改或删除操作,管理员通过输入公告标题进行查询或添加公告操作

维修工管理

管理员通过点击维修工页面可以进行查看账户、密码、姓名、性别、等级、头像、身份证、电话、简介等信息,进行查看详情或修改或删除操作,并通过账号进行查询操作

接单信息管理

住户通过接单信息列表可以进行查看订单编号、物品名称、维修类型、用户名、住户姓名、接单内容、接单日期、账号、姓名、电话等信息,进行查看详情、修改或删除操作,通过输入订单编号进行查询操作

接单信息管理

住户通过接单信息列表可以进行查看订单编号、物品名称、维修类型、用户名、住户姓名、接单内容、接单日期、账号、姓名、电话等信息,进行查看详情、修改或删除操作,通过输入订单编号进行查询操作

在线沟通管理

通过在线沟通列表可以进行查看标题、用户名、住户姓名、聊天内容、聊天回复、账号、姓名等信息,进行查看详情或修改、删除操作,通过输入标题、住户姓名进行查询操作

举报信息管理

通过列表可以获取标题、账号、姓名、举报内容、举报日期、用户名、住户姓名、审核回复、审核状态、审核等信息,进行查看详情或修改删除操作,并且通过输入标题、姓名进行搜索操作

 

五、核心代码

5.1、文件上传

/**
 * 上传文件映射表
 */
@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);
		/**
  		 * 如果使用idea或者eclipse重启项目,发现之前上传的图片或者文件丢失,将下面一行代码注释打开
   		 * 请将以下的"D:\\springbootq33sd\\src\\main\\resources\\static\\upload"替换成你本地项目的upload路径,
 		 * 并且项目路径不能存在中文、空格等特殊字符
 		 */
//		FileUtils.copyFile(dest, new File("D:\\springbootq33sd\\src\\main\\resources\\static\\upload"+"/"+fileName)); /**修改了路径以后请将该行最前面的//注释去掉**/
		if(StringUtils.isNotBlank(type) && type.equals("1")) {
			ConfigEntity configEntity = configService.selectOne(new EntityWrapper<ConfigEntity>().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<byte[]> 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()){
				HttpHeaders headers = new HttpHeaders();
			    headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);    
			    headers.setContentDispositionFormData("attachment", fileName);    
			    return new ResponseEntity<byte[]>(FileUtils.readFileToByteArray(file),headers, HttpStatus.CREATED);
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		return new ResponseEntity<byte[]>(HttpStatus.INTERNAL_SERVER_ERROR);
	}
	
}

5.2、数据库配置

server:
    tomcat:
        uri-encoding: UTF-8
    port: 8080
    servlet:
        context-path: /springbootr1tjf

spring:
    datasource:
        driverClassName: com.mysql.jdbc.Driver
        url: jdbc:mysql://127.0.0.1:3306/springbootr1tjf?useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
        username: root
        password: 123456

#        driverClassName: com.microsoft.sqlserver.jdbc.SQLServerDriver
#        url: jdbc:sqlserver://127.0.0.1:1433;DatabaseName=springbootr1tjf
#        username: sa
#        password: 123456

    servlet:
      multipart:
        max-file-size: 10MB
        max-request-size: 10MB
    resources:
      static-locations: classpath:static/,file:static/

#mybatis
mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml
  #实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.entity
  global-config:
    #主键类型  0:"数据库ID自增", 1:"用户输入ID",2:"全局唯一ID (数字类型唯一ID)", 3:"全局唯一ID UUID";
    id-type: 1
    #字段策略 0:"忽略判断",1:"非 NULL 判断"),2:"非空判断"
    field-strategy: 2
    #驼峰下划线转换
    db-column-underline: true
    #刷新mapper 调试神器
    refresh-mapper: true
    #逻辑删除配置
    logic-delete-value: -1
    logic-not-delete-value: 0
    #自定义SQL注入器
    sql-injector: com.baomidou.mybatisplus.mapper.LogicSqlInjector
  configuration:
    map-underscore-to-camel-case: true
    cache-enabled: false
    call-setters-on-nulls: true
    #springboot 项目mybatis plus 设置 jdbcTypeForNull (oracle数据库需配置JdbcType.NULL, 默认是Other)
    jdbc-type-for-null: 'null' 

5.3、登录功能实现

 
package com.controller;
 
 
import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;
 
import javax.servlet.http.HttpServletRequest;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
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.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
 
import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;
 
/**
 * 登录相关
 */
@RequestMapping("users")
@RestController
public class UserController{
	
	@Autowired
	private UserService userService;
	
	@Autowired
	private TokenService tokenService;
 
	/**
	 * 登录
	 */
	@IgnoreAuth
	@PostMapping(value = "/login")
	public R login(String username, String password, String captcha, HttpServletRequest request) {
		UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));
		if(user==null || !user.getPassword().equals(password)) {
			return R.error("账号或密码不正确");
		}
		String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());
		return R.ok().put("token", token);
	}
	
	/**
	 * 注册
	 */
	@IgnoreAuth
	@PostMapping(value = "/register")
	public R register(@RequestBody UserEntity user){
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", 
            user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
	/**
	 * 退出
	 */
	@GetMapping(value = "logout")
	public R logout(HttpServletRequest request) {
		request.getSession().invalidate();
		return R.ok("退出成功");
	}
	
	/**
     * 密码重置
     */
    @IgnoreAuth
	@RequestMapping(value = "/resetPass")
    public R resetPass(String username, HttpServletRequest request){
    	UserEntity user = userService.selectOne(new EntityWrapper<UserEntity> 
                          ().eq("username", username));
    	if(user==null) {
    		return R.error("账号不存在");
    	}
    	user.setPassword("123456");
        userService.update(user,null);
        return R.ok("密码已重置为:123456");
    }
	
	/**
     * 列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,UserEntity user){
        EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
    	PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));
        return R.ok().put("data", page);
    }
 
	/**
     * 列表
     */
    @RequestMapping("/list")
    public R list( UserEntity user){
       	EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();
      	ew.allEq(MPUtil.allEQMapPre( user, "user")); 
        return R.ok().put("data", userService.selectListView(ew));
    }
 
    /**
     * 信息
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") String id){
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
    
    /**
     * 获取用户的session用户信息
     */
    @RequestMapping("/session")
    public R getCurrUser(HttpServletRequest request){
    	Long id = (Long)request.getSession().getAttribute("userId");
        UserEntity user = userService.selectById(id);
        return R.ok().put("data", user);
    }
 
    /**
     * 保存
     */
    @PostMapping("/save")
    public R save(@RequestBody UserEntity user){
    	if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username",                 
            user.getUsername())) !=null) {
    		return R.error("用户已存在");
    	}
        userService.insert(user);
        return R.ok();
    }
 
    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody UserEntity user){
        userService.updateById(user);//全部更新
        return R.ok();
    }
 
    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        userService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
}
 

5.4、业务层(Service)


package com.service;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.service.IService;
import com.entity.UserEntity;
import com.utils.PageUtils;


/**
 * 系统用户
 */
public interface UserService extends IService<UserEntity> {
 	PageUtils queryPage(Map<String, Object> params);
    
   	List<UserEntity> selectListView(Wrapper<UserEntity> wrapper);
   	
   	PageUtils queryPage(Map<String, Object> params,Wrapper<UserEntity> wrapper);
	   	
}

5.5、数据访问层(Dao)

package com.dao;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.entity.UserEntity;

/**
 * 用户
 */
public interface UserDao extends BaseMapper<UserEntity> {
	
	List<UserEntity> selectListView(@Param("ew") Wrapper<UserEntity> wrapper);

	List<UserEntity> selectListView(Pagination page,@Param("ew") Wrapper<UserEntity> wrapper);
	
}


简介: 本套软件适合于学校、企业的网上报修系统。没有复杂的操作,普通人员都很容易上手实践。并且在软件上不需要投入很多的人力培训进行操作。 网上报修系统管理平台,采用了BS架构开发,利用.NET技术和sqlserver数据库进行系统的开发,系统是一款专业的报修管理平台。灵活调度手段可以即时进行报修,并且自动通知和。所有用户无需安装和繁琐的配置,因为我们的报修管理运行在服务器上.使用时所有要做的就是登录系统。 管理且使用好软件可以有效提高您的生产力和效率。对于学校/企业来说,时间就是金钱 - 生产率的提高,可以促使节约更多的成本。 1.用户报修 2.报修单管理 3.派单管理 4.维修管理 5.用户中心 6.公告信息 优化: 电子化巡检,维修拍照存证;业主客户在线报修;报修用户可以通过微信、网站、手机、平板一键提交报修单;随时查看报修任务状态;可以评价和投诉报修员;短信绑定/微信绑定,实时通知报修 分超级管理员、总经理领导审核,部门管理审核人员、维修人员,超级管理员不能删除. 匿名报修人:可以报修任何设备。但必须由相关部门管理者审核是否真实性 。 总经理领导审核 包括 审核 单位所有需要审核 的,需要查看的, 部门管理审核人员 包括 审核部门需要审核 的,需要查看的,只针对部门相关 维修人员 承接自己可以接的任务,及相关自己所接的任务信息 ,查看 相关评语,星级等
25175学校(企业)网上报修系统管理平台2.8 (支持手机,APP应用,ipad,web) 运行环境:IIS+ASP.NET4.0 +SQL2005 开发软件:Visual Studio 2013 本套软件适合于学校、企业的网上报修系统。没有复杂的操作,普通人员都很容易上手实践。并且在软件上不需要投入很多的人力培训进行操作。 网上报修系统管理平台,采用了BS架构开发,利用.NET技术和sqlserver数据库进行系统的开发,系统是一款专业的报修管理平台。灵活调度手段可以即时进行报修,并且自动通知和。所有用户无需安装和繁琐的配置,因为我们的报修管理运行在服务器上.使用时所有要做的就是登录系统。 管理且使用好软件可以有效提高您的生产力和效率。对于学校/企业来说,时间就是金钱 - 生产率的提高,可以促使节约更多的成本。 1.用户报修 2.报修单管理 3.派单管理 4.维修管理 5.用户中心 6.公告信息 可扩展优化功能: 电子化巡检,维修拍照存证;业主客户在线报修;报修用户可以通过微信、网站、手机、平板一键提交报修单;随时查看报修任务状态;可以评价和投诉报修员;短信绑定/微信绑定,实时通知报修 特色重点说明: a.WEB兼容.(ie8+,google,firefox…) b.手机兼容(苹果,安卓) 兼容浏览器:IE8+ FireFox, Safari, Chrome and more. 软件视频:http://edu.25175.com 软件开发部:王工 开发 设计部:25175 设计
特色重点说明: a.WEB兼容.(ie8+,google,firefox…) b.手机兼容(苹果,安卓) c.app兼容 简介: 本套软件适合于学校、企业的网上报修系统。没有复杂的操作,普通人员都很容易上手实践。并且在软件上不需要投入很多的人力培训进行操作。 网上报修系统管理平台,采用了BS架构开发,利用.NET技术和sqlserver数据库进行系统的开发,系统是一款专业的报修管理平台。灵活调度手段可以即时进行报修,并且自动通知和。所有用户无需安装和繁琐的配置,因为我们的报修管理运行在服务器上.使用时所有要做的就是登录系统。管理且使用好软件可以有效提高您的生产力和效率。对于学校/企业来说,时间就是金钱 - 生产率的提高,可以促使节约更多的成本。 优化: 电子化巡检,维修拍照存证;业主客户在线报修;报修用户可以通过微信、网站、手机、平板一键提交报修单;随时查看报修任务状态;可以评价和投诉报修员;短信绑定/微信绑定,实时通知报修 一、管理员界面 1.管理员登录 2.管理员登录界面 3.用户管理 3.1 报修用户管理 3.1.1 全部报修用户管理 可审核及编辑用户信息、增加新用户等 3.1.2 未审核用户、审核通过用户及审核未通过用户管理 3.2 维修负责人管理 可增加新的维修负责人 4.请假申请管理 5. 改派申请管理 5.1 改派申请记录 5.2 报修详情 5.3 设置状态,指派维修负责人 6.报修申请单管理 6.1 全部报修申请 可设置报修状态、指派维修人员、登记维修费用,指派维修负责人: 设置维修状态: 维修费用登记: 6.2 未指派、待处理、处理中、驳回报修报修申请管理 6.3改派申请管理 设置改派申请的状态:批准、驳回等 6.4 用户评价管理 6.4.1 未评价的报修记录 6.4.2 已评价的报修记录 6.4.3 报修评价总览 可查看评价内容、评价星级等 7.管理设置 7.1 修改密码 7.2 重置问题答案 7.3 管理 注册须知、维修负责人须知、报修须知和评价须知等 二、维修负责人界面 1.维修负责人登录 2. 报修申请单管理 2.1全部报修申请单 2.2 查看待处理、处理中、驳回报修等的报修单 3. 查看报修详情 4.改派申请:填写申请原因,等待管理员批准 4.修改密码 三、报修用户登录界面 1.首次登录请先注册 2.用户登录 3.填写报修申请 4.查看我的报修记录 4.1 我的全部报修记录 4.2 未指派的报修记录:可选择取消报修 4.3 其他待处理、处理中、已驳回、评级及改派记录等 4.4 查看报修申请记录详情 5.请假申请 5.1 填写请假申请时间和原因 5.2 查看我的请假申请 6.修改密码 分超级管理员、总经理领导审核,部门管理审核人员、维修人员,超级管理员不能删除. 匿名报修人:可以报修任何设备。但必须由相关部门管理者审核是否真实性 。 总经理领导审核 包括 审核 单位所有需要审核 的,需要查看的, 部门管理审核人员 包括 审核部门需要审核 的,需要查看的,只针对部门相关 维修人员 承接自己可以接的任务,及相关自己所接的任务信息 ,查看 相关评语,星级等
网上报修系统B8.0,适用于企业、高等院校、政府部门、中小学校等物品、设备报修管理与维修登记。 一、前台部分 用户报修报修内容包括故障部门、故障具体地点、报修类型、联系人及联系电话、故障主题、故障描述等。其中故障部门和地点,通过三级选项选出,不必填写。若要自定义填写可通过后台功能配置中设置。 报修单管理:⒈工单管理:用户提交报修单后,在未派单前,可在报修管理中进行修改或删除。⒉未完成工单:便于了解派单情况和维修进程。⒊用户评价:用户对已完成的维修工作进行评价。 派单管理:派单管理员对不同的报修单委派相应类型的维修人员。若维修人员不及时受理,派单管理员可以改派。 维修管理:⒈报修单受理:可以单个受理,也可批量受理。⒉维修登记:在未完成状态下,可以填写维修进程报告;在完成状态下,填写维修记录。⒊已完成工单,提供查询与统计功能。 用户中心:显示用户个人信息,修改密码、修改资料、报修统计(报修总数、已完成数、未完成数)。 公告信息:用于公布本系统使用过程中各种注意事项、通知、公告信息。 二、后台管理部分 报修信息的管理与查询: ⒈综合管理:可以查询各类报修信息,可删除或批量删除报修信息,可修改全部报修维修信息。 ⒉分类管理: 未派单类:显示全部未派单的报修信息及总数。可以修改、删除报修信息,给各报修单指派维修人员。 未受理类:显示全部未受理的报修信息及总数。可单个受理和批量受理。可改派维修人员。 未完成类:显示全部未完成维修报修信息及总数。可进行维修登记,填写维修进程和维修记录。 已完成类:显示全部已完成的报修单信息及总数。可分未评价、满意、不满意类来显示。 综合统计:包括报修统计、维修统计、类型统计。 可以统计某时间段各位报修人员的报修总数、未派单数、已派单数、未完成数、已完成数;维修人员维修总数、已完成维修数、未完成维修数、已完成率、用户满意数、不满意数、未评价数、满意率;故障类型总数、未派单数、已派单数、已完成维修数、未完成维修数、已完成率。时间段可由管理员自由选择。 用户管理:超级管理员密码修改、添加单个用户、自定量添加用户(添加个数由管理员定)、从Excel导入用户(先下载excel模块,按要求填写用户信息上传到本系统,提交数据)。 用户管理实行分类管理:目前分为超级管理员、派单人员、维修人员、报修人员,除超级管理员不能删除外,其它类型人员均可删除或批量删除,各类人员的信息均可修改和查询。 系统设置: ⒈系统设置:可修改系统名称、网站地址、联系地址、联系电话等,可修改页脚代码及内容以及页头右侧代码及内容。 ⒉功能配置:主要包括是否禁止使用本系统;是否执行注册审核;是否执行自动派单;在用户报修时,故障部门和地点,是否执行自定义填写。 ⒊系统通知:添加、修改或删除通知、公告信息。 ⒋报修类型:添加、修改或删除报修类型。 ⒌故障部门:添加、修改、删除一、二、三级故障部门。便于报修时选择。 ⒍故障地点:添加、修改、删除一、二、二级故障地点。便于报修时选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Yaml墨韵

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

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

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

打赏作者

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

抵扣说明:

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

余额充值