基于javaweb的企业人事管理系统(java+ssm+jsp+mysql)

基于javaweb的企业人事管理系统(java+ssm+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

20220519001039

20220519001040

20220519001042

20220519001043

20220519001044

一、项目简述

功能介绍:员工管理,用户管理,部门管理,文档管理, 职位管理等等。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)

项目技术: JSP +Spring + SpringMVC + html+ css + JavaScript + JQuery + Ajax等等。

后台部门管理:

/**

  • 后台部门管理Controller

*/

@Controller

@RequestMapping(“/admin/department”)

public class DepartmentController {

@Autowired

private DepartmentService departmentService;

@Autowired

private OperaterLogService operaterLogService;

/**

  • 分页查询部门列表

  • @param model

  • @param pageBean

  • @param department

  • @return

*/

@RequestMapping(“/list”)

public String list(Model model, PageBean pageBean,Department department){

model.addAttribute(“title”,“部门列表”);

model.addAttribute(“name”,department.getName());

model.addAttribute(“pageBean”,departmentService.findList(department, pageBean));

return “/admin/department/list”;

/**

  • 添加页面

  • @return

*/

@RequestMapping(“/add”)

public String add(){

return “/admin/department/add”;

/**

  • 部门添加提交处理

  • @param department

  • @return

*/

@RequestMapping(value = “/add”,method = RequestMethod.POST)

@ResponseBody

public Result add(Department department){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(department);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(department.getNote().length() > 50){

return Result.error(CodeMsg.DEPARTMENT_LENGTH_EXIST);

if(departmentService.isExistName(department.getName(),0l)){

return Result.error(CodeMsg.ADMIN_DEPARTMENT_NAME_EXIST);

if(departmentService.save(department) == null){

return Result.error(CodeMsg.ADMIN_DEPARTMENT_SAVE_ERROR);

operaterLogService.add(“添加部门,部门名:” + department.getName());

return Result.success(true);

/**

  • 编辑页面

  • @param model

  • @param id

  • @return

*/

@RequestMapping(“/edit”)

public String edit(Model model,@RequestParam(name=“id”,required=true)Long id){

model.addAttribute(“department”,departmentService.find(id));

return “/admin/department/edit”;

/**

  • 编辑表单提交处理

  • @param department

  • @return

*/

@RequestMapping(value = “/edit”,method = RequestMethod.POST)

@ResponseBody

public Result edit(Department department){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(department);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(department.getId() == null || department.getId().longValue() <= 0){

return Result.error(CodeMsg.ADMIN_DEPARTMENT_NO_EXIST);

if(department.getNote().length() > 50){

return Result.error(CodeMsg.DEPARTMENT_LENGTH_EXIST);

if(departmentService.isExistName(department.getName(),department.getId())){

return Result.error(CodeMsg.ADMIN_DEPARTMENT_NAME_EXIST);

//到这说明一切符合条件,进行数据库保存

Department findById = departmentService.find(department.getId());

//讲提交的用户信息指定字段复制到已存在的department对象中,该方法会覆盖新字段内容

BeanUtils.copyProperties(department, findById, “id”,“createTime”,“updateTime”);

if(departmentService.save(findById) == null){

return Result.error(CodeMsg.ADMIN_DEPARTMENT_EDIT_ERROR);

operaterLogService.add(“编辑部门,部门名:” + department.getName());

return Result.success(true);

/**

  • 根据id删除

  • @param id

  • @return

*/

@RequestMapping(value = “delete”,method = RequestMethod.POST)

@ResponseBody

public Result delete(@RequestParam(name=“id”,required=true)Long id){

try{

departmentService.delete(id);

}catch (Exception e){

return Result.error(CodeMsg.ADMIN_DEPARTMENT_DELETE_ERROR);

operaterLogService.add(“删除部门,部门ID:” + id);

return Result.success(true);

后台考核管理:

/**

  • 后台考核管理Controller

*/

@Controller

@RequestMapping(“/admin/assessment”)

public class AssessmentController {

@Autowired

private DepartmentService departmentService;

@Autowired

private StaffService staffService;

@Autowired

private PeranceAssmentService peranceAssmentService;

@Autowired

private AssessTargetService assessTargetService;

@Autowired

private AttendanceService attendanceService;

/**

  • 分页查询员工列表

  • @param model

  • @param pageBean

  • @param staff

  • @return

*/

@RequestMapping(“/list”)

public String list(Model model, PageBean pageBean, Staff staff){

model.addAttribute(“title”,“考核列表”);

Staff loginedStaff = SessionUtil.getLoginedStaff();

model.addAttribute(“jobNumber”,staff.getJobNumber());

model.addAttribute(“pageBean”,staffService.findDepartmentList(staff, pageBean,loginedStaff));

return “/admin/assessment/list”;

/**

  • 绩效考核页面

  • @return

*/

@RequestMapping(“/achieve_add”)

public String add(@RequestParam(“id”)Long id,Model model){

Staff staff = staffService.find(id);

Long departmentId = staff.getDepartment().getId();

Department department = departmentService.find(departmentId);

List assessTargets = department.getAssessTargets();

model.addAttribute(“staff”,staff);

model.addAttribute(“assessTargetList”,assessTargets);

return “/admin/assessment/add”;

/**

  • 绩效考核添加提交处理

  • @param performanceAssessment

  • @return

*/

@RequestMapping(value = “/achieve_add”,method = RequestMethod.POST)

@ResponseBody

public Result add(PerformanceAssessment performanceAssessment,@RequestParam(“assTarget”)String assTarget){

//判断员工是否存在

Staff staff = performanceAssessment.getStaff();

if(staff==null){

return Result.error(CodeMsg.ADMIN_STAFF_NOT_EXIST_ERROR);

//年份判断

Integer year = performanceAssessment.getYear();

if(year<=0){

return Result.error(CodeMsg.ADMIN_PERFORMANCE_YEAR_ERROR);

//月份判断

Integer month = performanceAssessment.getMonth();

if(month<=0){

return Result.error(CodeMsg.ADMIN_PERFORMANCE_MONTH_ERROR);

PerformanceAssessment assessment = peranceAssmentService.findByYearAndMonthAndStaffId(year, month,staff.getId());

if(assessment!=null){

return Result.error(CodeMsg.ADMIN_PERFORMANCE_EXIST_ERROR);

JSONArray array = JSONObject.parseArray(assTarget);

double totalScore=0;

double weight=0;

for(int i=0;i<array.size();i++){

Object assessmentTarget = array.getJSONObject(i);

Object targetId = ((com.alibaba.fastjson.JSONObject) assessmentTarget).get(“targetId”);

Object currentScore = ((com.alibaba.fastjson.JSONObject) assessmentTarget).get(“score”);

String idl = targetId.toString();

AssessTarget assessTarget = assessTargetService.find(Long.valueOf(idl));

Integer targetScore = assessTarget.getScore();

String score = currentScore.toString();

totalScore += Double.parseDouble(score) *targetScore.doubleValue();

weight+=targetScore.doubleValue();

double finalScore = totalScore / weight;

performanceAssessment.setPercentage(new BigDecimal(finalScore));

GradeEnum gradeEnum = GradeEnum.countGrade(finalScore);

performanceAssessment.setGrade(gradeEnum);

if(peranceAssmentService.save(performanceAssessment)==null){

return Result.error(CodeMsg.ADMIN_PERFORMANCE_ADD_ERROR);

return Result.success(true);

/**

  • 添加年度考核

  • @param id

  • @return

*/

@RequestMapping(“/annual_add”)

public String annualAdd(Model model,@RequestParam(name=“id”,required=true)Long id){

Staff staff = staffService.findByIdAndIsStatus(id, StaffStatus.ON_THE_JOB.getCode());

if(staff == null){

return “redirect:list”;

Date date = new Date();

Calendar cal = Calendar.getInstance();

cal.setTime(date);

//获取去年的年份

int year = cal.get(Calendar.YEAR) - 1;

//请假天数

Double leaveDays = attendanceService.sumLeaveDays(staff.getJobNumber(), year);

//加班小时

Double overTimeHours = attendanceService.sumOverTimeHours(staff.getJobNumber(), year);

//缺勤天数

Double absenceDays = attendanceService.sumAbsenceDays(staff.getJobNumber(), year);

//总数量

Integer count = peranceAssmentService.count(staff.getId(), year);

BigDecimal performanceScore = BigDecimal.ZERO;

if(count != 0){

performanceScore = peranceAssmentService.sumPercentage(id, year);

performanceScore = performanceScore.divide(new BigDecimal(count));

performanceScore.setScale(2,BigDecimal.ROUND_HALF_UP);

model.addAttribute(“staff”,staff);

model.addAttribute(“year”,year);

model.addAttribute(“leaveDays”,leaveDays);

model.addAttribute(“overTimeHours”,overTimeHours);

model.addAttribute(“absenceDays”,absenceDays);

model.addAttribute(“performanceScore”,performanceScore);

return “admin/assessment/annual_add”;

后台报表管理:

/**

  • 后台报表管理Controller

*/

@Controller

@RequestMapping(“/admin/report_form”)

public class ReportFormController {

@Autowired

private DepartmentService departmentService;

@Autowired

private OperaterLogService operaterLogService;

@Autowired

private StaffService staffService;

@Autowired

private SalaryService salaryService;

/**

  • 报表页面

  • @return

*/

@RequestMapping(“/list”)

public String list(Model model,@RequestParam(name = “years”,defaultValue = “”,required = false)Integer years,@RequestParam(name = “months”,defaultValue = “”,required = false)Integer months){

model.addAttribute(“title”,“报表列表”);

List countDepartment = staffService.findCountDepartment(StaffStatus.ON_THE_JOB.getCode());

List avgDepartment = staffService.findAvgDepartment(StaffStatus.ON_THE_JOB.getCode());

int currentYear = DateUtil.getCurrentYear();

int currentMonth = DateUtil.getCurrentMonth();

if(years==null){

years=currentYear;

if(months==null){

months=currentMonth;

List salary = salaryService.sumByDepartmentByYearAndMonth(years,months);

List countPayRoll = salaryService.countPayRollDepartmentByYear(years);

Map<String, Object> ret = new HashMap<>();

ret.put(“months”,months);

ret.put(“years”,years);

ret.put(“salaryList”,salary);

ret.put(“avgDepartments”,avgDepartment);

ret.put(“countDepartments”,countDepartment);

ret.put(“countPayRoll”,countPayRoll);

model.addAllAttributes(ret);

return “/admin/report_form/list”;

后台用户管理控制器:

/**

  • 后台用户管理控制器

*/

@RequestMapping(“/admin/user”)

@Controller

public class UserController {

@Autowired

private UserService userService;

@Autowired

private RoleService roleService;

@Autowired

private OperaterLogService operaterLogService;

/**

  • 用户列表页面

  • @param model

  • @param user

  • @param pageBean

  • @return

*/

@RequestMapping(value=“/list”)

public String list(Model model,User user,PageBean pageBean){

model.addAttribute(“title”, “用户列表”);

model.addAttribute(“username”, user.getUsername());

model.addAttribute(“pageBean”, userService.findList(user, pageBean));

return “admin/user/list”;

/**

  • 新增用户页面

  • @param model

  • @return

*/

@RequestMapping(value=“/add”,method=RequestMethod.GET)

public String add(Model model){

model.addAttribute(“roles”, roleService.findAll());

return “admin/user/add”;

/**

  • 用户添加表单提交处理

  • @param user

  • @return

*/

@RequestMapping(value=“/add”,method=RequestMethod.POST)

@ResponseBody

public Result add(User user){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(user);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(user.getRole() == null || user.getRole().getId() == null){

return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY);

//判断用户名是否存在

if(userService.isExistUsername(user.getUsername(), 0l)){

return Result.error(CodeMsg.ADMIN_USERNAME_EXIST);

//到这说明一切符合条件,进行数据库新增

if(userService.save(user) == null){

return Result.error(CodeMsg.ADMIN_USE_ADD_ERROR);

operaterLogService.add(“添加用户,用户名:” + user.getUsername());

return Result.success(true);

/**

  • 用户编辑页面

  • @param model

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.GET)

public String edit(Model model,@RequestParam(name=“id”,required=true)Long id){

model.addAttribute(“roles”, roleService.findAll());

model.addAttribute(“user”, userService.find(id));

return “admin/user/edit”;

/**

  • 编辑用户信息表单提交处理

  • @param user

  • @return

*/

@RequestMapping(value=“/edit”,method=RequestMethod.POST)

@ResponseBody

public Result edit(User user){

//用统一验证实体方法验证是否合法

CodeMsg validate = ValidateEntityUtil.validate(user);

if(validate.getCode() != CodeMsg.SUCCESS.getCode()){

return Result.error(validate);

if(user.getRole() == null || user.getRole().getId() == null){

return Result.error(CodeMsg.ADMIN_USER_ROLE_EMPTY);

if(user.getId() == null || user.getId().longValue() <= 0){

return Result.error(CodeMsg.ADMIN_USE_NO_EXIST);

if(userService.isExistUsername(user.getUsername(), user.getId())){

return Result.error(CodeMsg.ADMIN_USERNAME_EXIST);

//到这说明一切符合条件,进行数据库保存

User findById = userService.find(user.getId());

//讲提交的用户信息指定字段复制到已存在的user对象中,该方法会覆盖新字段内容

BeanUtils.copyProperties(user, findById, “id”,“createTime”,“updateTime”);

if(userService.save(findById) == null){

return Result.error(CodeMsg.ADMIN_USE_EDIT_ERROR);

operaterLogService.add(“编辑用户,用户名:” + user.getUsername());

return Result.success(true);

/**

  • 删除用户

  • @param id

  • @return

*/

@RequestMapping(value=“/delete”,method=RequestMethod.POST)

@ResponseBody

public Result delete(@RequestParam(name=“id”,required=true)Long id){

try {

userService.delete(id);

} catch (Exception e) {

return Result.error(CodeMsg.ADMIN_USE_DELETE_ERROR);

operaterLogService.add(“删除用户,用户ID:” + id);

return Result.success(true);


网选课系统是一个非常实用的系统,可以方便学生进行选课操作,也可以方便教师进行课程管理。下面是一个基于JavaWeb的网上选课系统的设计思路: 1. 系统架构 该系统采用 B/S 架构,即浏览器/服务器架构。前端使用 HTML、CSS、JavaScript 和 JQuery,后端使用 Java+SSM 框架和 MySQL 数据库。 2. 系统功能 (1)学生模块:学生可以登录系统后进行选课操作,查看已选课程,并对已选课程进行退选操作。 (2)教师模块:教师可以登录系统后进行课程管理操作,包括添加课程、修改课程、删除课程等操作。 (3)管理员模块:管理员可以登录系统后对学生和教师进行管理,包括添加学生、添加教师、修改学生信息、修改教师信息等操作。 (4)公告管理:管理员可以发布公告,学生和教师可以浏览公告。 (5)选课规则管理:管理员可以设置选课规则,例如每个学生最多选择多少门课程,每门课程最多选多少人等。 3. 数据库设计 该系统需要设计以下数据库表: (1)学生表:包括学生编号、学生姓名、学生性别、学生年龄、所在班级等字段。 (2)教师表:包括教师编号、教师姓名、教师性别、所教课程、教龄等字段。 (3)课程表:包括课程编号、课程名称、授课教师、上课时间、选课人数等字段。 (4)选课记录表:包括学生编号、课程编号等字段。 (5)公告表:包括公告编号、公告内容、发布时间等字段。 4. 技术实现 该系统采用 Java+SSM 框架进行实现,其中: (1)后端技术:采用 SpringMVC 框架进行控制器的开发,采用 MyBatis 框架进行数据库操作。 (2)前端技术:采用 HTML、CSS、JavaScript 和 JQuery 进行页面布局和交互效果的实现。 (3)数据库技术:采用 MySQL 数据库进行数据存储和管理。 5. 总结 网上选课系统是一个非常实用的系统,它可以方便学生进行选课操作,也可以方便教师进行课程管理。该系统采用 B/S 架构,采用 Java+SSM 框架进行开发,实现了学生模块、教师模块、管理员模块、公告管理和选课规则管理等功能。在实现时需要注意数据库表的设计和技术实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值