package com.sundot.airport.blocked.domain;

import java.math.BigDecimal;
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;

/**
 * 每日行李过检查堵统计对象 blocked_luggage_statistics_daily
 *
 * @author wangxx
 * @date 2026-04-13
 */
public class BlockedLuggageStatisticsDaily extends BaseEntity {
    private static final long serialVersionUID = 1L;

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

    /** 统计日期 */
    @ApiModelProperty("统计日期")
    @Excel(name = "统计日期", width = 30, dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date statDate;

    /** 班次类型：白班/夜班 */
    @ApiModelProperty("班次类型")
    @Excel(name = "班次类型")
    private String shiftType;

    /** 当班大队ID */
    @ApiModelProperty("当班大队ID")
    private Long brigadeId;

    /** 当班大队名称：安检一大队/安检二大队/安检三大队 */
    @ApiModelProperty("当班大队名称")
    @Excel(name = "当班大队名称")
    private String brigadeName;

    /** T1旅检过检行李数 */
    @ApiModelProperty("T1旅检过检行李数")
    @Excel(name = "T1旅检过检行李数")
    private Integer t1TravelLuggageCount;

    /** T1行检过检行李数 */
    @ApiModelProperty("T1行检过检行李数")
    @Excel(name = "T1行检过检行李数")
    private Integer t1WalkLuggageCount;

    /** T2旅检过检行李数 */
    @ApiModelProperty("T2旅检过检行李数")
    @Excel(name = "T2旅检过检行李数")
    private Integer t2TravelLuggageCount;

    /** T2行检过检行李数 */
    @ApiModelProperty("T2行检过检行李数")
    @Excel(name = "T2行检过检行李数")
    private Integer t2WalkLuggageCount;

    /** T1旅检查堵件数 */
    @ApiModelProperty("T1旅检查堵件数")
    @Excel(name = "T1旅检查堵件数")
    private Integer t1TravelBlockedCount;

    /** T2旅检查堵件数 */
    @ApiModelProperty("T2旅检查堵件数")
    @Excel(name = "T2旅检查堵件数")
    private Integer t2TravelBlockedCount;

    /** T1行检查堵件数 */
    @ApiModelProperty("T1行检查堵件数")
    @Excel(name = "T1行检查堵件数")
    private Integer t1WalkBlockedCount;

    /** T2行检查堵件数 */
    @ApiModelProperty("T2行检查堵件数")
    @Excel(name = "T2行检查堵件数")
    private Integer t2WalkBlockedCount;

    /** T1-复查图像总数 */
    @ApiModelProperty("T1-复查图像总数")
    @Excel(name = "T1-复查图像总数")
    private Integer t1ReviewImageTotal;

    /** T1-AI标记总数 */
    @ApiModelProperty("T1-AI标记总数")
    @Excel(name = "T1-AI标记总数")
    private Integer t1AiMarkTotal;

    /** T1-AI误判总数 */
    @ApiModelProperty("T1-AI误判总数")
    @Excel(name = "T1-AI误判总数")
    private Integer t1AiErrorTotal;

    /** T1-AI漏判总数 */
    @ApiModelProperty("T1-AI漏判总数")
    @Excel(name = "T1-AI漏判总数")
    private Integer t1AiMissTotal;

    /** T2-复查图像总数 */
    @ApiModelProperty("T2-复查图像总数")
    @Excel(name = "T2-复查图像总数")
    private Integer t2ReviewImageTotal;

    /** T2-AI标记总数 */
    @ApiModelProperty("T2-AI标记总数")
    @Excel(name = "T2-AI标记总数")
    private Integer t2AiMarkTotal;

    /** T2-AI误判总数 */
    @ApiModelProperty("T2-AI误判总数")
    @Excel(name = "T2-AI误判总数")
    private Integer t2AiErrorTotal;

    /** T2-AI漏判总数 */
    @ApiModelProperty("T2-AI漏判总数")
    @Excel(name = "T2-AI漏判总数")
    private Integer t2AiMissTotal;

    /** 其他(VIP通道)数量 */
    @ApiModelProperty("其他(VIP通道)数量")
    @Excel(name = "其他(VIP通道)数量")
    private Integer otherVipCount;

    /** T1旅检万分率（T1旅检查堵件数/T1旅检过检行李数*10000） */
    @ApiModelProperty("T1旅检万分率")
    @Excel(name = "T1旅检万分率")
    private BigDecimal t1TravelBlockRate;

    /** T2旅检万分率（T2旅检查堵件数/T2旅检过检行李数*10000） */
    @ApiModelProperty("T2旅检万分率")
    @Excel(name = "T2旅检万分率")
    private BigDecimal t2TravelBlockRate;

    /** T1行检万分率（T1行检查堵件数/T1行检过检行李数*10000） */
    @ApiModelProperty("T1行检万分率")
    @Excel(name = "T1行检万分率")
    private BigDecimal t1WalkBlockRate;

    /** T2行检万分率（T2行检查堵件数/T2行检过检行李数*10000） */
    @ApiModelProperty("T2行检万分率")
    @Excel(name = "T2行检万分率")
    private BigDecimal t2WalkBlockRate;

    /** 旅检万分查堵率（(T1旅检查堵件数+T2旅检查堵件数)/(T1旅检过检行李数+T2旅检过检行李数)*10000） */
    @ApiModelProperty("旅检万分查堵率")
    @Excel(name = "旅检万分查堵率")
    private BigDecimal travelInspectionBlockRate;

    /** 行检万分查堵率（(T1行检查堵件数+T2行检查堵件数)/(T1行检过检行李数+T2行检过检行李数)*10000） */
    @ApiModelProperty("行检万分查堵率")
    @Excel(name = "行检万分查堵率")
    private BigDecimal walkInspectionBlockRate;

    /** 查堵合计件数万分率（查堵合计件数/过检行李合计*10000） */
    @ApiModelProperty("查堵合计万分率")
    @Excel(name = "查堵合计万分率")
    private BigDecimal totalBlockRate;

    /** 当日查堵万分率（当日查堵件数/当日过检行李数*10000） */
    @ApiModelProperty("当日查堵万分率")
    @Excel(name = "当日查堵万分率")
    private BigDecimal dailyBlockRate;

    /** 过检行李合计（T1旅检+T1行检+T2旅检+T2行检） */
    @ApiModelProperty("过检行李合计")
    @Excel(name = "过检行李合计")
    private Integer totalLuggageCount;

    /** 查堵合计件数（T1旅检+T2旅检+T1行检+T2行检） */
    @ApiModelProperty("查堵合计件数")
    @Excel(name = "查堵合计件数")
    private Integer totalBlockedCount;

    /** 当日查堵件数 */
    @ApiModelProperty("当日查堵件数")
    @Excel(name = "当日查堵件数")
    private Integer dailyBlockedCount;

    /** AI复查图像总数（T1复查图像总数+T2复查图像总数） */
    @ApiModelProperty("AI复查图像总数")
    @Excel(name = "AI复查图像总数")
    private Integer aiReviewImageTotal;

    /** AI标记图像总数（T1-AI标记总数+T2-AI标记总数） */
    @ApiModelProperty("AI标记图像总数")
    @Excel(name = "AI标记图像总数")
    private Integer aiMarkTotal;

    /** AI误判图像总数（T1-AI误判总数+T2-AI误判总数） */
    @ApiModelProperty("AI误判图像总数")
    @Excel(name = "AI误判图像总数")
    private Integer aiErrorImageTotal;

    /** AI漏判图像总数（T1-AI漏判总数+T2-AI漏判总数） */
    @ApiModelProperty("AI漏判图像总数")
    @Excel(name = "AI漏判图像总数")
    private Integer aiMissImageTotal;

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

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

    public Long getId() {
        return id;
    }

    public void setStatDate(Date statDate) {
        this.statDate = statDate;
    }

    public Date getStatDate() {
        return statDate;
    }

    public void setShiftType(String shiftType) {
        this.shiftType = shiftType;
    }

    public String getShiftType() {
        return shiftType;
    }

    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 setT1TravelLuggageCount(Integer t1TravelLuggageCount) {
        this.t1TravelLuggageCount = t1TravelLuggageCount;
    }

    public Integer getT1TravelLuggageCount() {
        return t1TravelLuggageCount;
    }

    public void setT1WalkLuggageCount(Integer t1WalkLuggageCount) {
        this.t1WalkLuggageCount = t1WalkLuggageCount;
    }

    public Integer getT1WalkLuggageCount() {
        return t1WalkLuggageCount;
    }

    public void setT2TravelLuggageCount(Integer t2TravelLuggageCount) {
        this.t2TravelLuggageCount = t2TravelLuggageCount;
    }

    public Integer getT2TravelLuggageCount() {
        return t2TravelLuggageCount;
    }

    public void setT2WalkLuggageCount(Integer t2WalkLuggageCount) {
        this.t2WalkLuggageCount = t2WalkLuggageCount;
    }

    public Integer getT2WalkLuggageCount() {
        return t2WalkLuggageCount;
    }

    public void setT1TravelBlockedCount(Integer t1TravelBlockedCount) {
        this.t1TravelBlockedCount = t1TravelBlockedCount;
    }

    public Integer getT1TravelBlockedCount() {
        return t1TravelBlockedCount;
    }

    public void setT2TravelBlockedCount(Integer t2TravelBlockedCount) {
        this.t2TravelBlockedCount = t2TravelBlockedCount;
    }

    public Integer getT2TravelBlockedCount() {
        return t2TravelBlockedCount;
    }

    public void setT1WalkBlockedCount(Integer t1WalkBlockedCount) {
        this.t1WalkBlockedCount = t1WalkBlockedCount;
    }

    public Integer getT1WalkBlockedCount() {
        return t1WalkBlockedCount;
    }

    public void setT2WalkBlockedCount(Integer t2WalkBlockedCount) {
        this.t2WalkBlockedCount = t2WalkBlockedCount;
    }

    public Integer getT2WalkBlockedCount() {
        return t2WalkBlockedCount;
    }

    public void setT1ReviewImageTotal(Integer t1ReviewImageTotal) {
        this.t1ReviewImageTotal = t1ReviewImageTotal;
    }

    public Integer getT1ReviewImageTotal() {
        return t1ReviewImageTotal;
    }

    public void setT1AiMarkTotal(Integer t1AiMarkTotal) {
        this.t1AiMarkTotal = t1AiMarkTotal;
    }

    public Integer getT1AiMarkTotal() {
        return t1AiMarkTotal;
    }

    public void setT1AiErrorTotal(Integer t1AiErrorTotal) {
        this.t1AiErrorTotal = t1AiErrorTotal;
    }

    public Integer getT1AiErrorTotal() {
        return t1AiErrorTotal;
    }

    public void setT1AiMissTotal(Integer t1AiMissTotal) {
        this.t1AiMissTotal = t1AiMissTotal;
    }

    public Integer getT1AiMissTotal() {
        return t1AiMissTotal;
    }

    public void setT2ReviewImageTotal(Integer t2ReviewImageTotal) {
        this.t2ReviewImageTotal = t2ReviewImageTotal;
    }

    public Integer getT2ReviewImageTotal() {
        return t2ReviewImageTotal;
    }

    public void setT2AiMarkTotal(Integer t2AiMarkTotal) {
        this.t2AiMarkTotal = t2AiMarkTotal;
    }

    public Integer getT2AiMarkTotal() {
        return t2AiMarkTotal;
    }

    public void setT2AiErrorTotal(Integer t2AiErrorTotal) {
        this.t2AiErrorTotal = t2AiErrorTotal;
    }

    public Integer getT2AiErrorTotal() {
        return t2AiErrorTotal;
    }

    public void setT2AiMissTotal(Integer t2AiMissTotal) {
        this.t2AiMissTotal = t2AiMissTotal;
    }

    public Integer getT2AiMissTotal() {
        return t2AiMissTotal;
    }

    public void setOtherVipCount(Integer otherVipCount) {
        this.otherVipCount = otherVipCount;
    }

    public Integer getOtherVipCount() {
        return otherVipCount;
    }

    public void setT1TravelBlockRate(BigDecimal t1TravelBlockRate) {
        this.t1TravelBlockRate = t1TravelBlockRate;
    }

    public BigDecimal getT1TravelBlockRate() {
        return t1TravelBlockRate;
    }

    public void setT2TravelBlockRate(BigDecimal t2TravelBlockRate) {
        this.t2TravelBlockRate = t2TravelBlockRate;
    }

    public BigDecimal getT2TravelBlockRate() {
        return t2TravelBlockRate;
    }

    public void setT1WalkBlockRate(BigDecimal t1WalkBlockRate) {
        this.t1WalkBlockRate = t1WalkBlockRate;
    }

    public BigDecimal getT1WalkBlockRate() {
        return t1WalkBlockRate;
    }

    public void setT2WalkBlockRate(BigDecimal t2WalkBlockRate) {
        this.t2WalkBlockRate = t2WalkBlockRate;
    }

    public BigDecimal getT2WalkBlockRate() {
        return t2WalkBlockRate;
    }

    public void setTravelInspectionBlockRate(BigDecimal travelInspectionBlockRate) {
        this.travelInspectionBlockRate = travelInspectionBlockRate;
    }

    public BigDecimal getTravelInspectionBlockRate() {
        return travelInspectionBlockRate;
    }

    public void setWalkInspectionBlockRate(BigDecimal walkInspectionBlockRate) {
        this.walkInspectionBlockRate = walkInspectionBlockRate;
    }

    public BigDecimal getWalkInspectionBlockRate() {
        return walkInspectionBlockRate;
    }

    public void setTotalBlockRate(BigDecimal totalBlockRate) {
        this.totalBlockRate = totalBlockRate;
    }

    public BigDecimal getTotalBlockRate() {
        return totalBlockRate;
    }

    public void setDailyBlockRate(BigDecimal dailyBlockRate) {
        this.dailyBlockRate = dailyBlockRate;
    }

    public BigDecimal getDailyBlockRate() {
        return dailyBlockRate;
    }

    public void setTotalLuggageCount(Integer totalLuggageCount) {
        this.totalLuggageCount = totalLuggageCount;
    }

    public Integer getTotalLuggageCount() {
        return totalLuggageCount;
    }

    public void setTotalBlockedCount(Integer totalBlockedCount) {
        this.totalBlockedCount = totalBlockedCount;
    }

    public Integer getTotalBlockedCount() {
        return totalBlockedCount;
    }

    public void setDailyBlockedCount(Integer dailyBlockedCount) {
        this.dailyBlockedCount = dailyBlockedCount;
    }

    public Integer getDailyBlockedCount() {
        return dailyBlockedCount;
    }

    public void setAiReviewImageTotal(Integer aiReviewImageTotal) {
        this.aiReviewImageTotal = aiReviewImageTotal;
    }

    public Integer getAiReviewImageTotal() {
        return aiReviewImageTotal;
    }

    public void setAiMarkTotal(Integer aiMarkTotal) {
        this.aiMarkTotal = aiMarkTotal;
    }

    public Integer getAiMarkTotal() {
        return aiMarkTotal;
    }

    public void setAiErrorImageTotal(Integer aiErrorImageTotal) {
        this.aiErrorImageTotal = aiErrorImageTotal;
    }

    public Integer getAiErrorImageTotal() {
        return aiErrorImageTotal;
    }

    public void setAiMissImageTotal(Integer aiMissImageTotal) {
        this.aiMissImageTotal = aiMissImageTotal;
    }

    public Integer getAiMissImageTotal() {
        return aiMissImageTotal;
    }

    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("id", getId())
                .append("statDate", getStatDate())
                .append("shiftType", getShiftType())
                .append("brigadeId", getBrigadeId())
                .append("brigadeName", getBrigadeName())
                .append("t1TravelLuggageCount", getT1TravelLuggageCount())
                .append("t1WalkLuggageCount", getT1WalkLuggageCount())
                .append("t2TravelLuggageCount", getT2TravelLuggageCount())
                .append("t2WalkLuggageCount", getT2WalkLuggageCount())
                .append("t1TravelBlockedCount", getT1TravelBlockedCount())
                .append("t2TravelBlockedCount", getT2TravelBlockedCount())
                .append("t1WalkBlockedCount", getT1WalkBlockedCount())
                .append("t2WalkBlockedCount", getT2WalkBlockedCount())
                .append("t1ReviewImageTotal", getT1ReviewImageTotal())
                .append("t1AiMarkTotal", getT1AiMarkTotal())
                .append("t1AiErrorTotal", getT1AiErrorTotal())
                .append("t1AiMissTotal", getT1AiMissTotal())
                .append("t2ReviewImageTotal", getT2ReviewImageTotal())
                .append("t2AiMarkTotal", getT2AiMarkTotal())
                .append("t2AiErrorTotal", getT2AiErrorTotal())
                .append("t2AiMissTotal", getT2AiMissTotal())
                .append("otherVipCount", getOtherVipCount())
                .append("t1TravelBlockRate", getT1TravelBlockRate())
                .append("t2TravelBlockRate", getT2TravelBlockRate())
                .append("t1WalkBlockRate", getT1WalkBlockRate())
                .append("t2WalkBlockRate", getT2WalkBlockRate())
                .append("travelInspectionBlockRate", getTravelInspectionBlockRate())
                .append("walkInspectionBlockRate", getWalkInspectionBlockRate())
                .append("totalBlockRate", getTotalBlockRate())
                .append("dailyBlockRate", getDailyBlockRate())
                .append("totalLuggageCount", getTotalLuggageCount())
                .append("totalBlockedCount", getTotalBlockedCount())
                .append("dailyBlockedCount", getDailyBlockedCount())
                .append("aiReviewImageTotal", getAiReviewImageTotal())
                .append("aiMarkTotal", getAiMarkTotal())
                .append("aiErrorImageTotal", getAiErrorImageTotal())
                .append("aiMissImageTotal", getAiMissImageTotal())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("remark", getRemark())
                .toString();
    }
}
