package com.ruoyi.app.domain;

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

import javax.validation.constraints.*;

/**
 * 无害化处理对象 harmless_treatment
 * 
 * @author coede
 * @date 2025-03-19
 */
public class HarmlessTreatment extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** ID */
    private Long id;

    /** 入场批次 */
    @Excel(name = "入场批次")
    private Long entranceBatchId;

    /** 病死数 */
    @Excel(name = "病死数")
    private Integer illnessDeadAmount;

    /** 病害数量 */
    @Excel(name = "病害数量")
    private Integer illnessDiseaseAmount;

    /** 急宰数量 */
    @Excel(name = "急宰数量")
    private Integer snapKillAmount;

    /** 不合格产品数量 */
    @Excel(name = "不合格产品数量")
    private BigDecimal unqualifiedWeight;

    /** 无害化生猪详情 */
    @Excel(name = "无害化生猪详情")
    private String illnessPigsDetail;

    /** 处理原因 */
    @Excel(name = "处理原因")
    private String dealReason;

    /** 处理方式 */
    @Excel(name = "处理方式")
    private String dealWay;

    /** 删除标志 */
    private String delFlag;

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

    public Long getId() 
    {
        return id;
    }

    public void setEntranceBatchId(Long entranceBatchId) 
    {
        this.entranceBatchId = entranceBatchId;
    }

    @NotNull(message = "不存在入场信息")
    public Long getEntranceBatchId() 
    {
        return entranceBatchId;
    }

    public void setIllnessDeadAmount(Integer illnessDeadAmount) 
    {
        this.illnessDeadAmount = illnessDeadAmount;
    }

    @Min(value = 0, message = "病死头数输入超出设定范围限制（0~999）")
    @Max(value = 999, message = "病死头数输入超出设定范围限制（0~999）")
    public Integer getIllnessDeadAmount() 
    {
        return illnessDeadAmount;
    }

    public void setIllnessDiseaseAmount(Integer illnessDiseaseAmount) 
    {
        this.illnessDiseaseAmount = illnessDiseaseAmount;
    }

    @Min(value = 0, message = "病害头数输入超出设定范围限制（0~999）")
    @Max(value = 999, message = "病害头数输入超出设定范围限制（0~999）")
    public Integer getIllnessDiseaseAmount() 
    {
        return illnessDiseaseAmount;
    }

    public void setSnapKillAmount(Integer snapKillAmount) 
    {
        this.snapKillAmount = snapKillAmount;
    }

    @Min(value = 0, message = "急宰头数输入超出设定范围限制（0~999）")
    @Max(value = 999, message = "急宰头数输入超出设定范围限制（0~999）")
    public Integer getSnapKillAmount() 
    {
        return snapKillAmount;
    }

    public void setUnqualifiedWeight(BigDecimal unqualifiedWeight) 
    {
        this.unqualifiedWeight = unqualifiedWeight;
    }

    @DecimalMin(value = "0", inclusive = true, message = "不合格产品重量输入超出设定范围限制（0~99999.99）")
    @DecimalMax(value = "99999.99", inclusive = true, message = "不合格产品重量输入超出设定范围限制（0.01~99999.99）")
    @Digits(integer = 5, fraction = 2, message = "不合格产品重量输入的整数部分不能超过5位，小数部分不能超过2位")
    public BigDecimal getUnqualifiedWeight() 
    {
        return unqualifiedWeight;
    }

    public void setIllnessPigsDetail(String illnessPigsDetail) 
    {
        this.illnessPigsDetail = illnessPigsDetail;
    }

    @Size(min = 0, max = 3000, message = "无害化处理生猪详情输入超出最大长度限制（3000位）")
    public String getIllnessPigsDetail() 
    {
        return illnessPigsDetail;
    }

    public void setDealReason(String dealReason) 
    {
        this.dealReason = dealReason;
    }

    public String getDealReason() 
    {
        return dealReason;
    }

    public void setDealWay(String dealWay) 
    {
        this.dealWay = dealWay;
    }

    public String getDealWay() 
    {
        return dealWay;
    }

    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("entranceBatchId", getEntranceBatchId())
            .append("illnessDeadAmount", getIllnessDeadAmount())
            .append("illnessDiseaseAmount", getIllnessDiseaseAmount())
            .append("snapKillAmount", getSnapKillAmount())
            .append("unqualifiedWeight", getUnqualifiedWeight())
            .append("illnessPigsDetail", getIllnessPigsDetail())
            .append("dealReason", getDealReason())
            .append("dealWay", getDealWay())
            .append("createTime", getCreateTime())
            .append("createBy", getCreateBy())
            .append("updateTime", getUpdateTime())
            .append("updateBy", getUpdateBy())
            .append("delFlag", getDelFlag())

            .toString();
    }
}
