package com.leanwo.activiti.dto.base;

import java.util.Date;
import java.util.Set;

/**
 * 流程报表自动执行DTO.
 * 
 * @author HaoYanbing 2018年2月7日上午11:49:23
 * @author YangZhiJie 20190329
 * @update LeiGuoXian 20220609
 */
public class TaskDefineDto {

	/** ID. */
	private Long id;

	/** 单位Id. */
	private Long clientId;

	/** 用户Id. */
	private Long userId;

	/** 任务名称. */
	private String taskName;

	/** 任务描述. */
	private String taskDescription;

	/** 任务开始时间. */
	private Date startDate;

	/** 任务结束时间. */
	private Date endDate;

	/** 接收用户. */
	private Set<Long> receiveUserIds;

	/** 接收用户组. */
	private Set<Long> receiveGroupIds;

	/** 任务类型. */
	private TaskType taskType;

	/** 任务类型=流程报表时. */
	/** 流程报表编号 */
	private String processReportNo;

	/** 任务类型=流程报表时. */
	/** 流程报表名称. */
	private String processReportName;

	/** 任务类型=HTTP时. */
	/** http请求类型 */
	private HttpRequestType httpRequestType;

	/** 任务类型=HTTP时. */
	/** http请求地址 */
	private String httpRequestUrl;

	/** 任务类型=HTTP时. */
	/** http请求参数 */
	private String httpRequestParam;

	/** 时间类型. */
	private TaskTimeType taskTimeType;

	/** cron表达式. */
	private String cronExpression;

	/** 超时报警. */
	private Boolean timeOutAlarm;

	/** 超时时间（单位s）. */
	private Integer timeOut;

	/** 超时终止. */
	private Boolean timeoutTermination;

	/** 失败报警. */
	private Boolean failureAlarm;

	/** 报警联系人. */
	private Set<Long> alarmUserIds;

	/** 执行用户登录名. */
	private String executeUserName;

	/** 执行用户密码. */
	private String executeUserPassword;

	/** 任务状态. */
	private TaskStatus taskStatus;

	/**
	 * Gets the iD.
	 *
	 * @return the iD
	 */
	public Long getId() {
		return id;
	}

	/**
	 * Sets the iD.
	 *
	 * @param id
	 *            the new iD
	 */
	public void setId(Long id) {
		this.id = id;
	}

	/**
	 * Gets the 单位Id.
	 *
	 * @return the 单位Id
	 */
	public Long getClientId() {
		return clientId;
	}

	/**
	 * Sets the 单位Id.
	 *
	 * @param clientId
	 *            the new 单位Id
	 */
	public void setClientId(Long clientId) {
		this.clientId = clientId;
	}


	/**
	 * Gets the 任务类型=流程报表时.
	 *
	 * @return the 任务类型=流程报表时
	 */
	public String getProcessReportNo() {
		return processReportNo;
	}

	/**
	 * Sets the 任务类型=流程报表时.
	 *
	 * @param processReportNo
	 *            the new 任务类型=流程报表时
	 */
	public void setProcessReportNo(String processReportNo) {
		this.processReportNo = processReportNo;
	}

	/**
	 * Gets the 任务类型=流程报表时.
	 *
	 * @return the 任务类型=流程报表时
	 */
	public String getProcessReportName() {
		return processReportName;
	}

	/**
	 * Sets the 任务类型=流程报表时.
	 *
	 * @param processReportName
	 *            the new 任务类型=流程报表时
	 */
	public void setProcessReportName(String processReportName) {
		this.processReportName = processReportName;
	}

	/**
	 * Gets the cron表达式.
	 *
	 * @return the cron表达式
	 */
	public String getCronExpression() {
		return cronExpression;
	}

	/**
	 * Sets the cron表达式.
	 *
	 * @param cronExpression
	 *            the new cron表达式
	 */
	public void setCronExpression(String cronExpression) {
		this.cronExpression = cronExpression;
	}

	/**
	 * Gets the 任务开始时间.
	 *
	 * @return the 任务开始时间
	 */
	public Date getStartDate() {
		return startDate;
	}

	/**
	 * Sets the 任务开始时间.
	 *
	 * @param startDate
	 *            the new 任务开始时间
	 */
	public void setStartDate(Date startDate) {
		this.startDate = startDate;
	}

	/**
	 * Gets the 用户Id.
	 *
	 * @return the 用户Id
	 */
	public Long getUserId() {
		return userId;
	}

	/**
	 * Sets the 用户Id.
	 *
	 * @param userId
	 *            the new 用户Id
	 */
	public void setUserId(Long userId) {
		this.userId = userId;
	}

	/**
	 * Gets the 任务名称.
	 *
	 * @return the 任务名称
	 */
	public String getTaskName() {
		return taskName;
	}

	/**
	 * Sets the 任务名称.
	 *
	 * @param taskName
	 *            the new 任务名称
	 */
	public void setTaskName(String taskName) {
		this.taskName = taskName;
	}

	/**
	 * Gets the 任务描述.
	 *
	 * @return the 任务描述
	 */
	public String getTaskDescription() {
		return taskDescription;
	}

	/**
	 * Sets the 任务描述.
	 *
	 * @param taskDescription
	 *            the new 任务描述
	 */
	public void setTaskDescription(String taskDescription) {
		this.taskDescription = taskDescription;
	}

	/**
	 * Gets the 任务结束时间.
	 *
	 * @return the 任务结束时间
	 */
	public Date getEndDate() {
		return endDate;
	}

	/**
	 * Sets the 任务结束时间.
	 *
	 * @param endDate
	 *            the new 任务结束时间
	 */
	public void setEndDate(Date endDate) {
		this.endDate = endDate;
	}

	/**
	 * Gets the 接收用户.
	 *
	 * @return the 接收用户
	 */
	public Set<Long> getReceiveUserIds() {
		return receiveUserIds;
	}

	/**
	 * Sets the 接收用户.
	 *
	 * @param receiveUserIds
	 *            the new 接收用户
	 */
	public void setReceiveUserIds(Set<Long> receiveUserIds) {
		this.receiveUserIds = receiveUserIds;
	}

	/**
	 * Gets the 接收用户组.
	 *
	 * @return the 接收用户组
	 */
	public Set<Long> getReceiveGroupIds() {
		return receiveGroupIds;
	}

	/**
	 * Sets the 接收用户组.
	 *
	 * @param receiveGroupIds
	 *            the new 接收用户组
	 */
	public void setReceiveGroupIds(Set<Long> receiveGroupIds) {
		this.receiveGroupIds = receiveGroupIds;
	}

	/**
	 * Gets the 任务类型.
	 *
	 * @return the 任务类型
	 */
	public TaskType getTaskType() {
		return taskType;
	}

	/**
	 * Sets the 任务类型.
	 *
	 * @param taskType
	 *            the new 任务类型
	 */
	public void setTaskType(TaskType taskType) {
		this.taskType = taskType;
	}

	/**
	 * Gets the 任务类型=HTTP时.
	 *
	 * @return the 任务类型=HTTP时
	 */
	public HttpRequestType getHttpRequestType() {
		return httpRequestType;
	}

	/**
	 * Sets the 任务类型=HTTP时.
	 *
	 * @param httpRequestType
	 *            the new 任务类型=HTTP时
	 */
	public void setHttpRequestType(HttpRequestType httpRequestType) {
		this.httpRequestType = httpRequestType;
	}

	/**
	 * Gets the 任务类型=HTTP时.
	 *
	 * @return the 任务类型=HTTP时
	 */
	public String getHttpRequestUrl() {
		return httpRequestUrl;
	}

	/**
	 * Sets the 任务类型=HTTP时.
	 *
	 * @param httpRequestUrl
	 *            the new 任务类型=HTTP时
	 */
	public void setHttpRequestUrl(String httpRequestUrl) {
		this.httpRequestUrl = httpRequestUrl;
	}

	/**
	 * Gets the 任务类型=HTTP时.
	 *
	 * @return the 任务类型=HTTP时
	 */
	public String getHttpRequestParam() {
		return httpRequestParam;
	}

	/**
	 * Sets the 任务类型=HTTP时.
	 *
	 * @param httpRequestParam
	 *            the new 任务类型=HTTP时
	 */
	public void setHttpRequestParam(String httpRequestParam) {
		this.httpRequestParam = httpRequestParam;
	}

	/**
	 * Gets the 时间类型.
	 *
	 * @return the 时间类型
	 */
	public TaskTimeType getTaskTimeType() {
		return taskTimeType;
	}

	/**
	 * Sets the 时间类型.
	 *
	 * @param taskTimeType
	 *            the new 时间类型
	 */
	public void setTaskTimeType(TaskTimeType taskTimeType) {
		this.taskTimeType = taskTimeType;
	}

	/**
	 * Gets the 执行用户登录名.
	 *
	 * @return the 执行用户登录名
	 */
	public String getExecuteUserName() {
		return executeUserName;
	}

	/**
	 * Sets the 执行用户登录名.
	 *
	 * @param executeUserName
	 *            the new 执行用户登录名
	 */
	public void setExecuteUserName(String executeUserName) {
		this.executeUserName = executeUserName;
	}

	/**
	 * Gets the 执行用户密码.
	 *
	 * @return the 执行用户密码
	 */
	public String getExecuteUserPassword() {
		return executeUserPassword;
	}

	/**
	 * Sets the 执行用户密码.
	 *
	 * @param executeUserPassword
	 *            the new 执行用户密码
	 */
	public void setExecuteUserPassword(String executeUserPassword) {
		this.executeUserPassword = executeUserPassword;
	}

	/**
	 * Gets the 超时报警.
	 *
	 * @return the 超时报警
	 */
	public Boolean getTimeOutAlarm() {
		return timeOutAlarm;
	}

	/**
	 * Sets the 超时报警.
	 *
	 * @param timeOutAlarm
	 *            the new 超时报警
	 */
	public void setTimeOutAlarm(Boolean timeOutAlarm) {
		this.timeOutAlarm = timeOutAlarm;
	}

	/**
	 * Gets the 超时时间（单位s）.
	 *
	 * @return the 超时时间（单位s）
	 */
	public Integer getTimeOut() {
		return timeOut;
	}

	/**
	 * Sets the 超时时间（单位s）.
	 *
	 * @param timeOut
	 *            the new 超时时间（单位s）
	 */
	public void setTimeOut(Integer timeOut) {
		this.timeOut = timeOut;
	}

	/**
	 * Gets the 超时终止.
	 *
	 * @return the 超时终止
	 */
	public Boolean getTimeoutTermination() {
		return timeoutTermination;
	}

	/**
	 * Sets the 超时终止.
	 *
	 * @param timeoutTermination
	 *            the new 超时终止
	 */
	public void setTimeoutTermination(Boolean timeoutTermination) {
		this.timeoutTermination = timeoutTermination;
	}

	/**
	 * Gets the 失败报警.
	 *
	 * @return the 失败报警
	 */
	public Boolean getFailureAlarm() {
		return failureAlarm;
	}

	/**
	 * Sets the 失败报警.
	 *
	 * @param failureAlarm
	 *            the new 失败报警
	 */
	public void setFailureAlarm(Boolean failureAlarm) {
		this.failureAlarm = failureAlarm;
	}

	/**
	 * Gets the 报警联系人.
	 *
	 * @return the 报警联系人
	 */
	public Set<Long> getAlarmUserIds() {
		return alarmUserIds;
	}

	/**
	 * Sets the 报警联系人.
	 *
	 * @param alarmUserIds
	 *            the new 报警联系人
	 */
	public void setAlarmUserIds(Set<Long> alarmUserIds) {
		this.alarmUserIds = alarmUserIds;
	}

	/**
	 * Gets the 任务状态.
	 *
	 * @return the 任务状态
	 */
	public TaskStatus getTaskStatus() {
		return taskStatus;
	}

	/**
	 * Sets the 任务状态.
	 *
	 * @param taskStatus
	 *            the new 任务状态
	 */
	public void setTaskStatus(TaskStatus taskStatus) {
		this.taskStatus = taskStatus;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "TaskDefineDto [id=" + id + ", clientId=" + clientId + ", userId=" + userId + 
				 ", taskName=" + taskName + ", taskDescription=" + taskDescription + ", startDate="
				+ startDate + ", endDate=" + endDate + ", receiveUserIds=" + receiveUserIds + ", receiveGroupIds="
				+ receiveGroupIds + ", taskType=" + taskType + ", processReportNo=" + processReportNo
				+ ", processReportName=" + processReportName + ", httpRequestType=" + httpRequestType
				+ ", httpRequestUrl=" + httpRequestUrl + ", httpRequestParam=" + httpRequestParam + ", taskTimeType="
				+ taskTimeType + ", cronExpression=" + cronExpression + ", executeUserName=" + executeUserName
				+ ", executeUserPassword=" + executeUserPassword + ", timeOutAlarm=" + timeOutAlarm + ", timeOut="
				+ timeOut + ", timeoutTermination=" + timeoutTermination + ", failureAlarm=" + failureAlarm
				+ ", alarmUserIds=" + alarmUserIds + "]";
	}

}
