互联网技术的应用为人们来便捷.从办公生活到朋友圈.从娱乐学习到应聘求职网络给我们的生活带来无限乐趣的同时也为我们提供了无尽的便利,随着互联网技术的普及应用.对维修服务方面的要求也越来越高,针对维修的解决速度也有了新的要求,传统的报修登记管理模式很难在工作效率上有质的突破,导致用户问题不能及时解决,而且随着高校每年的扩大招生,学校的人越来越多,学校设备管理工作量也越来越繁重,使用传统的管理手段和方法,很难完成大量的信息处理,而且一个自动化、高效的故障报修管理系统是现代企业管理体系不可或缺的重要系统,也是完善企业信息化的重要组成部分,它可以成为现代企业的重要载体和工具,能及时的为各用户提供报修查询、报修统计、报修管理等众多方便实用的功能。以传统人工的方式进行故障报修效率低下,且不利于故障统计,故障分析。维修工作效率无法提升。因此,利用所学的知识和技术,我们准备通过小组合作建设了一套校园设备报修系统,提高学校管理水平、效率和质量。设计开发校园报修管理系统的原因主要有下面几种:
1、报修信息受理不及时,报修突发事情较多,当工作人员无法应对,处理不及,会影响维修工作的时效性,同时也不能满足所有人员的报修要求。
2、传统的报修流程无法及时捕获自己所申报的报单的所在进度,时间等待长
3、碰上突发情况工作量难以统计,维修的时效性和质量难以得到有效的监督。
4、传统的报修环节存在着方法落后,无法及时找到负责该设备板块的管理人员,手续繁琐,不能及时解决问题。
5、学校设备数量较多,传统的手段不适用于现代化的手段管理。
传统的报修方式影响学生在校的体验,随着科技的发展迅速,我们团队预备设计开发一个校园设备报修系统。能使用户的报修更加简便有效提高了工作效率,规范工作流程,促使整个报修服务更加规范科学有序,能够提高服务效率,同时也能提高服务质量,降低了大部分的人力、物力和财力,方便广大师生生活和学习,具体表现在:
1、实现师生与报修之间便捷的信息交互渠道,很好的解决传统报修模式的局限性,报修信息反馈更加准确,提高工作效率.
2、上报报修信息时,用户在系统中填写时,需要详细的写清楚自己申报维修的地点,以及需要维修的内容,可以提高工人的工作效率,减少路途的往返时间,更加的人性化,科学化。
因此,此次课题的研究开发方便师生对报修服务的诉求,对提高师生的在校体验和报修系统的服务水平都有着积极的作用,所以研发此课题。
【744】基于springbot的校园设备报修系统源码和论文
在信息化社会的今天,校园信息化和数字化建设成为国内外高校建设的热点,我国现阶段的信息数字化方面的工作,也必须与时俱进才能跟得上改革的步伐,所以得开始进入一个全新的发展时期,尤其在信息化高校的建设方面,在大学这个相对独立得环境中,各项生活设施,设备得正常运行是提高师生居住体验得基本保障,对于如何提高高校设备报修,维修工作管理得效率,都已经成为很多高校得重点关注问题。在系统开发得过程中也先后出现了许多优秀的管理系统。如陕西师范大学2008年左右开发的物业维修平台(现在维修服务平台)师生可以通过网络,电话两种渠道报修,维修服务平台自动将信息分配给各维修点维修过程比较透明化。同时于2011年推出手机版移动校园,北京师范大学2010年启动后勤24小时网上报修平台,受理涉及水、电暖报修业务,报修范围主要涉及学生公寓。江南大学后勤报修系统主要服务于学生公寓零星报修,网络故障报修。对于咱们学校而言,以宿舍为单位或以教室为单位来说的设备数以千计,还有各个公共场合的设备,类型也是繁多复杂,但是我校至今对于设备报修及维修还没有一个完整的系统可以实现,也加重了宿舍管理人员的工作职责。针对这种情况,我们团队决定实现校园设备报修系统,减轻宿舍管理人员的工作负担以及更加方便维修人员(管理员)对学生(普通用户)所上报维修的信息进行系统的查看与处理,提高维修人员的效率,提高系统用户的体验感。
设备维修:设备维修是指为保持、恢复以及提升设备技术状态进行的技术活动。
设备:设备(Capital Items)是指工业购买者用在生产经营过程中的工业产品,包括固定设备和辅助设备等。
管理系统:管理系统是为达到,针对管理对象,由具有特定管理职能和内在联系的各种管理机构、管理制度、管理过程、管理方法所构成的完整的组织管理体系。
B/S结构:BS结构B/S架构采取浏览器请求,服务器响应的工作模式。它是基于C/S结构来改进的一种结构,它将功能的实现主要放在了服务端,而在客户端只需要一个web服务器即可
Springboot: SpringBoot整合了很多优秀的框架,不用自己手动的去写一堆 XML配置,然后进行配置
package com.hbxy.ssm.userinfo.controller;
import com.hbxy.ssm.userinfo.model.UserInfo;
import com.hbxy.ssm.userinfo.model.UserInfoExample;
import com.hbxy.ssm.userinfo.service.UserInfoService;
import com.hbxy.ssm.util.IdUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import java.util.List;
//添加注解
@Controller
public class UserInfoController {
private UserInfoService userInfoService;
//通过构�?�器注入service
public UserInfoController(UserInfoService userInfoService){
this.userInfoService=userInfoService;
}
//查询数据
@GetMapping("/userInfo")
@ResponseBody
public List<UserInfo> selectUserInfo(){
//1 构�?�查询条�?
//1.1 创建查询条件�?
UserInfoExample example = new UserInfoExample();
//1.2 创建条件构�?�器
UserInfoExample.Criteria criteria = example.createCriteria();
//1.3 通过criteria设置条件
//...
//2 根据条件查询
List<UserInfo> list = userInfoService.selectByExample(example);
return list;
}
//查询数据
@GetMapping("/admin/userInfo")
@ResponseBody
public List<UserInfo> selectAdminInfo(){
//1 构�?�查询条�?
//1.1 创建查询条件�?
UserInfoExample example = new UserInfoExample();
//1.2 创建条件构�?�器
UserInfoExample.Criteria criteria = example.createCriteria();
//1.3 通过criteria设置条件
//...
criteria.andUserTypeEqualTo("0");
//2 根据条件查询
List<UserInfo> list = userInfoService.selectByExample(example);
return list;
}
//查询数据
@GetMapping("/finish")
@ResponseBody
public List<UserInfo> selectUsersInfos(){
//1 构�?�查询条�?
//1.1 创建查询条件�?
UserInfoExample example = new UserInfoExample();
//1.2 创建条件构�?�器
UserInfoExample.Criteria criteria = example.createCriteria();
//1.3 通过criteria设置条件
//...
criteria.andUserTypeEqualTo("1");
//2 根据条件查询
List<UserInfo> list = userInfoService.selectByExample(example);
return list;
}
//查询数据
@GetMapping("/finisher")
@ResponseBody
public List<UserInfo> selectTeacherInfoers(){
//1 构�?�查询条�?
//1.1 创建查询条件�?
UserInfoExample example = new UserInfoExample();
//1.2 创建条件构�?�器
UserInfoExample.Criteria criteria = example.createCriteria();
//1.3 通过criteria设置条件
//...
criteria.andUserTypeEqualTo("2");
//2 根据条件查询
List<UserInfo> list = userInfoService.selectByExample(example);
return list;
}
// 通过姓名查询信息
// 服务器端通过@RequestParams获取参数
@GetMapping(value = "/listbyname")
@ResponseBody
public List <UserInfo> userListByName(@RequestParam String condition){
UserInfoExample example = new UserInfoExample();
UserInfoExample.Criteria criteria = example.createCriteria();
criteria.andUserNameLike(condition);
List<UserInfo> list = userInfoService.selectByExample(example);
return list;
}
//添加数据
@PostMapping("/userInfo")
@ResponseBody
public UserInfo insertUser(@RequestBody UserInfo userInfo){
//准备数据
//...
Long id = IdUtil.nextId();
userInfo.setUserId(id.toString());
userInfoService.insertSelective(userInfo);
return userInfo;
}
//修改数据
@PutMapping("/userInfo")
@ResponseBody
public UserInfo updateUser(@RequestBody UserInfo userInfo){
//准备数据
//...
userInfoService.updateByPrimaryKeySelective(userInfo);
//只返回修改的字段数据
// return userInfo;
//或�??,通过主键,从数据库查询完整的数�?,然后返回
return userInfoService.selectByPrimaryKey(userInfo.getUserId());
}
//删除数据
@DeleteMapping("/userInfo/{id}")
@ResponseBody
public String delUser(@PathVariable("id") String userInfoId){
userInfoService.deleteByPrimaryKey(userInfoId);
//返回状�?�码
return "200";
}
}
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 java.io.IOException;
import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.transaction.annotation.Transactional;
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.JiaoxueshipinEntity;
import com.entity.view.JiaoxueshipinView;
import com.service.JiaoxueshipinService;
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 com.service.StoreupService;
import com.entity.StoreupEntity;
/**
* 教学视频
* 后端接口
* @author
* @email
* @date 2022-05-02 09:35:23
*/
@RestController
@RequestMapping("/jiaoxueshipin")
public class JiaoxueshipinController {
@Autowired
private JiaoxueshipinService jiaoxueshipinService;
@Autowired
private StoreupService storeupService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params,JiaoxueshipinEntity jiaoxueshipin,
HttpServletRequest request){
EntityWrapper<JiaoxueshipinEntity> ew = new EntityWrapper<JiaoxueshipinEntity>();
PageUtils page = jiaoxueshipinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoxueshipin), params), params));
return R.ok().put("data", page);
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params,JiaoxueshipinEntity jiaoxueshipin,
HttpServletRequest request){
EntityWrapper<JiaoxueshipinEntity> ew = new EntityWrapper<JiaoxueshipinEntity>();
PageUtils page = jiaoxueshipinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoxueshipin), params), params));
return R.ok().put("data", page);
}
/**
* 列表
*/
@RequestMapping("/lists")
public R list( JiaoxueshipinEntity jiaoxueshipin){
EntityWrapper<JiaoxueshipinEntity> ew = new EntityWrapper<JiaoxueshipinEntity>();
ew.allEq(MPUtil.allEQMapPre( jiaoxueshipin, "jiaoxueshipin"));
return R.ok().put("data", jiaoxueshipinService.selectListView(ew));
}
/**
* 查询
*/
@RequestMapping("/query")
public R query(JiaoxueshipinEntity jiaoxueshipin){
EntityWrapper< JiaoxueshipinEntity> ew = new EntityWrapper< JiaoxueshipinEntity>();
ew.allEq(MPUtil.allEQMapPre( jiaoxueshipin, "jiaoxueshipin"));
JiaoxueshipinView jiaoxueshipinView = jiaoxueshipinService.selectView(ew);
return R.ok("查询教学视频成功").put("data", jiaoxueshipinView);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
JiaoxueshipinEntity jiaoxueshipin = jiaoxueshipinService.selectById(id);
jiaoxueshipin.setClicknum(jiaoxueshipin.getClicknum()+1);
jiaoxueshipin.setClicktime(new Date());
jiaoxueshipinService.updateById(jiaoxueshipin);
return R.ok().put("data", jiaoxueshipin);
}
/**
* 前端详情
*/
@IgnoreAuth
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Long id){
JiaoxueshipinEntity jiaoxueshipin = jiaoxueshipinService.selectById(id);
jiaoxueshipin.setClicknum(jiaoxueshipin.getClicknum()+1);
jiaoxueshipin.setClicktime(new Date());
jiaoxueshipinService.updateById(jiaoxueshipin);
return R.ok().put("data", jiaoxueshipin);
}
/**
* 赞或踩
*/
@RequestMapping("/thumbsup/{id}")
public R thumbsup(@PathVariable("id") String id,String type){
JiaoxueshipinEntity jiaoxueshipin = jiaoxueshipinService.selectById(id);
if(type.equals("1")) {
jiaoxueshipin.setThumbsupnum(jiaoxueshipin.getThumbsupnum()+1);
} else {
jiaoxueshipin.setCrazilynum(jiaoxueshipin.getCrazilynum()+1);
}
jiaoxueshipinService.updateById(jiaoxueshipin);
return R.ok();
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody JiaoxueshipinEntity jiaoxueshipin, HttpServletRequest request){
jiaoxueshipin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(jiaoxueshipin);
jiaoxueshipinService.insert(jiaoxueshipin);
return R.ok();
}
/**
* 前端保存
*/
@RequestMapping("/add")
public R add(@RequestBody JiaoxueshipinEntity jiaoxueshipin, HttpServletRequest request){
jiaoxueshipin.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
//ValidatorUtils.validateEntity(jiaoxueshipin);
jiaoxueshipinService.insert(jiaoxueshipin);
return R.ok();
}
/**
* 修改
*/
@RequestMapping("/update")
@Transactional
public R update(@RequestBody JiaoxueshipinEntity jiaoxueshipin, HttpServletRequest request){
//ValidatorUtils.validateEntity(jiaoxueshipin);
jiaoxueshipinService.updateById(jiaoxueshipin);//全部更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
jiaoxueshipinService.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<JiaoxueshipinEntity> wrapper = new EntityWrapper<JiaoxueshipinEntity>();
if(map.get("remindstart")!=null) {
wrapper.ge(columnName, map.get("remindstart"));
}
if(map.get("remindend")!=null) {
wrapper.le(columnName, map.get("remindend"));
}
int count = jiaoxueshipinService.selectCount(wrapper);
return R.ok().put("count", count);
}
/**
* 前端智能排序
*/
@IgnoreAuth
@RequestMapping("/autoSort")
public R autoSort(@RequestParam Map<String, Object> params,JiaoxueshipinEntity jiaoxueshipin, HttpServletRequest request,String pre){
EntityWrapper<JiaoxueshipinEntity> ew = new EntityWrapper<JiaoxueshipinEntity>();
Map<String, Object> newMap = new HashMap<String, Object>();
Map<String, Object> param = new HashMap<String, Object>();
Iterator<Map.Entry<String, Object>> it = param.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<String, Object> entry = it.next();
String key = entry.getKey();
String newKey = entry.getKey();
if (pre.endsWith(".")) {
newMap.put(pre + newKey, entry.getValue());
} else if (StringUtils.isEmpty(pre)) {
newMap.put(newKey, entry.getValue());
} else {
newMap.put(pre + "." + newKey, entry.getValue());
}
}
params.put("sort", "clicknum");
params.put("order", "desc");
PageUtils page = jiaoxueshipinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoxueshipin), params), params));
return R.ok().put("data", page);
}
/**
* 协同算法(按收藏推荐)
*/
@RequestMapping("/autoSort2")
public R autoSort2(@RequestParam Map<String, Object> params,JiaoxueshipinEntity jiaoxueshipin, HttpServletRequest request){
String userId = request.getSession().getAttribute("userId").toString();
String inteltypeColumn = "chongwufenlei";
List<StoreupEntity> storeups = storeupService.selectList(new EntityWrapper<StoreupEntity>().eq("type", 1).eq("userid", userId).eq("tablename", "jiaoxueshipin").orderBy("addtime", false));
List<String> inteltypes = new ArrayList<String>();
Integer limit = params.get("limit")==null?10:Integer.parseInt(params.get("limit").toString());
List<JiaoxueshipinEntity> jiaoxueshipinList = new ArrayList<JiaoxueshipinEntity>();
//去重
if(storeups!=null && storeups.size()>0) {
for(StoreupEntity s : storeups) {
jiaoxueshipinList.addAll(jiaoxueshipinService.selectList(new EntityWrapper<JiaoxueshipinEntity>().eq(inteltypeColumn, s.getInteltype())));
}
}
EntityWrapper<JiaoxueshipinEntity> ew = new EntityWrapper<JiaoxueshipinEntity>();
params.put("sort", "id");
params.put("order", "desc");
PageUtils page = jiaoxueshipinService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiaoxueshipin), params), params));
List<JiaoxueshipinEntity> pageList = (List<JiaoxueshipinEntity>)page.getList();
if(jiaoxueshipinList.size()<limit) {
int toAddNum = (limit-jiaoxueshipinList.size())<=pageList.size()?(limit-jiaoxueshipinList.size()):pageList.size();
for(JiaoxueshipinEntity o1 : pageList) {
boolean addFlag = true;
for(JiaoxueshipinEntity o2 : jiaoxueshipinList) {
if(o1.getId().intValue()==o2.getId().intValue()) {
addFlag = false;
break;
}
}
if(addFlag) {
jiaoxueshipinList.add(o1);
if(--toAddNum==0) break;
}
}
} else if(jiaoxueshipinList.size()>limit) {
jiaoxueshipinList = jiaoxueshipinList.subList(0, limit);
}
page.setList(jiaoxueshipinList);
return R.ok().put("data", page);
}
}