package com.sundot.airport.item.domain;

import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
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;

/**
 * 匹配失败物品对象 failed_match_item
 *
 * @author airport
 * @date 2025-11-21
 */
@TableName("failed_match_item")
public class FailedMatchItem extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /** 主键 */
    @TableId(type = IdType.AUTO)
    private Integer id;

    /** 租户号 */
    private String tenantId;

    /** 乐观锁 */
    private Integer revision;

    /** 物品名称 */
    @Excel(name = "物品名称")
    private String name;

    /** 编码 */
    @Excel(name = "编码")
    private String code;

    /** 分类编码 */
    @Excel(name = "分类编码")
    private String categoryCode;

    /** 分类名称 */
    @Excel(name = "分类名称")
    private String categoryName;

    /** 危险等级 */
    @Excel(name = "危险等级", readConverterExp = "LOW=低,MEDIUM=中,HIGH=高")
    private String dangerLevel;

    /** 危险等级名称 */
    @Excel(name = "危险等级名称")
    private String dangerLevelDesc;

    /** 用户ID */
    @Excel(name = "用户ID")
    private Long userId;

    /** 用户姓名 */
    @Excel(name = "用户姓名")
    private String userName;

    /** 岗位ID */
    private Long positionId;

    /** 岗位名称 */
    @Excel(name = "岗位名称")
    private String positionName;

    /** 完整岗位路径 */
    private String fullPositionPath;

    /** 班组ID */
    private Long teamId;

    /** 班组名称 */
    @Excel(name = "班组名称")
    private String teamName;

    /** 岗位字典编码 */
    private Long postDictCode;

    /** 岗位标签 */
    @Excel(name = "岗位标签")
    private String postLabel;

    /** 航站楼ID */
    private Long terminalId;

    /** 航站楼名称 */
    @Excel(name = "航站楼")
    private String terminalName;

    /** 区域ID */
    private Long regionalId;

    /** 区域名称 */
    @Excel(name = "区域")
    private String regionalName;

    /** 通道ID */
    private Long channelId;

    /** 通道名称 */
    @Excel(name = "通道")
    private String channelName;

    /** 音频文件路径 */
    private String audioFilePath;

    /** 音频文件大小 */
    private Long audioFileSize;

    /** 音频格式 */
    private String audioFormat;

    /** 是否匹配 */
    private Boolean isMatched;

    /** 匹配文本 */
    private String matchedText;

    /** 原始文本 */
    @Excel(name = "原始文本")
    private String originalText;

    /** 纠正后的文本 */
    private String correctedText;

    /** 纠正是否已保存 */
    private Boolean correctedSaved;

    /** app端已编辑 */
    @Excel(name = "app端已编辑", readConverterExp = "0=未编辑,1=已编辑")
    private Boolean appEdited;

    /** 是否故意隐匿 */
    @Excel(name = "是否故意隐匿", readConverterExp = "0=否,1=是")
    private Integer isActiveConcealment;

    /** 纠正记录ID */
    private Long correctedRecordId;

    /** 纠正保存时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date correctedSaveTime;

    /** 提取的位置 */
    private String extractedLocation;

    /** 提取的数量 */
    private String extractedQuantity;

    /** 处理时间（毫秒） */
    private Long processingTimeMs;

    /** 相似度分数 */
    private Double similarityScore;

    /** 来源类型 */
    @Excel(name = "来源类型")
    private String sourceType;

    /** 关联的位置关键词ID */
    private Long locationKeywordId;

    /** 关联的违禁品关键词ID */
    private Long prohibitedItemKeywordId;

    /** 关联的违禁品类别ID */
    private Long prohibitedItemCategoryId;

    /** 查获位置ID */
    @Excel(name = "查获位置ID")
    private Integer checkPointId;

    /** 查获位置名称 */
    @Excel(name = "查获位置名称")
    private String checkPointName;

    public Integer getId() {
        return id;
    }

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

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }

    public Integer getRevision() {
        return revision;
    }

    public void setRevision(Integer revision) {
        this.revision = revision;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getCategoryCode() {
        return categoryCode;
    }

    public void setCategoryCode(String categoryCode) {
        this.categoryCode = categoryCode;
    }

    public String getCategoryName() {
        return categoryName;
    }

    public void setCategoryName(String categoryName) {
        this.categoryName = categoryName;
    }

    public String getDangerLevel() {
        return dangerLevel;
    }

    public void setDangerLevel(String dangerLevel) {
        this.dangerLevel = dangerLevel;
    }

    public String getDangerLevelDesc() {
        return dangerLevelDesc;
    }

    public void setDangerLevelDesc(String dangerLevelDesc) {
        this.dangerLevelDesc = dangerLevelDesc;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public Long getPositionId() {
        return positionId;
    }

    public void setPositionId(Long positionId) {
        this.positionId = positionId;
    }

    public String getPositionName() {
        return positionName;
    }

    public void setPositionName(String positionName) {
        this.positionName = positionName;
    }

    public String getFullPositionPath() {
        return fullPositionPath;
    }

    public void setFullPositionPath(String fullPositionPath) {
        this.fullPositionPath = fullPositionPath;
    }

    public Long getTeamId() {
        return teamId;
    }

    public void setTeamId(Long teamId) {
        this.teamId = teamId;
    }

    public String getTeamName() {
        return teamName;
    }

    public void setTeamName(String teamName) {
        this.teamName = teamName;
    }

    public Long getPostDictCode() {
        return postDictCode;
    }

    public void setPostDictCode(Long postDictCode) {
        this.postDictCode = postDictCode;
    }

    public String getPostLabel() {
        return postLabel;
    }

    public void setPostLabel(String postLabel) {
        this.postLabel = postLabel;
    }

    public Long getTerminalId() {
        return terminalId;
    }

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

    public String getTerminalName() {
        return terminalName;
    }

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

    public Long getRegionalId() {
        return regionalId;
    }

    public void setRegionalId(Long regionalId) {
        this.regionalId = regionalId;
    }

    public String getRegionalName() {
        return regionalName;
    }

    public void setRegionalName(String regionalName) {
        this.regionalName = regionalName;
    }

    public Long getChannelId() {
        return channelId;
    }

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

    public String getChannelName() {
        return channelName;
    }

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

    public String getAudioFilePath() {
        return audioFilePath;
    }

    public void setAudioFilePath(String audioFilePath) {
        this.audioFilePath = audioFilePath;
    }

    public Long getAudioFileSize() {
        return audioFileSize;
    }

    public void setAudioFileSize(Long audioFileSize) {
        this.audioFileSize = audioFileSize;
    }

    public String getAudioFormat() {
        return audioFormat;
    }

    public void setAudioFormat(String audioFormat) {
        this.audioFormat = audioFormat;
    }

    public Boolean getIsMatched() {
        return isMatched;
    }

    public void setIsMatched(Boolean isMatched) {
        this.isMatched = isMatched;
    }

    public String getMatchedText() {
        return matchedText;
    }

    public void setMatchedText(String matchedText) {
        this.matchedText = matchedText;
    }

    public String getOriginalText() {
        return originalText;
    }

    public void setOriginalText(String originalText) {
        this.originalText = originalText;
    }

    public String getCorrectedText() {
        return correctedText;
    }

    public void setCorrectedText(String correctedText) {
        this.correctedText = correctedText;
    }

    public Boolean getCorrectedSaved() {
        return correctedSaved;
    }

    public void setCorrectedSaved(Boolean correctedSaved) {
        this.correctedSaved = correctedSaved;
    }

    public Boolean getAppEdited() {
        return appEdited;
    }

    public void setAppEdited(Boolean appEdited) {
        this.appEdited = appEdited;
    }

    public Integer getIsActiveConcealment() {
        return isActiveConcealment;
    }

    public void setIsActiveConcealment(Integer isActiveConcealment) {
        this.isActiveConcealment = isActiveConcealment;
    }

    public Long getCorrectedRecordId() {
        return correctedRecordId;
    }

    public void setCorrectedRecordId(Long correctedRecordId) {
        this.correctedRecordId = correctedRecordId;
    }

    public Date getCorrectedSaveTime() {
        return correctedSaveTime;
    }

    public void setCorrectedSaveTime(Date correctedSaveTime) {
        this.correctedSaveTime = correctedSaveTime;
    }

    public String getExtractedLocation() {
        return extractedLocation;
    }

    public void setExtractedLocation(String extractedLocation) {
        this.extractedLocation = extractedLocation;
    }

    public String getExtractedQuantity() {
        return extractedQuantity;
    }

    public void setExtractedQuantity(String extractedQuantity) {
        this.extractedQuantity = extractedQuantity;
    }

    public Long getProcessingTimeMs() {
        return processingTimeMs;
    }

    public void setProcessingTimeMs(Long processingTimeMs) {
        this.processingTimeMs = processingTimeMs;
    }

    public Double getSimilarityScore() {
        return similarityScore;
    }

    public void setSimilarityScore(Double similarityScore) {
        this.similarityScore = similarityScore;
    }

    public String getSourceType() {
        return sourceType;
    }

    public void setSourceType(String sourceType) {
        this.sourceType = sourceType;
    }

    public Long getLocationKeywordId() {
        return locationKeywordId;
    }

    public void setLocationKeywordId(Long locationKeywordId) {
        this.locationKeywordId = locationKeywordId;
    }

    public Long getProhibitedItemKeywordId() {
        return prohibitedItemKeywordId;
    }

    public void setProhibitedItemKeywordId(Long prohibitedItemKeywordId) {
        this.prohibitedItemKeywordId = prohibitedItemKeywordId;
    }

    public Long getProhibitedItemCategoryId() {
        return prohibitedItemCategoryId;
    }

    public void setProhibitedItemCategoryId(Long prohibitedItemCategoryId) {
        this.prohibitedItemCategoryId = prohibitedItemCategoryId;
    }

    public Integer getCheckPointId() {
        return checkPointId;
    }

    public void setCheckPointId(Integer checkPointId) {
        this.checkPointId = checkPointId;
    }

    public String getCheckPointName() {
        return checkPointName;
    }

    public void setCheckPointName(String checkPointName) {
        this.checkPointName = checkPointName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("tenantId", getTenantId())
                .append("revision", getRevision())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("name", getName())
                .append("code", getCode())
                .append("categoryCode", getCategoryCode())
                .append("categoryName", getCategoryName())
                .append("dangerLevel", getDangerLevel())
                .append("dangerLevelDesc", getDangerLevelDesc())
                .append("userId", getUserId())
                .append("userName", getUserName())
                .append("positionId", getPositionId())
                .append("positionName", getPositionName())
                .append("fullPositionPath", getFullPositionPath())
                .append("teamId", getTeamId())
                .append("teamName", getTeamName())
                .append("postDictCode", getPostDictCode())
                .append("postLabel", getPostLabel())
                .append("terminalId", getTerminalId())
                .append("terminalName", getTerminalName())
                .append("regionalId", getRegionalId())
                .append("regionalName", getRegionalName())
                .append("channelId", getChannelId())
                .append("channelName", getChannelName())
                .append("remark", getRemark())
                .toString();
    }
}
