package com.hrms.action; import java.util.Date; import java.util.List; import javax.annotation.Resource; import org.springframework.context.annotation.Scope; import org.springframework.stereotype.Component; import com.hrms.model.Dept; import com.hrms.model.Employee; import com.hrms.model.Leave; import com.hrms.model.User; import com.hrms.service.IDeptService; import com.hrms.service.IEmployeeService; import com.hrms.service.ILeaveService; import com.hrms.service.ILeaveTypeService; import com.hrms.util.Page; @Component("leaveAction") @Scope("prototype") public class LeaveAction extends BaseAction { private static final long serialVersionUID = 952804024763378084L; private Leave leave; private Integer leaveId; private ILeaveService leaveService; private List<Leave> leaves; private Page page; private int currentPage = 1; private IDeptService deptService; private IEmployeeService employeeService; private ILeaveTypeService leaveTypeService; public String leave_list() { int totalSzie = leaveService.getSize(); this.page = new Page(currentPage, totalSzie); leaves = leaveService.getListByPageByDesc(currentPage, page .getPageSize(), "applyDate"); return "success"; } public String leave_my() { User user = (User) getSession().getAttribute("user"); String hql = "from Leave l where l.applyPerson = '" + user.getUserTrueName() + "' order by applyDate desc"; int totalSzie = leaveService.getListSize(hql); this.page = new Page(currentPage, totalSzie); leaves = leaveService.findAllByPage(hql, currentPage, page .getPageSize()); return "success"; } public String leave_detail() { if (leaveId != null) { leave = leaveService.findById(leaveId); return "success"; } else { return "error"; } } public String leave_add() { request = getRequest(); String addAction = request.getParameter("addAction"); if (addAction == null) { User user = (User) getSession().getAttribute("user"); Integer empId = user.getEmpId(); Employee employee = employeeService.findById(empId); request.setAttribute("employee", employee); request.setAttribute("leaveTypes", leaveTypeService.findAll()); return "add"; } String leaveType = request.getParameter("leaveType"); if(leaveType != null && !leaveType.equals("")) leave.setLeaveType(leaveTypeService.findById(Integer.valueOf(leaveType))); leaveService.saveOrUpdate(leave); return "success"; } public String leave_update() { request = getRequest(); String update = getRequest().getParameter("update"); if (update != null && update.equals("update")) { String leaveType = request.getParameter("leaveType"); if(leaveType != null && !leaveType.equals("")) leave.setLeaveType(leaveTypeService.findById(Integer.valueOf(leaveType))); leaveService.update(leave); return "success"; } else if (leaveId != null) { leave = leaveService.findById(leaveId); request.setAttribute("leaveTypes", leaveTypeService.findAll()); return "update"; } else { return "error"; } } public String leave_delete() { request = getRequest(); leave = leaveService.findById(leaveId); String state = leave.getState(); if (state != null && !state.equals("未提交")) { request.setAttribute("errorMessage", "该申请已提交审批流程中,不需再提交,也不能修改和删除!"); request.setAttribute("forwardLink", "recruit_my?currentPage="+ currentPage); return "error"; } if (leaveId != null) { leaveService.deleteById(leaveId); return "success"; } return "error"; } public String leave_submit() { request = getRequest(); String submit = request.getParameter("submit"); if (submit == null || submit.equals("")) { leave = leaveService.findById(leaveId); String state = leave.getState(); if (state == null || state.equals("未提交") || state.equals("")) { Dept dept = deptService.findByDeptName(leave.getApplyDept()); request.setAttribute("employees", dept.getDeptMan()); return "submit"; } } if (submit != null && submit.equals("submit")) { String state = leave.getState(); String approver = leave.getApprover(); leave = leaveService.findById(leaveId); leave.setState(state); leave.setApprover(approver); leaveService.update(leave); return "success"; } request.setAttribute("errorMessage", "该申请已提交审批流程中,不需再提交,也不能修改和删除!"); request.setAttribute("forwardLink", "leave_my?currentPage="+ currentPage); return "error"; } public String leave_approverList() { User user = (User) getSession().getAttribute("user"); String hql = "from Leave l where l.approver = '" + user.getUserTrueName() + "' order by applyDate desc"; int totalSzie = leaveService.getListSize(hql); this.page = new Page(currentPage, totalSzie); leaves = leaveService.findAllByPage(hql, currentPage, page .getPageSize()); return "success"; } public String leave_approver() { String approver = getRequest().getParameter("approver"); if(approver == null || approver.equals("")) { leave = leaveService.findById(leaveId); getRequest().setAttribute("oldState", leave.getState()); leave.setState("审批中"); leaveService.update(leave); return "approver"; } Date approveDate = leave.getApproveDate(); String approveOption = leave.getApproveOption(); String approveResult = leave.getApproveResult(); leave = leaveService.findById(leaveId); leave.setApproveDate(approveDate); leave.setApproveOption(approveOption); leave.setApproveResult(approveResult); leave.setState("已审批"); leaveService.update(leave); return "success"; } public String leave_approverCancel() { leave = leaveService.findById(leaveId); leave.setState(getRequest().getParameter("oldState")); leaveService.update(leave); return "success"; } public String leave_approverEnd() { leave = leaveService.findById(leaveId); leave.setState("审批完毕"); leaveService.update(leave); return "success"; } public String leave_send() { request = getRequest(); leave = leaveService.findById(leaveId); String send = request.getParameter("send"); if (send == null || !send.equals("send")) { request.setAttribute("employees", employeeService.findAll()); return "send"; } String approver = request.getParameter("leave.approver"); leave.setApprover(approver); leave.setApproveResult(null); leave.setApproveOption(null); leave.setState("待审批"); leaveService.update(leave); return "success"; } public Leave getLeave() { return leave; } public void setLeave(Leave leave) { this.leave = leave; } public Integer getLeaveId() { return leaveId; } public void setLeaveId(Integer leaveId) { this.leaveId = leaveId; } public ILeaveService getLeaveService() { return leaveService; } @Resource public void setLeaveService(ILeaveService leaveService) { this.leaveService = leaveService; } public List<Leave> getLeaves() { return leaves; } public void setLeaves(List<Leave> leaves) { this.leaves = leaves; } public Page getPage() { return page; } public void setPage(Page page) { this.page = page; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public IDeptService getDeptService() { return deptService; } @Resource public void setDeptService(IDeptService deptService) { this.deptService = deptService; } public IEmployeeService getEmployeeService() { return employeeService; } @Resource public void setEmployeeService(IEmployeeService employeeService) { this.employeeService = employeeService; } public ILeaveTypeService getLeaveTypeService() { return leaveTypeService; } @Resource public void setLeaveTypeService(ILeaveTypeService leaveTypeService) { this.leaveTypeService = leaveTypeService; } }