package org.fireflow.demo.holiday.module;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpSession;
import org.fireflow.client.WorkflowSession;
import org.fireflow.client.WorkflowSessionFactory;
import org.fireflow.client.WorkflowStatement;
import org.fireflow.client.impl.WorkflowStatementLocalImpl;
import org.fireflow.demo.MainModule;
import org.fireflow.demo.FireflowDemoDao;
import org.fireflow.demo.common.bean.Dictionary;
import org.fireflow.demo.holiday.bean.Holiday;
import org.fireflow.demo.holiday.bean.LeaveRequest;
import org.fireflow.demo.holiday.bean.LeaveRequestDetail;
import org.fireflow.demo.misc.Utils;
import org.fireflow.demo.security.bean.User;
import org.fireflow.demo.workflow.Constants;
import org.fireflow.demo.workflow.WorkflowUtil;
import org.fireflow.demo.workflow.ext.BusinessObjectWrappImpl;
import org.fireflow.engine.context.RuntimeContext;
import org.fireflow.engine.entity.runtime.ProcessInstance;
import org.fireflow.engine.entity.runtime.WorkItem;
import org.fireflow.engine.exception.InvalidOperationException;
import org.fireflow.engine.exception.WorkflowProcessNotFoundException;
import org.fireflow.model.InvalidModelException;
import org.nutz.dao.Cnd;
import org.nutz.dao.pager.Pager;
import org.nutz.ioc.loader.annotation.IocBean;
import org.nutz.log.Log;
import org.nutz.log.Logs;
import org.nutz.mvc.Mvcs;
import org.nutz.mvc.annotation.At;
import org.nutz.mvc.annotation.Ok;
import org.nutz.mvc.annotation.Param;
import org.nutz.service.EntityService;
@At("/module/holiday/LeaveRequest")
@IocBean(fields = { "dao", "fireflowRuntimeContext" })
public class LeaveRequestModule extends EntityService<LeaveRequest> {
private RuntimeContext fireflowRuntimeContext = null;
public RuntimeContext getFireflowRuntimeContext() {
return fireflowRuntimeContext;
}
public void setFireflowRuntimeContext(RuntimeContext fireflowRuntimeContext) {
this.fireflowRuntimeContext = fireflowRuntimeContext;
}
private static final Log log = Logs.get();
@At
public Object list(@Param("page") int page, @Param("rows") int rows) {
if (rows < 1)
rows = 10;
Pager pager = dao().createPager(page, rows);
List<LeaveRequest> list = dao().query(LeaveRequest.class, null, pager);
Map<String, Object> map = new HashMap<String, Object>();
if (pager != null) {
pager.setRecordCount(dao().count(LeaveRequest.class));
map.put("pager", pager);
}
map.put("list", list);
return map;
}
// @At
// public boolean delete(@Param("..") LeaveRequest obj){
// try{
// dao().delete(obj);
// return true;
// }catch (Throwable e) {
// if (log.isDebugEnabled())
// log.debug("E!!",e);
// return false;
// }
// }
/**
* 从待办列表打开请假单进行编辑
*
* @return
*/
@At
@Ok("jsp:/template/holiday/LeaveRequest_approve.jsp")
public Map<String, Object> loadLeaveRequestForApprove(
@Param("workItemId") String workItemId,
@Param("billCode") String billCode,
@Param("activityId") String activityId) {
if (workItemId == null || workItemId.trim().equals("")) {
throw new RuntimeException("没有发现workItemId,打开只读表单");
}
Map<String, Object> result = new HashMap<String, Object>();
result.put(MainModule.WORKITEM_ID, workItemId);// 将workitem id传递到页面上
result.put("activityId", activityId);
org.fireflow.demo.security.bean.User demoUser = Utils.getCurrentUser();
LeaveRequest leaveRequest = dao().fetch(LeaveRequest.class, billCode);
result.put("LeaveRequest", leaveRequest);
// 获得假期类别字典
List<Dictionary> leaveTypes = dao().query(Dictionary.class,
Cnd.where("dicType", "=", "leave_type").asc("sort"));
result.put("LeaveTypes", leaveTypes);
// 查询当前用户的所有请假情况//
Date now = ((FireflowDemoDao) dao()).getSysDate();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DATE, -1);
Date yesterday = calendar.getTime();
List<Holiday> holidays = dao().query(
Holiday.class,
Cnd.where("employeeId", "=", demoUser.getEmployeeId()).and(
Cnd.exps("yearStart", "<=", now).or("yearEnd", ">=",
yesterday)));
result.put("Holidays", holidays);
return result;
}
/**
* 从待办列表打开请假单进行编辑
*
* @return
*/
@At
@Ok("jsp:/template/holiday/LeaveRequest_edit.jsp")
public Map<String, Object> loadLeaveRequestForEdit(
@Param("workItemId") String workItemId,
@Param("billCode") String billCode) {
if (workItemId == null || workItemId.trim().equals("")) {
throw new RuntimeException("没有发现workItemId,打开只读表单");
}
Map<String, Object> result = new HashMap<String, Object>();
result.put(MainModule.WORKITEM_ID, workItemId);// 将workitem id传递到页面上
org.fireflow.demo.security.bean.User demoUser = Utils.getCurrentUser();
LeaveRequest leaveRequest = dao().fetch(LeaveRequest.class, billCode);
result.put("LeaveRequest", leaveRequest);
// 获得假期类别字典
List<Dictionary> leaveTypes = dao().query(Dictionary.class,
Cnd.where("dicType", "=", "leave_type").asc("sort"));
result.put("LeaveTypes", leaveTypes);
// 查询当前用户的所有请假情况//
Date now = ((FireflowDemoDao) dao()).getSysDate();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DATE, -1);
Date yesterday = calendar.getTime();
List<Holiday> holidays = dao().query(
Holiday.class,
Cnd.where("employeeId", "=", demoUser.getEmployeeId()).and(
Cnd.exps("yearStart", "<=", now).or("yearEnd", ">=",
yesterday)));
result.put("Holidays", holidays);
return result;
}
/**
* 更新请假单信息
*
* @param obj
* @return
*/
@At
@Ok("jsp:/template/holiday/LeaveRequest_edit.jsp")
public Map<String, Object> update(@Param("billCode") String billCode,
@Param("leaveType") String leaveType) {
org.fireflow.demo.security.bean.User demoUser = Utils.getCurrentUser();
Map<String, Object> result = updateJson(billCode, leaveType);
// 查询当前用户的所有请假情况
Date now = ((FireflowDemoDao) dao()).getSysDate();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DATE, -1);
Date yesterday = calendar.getTime();
List<Holiday> holidays = dao().query(
Holiday.class,
Cnd.where("employeeId", "=", demoUser.getEmployeeId()).and(
Cnd.exps("yearStart", "<=", now).or("yearEnd", ">=",
yesterday)));
result.put("Holidays", holidays);
return result;
}
/**
* 更新请假单信息
*
* @param obj
* @return
*/
@At
@Ok("json")
public Map<String, Object> approveJson(@Param("billCode") String billCode,
@Param("activityId") String activityId,
@Param("approveFlag") int approveFlag,
@Param("approveInfo") String approveInfo) {
Map<String, Object> result = new HashMap<String, Object>();
org.fireflow.demo.security.bean.User demoUser = Utils.getCurrentUser();
try {
LeaveRequest leaveRequest = dao().fetch(LeaveRequest.class,
billCode);
if (activityId != null && activityId.indexOf("DeptMgrApprove") >= 0) {
// 部门经理审批
leaveRequest.setDeptApproveFlag(approveFlag);
leaveRequest.setDeptApproveInfo(approveInfo);
leaveRequest.setDeptApproveTime(new Date());
leaveRequest.setDeptMgrId(demoUser.getLoginName());
leaveRequest.setDeptMgrName(demoUser.getName());
} else if (activityId != null
&& activityId.indexOf("DirectorApprove") >= 0) {
leaveRequest.setDirectorApproveFlag(approveFlag);
leaveRequest.setDirectorApproveInfo(approveInfo);
leaveRequest.setDirectorApproveTime(new Date());
leaveRequest.setDirectorId(demoUser.getLoginName());
leaveRequest.setDirectorName(demoUser.getName());
}
dao().update(leaveRequest);
result.put("LeaveRequest", leaveRequest);
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
return result;
} catch (Throwable e) {
log.error("E!!", e);
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_ERROR);
result.put(MainModule.JTABLE_MESSAGE_KEY,
"请假单审批信息保存失败,原因:" + e.getMessage());
return result;
}
}
/**
* 更新请假单信息
*
* @param obj
* @return
*/
@At
@Ok("json")
public Map<String, Object> updateJson(@Param("billCode") String billCode,
@Param("leaveType") String leaveType) {
Map<String, Object> result = new HashMap<String, Object>();
org.fireflow.demo.security.bean.User demoUser = Utils.getCurrentUser();
try {
// 获得假期类别字典
List<Dictionary> leaveTypes = dao().query(Dictionary.class,
Cnd.where("dicType", "=", "leave_type").asc("sort"));
result.put("LeaveTypes", leaveTypes);
LeaveRequest leaveRequest = dao().fetch(LeaveRequest.class,
billCode);
List<LeaveRequestDetail> list = dao().query(
LeaveRequestDetail.class,
Cnd.where("billCode", "=", billCode));
Date fromDate = null;
Date toDate = null;
for (LeaveRequestDetail detail : list) {
Date d = detail.getLeaveDate();
if (fromDate == null || fromDate.after(d)) {
fromDate = d;
}
if (toDate == null || toDate.before(d)) {
toDate = d;
}
}
leaveRequest.setFromDate(fromDate);
leaveRequest.setToDate(toDate);
leaveRequest.setLastUpdatePerson(demoUser.getName());
leaveRequest.setLeaveType(leaveType);
boolean find = false;
for (Dictionary type : leaveTypes) {
if (type.getDicKey().equals(leaveType)) {
leaveRequest.setLeaveTypeName(type.getDicValue());
find = true;
break;
}
}
if (!find) {
leaveRequest.setLeaveTypeName(leaveType);
}
Float totalDays = this.calculateTotalLeaveDays(list);
leaveRequest.setTotalDays(totalDays);
dao().update(leaveRequest);
result.put("LeaveRequest", leaveRequest);
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
return result;
} catch (Throwable e) {
log.error("E!!", e);
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_ERROR);
result.put(MainModule.JTABLE_MESSAGE_KEY,
"请假单保存失败,原因:" + e.getMessage());
return result;
}
}
/**
* 新增请假单,并创建流程
*
* @param obj
* @return
*/
@At
@Ok("jsp:/template/holiday/LeaveRequest_edit.jsp")
public Map<String, Object> add() {
org.fireflow.demo.security.bean.User demoUser = Utils.getCurrentUser();
Map<String, Object> result = new HashMap<String, Object>();
LeaveRequest leaveRequest = null;
try {
Object obj = Mvcs.getHttpSession().getAttribute(
MainModule.BIZ_OBJECT_IN_SESSION_KEY);
// 1、首先保存业务数据
if (obj != null && (obj instanceof LeaveRequest)) {
leaveRequest = (LeaveRequest) obj;
List<LeaveRequestDetail> list = leaveRequest
.getLeaveRequestDetailList();
Date fromDate = null;
Date toDate = null;
for (LeaveRequestDetail detail : list) {
Date d = detail.getLeaveDate();
if (fromDate == null || fromDate.after(d)) {
fromDate = d;
}
if (toDate == null || toDate.before(d)) {
toDate = d;
}
}
leaveRequest.setFromDate(fromDate);
leaveRequest.setToDate(toDate);
leaveRequest.setLastUpdatePerson(demoUser.getName());
dao().insert(leaveRequest);
for (LeaveRequestDetail detail : list) {
detail.setLastUpdatePerson(demoUser.getName());
dao().insert(detail);
}
}
// 2、然后启动流程
final org.fireflow.engine.modules.ousystem.User currentUser = WorkflowUtil
.getCurrentWorkflowUser();
final WorkflowSession fireSession = WorkflowSessionFactory
.createWorkflowSession(fireflowRuntimeContext, currentUser);
final WorkflowStatement statement = fireSession
.createWorkflowStatement();
// 启动流程
Map<String, Object> vars = new HashMap<String, Object>();
BusinessObjectWrappImpl wrapper = new BusinessObjectWrappImpl();
wrapper.setBizId(leaveRequest.getBillCode());
wrapper.setBizClzName(LeaveRequest.class.getName());
vars.put("LeaveRequestForm", wrapper);
// 取得申请人得group id
User user = dao().fetch(User.class,
Cnd.where("employeeId", "=", leaveRequest.getEmployeeId()));
if (user != null) {// 将申请人的群组号作为流程变量保存
vars.put(Constants.VAR_NAME_APPLICANT_GROUP_CODE,
user.getGroupCode());
}
ProcessInstance processInstance = statement.startProcess(
"Leave_Request_Process", "Leave_Request_Process.main",
leaveRequest.getBillCode(), vars);
// 拿到当前的workItem
List<WorkItem> wiList = ((WorkflowStatementLocalImpl) statement)
.getNewWorkItemsForCurrentUser();
if (wiList != null && wiList.size() > 0) {
WorkItem wi = wiList.get(0);
if (wi != null) {
result.put(MainModule.WORKITEM_ID, wi.getId());
// returnValue.put(MainModule.WORKITEM, wi);
}
}
result.put("LeaveRequest", leaveRequest);
// 获得假期类别字典
List<Dictionary> leaveTypes = dao().query(Dictionary.class,
Cnd.where("dicType", "=", "leave_type").asc("sort"));
result.put("LeaveTypes", leaveTypes);
// 查询当前用户的所有请假情况
Date now = ((FireflowDemoDao) dao()).getSysDate();
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DATE, -1);
Date yesterday = calendar.getTime();
List<Holiday> holidays = dao().query(
Holiday.class,
Cnd.where("employeeId", "=", demoUser.getEmployeeId()).and(
Cnd.exps("yearStart", "<=", now).or("yearEnd",
">=", yesterday)));
result.put("Holidays", holidays);
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
return result;
} catch (InvalidModelException e) {
throw new RuntimeException("流程定义错误", e);
} catch (WorkflowProcessNotFoundException e) {
throw new RuntimeException("特定的流程未找到", e);
} catch (InvalidOperationException e) {
throw new RuntimeException("非法的流程操作", e);
}
catch (Throwable e) {
log.error("E!!", e);
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_ERROR);
result.put(MainModule.JTABLE_MESSAGE_KEY,
"请假单保存失败,原因:" + e.getMessage());
return result;
} finally {
Mvcs.getHttpSession().removeAttribute(
MainModule.BIZ_OBJECT_IN_SESSION_KEY);
}
}
/**
* 增加一条明细
*
* @return
*/
@At
@Ok("json")
public Map<String, Object> addRequestDetail(
@Param("..") LeaveRequestDetail requestDetail) {
org.fireflow.demo.security.bean.User demoUser = Utils.getCurrentUser();
Map<String, Object> result = new HashMap<String, Object>();
String billCode = requestDetail.getBillCode();
List<LeaveRequestDetail> list = dao().query(LeaveRequestDetail.class,
Cnd.where("billCode", "=", billCode));
LeaveRequestDetail exist = getExistLeaveRequestDetail(list,
requestDetail);
if (exist != null) {
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_ERROR);
result.put(MainModule.JTABLE_MESSAGE_KEY, "错误,请假明细已经存在!");
return result;
}
requestDetail.setLastUpdatePerson(demoUser.getName());
dao().insert(requestDetail);
list = dao().query(LeaveRequestDetail.class,
Cnd.where("billCode", "=", billCode));
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
result.put(MainModule.JTABLE_RECORD_KEY, requestDetail);
result.put("TotalDays", this.calculateTotalLeaveDays(list));
return result;
}
@At
@Ok("json")
public Map<String, Object> deleteRequestDetail(@Param("id") int id,
@Param("billCode") String billCode) {
Map<String, Object> result = new HashMap<String, Object>();
dao().delete(LeaveRequestDetail.class, id);
List<LeaveRequestDetail> list = dao().query(LeaveRequestDetail.class,
Cnd.where("billCode", "=", billCode));
// calculateTotalLeaveDays
result.put("TotalDays", calculateTotalLeaveDays(list));
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
return result;
}
@At
@Ok("json")
public Map<String, Object> listRequestDetail(
@Param("billCode") String billCode) {
Map<String, Object> result = new HashMap<String, Object>();
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
List<LeaveRequestDetail> list = dao().query(LeaveRequestDetail.class,
Cnd.where("billCode", "=", billCode));
result.put(MainModule.JTABLE_RECORDS_KEY, list);
return result;
}
@At
@Ok("json")
public Map<String, Object> listRequestDetailInSession(
@Param("billCode") String billCode) {
Map<String, Object> result = new HashMap<String, Object>();
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
Object obj = Mvcs.getHttpSession().getAttribute(
MainModule.BIZ_OBJECT_IN_SESSION_KEY);
if (obj != null && (obj instanceof LeaveRequest)) {
LeaveRequest leaveRequest = (LeaveRequest) obj;
if (billCode != null && billCode.equals(leaveRequest.getBillCode())) {
result.put(MainModule.JTABLE_RECORDS_KEY,
leaveRequest.getLeaveRequestDetailList());
}
}
return result;
}
private void calculateTotalLeaveDays(LeaveRequest leaveRequest) {
List<LeaveRequestDetail> list = leaveRequest
.getLeaveRequestDetailList();
Float total = calculateTotalLeaveDays(list);
leaveRequest.setTotalDays(total);
}
private float calculateTotalLeaveDays(List<LeaveRequestDetail> list) {
Float total = 0f;
for (LeaveRequestDetail detail : list) {
if (detail.getTimeSection() == 2) {
total = total + 1;// 全天
} else {
total = total + 0.5f;
}
}
return total;
}
private LeaveRequestDetail getExistLeaveRequestDetail(LeaveRequest request,
int sn) {
List<LeaveRequestDetail> list = request.getLeaveRequestDetailList();
for (LeaveRequestDetail tmp : list) {
if (tmp.getSn() == sn) {
return tmp;
}
}
return null;
}
private LeaveRequestDetail getExistLeaveRequestDetail(
List<LeaveRequestDetail> list, LeaveRequestDetail detail) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
for (LeaveRequestDetail tmp : list) {
String d1 = format.format(tmp.getLeaveDate());
String d2 = format.format(detail.getLeaveDate());
if (d1.equals(d2)
&& tmp.getTimeSection().equals(detail.getTimeSection())) {
return tmp;
}
}
return null;
}
private int getSn(LeaveRequest leaveRequest) {
List<LeaveRequestDetail> detailList = leaveRequest
.getLeaveRequestDetailList();
int max = 0;
for (LeaveRequestDetail detail : detailList) {
if (detail.getSn() > max) {
max = detail.getSn();
}
}
return max + 1;
}
/**
* 增加一条明细
*
* @return
*/
@At
@Ok("json")
public Map<String, Object> addRequestDetailInSession(
@Param("..") LeaveRequestDetail requestDetail) {
Map<String, Object> result = new HashMap<String, Object>();
Object obj = Mvcs.getHttpSession().getAttribute(
MainModule.BIZ_OBJECT_IN_SESSION_KEY);
if (obj != null && (obj instanceof LeaveRequest)) {
LeaveRequest leaveRequest = (LeaveRequest) obj;
LeaveRequestDetail exist = getExistLeaveRequestDetail(
leaveRequest.getLeaveRequestDetailList(), requestDetail);
if (exist != null) {
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_ERROR);
result.put(MainModule.JTABLE_MESSAGE_KEY, "错误,请假明细已经存在!");
return result;
}
requestDetail.setBillCode(leaveRequest.getBillCode());
// 产生sn
int max = getSn(leaveRequest);
requestDetail.setSn(max);
leaveRequest.getLeaveRequestDetailList().add(requestDetail);
calculateTotalLeaveDays(leaveRequest);
Mvcs.getHttpSession().setAttribute(
MainModule.BIZ_OBJECT_IN_SESSION_KEY, leaveRequest);
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
result.put(MainModule.JTABLE_RECORD_KEY, requestDetail);
result.put("TotalDays", leaveRequest.getTotalDays());
} else {
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_ERROR);
result.put(MainModule.JTABLE_MESSAGE_KEY, "非法操作,原因:请假但对象未创建");
}
return result;
}
@At
@Ok("json")
public Map<String, Object> deleteRequestDetailInSession(@Param("sn") int sn) {
Map<String, Object> result = new HashMap<String, Object>();
Object obj = Mvcs.getHttpSession().getAttribute(
MainModule.BIZ_OBJECT_IN_SESSION_KEY);
if (obj != null && (obj instanceof LeaveRequest)) {
LeaveRequest leaveRequest = (LeaveRequest) obj;
LeaveRequestDetail exist = getExistLeaveRequestDetail(leaveRequest,
sn);
if (exist != null) {
leaveRequest.getLeaveRequestDetailList().remove(exist);
calculateTotalLeaveDays(leaveRequest);
Mvcs.getHttpSession().setAttribute(
MainModule.BIZ_OBJECT_IN_SESSION_KEY, leaveRequest);
}
result.put("TotalDays", leaveRequest.getTotalDays());
}
result.put(MainModule.JTABLE_RESULT_KEY,
MainModule.JTABLE_RESULT_VALUE_OK);
return result;
}
public Map<String, Object> updateRequestDetail() {
return null;
}
/**
* 初始化请假单
*
* @return
*/
@At
@Ok("jsp:/template/holiday/LeaveRequest_create.jsp")
public Map<String, Object> initRequest() {
Map<String, Object> result = new HashMap<String, Object>();
org.fireflow.demo.security.bean.User demoUser = Utils.getCurrentUser();
// 获得新的单据号
String billCode = ((FireflowDemoDao) dao()).generateBillCode();
// 获得假期类别字典
List<Dictionary> leaveTypes = dao().query(Dictionary.class,
Cnd.where("dicType", "=", "leave_type").asc("sort"));
result.put("LeaveTypes", leaveTypes);
// 构造一个空的请假单
Date now = ((FireflowDemoDao) dao()).getSysDate();
LeaveRequest leaveRequest = new LeaveRequest();
leaveRequest.setBillCode(billCode);
leaveRequest.setEmployeeId(demoUser.getEmployeeId());
leaveRequest.setEmployeeName(demoUser.getName());
leaveRequest.setCreatorId(demoUser.getLoginName());
leaveRequest.setCreateTime(now);
leaveRequest.setLeaveType("paid");// 默认为带薪假
leaveRequest.setLeaveTypeName("带薪年休假");
result.put("LeaveRequest", leaveRequest);
// 查询当前用户的所有请假情况
Calendar calendar = Calendar.getInstance();
calendar.setTime(now);
calendar.add(Calendar.DATE, -1);
Date yesterday = calendar.getTime();
List<Holiday> holidays = dao().query(
Holiday.class,
Cnd.where("employeeId", "=", demoUser.getEmployeeId()).and(
Cnd.exps("yearStart", "<=", now).or("yearEnd", ">=",
yesterday)));
result.put("Holidays", holidays);
// 暂存在session中
HttpSession session = Mvcs.getHttpSession();
session.setAttribute(MainModule.BIZ_OBJECT_IN_SESSION_KEY, leaveRequest);
return result;
}
}