基于JAVA+SpringBoot+Vue+ElementUI中学化学实验室耗材管理系统
✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取项目下载方式🍅
一、项目背景介绍:
当前,中学的化学实验教学越来越重视,为了让学生对化学有更深刻的了解,必须要进行大量的化学实验。然而,由于耗材数量众多,很难有效地管理。因此,研发一个中学化学实验室耗材管理系统显得十分必要。 这个系统可以帮助学校有效地管理实验室耗材的数量,从而提高实验的效率和质量。它可以实现对耗材的自动化管理,包括耗材的入库、出库、分配和回收。同时,它还可以管理预约和使用历史记录,方便管理人员对耗材的使用情况进行监控和评估。 这个系统的开发将使中学的化学实验教学更加高效、科学,更好地满足学生的需求。
二、项目技术简介:
-
JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
-
Vue:Vue (发音为 /vjuː/,类似 view) 是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。 Vue是一个独立的社区驱动的项目,它是由尤雨溪在2014年作为其个人项目创建, 是一个成熟的、经历了无数实战考验的框架,它是目前生产环境中使用最广泛的JavaScript框架之一,可以轻松处理大多数web应用的场景,并且几乎不需要手动优化,并且Vue完全有能力处理大规模的应用。
-
Element-UI:Element,一套为开发者、设计师和产品经理准备的基于 Vue 2.0 的桌面端组件库。
-
SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
-
Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
三、系统功能模块介绍:
四、数据库设计:
-
'非常规耗材申请表'(apply)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
user_id | bigint | NULL | 用户ID |
consumables_id | bigint | NULL | 非常规耗材ID |
create_date | datetime | NULL | 创建时间 |
updata_date | datetime | NULL | 更新时间 |
apply_date | datetime | NULL | 申请时间 |
status | bigint | NULL | 申请状态(select)(search)[0:申请中,1:通过,2:驳回,3:完成] |
-
'常规器材预约表'(appointment)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
user_id | bigint | NULL | 用户ID |
equipment_id | bigint | NULL | 常规器材ID |
appointment_date | datetime | NULL | 预约时间 |
create_date | datetime | NULL | 创建时间 |
updata_date | datetime | NULL | 更新时间 |
status | tinyint | NULL | 器材状态(select)(search)[0:预约中,1:完成] |
-
'非常规耗材信息表'(consumables)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
type_id | bigint | NULL | 非常规耗材类型(select)(search) |
name | varchar | NULL | 非常规耗材名称(search) |
price | bigint | NULL | 价格(search) |
remark | varchar | NULL | 备注(search) |
create_date | datetime | NULL | 入库时间 |
updata_date | datetime | NULL | 更新时间 |
delete_date | datetime | NULL | 出库时间 |
status | tinyint | NULL | 非常规耗材状态(select)(search)[0:冻结,1:正常] |
img | varchar | NULL | 头像(img) |
-
'非常规耗材类型表'(consumables_type)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
name | varchar | NULL | 非常规耗材类型名称(search) |
create_date | datetime | NULL | 创建时间 |
updata_date | datetime | NULL | 更新时间 |
-
'常规器材信息表'(equipment)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
type_id | bigint | NULL | 常规器材类型(select)(search) |
name | varchar | NULL | 常规器材名称(search) |
price | bigint | NULL | 价格(search) |
remark | varchar | NULL | 备注(search) |
create_date | datetime | NULL | 入库时间 |
updata_date | datetime | NULL | 更新时间 |
delete_date | datetime | NULL | 出库时间 |
status | tinyint | NULL | 状态(select)(search)[0:冻结,1:正常] |
img | varchar | NULL | 头像(img) |
-
'常规器材类型表'(equipment_type)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
name | varchar | NULL | 常规器材类型名称(search) |
create_date | datetime | NULL | 创建时间 |
updata_date | datetime | NULL | 更新时间 |
-
'用户信息表'(user)
字段名 | 类型 | 默认值 | 列注释 |
---|---|---|---|
id | bigint | NULL | 主键ID |
user_name | varchar | NULL | 用户名(search) |
pass_word | varchar | NULL | 密码 |
real_name | varchar | NULL | 真实姓名(search) |
role | tinyint | NULL | 角色(select)(search)[0:后台管理员,1:前端用户] |
status | tinyint | NULL | 状态(select)(search)[0:冻结,1:正常] |
img | varchar | NULL | 头像(img) |
create_date | datetime | NULL | 创建时间 |
updata_date | datetime | NULL | 更新时间 |
五、功能模块:
-
非常规耗材申请:非常规耗材申请界面可以根据非常规耗材的名称对处于申请中的非常规耗材信息进行搜索,并且可以添加新的非常规耗材使用申请、修改处于申请中的非常规耗材申请、删除申请中的申请信息 此处无法查询、修改、删除已经被管理员处理过的数据,因已经处理过的数据再进行修改删除的话则不符合实际的业务场景
-
常规器材预约:常规器材预约界面可以根据常规器材的名称对处于预约中的常规器材信息进行搜索,并且可以添加新的常规器材使用预约、修改处于预约中的常规器材预约、删除预约中的预约请信息 此处无法查询、修改、删除已经被管理员处理过的数据,因已经处理过的数据再进行修改删除的话则不符合实际的业务场景
-
非常规耗材申请记录:非常规耗材申请记录界面可以查看历史非常规耗材的申请记录,此处的非常规耗材的申请记录是指已经被管理员处理过的数据,在界面上可以根据非常规耗材的耗材名称进行搜索
-
用户与管理员登录:管理员和用户可以分别在对于的界面中进行登录
六、代码示例:
非常规耗材申请
@GetMapping("/all/consumablesType")public ReturnMsg allConsumablesType() {List<BaseSelectEntity> list = new ArrayList<>();List<ConsumablesTypeDTO> dtos = consumablesTypeService.list();for (ConsumablesTypeDTO dto : dtos) {BaseSelectEntity baseSelectEntity = new BaseSelectEntity();baseSelectEntity.setKey(dto.getId());baseSelectEntity.setValue(dto.getName());list.add(baseSelectEntity);}return ReturnMsg.ok(list);}
@Overrideprotected void beforeUpdate(ConsumablesDTO entity) throws Exception {if(entity.getStatus() != null && entity.getStatus() == 0){entity.setDeleteDate(new Date());}entity.setUpdataDate(new Date());super.beforeUpdate(entity);}
常规器材预约
/*** 默认分页查询* @param equipmentDTO* @return*/@PostMapping("/page")public ReturnMsg page(@RequestBody EquipmentDTO equipmentDTO) {return ReturnMsg.ok(baseService.basePage(equipmentDTO));}@GetMapping("/all/equipmentType")public ReturnMsg allEquipmentType() {List<BaseSelectEntity> list = new ArrayList<>();List<EquipmentTypeDTO> dtos = equipmentTypeService.list();for (EquipmentTypeDTO dto : dtos) {BaseSelectEntity baseSelectEntity = new BaseSelectEntity();baseSelectEntity.setKey(dto.getId());baseSelectEntity.setValue(dto.getName());list.add(baseSelectEntity);}return ReturnMsg.ok(list);}
非常规耗材申请记录
@Overrideprotected void beforeSave(ConsumablesDTO entity) throws Exception {if(entity.getStatus() != null && entity.getStatus() == 0){entity.setDeleteDate(new Date());}entity.setCreateDate(new Date());entity.setUpdataDate(new Date());super.beforeSave(entity);}
用户与管理员登录
@PostMapping("/admin")public ReturnMsg manageLoginAdmin(@RequestBody Map<String, String> param) {if (StrUtil.isEmpty(param.get("username")) || StrUtil.isEmpty(param.get("password"))) {return ReturnMsg.error("用户名或密码错误!");}UserDTO userDTO = new UserDTO();userDTO.setUserName(param.get("username"));userDTO.setPassWord(param.get("password"));userDTO.setRole(0);userDTO.setStatus(1);QueryWrapper<UserDTO> userDTOQueryWrapper = new QueryWrapper<>(userDTO);userDTOQueryWrapper.last("limit 1");UserDTO adminDTOS = userService.getOne(userDTOQueryWrapper);if (adminDTOS == null) return ReturnMsg.error("用户名或密码错误!");Map<String, Object> map = new HashMap<>();map.put("avatar", StrUtil.isNotBlank(adminDTOS.getImg()) ? adminDTOS.getImg() : "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");map.put("introduction", adminDTOS.getRealName() + ",你好!");map.put("name", adminDTOS.getRealName());map.put("roles", Arrays.asList("admin"));map.put("userinfo", adminDTOS);Map<String, String> returnMap = new HashMap<>();String uuid = UUID.randomUUID().toString();returnMap.put("token", uuid);userInfoMap.put(uuid, JSON.toJSONString(map));return ReturnMsg.ok(returnMap);}
七、项目总结:
当前,中学化学实验室耗材管理系统是一个有前途和潜力的项目,旨在解决中学化学实验室耗材管理问题。 该系统分为管理员模块和用户模块,管理员模块负责系统用户管理、管理员用户登录、用户账号分配、用户预约管理、常规器材管理、非常规耗材管理、常规器材分类管理、非常规耗材分类分类管理、采购信息管理(入库出库)、废料回收管理等功能;用户模块提供用户登录、常规器材预约、非常规耗材申请、历史记录查询等功能。 本项目通过使用高效的数据存储结构和算法,以及稳健的架构设计,来保证系统的可靠性和灵活性。通过详细的测试,我们可以确保系统能够满足用户的需求,并且满足软件质量标准。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接
相关文章:
基于JAVA+SpringBoot+Vue+ElementUI中学化学实验室耗材管理系统
✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: 当前,中学…...
1.输入子系统学习-struct input_dev-2023.02
内核版本:4.4.194 平台相关:rk3399 目前主要是看的触摸屏的代码 目录 一、include/linux/input.h(struct_input_dev) 二、结构体的注释部分(百度翻译) 三、Documentation/input/event-codes.txt&…...
解决:PDFBox报的java.io.IOException: Missing root object specification in trailer
文章目录问题描述原因分析解决方案问题描述 使用pdfbox类库操作pdf文件时,遇到下面的报错信息: java.io.IOException: Missing root object specification in trailer PDFBox参考: https://pdfbox.apache.org/ Apache PDFBox 库是一个开源的…...
MAC OSX安装Python环境 + Visual Studio Code
MAC上开发python怎么能少得了python3环境呢,而安装python3环境的方式也有多种,这里仅选用并记录本人认为比较方便的方式 安装Homebrew Homebrew是macOS 缺失的软件包管理器, 使用它可以在MAC上安装很多没有预装的东西,详细说明可…...
音乐 APP 用户争夺战,火山引擎 VeDI 助力用户体验升级!
更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,并进入官方交流群 国内数字音乐市场正在保持稳定增长。 根据华经产业研究院数据报告显示,2020 年数字音乐市场规模为 357.3 亿元,到 2022 年市场规模已增长至 482.7 …...
CAP和BASE理论
CAP理论CAP是 Consistency、Availability、Partition tolerance 三个词语的缩写,分别表示一致性、可用性、分区容忍性。它指出一个分布式计算系统不可能同时满足以下三点:• 一致性(Consistency) :等同于所有节点访问同…...
基于商品理解的成交能力和成交满意度优化在Lazada的实践
作者:马蕊 Lazada推荐算法团队 在Lazada各域推荐场景中,既有优质商品优质卖家不断涌现带来的机会,也有商品质量参差带来的问题。如何才能为用户提供更好的体验,对卖家变化行为进行正向激励呢?下面本文将为大家分享我们…...
idea推送镜像到desktop报错:Cannot run program “docker-credential-desktop“ 系统找不到指定的文件。
windows Docker 搭建仓库 打开docker desktop 。 打开windows cmd窗口或powershell窗口。 输入"docker run -d -p 5000:5000 --name test registry:2 "运行一个名字叫test的registry容器。 idea配置springboot项目的docker插件 在pom.xml中的plugins中加入下面代码…...
hive开窗函数
hive开窗函数 窗口函数 数据准备 1 jx 20 2 zx 24 3 yx 18 4 wz 10 5 yy 34 6 wy 25create table t (> id int,> name string,> age int> )> row format delimited fields terminated by ; load data inpath /data/data.txt into table t;ROW_NUMBER ROW_N…...
安全多方计算系列笔记1——前世今生
这一系列笔记参考了绿盟科技研究通讯的安全多方计算文章,及其他。 首先看定义:在不泄露参与方原始输入数据的前提下,允许分布式参与方合作计算任意函数,输出准确的计算结果。 起源 安全多方计算问题及解首先由姚期智(…...
16- 梯度提升分类树GBDT (梯度下降优化) (算法)
梯度提升算法 from sklearn.ensemble import GradientBoostingClassifier clf GradientBoostingClassifier(subsample0.8,learning_rate 0.005) clf.fit(X_train,y_train) 1、交叉熵 1.1、信息熵 构建好一颗树,数据变的有顺序了(构建前,…...
SpringCloud+Nacos+Gateway
SpringCloudNacosGatewaySpringBoot整合GatewayNacos一. 环境准备1. 版本环境2. 服务环境二. 实战1.创建用户服务2.创建订单服务3.创建网关服务4.测试三. 避坑指南问题1--503问题问题2--网关服务启动报错SpringBoot整合GatewayNacos 本篇文章只演示通过gateway网关服务访问其他…...
高通开发系列 - linux kernel内核升级msm-3.18升至msm-4.9(2)
By: fulinux E-mail: fulinux@sina.com Blog: https://blog.csdn.net/fulinus 喜欢的盆友欢迎点赞和订阅! 你的喜欢就是我写作的动力! 目录 返回高通开发系列 - 总目录 前面我们升级了msm-4.9内核系统正常启动了,文件系统也正常工作,但那是使用了老基线的文件系统,其yocto…...
Spring依赖注入与反转控制到底是个啥?
目录 1. 引言 2. 管中窥豹 3.1 Spring 依赖注入 3.2 Bean 的依赖注入方式有两种 4. 总结 1. 引言 此文目的是用通俗易懂的语言讲清楚什么是依赖注入与反转控制,在看了大量的博客文章后归纳总结,便于后续巩固!我相信,大多数…...
Linux Shell脚本讲解
目录 Shell脚本基础 Shell脚本组成 Shell脚本工作方式 编写简单的Shell脚本 Shell脚本参数 Shell脚本接收参数 Shell脚本判断用户参数 文件测试与逻辑测试语句 整数测试比较语句 字符串比较语句 Shell流程控制 if条件判断语句 单分支 双分支 多分支 for循环语句…...
Linux:用户空间非法指针coredump简析
1. 前言 限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 2. 背景 本文分析基于 ARM32 架构,Linux-4.14 内核代码。 3. 问题分析 3.1 测试范例 void main(void) {*(int *)0 8; }运行程序会 …...
带你玩转Jetson之Deepstream简明教程(四)DeepstreamApp如何使用以及用于工程验证。
1.DeepstreamApp是什么? 如果你安装完毕deepstream整体框架,会在你的系统执行目录内有可执行文件,文件名字是deepstream-app。这是一个可执行脚本文件,通过deepstream框架中的代码在安装的时候编译后install到系统根目录内。 此脚…...
快速搭建个人在线书库,随时随地畅享阅读!
前边我们利用NAS部署了个人的导航页、小说站、云笔记,今天,我们再看看怎么部署一个个人的在线书库。 相信很多朋友都在自己的电脑中收藏了大量的PDF、MOBI等格式的电子书籍,但是一旦换了一台设备,要么是无法翻阅,要么…...
电子纸墨水屏的现实应用场景
电子纸挺好个东西,大家都把注意力集中在商超场景 其实还有更多有趣的场景方案可用,价值也不小,比如: 一、仓库场景 通过亮灯拣选,提高仓库作业效率 二、仓库循环使用标签 做NFC类发卡式应用,替代传统纸…...
常量const、引用、指针的大杂烩
文章目录1 普通引用1.1 对普通值的普通引用1.2 对常量值的普通引用1.3 对普通指针的普通引用1.4 对常量指针的普通引用1.5 对指针常量的普通引用1.6 对指向常量的指针常量的普通引用2 常量引用2.1 对普通值的常量引用2.2 对常量值的常量引用2.3 对普通指针的常量引用2.4 对常量…...
宝塔搭建实战php开源likeadmin通用管理移动端uniapp源码(四)
大家好啊,我是测评君,欢迎来到web测评。 上一期给大家分享了pc端的部署方式,今天来给大家分享uniapp端在本地搭建,与打包发布到宝塔的方法。感兴趣的朋友可以自行下载学习。 技术架构 vscode node16 vue3 uniapp vite types…...
Hive的分区表与分桶表内部表外部表
文章目录1 Hive分区表1.1 Hive分区表的概念?1.1.1 分区表注意事项1.2 分区表物理存储结构1.3 分区表使用场景1.4 静态分区表是什么?1.4.1 静态分区表案例1.4.2 分区表练习一1.4.3 分区操作1.5 动态分区表是什么?1.5.1 动态态分区表案例&#…...
和数集团打造《神念无界:源起山海》,诠释链游领域创新与责任
首先,根据网上资料显示,一部《传奇》,二十年热血依旧。 《传奇》所缔造的成绩,承载的是多少人的青春回忆,《传奇》无疑已经在游戏史上写下了浓墨重彩的一笔。 相比《传奇》及背后的研发运营公司娱美德名声大噪&#x…...
小白入门模拟IC设计,如何快速学习?
众所周知,模拟电路很难学。以最普遍的晶体管来说,我们分析它的时候必须首先分析直流偏置,其次在分析交流输出电压。可以说,确定工作点就是一项相当麻烦的工作(实际中来说),晶体管的参数多、参数…...
51单片机——中断系统之外部中断实验,小白讲解,相互学习
中断介绍 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的,中断功能的存在,很大程度上提高了单片机处理外部或内部事件的能力。它也是单片机最重要的功能之一,是我们学些单片机必须要掌握的。 为了更容易的理解中断概念&…...
如何设计一个秒杀系统
秒杀系统要如何设计? 前言 高并发下如何设计秒杀系统?这是一个高频面试题。这个问题看似简单,但是里面的水很深,它考查的是高并发场景下,从前端到后端多方面的知识。 秒杀一般出现在商城的促销活动中,指定…...
厄瓜多尔公司注册方案
简介: 经济概况与商机 厄瓜多尔是世界上第74大国家,是南美西部国家,与哥伦比亚,秘鲁和太平洋接壤。厄瓜多尔地处世界中心,地理位置优越,地理位置优越-赤道线零纬度,使其成为通往太平洋的理想枢…...
安全渗透环境准备(工具下载)
数据来源 01 一些VM虚拟机的安装 攻击机kali: kali官网 渗透测试工具Kali Linux安装与使用 kali汉化 虚拟机网络建议设置成NAT模式,桥接有时不稳定。 靶机OWASP_Broken_Web_Apps: 迅雷下载 网盘下载 安装教程 开机之后需要登录&am…...
118.(leaflet篇)leaflet空间判断-点与geojson面图层的空间关系(turf实现)
听老人家说:多看美女会长寿 地图之家总目录(订阅之前建议先查看该博客) 文章末尾处提供保证可运行完整代码包,运行如有问题,可“私信”博主。 效果如下所示: 下面献上完整代码,代码重要位置会做相应解释 <!DOCTYPE html> <html>...
目标检测与目标跟踪算法技术汇总
现如今chatgpt的爆火,我也使用了一段时间,问了许多关于人工智能技术的问题,基本是它能够回答了大部分的原理的,至于其人工智能涉及到的算法以及网络,考虑到也没有图,可能在给出这类回答上,是不太…...
b/s网站开发/焊工培训ppt课件
上节探讨了Spring IOC容器中getBean方法,下面我们将自行编写测试用例,深入跟踪分析bean对象创建过程。 测试环境创建 测试示例代码如下: package org.springframework.context.mytests;import org.junit.Test; import org.springframework.co…...
佛山网站建设运营/网站模板源码
1.Add a login user and group for mysqld‘ to run as:为‘mysqld’增添一个登陆用户和组shell groupadd mysqlshell useradd -g mysql mysql 2.解压shell gunzip mysql-5.0.15.tar.gz tar -xvf -shell cd mysql-5.0.15 3.Configure the release and compile everything:配置…...
wordpress 注册/百度置顶广告多少钱
本文由 网易云 发布。 作者:冯宇 本篇文章仅限内部分享,如需转载,请联系网易获取授权。 本文是Impala源码笔记的第一篇,本文主要根据源代码学习一下statestored模块的实现,众所周知,Impala包含三个模块&am…...
采购系统erp软件/安卓优化大师清理
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼今天的这个话题是由一个学妹在QQ上问我的,请看下图:对于学计算机软件类专业的学生,或许都会遇到这么一个问题,而我也不止一次被问及到这么一个问题了,那么,今天…...
更改wordpress网站的url/网页制作代码大全
2. 面向对象三大特性之封装 面向对象三大特征:封装,继承,多态封装就是将一些细节信息隐藏起来,对外界不可见 方法就是一种封装private关键字也是一种封装 2.1 private和this关键字 private关键字(私有化)…...
wordpress自动化框架/域名查询网站信息
单片机(Microcontroller)是一种集成了处理器、存储器、输入输出接口等多种功能于一体的单芯片微控制器,广泛应用于电子产品、嵌入式系统、智能家居等领域。目前市场上主流的单片机品牌有八大类,分别是Atmel AVR、STM32、PIC、Ardu…...