package org.eco.als.domain.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * 故障统计导入视图对象 als_fault_statistics_t
 *
 * @author wgk
 * @date 2024-12-13
 */

@Data
@NoArgsConstructor
@ExcelIgnoreUnannotated
@AutoMapper(target = AirConfigurationVo.class, convertGenerate = false)
public class FaultStatisticsImportVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 日期 */
    @ExcelProperty(value = "日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date statisticsDate;

    /** 战区 */
    @ExcelProperty(value = "战区")
    private String warZone;

    /** 军 */
    @ExcelProperty(value = "军")
    private String army;

    /** 师 */
    @ExcelProperty(value = "师")
    private String division;

    /** 团 */
    @ExcelProperty(value = "团")
    private String groups;

    /** 中队 */
    @ExcelProperty(value = "中队")
    private String squadron;

    /** 飞机号 */
    @ExcelProperty(value = "飞机号")
    private String aircraftNum;

    /** 机型 */
    @ExcelProperty(value = "机型")
    private String aircraftModel;

    /** 出厂号码 */
    @ExcelProperty(value = "出厂号码")
    private String factoryNum;

    /** 机件类型 */
    @ExcelProperty(value = "机件类型")
    private String machineType;

    /** 机件号 */
    @ExcelProperty(value = "机件号")
    private String machineNum;

    /** 机件型别 */
    @ExcelProperty(value = "机件型别")
    private String machineModel;

    /** 机件名称 */
    @ExcelProperty(value = "机件名称")
    private String machineName;

    /** 起落 */
    @ExcelProperty(value = "起落")
    private String landingGear;

    /** 专业 */
    @ExcelProperty(value = "专业")
    private String major;

    /** 故障件名称 */
    @ExcelProperty(value = "故障件名称")
    private String faultyPartsName;

    /** 故障件型别 */
    @ExcelProperty(value = "故障件型别")
    private String faultyPartsModel;

    /** 故障件号码 */
    @ExcelProperty(value = "故障件号码")
    private String faultyPartsNum;

    /** 故障件所属发动机型别 */
    @ExcelProperty(value = "故障件所属发动机型别")
    private String engineModel;

    /** 故障件所属发动机号码 */
    @ExcelProperty(value = "故障件所属发动机号码")
    private String engineNum;

    /** 故障件所属发动机序号 */
    @ExcelProperty(value = "故障件所属发动机序号")
    private String engineSerialNum;

    /** 故障件位置 */
    @ExcelProperty(value = "故障件位置")
    private String faultyPartsPosition;

    /** 故障现象 */
    @ExcelProperty(value = "故障现象")
    private String faultyPhenomenon;

    /** 故障发生地点 */
    @ExcelProperty(value = "故障发生地点")
    private String faultyPlace;

    /** 发现时机 */
    @ExcelProperty(value = "发现时机")
    private String findOpportunity;

    /** 系统 */
    @ExcelProperty(value = "系统")
    private String systems;

    /** 计时类型 */
    @ExcelProperty(value = "计时类型")
    private String timingType;

    /** 故障件制造厂 */
    @ExcelProperty(value = "故障件制造厂")
    private String faultyPartsManufacturer;

    /** 故障件翻修厂 */
    @ExcelProperty(value = "故障件翻修厂")
    private String faultyPartsRenovate;

    /** 故障件装本机工作时次 */
    @ExcelProperty(value = "故障件装本机工作时次")
    private String installationTime;

    /** 故障件总工作时次 */
    @ExcelProperty(value = "故障件总工作时次")
    private String totalWorkTime;

    /** 故障件修后时次 */
    @ExcelProperty(value = "故障件修后时次")
    private String repairTime;

    /** 故换件型别 */
    @ExcelProperty(value = "故换件型别")
    private String replacementPartsModel;

    /** 故换件号码 */
    @ExcelProperty(value = "故换件号码")
    private String replacementPartsNum;

    /** 故换件制造厂 */
    @ExcelProperty(value = "故换件制造厂")
    private String replacementPartsManufacturer;

    /** 故换件总工作时次 */
    @ExcelProperty(value = "故换件总工作时次")
    private String replacementTotalWorkTime;

    /** 故换件翻修厂 */
    @ExcelProperty(value = "故换件翻修厂")
    private String replacementPartsRenovate;

    /** 故换件修后时次 */
    @ExcelProperty(value = "故换件修后时次")
    private String replacementRepairTime;

    /** 故障失常码 */
    @ExcelProperty(value = "故障失常码")
    private String faultyAbnormalCode;

    /** 故障件装机日期 */
    @ExcelProperty(value = "故障件装机日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date faultyPartsInstallDate;

    /** 故障原因 */
    @ExcelProperty(value = "故障原因")
    private String faultyReason;

    /** 故障性质 */
    @ExcelProperty(value = "故障性质")
    private String faultyNature;

    /** 故障责任 */
    @ExcelProperty(value = "故障责任")
    private String faultyResponsibility;

    /** 故障后果 */
    @ExcelProperty(value = "故障后果")
    private String faultyConsequence;

    /** 处理意见 */
    @ExcelProperty(value = "处理意见")
    private String handlingSuggestions;

    /** 影响次数 */
    @ExcelProperty(value = "影响次数")
    private String influenceFrequency;

    /** 误飞次数 */
    @ExcelProperty(value = "误飞次数")
    private String errorFlyFrequency;

    /** 判明方法 */
    @ExcelProperty(value = "判明方法")
    private String identificationMethod;

    /** 发现人 */
    @ExcelProperty(value = "发现人")
    private String discoveredPeople;

    /** 排除方法 */
    @ExcelProperty(value = "排除方法")
    private String exclusionMethod;

    /** 排故人 */
    @ExcelProperty(value = "排故人")
    private String exclusionPeople;

    /** 审核人 */
    @ExcelProperty(value = "审核人")
    private String examinePeople;

    /** 审核时间 */
    @ExcelProperty(value = "审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date examineTime;

    /** 排除日期 */
    @ExcelProperty(value = "排除日期")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date exclusionDate;

    /** 排故工时 */
    @ExcelProperty(value = "排故工时")
    private String exclusionWorkTime;

    /** 排故人数 */
    @ExcelProperty(value = "排故人数")
    private String exclusionPeopleNum;

    /** 排故时间 */
    @ExcelProperty(value = "排故时间")
    private String exclusionTime;

    /** 是否立功 */
    @ExcelProperty(value = "是否立功")
    private String isAchievement;

    /** 需要试飞 */
    @ExcelProperty(value = "需要试飞")
    private String needTestFly;

    /** 维修状态 */
    @ExcelProperty(value = "维修状态")
    private String repairStatus;

    /** 备注 */
    @ExcelProperty(value = "备注")
    private String remarks;
}
