package com.ygtx.gxt.domain;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

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_repair_order
 * 
 * @author ouyj
 * @date 2025-10-30
 */
public class GxtRepairOrder extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 工单ID */
    private Long id;

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

    /** 风机编号 */
    @Excel(name = "风机编号")
    private String pcsDeviceName;

    /** 工单状态：draft-草稿,to_assign-待派单,assigned-待接单,accepted-已接单,processing-处理中,paused-暂停中,to_approve-待审批,suspended-已挂起,to_be_finalized-待结单(废弃),completed-已完成,to_issue-待下发,archived-已归档,to_archive-待归档，to_finish-待结单,invalid-作废 */
    private String workOrderStatus;

    @Excel(name = "工单状态")
    private String workOrderStatusName;

    /** 维保中心ID */
    private Long gxtCenterId;

    /** 维保中心 */
    @Excel(name = "维保中心")
    private String gxtCenter;

    /** 设备场站ID */
    private Long pcsStationId;

    /** 风电场 */
    @Excel(name = "场站")
    private String pcsStationName;

    /** 风机设备ID */
    private Long pcsDeviceId;

    /** 风机品牌 */
    @Excel(name = "品牌")
    private String brand;

    /** 风机型号 */
    @Excel(name = "机型")
    private String model;

    /** 故障代码 */
    @Excel(name = "故障代码")
    private String faultCode;

    /** 发生时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "发生时间", dateFormat = "yyyy-MM-dd HH:mm")
    private Date occurTime;

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

    /** 故障描述 */
    private String faultDesc;

    /** 派单人姓名 */
    @Excel(name = "下发人")
    private String assignUserName;

    /** 派单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "下发时间", dateFormat = "yyyy-MM-dd HH:mm")
    private Date assignTime;

    /** 派单人ID */
    private Long assignUserId;


    /** 接单人姓名 */
    @Excel(name = "接单人")
    private String acceptUserName;

    /** 接单时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "接单时间", dateFormat = "yyyy-MM-dd HH:mm")
    private Date acceptTime;

    /** 班组组长姓名 */
    @Excel(name = "工作负责人")
    private String teamLeaderName;

    /** 接单人ID */
    private Long acceptUserId;

    /** 实际开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "开始时间", dateFormat = "yyyy-MM-dd HH:mm")
    private Date realStartTime;

    /** 实际结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd HH:mm")
    private Date realEndTime;

    /** 班组组长ID */
    private Long teamLeaderId;

    /** 工作组成员ID */
    private Long workGroupMemberId;

    /** 工作组成员姓名 */
//    @Excel(name = "检修人员")
    private String workGroupMemberName;

    /** 维修总结 */
//    @Excel(name = "维修总结")
    private String content;

    /** 预计工时（小时） */
    private BigDecimal planHour;

    /** 优先级 */
    private String priorityType;

    /** 评分 */
//    @Excel(name = "评分")
    private BigDecimal score;

    /** 点评 */
//    @Excel(name = "点评")
    private String reviewContent;

    /** 检修类型（A、B、C、D） */
//    @Excel(name = "检修类型")
    private String maintenanceType;

    /** 故障条文 */
//    @Excel(name = "故障信息")
    private String faultBarcode;

    /** 挂起原因 */
    private String suspendReason;

    /** 挂起说明 */
    private String suspendDescription;
    
    /** 挂起其他说明 */
    private String suspendExplain;
    
    /** 工单附件 */
    private String orderAttachment;
    
    /** 审批状态 */
    private String approvalStatus;

    /** 驳回原因 */
    private String rejectionReason;

    /** 结单说明 */
    private String finalizationRemark;

    /** 关联维保工单 */
    private String relatedOrderCode;

    /** 维保内容 */
    private String relatedOrderContent;

    /** 恢复时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
//    @Excel(name = "恢复时间", dateFormat = "yyyy-MM-dd HH:mm")
    private Date restartTime;

    /** 评分状态（to_self-待自评，to_re-待复评，to_confirm-待确认，to_final-待终评，to_archive-待归档，archived-已归档，appealing-申诉中） */
    private String scoringStatus;
    
    /** 复评次数 */
    private Integer reviewScoreNum;
    
    /** 终评系数 */
    private BigDecimal finalCoefficient;

    /** 工单类型 */
    private Long orderType;
    
    /** 工单录入类别（1默认，2补录工单） */
    private String orderEntryType;
    /** 维修方式(1正常维修，2复位启机)*/
    /*@Excel(name = "维修方式", readConverterExp = "1=正常维修,2=复位启机")*/
    private String repairMethod;
    
    /** 复位方式(1远程复位，2就地复位) */
    private String resetMethod;

    /** 作废原因 */
    private String invalidReason;

    /** 退回方式 */
    private String returnType;

    /** 退回原因 */
    private String returnReason;

    private List<GxtRepairOrderPerson> repairOrderPersonList;

    private List<GxtRepairOrderFlow> repairOrderFlowList;

    /** 场站ID */
    private Long pcsStationPid;

    /** 结单附件URL */
    private String attachmentUrls;

    /** 修改理由 */
    private String modifyReason;

    /** 反馈理由 */
    private String feedbackReason;

    /** 确认状态（0-未确认，1-确认，2-已反馈，3-已申诉） */
    private Integer confirmStatus;

    /** 外委人员数 */
    private Integer wwryNum;

    /** 外来人员数 */
    private Integer wlryNum;

    /** 工作部位 */
    private String workArea;

    /** 信息录入方式 */
    private String infoEntry;

    /** 真实故障原因 */
    private String realFailureReason;

    /** 损失电量（单位kWh） */
    private BigDecimal lostPower;

    /** 工作票编号 */
    @Excel(name = "工作票编号")
    private String workPermitNum;
    
    /** 结单方式（1系统自动匹配，2工作票） */
    private String finalizeMethod;
    
    /** 评分退回理由 */
    private String scoreReturnReason;

    private Integer outTimeParam;

    private String homePageParam;

    /** 申诉人用户ID */
    private Long appealUserId;

    /** 申诉人姓名 */
    private String appealUserName;

    /** 申诉时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    private Date appealTime;

    /** 申诉理由 */
    private String appealReason;

    /** 额外工作总结 */
    private String extraWork;

    /** 接单退回原因 */
    private String acceptReturnType;
    
    /** 接单退回说明 */
    private String acceptReturnReason;

    private String monthPeriod;

    private String leader;

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

    public Long getId() 
    {
        return id;
    }

    public void setWorkOrderProjectNo(String workOrderProjectNo) 
    {
        this.workOrderProjectNo = workOrderProjectNo;
    }

    public String getWorkOrderProjectNo() 
    {
        return workOrderProjectNo;
    }

    public void setWorkOrderStatus(String workOrderStatus) 
    {
        this.workOrderStatus = workOrderStatus;
    }

    public String getWorkOrderStatus() 
    {
        return workOrderStatus;
    }

    public void setGxtCenterId(Long gxtCenterId) 
    {
        this.gxtCenterId = gxtCenterId;
    }

    public Long getGxtCenterId() 
    {
        return gxtCenterId;
    }

    public void setGxtCenter(String gxtCenter) 
    {
        this.gxtCenter = gxtCenter;
    }

    public String getGxtCenter() 
    {
        return gxtCenter;
    }

    public void setPcsStationId(Long pcsStationId) 
    {
        this.pcsStationId = pcsStationId;
    }

    public Long getPcsStationId() 
    {
        return pcsStationId;
    }

    public void setPcsStationName(String pcsStationName) 
    {
        this.pcsStationName = pcsStationName;
    }

    public String getPcsStationName() 
    {
        return pcsStationName;
    }

    public void setPcsDeviceId(Long pcsDeviceId) 
    {
        this.pcsDeviceId = pcsDeviceId;
    }

    public Long getPcsDeviceId() 
    {
        return pcsDeviceId;
    }

    public void setPcsDeviceName(String pcsDeviceName) 
    {
        this.pcsDeviceName = pcsDeviceName;
    }

    public String getPcsDeviceName() 
    {
        return pcsDeviceName;
    }

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

    public String getBrand() 
    {
        return brand;
    }

    public void setModel(String model) 
    {
        this.model = model;
    }

    public String getModel() 
    {
        return model;
    }

    public void setFaultCode(String faultCode) 
    {
        this.faultCode = faultCode;
    }

    public String getFaultCode() 
    {
        return faultCode;
    }

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

    public String getFaultDesc() 
    {
        return faultDesc;
    }

    public void setAssignTime(Date assignTime) 
    {
        this.assignTime = assignTime;
    }

    public Date getAssignTime() 
    {
        return assignTime;
    }

    public void setAssignUserId(Long assignUserId) 
    {
        this.assignUserId = assignUserId;
    }

    public Long getAssignUserId() 
    {
        return assignUserId;
    }

    public void setAssignUserName(String assignUserName) 
    {
        this.assignUserName = assignUserName;
    }

    public String getAssignUserName() 
    {
        return assignUserName;
    }

    public void setAcceptTime(Date acceptTime) 
    {
        this.acceptTime = acceptTime;
    }

    public Date getAcceptTime() 
    {
        return acceptTime;
    }

    public void setAcceptUserId(Long acceptUserId) 
    {
        this.acceptUserId = acceptUserId;
    }

    public Long getAcceptUserId() 
    {
        return acceptUserId;
    }

    public void setAcceptUserName(String acceptUserName) 
    {
        this.acceptUserName = acceptUserName;
    }

    public String getAcceptUserName() 
    {
        return acceptUserName;
    }

    public void setRealStartTime(Date realStartTime) 
    {
        this.realStartTime = realStartTime;
    }

    public Date getRealStartTime() 
    {
        return realStartTime;
    }

    public void setRealEndTime(Date realEndTime) 
    {
        this.realEndTime = realEndTime;
    }

    public Date getRealEndTime() 
    {
        return realEndTime;
    }

    public void setTeamLeaderId(Long teamLeaderId) 
    {
        this.teamLeaderId = teamLeaderId;
    }

    public Long getTeamLeaderId() 
    {
        return teamLeaderId;
    }

    public void setTeamLeaderName(String teamLeaderName) 
    {
        this.teamLeaderName = teamLeaderName;
    }

    public String getTeamLeaderName() 
    {
        return teamLeaderName;
    }

    public void setWorkGroupMemberId(Long workGroupMemberId) 
    {
        this.workGroupMemberId = workGroupMemberId;
    }

    public Long getWorkGroupMemberId() 
    {
        return workGroupMemberId;
    }

    public void setWorkGroupMemberName(String workGroupMemberName) 
    {
        this.workGroupMemberName = workGroupMemberName;
    }

    public String getWorkGroupMemberName() 
    {
        return workGroupMemberName;
    }

    public void setContent(String content) 
    {
        this.content = content;
    }

    public String getContent() 
    {
        return content;
    }

    public void setPlanHour(BigDecimal planHour) 
    {
        this.planHour = planHour;
    }

    public BigDecimal getPlanHour() 
    {
        return planHour;
    }

    public void setPriorityType(String priorityType) 
    {
        this.priorityType = priorityType;
    }

    public String getPriorityType() 
    {
        return priorityType;
    }

    public void setScore(BigDecimal score) 
    {
        this.score = score;
    }

    public BigDecimal getScore() 
    {
        return score;
    }

    public void setReviewContent(String reviewContent) 
    {
        this.reviewContent = reviewContent;
    }

    public String getReviewContent() 
    {
        return reviewContent;
    }

    public String getMaintenanceType() {
        return maintenanceType;
    }

    public void setMaintenanceType(String maintenanceType) {
        this.maintenanceType = maintenanceType;
    }

    public Date getOccurTime() {
        return occurTime;
    }

    public void setOcccurTime(Date occurTime) {
        this.occurTime = occurTime;
    }

    public String getFaultBarcode() {
        return faultBarcode;
    }

    public void setFaultBarcode(String faultBarcode) {
        this.faultBarcode = faultBarcode;
    }

    public String getSuspendReason() {
        return suspendReason;
    }

    public void setSuspendReason(String suspendReason) {
        this.suspendReason = suspendReason;
    }

    public String getSuspendDescription() {
        return suspendDescription;
    }

    public void setSuspendDescription(String suspendDescription) {
        this.suspendDescription = suspendDescription;
    }

    public String getSuspendExplain() {
        return suspendExplain;
    }

    public void setSuspendExplain(String suspendExplain) {
        this.suspendExplain = suspendExplain;
    }
        
    public String getOrderAttachment() {
        return orderAttachment;
    }
        
    public void setOrderAttachment(String orderAttachment) {
        this.orderAttachment = orderAttachment;
    }
        
    public String getApprovalStatus() {
        return approvalStatus;
    }

    public void setApprovalStatus(String approvalStatus) {
        this.approvalStatus = approvalStatus;
    }

    public String getRejectionReason() {
        return rejectionReason;
    }

    public void setRejectionReason(String rejectionReason) {
        this.rejectionReason = rejectionReason;
    }

    public String getFinalizationRemark() {
        return finalizationRemark;
    }

    public void setFinalizationRemark(String finalizationRemark) {
        this.finalizationRemark = finalizationRemark;
    }

    public String getRelatedOrderCode() {
        return relatedOrderCode;
    }

    public void setRelatedOrderCode(String relatedOrderCode) {
        this.relatedOrderCode = relatedOrderCode;
    }

    public String getRelatedOrderContent() {
        return relatedOrderContent;
    }

    public void setRelatedOrderContent(String relatedOrderContent) {
        this.relatedOrderContent = relatedOrderContent;
    }

    public List<GxtRepairOrderPerson> getRepairOrderPersonList() {
        return repairOrderPersonList;
    }

    public void setRepairOrderPersonList(List<GxtRepairOrderPerson> repairOrderPersonList) {
        this.repairOrderPersonList = repairOrderPersonList;
    }

    public String getMisOrderNo() {
        return misOrderNo;
    }

    public void setMisOrderNo(String misOrderNo) {
        this.misOrderNo = misOrderNo;
    }

    public List<GxtRepairOrderFlow> getRepairOrderFlowList() {
        return repairOrderFlowList;
    }

    public void setRepairOrderFlowList(List<GxtRepairOrderFlow> repairOrderFlowList) {
        this.repairOrderFlowList = repairOrderFlowList;
    }

    public Date getRestartTime() {
        return restartTime;
    }

    public void setRestartTime(Date restartTime) {
        this.restartTime = restartTime;
    }

    public Long getPcsStationPid() {
        return pcsStationPid;
    }

    public void setPcsStationPid(Long pcsStationPid) {
        this.pcsStationPid = pcsStationPid;
    }

    public String getAttachmentUrls() {
        return attachmentUrls;
    }

    public void setAttachmentUrls(String attachmentUrls) {
        this.attachmentUrls = attachmentUrls;
    }

    public String getWorkOrderStatusName() {
        return workOrderStatusName;
    }

    public void setWorkOrderStatusName(String workOrderStatusName) {
        this.workOrderStatusName = workOrderStatusName;
    }

    public String getScoringStatus() {
        return scoringStatus;
    }

    public void setScoringStatus(String scoringStatus) {
        this.scoringStatus = scoringStatus;
    }

    public void setOccurTime(Date occurTime) {
        this.occurTime = occurTime;
    }

    public String getModifyReason() {
        return modifyReason;
    }

    public void setModifyReason(String modifyReason) {
        this.modifyReason = modifyReason;
    }
    
    public Integer getReviewScoreNum() {
        return reviewScoreNum;
    }
    
    public void setReviewScoreNum(Integer reviewScoreNum) {
        this.reviewScoreNum = reviewScoreNum;
    }
    
    public BigDecimal getFinalCoefficient() {
        return finalCoefficient;
    }
    
    public void setFinalCoefficient(BigDecimal finalCoefficient) {
        this.finalCoefficient = finalCoefficient;
    }

    public Long getOrderType() {
        return orderType;
    }

    public void setOrderType(Long orderType) {
        this.orderType = orderType;
    }
    
    public String getOrderEntryType() {
        return orderEntryType;
    }

    public void setOrderEntryType(String orderEntryType) {
        this.orderEntryType = orderEntryType;
    }
    public String getRepairMethod() {
        return repairMethod;
    }

    public void setRepairMethod(String repairMethod) {
        this.repairMethod = repairMethod;
    }

    public String getResetMethod() {
        return resetMethod;
    }

    public void setResetMethod(String resetMethod) {
        this.resetMethod = resetMethod;
    }

    public String getInvalidReason() {
        return invalidReason;
    }

    public void setInvalidReason(String invalidReason) {
        this.invalidReason = invalidReason;
    }

    public String getReturnType() {
        return returnType;
    }

    public void setReturnType(String returnType) {
        this.returnType = returnType;
    }

    public String getReturnReason() {
        return returnReason;
    }

    public void setReturnReason(String returnReason) {
        this.returnReason = returnReason;
    }

    public String getFeedbackReason() {
        return feedbackReason;
    }

    public void setFeedbackReason(String feedbackReason) {
        this.feedbackReason = feedbackReason;
    }

    public Integer getConfirmStatus() {
        return confirmStatus;
    }

    public void setConfirmStatus(Integer confirmStatus) {
        this.confirmStatus = confirmStatus;
    }

    public Integer getWwryNum() {
        return wwryNum;
    }

    public void setWwryNum(Integer wwryNum) {
        this.wwryNum = wwryNum;
    }

    public Integer getWlryNum() {
        return wlryNum;
    }

    public void setWlryNum(Integer wlryNum) {
        this.wlryNum = wlryNum;
    }

    public String getWorkArea() {
        return workArea;
    }

    public void setWorkArea(String workArea) {
        this.workArea = workArea;
    }

    public String getInfoEntry() {
        return infoEntry;
    }

    public void setInfoEntry(String infoEntry) {
        this.infoEntry = infoEntry;
    }

    public String getRealFailureReason() {
        return realFailureReason;
    }

    public void setRealFailureReason(String realFailureReason) {
        this.realFailureReason = realFailureReason;
    }

    public BigDecimal getLostPower() {
        return lostPower;
    }

    public void setLostPower(BigDecimal lostPower) {
        this.lostPower = lostPower;
    }

    public String getWorkPermitNum() {
        return workPermitNum;
    }

    public void setWorkPermitNum(String workPermitNum) {
        this.workPermitNum = workPermitNum;
    }
    
    public String getFinalizeMethod() {
        return finalizeMethod;
    }
    
    public void setFinalizeMethod(String finalizeMethod) {
        this.finalizeMethod = finalizeMethod;
    }
    
    public String getScoreReturnReason() {
        return scoreReturnReason;
    }
    
    public void setScoreReturnReason(String scoreReturnReason) {
        this.scoreReturnReason = scoreReturnReason;
    }

    public Integer getOutTimeParam() {
        return outTimeParam;
    }

    public void setOutTimeParam(Integer outTimeParam) {
        this.outTimeParam = outTimeParam;
    }

    public String getHomePageParam() {
        return homePageParam;
    }

    public void setHomePageParam(String homePageParam) {
        this.homePageParam = homePageParam;
    }

    public String getAppealUserName() {
        return appealUserName;
    }

    public void setAppealUserName(String appealUserName) {
        this.appealUserName = appealUserName;
    }

    public Date getAppealTime() {
        return appealTime;
    }

    public void setAppealTime(Date appealTime) {
        this.appealTime = appealTime;
    }

    public String getAppealReason() {
        return appealReason;
    }

    public void setAppealReason(String appealReason) {
        this.appealReason = appealReason;
    }

    public Long getAppealUserId() {
        return appealUserId;
    }

    public void setAppealUserId(Long appealUserId) {
        this.appealUserId = appealUserId;
    }

    public String getExtraWork() {
        return extraWork;
    }

    public void setExtraWork(String extraWork) {
        this.extraWork = extraWork;
    }

    public String getAcceptReturnType() {
        return acceptReturnType;
    }

    public void setAcceptReturnType(String acceptReturnType) {
        this.acceptReturnType = acceptReturnType;
    }

    public String getAcceptReturnReason() {
        return acceptReturnReason;
    }

    public void setAcceptReturnReason(String acceptReturnReason) {
        this.acceptReturnReason = acceptReturnReason;
    }

    public String getMonthPeriod() {
        return monthPeriod;
    }

    public void setMonthPeriod(String monthPeriod) {
        this.monthPeriod = monthPeriod;
    }

    public String getLeader() {
        return leader;
    }

    public void setLeader(String leader) {
        this.leader = leader;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("workOrderProjectNo", getWorkOrderProjectNo())
            .append("workOrderStatus", getWorkOrderStatus())
            .append("gxtCenterId", getGxtCenterId())
            .append("gxtCenter", getGxtCenter())
            .append("pcsStationId", getPcsStationId())
            .append("pcsStationName", getPcsStationName())
            .append("pcsDeviceId", getPcsDeviceId())
            .append("pcsDeviceName", getPcsDeviceName())
            .append("brand", getBrand())
            .append("model", getModel())
            .append("faultCode", getFaultCode())
            .append("faultDesc", getFaultDesc())
            .append("assignTime", getAssignTime())
            .append("assignUserId", getAssignUserId())
            .append("assignUserName", getAssignUserName())
            .append("acceptTime", getAcceptTime())
            .append("acceptUserId", getAcceptUserId())
            .append("acceptUserName", getAcceptUserName())
            .append("realStartTime", getRealStartTime())
            .append("realEndTime", getRealEndTime())
            .append("teamLeaderId", getTeamLeaderId())
            .append("teamLeaderName", getTeamLeaderName())
            .append("workGroupMemberId", getWorkGroupMemberId())
            .append("workGroupMemberName", getWorkGroupMemberName())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("remark", getRemark())
            .append("content", getContent())
            .append("planHour", getPlanHour())
            .append("priorityType", getPriorityType())
            .append("score", getScore())
            .append("reviewContent", getReviewContent())
            .append("suspendReason", getSuspendReason())
            .append("suspendDescription", getSuspendDescription())
            .append("approvalStatus", getApprovalStatus())
            .append("rejectionReason", getRejectionReason())
            .append("finalizationRemark", getFinalizationRemark())
            .append("orderType", getOrderType())
            .append("repairMethod", getRepairMethod())
            .append("resetMethod", getResetMethod())
            .append("invalidReason", getInvalidReason())
            .append("appealReason", getAppealReason())
            .append("extraWork", getExtraWork())
            .toString();
    }
}