基于SpringBoot的器材管理系统

news2025/3/14 10:30:36

介绍

有一家实验室,里面有100台实验设备,5个实验员。每个设备使用之前需要对设备进行检查,现在存在以下痛点: 实验员检查器材的时候,发现器材不见了,他们都不知道器材是坏了还是其他实验员用到其他器材。非常不方便。希望开发一套软件进行器材的借,还,查,报废等功能。现在需要开发一款实验室器材管理系统,帮助管理员去管理器材。

功能描述

  1. 提供实验员进行器材的借、还、查。

  1. 提供实验室管理员:器材信息修改,新增,报废。

  1. 提供实验室管理员器材借还单、报废单的查询。

功能模块列

模块编号

名称

模块功能描述

101

登录

管理员和普通用户登录系统

102

器材分页展示

分页展示器材信息,每页5条记录

103

器材新增

管理员新增器材

104

器材更新

管理员对器材的信息进行修改

105

器材报废

管理员对器材进行报废处理

106

器材借还记录查看

管理员对器材借还记录进行查看

107

器材报废记录查看

管理员对器材报废记录进行查看

108

器材查找

根据输入的条件进行器材查询

109

器材归还

点击归还,填写表单进行器材的归还

110

器材借用

点击某个器材的详情对其进行借用

111

器材详情查看

用户点击某个器材查看详情

112

用户注销账号

用户注销账号后退出到登录页

模块展示

代码展示

@RequestMapping("/eqps2")
    public String findAllByCondition2(Model model,String eqpName,String eid,
                                      @RequestParam(value = "pageNow",required = false,defaultValue = "1") Integer pageNow,
                                      @RequestParam(value = "pageSize",required = false,defaultValue = "5") Integer pageSize) throws ParseException {
        String orderBy = "id" + " asc";
        PageHelper.startPage(pageNow,pageSize,orderBy);
        List<Equipment> eqps = equipmentMapper.findEqpByNameAndId(eqpName,eid);
        for(Equipment e:eqps){
            if(e.getStatus()==1)
                e.setStatusName("闲置");
            else if(e.getStatus()==2)
                e.setStatusName("借出");
            else
                e.setStatusName("报废");
        }
        PageInfo<Equipment> pageInfo=new PageInfo<>(eqps);
        if(pageNow==1){
            pageInfo.setPrePage(1);
        }
        if(pageInfo.getNextPage()==0){
            pageInfo.setNextPage(pageInfo.getPrePage()+1);
        }
        model.addAttribute("pageInfo",pageInfo);
        model.addAttribute("eqps",eqps);
        model.addAttribute("flag",5);
        model.addAttribute("queryFlag",1);
        model.addAttribute("eid",eid);
        model.addAttribute("eqpName",eqpName);
        return "welcome";
    }

    @RequestMapping("/eqps_b")
    public String findAll_b(Model model,
                            @RequestParam(value = "pageNow",required = false,defaultValue = "1") Integer pageNow,
                            @RequestParam(value = "pageSize",required = false,defaultValue = "5") Integer pageSize) throws ParseException {
        String orderBy = "id" + " asc";
        PageHelper.startPage(pageNow,pageSize,orderBy);
        List<Equipment> eqps = equipmentMapper.findAll();

        for(Equipment eqp:eqps){
            if(eqp.getStatus()==1)
                eqp.setStatusName("闲置");
            else if(eqp.getStatus()==2)
                eqp.setStatusName("借出");
            else
                eqp.setStatusName("报废");
        }

        PageInfo<Equipment> pageInfo=new PageInfo<>(eqps);
        if(pageNow==1){
            pageInfo.setPrePage(1);
        }
        if(pageInfo.getNextPage()==0){
            pageInfo.setNextPage(pageInfo.getPrePage()+1);
        }
        model.addAttribute("pageInfo",pageInfo);
        model.addAttribute("eqps",eqps);
        model.addAttribute("flag",5);
        model.addAttribute("queryFlag",0);
        return "welcome";
    }

    @RequestMapping("/eqps")
    public String findAll(Model model,
                          @RequestParam(value = "pageNow",required = false,defaultValue = "1") Integer pageNow,
                          @RequestParam(value = "pageSize",required = false,defaultValue = "5") Integer pageSize) throws ParseException {
        String orderBy = "id" + " asc";
        PageHelper.startPage(pageNow,pageSize,orderBy);
        List<Equipment> eqps = equipmentMapper.findAll();

        for(Equipment eqp:eqps){
            if(eqp.getStatus()==1)
                eqp.setStatusName("闲置");
            else if(eqp.getStatus()==2)
                eqp.setStatusName("借出");
            else
                eqp.setStatusName("报废");
        }

        PageInfo<Equipment> pageInfo=new PageInfo<>(eqps);
        if(pageNow==1){
            pageInfo.setPrePage(1);
        }
        if(pageInfo.getNextPage()==0){
            pageInfo.setNextPage(pageInfo.getPrePage()+1);
        }
        model.addAttribute("pageInfo",pageInfo);
        model.addAttribute("eqps",eqps);
        model.addAttribute("flag",1);
        model.addAttribute("queryFlag",0);
        return "welcome";
    }

代码获取链接

点击获取

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

传奇GOM引擎配置PAK密码补丁教程

因为我很少接触GOM引擎&#xff0c;所有很晚才知道PAK密码的事情&#xff0c;以前经常在群里或者QQ上有人问站长&#xff0c;说补丁有PAK密码怎么办&#xff0c;我起初不在意&#xff0c;限制发现是一个大问题&#xff0c;好吧&#xff0c;今天借助这篇文章&#xff0c;分享一下…

Python获取公众号(pc客户端)数据,使用Fiddler抓包工具

前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! 今天来教大家如何使用Fiddler抓包工具&#xff0c;获取公众号&#xff08;PC客户端&#xff09;的数据。 Fiddler是一个http协议调试代理工具&#xff0c;它能够记录并检查所有你的电脑和互联网之间的http通讯&#xff0c;…

Spring JdbcTemplate 和 事务

JdbcTemplate概述 JdbcTemplate是spring框架中提供的一个对象&#xff0c;是对原始繁琐的Jdbc API对象的简单封装。spring框架为我们提供了很多的操作模板类。例如&#xff1a;操作关系型数据的JdbcTemplate和&#xff0c;操作nosql数据库的RedisTemplate&#xff0c;操作消息…

UDP协议

文章目录一、前沿知识应用层传输层二、UDP协议一、前沿知识 应用层 应用层&#xff1a;描述了应用程序如何理解和使用网络中的通信数据。 我们程序员在应用层的主要工作是自定义协议&#xff0c;因为下面四层都在系统内核/驱动程序/硬件中已经实现好了&#xff0c;不能去修改…

【数据集】中国各类水文专业常用数据集合集

1 水文气象数据 1.1 中国站点尺度天然径流量估算数据集&#xff08;1961&#xff5e;2018年&#xff09; 论文&#xff1a; J2022-High-quality reconstruction of China’s natural streamflow-缪驰远&#xff08;北京师范大学地理科学学部&#xff09; 研究内容&#xff1a…

TLV73312PQDRVRQ1稳压器TPS622314TDRYRQ1应用原理图

一、TLV73312PQDRVRQ1低压差稳压器 1.2V 300MATLV733 300mA 低压差稳压器是有 300mA 拉电流能力的超小型、低静态电流 LDO&#xff0c;具有良好的线路和负载瞬态性能。这些器件具有 1% 的典型精度。TLV733 系列设计具有先进的无电容器结构&#xff0c;确保无需输入或输出电容器…

thinkPHP6接入workman

上篇介绍了workman实现websocket功能&#xff08;链接&#xff1a;https://blog.csdn.net/weixin_38155824/article/details/128952037&#xff09; 这篇就介绍如何在thinkPHP6项目中接入workman。 利用TP6的自定义命令开启websocket服务 查看TP6手册&#xff1a;命令行>自…

Oracle Dataguard(主库为 Oracle rac 集群)配置教程(01)—— dataguard 服务器安装 Oracle 软件

Oracle Dataguard&#xff08;主库为 Oracle rac 集群&#xff09;配置教程&#xff08;01&#xff09;—— dataguard 服务器安装 Oracle 软件 / 本专栏详细讲解 Oracle Dataguard&#xff08;Oracle 版本为11g&#xff0c;主库为双节点 Oracle rac 集群&#xff09;的配置过程…

共享模型之无锁(二)

1.原子基本类型 1>.J.U.C并发包提供了多个原子基本类型: AtomicBoolean AtomicInteger AtomicLong ...2>.以AtomicInteger为例: public class TestAtomicIntegerDemo01 {public static void main(String[] args) {//原子整型类AtomicInteger i new AtomicInteger(0);…

linux入门---基础指令(上)

这里写目录标题前言ls指令pwd指令cd指令touch指令mkdirrmdirrmman指令cp指令mv指令前言 我们平时使用电脑主要是通过鼠标键盘以及操作系统中自带的图形来对电脑执行相应的命令&#xff0c;比如说我想打开D盘中的cctalk这个文件&#xff1a; 我就可以先用鼠标左键单击这个文件…

负载均衡的方式

在业务初期&#xff0c;我们一般会先使用单台服务器对外提供服务。随着业务流量越来越大&#xff0c;单台服务器无论如何优化&#xff0c;无论采用多好的硬件&#xff0c;总会有性能天花板&#xff0c;当单服务器的性能无法满足业务需求时&#xff0c;就需要把多台服务器组成集…

五岳科技与亚马逊云科技,助力中国产品实现全球品牌力提升

随着DTC模式实践在全球跨境电商市场取得成功&#xff0c;越来越多中国品牌走出国门&#xff0c;走向世界。而文化差异、语言隔阂、信息差等始终是行业中的共同难题&#xff0c;如何提高竞争壁垒与解决数据困境成为企业的共同需求。 作为一家致力于用AI技术赋能传统行业升级以…

将群晖NAS变为本地盘

本文介绍一个工具&#xff0c;可以在 Windows 系统下将群晖NAS的目录变为本地盘&#xff0c;好处是在外部访问的时候&#xff0c;能够大大改善体验。可以用本地的应用程序直接打开&#xff0c;速度依赖网络带宽&#xff0c;正常情况下&#xff0c;看视频是没有问题的。当然&…

MySQL入门篇-Xtrabackup详细介绍

Xtrabackup简介 MySQL冷备、mysqldump、MySQL热拷贝都无法实现对数据库进行增量备份。在实际生产环境中增量备份是非常实用的&#xff0c;如果数据大于50G或100G&#xff0c;存储空间足够的情况下&#xff0c;可以每天进行完整备份&#xff0c;如果每天产生的数据量较大&#…

Vue3 企业级优雅实战 - 组件库框架 - 11 组件库的打包构建和发布

回顾第一篇文章中谈到的组件库的几个方面&#xff0c;只剩下最后的、也是最重要的组件库的打包构建、本地发布、远程发布了。 1 组件库构建 组件库的入口是 packages/yyg-demo-ui&#xff0c;构建组件库有两个步骤&#xff1a; 添加 TypeScript 的配置文件&#xff1a; tsco…

百趣代谢组学资讯:槟榔的基因组为雌雄同株植物的性别决定提供见解

文章标题&#xff1a;The genome of Areca catechu provides insights into sex determination of monoecious plants 发表期刊&#xff1a;New Phytologist 影响因子&#xff1a;10.323 作者单位&#xff1a;海南大学 百趣生物提供服务&#xff1a;植物激素高通量靶标定…

怎么查看自己的电脑IP地址?

作为一个互联网冲浪侠&#xff0c;你应该对IP地址并不陌生&#xff1a;访问网站和网络服务器知道你的IP地址&#xff1b;发送的电子邮件头包含你的IP地址。如果有人想从IP地址追踪到你的物理地址和身份&#xff0c;是有可能的。 IP地址代表互联网协议地址。它是一个特殊的号码…

linux高级命令系列一

重定向命令学习目标能够使用重定向命令将终端显示内容重定向到文件1. 重定向命令的介绍重定向也称为输出重定向&#xff0c;把在终端执行命令的结果保存到目标文件。2. 重定向命令的使用命令说明>如果文件存在会覆盖原有文件内容&#xff0c;相当于文件操作中的‘w’模式>…

C/C++:预处理(下)

目录 一.回顾程序的编译链接过程 二. 预处理之预定义#define 1.#define定义的标识符 2.#define定义的宏 3.带副作用的表达式作为宏实参 4.两个经典的宏 5.#define使用的一些注意事项小结 6.宏与函数的比较 7.#undef 附&#xff1a;关于#define的三个冷知识 三. 条件…

Android 14 首个开发者预览版到来

作者 / Dave Burke, VP of Engineering让 Android 在数十亿用户的手中良好运行&#xff0c;是我们、Android 设备制造商&#xff0c;以及开发者社区的一致追求。今天&#xff0c;我们为大家带来 Android 14 的第一个开发者预览版。大家针对预览版提出的反馈具有重要意义&#x…