java+jsp+sql+servlet人事管理系统

系统的功能需求
3.2.1系统的基本功能
管理员子系统功能如下:

 代码已经上传github,下载地址: https://github.com/21503882/personnel-manage
1、员工管理:对员工的信息进行管理。
2、员工工资管理:对员工工资的信息进行管理。
3、员工考核管理:对员工考核的信息进行管理。
4、员工考勤管理:对员工考勤的信息进行管理。
5、员工医保管理:对员工医保的信息进行管理。
6、系统维护管理:对系统的管理员帐号信息进行管理。
7、修改密码:登录系统的用户修改个人密码信息。
员工子系统功能如下:
1、员工工资管理:查看员工个人的工资信息。
2、员工考核管理:查看员工个人的考核信息。
3、员工考勤管理:查看员工个人的考核信息。
4、员工医保管理:查看员工个人的医保信息。
5、修改密码:登录系统的用户修改个人密码信息。
5.3.1 系统登录模块
系统登录模块负责对使用本系统的用户进行身份验证,只有通过验证的用户才可以使用本系统。登录界面对应的磁盘文件为servlet/LoginServlet?method= loginout,在登录模块中,需要输入用户名及密码。本系统的使用用户共分为2种:管理员,员工,当用户输入用户名和密码后,系统会自动判断用户的类型,并进入到相应的用户界面,等待用户进行操作,登录模块的页面设计如图5.1所示:
 
图5.1 登录界面
5.3.2 系统主界面
用户身份验证成功后,进入操作主界面,系统主界面对应的页面文件为pages/sy.jsp。在主界面中,左列列出了全部的操作功能按钮,用户可以选择某个按钮进行管理操作。页面的设计如图5.2所示:
 
图5.2 系统主界面
5.3.3管理员管理模块
对系统的管理员信息进行添加、修改、删除管理。
1.管理员管理主页面,在主页面中显示全部的管理员信息。并可按姓名快速查找。模块对应的磁盘文件为servlet/UsersServlet?method=findAllUsers,本页的界面设计如图5.3所示:
 
图5.3 管理员管理主页面 图5.4添加管理员页面
 
图5.5修改管理员页面

5.3.4员工管理模块
对员工信息进行添加、修改、删除管理
1.员工管理主界面
员工管理主界面中提供了新增,编辑删除和查询员工信息功能。员工管理主界面对应的磁盘文件为servlet/EmployeeServlet?method=findAllEmployee,员工管理主界面如图5.6所示:
 
图5.6员工管理主界面
2.添加员工页面
在员工管理主界面中点击添加按钮。打开添加员工信息页面,页面对应的磁盘文件为servlet/EmployeeServlet?method=addEmployee,界面如图5.7所示:
 
图5.7添加员工页面
3.修改员工信息页面
点击相应员工记录的修改按钮,进入修改员工信息界面。修改界面对应的磁盘文件为servlet/EmployeeServlet?method=updatePage&eid=3,修改界面如图5.8所示:
 
图5.8修改员工信息界面
5.3.5员工工资管理模块
员工工资管理模块完成对员工工资信息的管理。
1.员工工资管理主页面,模块对应的磁盘文件为servlet/LaborageServlet? method=findAllLaborage,页面设计如图5.9所示:   
 
图5.9员工工资管理界面
2.添加员工工资管理页面,模块对应的磁盘文件为servlet/LaborageServlet? method= addLaborage,页面设计如图5.10所示:   
 
图5.10添加员工工资管理界面
5.3.6员工考核管理模块
员工考核管理模块对员工的考核信息进行添加、删除、修改管理。
1.员工考核信息管理主界面
完成员工考核信息的管理功能。可按员工名称进行快速查询。员工考核信息管理主界面对应的磁盘文件为servlet/AssessServlet?method=findAllAssess。员工考核信息管理模块界面如图4.11所示:
 
图5.11员工考核管理主页面
2.添加员工考核信息管理界面
添加新的员工考核信息,界面对应的磁盘文件为servlet/AssessServlet?method= addAssess。添加员工考核信息管理模块界面如图5.12所示:
 
图5.12添加员工考核页面

5.3.7员工考勤管理模块
对员工的考勤信息进行添加、删除、修改管理。
1.员工考勤管理主页面,通过员工姓名可以快速查询考勤信息。界面对应的磁盘文件为servlet/CheckedServlet?method=findAllChecked,界面设计如图5.13所示:
 
图5.13员工考勤管理主页面
2.添加员工考勤管理页面,添加新的员工考勤信息。界面对应的磁盘文件为servlet/CheckedServlet?method=addChecked,界面设计如图5.14所示:
 
图5.14添加员工考勤管理页面
5.3.8员工医保管理模块
对员工的医保缴费信息进行添加、删除、修改管理。
1.员工医保管理主页面,通过员工姓名可以快速查询医保信息。界面对应的磁盘文件为servlet/MedicareServlet?method=findAllMedicare,界面设计如图5.15所示:
 
图5.15员工医保管理主页面
 
添加员工医保管理页面

5.4员工模块的设计和实现
5.4.1 员工子系统主页面模块
员工用户登录系统后进入员工的主页面。对应的磁盘文件为pages/sy.jsp,登录模块的页面设计如图5.16所示:
 
图5.16 员工子系统主页面
5.4.2 员工工资模块
员工查看个人的工资信息。对应的磁盘文件为servlet/LaborageServlet?method=findMyLaborage,模块的页面设计如图5.17所示:
 
图5.17 员工工资页面

5.4.3 员工考核模块
员工查看个人的考核信息。对应的磁盘文件为servlet/AssessServlet?method=findMyAssess,模块的页面设计如图5.18所示:
 
图5.18 员工考核页面
5.4.4员工考勤模块
员工查看个人的考勤信息。对应的磁盘文件为servlet/CheckedServlet?method=findMyChecked,模块的页面设计如图5.19所示:
 
图5.19 员工考勤页面

5.4.5员工医保模块
员工查看个人的医保缴费信息。对应的磁盘文件为servlet/MedicareServlet?method=findMyMedicare,模块的页面设计如图5.20所示:
 
图5.20 员工医保页面
5.4.6修改密码模块
修改密码界面用于修改当前登录系统用户的密码。为防止密码被其他人修改,在修改新密码时要求输入原密码。对应的磁盘文件为servlet/EmployeeServlet?method=updatePasswordPage,模块的页面设计如图5.21所示:
 
图5.21 修改密码页面

import cn.lnj.project.car.data.User;
import cn.lnj.project.car.service.AdminService;
import cn.lnj.project.car.service.UserService;
import cn.lnj.project.car.util.SaveImages;
import cn.lnj.project.car.util.SendMail;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.UUID;

/**
 * 用户的控制层
 * @author 刘乃杰
 */
@Controller
@RequestMapping(value = "/user")
public class UserController {

    @Autowired
    private UserService userService;
    @Autowired
    private SendMail sendMail;
    @Autowired
    private SaveImages saveImages;
    @Autowired
    private AdminService adminService;

    /**
     *  新建用户
     * @param email 邮箱
     * @param userName 用户昵称
     * @param userPassword 用户密码
     * @param response
     */
    @RequestMapping(value = "/insert" , method = RequestMethod.POST )
    @ResponseBody()
    public void insert(@RequestParam String email, String userName, String userPassword, HttpServletResponse response){
        if( !("".equals(email))&& !("".equals(userName)) && !("".equals(userPassword)) ){
            User user = new User();
            user.setUserId(UUID.randomUUID().toString());
            user.setUserCount(email);
            user.setUserName(userName);
            user.setUserEmail(email);
            user.setUserPassword(userPassword);
            Date currentTime = new Date();
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
            String dateString = formatter.format(currentTime);
            user.setUserRegistration(dateString);
            user.setUserImage("default.png");
            userService.insertUser(user);
            sendMail.active(email,user.getUserId());
        }
    }

    /**
     * 查询全部用户
     * @return 全部用户的javaBean
     */
    @RequestMapping(value = "/all" , method = RequestMethod.GET)
    @ResponseBody()
    public List<User> selectAllUser(){
        return userService.selectAllUser();
    }


    /**
     * 根据id查询用户
     * @param userId 用户的id
     * @return 一个用户的javaBean
     */
    @RequestMapping(value = "/id", method = RequestMethod.GET)
    @ResponseBody()
    public JSONObject selectUserById(@RequestParam String userId){
        return  userService.selectById(userId);
    }

    /**
     * 登录、注册检查
     * 前台表单的name值不同,可据此改变查询条件,也可改变返回内容
     * @param name 表单name值
     * @param param 表单输入值
     * @return 校验结果和显示文字
     */
    @RequestMapping( value = "/check",method = RequestMethod.GET)
    @ResponseBody()
    public JSONObject loginRegistCheck(@RequestParam String name,String param){
        return userService.check(name,param);
    }

    /**
     * 登录时密码校验
     * @param userCount 用户登录账号
     * @param password 用户密码
     * @return
     */
    @RequestMapping( value = "/checkPassword",method = RequestMethod.GET)
    @ResponseBody()
    public JSONObject checkPassword(@RequestParam String userCount,String password){
        return userService.checkPassword(userCount,password);
    }

    /**
     * 用户通过邮件激活账户
     * @param userId 用户id
     */
    @RequestMapping(value = "/active",method = RequestMethod.GET)
    @ResponseBody()
    public JSONObject activeCount(@RequestParam String userId){
        return userService.activeCount(userId);
    }


    /**
     * 登录时检查用户等级,分别跳转到不同页面
     * @param userCount 用户账号
     * @return level 用户等级 0 用户,1 管理员,2 超级管理员
     *  当为管理员时 还返还 该管理员所在商家的信息
     */
    @RequestMapping(value = "/login",method = RequestMethod.POST)
    @ResponseBody
    public JSONObject login(@RequestParam String userCount){
        return userService.checkAdmin(userCount);
    }

    /**
     * 用户更新密码
     * @param userId 用户id
     * @param userPassword 新密码
      */
    @RequestMapping(value = "/updatePassword",method = RequestMethod.POST)
    @ResponseBody
    public void updatePassword(@RequestParam String userId,String userPassword){
        userService.updatePassword(userId,userPassword);
    }

    @RequestMapping(value = "/updateName",method = RequestMethod.GET)
    @ResponseBody
    public void updateUserName(@RequestParam String userId,String userName){
        User user=new User();
        user.setUserId(userId);
        user.setUserName(userName);
        userService.updateUser(user);
    }

    /**
     * 输入框自动提示
     * @param keyword 输入的关键字
     * @return
     */
    @RequestMapping(value = "/autoComplete",method = RequestMethod.GET)
    @ResponseBody
    public JSONArray autoComplete(@RequestParam String keyword){
        return userService.autoComplete(keyword);
    }

    /**
     * 设置管理员
     * @param userCount 用户账号
     * @param shopName 商家名称
     * @return
     */
    @RequestMapping(value = "/setAdmin",method = RequestMethod.GET)
    @ResponseBody
    public JSONObject setAdmin(@RequestParam String userCount,String shopName){
        return userService.setAdmin(userCount,shopName);
    }

    /**
     *  根据用户id查询商家名称
     * @param userId 用户id
     * @return
     */
    @RequestMapping(value = "/selectShopNameByUserId",method = RequestMethod.GET,produces="text/html;charset=UTF-8;")
    @ResponseBody
    public String selectShopNameByUserId(@RequestParam String userId){
       return userService.selectShopNameByUserId(userId);
    }

    /**
     *  用户更换头像
     * @param userImage 用户头像
     * @param userId 用户id
     * @param request
     * @return
     */
    @RequestMapping(value = "saveUserImage",method = RequestMethod.POST,produces="text/html;charset=UTF-8;")
    @ResponseBody
    public String saveUserImage(@RequestParam("userImage") MultipartFile userImage,@RequestParam("userId") String userId, HttpServletRequest request){
        String imageName = UUID.randomUUID().toString();
        saveImages.saveImage(userImage,imageName,request);
        userService.updateImage(imageName+".png",userId);
        return imageName+".png";
    }

    /**
     * 删除管理员
     * @param ids 用户id,通过“,”拼接
     */
    @RequestMapping(value = "delete",method = RequestMethod.GET)
    @ResponseBody
    public void deleteAdmin(@RequestParam String ids){
        String[] id = ids.split(",");
        for (String content:id) {
            userService.deleteAdmin(content);
            adminService.deleteAdmin(content);
        }
    }
}
代码已经上传github,下载地址: https://github.com/21503882/personnel-manage

发布了38 篇原创文章 · 获赞 10 · 访问量 4172

猜你喜欢

转载自blog.csdn.net/QQ21503882/article/details/101361945