计算机毕设项目 - SSH的实验室设备管理信息系统

项目背景

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

功能设计

功能模块图

在这里插入图片描述

角色模块权限介绍
超级管理员

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

功能截图

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

在这里插入图片描述

相关代码

数据库配置

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/laboratory?useUnicode=true&characterEncoding=utf-8
jdbc.username = root
jdbc.password = 123456
jdbc.database=cms

### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.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 SQL
log4j.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();


    }

项目获取:

猜你喜欢

转载自blog.csdn.net/WEB_DC/article/details/134988739