package com.sundot.airport.blocked.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.sundot.airport.common.annotation.Excel;
import com.sundot.airport.common.core.domain.BaseEntity;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 漏检统计对象 blocked_miss_check_statistics
 *
 * @author wangxx
 * @date 2026-04-13
 */
public class BlockedMissCheckStatistics extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    @ApiModelProperty("主键ID")
    private Long id;

    /** 大队ID */
    private Long brigadeId;

    /** 大队名称 */
    @Excel(name = "大队名称")
    @ApiModelProperty("大队名称")
    private String brigadeName;

    /** 航站楼ID */
    @ApiModelProperty("航站楼ID")
    private Long terminalId;

    /** 航站楼名称 */
    @ApiModelProperty("航站楼名称")
    private String terminalName;

    /** 区域ID */
    @ApiModelProperty("区域ID")
    private Long areaId;

    /** 区域名称 */
    @ApiModelProperty("区域名称")
    private String areaName;

    /** 上岗位置ID */
    @ApiModelProperty("上岗位置ID")
    private Long channelId;

    /** 上岗位置名称 */
    @Excel(name = "上岗位置名称")
    @ApiModelProperty("上岗位置名称")
    private String channelName;

    /** 被回查人ID */
    @ApiModelProperty("被回查人ID")
    private Long reviewedUserId;

    /** 被回查人姓名 */
    @Excel(name = "被回查人姓名")
    @ApiModelProperty("被回查人姓名")
    private String reviewedUserName;

    /** 回查人ID */
    @ApiModelProperty("回查人ID")
    private Long reviewUserId;

    /** 回查人姓名 */
    @Excel(name = "回查人姓名")
    @ApiModelProperty("回查人姓名")
    private String reviewUserName;

    /** 分管主管ID */
    @ApiModelProperty("分管主管ID")
    private Long supervisorId;

    /** 分管主管姓名 */
    @Excel(name = "分管主管姓名")
    @ApiModelProperty("分管主管姓名")
    private String supervisorName;

    /** 代管主管ID */
    @ApiModelProperty("代管主管ID")
    private Long actingSupervisorId;

    /** 代管主管姓名 */
    @Excel(name = "代管主管姓名")
    @ApiModelProperty("代管主管姓名")
    private String actingSupervisorName;

    /** 分管班组长ID */
    @ApiModelProperty("分管班组长ID")
    private Long teamLeaderId;

    /** 分管班组长姓名 */
    @Excel(name = "分管班组长姓名")
    @ApiModelProperty("分管班组长姓名")
    private String teamLeaderName;

    /** 回查日期 */
    @Excel(name = "回查日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @ApiModelProperty("回查日期")
    private Date reviewDate;

    /** 漏检时间 */
    @Excel(name = "漏检时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @ApiModelProperty("漏检时间")
    private Date missCheckTime;

    /** 漏检时间段 */
    @Excel(name = "漏检时间段")
    @ApiModelProperty("漏检时间段")
    private String missCheckTimePeriod;

    /** 漏检物品 */
    @Excel(name = "漏检物品")
    @ApiModelProperty("漏检物品")
    private String missCheckItem;

    /** 物品位置 */
    @Excel(name = "物品位置")
    @ApiModelProperty("物品位置")
    private String itemLocation;

    /** 简单/难 */
    @Excel(name = "难度级别")
    @ApiModelProperty("难度级别")
    private String difficultyLevel;

    /** 判别类型 */
    @Excel(name = "判别类型")
    @ApiModelProperty("判别类型")
    private String discriminationType;

    /** 是否追回（0-否，1-是） */
    @Excel(name = "是否追回", readConverterExp = "0=否,1=是")
    @ApiModelProperty("是否追回 0=否,1=是")
    private Integer isRecovered;

    /** 开机年限 */
    @Excel(name = "开机年限")
    @ApiModelProperty("开机年限")
    private String machineOperatingYears;

    /** 证书级别 */
    @Excel(name = "证书级别")
    @ApiModelProperty("证书级别")
    private String certificateLevel;

    /** 人员性别 */
    @Excel(name = "人员性别")
    @ApiModelProperty("人员性别")
    private String gender;

    /** 漏检原因分类 */
    @Excel(name = "漏检原因分类")
    @ApiModelProperty("漏检原因分类")
    private String missCheckReasonCategory;

    /** 月考核 */
    @Excel(name = "月考核")
    @ApiModelProperty("月考核")
    private String monthlyAssessment;

    /** 本月自测有无漏检（0-无，1-有） */
    @Excel(name = "本月自测有无漏检")
    @ApiModelProperty("本月自测有无漏检 0=无,1=有")
    private Integer selfTestHasMissCheck;

    /** 删除标志（0代表存在 2代表删除） */
    @ApiModelProperty("删除标志（0代表存在 1代表删除）")
    private String delFlag;

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

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

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

    public Long getId() {
        return id;
    }

    public void setBrigadeId(Long brigadeId) {
        this.brigadeId = brigadeId;
    }

    public Long getBrigadeId() {
        return brigadeId;
    }

    public void setBrigadeName(String brigadeName) {
        this.brigadeName = brigadeName;
    }

    public String getBrigadeName() {
        return brigadeName;
    }

    public void setTerminalId(Long terminalId) {
        this.terminalId = terminalId;
    }

    public Long getTerminalId() {
        return terminalId;
    }

    public void setTerminalName(String terminalName) {
        this.terminalName = terminalName;
    }

    public String getTerminalName() {
        return terminalName;
    }

    public void setAreaId(Long areaId) {
        this.areaId = areaId;
    }

    public Long getAreaId() {
        return areaId;
    }

    public void setAreaName(String areaName) {
        this.areaName = areaName;
    }

    public String getAreaName() {
        return areaName;
    }

    public void setChannelId(Long channelId) {
        this.channelId = channelId;
    }

    public Long getChannelId() {
        return channelId;
    }

    public void setChannelName(String channelName) {
        this.channelName = channelName;
    }

    public String getChannelName() {
        return channelName;
    }

    public void setReviewedUserId(Long reviewedUserId) {
        this.reviewedUserId = reviewedUserId;
    }

    public Long getReviewedUserId() {
        return reviewedUserId;
    }

    public void setReviewedUserName(String reviewedUserName) {
        this.reviewedUserName = reviewedUserName;
    }

    public String getReviewedUserName() {
        return reviewedUserName;
    }

    public void setReviewUserId(Long reviewUserId) {
        this.reviewUserId = reviewUserId;
    }

    public Long getReviewUserId() {
        return reviewUserId;
    }

    public void setReviewUserName(String reviewUserName) {
        this.reviewUserName = reviewUserName;
    }

    public String getReviewUserName() {
        return reviewUserName;
    }

    public void setSupervisorId(Long supervisorId) {
        this.supervisorId = supervisorId;
    }

    public Long getSupervisorId() {
        return supervisorId;
    }

    public void setSupervisorName(String supervisorName) {
        this.supervisorName = supervisorName;
    }

    public String getSupervisorName() {
        return supervisorName;
    }

    public void setActingSupervisorId(Long actingSupervisorId) {
        this.actingSupervisorId = actingSupervisorId;
    }

    public Long getActingSupervisorId() {
        return actingSupervisorId;
    }

    public void setActingSupervisorName(String actingSupervisorName) {
        this.actingSupervisorName = actingSupervisorName;
    }

    public String getActingSupervisorName() {
        return actingSupervisorName;
    }

    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 setReviewDate(Date reviewDate) {
        this.reviewDate = reviewDate;
    }

    public Date getReviewDate() {
        return reviewDate;
    }

    public void setMissCheckTime(Date missCheckTime) {
        this.missCheckTime = missCheckTime;
    }

    public Date getMissCheckTime() {
        return missCheckTime;
    }

    public void setMissCheckTimePeriod(String missCheckTimePeriod) {
        this.missCheckTimePeriod = missCheckTimePeriod;
    }

    public String getMissCheckTimePeriod() {
        return missCheckTimePeriod;
    }

    public void setMissCheckItem(String missCheckItem) {
        this.missCheckItem = missCheckItem;
    }

    public String getMissCheckItem() {
        return missCheckItem;
    }

    public void setItemLocation(String itemLocation) {
        this.itemLocation = itemLocation;
    }

    public String getItemLocation() {
        return itemLocation;
    }

    public void setDifficultyLevel(String difficultyLevel) {
        this.difficultyLevel = difficultyLevel;
    }

    public String getDifficultyLevel() {
        return difficultyLevel;
    }

    public void setDiscriminationType(String discriminationType) {
        this.discriminationType = discriminationType;
    }

    public String getDiscriminationType() {
        return discriminationType;
    }

    public void setIsRecovered(Integer isRecovered) {
        this.isRecovered = isRecovered;
    }

    public Integer getIsRecovered() {
        return isRecovered;
    }

    public void setMachineOperatingYears(String machineOperatingYears) {
        this.machineOperatingYears = machineOperatingYears;
    }

    public String getMachineOperatingYears() {
        return machineOperatingYears;
    }

    public void setCertificateLevel(String certificateLevel) {
        this.certificateLevel = certificateLevel;
    }

    public String getCertificateLevel() {
        return certificateLevel;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getGender() {
        return gender;
    }

    public void setMissCheckReasonCategory(String missCheckReasonCategory) {
        this.missCheckReasonCategory = missCheckReasonCategory;
    }

    public String getMissCheckReasonCategory() {
        return missCheckReasonCategory;
    }

    public void setMonthlyAssessment(String monthlyAssessment) {
        this.monthlyAssessment = monthlyAssessment;
    }

    public String getMonthlyAssessment() {
        return monthlyAssessment;
    }

    public void setSelfTestHasMissCheck(Integer selfTestHasMissCheck) {
        this.selfTestHasMissCheck = selfTestHasMissCheck;
    }

    public Integer getSelfTestHasMissCheck() {
        return selfTestHasMissCheck;
    }

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

    public String getDelFlag() {
        return delFlag;
    }

    public Date getStartDate() {
        return startDate;
    }

    public void setStartDate(Date startDate) {
        this.startDate = startDate;
    }

    public Date getEndDate() {
        return endDate;
    }

    public void setEndDate(Date endDate) {
        this.endDate = endDate;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("brigadeId", getBrigadeId())
                .append("brigadeName", getBrigadeName())
                .append("terminalId", getTerminalId())
                .append("terminalName", getTerminalName())
                .append("areaId", getAreaId())
                .append("areaName", getAreaName())
                .append("channelId", getChannelId())
                .append("channelName", getChannelName())
                .append("reviewedUserId", getReviewedUserId())
                .append("reviewedUserName", getReviewedUserName())
                .append("reviewUserId", getReviewUserId())
                .append("reviewUserName", getReviewUserName())
                .append("supervisorId", getSupervisorId())
                .append("supervisorName", getSupervisorName())
                .append("actingSupervisorId", getActingSupervisorId())
                .append("actingSupervisorName", getActingSupervisorName())
                .append("teamLeaderId", getTeamLeaderId())
                .append("teamLeaderName", getTeamLeaderName())
                .append("reviewDate", getReviewDate())
                .append("missCheckTime", getMissCheckTime())
                .append("missCheckTimePeriod", getMissCheckTimePeriod())
                .append("missCheckItem", getMissCheckItem())
                .append("itemLocation", getItemLocation())
                .append("difficultyLevel", getDifficultyLevel())
                .append("discriminationType", getDiscriminationType())
                .append("isRecovered", getIsRecovered())
                .append("machineOperatingYears", getMachineOperatingYears())
                .append("certificateLevel", getCertificateLevel())
                .append("gender", getGender())
                .append("missCheckReasonCategory", getMissCheckReasonCategory())
                .append("monthlyAssessment", getMonthlyAssessment())
                .append("selfTestHasMissCheck", getSelfTestHasMissCheck())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
