package com.ruoyi.security.domain;

import java.util.Date;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 数据一致性检查记录对象 dc_data_consistency_check
 * 
 * @author ruoyi
 * @date 2025-12-22
 */
public class DataConsistencyCheck extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 检查ID */
    private Long checkId;

    /** 检查类型 */
    @Excel(name = "检查类型")
    private String checkType;

    /** 源实体ID */
    @Excel(name = "源实体ID")
    private Long sourceEntityId;

    /** 目标实体ID */
    @Excel(name = "目标实体ID")
    private Long targetEntityId;

    /** 检查结果 */
    @Excel(name = "检查结果")
    private String checkResult;

    /** 不一致详情(加密) */
    @Excel(name = "不一致详情")
    private String inconsistencyDetails;

    /** 检查状态 */
    @Excel(name = "检查状态")
    private String checkStatus;

    /** 检查时间 */
    @Excel(name = "检查时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date checkTime;

    /** 检查人 */
    @Excel(name = "检查人")
    private String checkedBy;

    /** 解决时间 */
    @Excel(name = "解决时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date resolvedTime;

    /** 解决人 */
    @Excel(name = "解决人")
    private String resolvedBy;

    // 检查类型常量
    public static final String CHECK_TYPE_CONTRACT_AMOUNT = "CONTRACT_AMOUNT";
    public static final String CHECK_TYPE_INVOICE_AMOUNT = "INVOICE_AMOUNT";
    public static final String CHECK_TYPE_PARTY_INFO = "PARTY_INFO";
    public static final String CHECK_TYPE_SERVICE_PERIOD = "SERVICE_PERIOD";

    // 检查结果常量
    public static final String CHECK_RESULT_PASS = "PASS";
    public static final String CHECK_RESULT_FAIL = "FAIL";

    // 检查状态常量
    public static final String CHECK_STATUS_PENDING = "PENDING";
    public static final String CHECK_STATUS_COMPLETED = "COMPLETED";
    public static final String CHECK_STATUS_RESOLVED = "RESOLVED";

    public void setCheckId(Long checkId) 
    {
        this.checkId = checkId;
    }

    public Long getCheckId() 
    {
        return checkId;
    }

    public void setCheckType(String checkType) 
    {
        this.checkType = checkType;
    }

    public String getCheckType() 
    {
        return checkType;
    }

    public void setSourceEntityId(Long sourceEntityId) 
    {
        this.sourceEntityId = sourceEntityId;
    }

    public Long getSourceEntityId() 
    {
        return sourceEntityId;
    }

    public void setTargetEntityId(Long targetEntityId) 
    {
        this.targetEntityId = targetEntityId;
    }

    public Long getTargetEntityId() 
    {
        return targetEntityId;
    }

    public void setCheckResult(String checkResult) 
    {
        this.checkResult = checkResult;
    }

    public String getCheckResult() 
    {
        return checkResult;
    }

    public void setInconsistencyDetails(String inconsistencyDetails) 
    {
        this.inconsistencyDetails = inconsistencyDetails;
    }

    public String getInconsistencyDetails() 
    {
        return inconsistencyDetails;
    }

    public void setCheckStatus(String checkStatus) 
    {
        this.checkStatus = checkStatus;
    }

    public String getCheckStatus() 
    {
        return checkStatus;
    }

    public void setCheckTime(Date checkTime) 
    {
        this.checkTime = checkTime;
    }

    public Date getCheckTime() 
    {
        return checkTime;
    }

    public void setCheckedBy(String checkedBy) 
    {
        this.checkedBy = checkedBy;
    }

    public String getCheckedBy() 
    {
        return checkedBy;
    }

    public void setResolvedTime(Date resolvedTime) 
    {
        this.resolvedTime = resolvedTime;
    }

    public Date getResolvedTime() 
    {
        return resolvedTime;
    }

    public void setResolvedBy(String resolvedBy) 
    {
        this.resolvedBy = resolvedBy;
    }

    public String getResolvedBy() 
    {
        return resolvedBy;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("checkId", getCheckId())
            .append("checkType", getCheckType())
            .append("sourceEntityId", getSourceEntityId())
            .append("targetEntityId", getTargetEntityId())
            .append("checkResult", getCheckResult())
            .append("inconsistencyDetails", getInconsistencyDetails())
            .append("checkStatus", getCheckStatus())
            .append("checkTime", getCheckTime())
            .append("checkedBy", getCheckedBy())
            .append("resolvedTime", getResolvedTime())
            .append("resolvedBy", getResolvedBy())
            .append("createTime", getCreateTime())
            .toString();
    }
}