你的位置:首页 > 信息动态 > 新闻中心
信息动态
联系我们

基于SSM实现公司内部培训系统的开发

2021/12/1 9:02:53

基目编号:BS-XX-078

运行环境:

开发工具:IDEA  / ECLIPSE

数据库:MYSQL5.7

应用服务器:TOMCAT8.5

JDK:1.8

后台开发技术:SSM框架+activiti+POI

前端开发技术:AdminUI+Jquery+Echarts

系统说明:

本系统基于SSM框架开发而成,利用POI组件实现数据的导入导出功能,使用Activiti实现审批流程的管理和处理,前端使用AdminUI进行页面设计,基于Jquery+Ajax 进行数据的交互,使用Echarts进行图形报表的开发设计。整个系统界面美观大方,功能强大,比较适合做毕业设计项目使用。

本系统用户共分为六类:

超级管理员:可以操作管理所有的信息模块

管理员:也是项目负责人,可以进行相应的信息管理,并可提交培训方案

部门负责人:主要进行培训方案的审批

部门管理部:主要进行培训方案的审批

主管主任:主要进行培训方案的审批

老师:可以查看自己所带班级情况、课表信息、学员信息及考试分数情况

基本的审批流程:

下面展示一下各模块功能详情:

登陆页面:

系统主界面:

主界面左边是系统的功能菜单,右边主界面展示系统的仪表盘数据统计信息,采用Echarts进行图形报表处理显示

人员信息管理-学生管理

学生管理模块主要可以实现学生信息的添加、编辑、查询,导入导出的相关操作,并可查看学生的详情信息

人员信息管理-培训师管理

培训师管理模块主要可以实现培训师信息的添加、编辑、查询,导入导出,离职,恢复入职,初始化密码的相关操作,并可查看培训师的详情信息

人员信息管理-管理员管理

管理员管理主要实现对管理员信息的添加编辑和初始化密码操作

课程管理-课程信息管理

课程信息管理主要实现课程信息的添加、编辑、搜索,导出操作

课程管理-课表管理

课表管理主要实现课程课表信息的新增、编辑、删除、查询、搜索、批量删除、导出的相关功能

资源管理-培训方案管理

培训方案管理模块主要实现方案的新增、编辑、删除,上传方案文档,下载方案文档,提交方案。己审批过的方案不能编辑和删除。

资源管理-设备管理

设备管理模块主要实现设备的增删改查以及导入导出的相关操作

资源管理-教材管理

教材管理模块主要实现教材的增删改查以及导入导出的相关操作

班级管理

班级管理模块主要实现班级的增删改查以及导入导出的相关操作。培训结束可以实现结课操作。可以在班级中选择添加学生信息。查看班级详情等

成绩管理

成绩管理模块主要实现学生成绩的打分和查看操作

日志列表

主要查看用户的登陆日志信息

系统公告

以审批人员的身份进入系统

完成培训方案的审批操作,审批流程必须按照设计的审主流程来走,否则无法完成审批的相关操作。

查看系统公告

以上是本系统部分功能的相关展示操作。整个系统的功能是比较完整的,界面设置简洁大方,比较适合做毕业设计或课程设计使用。

package cn.edu.qqhru.train.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import cn.edu.qqhru.train.mapper.AdminMapper;
import cn.edu.qqhru.train.pojo.Admin;
import cn.edu.qqhru.train.pojo.AdminExample;
import cn.edu.qqhru.train.service.AdminService;
import cn.edu.qqhru.train.utils.MD5Utils;
import cn.edu.qqhru.train.utils.PageBean;

@Service("adminService")
public class AdminServiceImpl implements AdminService{
    @Autowired
    private AdminMapper adminMapper;
    
    private AdminExample adminExample;
    
    @Override
    public List<Admin> getAdminList(){
        adminExample = new AdminExample();
        adminExample.createCriteria().andAdminIdIsNotNull();
        List<Admin> adminList = adminMapper.selectByExample(adminExample);
        return adminList;
    }
    
    @Override
    public PageBean<Admin> getAdminListPageBean(int page, int rows) {
        PageBean<Admin> adminListPageBean = new PageBean<Admin>();
        // 设置页数,和显示多少条记录
        PageHelper.startPage(page, rows);
        adminExample = new AdminExample();
        adminExample.createCriteria().andAdminIdIsNotNull();
        List<Admin> adminList = adminMapper.selectByExample(adminExample);
        PageInfo<Admin> pageInfo = new PageInfo<Admin>(adminList);
        long totalPage = pageInfo.getPages();
        int pageNum = pageInfo.getPageNum();
        adminListPageBean.setPage(pageNum);
        adminListPageBean.setTotalPage(totalPage);
        adminListPageBean.setList(adminList);
        return adminListPageBean;
    }
    
    @Override
    public PageBean<Admin> getAdminListByPageAndCondition(String condition, int page, int rows) {
        PageBean<Admin> adminListPageBean = new PageBean<Admin>();
        // 设置页数,和显示多少条记录
        PageHelper.startPage(page, rows);
        adminExample = new AdminExample();
        adminExample.createCriteria().andAdminIdIsNotNull().andLoginnameEqualTo(condition);
        List<Admin> adminList = adminMapper.selectByExample(adminExample);
        PageInfo<Admin> pageInfo = new PageInfo<Admin>(adminList);
        long totalPage = pageInfo.getPages();
        int pageNum = pageInfo.getPageNum();
        adminListPageBean.setPage(pageNum);
        adminListPageBean.setTotalPage(totalPage);
        adminListPageBean.setList(adminList);
        return adminListPageBean;
    }

    @Override
    public boolean addAdmin(Admin admin) {
        admin.setPassword(admin.getPassword());
        int num = adminMapper.insert(admin);
        if(num == 1){
            return true;
        }
        return false;
    }

    @Override
    public Admin getAdmin(Integer id) {
        Admin admin = adminMapper.selectByPrimaryKey(id);
        return admin;
    }

    @Override
    public boolean updateAdmin(Admin admin){
        int num = adminMapper.updateByPrimaryKeySelective(admin);
        if(num == 1){
            return true;
        }
        return false;
    }

    @Override
    public boolean deleteAdmin(Integer id){
        int num = adminMapper.deleteByPrimaryKey(id);
        if(num == 1){
            return true;
        }
        return false;
    }

    @Override
    public void deleteMultipleAdmins(Integer[] ids) {
        for(int i=0; i<ids.length; i++){
            adminMapper.deleteByPrimaryKey(ids[i]);
        }
    }

    @Override
    public boolean initializePassword(String id) {
        Admin admin = new Admin();
        admin.setAdminId(Integer.parseInt(id));
        admin.setPassword("123456");
        int num = adminMapper.updateByPrimaryKeySelective(admin);
        if(num == 1){
            return true;
        }
        return false;
    }

    @Override
    public boolean addMultipleAdmins(List<Admin> adminList){
        boolean flag = true;
        for(Admin admin : adminList){
            int num = adminMapper.insert(admin);
            if(num != 1){
                flag = false;
            }
            
        }
        
        return flag;
    }

    @Override
    public Admin getAdminByUsername(String condition) {
        adminExample = new AdminExample();
        adminExample.createCriteria().andUsernameEqualTo(condition);
        List<Admin> adminList = adminMapper.selectByExample(adminExample);
        if(adminList != null && adminList.size() > 0) {
            return adminList.get(0);
        }else {
            return null;
        }
    }
}

package cn.edu.qqhru.train.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import cn.edu.qqhru.train.mapper.BookMapper;
import cn.edu.qqhru.train.mapper.PlanBooksMapper;
import cn.edu.qqhru.train.pojo.Book;
import cn.edu.qqhru.train.pojo.BookExample;
import cn.edu.qqhru.train.pojo.BookExample.Criteria;
import cn.edu.qqhru.train.pojo.PlanBooksExample;
import cn.edu.qqhru.train.service.BookService;
import cn.edu.qqhru.train.utils.PageBean;
@Service
public class BookServiceImpl implements BookService {
    @Autowired
    private BookMapper bookMapper;
    @Autowired PlanBooksMapper planBooksMapper;
    /**
     * 查询所有教材
     */
    @Override
    public PageBean<Book> getAllBook(int page, int rows) {
        PageBean<Book> pageBean = new PageBean<>();
        // 设置页数,和显示多少条记录
        PageHelper.startPage(page, rows,"book_id desc");
        BookExample example = new BookExample();
        Criteria criteria = example.createCriteria();
        criteria.andBookIdIsNotNull();
        List<Book> list = bookMapper.selectByExample(example);
        PageInfo<Book> pageInfo = new PageInfo<>(list);
        long totalPage = pageInfo.getPages();
        int pageNum = pageInfo.getPageNum();
        pageBean.setPage(pageNum);
        pageBean.setTotalPage(totalPage);
        pageBean.setList(list);
        return pageBean;
    }
    /**
     * 删除教材
     */
    @Override
    public void delBook(int[] ids) {
        BookExample example = new BookExample();
        List<Integer> id = new ArrayList<>();
        for (int i : ids) {
            id.add(i);
        }
        Criteria criteria = example.createCriteria();
        criteria.andBookIdIn(id);
        bookMapper.deleteByExample(example);
        PlanBooksExample example2 = new PlanBooksExample();
        example2.createCriteria().andBookIdIn(id);
        planBooksMapper.deleteByExample(example2);
    }
    /**
     * 增加教材
     */
    @Override
    public void addBook(Book book) {
        bookMapper.insert(book);
    }
    /**
     * 根据id查询一个教材
     */
    @Override
    public Book getBookOne(int id) {
        Book book = bookMapper.selectByPrimaryKey(id);
        return book;
    }
    /**
     * 编辑教材
     */
    @Override
    public void editBook(Book book) {
        bookMapper.updateByPrimaryKey(book);        
    }
    /**
     * 根据教材名称搜索教材
     */
    @Override
    public PageBean<Book> getBook(String bname, int page, int rows) {
        PageBean<Book> pageBean = new PageBean<>();
        // 设置页数,和显示多少条记录
        PageHelper.startPage(page, rows,"book_id desc");
        BookExample example = new BookExample();
        Criteria criteria = example.createCriteria();
        criteria.andBnameLike("%" + bname + "%");
        List<Book> list = bookMapper.selectByExample(example);
        PageInfo<Book> pageInfo = new PageInfo<>(list);
        long totalPage = pageInfo.getPages();
        int pageNum = pageInfo.getPageNum();
        pageBean.setPage(pageNum);
        pageBean.setTotalPage(totalPage);
        pageBean.setList(list);
        return pageBean;
    }
    /**
     * 导入教材
     */
    @Override
    public void importBook(List<Book> bookList) {
        for (Book book : bookList) {
            bookMapper.insert(book);
        }            
    }
    /**
     * 导出教材
     */
    @Override
    public List<Book> getExportBook() {
        BookExample example = new BookExample();
        Criteria criteria = example.createCriteria();
        criteria.andBookIdIsNotNull();
        List<Book> list = bookMapper.selectByExample(example);
        return list;
    }

}

package cn.edu.qqhru.train.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import cn.edu.qqhru.train.mapper.CourseMapper;
import cn.edu.qqhru.train.pojo.Admin;
import cn.edu.qqhru.train.pojo.AdminExample;
import cn.edu.qqhru.train.pojo.Course;
import cn.edu.qqhru.train.pojo.CourseExample;
import cn.edu.qqhru.train.service.CourseService;
import cn.edu.qqhru.train.utils.PageBean;
import cn.edu.qqhru.train.vo.CourseVo;

/**
 *
 * <p>Title: CourseServiceImpl</p>
 * <p>Description: 课程模块service层的实现类</p>
 * <p>School: qiqihar university</p>
 * @author    白鹏飞
 * @date    2017年9月1日下午6:32:27
 * @version 1.0
 */
@Service("courseService")
public class CourseServiceImpl implements CourseService {
    @Autowired
    private CourseMapper courseMapper;
    
    private CourseExample courseExample;
    
    /**
     * <p>Title: getCourseListPageBean</p>
     * <p>Description: 以分页的方式显示所有课程信息service层上的实现类</p>
     * @param page
     * @param rows
     * @return
     * @see cn.edu.qqhru.train.service.CourseService#getCourseListPageBean(int, int)
     */
    @Override
    public PageBean<CourseVo> getCourseListPageBean(int page, int rows) {
        PageBean<CourseVo> courseListPageBean = new PageBean<CourseVo>();
        // 设置页数,和显示多少条记录
        PageHelper.startPage(page, rows);
        courseExample = new CourseExample();
        courseExample.createCriteria().andCourseIdIsNotNull();
        List<CourseVo> courseVoList = new ArrayList<CourseVo>();
        List<Course> courseList = courseMapper.selectByExample(courseExample);
        for(Course course : courseList){
            CourseVo courseVo = new CourseVo();
            courseVo.setCourseId(course.getCourseId());
            courseVo.setCname(course.getCname());
            courseVo.setCapacity(course.getCapacity());
            courseVo.setPlace(course.getPlace());
            courseVo.setInfo(course.getInfo());
            courseVo.setTeacherId(course.getTeacherId());
            courseVo.setPeriod(course.getPeriod());
            courseVoList.add(courseVo);
        }
        PageInfo<Course> pageInfo = new PageInfo<Course>(courseList);
        long totalPage = pageInfo.getPages();
        int pageNum = pageInfo.getPageNum();
        courseListPageBean.setPage(pageNum);
        courseListPageBean.setTotalPage(totalPage);
        courseListPageBean.setList(courseVoList);
        return courseListPageBean;
    }

    @Override
    public boolean addCourse(Course course) {
        int num = courseMapper.insert(course);
        if(num == 1){
            return true;
        }
        return false;
    }

    @Override
    public Course getCourseById(Integer courseId) {
        Course course = courseMapper.selectByPrimaryKey(courseId);
        return course;
    }

    @Override
    public boolean updateAdminById(Course course) {
        int num = courseMapper.updateByPrimaryKeySelective(course);
        if(num == 1){
            return true;
        }
        return false;
    }

    @Override
    public PageBean<CourseVo> getCourseListByPageAndCondition(String condition, int page, int rows) {
        PageBean<CourseVo> adminListPageBean = new PageBean<CourseVo>();
        // 设置页数,和显示多少条记录
        PageHelper.startPage(page, rows);
        courseExample = new CourseExample();
        courseExample.createCriteria().andCourseIdIsNotNull().andCnameEqualTo(condition);
        List<CourseVo> courseVoList = new ArrayList<CourseVo>();
        List<Course> courseList = courseMapper.selectByExample(courseExample);
        for(Course course : courseList){
            CourseVo courseVo = new CourseVo();
            courseVo.setCourseId(course.getCourseId());
            courseVo.setCname(course.getCname());
            courseVo.setCapacity(course.getCapacity());
            courseVo.setPlace(course.getPlace());
            courseVo.setInfo(course.getInfo());
            courseVo.setTeacherId(course.getTeacherId());
            courseVo.setPeriod(course.getPeriod());
            courseVoList.add(courseVo);
        }
        PageInfo<Course> pageInfo = new PageInfo<Course>(courseList);
        long totalPage = pageInfo.getPages();
        int pageNum = pageInfo.getPageNum();
        adminListPageBean.setPage(pageNum);
        adminListPageBean.setTotalPage(totalPage);
        adminListPageBean.setList(courseVoList);
        return adminListPageBean;
    }

    @Override
    public boolean deleteCourse(Integer id) {
        int num = courseMapper.deleteByPrimaryKey(id);
        if(num == 1){
            return true;
        }
        return false;
    }

    @Override
    public void deleteMultipleCourses(Integer[] ids) {
        for(int i=0; i<ids.length; i++){
            courseMapper.deleteByPrimaryKey(ids[i]);
        }
    }

    @Override
    public List<Course> getCourseList() {
        courseExample = new CourseExample();
        courseExample.createCriteria().andCourseIdIsNotNull();
        List<Course> courseList = courseMapper.selectByExample(courseExample);
        return courseList;
    }

    @Override
    public boolean addMultipleCourses(List<Course> courseList) {
        boolean flag = true;
        for(Course course : courseList){
            int num = courseMapper.insert(course);
            if(num != 1){
                flag = false;
            }
        }
        return flag;
    }

    @Override
    public List<Course> getCourseListByTeacherId(int teacherId) {
        courseExample = new CourseExample();
        courseExample.createCriteria().andCourseIdIsNotNull().andTeacherIdEqualTo(teacherId);
        List<Course> courseList = courseMapper.selectByExample(courseExample);
        return courseList;
    }

}

package cn.edu.qqhru.train.service.impl;

import java.util.ArrayList;
import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;

import cn.edu.qqhru.train.mapper.DeviceMapper;
import cn.edu.qqhru.train.mapper.PlanDevicesMapper;
import cn.edu.qqhru.train.pojo.Device;
import cn.edu.qqhru.train.pojo.DeviceExample;
import cn.edu.qqhru.train.pojo.DeviceExample.Criteria;
import cn.edu.qqhru.train.pojo.PlanDevicesExample;
import cn.edu.qqhru.train.service.DevicesService;
import cn.edu.qqhru.train.utils.PageBean;
@Service
public class DeviceServiceImpl implements DevicesService {
    @Autowired
    private DeviceMapper deviceMapper;
    @Autowired
    private PlanDevicesMapper planDevicesMapper;

    @Override
    public PageBean<Device> getAllDev(int page, int rows) {
        PageBean<Device> pageBean = new PageBean<>();
        // 设置页数,和显示多少条记录
        PageHelper.startPage(page, rows,"device_id desc");
        DeviceExample example = new DeviceExample();
        Criteria criteria = example.createCriteria();
        criteria.andDeviceIdIsNotNull();
        List<Device> list = deviceMapper.selectByExample(example);
        PageInfo<Device> pageInfo = new PageInfo<>(list);
        long totalPage = pageInfo.getPages();
        int pageNum = pageInfo.getPageNum();
        pageBean.setPage(pageNum);
        pageBean.setTotalPage(totalPage);
        pageBean.setList(list);
        return pageBean;
    }
    /**
     * 删除设备
     */
    @Override
    public void delDev(int[] ids) {
        DeviceExample example = new DeviceExample();
        List<Integer> id = new ArrayList<>();
        for (int i : ids) {
            id.add(i);
        }
        Criteria criteria = example.createCriteria();
        criteria.andDeviceIdIn(id);
        deviceMapper.deleteByExample(example);    
        PlanDevicesExample example2 = new PlanDevicesExample();
        example2.createCriteria().andDeviceIdIn(id);
        planDevicesMapper.deleteByExample(example2);
    }
    /**
     * 增加设备
     */
    @Override
    public void addDev(Device dev) {
        deviceMapper.insert(dev);
    }
    @Override
    public Device getDevOne(int id) {
        Device device = deviceMapper.selectByPrimaryKey(id);
        return device;
    }
    @Override
    public void editDev(Device dev) {
        deviceMapper.updateByPrimaryKey(dev);
    }
    /**
     * 获取设备
     */
    @Override
    public PageBean<Device> getDev(String dname, int page, int rows) {
        PageBean<Device> pageBean = new PageBean<>();
        // 设置页数,和显示多少条记录
        PageHelper.startPage(page, rows,"device_id desc");
        DeviceExample example = new DeviceExample();
        Criteria criteria = example.createCriteria();
        criteria.andDnameLike("%" + dname + "%");
        List<Device> list = deviceMapper.selectByExample(example);
        PageInfo<Device> pageInfo = new PageInfo<>(list);
        long totalPage = pageInfo.getPages();
        int pageNum = pageInfo.getPageNum();
        pageBean.setPage(pageNum);
        pageBean.setTotalPage(totalPage);
        pageBean.setList(list);
        return pageBean;
    }
    @Override
    public void importDev(List<Device> devList) {
        for (Device device : devList) {
            deviceMapper.insert(device);
        }        
    }
    @Override
    public List<Device> getExportDev() {
        DeviceExample example = new DeviceExample();
        Criteria criteria = example.createCriteria();
        criteria.andDeviceIdIsNotNull();
        List<Device> list = deviceMapper.selectByExample(example);
        return list;
    }

}