package com.hw.dms.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.hw.common.core.annotation.Excel;
import com.hw.common.core.web.domain.BaseEntity;

/**
 * 保养工单实例节点对象 dms_maint_instance_activity
 *
 * @author Open Platform
 * @date 2024-02-29
 */
public class DmsMaintInstanceActivity extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 保养工单实例节点ID */
    private Long instanceActivityId;

    /** 保养工单实例ID，关联dms_bills_maint_instance的maint_instance_id */
    @Excel(name = "保养工单实例ID，关联dms_bills_maint_instance的maint_instance_id")
    private Long maintInstanceId;

    /** 工单流程节点ID（关联wf_process_activity的process_activity_id） */
    @Excel(name = "工单流程节点ID", readConverterExp = "关=联wf_process_activity的process_activity_id")
    private Long processActivityId;

    /** 保养级别：1-日常保养；2-月度保养；3-年度保养;最后一步自动复制第1步的，可在第2步修改，修改保存后为第2步的记录，第1步为要求的，第2步为实际的 */
    @Excel(name = "保养级别：1-日常保养；2-月度保养；3-年度保养;最后一步自动复制第1步的，可在第2步修改，修改保存后为第2步的记录，第1步为要求的，第2步为实际的")
    private Long maintLevel;

    /** 保养组别;最后一步自动复制第1步的，可在第2步修改，修改保存后为第2步的记录，第1步为要求的，第2步为实际的 */
    @Excel(name = "保养组别;最后一步自动复制第1步的，可在第2步修改，修改保存后为第2步的记录，第1步为要求的，第2步为实际的")
    private String maintGroup;

    /** 保养负责人;最后一步自动复制第1步的，可在第2步修改，修改保存后为第2步的记录，第1步为要求的，第2步为实际的 */
    @Excel(name = "保养负责人;最后一步自动复制第1步的，可在第2步修改，修改保存后为第2步的记录，第1步为要求的，第2步为实际的")
    private String maintSupervisor;

    /** 处理意见;第一步不显示，从第二步开始只显示此字段 */
    @Excel(name = "处理意见;第一步不显示，从第二步开始只显示此字段")
    private String processHandleResolution;

    /** 状态(0已结束，1执行中，2、待接取，3、已转发） */
    @Excel(name = "状态(0已结束，1执行中，2、待接取，3、已转发）")
    private String processHandleStatus;

    /** 工单流程步骤顺序 */
    @Excel(name = "工单流程步骤顺序")
    private Long processStepOrder;

    /** 执行开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "执行开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date startTime;

    /** 执行结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "执行结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date endTime;

    /** 处理人ID（关联sys_user的user_id) */
    @Excel(name = "处理人ID", readConverterExp = "处理人ID（关联sys_user的user_id)")
    private Long handleUserId;

    /** 处理人 */
    @Excel(name = "处理人")
    private String handleBy;

    /** 处理时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "处理时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date handleTime;

    /** 转单人用户id或转发协助用户id;1、在转发时，生成新的工单节点实例，执行人id为转发的用户，而转单人是刚才转发给此用户的用户id，是否协助工单为0，并且转发后当前工单的状态为已结束此用户的用户id，是否协助工单为0，并且转发后当前工单的状态为已结束此用户的用户id，是否协助工单为0，并且转发后当前工单的状态为已结束此用户的用户id，是否协助工单为0，并且转发后当前工单的状态为已结束2、在添加协助时，生成新的工单节点实例，执行人id为添加协助的用户，而转单人是刚才添加协助此用户的用户id，是否协助工单为1，并且转发后当前工单的状态仍为执行中 */
    @Excel(name = "转单人用户id或转发协助用户id;1、在转发时，生成新的工单节点实例，执行人id为转发的用户，而转单人是刚才转发给此用户的用户id，是否协助工单为0，并且转发后当前工单的状态为已结束此用户的用户id，是否协助工单为0，并且转发后当前工单的状态为已结束此用户的用户id，是否协助工单为0，并且转发后当前工单的状态为已结束此用户的用户id，是否协助工单为0，并且转发后当前工单的状态为已结束2、在添加协助时，生成新的工单节点实例，执行人id为添加协助的用户，而转单人是刚才添加协助此用户的用户id，是否协助工单为1，并且转发后当前工单的状态仍为执行中")
    private Long transferUserId;

    /** 用户预留1 */
    @Excel(name = "用户预留1")
    private String attr1;
    private Long wfLength;

    public Long getWfLength() {
        return wfLength;
    }

    public void setWfLength(Long wfLength) {
        this.wfLength = wfLength;
    }

    public void setInstanceActivityId(Long instanceActivityId)
    {
        this.instanceActivityId = instanceActivityId;
    }

    public Long getInstanceActivityId()
    {
        return instanceActivityId;
    }
    public void setMaintInstanceId(Long maintInstanceId)
    {
        this.maintInstanceId = maintInstanceId;
    }

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

    public Long getProcessActivityId()
    {
        return processActivityId;
    }
    public void setMaintLevel(Long maintLevel)
    {
        this.maintLevel = maintLevel;
    }

    public Long getMaintLevel()
    {
        return maintLevel;
    }
    public void setMaintGroup(String maintGroup)
    {
        this.maintGroup = maintGroup;
    }

    public String getMaintGroup()
    {
        return maintGroup;
    }
    public void setMaintSupervisor(String maintSupervisor)
    {
        this.maintSupervisor = maintSupervisor;
    }

    public String getMaintSupervisor()
    {
        return maintSupervisor;
    }
    public void setProcessHandleResolution(String processHandleResolution)
    {
        this.processHandleResolution = processHandleResolution;
    }

    public String getProcessHandleResolution()
    {
        return processHandleResolution;
    }
    public void setProcessHandleStatus(String processHandleStatus)
    {
        this.processHandleStatus = processHandleStatus;
    }

    public String getProcessHandleStatus()
    {
        return processHandleStatus;
    }
    public void setProcessStepOrder(Long processStepOrder)
    {
        this.processStepOrder = processStepOrder;
    }

    public Long getProcessStepOrder()
    {
        return processStepOrder;
    }
    public void setStartTime(Date startTime)
    {
        this.startTime = startTime;
    }

    public Date getStartTime()
    {
        return startTime;
    }
    public void setEndTime(Date endTime)
    {
        this.endTime = endTime;
    }

    public Date getEndTime()
    {
        return endTime;
    }
    public void setHandleUserId(Long handleUserId)
    {
        this.handleUserId = handleUserId;
    }

    public Long getHandleUserId()
    {
        return handleUserId;
    }
    public void setHandleBy(String handleBy)
    {
        this.handleBy = handleBy;
    }

    public String getHandleBy()
    {
        return handleBy;
    }
    public void setHandleTime(Date handleTime)
    {
        this.handleTime = handleTime;
    }

    public Date getHandleTime()
    {
        return handleTime;
    }
    public void setTransferUserId(Long transferUserId)
    {
        this.transferUserId = transferUserId;
    }

    public Long getTransferUserId()
    {
        return transferUserId;
    }
    public void setAttr1(String attr1)
    {
        this.attr1 = attr1;
    }

    public String getAttr1()
    {
        return attr1;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("instanceActivityId", getInstanceActivityId())
            .append("maintInstanceId", getMaintInstanceId())
            .append("processActivityId", getProcessActivityId())
            .append("maintLevel", getMaintLevel())
            .append("maintGroup", getMaintGroup())
            .append("maintSupervisor", getMaintSupervisor())
            .append("processHandleResolution", getProcessHandleResolution())
            .append("remark", getRemark())
            .append("processHandleStatus", getProcessHandleStatus())
            .append("processStepOrder", getProcessStepOrder())
            .append("startTime", getStartTime())
            .append("endTime", getEndTime())
            .append("handleUserId", getHandleUserId())
            .append("handleBy", getHandleBy())
            .append("handleTime", getHandleTime())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("transferUserId", getTransferUserId())
            .append("attr1", getAttr1())
            .toString();
    }
}
