package org.eco.als.domain.bo;

import lombok.experimental.Accessors;
import org.eco.als.domain.FaultStatistics;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.eco.common.orm.core.domain.BaseEntity;

/**
 * 故障统计业务对象 als_fault_statistics_t
 *
 * @author wgk
 * @date 2024-12-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = FaultStatistics.class, reverseConvertGenerate = false)
@Accessors(chain = true)
public class FaultStatisticsBo extends BaseEntity{
    /**
     * 编号
     */
//    @NotNull(message = "编号不能为空")
    private Long id;

    /**
     * 日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date statisticsDate;

    /**
     * 开始日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date startStatisticsDate;

    /**
     * 结束日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date endStatisticsDate;

    /**
     * 战区
     */
    private String warZone;

    /**
     * 军
     */
    private String army;

    /**
     * 师
     */
    private String division;

    /**
     * 团
     */
    private String groups;

    /**
     * 中队
     */
    private String squadron;

    /**
     * 飞机号
     */
    private String aircraftNum;

    /**
     * 机型
     */
    private String aircraftModel;

    /**
     * 出厂号码
     */
    private String factoryNum;

    /**
     * 机件类型
     */
    private String machineType;

    /**
     * 机件号
     */
    private String machineNum;

    /**
     * 机件型别
     */
    private String machineModel;

    /**
     * 机件名称
     */
    private String machineName;

    /**
     * 起落
     */
    private String landingGear;

    /**
     * 专业
     */
    private String major;

    /**
     * 故障件名称
     */
    private String faultyPartsName;

    /**
     * 故障件型别
     */
    private String faultyPartsModel;

    /**
     * 故障件号码
     */
    private String faultyPartsNum;

    /**
     * 故障件所属发动机型别
     */
    private String engineModel;

    /**
     * 故障件所属发动机号码
     */
    private String engineNum;

    /**
     * 故障件所属发动机序号
     */
    private String engineSerialNum;

    /**
     * 故障件位置
     */
    private String faultyPartsPosition;

    /**
     * 故障现象
     */
    private String faultyPhenomenon;

    /**
     * 故障发生地点
     */
    private String faultyPlace;

    /**
     * 发现时机
     */
    private String findOpportunity;

    /**
     * 系统
     */
    private String systems;

    /**
     * 计时类型
     */
    private String timingType;

    /**
     * 故障件制造厂
     */
    private String faultyPartsManufacturer;

    /**
     * 故障件翻修厂
     */
    private String faultyPartsRenovate;

    /**
     * 故障件装本机工作时次
     */
    @NotBlank(message = "故障件装本机工作时次不能为空")
    private String installationTime;

    /**
     * 故障件总工作时次
     */
    @NotBlank(message = "故障件总工作时次不能为空")
    private String totalWorkTime;

    /**
     * 故障件修后时次
     */
    private String repairTime;

    /**
     * 故换件型别
     */
    private String replacementPartsModel;

    /**
     * 故换件号码
     */
    private String replacementPartsNum;

    /**
     * 故换件制造厂
     */
    private String replacementPartsManufacturer;

    /**
     * 故换件总工作时次
     */
    private String replacementTotalWorkTime;

    /**
     * 故换件翻修厂
     */
    private String replacementPartsRenovate;

    /**
     * 故换件修后时次
     */
    private String replacementRepairTime;

    /**
     * 故障失常码
     */
    private String faultyAbnormalCode;

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

    /**
     * 故障原因
     */
    private String faultyReason;

    /**
     * 故障性质
     */
    private String faultyNature;

    /**
     * 故障责任
     */
    private String faultyResponsibility;

    /**
     * 故障后果
     */
    private String faultyConsequence;

    /**
     * 处理意见
     */
    private String handlingSuggestions;

    /**
     * 影响次数
     */
    private String influenceFrequency;

    /**
     * 误飞次数
     */
    private String errorFlyFrequency;

    /**
     * 判明方法
     */
    private String identificationMethod;

    /**
     * 发现人
     */
    private String discoveredPeople;

    /**
     * 排除方法
     */
    private String exclusionMethod;

    /**
     * 排故人
     */
    private String exclusionPeople;

    /**
     * 审核人
     */
    private String examinePeople;

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

    /**
     * 排除日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date exclusionDate;

    /**
     * 排故工时
     */
    private String exclusionWorkTime;

    /**
     * 排故人数
     */
    private String exclusionPeopleNum;

    /**
     * 排故时间
     */
    private String exclusionTime;

    /**
     * 是否立功
     */
    private String isAchievement;

    /**
     * 需要试飞
     */
    private String needTestFly;

    /**
     * 维修状态
     */
    private String repairStatus;

    /**
     * 备注
     */
    private String remarks;


    /**
     * 去重字段
     */
    private String distinctField;
}
