使用Vue和SpringBoot开发实验室耗材智能运维系统

news/2024/5/19 14:21:35/文章来源:https://blog.csdn.net/qq_41464123/article/details/127174218

作者主页:Designer 小郑
作者简介:浙江某公司软件工程师,负责开发管理公司OA、CRM业务系统,全栈领域优质创作者,CSDN学院、蓝桥云课认证讲师,开发过20余个前后端分离实战项目,主要发展方向为Vue、SpringBoot、微信小程序,期待你我共同成长!
主打方向:Vue、SpringBoot、微信小程序
项目ID:A22010
文末获取源码

一、项目简介

本项目是基于 Vue 和 Spring Boot 的实验室耗材智能运维系统,包括了耗材档案耗材采购入库耗材领用出库三大核心业务,另外还支持申请耗材审核申请单用户管理文件云盘组织架构日志数据字典修改密码个人中心等扩展功能。本系统主要面向高校实验室管理日常耗材所用,降低实验室管理人员的工作量,提高耗材库存的管理水平。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


二、功能明细

  • 耗材档案:实验室管理者可自由增删改查耗材的数据。
  • 耗材采购入库:实验室耗材采购人员可将采购的耗材入库至系统。
  • 耗材领用出库:学生可按需申请耗材,实验室管理员审核;或者实验室管理员直接分配给学生。
  • 用户权限管控:基于角色的权限控制,可维护每位用户的菜单权限和用户信息。
  • 组织架构维护:对实验室的组织架构进行维护,如教师层、20级、21级等。
  • 文件云盘:统一化管理系统所用到的全部文件,封装了 Vue 组件供其他模块表单调用。
  • 系统日志:根据用户操作,自动化记录日志。
  • 数据字典:管理员可视化修改其他模块的下拉框数据,无需修改前端代码。
  • 个人中心:登陆注册、修改密码、维护自己账号的数据等。

三、使用对象

  • 实验室管理员:管理员可以发布耗材、删改耗材数据、维护实验室人员档案等全部功能。
  • 耗材采购员:可对管理员发布的耗材品类,进行入库操作、对指定学生进行出库领用或审核学生的申请单。
  • 学生:可查看实验室现有耗材的库存情况、申请耗材、查看自己的申请状态。

四、技术选型

前端

Vue:Vue 是构建前端界面的核心框架,本系统采用 2.6.14 版本。

View UI:基于 Vue.js2.0 的组件库,本系统采用 4.7.0 版本。

后端

Spring Boot:构建系统核心逻辑的后端框架,本系统采用 2.7.4 版本。

MyBatis / MyBatis Plus:后端连接数据库的框架,本系统采用 3.5.2 版本。

数据库

MySQL:本项目的主数据库,本系统采用 8.0.30 版本。

Redis:本系统采用基于 Windows 版本的 Redis,用于图形验证码和用户菜单权限的临时存储,采用了 5.0.14.1 版本。

开发环境

VsCode:项目前端的开发工具,使用版本为 1.68.0。

IntelliJ IDEA :项目后端的开发工具,使用版本为 2022.2.2。

Jdk:Java 的开发环境,使用版本为 17.0.4.1。

Maven:后端项目的打包工具,使用版本为 3.6.2。

NodeJs:前端项目的开发环境,使用版本为 16.13.0。


五、系统展示

登录页

用户可使用账号 + 密码 + 图形验证码的方式进行登录,如下图所示。
在这里插入图片描述

注册页

如果用户没有账号,也可以根据手机号、姓名、密码和图形验证码进行注册,如下图所示。
在这里插入图片描述

主页

用户登录成功后,默认进入主页,如下图所示。
在这里插入图片描述
当然不同的用户拥有不同的菜单权限,实验室耗材智能运维系统采用基于角色的访问控制模式,采用同学们可以自定义角色,再分配指定的菜单权限,如下图所示。
在这里插入图片描述

耗材档案

实验室管理员可以在这里维护耗材的数据,其中耗材包括大的耗材(固定资产)和小的耗材(耗材),如下图所示。
在这里插入图片描述

新增编辑耗材

新增耗材的操作界面如下图所示。
在这里插入图片描述

删除耗材

用户可以选择一定数量的耗材,点击删除按钮,进行删除,系统会给与二次确认弹框,如下图所示。
在这里插入图片描述

耗材入库

耗材的来源是采购员买来之后入库,所以采购员可以在这个模块操作入库,如下图所示。
在这里插入图片描述

新增入库

新增入库时,资产是由耗材模块中进行选择,如下图所示。
在这里插入图片描述
新增之后还可以编辑,编辑功能如下图所示。
在这里插入图片描述

耗材领用(管理员)

管理员可以主动将耗材分配给实验室学生,如下图所示。
在这里插入图片描述

新增耗材领用分配

在这里插入图片描述
其中表单的资产名称和领用人可导入选择,资产导入后,型号、单价自动带出,用户只需填写数量和备注即可,如下图所示。
在这里插入图片描述

耗材领用(用户)

除了管理员主动分配耗材给学生,学生也可以主动去申请耗材,如下图所示。
在这里插入图片描述
在这里插入图片描述

领用审核

学生主动申请耗材后,实验室管理员可以对其进行审核,如下图所示。
在这里插入图片描述

审核通过即可完成正常领用,如下图所示。
在这里插入图片描述

用户管理

管理员管理学生,在这里维护,如下图所示。
在这里插入图片描述

云盘(文件管理)

实验室耗材智能运维系统的所有文件都在这里维护,如下图所示。
在这里插入图片描述

系统日志

用户的指定操作(后端代码匹配)可以自动化记录日志,汇总在日志模块,如下图所示。
在这里插入图片描述

修改密码

用户可以修改自己的密码,如下图所示。
在这里插入图片描述

个人门户

用户可以在个人门户中编辑自己的信息,如下图所示。
在这里插入图片描述

图表

系统还支持 ANTV 图表,同学们可以根据自己需要,进行二次开发。
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

六、项目总结

智能化人事系统的作用,就是为公司人事事务提供便捷性支持,方便公司对自己人事组织层次,人事数据进行修改、维护、检索信息。本软件是基于 VueSpringBoot 的智能化人事系统,包含了员工模块请假模块通告模块留言模块薪资模块职位职称这六个功能核心模块。

开发本系统的目的,就是为了帮助中小企业提高人事管理效率,降低人力成本,让中小企业获得更多的经济效益


七、核心代码实例

实体类定义

@Data
@Entity
@DynamicInsert
@DynamicUpdate
@Table(name = "a_assets_type")
@TableName("a_assets_type")
@ApiModel(value = "资产种类")
public class AssetsType extends ZwzBaseEntity {private static final long serialVersionUID = 1L;@ApiModelProperty(value = "资产名称")private String assetName;@ApiModelProperty(value = "性质")private String nature;@ApiModelProperty(value = "型号")private String model;@ApiModelProperty(value = "数量")private String number;@ApiModelProperty(value = "现有数量")private String existingNumber;@ApiModelProperty(value = "单价")private String unitPrice;@ApiModelProperty(value = "总价")private String totalPrice;@ApiModelProperty(value = "备注")private String remarks;
}

资产出库

@ApiOperation(value = "资产出库")
@RequestMapping(value = "/outpdate", method = RequestMethod.POST)
public Result<WarehouseOut> outpdate(WarehouseOut warehouseOut){WarehouseOut oldWarehouseOut = iWarehouseOutService.getById(warehouseOut.getId());double oldNumber = 0.0;if(oldWarehouseOut != null){oldNumber = Double.parseDouble(oldWarehouseOut.getNumber());}// outNumber 要出库的数量double outNumber = Double.parseDouble(warehouseOut.getNumber());AssetsType oldAssetsType = iAssetsTypeService.getById(warehouseOut.getAssetId());if(oldAssetsType != null){// newNumber 出库后还有的数量 = 仓库原本还有的数量 - 出库单的出库数量 + 原有出库单的出库数量Double newNumber = Double.parseDouble(oldAssetsType.getExistingNumber()) - outNumber + oldNumber;if(newNumber >= 0){oldAssetsType.setExistingNumber(newNumber + "");iAssetsTypeService.saveOrUpdate(oldAssetsType);}else{return ResultUtil.error("手慢啦!库存不足!");}}if(ZwzNullUtils.isNull(warehouseOut.getId())) {warehouseOut.setAuditStatus(0);warehouseOut.setAuditTime("");}if(iWarehouseOutService.saveOrUpdate(warehouseOut)){return new ResultUtil<WarehouseOut>().setData(warehouseOut);}return ResultUtil.error();
}

八、免责声明

  • 本项目开源,仅供个人学习使用,遵循 GPL-3.0 开源协议,转发 / 商用授权请联系作者,否则后果自负。
  • 作者拥有本软件构建后的应用系统全部内容所有权及独立的知识产权,欢迎一切有价值的商业合作。
  • 如有问题,欢迎在评论区留言,看到后会第一时间回复。相关意见会酌情考虑,但没有一定被采纳的承诺或保证。
  • 下载本系统代码的用户,必须同意以下内容,否则请勿下载!
  1. 出于自愿而使用/开发本软件,了解使用本软件的风险,且同意自己承担使用本软件的风险。
  2. 利用本软件构建的网站的任何信息内容以及导致的任何版权纠纷和法律争议及后果和作者无关,作者对此不承担任何责任。
  3. 在任何情况下,对于因使用或无法使用本软件而导致的任何难以合理预估的损失(包括但不仅限于商业利润损失、业务中断与业务信息丢失),作者概不承担任何责任。
  4. 必须了解使用本软件的风险,作者不承诺提供一对一的技术支持、使用担保,也不承担任何因本软件而产生的难以预料的问题的相关责任。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_19483.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(附源码)计算机毕业设计ssm大学生社团管理系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

SPAFA 和Dijkstra的区别

Dijkstra算法和SPFA算法都可以用于求单源最短路,前者可以用小根堆进行优化,后者用就是用队列优化过的Bell-man Ford,下面说一说这两者的区别: Dijkstra算法是基于贪心和DP的思路,一开始先将所有点到原点的距离设置为无穷大,特别的是dis[s]=0,此处的s为原点,它是每次找到…

基于Java的SQL Server数据库加解密系统设计与实现

目 录 摘 要 1 ABSTRACT 2 第1章 绪论 3 1.1 数据库加解密系统开发背景 3 1.2 国内外现状 3 1.3 本文的主要工作 4 1.4 论文的组织结构 4 第2章 数据库加密的基本理论 6 2.1 数据库加密的三种级别 6 2.2 数据库加密的粒度 8 2.2.1 数据库级的数据库加密 8 2.2.2 表&#xff08;…

(附源码)SSM药品销售平台设计与实现JAVA计算机毕业设计项目

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

python读写操作redis数据库

python读写操作redis数据库 redis有16个逻辑数据库&#xff08;编号db0到db15&#xff09;&#xff0c;每个逻辑数据库数据是隔离的&#xff0c;默认db0。选择第n个逻辑数据库&#xff0c;命令select n &#xff0c;python连接时可指定数据库编号&#xff08;0~15&#xff09;…

【Linux内核】内存管理——内核的内存分区

转载请注明: https://www.cnblogs.com/Ethan-Code/p/16619091.html 内核的内存分区 32位机中的虚拟内存大小为4GB&#xff0c;其中0~3GB用于用户空间&#xff0c;3~4GB用于内核空间。 内核的内存空间只有1G&#xff0c;这一部分内存在进程中共享&#xff0c;与用户空间隔离&…

WSL2和Docker使用GPU

文章目录安装Docker-Desktop简单配置dockerwin10安装支持WSL2的nvidia驱动ubuntu配置 CUDA ToolkitGPU测试及问题处理安装Docker-Desktop 安装Docker-Desktop Docker-Desktop下载地址 :https://www.docker.com/products/docker-desktop/ 接着就一路无脑安装即可。 下载完成之…

PTA - 数据库合集10

目录 10-52 查询姓‘李’的学生记录 10-54 查询所有学生的平均成绩 10-67 sql-insert-sample 10-68 sql-delete-sample 10-72 单表查询&#xff1a;根据运费查询订单信息 10-52 查询姓‘李’的学生记录 分数 5 全屏浏览题目 切换布局 作者 张庆 单位 集美大学 本题目要…

MaxViT实战:使用MaxViT实现图像分类任务(一)

MaxViT实战摘要安装包安装timm数据增强Cutout和MixupEMA项目结构计算mean和std生成数据集摘要 MaxViT&#xff0c;是今年谷歌提出分层Transformer的模型&#xff0c;将注意力模型与卷积有效地融合在一起。在图像分类方面&#xff0c;MaxViT 在各种设置下都达到了最先进的性能&…

数据结构子KMP算法

传统从主串找子串方法 然子串从第一个开始&#xff0c;一个个比对&#xff0c;相同比对第二个字母 不同然子串后移一位重新开始比较 直至找到全部相同的或者主串里面没有让子串比较的字母了 这样的算法太暴力&#xff0c;执行效率太低 KMP算法 来说我们人脑对于字符串匹配的…

Linux第三章——用户与组管理

用户与组账号 一个用户可以隶属于不同的组一个组可以包含若干用户系统通过账户对用户与组进行管理 账号 Linux系统账号分为用户账号和组账号 用户账号&#xff1a;每个系统的操作者拥有一个用户账号&#xff0c;每个用户账号具有唯一的标识UID和自己所属组的标识GID。组账号…

【Android-JetpackCompose】5、三阶段:组合、布局、绘制,架构分层,设计原则、性能最佳实践

文章目录一、帧的3个阶段1.1 第 1 阶段&#xff1a;组合1.2 第 2 阶段&#xff1a;布局1.3 第 3 阶段&#xff1a;绘制二、读取 state2.1 优化读取 state三、重组循环&#xff08;循环阶段依赖项&#xff09;四、架构分层五、设计原则5.1 控制5.2 自定义六、性能最佳实践6.1 使…

c++类和对象

前言 在学习完漫长的C语言&#xff0c;那么这篇文章也算是开始踏上了高级语言之路 。古人云&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。c的道路才开始&#xff0c;那么我们应该为此开始思考了。余甚 愚&#xff0c;余认为c有太多细节了&#xff0c;必定耗时细磨才…

实验一:贝叶斯神经网络及其如何用随机梯度马尔可夫链蒙特卡洛有效训练

0.实验环境搭建&#xff1a; 源代码获取&#xff1a; 来源一&#xff1a;google 来源二&#xff1a;web 来源三&#xff1a;github 环境&#xff1a; conda create --name python36_google_deep python3.6 conda activate python36_google_deep #建议按照顺序安装 pip inst…

基于FPGA的图像边缘检测

基于FPGA的图像边缘检测一、图像处理算法1.灰度转换2.高斯滤波3.二值化4.Sobel二、项目框架1.摄像头配置模块2.图像处理模块3.数据缓存模块4.其它模块三、部分代码1.数据采集模块2.读写控制模块四、参考五、源码简介&#xff1a;基于FPGA&#xff0c;摄像头实时采集图像数据&am…

【Algorithm】Karatsuba Multiplications 乘法算法

Karatsuba Multiplications Q1&#xff1a; 请计算&#xff1a;x1234x1234x1234, y5678y5678y5678, x∗y?x*y?x∗y? 这个问题其实我们在三年级的时候就学过&#xff0c;用乘法竖式进行运算。但是有没有其他的方法&#xff0c;或者说&#xff0c;如果 x,yx,yx,y 非常大的时候…

drf 视图类 GenericAPIView 及扩展

drf 视图类 GenericAPIView 及扩展 文章目录drf 视图类 GenericAPIView 及扩展1、2个视图基类1.1、GenericAPIView&#xff1a;属性和方法1.2、基于APIView 写5个接口1.3、基于GenericAPIView写5个接口2、5个视图扩展类2.1 基于GenericAPIView5个视图扩展类写接口3、九个视图子…

【UCB操作系统CS162项目】Pintos Lab2:用户程序 User Programs(下)

在上节中&#xff0c;我们已经完成了 Lab 2 要求的参数传递和系统调用中的 halt, exit 以及向 stdout 输出的 write&#xff0c;最终停在了 wait 的实现之前。本节就先从 wait 和 exec 继续。 Syscall wait exec&#xff1a;实现父子进程 讲义中 wait 的要求是这样的&#x…

这几个文字翻译工具确定不试试看?

想问问大家平常会接触到TXT文件吗&#xff1f;这是微软在操作系统上附带的一种文本格式&#xff0c;主要是保存纯文字信息&#xff0c;像我们电脑上自带的记事本工具&#xff0c;就是使用这种文件格式。有时候我们需要将文本内容翻译成中文。那你知道如何实现TXT翻译成中文吗&a…

LRU缓存——哈希表+双向链表

一、题目描述 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类&#xff1a; 1&#xff09;LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存 2&#xff09;int get(int key) 如果关键字 key 存在于缓存中&#xff0c;…