当前位置: 首页 > article >正文

基于Java Web的传智播客crm企业管理系统的设计与实现

项目描述

临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于Java Web的传智播客crm企业管理系统的设计与实现。

功能需求

本文研究的是通过构建CRM企业管理系统的优势进行信息化管理,通过调查和分析现在企业业务的相关信息,综合对大部分企业的现状和未来发展趋势进行分析,进而提出比较好的管理策略和方针。下面是针对传智播客企业进行系统内容进行分析和设计。
1.登录功能:员工登录、修改密码、重新登录。
2.人力资源部: 部门管理、职员管理、员工管理。
3.教学部:课程类别、班级管理。
4.咨询部: 咨询管理、学报管理。
5.学工部:学生管理。
6.就业部:就业情况分析、就业管理。

具备以下功能:

通过确定各个模块之间的数据关系和功能区别,合理划分多个功能模块,传智播客CRM企业管理系统中的功能可分为6大模块,针对研究内容以及相关分析确定各个模块中的功能,这如下所示。
1.登录功能:员工登录[表单校验、必须使用登录拦截器]、修改密码[表单校验]、重新登录。
2.人力资源部:
2.1 部门管理(添加部门、编辑部门、查询所有部门)。
2.2 职务管理(添加职务、编辑职务、查询所有职务)。
2.3 员工管理(添加员工[ajax级联]、编辑员工、查询所有员工、删除员工)。
3.教学部:
3.1 课程类别(添加类别、修改类别、查询所有类别[条件查询] [分页])。
3.2 班级管理(添加班级、编辑班级、查询所有班级、上传课表、下载课表)。
4.咨询部:
4.1 咨询学生管理(添加咨询[ajax级联]、查看咨询、编辑咨询、添加跟踪、录入学籍)。
4.2 查询报名学生[分页 + 条件]。
5.学工部:
5.1 在校学生管理(查询学生[条件查询 | ajax级联]、添加学生[ajax级联]、编辑学生、升级/转班[ajax级联]、流失) – 此处的ajax操作都是之前已经编写过的。
5.2 学生升级/转班。
5.3 学生流失情况。
6.就业部:
6.1 就业情况(添加就业信息[ajax级联]、编辑就业信息、查询所有[分页])。

系统设计

企业管理系统的设计,对每个模块都进行功能细化,每个细节点都考了到,对设计的菜单按钮都要有明确的说明实现的意义所在。

部分效果图

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

在这里插入图片描述

数据库设计

系统中用到了11张表,针对每个表都进行了设计,下面对部分核心表进行汇总罗列展示。

(1)员工信息表
在这里插入图片描述

(2)班级信息表
在这里插入图片描述

(3)课程信息表
在这里插入图片描述
(4)学工部信息表
在这里插入图片描述

部分代码
public class CrmClassServiceImpl implements CrmClassService {
	/**
	 * 定义crmClassDao属性及其setter方法
	 */
	private CrmClassDao crmClassDao;
	public void setCrmClassDao(CrmClassDao crmClassDao) {
		this.crmClassDao = crmClassDao;
	}
	/**
	 * 查询所有
	 */
	public List<CrmClass> findAll() {
		return crmClassDao.findAll();
	}
	/**
	 * 通过id查询
	 */
	public CrmClass findById(String classId) {
		return this.crmClassDao.findById(classId);
	}
	/**
	 * 添加或更新
	 */
	public void saveOrEdit(CrmClass crmClass) {
		this.crmClassDao.saveOrUpdate(crmClass);
	}
	/**
	 * 更新课表
	 */
	public void updateSchedule(CrmClass crmClass) {
		//获取班级
		CrmClass findClass = this.crmClassDao.findById(crmClass.getClassId());
		findClass.setUploadFilename(crmClass.getUploadFilename());
		findClass.setUploadPath(crmClass.getUploadPath());
		findClass.setUploadTime(new Date());
	}

}


package cn.itcast.crm.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
import cn.itcast.crm.dao.CrmLessontypeDao;
import cn.itcast.crm.domain.CrmLessontype;
import cn.itcast.crm.service.CrmLessontypeService;
import cn.itcast.crm.page.Page;

public class CrmLessontypeServiceImpl implements CrmLessontypeService {
    //定义crmLessonTypeDao属性和其setter方法
	private CrmLessontypeDao crmLessonTypeDao;
	public void setCrmLessonTypeDao(CrmLessontypeDao crmLessonTypeDao) {
		this.crmLessonTypeDao = crmLessonTypeDao;
	}
	/**
	 * 保存或更新
	 */
	public void saveOrUpdate(CrmLessontype crmLessontype) {
		this.crmLessonTypeDao.saveOrUpdate(crmLessontype);
	}
	/**
	 * 通过id查询
	 */
	public CrmLessontype findLessontypeById(String lessonTypeId) {
		return this.crmLessonTypeDao.findById(lessonTypeId);
	}
	
	/**
	 * 分页查询所有(HQL)
	 */
	public Page<CrmLessontype> findAllWithPageHQL(CrmLessontype crmLessontype,
			int pageNum, int pageSize) {
		//1 条件
		//1.1 拼凑hql 及 对应的参数(顺序、可重复)
		StringBuilder hqlBuilder = new StringBuilder();
		List<Object> paramsList = new ArrayList<Object>();
		//1.2 条件
		// * 名称
		if(StringUtils.isNotBlank(crmLessontype.getLessonName())){
			hqlBuilder.append(" and c.lessonName like ? ");
			paramsList.add("%"+crmLessontype.getLessonName()+"%");
		}
		// * 简介
		if(StringUtils.isNotBlank(crmLessontype.getRemark())){
			hqlBuilder.append(" and c.remark like ? ");
			paramsList.add("%"+crmLessontype.getRemark()+"%");
		}
		
		// * 学时
		if(StringUtils.isNotBlank(crmLessontype.getStartTotal())){
			hqlBuilder.append(" and c.total >= ? ");
			paramsList.add(Integer.parseInt(crmLessontype.getStartTotal()));
		}
		if(StringUtils.isNotBlank(crmLessontype.getEndTotal())){
			hqlBuilder.append(" and c.total <= ? ");
			paramsList.add(Integer.parseInt(crmLessontype.getEndTotal()));
		}
		
		// * 费用
		if(StringUtils.isNotBlank(crmLessontype.getStartCost())){
			hqlBuilder.append(" and c.lessonCost >= ? ");
			paramsList.add(Double.parseDouble(crmLessontype.getStartCost()));
		}
		if(StringUtils.isNotBlank(crmLessontype.getEndCost())){
			hqlBuilder.append(" and c.lessonCost <= ? ");
			paramsList.add(Double.parseDouble(crmLessontype.getEndCost()));
		}				
		//1.3 
		String conditionHQL = hqlBuilder.toString();
		Object params[] = paramsList.toArray();				
		//2 分页  limit ?,?
		// 2.1 查询总记录数
		int totalRecord = this.crmLessonTypeDao.getTotalRecord();		
		// 2.2 封装数据
		Page<CrmLessontype> page = new Page<CrmLessontype>(pageNum, pageSize, totalRecord); 		
		// 2.3 查询分页数据
		List<CrmLessontype> data = this.crmLessonTypeDao.findAllWithPage(conditionHQL, params, page.getStartIndex(), pageSize);
		page.setData(data);				
		return page;
	}
	/**
	 * 查询所有
	 */
	public List<CrmLessontype> findAll() {		
		return this.crmLessonTypeDao.findAll();
	}

}
安装部署需求

eclipse运行启动

系统部署

系统开发后,在生产环境配置项目运行环境,具体步骤如下:
安装linux或者windows10操作系统;
安装JDK1.8并配置环境变量;
安装MySQL5.7版本以上版本数据库,创建数据库并执行脚本创建表;
在eclipse中运行打包;

本项目用到的技术和框架

1.开发语言:Java
2.开发模式:B/S
3.数据库:MySQL5.7
4.框架:jsp+ssh

本项目中的关键点

此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。

环境工具

开发工具 Eclipse
语言 JDK1.8 、jsp、ssh
硬件:笔记本电脑;
软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
操作系统:Windows 10;
其它软件:截图工具、常用浏览器;
以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。


http://www.kler.cn/a/392345.html

相关文章:

  • 密码学的基本原理
  • 使用elementUI实现表格行拖拽改变顺序,无需引入外部库
  • 事件循环 -- 资源总结(浏览器进程模型、事件循环机制、练习题)
  • 6.2 对角化矩阵(2)
  • Python标准库模块的使用:math、datetime
  • 实战指南:理解 ThreadLocal 原理并用于Java 多线程上下文管理
  • 公开仓库改私有再配置公钥后Git拉取仍需要输入用户名的问题
  • 普通用户切换到 root 用户不需要输入密码配置(Ubuntu20)
  • vxe-table 3.10+ 进阶高级用法(一),根据业务需求自定义实现筛选功能
  • 【软考】系统架构设计师-计算机系统基础(2):操作系统
  • 【Linux】Linux 命令awk和sed的简单介绍
  • Vestar:AI造神邸,颠覆Meme叙事的新范式
  • 45.第二阶段x86游戏实战2-hook监控实时抓取游戏lua
  • 【python GUI编码入门-24】使用Tkinter构建一个简单的音乐播放器
  • 【Linux:IO多路复用(select函数)
  • 新的服务器Centos7.6 安装基础的环境配置(新服务器可直接粘贴使用配置)
  • 数据集标注txt文件读取小工具
  • # 如何查看 Ubuntu 版本?
  • Java | Leetcode Java题解之第559题N叉树的最大深度
  • 漏洞分析 | Spring Framework路径遍历漏洞(CVE-2024-38816)
  • 小波神经网络:结合小波变换与神经网络的力量(附Pytorch代码实现)
  • 详细介绍MySQL、Mongo、Redis等数据库的索引
  • Prometheus常用查询PromQL表达式
  • 国家网络安全法律法规
  • mqtt学习笔记(一)
  • 汽车共享管理:SpringBoot技术的应用与挑战