> 文档中心 > 基于SSH的实验室设备管理信息系统

基于SSH的实验室设备管理信息系统


项目背景

当今时代,信息时代的发展非常迅速。学校教育教学快速发展离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境.计算机的最大好处在于利用它能够进行信息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。因此,通过实验室设备管理系统的开发,利用电脑快速的数据处理能和管理能力,来对学校的全部实验室设备进行统一信息化管理非常必须要。通过分析,本次系统的开发主要是针对实验室设备管理进行开发,主要使用用JAVA来进行代码的实现和Mysql进行数据库的设计。

功能设计

功能模块

在这里插入图片描述

角色模块权限介绍

超级管理员

通知模块:
该模块是实验管理员发布通知公告的地方,具体包括新增通知公告、删除通知公告。
预约和借用模块:
这是两个模块,而其设计思想大致相同,借用记录管理模块主要是对借用的设备仪器进行记录,其包括借用人、借用时间、归还时间和审核。借用设备需要管理员的审核,管理员审核通过方可借出,否则不能借出。实验室预约记录管理模块面向教师。教师登录系统后,在该实验室预约模块对实验室的信息进行查询和预约,然后通过管理员的确认从而实现对实验室的使用,当实验室已经被预约后,处于该实验室的设备变为不可借用状态。
(1)查看当前的实验室预约和设备借用,并进行审核,审核通过后,设备和实验室的状态变为借出状态
(2)设备和实验室使用完毕后,进行归还,归还确认后。设备和实验变为可借用状态。
实验室模块:
该模块的主要内容包括两个部分即实验室的添加和实验室信息管理。实验室信息管理对实验室的情况进行说明,并在界面上显示出该实验室是否被预约或使用。方便教师用户对实验室预约
(1)显示当前所有实验室,以及实验所处状态
(2)增、删、改实验室信息 包括:实验室名称、负责人、具体地点、实验室说明
设备信息模块
该模块面向管理员,包括五个部分:技术参数管理、运行数据管理、设备位置管理、设备用途管理以及电子文档管理。
技术参数管理,对实验室新购置设备的技术参数进行查看、新增、修改和删除,设备技术参数包括设备型号、设备价格、设备制造商、、设备序列号
运行数据管理,对实验室新购置设备的运行数据进行增、删、查、该等操作,设备的运行数据具体包括服务开始时间、供应商合同(合同为doc文件,在数据导出excel时不显示)
设备位置管理,对实验室新购置设备的所处位置位置数据进行添加、修改和删除操作。位置(所在实验室名称)
设备用途管理,对实验设备的用途数据进行管理,在使用设备时,只要通过设备用途说明,即可知道该设备是否是自己所需的设备。(相当于一个添加一个备注)
电子文档管理,在该模块中,可以添加、修改、删除、查看的设备的电子文档,具体内容包括设备图纸、安装说明书、设备相关图片等。电子文档(格式为doc文件,和供应商合同一样)
用户模块:
用户注册审核功能、对学生和教师信息修改的功能、用户删除功、用户查找功能。
用户在登陆界面进行注册,填入系统要求的信息。该信息在这个模块显示,管理员对用户的信息进行查看,如果符合要求则审核通过,用户方可以登陆该系统进行操作。否则用户注册失败,无法登陆该系统进行操作。当学生毕业后或者老师离校后,可以通过该模块删除该用户。
设备维修模块:
在该模块中,可以根据已经添加到系统中的设备信息,将设备进行维修登记
(1)设备状态变为维修状态,无法进行借用操作
(2)已经维修好的设备,恢复可借用
设备数据统计模块:
在该模块中,支持设备数据的统计功能,能根据数据生成相应的报表,支持数据的输出和打印。具体为:
网页中的数据直接生成EXCL表格。
数据包括:
设备数据、维修数据、设备借用数据

功能截图

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

在这里插入图片描述

相关代码

数据库配置

jdbc.driverClassName=com.mysql.jdbc.Driverjdbc.url = jdbc:mysql://localhost:3306/laboratory?useUnicode=true&characterEncoding=utf-8jdbc.username = rootjdbc.password = 123456jdbc.database=cms### direct log messages to stdout ###log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### direct messages to file hibernate.log ####log4j.appender.file=org.apache.log4j.FileAppender#log4j.appender.file.File=hibernate.log#log4j.appender.file.layout=org.apache.log4j.PatternLayout#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n### set log levels - for more verbose logging change 'info' to 'debug' ###log4j.rootLogger=error, stdout#log4j.logger.org.hibernate=info#log4j.logger.org.hibernate=debug### log HQL query parser activity#log4j.logger.org.hibernate.hql.ast.AST=debug### log just the SQLlog4j.logger.org.hibernate.SQL=error### log JDBC bind parameters ####log4j.logger.org.hibernate.type=info#log4j.logger.org.hibernate.type=debug### log schema export/update ####log4j.logger.org.hibernate.tool.hbm2ddl=debug### log HQL parse trees#log4j.logger.org.hibernate.hql=debug### log cache activity ####log4j.logger.org.hibernate.cache=debug### log transaction activity#log4j.logger.org.hibernate.transaction=debug### log JDBC resource acquisition#log4j.logger.org.hibernate.jdbc=debug### enable the following line if you want to track down connection ###### leakages when using DriverManagerConnectionProvider ####log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace

控制层(Action)

package com.xznu.edu.leave.action;/** * 和登陆有关的都在这里 */import com.opensymphony.xwork2.ActionContext;import com.opensymphony.xwork2.ActionSupport;import com.xznu.edu.leave.model.Role;import com.xznu.edu.leave.model.User;import com.xznu.edu.leave.service.RoleService;import com.xznu.edu.leave.service.UserService;import com.xznu.edu.leave.utils.JsonUtils;import com.xznu.edu.leave.utils.UserUtils;import org.apache.commons.collections.map.HashedMap;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.context.annotation.Scope;import org.springframework.stereotype.Controller;import java.io.IOException;import java.util.HashMap;import java.util.Map;@Controller("loginAction")@Scope("prototype")public class LoginAction extends ActionSupport {    @Autowired    private UserService userService;    @Autowired    private RoleService roleService;    private User user;    private Map<String, Object> map = new HashMap();    public User getUser() { return user;    }    public void setUser(User user) { this.user = user;    }    public UserService getUserService() { return userService;    }    public void setUserService(UserService userService) { this.userService = userService;    }    /** * 用户登陆 * @return */public void index() throws IOException {User user1 = userService.getUser(user); if (user1 != null){     if (user1.getIsSh() == 1){  if (user1.getRole().getEnName().equals("admin")){      ActionContext.getContext().getSession().put("user", user1);  }  if (user1.getRole().getEnName().equals("js")){      ActionContext.getContext().getSession().put("user1", user1);  }  if (user1.getRole().getEnName().equals("xs")){      ActionContext.getContext().getSession().put("user2", user1);  }  map.put("flag", 1);  map.put("url", "login_indexs.do");  map.put("id", user1.getId());  JsonUtils.toJson(map);     } else {  map.put("flag", 2);  JsonUtils.toJson(map);     } } else {     map.put("flag", 3);     JsonUtils.toJson(map); }    }    public String indexs() throws IOException { User u = UserUtils.getUser(); if (u != null){     ActionContext.getContext().put("user", u);     String ss = u.getRole().getEnName();     ActionContext.getContext().put("role", u.getRole().getEnName()); } return SUCCESS;    }//登陆页面public String login() { return SUCCESS;}   //退出public String tuichu() {ActionContext ac = ActionContext.getContext();Map session = ac.getSession();session.remove("userName");session.remove("userId");return "login";}}

业务层(Service)

package com.xznu.edu.leave.service;import com.xznu.edu.leave.model.User;import com.xznu.edu.leave.utils.Pager;import org.apache.shiro.SecurityUtils;import org.apache.shiro.subject.Subject;import java.util.List;public interface UserService extends BaseService<User> {    User getUser(User user);    Pager<User> getList(User user);    List<User> getListAdmin();    User findById(Integer id);}

控制层(Dao)

package com.xznu.edu.leave.dao;import com.xznu.edu.leave.base.dao.BaseDao;import com.xznu.edu.leave.model.User;import com.xznu.edu.leave.utils.Pager;import java.util.List;public interface UserDao extends BaseDao<User> {    User getUser(User user);    Pager<User> getList(User user);    User findById(Integer id);    List<User> getListAdmin();}

郁金香导航