package com.ygtx.gxt.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.ygtx.common.annotation.Excel;
import com.ygtx.common.core.domain.BaseEntity;

/**
 * 维修工单流转记录对象 gxt_work_order_flow
 *
 * @author ygtx
 * @date 2025-10-29
 */
public class GxtWorkOrderFlow extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 流转记录ID */
    private Long id;

    /** 工单ID */
    @Excel(name = "工单ID")
    private Long orderId;

    /** 工单编码 */
    @Excel(name = "工单编码")
    private String orderCode;

    /** 操作类型：create-创建,assign-派单,accept-接单,process-处理,pause-暂停,suspend-挂起,restart-重启,approve-审批,complete-完成, ,selfRating-工单自评 ,reviewRating-工单复评,finalRating-工单终评 ,confirmRating-评分确认 ,feedbackRating-评分反馈，appealRating-评分申诉  */
    @Excel(name = "操作类型", readConverterExp = "create=创建,assign=派单,accept=接单,process=处理,pause=暂停,suspend=挂起,restart=重启,approve=审批,complete=完成")
    private String actionType;

    /** 原状态 */
    @Excel(name = "原状态")
    private String fromStatus;

    /** 目标状态 */
    @Excel(name = "目标状态")
    private String toStatus;

    /** 操作人ID */
    private Long operatorId;

    /** 操作人姓名 */
    @Excel(name = "操作人")
    private String operatorName;

    /** 操作时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    private Date actionTime;

    /** 操作备注 */
    private String actionRemark;

    /** 原评分状态 */
    @Excel(name = "原评分状态")
    private String fromScoreStatus;

    /** 目标评分状态 */
    @Excel(name = "目标评分状态")
    private String toScoreStatus;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }

    public void setOrderId(Long orderId)
    {
        this.orderId = orderId;
    }

    public Long getOrderId()
    {
        return orderId;
    }

    public void setOrderCode(String orderCode)
    {
        this.orderCode = orderCode;
    }

    public String getOrderCode()
    {
        return orderCode;
    }

    public void setActionType(String actionType)
    {
        this.actionType = actionType;
    }

    public String getActionType()
    {
        return actionType;
    }

    public void setFromStatus(String fromStatus)
    {
        this.fromStatus = fromStatus;
    }

    public String getFromStatus()
    {
        return fromStatus;
    }

    public void setToStatus(String toStatus)
    {
        this.toStatus = toStatus;
    }

    public String getToStatus()
    {
        return toStatus;
    }

    public void setOperatorId(Long operatorId)
    {
        this.operatorId = operatorId;
    }

    public Long getOperatorId()
    {
        return operatorId;
    }

    public void setOperatorName(String operatorName)
    {
        this.operatorName = operatorName;
    }

    public String getOperatorName()
    {
        return operatorName;
    }

    public void setActionTime(Date actionTime)
    {
        this.actionTime = actionTime;
    }

    public Date getActionTime()
    {
        return actionTime;
    }

    public void setActionRemark(String actionRemark)
    {
        this.actionRemark = actionRemark;
    }

    public String getActionRemark()
    {
        return actionRemark;
    }

    public void setFromScoreStatus(String fromScoreStatus) 
    {
        this.fromScoreStatus = fromScoreStatus;
    }

    public String getFromScoreStatus() 
    {
        return fromScoreStatus;
    }

    public void setToScoreStatus(String toScoreStatus) 
    {
        this.toScoreStatus = toScoreStatus;
    }

    public String getToScoreStatus() 
    {
        return toScoreStatus;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("orderId", getOrderId())
            .append("orderCode", getOrderCode())
            .append("actionType", getActionType())
            .append("fromStatus", getFromStatus())
            .append("toStatus", getToStatus())
            .append("operatorId", getOperatorId())
            .append("operatorName", getOperatorName())
            .append("actionTime", getActionTime())
            .append("actionRemark", getActionRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .toString();
    }
}
