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.Recruit;
import com.hrms.model.User;
import com.hrms.service.IDeptService;
import com.hrms.service.IEmployeeService;
import com.hrms.service.IRecruitService;
import com.hrms.util.Page;
@Component("recruitAction")
@Scope("prototype")
public class RecruitAction extends BaseAction {
private static final long serialVersionUID = -2189912374125938498L;
private Recruit recruit;
private Integer recruitId;
private IRecruitService recruitService;
private IEmployeeService employeeService;
private IDeptService deptService;
private List<Recruit> recruits;
private Page page;
private int currentPage = 1;
public String recruit_list() {
int totalSzie = recruitService.getSize();
this.page = new Page(currentPage, totalSzie);
recruits = recruitService.getListByPageByDesc(currentPage, page
.getPageSize(), "applyDate");
return "success";
}
public String recruit_my() {
User user = (User) getSession().getAttribute("user");
String hql = "from Recruit r where r.applyPerson = '"
+ user.getUserTrueName() + "' order by applyDate desc";
int totalSzie = recruitService.getListSize(hql);
this.page = new Page(currentPage, totalSzie);
recruits = recruitService.findAllByPage(hql, currentPage, page
.getPageSize());
return "success";
}
public String recruit_detail() {
if (recruitId != null) {
recruit = recruitService.findById(recruitId);
return "success";
} else {
return "error";
}
}
public String recruit_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);
getRequest().setAttribute("employee", employee);
return "add";
}
recruitService.saveOrUpdate(recruit);
return "success";
}
public String recruit_update() {
request = getRequest();
recruit = recruitService.findById(recruitId);
String state = recruit.getState();
if (state != null && !state.equals("未提交")) {
request.setAttribute("errorMessage", "该申请已提交审批流程中,不需再提交,也不能修改和删除!");
request.setAttribute("forwardLink", "recruit_my?currentPage="+ currentPage);
return "error";
}
String update = getRequest().getParameter("update");
if (update != null && update.equals("update")) {
recruitService.update(recruit);
return "success";
} else if (recruitId != null) {
recruit = recruitService.findById(recruitId);
return "update";
} else {
return "error";
}
}
public String recruit_delete() {
request = getRequest();
recruit = recruitService.findById(recruitId);
String state = recruit.getState();
if (state != null && !state.equals("未提交")) {
request.setAttribute("errorMessage", "该申请已提交审批流程中,不需再提交,也不能修改和删除!");
request.setAttribute("forwardLink", "recruit_my?currentPage="+ currentPage);
return "error";
}
if (recruitId != null) {
recruitService.deleteById(recruitId);
return "success";
}
return "error";
}
public String recruit_submit() {
request = getRequest();
String submit = request.getParameter("submit");
if (submit == null || submit.equals("")) {
recruit = recruitService.findById(recruitId);
String state = recruit.getState();
if (state == null || state.equals("未提交")) {
Dept dept = deptService.findByDeptName("人力资源部");
if (dept != null) {
request.setAttribute("employees", dept.getEmployees());
} else {
dept = deptService.findByDeptName(recruit.getApplyPerson());
request.setAttribute("employees", dept.getDeptMan());
}
return "submit";
}
}
if (submit != null && submit.equals("submit")) {
String state = recruit.getState();
String approver = recruit.getApprover();
recruit = recruitService.findById(recruitId);
recruit.setState(state);
recruit.setApprover(approver);
recruitService.update(recruit);
return "success";
}
request.setAttribute("errorMessage", "该申请已提交审批流程中,不需再提交,也不能修改和删除!");
request.setAttribute("forwardLink", "recruit_my?currentPage="+ currentPage);
return "error";
}
public String recruit_approverList() {
User user = (User) getSession().getAttribute("user");
String hql = "from Recruit r where r.approver = '"
+ user.getUserTrueName() + "' order by applyDate desc";
int totalSzie = recruitService.getListSize(hql);
this.page = new Page(currentPage, totalSzie);
recruits = recruitService.findAllByPage(hql, currentPage, page
.getPageSize());
return "success";
}
public String recruit_approver() {
String approver = getRequest().getParameter("approver");
if(approver == null || approver.equals("")) {
recruit = recruitService.findById(recruitId);
getRequest().setAttribute("oldState", recruit.getState());
recruit.setState("审批中");
recruitService.update(recruit);
return "approver";
}
Date approveDate = recruit.getApproveDate();
String approverOption = recruit.getApproverOption();
String approveResult = recruit.getApproveResult();
recruit = recruitService.findById(recruitId);
recruit.setApproveDate(approveDate);
recruit.setApproverOption(approverOption);
recruit.setApproveResult(approveResult);
recruit.setState("已审批");
recruitService.update(recruit);
return "success";
}
public String recruit_approverCancel() {
recruit = recruitService.findById(recruitId);
recruit.setState(getRequest().getParameter("oldState"));
recruitService.update(recruit);
return "success";
}
public String recruit_approverEnd() {
recruit = recruitService.findById(recruitId);
recruit.setState("审批完毕");
recruitService.update(recruit);
return "success";
}
public String recruit_publish() {
request = getRequest();
String publish = request.getParameter("publish");
if (publish == null || !publish.equals("publish")) {
recruit = recruitService.findById(recruitId);
return "publish";
}
Date publishDate = recruit.getPublishDate();
Date deadline = recruit.getDeadline();
String applyPersonEmail = recruit.getApplyPersonEmail();
recruit = recruitService.findById(recruitId);
recruit.setPublishDate(publishDate);
recruit.setDeadline(deadline);
recruit.setApplyPersonEmail(applyPersonEmail);
recruit.setState("已发布");
recruitService.update(recruit);
return "success";
}
public String recruit_send() {
request = getRequest();
recruit = recruitService.findById(recruitId);
String send = request.getParameter("send");
if (send == null || !send.equals("send")) {
request.setAttribute("employees", employeeService.findAll());
return "send";
}
String approver = request.getParameter("recruit.approver");
recruit.setApprover(approver);
recruit.setApproveResult(null);
recruit.setApproverOption(null);
recruit.setState("待审批");
recruitService.update(recruit);
return "success";
}
public Recruit getRecruit() {
return recruit;
}
public void setRecruit(Recruit recruit) {
this.recruit = recruit;
}
public Integer getRecruitId() {
return recruitId;
}
public void setRecruitId(Integer recruitId) {
this.recruitId = recruitId;
}
public IRecruitService getRecruitService() {
return recruitService;
}
@Resource
public void setRecruitService(IRecruitService recruitService) {
this.recruitService = recruitService;
}
public List<Recruit> getRecruits() {
return recruits;
}
public void setRecruits(List<Recruit> recruits) {
this.recruits = recruits;
}
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 IEmployeeService getEmployeeService() {
return employeeService;
}
@Resource
public void setEmployeeService(IEmployeeService employeeService) {
this.employeeService = employeeService;
}
public IDeptService getDeptService() {
return deptService;
}
@Resource
public void setDeptService(IDeptService deptService) {
this.deptService = deptService;
}
}