package com.leanwo.activiti.dto.base;

import java.util.Date;

// TODO: Auto-generated Javadoc
/**
 * 任务查询参数.
 *
 * @author YangZhiJie
 */
public class TaskQueryParam {
	
	/**  查询条件(审批标题、编号、正文内容、审批意见). */
	private String condition;

	/**  工作流部署Id. */
	private String deploymentId;
	
	/** 用户任务责任人Id */
	private String assigneeId;
	
	/** 工作流创建人 */
	private Long createUserId;
	
	/**  审批状态(全部、审批完成、审批中). */
	private ProcessStatusQuery processStatusQuery;
	
	/**  查询区间. */
	private Range range;
	
	/**  是否有高级查询. */
	private boolean advancedQuery;
	
	/**   发起日期(提交审批日期)-起始. */
	private Date startAfter;

	/**   发起日期(提交审批日期)-结束. */
	private Date startBefore;
	
	/**   完成日期(最终审批日期)-起始. */
	private Date finishAfter;

	/**   完成日期(最终审批日期)-结束. */
	private Date finishBefore;
	
	/**  审批单发起人. */
	private Long startUserId;

	/**  任务排序. */
	private TaskQueryOrderBy taskQueryOrderBy;

	/**  升序排列. */
	private boolean orderByAsc;

	/**
	 * Gets the 查询条件(审批标题、编号、正文内容、审批意见).
	 *
	 * @return the 查询条件(审批标题、编号、正文内容、审批意见)
	 */
	public String getCondition() {
		return condition;
	}

	/**
	 * Sets the 查询条件(审批标题、编号、正文内容、审批意见).
	 *
	 * @param condition the new 查询条件(审批标题、编号、正文内容、审批意见)
	 */
	public void setCondition(String condition) {
		this.condition = condition;
	}


	/**
	 * Gets the 发起日期(提交审批日期)-起始.
	 *
	 * @return the 发起日期(提交审批日期)-起始
	 */
	public Date getStartAfter() {
		return startAfter;
	}

	/**
	 * Sets the 发起日期(提交审批日期)-起始.
	 *
	 * @param startAfter the new 发起日期(提交审批日期)-起始
	 */
	public void setStartAfter(Date startAfter) {
		this.startAfter = startAfter;
	}

	/**
	 * Gets the 发起日期(提交审批日期)-结束.
	 *
	 * @return the 发起日期(提交审批日期)-结束
	 */
	public Date getStartBefore() {
		return startBefore;
	}

	/**
	 * Sets the 发起日期(提交审批日期)-结束.
	 *
	 * @param startBefore the new 发起日期(提交审批日期)-结束
	 */
	public void setStartBefore(Date startBefore) {
		this.startBefore = startBefore;
	}

	
	/**
	 * Gets the 完成日期(最终审批日期)-起始.
	 *
	 * @return the 完成日期(最终审批日期)-起始
	 */
	public Date getFinishAfter() {
		return finishAfter;
	}

	/**
	 * Sets the 完成日期(最终审批日期)-起始.
	 *
	 * @param finishAfter the new 完成日期(最终审批日期)-起始
	 */
	public void setFinishAfter(Date finishAfter) {
		this.finishAfter = finishAfter;
	}

	/**
	 * Gets the 完成日期(最终审批日期)-结束.
	 *
	 * @return the 完成日期(最终审批日期)-结束
	 */
	public Date getFinishBefore() {
		return finishBefore;
	}

	/**
	 * Sets the 完成日期(最终审批日期)-结束.
	 *
	 * @param finishBefore the new 完成日期(最终审批日期)-结束
	 */
	public void setFinishBefore(Date finishBefore) {
		this.finishBefore = finishBefore;
	}

	/**
	 * Gets the 审批单发起人.
	 *
	 * @return the 审批单发起人
	 */
	public Long getStartUserId() {
		return startUserId;
	}

	/**
	 * Sets the 审批单发起人.
	 *
	 * @param startUserId the new 审批单发起人
	 */
	public void setStartUserId(Long startUserId) {
		this.startUserId = startUserId;
	}

	/**
	 * Gets the 工作流部署Id.
	 *
	 * @return the 工作流部署Id
	 */
	public String getDeploymentId() {
		return deploymentId;
	}

	/**
	 * Sets the 工作流部署Id.
	 *
	 * @param deploymentId the new 工作流部署Id
	 */
	public void setDeploymentId(String deploymentId) {
		this.deploymentId = deploymentId;
	}

	

	/**
	 * Gets the 审批状态(全部、审批完成、审批中).
	 *
	 * @return the 审批状态(全部、审批完成、审批中)
	 */
	public ProcessStatusQuery getProcessStatusQuery() {
		return processStatusQuery;
	}

	/**
	 * Sets the 审批状态(全部、审批完成、审批中).
	 *
	 * @param processStatusQuery the new 审批状态(全部、审批完成、审批中)
	 */
	public void setProcessStatusQuery(ProcessStatusQuery processStatusQuery) {
		this.processStatusQuery = processStatusQuery;
	}

	/**
	 * Gets the 查询区间.
	 *
	 * @return the 查询区间
	 */
	public Range getRange() {
		return range;
	}

	/**
	 * Sets the 查询区间.
	 *
	 * @param range the new 查询区间
	 */
	public void setRange(Range range) {
		this.range = range;
	}

	/**
	 * Checks if is 是否有高级查询.
	 *
	 * @return the 是否有高级查询
	 */
	public boolean isAdvancedQuery() {
		return advancedQuery;
	}

	/**
	 * Sets the 是否有高级查询.
	 *
	 * @param advancedQuery the new 是否有高级查询
	 */
	public void setAdvancedQuery(boolean advancedQuery) {
		this.advancedQuery = advancedQuery;
	}

	public String getAssigneeId() {
		return assigneeId;
	}

	public void setAssigneeId(String assigneeId) {
		this.assigneeId = assigneeId;
	}

	public Long getCreateUserId() {
		return createUserId;
	}

	public void setCreateUserId(Long createUserId) {
		this.createUserId = createUserId;
	}
	
	public TaskQueryOrderBy getTaskQueryOrderBy() {
		return taskQueryOrderBy;
	}

	public void setTaskQueryOrderBy(TaskQueryOrderBy taskQueryOrderBy) {
		this.taskQueryOrderBy = taskQueryOrderBy;
	}

	public boolean isOrderByAsc() {
		return orderByAsc;
	}

	public void setOrderByAsc(boolean orderByAsc) {
		this.orderByAsc = orderByAsc;
	}

	/**
	 * 任务查询排序
	 * @author YangZhiJie
	 *
	 */
	/**
	 * 任务查询排序
	 * @author YangZhiJie
	 *
	 */
	public enum TaskQueryOrderBy implements IEnum{
		StartTime("开始时间"), EndTime("结束时间");

		private String displayName;

		TaskQueryOrderBy(String displayName) {
			this.displayName = displayName;
		}


		@Override
		public String getDisplayName() {
			return displayName;
		}

		@Override
		public void setDisplayName(String displayName) {
			this.displayName = displayName;
		}
	}
}
