基于JAVA的SSM人事管理系统,源码下载

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT)、PYTHON、PHP、C#、安卓等多项技术。

今天将为大家分析一个人事管理系统(人事管理的信息量和信息类型越来越多,工作流程越来越清晰,社会分工越来越细,原来传统上的人工处理方式和单机管理系统越来越来不能适应人事管理的需要,不能满足新形势下企业人事管理的需要。因此,必须有一套应用于网络时代的适应于新需求上的人事管理系统。传统的C/S模式虽然能有效的管理企业人事信息,但是随着社会的网络化,要求B/S模式的新系统的呼声越来越高。B/S模式能在很大程度上方便客户和员工的需求,无论在任何地方,只要能接入Internet,就可以获取企业相关的人事信息。),该项目使用框架为SSM(MYECLIPSE),选用开发工具为MYECLIPSE。人事管理系统为一个 后台项目。

为了完成该系统,我们首先需要对该系统进行需求分析。一个人事管理系统应包含用户角色有管理员、员工。为了能让用户顺利登陆系统完成相关操作,需要为每种登陆角色设置账户和密码字段。

为了完成系统的功能需要为员工设置工资表,记录工资信息。在工资表中定义了两者的关联关系,其中工资的员工与员工的mingzi字段对应、工资的员工id与员工的id字段对应

。为了完成系统的功能需要为部门设置员工表,记录员工信息。在员工表中定义了两者的关联关系,其中员工的部门与部门的mingzi字段对应、员工的部门id与部门的id字段对应

总结得出该系统所有数据为:管理员(admin)、工资(gongzi)、员工(yuangong)、部门(bumen)

管理员表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 管理员id

username | VARCHAR(255) |  | 账号

password | VARCHAR(255) |  | 密码

工资表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 工资id

yuangong | VARCHAR(255) |  | 员工

yuangongid | VARCHAR(255) |  | 员工id

yuefen | VARCHAR(255) |  | 月份

jichugongzi | VARCHAR(255) |  | 基础工资

ticheng | VARCHAR(255) |  | 提成

员工表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 员工id

mingzi | VARCHAR(255) |  | 名字

username | VARCHAR(255) |  | 账号

password | VARCHAR(255) |  | 密码

bumen | VARCHAR(255) |  | 部门

bumenid | VARCHAR(255) |  | 部门id

部门表

字段名 | 类型 | 属性 | 描述

id | INT(11) | PRIMARY KEY | 部门id

mingzi | VARCHAR(255) |  | 名字

sql建表语句

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- ----------------------------

-- Table structure for ggrenshiguanli

-- ----------------------------

DROP TABLE IF EXISTS `t_admin`;

CREATE TABLE `t_admin` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘管理员id‘,`username` VARCHAR(255) DEFAULT NULL COMMENT ‘账号‘,`password` VARCHAR(255) DEFAULT NULL COMMENT ‘密码‘,PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘管理员‘;

-- ----------------------------

DROP TABLE IF EXISTS `t_gongzi`;

CREATE TABLE `t_gongzi` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘工资id‘,`yuangong` VARCHAR(255) DEFAULT NULL COMMENT ‘员工‘,`yuangongid` INT(11) DEFAULT NULL COMMENT ‘员工id‘,`yuefen` VARCHAR(255) DEFAULT NULL COMMENT ‘月份‘,`jichugongzi` VARCHAR(255) DEFAULT NULL COMMENT ‘基础工资‘,`ticheng` VARCHAR(255) DEFAULT NULL COMMENT ‘提成‘,PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘工资‘;

-- ----------------------------

DROP TABLE IF EXISTS `t_yuangong`;

CREATE TABLE `t_yuangong` (`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT ‘员工id‘,`mingzi` VARCHAR(255) DEFAULT NULL COMMENT ‘名字‘,`username` VARCHAR(255) DEFAULT NULL COMMENT ‘账号‘,`password` VARCHAR(255) DEFAULT NULL COMMENT ‘密码‘,`bumen` VARCHAR(255) DEFAULT NULL COMMENT ‘部门‘,`bumenid` INT(11) DEFAULT NULL COMMENT ‘部门id‘,PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT=‘员工‘;

添加部门模块:

通过添加部门模块,可以完成部门的添加操作。在页面中跳转到添加部门页面,输入部门的所有信息,点击添加操作,可以将部门数据以post提交到bumenController中。部门所包含的字段信息包括名字。在bumenController中通过定义bumen接受所有的部门参数。使用bumendao的insert方法将bumen实体插入到数据库中。完成数据的添加操作,在bumenMapper中匹配对应的bumenxml完成插入sql语句的执行操作。该部分核心代码如下:

通过bumendao的insert方法将页面传输的部门添加到数据库中 bumendao.insert(bumen);

将添加部门成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "添加部门成功");

返回部门管理界面

return "forward:/tianjiabumen.action";

查询部门模块:

在后台bumenguanli方法中,通过selectByexample方法获取所有的数据信息。将其保存到request中,在页面中通过foreach方法

进行循环展示到table中。完成部门查询操作。具体代码如下:

生成部门样例类,通过example定义查询条件 BumenExample example = new BumenExample();

通过bumendao的selectByExample方法查询出所有的部门信息 List bumenall = bumendao.selectByExample(example);

将部门信息,保存到request中,在页面通过foreach方法进行展示 request.setAttribute("bumenall", bumenall);

返回部门管理界面

return "forward:/bumenguanli.action";

修改部门模块:

点击修改按钮,可以跳转到部门修改页面。在部门修改页面中,将初始化该部门的所有信息,并将信息一一对应填充到对应编辑栏中。编辑完部门信息后,页面通过post方法将数据封装为一个部门实体,传入到bumenController中。在xiugaibumen中进行接收,接收完毕后,调用bumenMapper中的updateByPrimaryKeySelective方法进行修改。该部分代码如下:

通过bumendao的修改方法根据id修改对应的部门 bumendao.updateByPrimaryKeySelective(bumen);

将修改部门成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "修改部门信息成功");

返回部门管理界面

return "forward:/bumenguanli.action";

删除部门模块:

删除部门功能的实现方式为,通过点击删除部门按钮,向服务器发起get请求。请求中包含部门的id信息,在bumenController中使用int接受该id,并将该id传入bumendao的deleteByPrimaryKey方法中。该方法的作用为根据id删除对应部门。最后将删除部门成功的信息返回页面,该部分核心代码如下:

通过bumendao的删除方法根据id删除对应的部门 bumendao.deleteByPrimaryKey(id);

将删除部门成功信息,保存到request的message中,在页面中给出用户提示 request.setAttribute("message", "删除部门成功");

返回部门管理界面

return "forward:/bumenguanli.action";

package org.mypro.front;

import java.io.File;

import java.io.IOException;

import java.math.BigDecimal;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Calendar;

import java.util.Collections;

import java.util.Date;

import java.util.List;

import javax.jms.Session;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.mypro.dao.GongziMapper;

import org.mypro.entity.Gongzi;

import org.mypro.entity.GongziExample;

import org.mypro.entity.Yuangong;

import org.mypro.entity.YuangongExample;

import org.mypro.dao.YuangongMapper;

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

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RequestMethod;

import org.springframework.web.multipart.MultipartFile;

@Controller

@RequestMapping(value = "/")

public class GongziController {

private static final Log logger = LogFactory.getLog(GongziController.class);

@Autowired
private GongziMapper gongzidao; // 定义yuangongdao参数

@Autowired
private YuangongMapper yuangongdao;

//定义方法tianjiagongzi,响应页面tianjiagongzi请求

@RequestMapping(value = "tianjiagongzi")

public String tianjiagongzi(HttpServletRequest request, HttpServletResponse response,HttpSession session,String backurl) {

logger.debug("GongziController.tianjiagongzi ......");

// 定义 example1为 YuangongExample的实例

YuangongExample example1 = new YuangongExample();

List yuangongall = yuangongdao.selectByExample(example1);

request.setAttribute("yuangongall", yuangongall);

if(backurl != null && backurl.indexOf("tianjiagongzi.action") == -1){

return "forward:/" + backurl; }

return "tianjiagongzi";

}

@RequestMapping(value = "tianjiagongziact")

public String tianjiagongziact(HttpServletRequest request,HttpSession session, HttpServletResponse response,Gongzi gongzi,String backurl) throws IOException {

logger.debug("GongziController.tianjiagongziact ......");

gongzidao.insert(gongzi);

request.setAttribute("message", "添加工资成功");

if(backurl != null && backurl.indexOf("tianjiagongziact.action") == -1){

return "forward:/" + backurl; }

//返回tianjiagongzi方法

return "forward:/tianjiagongzi.action";

}

//定义gongziguanli方法响应页面请求

@RequestMapping(value = "gongziguanli")

public String gongziguanli(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {

logger.debug("GongziController.gongziguanli ......");

GongziExample example = new GongziExample();

List gongziall = gongzidao.selectByExample(example);

request.setAttribute("gongziall", gongziall);

if(backurl != null && backurl.indexOf("gongziguanli.action") == -1){

return "forward:/" + backurl; }

return "gongziguanli";

}

// 定义 gongzichakan方法

@RequestMapping(value = "gongzichakan")

public String gongzichakan(HttpServletRequest request,HttpSession session, HttpServletResponse response,String backurl) {

logger.debug("GongziController.gongzichakan ......");

GongziExample example = new GongziExample();

List gongziall = gongzidao.selectByExample(example);

request.setAttribute("gongziall", gongziall);

if(backurl != null && backurl.indexOf("gongzichakan.action") == -1){

return "forward:/" + backurl; }

return "gongzichakan";

}

// 定义 xiugaigongzi方法

@RequestMapping(value = "xiugaigongzi")

public String xiugaigongzi(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){

logger.debug("GongziController.xiugaigongzi ......");

Gongzi gongzi = gongzidao.selectByPrimaryKey(id);

// 定义 example1为 YuangongExample的实例

YuangongExample example1 = new YuangongExample();

List yuangongall = yuangongdao.selectByExample(example1);

request.setAttribute("yuangongall", yuangongall);

request.setAttribute("gongzi", gongzi);

if(backurl != null && backurl.indexOf("xiugaigongzi.action") == -1){

return "forward:/" + backurl; }

return "xiugaigongzi";

}

// 定义xiugaigongziact处理工资修改

@RequestMapping(value = "xiugaigongziact")

public String xiugaigongziact(HttpServletRequest request, HttpServletResponse response,Gongzi gongzi,HttpSession session,String backurl) throws IOException {

logger.debug("GongziController.xiugaigongziact ......");

gongzidao.updateByPrimaryKeySelective(gongzi);

request.setAttribute("message", "修改工资信息成功");

if(backurl != null && backurl.indexOf("xiugaigongziact.action") == -1){

return "forward:/" + backurl; }

return "forward:/gongziguanli.action";

}

// 定义shanchugongzi,处理删除工资

@RequestMapping(value = "shanchugongzi")

public String shanchugongzi(HttpServletRequest request, HttpServletResponse response,HttpSession session,int id,String backurl){

logger.debug("GongziController.shanchugongzi ......");

gongzidao.deleteByPrimaryKey(id);

request.setAttribute("message", "删除工资成功");

if(backurl != null && backurl.indexOf("shanchugongzi.action") == -1){

return "forward:/" + backurl; }

return "forward:/gongziguanli.action";

}

// 定义sousuogongzi方法,处理搜索操作

@RequestMapping(value = "sousuogongzi")

public String sousuogongzi(HttpServletRequest request, HttpServletResponse response,HttpSession session,String search,String backurl) {

logger.debug("GongziController.sousuogongzi ......");

GongziExample example = new GongziExample();

GongziExample.Criteria criteria = example.createCriteria();

if(search != null){

criteria.andYuangongLike("%" + search + "%");

}

List gongziall = gongzidao.selectByExample(example);

request.setAttribute("gongziall", gongziall);

if(backurl != null && backurl.indexOf("sousuogongzi.action") == -1){

return "forward:/" + backurl; }

return "sousuogongzi";

}

// 定义GongzipinglunMapper

@RequestMapping(value = "gongzixiangqing")

public String gongzixiangqing(HttpServletRequest request,HttpSession session, HttpServletResponse response,int id,String backurl) {

logger.debug("GongziController.gongzixiangqing ......");

Gongzi gongzi = gongzidao.selectByPrimaryKey(id);

request.setAttribute("gongzi", gongzi);

if(backurl != null && backurl.indexOf("gongzixiangqing.action") == -1){

return "forward:/" + backurl; }

return "gongzixiangqing";

}

// 上传文件图片等

public String uploadUtile(MultipartFile file, HttpServletRequest request) throws IOException {

// 根据当前时间生成时间字符串

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSS");

String res = sdf.format(new Date());

// uploads文件夹位置

String rootPath = request.getSession().getServletContext().getRealPath("resource/uploads/");

// 原始名称

String originalFileName = file.getOriginalFilename();

// 新文件名

String newFileName = "sliver" + res + originalFileName.substring(originalFileName.lastIndexOf("."));

// 创建年月文件夹

Calendar date = Calendar.getInstance();

File dateDirs = new File(date.get(Calendar.YEAR) + File.separator + (date.get(Calendar.MONTH)+1));

// 新文件

File newFile = new File(rootPath + File.separator + dateDirs + File.separator + newFileName);

// 判断目标文件所在目录是否存在

if( !newFile.getParentFile().exists()) {

// 如果目标文件所在的目录不存在,则创建父目录

newFile.getParentFile().mkdirs();

}

System.out.println(newFile);

// 将内存中的数据写入磁盘

file.transferTo(newFile);

// 完整的url

String fileUrl = date.get(Calendar.YEAR) + "/" + (date.get(Calendar.MONTH)+1) + "/" + newFileName;

return fileUrl;

}}

源码地址

原文地址:https://www.cnblogs.com/erhabiancheng/p/11560133.html

时间: 2024-08-03 14:16:17

基于JAVA的SSM人事管理系统,源码下载的相关文章

Asp.Net MVC4+EF6 Code First 权限管理系统 源码下载

这个权限管理系统是基于在@TZHSWEET 的权限管理系统之上做的修改.@TZHSWEET 那个是DB first. 这个是Code First.源码下载:http://download.csdn.net/detail/wode551120/7280559 http://pan.baidu.com/s/1o6uM2Ae 具体设计思路请参考@TZHSWEET  文章. 项目运行: 1.修改web.config 数据库连接 2.修改Global.asax Application_start方法中.取

java OA开源办公系统源码下载

原文:java OA开源办公系统源码下载 源代码下载地址:http://www.zuidaima.com/share/1550463681268736.htm 项目截图

java注解入门(含源码下载)

注解(Annotation)是从jdk1.5开始增加的特性.学习注解能够读懂框架的代码:让编程更加简洁,代码更加清晰. 注解概念:java提供了一种原程序中的元素关联任何信息和任何元数据的途径和方法. 注解需要import java.lang.annotation.*; java自带的3个注解: @Override//覆盖 @Deprecated//过时 @SuppressWarnings()//抑制警告 自定义注解的语法要求 一般自定义注解的代码如下://“Description 注解”在下面

基于html5制作3D拳击游戏源码下载

今天给大家分享一款基于HTML5实现的3d拳王游戏源码.这款实例适用浏览器:360.FireFox.Chrome.Safari.Opera.傲游.搜狗.世界之窗. 不支持IE8及以下浏览器. 在线预览   源码下载 实现的代码. html代码: <div id="chf2" style="position: relative; width: 320px; margin: 0 auto;"> <canvas id="gcvs" w

java百货中心供应链管理系统 源码

开发环境: Windows操作系统开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库 百货中心供应链管理系统主要用于实现了企业管理数据统计等.本系统结构如下:(1)管理界面:    登录模块:实现管理员登录功能:    合作公司管理模块:实现合作公司信息的增加.修改.查看功能:    采购管理模块:实现采购的增加.修改.查看功能:    数据统计模块:实现数据的统计分析功能: 系统子模块功能介绍1)    登录模块:用户通过输入用户名和密码来登录系统

基于S2SH开发学生考勤管理系统 源码 BL

开发环境: Windows操作系统开发工具:MyEclipse/Eclipse + JDK+ Tomcat + MySQL 数据库 项目截图: 获取源码请联系博主-Q:782827013 原文地址:https://www.cnblogs.com/xlrjgzs/p/11145819.html

基于代码生成器的快速开发框架,spring mvc html5 bootstrap java框架,jeeplus框架源码下载

开源网址:http://www.jeeplus.org JeePlus是一款基于代码生成器的智能快速开发平台,可以帮助解决java项目中80%的重复工作,让开发者更多关注业务逻辑.既能快速提高开发效率,帮助公司节省人力成本,同时不失灵活性. JeePlus快速开发宗旨是:简单功能由代码生成器生成使用,复杂业务采用表单自定义,只需要写极少代码,即可实现复杂的业务逻辑. JeePlus采用了目前极为流行的扁平化响应式的设计风格,可以完美兼容电脑,pad,手机等多个平台.前端UI采用INSPINA实现

[源码下载]Demo1 客户端从服务器获取信息(基于networkcomms2.3.1)

本demo基于networkcomms2.3.1开源版本 源码下载:从服务器获取信息   框架部分源码请到这里下载 实现的功能很简单 1:服务器开始监听 2:客户端连接服务器 并从服务器获取信息 源码在后续文章中

基于SSM的车辆故障管理系统程序设计,源码下载

大家好,我是全微毕设团队的创始人,本团队擅长JAVA(SSM,SSH,SPRINGBOOT).PYTHON.PHP.C#.安卓等多项技术. 今天将为大家分析一个车辆故障管理系统(本文针对汽车故障诊断专家系统 中知识库的特点,设计了一种基于Windows平台的知识库管理系统(KnowledgebaseManagementSystem以下简称KBMS), 该系统充分利用了数据库技术,实现了对知识库中知识的存储.增加.删除.修改和查询,以及对知识进行一致性和完整性校验,为汽车故障诊断专家系统的开发和