基于JAVA+SpringBoot+Vue+ElementUI中学化学实验室耗材管理系统
一、项目背景介绍:
当前,中学的化学实验教学越来越重视,为了让学生对化学有更深刻的了解,必须要进行大量的化学实验。然而,由于耗材数量众多,很难有效地管理。因此,研发一个中学化学实验室耗材管理系统显得十分必要。 这个系统可以帮助学校有效地管理实验室耗材的数量,从而提高实验的效率和质量。它可以实现对耗材的自动化管理,包括耗材的入库、出库、分配和回收。同时,它还可以管理预约和使用历史记录,方便管理人员对耗材的使用情况进行监控和评估。 这个系统的开发将使中学的化学实验教学更加高效、科学,更好地满足学生的需求。
二、项目技术简介:
- 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);}
复制代码
七、项目总结:
当前,中学化学实验室耗材管理系统是一个有前途和潜力的项目,旨在解决中学化学实验室耗材管理问题。 该系统分为管理员模块和用户模块,管理员模块负责系统用户管理、管理员用户登录、用户账号分配、用户预约管理、常规器材管理、非常规耗材管理、常规器材分类管理、非常规耗材分类分类管理、采购信息管理(入库出库)、废料回收管理等功能;用户模块提供用户登录、常规器材预约、非常规耗材申请、历史记录查询等功能。 本项目通过使用高效的数据存储结构和算法,以及稳健的架构设计,来保证系统的可靠性和灵活性。通过详细的测试,我们可以确保系统能够满足用户的需求,并且满足软件质量标准。
作者:鼓楼丶
链接:https://juejin.cn/post/7199954612093960248
基于JAVA+SpringBoot+Vue+ElementUI中学化学实验室耗材管理系统相关推荐
- 【开源】基于Java+SpringBoot+Vue+ElementUI的超市管理系统
目录 系统背景 系统总体设计 运行环境 技术选型 系统架构 系统用例 系统详细设计 系统功能截图 首页统计 RBAC权限管理 商品管理 订单管理 销量统计 售后订单 收银系统 商品采购 供应商管理 采 ...
- 【开源】基于Java+SpringBoot+Vue+ElementUI的美发店会员管理系统
目录 系统背景 系统总体设计 运行环境 技术选型 系统架构 系统用例 系统详细设计 系统功能截图 首页统计 RBAC权限管理 商品管理 订单管理 销量统计 售后订单 收银系统 供应商管理 商品采购 采 ...
- 基于java springboot vue elementui超市管理系统源码
开发环境及工具: 大等于jdk1.8,大于mysql5.5,idea(eclipse),vscode(webstorm) 技术说明: springboot mybatis vue elementui ...
- 基于Java+SpringBoot+vue+elementui的校园文具商城系统详细设计和实现
博主介绍:✌公司项目主程.全网粉丝10W+,csdn特邀作者.博客专家.CSDN新星计划导师.java领域优质创作者,CSDN博客之星TOP100.掘金/华为云/阿里云/InfoQ等平台优质作者.专 ...
- 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的排课管理系统
排课管理系统 一个排课管理.统计系统,可批量排课.导出课表. 排课 导出 报表统计 技术栈 前端 vue 2.6 vue-router 3.4 vuex 3.5 axios 0.19 element- ...
- 基于JAVA+SpringBoot+Vue+Mybatis+MYSQL的大学生健康档案管理系统
介绍 大学生健康档案管理系统,体检表,健康文档,体检数据图标展示等进行管理,以及权限管理,指定不同科室医生进行不同的操作. 软件架构 软件架构说明 springboot mysql mybatis j ...
- java计算机毕业设计基于springboot+vue+elementUI的口腔管理平台管理系统(前后端分离)
项目介绍 口腔卫生是关系民生的一个重要问题.口腔健康会直接影响全身的健康,口腔基本常见的有龋齿,牙周炎等问题,而且人类的牙齿只有2次更换周期,一旦牙齿彻底完成更换终生将不再更换,所以越来越多的人开始关 ...
- 基于javaweb的电影院会员管理系统(java+springboot+vue+element-ui+mysql)
基于javaweb的电影院会员管理系统(java+springboot+vue+element-ui+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:e ...
- 基于javaweb的调查问卷管理系统(java+springboot+vue+elementui+mysql)
基于javaweb的调查问卷管理系统(java+springboot+vue+elementui+mysql) 运行环境 Java≥8.MySQL≥5.7.Node.js≥10 开发工具 后端:ecl ...
最新文章
- 内存分配器memblock【转】
- [转] HOWTO:使ASP.NET网站Forms验证可以指定多个登录页面
- 网站应分析哪些方面来提升网站优化的效果呢?
- python读excel
- C——结构体中的函数指针
- Skype for Business 2015全新部署_07.前端安装02
- html注册页面代码实现案例,H5制作一个注册页面的代码实例
- MacBook M1安装Git与Git可视化工具---kalrry
- ActiveMQ专题2 —— ActiveMQ下载和安装(Linux版)
- Go 开发关键技术指南 | 带着服务器编程金刚经走进 2020 年
- cad缩放_CAD中的AL是什么指令? 怎么操作哦
- 泛微OA-测试机更改sysadmin密码为1
- 用Matlab把SMAP vegetation optical depth (VOD)数据转换成带投影信息EASE GRID2的tif文件
- python单核运行_python下多核,单核CPU对于并行,并发执行效率的对比-Go语言中文社区...
- 懂的android基础如何面试月薪过万
- centos 7.6—— Apache网页压缩——网页缓存
- CSR867x — TWS模式的应用笔记【转载】
- DVD管理系统修改版
- 地图数据的存储探索(GIS)
- PPT怎么添加到公众号文章
热门文章
- scrapy研究探索(二)——爬w3school.com.cn
- 【CCF】NOI2009试题下载
- 2021年全球复合半导体收入大约1083.1百万美元,预计2028年达到1580.8百万美元
- ReactiveX 操作符
- win10安装docker及docker安装镜像
- iOS开发面试知识整理 – OC基础 (二)
- Yolov5:强大到你难以想象──新冠疫情下的口罩检测
- 神经网络主要类型及其应用指南
- GeoServer+mapbox发布矢量瓦片(一):创建美国区域显示
- matlab显示tiff为全白_请教Matlab图片如何转换成TIFF