基于javaweb+mysql的ssm+maven员工考勤请假管理系统(java+ssm+jsp+bootstrap+mysql)

本文介绍基于JavaWeb和MySQL的SSM+Maven员工考勤请假管理系统。包含管理员、部门经理、员工三种角色,各有不同功能。运行环境需Java≥8、MySQL≥5.7等,开发工具多样。还说明了技术栈、使用方法,适用于课程设计等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基于javaweb+mysql的ssm+maven员工考勤请假管理系统(java+ssm+jsp+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSM+Maven员工考勤请假管理系统(java+ssm+jsp+bootstrap+mysql)

项目介绍

本项目包含管理员、部门经理、员工三种角色;

部门经理角色包含以下功能: 个人信息管理,请假信息审批,部门考勤记录,考勤系统管理等功能。

管理员角色包含以下功能: 管理员登录,员工管理,请假统计等功能。

员工角色包含以下功能: 员工登录,员工签到,考勤记录,请假,请假记录查询等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:是;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jquery+bootstrap

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中mysql.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录
        String result = String.valueOf(unHandled);

        return result;
    }

    //查询请假记录及状态
    @RequestMapping(value = "/leaveRecord")
    public String leaveRecordShow(Model model, Integer page) throws Exception {
        //获取当前用户id
        Subject subject = SecurityUtils.getSubject();
        String id = (String) subject.getPrincipal();
        Staff staff = staffService.findById(id);

        int departmentId = staff.getDepartmentId();
        List<Leave> list = null;
        //页码对象
        PagingVO pagingVO = new PagingVO();
        //设置总页数
        pagingVO.setTotalCount(leaveService.getDepartmentLeaveCount(departmentId));
        if (page == null || page == 0) {
            pagingVO.setToPageNo(1);
            //按页码和用户id查询请假记录
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("departmentId",staff.getDepartmentId());
            list = leaveService.findByPagingD(paramMap);
        } else {
            pagingVO.setToPageNo(page);
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("departmentId",staff.getDepartmentId());
            list = leaveService.findByPagingD(paramMap);
        }

        model.addAttribute("leaveList", list);
        model.addAttribute("pagingVO", pagingVO);

        return "/managers/leaveRecord";
    }

    // 显示请假申请详细信息
    @RequestMapping(value = "/leaveDetail")
    public String gradeCourse(Integer recordId, Model model) throws Exception {
        if (recordId == null) {
            return "";
        }
        Leave leaveDetail= leaveService.findByRecordId(recordId);
        model.addAttribute("leaveDetail", leaveDetail);
        return "/managers/showLeaveDetail";
    }

    //更新请假单审核信息
        String tel = request.getParameter("tel");
        String email = request.getParameter("email");
        String hobby = request.getParameter("hobby");
        String password = request.getParameter("password");

        // 正则表达式,用于验证整数和日期
        String intRegex = "^-?[1-9]\\d*$";
        String dateRegex = "^\\d{4}-\\d{2}-\\d{2}$";
        Pattern intPattern = Pattern.compile(intRegex);
        Pattern datePattern = Pattern.compile(dateRegex);

        // 判断departmentId是否为整数
        String departmentIdStr = request.getParameter("departmentId");
        if (departmentIdStr != null && !departmentIdStr.isEmpty() && intPattern.matcher(departmentIdStr).matches()) {
            departmentId = Integer.parseInt(departmentIdStr);
        }

        // 判断role是否为整数
        String roleStr = request.getParameter("role");
        if (roleStr != null && !roleStr.isEmpty() && intPattern.matcher(roleStr).matches()) {
            role = Integer.parseInt(roleStr);
        }

        // 判断grade是否为日期
        String gradeStr = request.getParameter("grade");
        if (gradeStr != null && !gradeStr.isEmpty() && datePattern.matcher(gradeStr).matches()) {
            grade = new SimpleDateFormat("yyyy-MM-dd").parse(gradeStr);
        }

        // 判断birthday是否为日期
        String birthdayStr = request.getParameter("birthday");
        if (birthdayStr != null && !birthdayStr.isEmpty() && datePattern.matcher(birthdayStr).matches()) {
            birthday = new SimpleDateFormat("yyyy-MM-dd").parse(birthdayStr);
        }

        Staff staff = new Staff();
        staff.setStaffId(staffId);
        staff.setStaffName(staffName);
        staff.setSex(sex);
        staff.setDepartmentId(departmentId);
        staff.setRole(role);
        staff.setGrade(grade);
        staff.setBirthday(birthday);
        staff.setTel(tel);
        staff.setEmail(email);
        staff.setHobby(hobby);
        staff.setPassword(password);

        staffService.updateById(staff);

/**
 */
@Controller
public class LoginController {

    //登录跳转
    @RequestMapping(value = "/login", method = {RequestMethod.GET})
    public String loginUI() throws Exception {
        return "/login";
    }

    @RequestMapping(value="/logout",method = {RequestMethod.GET})
    public String logout() throws Exception{
        return "/login";
    }

    //登录表单处理
    @RequestMapping(value = "/login", method = {RequestMethod.POST})
    public String login(Model model,Staff staff) throws Exception {

        //Shiro实现登录
        UsernamePasswordToken token = new UsernamePasswordToken(staff.getStaffId(),
                staff.getPassword());
        Subject subject = SecurityUtils.getSubject();

        //如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常
        subject.login(token);
        }

        //错误信息
        String message = customException.getMessage();

        //错误信息传递和错误页面跳转
        modelAndView.addObject("message", message);
        modelAndView.setViewName("/error");

        return modelAndView;
    }
}

/**
 */
@Controller
public class LoginController {

    //登录跳转
    @RequestMapping(value = "/login", method = {RequestMethod.GET})
    public String loginUI() throws Exception {
        return "/login";
        List<Leave> list = null;
        //页码对象
        PagingVO pagingVO = new PagingVO();
        //设置总页数
        pagingVO.setTotalCount(leaveService.getDepartmentLeaveCount(departmentId));
        if (page == null || page == 0) {
            pagingVO.setToPageNo(1);
            //按页码和用户id查询请假记录
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("departmentId",staff.getDepartmentId());
            list = leaveService.findByPagingD(paramMap);
        } else {
            pagingVO.setToPageNo(page);
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("departmentId",staff.getDepartmentId());
            list = leaveService.findByPagingD(paramMap);
        }

        model.addAttribute("leaveList", list);
        model.addAttribute("pagingVO", pagingVO);

        return "/managers/leaveRecord";
    }

    // 显示请假申请详细信息
    @RequestMapping(value = "/leaveDetail")
    public String gradeCourse(Integer recordId, Model model) throws Exception {
        if (recordId == null) {
            return "";
        }
        Leave leaveDetail= leaveService.findByRecordId(recordId);
        model.addAttribute("leaveDetail", leaveDetail);
        return "/managers/showLeaveDetail";
    }

    //更新请假单审核信息
    @RequestMapping(value="/handleLeave")
            //用户名错误异常
            modelAndView.addObject("message", "密码错误");
            modelAndView.setViewName("/error");
            return modelAndView;
        }
        else {
            customException = new CustomException(e.getMessage());
        }

        //错误信息
        String message = customException.getMessage();

        //错误信息传递和错误页面跳转
        modelAndView.addObject("message", message);
        modelAndView.setViewName("/error");

        return modelAndView;
    }
}

/**
 */
@Controller
public class LoginController {

    //登录跳转
    @RequestMapping(value = "/login", method = {RequestMethod.GET})
    public String loginUI() throws Exception {

    // 修改员工信息处理
    @RequestMapping(value = "/editStaff", method = {RequestMethod.POST})
    @ResponseBody
    public boolean editStaff(int role,int department,String staffId) throws Exception {
        Map<String,Object> paramMap = new HashMap<String, Object>();
        paramMap.put("staffId",staffId);
        paramMap.put("department",department);
        paramMap.put("role",role);

        staffCustomService.editStaff(paramMap);
        return true;
    }

    // 删除员工
    @RequestMapping(value = "/removeStaff"/*, method = {RequestMethod.GET} */)
    public String removeStaff(String id) throws Exception {
        if (id == null) {
            //加入没有带员工id就进来的话就返回员工显示页面
            return "/admin/showStaff";
        }
        staffCustomService.removeById(id);
        loginService.removeById(id);

        return "redirect:/admin/showStaff";
    }

    // 搜索员工
    @RequestMapping(value = "/selectStaff")
    public String selectStaff(String findByName, Model model) throws Exception {

        List<StaffCustom> list = staffCustomService.findByName(findByName);

        model.addAttribute("staffList", list);
        return "/admin/showStaff";
    }

    // 考勤记录统计查询页面显示
    @RequestMapping(value = "/showSign")
    public String showSign() throws Exception {
        return "/admin/showSign";
    }

    // 考勤记录统计查询
    @RequestMapping(value = "/loadReportInfoData")
    public String loadReportInfoData(Model model,ReportInfo reportInfo) throws Exception {
        List<ReportInfo> reportInfoList = new ArrayList<ReportInfo>();
        try {
            reportInfoList = adminService.loadReportInfoData(reportInfo);
        } catch (Exception e) {
    // 搜索员工
    @RequestMapping(value = "/selectStaff")
    public String selectStaff(String findByName, Model model) throws Exception {

        List<StaffCustom> list = staffCustomService.findByName(findByName);

        model.addAttribute("staffList", list);
        return "/admin/showStaff";
    }

    // 考勤记录统计查询页面显示
    @RequestMapping(value = "/showSign")
    public String showSign() throws Exception {
        return "/admin/showSign";
    }

    // 考勤记录统计查询
    @RequestMapping(value = "/loadReportInfoData")
    public String loadReportInfoData(Model model,ReportInfo reportInfo) throws Exception {
        List<ReportInfo> reportInfoList = new ArrayList<ReportInfo>();
        try {
            reportInfoList = adminService.loadReportInfoData(reportInfo);
        } catch (Exception e) {
            e.printStackTrace();
        }
        model.addAttribute("reportInfoList", reportInfoList);

        return "/admin/showSign";
    }

    //考勤记录详细信息显示
    @RequestMapping(value = "/loadReportDetailData")
    public void loadReportDetailData(PrintWriter printWriter,String reportId, Model model) throws Exception {
        List<ReportDetail> reportDetailList = new ArrayList<ReportDetail>();

        try {
            reportDetailList = adminService.loadReportDetailData(reportId);
        } catch (Exception e) {
            e.printStackTrace();
        }

        /*model.addAttribute("reportDetailList", reportDetailList);*/
        /*System.out.println(reportDetailList.size());*/
        String resultJson = JSON.toJSONString(reportDetailList);
        printWriter.write(resultJson);
        printWriter.flush();
        printWriter.close();
    }

        }

        Staff staff = new Staff();
        staff.setStaffId(staffId);
        staff.setStaffName(staffName);
        staff.setSex(sex);
        staff.setDepartmentId(departmentId);
        staff.setRole(role);
        staff.setGrade(grade);
        staff.setBirthday(birthday);
        staff.setTel(tel);
        staff.setEmail(email);
        staff.setHobby(hobby);
        staff.setPassword(password);

        staffService.updateById(staff);

        return "redirect:/staff/showMassage";
    }

    //查询考勤记录
    @RequestMapping(value = "/signRecord")
    public String signRecordShow(Model model, Integer page) throws Exception {
        //获取当前用户id
        Subject subject = SecurityUtils.getSubject();
        String id = (String) subject.getPrincipal();
        List<Sign> list = null;
        //页码对象
        PagingVO pagingVO = new PagingVO();
        //设置总页数
        pagingVO.setTotalCount(signService.getCountSign(id));
        if (page == null || page == 0) {
            pagingVO.setToPageNo(1);
            //按页码和用户id查询考勤记录
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("id", id);
            list = signService.findByPaging(paramMap);
        } else {
            pagingVO.setToPageNo(page);
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("id", id);
            list = signService.findByPaging(paramMap);
        }

        model.addAttribute("signList", list);

@Controller
@RequestMapping(value = "/staff")
public class StaffController {

    @Resource(name = "staffServiceImpl")
    private StaffService staffService;

    @Resource(name = "signServiceImpl")
    private SignService signService;

    @Resource(name = "leaveServiceImpl")
    private LeaveService leaveService;

    @Resource(name = "departmentServiceImpl")
    private DepartmentService departmentService;

    //签到签退
    @RequestMapping(value="/sign")
    public String staffSign() throws Exception {
        return "/staff/sign";
    }

    //签到
    @RequestMapping(value="/signIn")
    public void staffSignIn(HttpServletResponse response) throws Exception {
        //获取当前用户id
        Subject subject = SecurityUtils.getSubject();
        String id = (String) subject.getPrincipal();
        Staff staff = staffService.findById(id);
        //获取当前时间
    public String signRecordShow(Model model, Integer page) throws Exception {
        //获取当前用户id
        Subject subject = SecurityUtils.getSubject();
        String id = (String) subject.getPrincipal();
        List<Sign> list = null;
        //页码对象
        PagingVO pagingVO = new PagingVO();
        //设置总页数
        pagingVO.setTotalCount(signService.getCountSign(id));
        if (page == null || page == 0) {
            pagingVO.setToPageNo(1);
            //按页码和用户id查询考勤记录
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("id", id);
            list = signService.findByPaging(paramMap);
        } else {
            pagingVO.setToPageNo(page);
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("id", id);
            list = signService.findByPaging(paramMap);
        }

        model.addAttribute("signList", list);
        model.addAttribute("pagingVO", pagingVO);

        return "/staff/signRecord";
    }

    //请假申请
    @RequestMapping(value="/leave")
    public String leave() throws Exception {
        return "/staff/leave";
    }
    @RequestMapping(value="/handinLeave")
    public String handinLeave(String leavetime,String reason) throws Exception {
        //获取当前用户id
        Subject subject = SecurityUtils.getSubject();

@Controller
@RequestMapping(value = "/managers")
public class ManagerController {
    @Resource(name = "staffServiceImpl")
    private StaffService staffService;

    @Resource(name = "departmentServiceImpl")
    private DepartmentService departmentService;

    @Resource(name = "signServiceImpl")
    private SignService signService;

    @Resource(name = "leaveServiceImpl")
    private LeaveService leaveService;

    //显示个人信息
    @RequestMapping(value="/showMassage", method = {RequestMethod.GET})
    public String staffMassageShow(Model model) throws Exception {
        //获取当前用户id
        Subject subject = SecurityUtils.getSubject();
        String id = (String) subject.getPrincipal();
        //通过id获取员工信息
        Staff staff = staffService.findById(id);
        if (staff == null) {
            throw new CustomException("未找到员工信息");
        }
        List<Department> list = departmentService.finAll();

        model.addAttribute("departmentList", list);
        model.addAttribute("staff", staff);
        return "/managers/showMassage";
    }

    //更新个人信息
    @RequestMapping(value="/showMassage", method = {RequestMethod.POST})
    public String staffMassageUpdate(String tel,String email,String hobby) throws Exception {
        //获取当前用户id
        Subject subject = SecurityUtils.getSubject();
        String id = (String) subject.getPrincipal();

        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("id",id);
        paramMap.put("tel",tel);
        paramMap.put("email",email);
        paramMap.put("hobby",hobby);
    @RequestMapping(value = "/login", method = {RequestMethod.POST})
    public String login(Model model,Staff staff) throws Exception {

        //Shiro实现登录
        UsernamePasswordToken token = new UsernamePasswordToken(staff.getStaffId(),
                staff.getPassword());
        Subject subject = SecurityUtils.getSubject();

        //如果获取不到用户名就是登录失败,但登录失败的话,会直接抛出异常
        subject.login(token);

        if (subject.hasRole("admin")) {
            return "redirect:/admin/showStaff";
        } else if (subject.hasRole("manager")) {
            return "redirect:/managers/showMassage";
        } else if (subject.hasRole("staff")) {
            return "redirect:/staff/sign";
        }

        return "/login";
    }

}

/**
 */
@Controller
public class RestPasswordController {

    @Resource(name = "loginServiceImpl")
    private LoginService loginService;

    // 本账户密码重置
    @RequestMapping(value = "/passwordReset", method = {RequestMethod.POST})
    }

    //查询请假记录及状态
    @RequestMapping(value = "/leaveRecord")
    public String leaveRecordShow(Model model, Integer page) throws Exception {
        //获取当前用户id
        Subject subject = SecurityUtils.getSubject();
        String id = (String) subject.getPrincipal();
        List<Leave> list = null;
        //页码对象
        PagingVO pagingVO = new PagingVO();
        //设置总页数
        pagingVO.setTotalCount(leaveService.getCountLeave(id));
        if (page == null || page == 0) {
            pagingVO.setToPageNo(1);
            //按页码和用户id查询请假记录
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("id", id);
            list = leaveService.findByPaging(paramMap);
        } else {
            pagingVO.setToPageNo(page);
            Map<String, Object> paramMap = new HashMap<String, Object>();
            paramMap.put("toPageNo", pagingVO.getTopageNo());
            paramMap.put("pageSize", pagingVO.getPageSize());
            paramMap.put("id", id);
            list = leaveService.findByPaging(paramMap);
        }

        model.addAttribute("leaveList", list);
        model.addAttribute("pagingVO", pagingVO);

        return "/staff/leaveRecord";
    }

    // 显示请假申请详细信息
    @RequestMapping(value = "/leaveDetail")
    public String gradeCourse(Integer recordId, Model model) throws Exception {
        if (recordId == null) {
            return "";
        }
        Leave leaveDetail= leaveService.findByRecordId(recordId);
        model.addAttribute("leaveDetail", leaveDetail);
        return "/staff/showLeaveDetail";
    }

    //修改密码
    @RequestMapping(value = "/passwordReset")
        }
        model.addAttribute("reportInfoList", reportInfoList);

        return "/admin/showSign";
    }

    //考勤记录详细信息显示
    @RequestMapping(value = "/loadReportDetailData")
    public void loadReportDetailData(PrintWriter printWriter,String reportId, Model model) throws Exception {
        List<ReportDetail> reportDetailList = new ArrayList<ReportDetail>();

        try {
            reportDetailList = adminService.loadReportDetailData(reportId);
        } catch (Exception e) {
            e.printStackTrace();
        }

        /*model.addAttribute("reportDetailList", reportDetailList);*/
        /*System.out.println(reportDetailList.size());*/
        String resultJson = JSON.toJSONString(reportDetailList);
        printWriter.write(resultJson);
        printWriter.flush();
        printWriter.close();
    }

    // 请假记录查询页面显示
    @RequestMapping(value = "/showLeave")
    public String showLeave() throws Exception {
        return "/admin/showLeave";
    }

    // 请假记录查询页面显示
    @RequestMapping(value = "/showLeaveRecord")
    @ResponseBody
    public Map<String, Object> showLeaveRecord(String searchText) throws Exception {
        searchText = searchText == null?"":searchText;
        List<Leave> leaveList = new ArrayList<Leave>();
        List<Leave> returnLeaves = new ArrayList<Leave>();
        try {
            leaveList = adminService.loadLeaveList();
        String resultJson = JSON.toJSONString(reportDetailList);
        printWriter.write(resultJson);
        printWriter.flush();
        printWriter.close();
    }

    // 请假记录查询页面显示
    @RequestMapping(value = "/showLeave")
    public String showLeave() throws Exception {
        return "/admin/showLeave";
    }

    // 请假记录查询页面显示
    @RequestMapping(value = "/showLeaveRecord")
    @ResponseBody
    public Map<String, Object> showLeaveRecord(String searchText) throws Exception {
        searchText = searchText == null?"":searchText;
        List<Leave> leaveList = new ArrayList<Leave>();
        List<Leave> returnLeaves = new ArrayList<Leave>();
        try {
            leaveList = adminService.loadLeaveList();
        } catch (Exception e) {
            e.printStackTrace();
        }
        for(Leave leave:leaveList) {
        	if(String.valueOf(leave.getStaffId()).contains(searchText)) {
        		returnLeaves.add(leave);
        	}
        }
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
        JSONArray jarray = JSONArray.fromObject(returnLeaves,jsonConfig);

        for (int i = 0; i < jarray.size(); i++) {
            JSONObject json=new JSONObject();
            json=jarray.getJSONObject(i);
            if(json.get("handleTime")==null||!"".equals(json.get("handleTime"))){//因为在添加的时候只有这个值可能为NULL所以我就判断了这个。
                json.put("handleTime", "--");
                jarray.set(i,json);
            }
        }

    }

    //更新请假单审核信息
    @RequestMapping(value="/handleLeave")
    @ResponseBody
    public boolean handleLeave(String reply,String result,Integer recordId) throws Exception {
        Map<String, Object> paramMap = new HashMap<String, Object>();
        paramMap.put("recordId",recordId);
        paramMap.put("reply",reply);
        paramMap.put("result",result);
        leaveService.handleLeave(paramMap);
        return true;
    }

}

/**
 *    全局异常处理器
 *    springmvc提供一个HandlerExceptionResolver接口
 *      只要实现该接口,并配置到spring 容器里,该类就能
 *      成为默认全局异常处理类
 *
 *   全局异常处理器只有一个,配置多个也没用。
 */
public class CustomExceptionResolver implements HandlerExceptionResolver {

    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {

        ModelAndView modelAndView = new ModelAndView();

        CustomException customException;
        if (e instanceof CustomException) {
            customException = (CustomException)e;
        return "/admin/showLeave";
    }

    // 请假记录查询页面显示
    @RequestMapping(value = "/showLeaveRecord")
    @ResponseBody
    public Map<String, Object> showLeaveRecord(String searchText) throws Exception {
        searchText = searchText == null?"":searchText;
        List<Leave> leaveList = new ArrayList<Leave>();
        List<Leave> returnLeaves = new ArrayList<Leave>();
        try {
            leaveList = adminService.loadLeaveList();
        } catch (Exception e) {
            e.printStackTrace();
        }
        for(Leave leave:leaveList) {
        	if(String.valueOf(leave.getStaffId()).contains(searchText)) {
        		returnLeaves.add(leave);
        	}
        }
        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.registerJsonValueProcessor(java.util.Date.class, new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
        JSONArray jarray = JSONArray.fromObject(returnLeaves,jsonConfig);

        for (int i = 0; i < jarray.size(); i++) {
            JSONObject json=new JSONObject();
            json=jarray.getJSONObject(i);
            if(json.get("handleTime")==null||!"".equals(json.get("handleTime"))){//因为在添加的时候只有这个值可能为NULL所以我就判断了这个。
                json.put("handleTime", "--");
                jarray.set(i,json);
            }
        }

        Map<String, Object> map = new HashMap<String, Object>();
        if(returnLeaves != null) {
            map.put("total", jarray.size());
            map.put("rows", jarray);
        }
        /*String resultJson = JSON.toJSONString(leaveList);
        System.out.println(resultJson);*/

        return map;

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值