package com.hw.system.api.domain.common;


import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.List;

/**
 * 工单流程节点步骤对象 wf_process_activity
 *
 * @author xins
 * @date 2024-01-19
 */
public class WfProcessActivity extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    public WfProcessActivity() {

    }

    /** 工单流程节点ID */
    private Long processActivityId;

    /** 工单流程id，关联wf_process的wf_process_id */
    @Excel(name = "工单流程id，关联wf_process的wf_process_id")
    private Long wfProcessId;

    /** 工单流程节点名称 */
    @Excel(name = "工单流程节点名称")
    private String processActivityName;

    /** 工单流程节点顺序 */
    @Excel(name = "工单流程节点顺序")
    private Long processActivityOrder;

    /** 执行类型（0自动节点，1人工节点）;暂时只支持人工节点 */
    @Excel(name = "执行类型", readConverterExp = "0=自动节点，1人工节点")
    private String wfActivityType;

    /** 是否邮件通知（1是，0否） */
    @Excel(name = "是否邮件通知", readConverterExp = "1=是，0否")
    private String emailNotice;

    /** 是否微信公众号（1是，0否） */
    @Excel(name = "是否微信公众号", readConverterExp = "1=是，0否")
    private String wechatOfficalNotice;

    /** 是否企业微信通知（1是，0否） */
    @Excel(name = "是否企业微信通知", readConverterExp = "1=是，0否")
    private String wecomNotice;

    /** 是否短信通知（1是，0否） */
    @Excel(name = "是否短信通知", readConverterExp = "1=是，0否")
    private String smsNotice;

    /** 是否钉钉通知（1是，0否） */
    @Excel(name = "是否钉钉通知", readConverterExp = "1=是，0否")
    private String dingtalkNotice;

    /** 时限(单位：s) */
    @Excel(name = "时限(单位：s)")
    private Long timeLimit;

    /** 是否需要协助（1是，0否） */
    @Excel(name = "是否需要协助", readConverterExp = "1=是，0否")
    private String isAssist;
    private Long timeLimitDays;
    private Long timeLimitHours;

    public Long getTimeLimitDays() {
        return timeLimitDays;
    }

    public void setTimeLimitDays(Long timeLimitDays) {
        this.timeLimitDays = timeLimitDays;
    }

    public Long getTimeLimitHours() {
        return timeLimitHours;
    }

    public void setTimeLimitHours(Long timeLimitHours) {
        this.timeLimitHours = timeLimitHours;
    }

    /** 工单流程节点步骤权限信息 */
    private List<WfProcessActivityAuth> wfProcessActivityAuthList;

    public void setProcessActivityId(Long processActivityId)
    {
        this.processActivityId = processActivityId;
    }

    public Long getProcessActivityId()
    {
        return processActivityId;
    }
    public void setWfProcessId(Long wfProcessId)
    {
        this.wfProcessId = wfProcessId;
    }

    public Long getWfProcessId()
    {
        return wfProcessId;
    }
    public void setProcessActivityName(String processActivityName)
    {
        this.processActivityName = processActivityName;
    }

    public String getProcessActivityName()
    {
        return processActivityName;
    }
    public void setProcessActivityOrder(Long processActivityOrder)
    {
        this.processActivityOrder = processActivityOrder;
    }

    public Long getProcessActivityOrder()
    {
        return processActivityOrder;
    }
    public void setWfActivityType(String wfActivityType)
    {
        this.wfActivityType = wfActivityType;
    }

    public String getWfActivityType()
    {
        return wfActivityType;
    }
    public void setEmailNotice(String emailNotice)
    {
        this.emailNotice = emailNotice;
    }

    public String getEmailNotice()
    {
        return emailNotice;
    }
    public void setWechatOfficalNotice(String wechatOfficalNotice)
    {
        this.wechatOfficalNotice = wechatOfficalNotice;
    }

    public String getWechatOfficalNotice()
    {
        return wechatOfficalNotice;
    }
    public void setWecomNotice(String wecomNotice)
    {
        this.wecomNotice = wecomNotice;
    }

    public String getWecomNotice()
    {
        return wecomNotice;
    }
    public void setSmsNotice(String smsNotice)
    {
        this.smsNotice = smsNotice;
    }

    public String getSmsNotice()
    {
        return smsNotice;
    }
    public void setDingtalkNotice(String dingtalkNotice)
    {
        this.dingtalkNotice = dingtalkNotice;
    }

    public String getDingtalkNotice()
    {
        return dingtalkNotice;
    }
    public void setTimeLimit(Long timeLimit)
    {
        this.timeLimit = timeLimit;
    }

    public Long getTimeLimit()
    {
        return timeLimit;
    }
    public void setIsAssist(String isAssist)
    {
        this.isAssist = isAssist;
    }

    public String getIsAssist()
    {
        return isAssist;
    }

    public List<WfProcessActivityAuth> getWfProcessActivityAuthList()
    {
        return wfProcessActivityAuthList;
    }

    public void setWfProcessActivityAuthList(List<WfProcessActivityAuth> wfProcessActivityAuthList)
    {
        this.wfProcessActivityAuthList = wfProcessActivityAuthList;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("processActivityId", getProcessActivityId())
            .append("wfProcessId", getWfProcessId())
            .append("processActivityName", getProcessActivityName())
            .append("processActivityOrder", getProcessActivityOrder())
            .append("wfActivityType", getWfActivityType())
            .append("emailNotice", getEmailNotice())
            .append("wechatOfficalNotice", getWechatOfficalNotice())
            .append("wecomNotice", getWecomNotice())
            .append("smsNotice", getSmsNotice())
            .append("dingtalkNotice", getDingtalkNotice())
            .append("timeLimit", getTimeLimit())
            .append("isAssist", getIsAssist())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("wfProcessActivityAuthList", getWfProcessActivityAuthList())
            .toString();
    }
}
