基于springboot+vue的校园资产管理系统

news/2025/2/15 21:32:27/

博主主页:猫头鹰源码

博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万+、专注Java技术领域和毕业设计项目实战

主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询

文末联系获取

项目介绍: 

本系统适合选题:资产管理、资产、校园资产等。系统采用springboot+vue整合开发,前端框架主要使用了element-ui框架、数据层采用mybatis,功能齐全,界面美观。

功能介绍:

校园资产管理的设计方案比如功能框架的设计,比如数据库的设计的好坏也就决定了该系统在开发层面是否高效,以及在系统维护层面是否容易维护和升级,因为在系统实现阶段是需要考虑用户的所有需求,要是在设计阶段没有经过全方位考虑,那么系统实现的部分也就无从下手,所以系统设计部分也是至关重要的一个环节,只有根据用户需求进行细致全面的考虑,才有希望开发出功能健全稳定的程序软件。

系统包含技术:

后端:springboot,mybatis
前端:element-ui、js、css等
开发工具:idea/vscode
数据库:mysql 5.7
JDK版本:jdk1.8

部分截图说明:

下面是登录页面

部门类型管理

用户管理

校园资产管理

资产借用管理

资产维修管理

入库管理

部分代码:

/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));String role = String.valueOf(request.getSession().getAttribute("role"));if(StringUtil.isEmpty(role))return R.error(511,"权限为空");else if("用户".equals(role))params.put("yonghuId",request.getSession().getAttribute("userId"));if(params.get("orderBy")==null || params.get("orderBy")==""){params.put("orderBy","id");}PageUtils page = jieyongService.queryPage(params);//字典表数据转换List<JieyongView> list =(List<JieyongView>)page.getList();for(JieyongView c:list){//修改对应字典表字段dictionaryService.dictionaryConvert(c, request);}return R.ok().put("data", page);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);JieyongEntity jieyong = jieyongService.selectById(id);if(jieyong !=null){//entity转viewJieyongView view = new JieyongView();BeanUtils.copyProperties( jieyong , view );//把实体数据重构到view中//级联表ShangpinEntity shangpin = shangpinService.selectById(jieyong.getShangpinId());if(shangpin != null){BeanUtils.copyProperties( shangpin , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段view.setShangpinId(shangpin.getId());}//级联表YonghuEntity yonghu = yonghuService.selectById(jieyong.getYonghuId());if(yonghu != null){BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段view.setYonghuId(yonghu.getId());}//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端详情*/@RequestMapping("/guihuan/{id}")public R guihuan(@PathVariable("id") Long id, HttpServletRequest request){logger.debug("guihuan方法:,,Controller:{},,id:{}",this.getClass().getName(),id);JieyongEntity jieyong = jieyongService.selectById(id);if(jieyong !=null){if(jieyong.getGuihuanTypes().equals(1)){jieyong.setGuihuanTypes(2);ShangpinEntity shangpinEntity = shangpinService.selectById(jieyong.getShangpinId());if(shangpinEntity != null ){shangpinEntity.setShangpinKucunNumber(shangpinEntity.getShangpinKucunNumber() +jieyong.getJieyongNumber());shangpinService.updateById(shangpinEntity);}jieyongService.updateById(jieyong);return R.ok();}else{return R.error(511,"该借出已经归还");}}else {return R.error(511,"查不到借用数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody JieyongEntity jieyong, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,jieyong:{}",this.getClass().getName(),jieyong.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(StringUtil.isEmpty(role))return R.error(511,"权限为空");else if("用户".equals(role))jieyong.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));jieyong.setInsertTime(new Date());jieyong.setCreateTime(new Date());jieyong.setGuihuanTypes(1);ShangpinEntity shangpinEntity = shangpinService.selectById(jieyong.getShangpinId());if(shangpinEntity == null){return R.error(511,"查不到商品");}int i = shangpinEntity.getShangpinKucunNumber() - jieyong.getJieyongNumber();if(i<0){return R.error(511,"借用数量大于库存数量");}shangpinEntity.setShangpinKucunNumber(i);shangpinService.updateById(shangpinEntity);jieyongService.insert(jieyong);return R.ok();}

以上就是部分功能展示,从整体上来看,本系统功能是十分完整的,界面设计简洁大方,交互友好,数据库设计也很合理,规模适中,代码工整,清晰,适合学习使用。

好了,今天就到这儿吧,小伙伴们点赞、收藏、评论,一键三连走起呀,下期见~~


http://www.ppmy.cn/news/1125466.html

相关文章

vue中request.js中axios请求和(若依)文件通用下载方法封装

vue中request.js中axios请求和&#xff08;若依&#xff09;文件通用下载方法封装 1.request.js import axios from axios import { Message, Loading } from element-ui import { saveAs } from file-saver // 创建axios实例 const request axios.create({// 这里可以放一…

[运维|数据库] 数据库迁移到金仓数据库时,sys_user表报错原因

参考文献 金仓数据库字段_金仓数据库KingBase8迁移SQL问题汇总、 kingbase数据库搜不到自己定义的SYS_USER等表 原因 数据库中存在表sys_user&#xff0c;人大金仓数据库存在系统表sys_user&#xff0c;表冲突导致代码中查询的时候查的是系统表sys_user&#xff0c;而不是我…

第3章-指标体系与数据可视化-3.1.1-Matplotlib绘图库

目录 3.1 Python可视化 3.1.1 Matplotlib绘图库 1. 线图 2. 饼图 3. 条形图 4. 直方图 5.散点图

深入了解Python和OpenCV:图像的卡通风格化

前言 当今数字时代&#xff0c;图像处理和美化已经变得非常普遍。从社交媒体到个人博客&#xff0c;人们都渴望分享独特且引人注目的图片。本文将介绍如何使用Python编程语言和OpenCV库创建令人印象深刻的卡通风格图像。卡通风格的图像具有艺术性和创意&#xff0c;它们可以用…

Java深入理解线程的三大特性

目录 1 CPU缓存导致可见性问题2 线程切换导致原子性问题3 性能优化导致有序性问题4 JMM(Java Memory Model)5 volatile6 synchronized 1 CPU缓存导致可见性问题 线程的三大特性&#xff1a; 可见性&#xff1a;Visibility有序性&#xff1a;Ordering原子性&#xff1a;Atomic…

LPA*算法图文详解

之前我们看过了A* 算法&#xff0c;知道了A* 算法的基本原理&#xff0c;但是A* 算法的缺陷也很明显&#xff1a;它是离线的路径规划算法&#xff0c;只能一次规划出路径&#xff0c;但是后面路径被改变的话就无法生效了。针对这个问题&#xff0c;人们研究出了D* 算法。D* 算法…

Linux内核启动流程-第二阶段start_kernel 函数

一. Linux内核启动 上一篇文章简单介绍了 Linux内核启动的第一阶段&#xff0c;即执行汇编流程。 本文简单了解一下&#xff0c;Linux内核启动的第二阶段&#xff1a;start_kernel函数&#xff0c;这是一个 C 函数。 本文续上一篇文章的学习&#xff0c;地址如下&#xff1a;…

【数据结构-图】最短路径

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…