package com.ruoyi.asset.domain;

import java.math.BigDecimal;
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.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 报修维修管理对象 ams_repair_order
 *
 * @author Yangk
 * @date 2026-06-16
 */
public class AmsRepairOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 维修单ID */
    private Long repairId;

    /** 报修单号 */
    @Excel(name = "报修单号")
    private String repairNo;

    /** 资产ID */
    @Excel(name = "资产ID")
    private Long assetId;

    /** 资产编码快照 */
    @Excel(name = "资产编码快照")
    private String assetCode;

    /** 资产名称快照 */
    @Excel(name = "资产名称快照")
    private String assetName;

    /** 资产类别ID快照 */
    @Excel(name = "资产类别ID快照")
    private Long categoryId;

    /** 类别编码快照 */
    @Excel(name = "类别编码快照")
    private String categoryCode;

    /** 类别名称快照 */
    @Excel(name = "类别名称快照")
    private String categoryName;

    /** 规格型号快照 */
    @Excel(name = "规格型号快照")
    private String specModel;

    /** 品牌快照 */
    @Excel(name = "品牌快照")
    private String brand;

    /** 报修人ID */
    @Excel(name = "报修人ID")
    private Long reportUserId;

    /** 报修人名称快照 */
    @Excel(name = "报修人名称快照")
    private String reportUserName;

    /** 故障描述 */
    @Excel(name = "故障描述")
    private String faultDesc;

    /** 报修时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "报修时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date reportTime;

    /** 预计完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "预计完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedFinishTime;

    /** 维修方类型 */
    @Excel(name = "维修方类型")
    private String repairerType;

    /** 维修人ID，选择系统用户时保存 */
    @Excel(name = "维修人ID，选择系统用户时保存")
    private Long repairUserId;

    /** 维修人名称快照或手工填写姓名 */
    @Excel(name = "维修人名称快照或手工填写姓名")
    private String repairUserName;

    /** 外部维修单位名称 */
    @Excel(name = "外部维修单位名称")
    private String repairOrgName;

    /** 维修联系电话 */
    @Excel(name = "维修联系电话")
    private String repairContactPhone;

    /** 开始维修时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "开始维修时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date repairStartTime;

    /** 维修完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    @Excel(name = "维修完成时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date repairFinishTime;

    /** 维修结果 */
    @Excel(name = "维修结果")
    private String repairResult;

    /** 维修费用 */
    @Excel(name = "维修费用")
    private BigDecimal repairCost;

    /** 维修前资产状态 */
    @Excel(name = "维修前资产状态")
    private String beforeAssetStatus;

    /** 驳回原因 */
    @Excel(name = "驳回原因")
    private String rejectReason;

    /** 单据状态 */
    @Excel(name = "单据状态")
    private String orderStatus;

    /** 删除标志：0存在，1删除 */
    private String delFlag;

    public void setRepairId(Long repairId)
    {
        this.repairId = repairId;
    }

    public Long getRepairId()
    {
        return repairId;
    }

    public void setRepairNo(String repairNo)
    {
        this.repairNo = repairNo;
    }

    public String getRepairNo()
    {
        return repairNo;
    }

    public void setAssetId(Long assetId)
    {
        this.assetId = assetId;
    }

    public Long getAssetId()
    {
        return assetId;
    }

    public void setAssetCode(String assetCode)
    {
        this.assetCode = assetCode;
    }

    public String getAssetCode()
    {
        return assetCode;
    }

    public void setAssetName(String assetName)
    {
        this.assetName = assetName;
    }

    public String getAssetName()
    {
        return assetName;
    }

    public void setCategoryId(Long categoryId)
    {
        this.categoryId = categoryId;
    }

    public Long getCategoryId()
    {
        return categoryId;
    }

    public void setCategoryCode(String categoryCode)
    {
        this.categoryCode = categoryCode;
    }

    public String getCategoryCode()
    {
        return categoryCode;
    }

    public void setCategoryName(String categoryName)
    {
        this.categoryName = categoryName;
    }

    public String getCategoryName()
    {
        return categoryName;
    }

    public void setSpecModel(String specModel)
    {
        this.specModel = specModel;
    }

    public String getSpecModel()
    {
        return specModel;
    }

    public void setBrand(String brand)
    {
        this.brand = brand;
    }

    public String getBrand()
    {
        return brand;
    }

    public void setReportUserId(Long reportUserId)
    {
        this.reportUserId = reportUserId;
    }

    public Long getReportUserId()
    {
        return reportUserId;
    }

    public void setReportUserName(String reportUserName)
    {
        this.reportUserName = reportUserName;
    }

    public String getReportUserName()
    {
        return reportUserName;
    }

    public void setFaultDesc(String faultDesc)
    {
        this.faultDesc = faultDesc;
    }

    public String getFaultDesc()
    {
        return faultDesc;
    }

    public void setReportTime(Date reportTime)
    {
        this.reportTime = reportTime;
    }

    public Date getReportTime()
    {
        return reportTime;
    }

    public void setExpectedFinishTime(Date expectedFinishTime)
    {
        this.expectedFinishTime = expectedFinishTime;
    }

    public Date getExpectedFinishTime()
    {
        return expectedFinishTime;
    }

    public void setRepairerType(String repairerType)
    {
        this.repairerType = repairerType;
    }

    public String getRepairerType()
    {
        return repairerType;
    }

    public void setRepairUserId(Long repairUserId)
    {
        this.repairUserId = repairUserId;
    }

    public Long getRepairUserId()
    {
        return repairUserId;
    }

    public void setRepairUserName(String repairUserName)
    {
        this.repairUserName = repairUserName;
    }

    public String getRepairUserName()
    {
        return repairUserName;
    }

    public void setRepairOrgName(String repairOrgName)
    {
        this.repairOrgName = repairOrgName;
    }

    public String getRepairOrgName()
    {
        return repairOrgName;
    }

    public void setRepairContactPhone(String repairContactPhone)
    {
        this.repairContactPhone = repairContactPhone;
    }

    public String getRepairContactPhone()
    {
        return repairContactPhone;
    }

    public void setRepairStartTime(Date repairStartTime)
    {
        this.repairStartTime = repairStartTime;
    }

    public Date getRepairStartTime()
    {
        return repairStartTime;
    }

    public void setRepairFinishTime(Date repairFinishTime)
    {
        this.repairFinishTime = repairFinishTime;
    }

    public Date getRepairFinishTime()
    {
        return repairFinishTime;
    }

    public void setRepairResult(String repairResult)
    {
        this.repairResult = repairResult;
    }

    public String getRepairResult()
    {
        return repairResult;
    }

    public void setRepairCost(BigDecimal repairCost)
    {
        this.repairCost = repairCost;
    }

    public BigDecimal getRepairCost()
    {
        return repairCost;
    }

    public void setBeforeAssetStatus(String beforeAssetStatus)
    {
        this.beforeAssetStatus = beforeAssetStatus;
    }

    public String getBeforeAssetStatus()
    {
        return beforeAssetStatus;
    }

    public void setRejectReason(String rejectReason)
    {
        this.rejectReason = rejectReason;
    }

    public String getRejectReason()
    {
        return rejectReason;
    }

    public void setOrderStatus(String orderStatus)
    {
        this.orderStatus = orderStatus;
    }

    public String getOrderStatus()
    {
        return orderStatus;
    }

    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("repairId", getRepairId())
            .append("repairNo", getRepairNo())
            .append("assetId", getAssetId())
            .append("assetCode", getAssetCode())
            .append("assetName", getAssetName())
            .append("categoryId", getCategoryId())
            .append("categoryCode", getCategoryCode())
            .append("categoryName", getCategoryName())
            .append("specModel", getSpecModel())
            .append("brand", getBrand())
            .append("reportUserId", getReportUserId())
            .append("reportUserName", getReportUserName())
            .append("faultDesc", getFaultDesc())
            .append("reportTime", getReportTime())
            .append("expectedFinishTime", getExpectedFinishTime())
            .append("repairerType", getRepairerType())
            .append("repairUserId", getRepairUserId())
            .append("repairUserName", getRepairUserName())
            .append("repairOrgName", getRepairOrgName())
            .append("repairContactPhone", getRepairContactPhone())
            .append("repairStartTime", getRepairStartTime())
            .append("repairFinishTime", getRepairFinishTime())
            .append("repairResult", getRepairResult())
            .append("repairCost", getRepairCost())
            .append("beforeAssetStatus", getBeforeAssetStatus())
            .append("rejectReason", getRejectReason())
            .append("orderStatus", getOrderStatus())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("delFlag", getDelFlag())
            .toString();
    }
}
