package com.zhyc.module.base.domain;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.zhyc.common.annotation.Excel;
import com.zhyc.common.core.domain.BaseEntity;

/**
 * 种公羊档案对象 breed_ram_file
 *
 * @author zhyc
 * @date 2025-07-29
 */
public class BreedRamFile extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 种公羊id */
    private Long id;

    /** 普通耳号（对应数据库字段 manage_tags） */
    @Excel(name = "普通耳号")
    private String manageTags;

    /** 牧场id */
    @Excel(name = "牧场id")
    private Long ranchId;

    /** 牧场名称 */
    @Excel(name = "牧场名称")
    private String ranchName;

    /** 羊舍id */
    @Excel(name = "羊舍id")
    private Long sheepfoldId;

    /** 羊舍名称 */
    @Excel(name = "羊舍名称")
    private String sheepfoldName;

    /** 电子耳号 */
    @Excel(name = "电子耳号")
    private String electronicTags;

    /** 品种id */
    @Excel(name = "品种id")
    private Long varietyId;

    /** 品种 */
    @Excel(name = "品种")
    private String variety;

    /** 羊只类别 */
    @Excel(name = "羊只类别")
    private String sheepCategory;

    /** 当前状态 */
    @Excel(name = "当前状态")
    private String currentStatus;

    /** 生日 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "生日", width = 30, dateFormat = "yyyy-MM-dd")
    private Date birthday;

    /** 动态 */
    @Excel(name = "动态")
    private String dynamicInfo;

    /** 月龄 */
    @Excel(name = "月龄")
    private Long monthAge;

    /** 出生体重 */
    @Excel(name = "出生体重")
    private BigDecimal birthWeight;

    /** 断奶日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "断奶日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date weaningDate;

    /** 断奶日龄 */
    @Excel(name = "断奶日龄")
    private Long weaningDayAge;

    /** 断奶体重 */
    @Excel(name = "断奶体重")
    private BigDecimal weaningWeight;

    /** 断奶日增重 */
    @Excel(name = "断奶日增重")
    private BigDecimal weaningDailyGain;

    /** 断奶后日增重 */
    @Excel(name = "断奶后日增重")
    private BigDecimal postWeaningDailyGain;

    /** 当前体重 */
    @Excel(name = "当前体重")
    private BigDecimal currentWeight;

    /** 当前体重称重日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "当前体重称重日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date currentWeightDate;

    /** 活动量 */
    @Excel(name = "活动量")
    private String activityLevel;

    /** 性欲情况 */
    @Excel(name = "性欲情况")
    private String sexualStatus;

    /** 阴囊周长 */
    @Excel(name = "阴囊周长")
    private BigDecimal scrotumCircumference;

    /** 采精时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "采精时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date spermCollectionTime;

    /** 精液量 */
    @Excel(name = "精液量")
    private BigDecimal spermVolume;

    /** 精液活力 */
    @Excel(name = "精液活力")
    private String spermVitality;

    /** 精液密度 */
    @Excel(name = "精液密度")
    private String spermDensity;

    /** 精液品质 */
    @Excel(name = "精液品质")
    private String spermQuality;

    /** 配种状态 */
    @Excel(name = "配种状态")
    private Long breedingStatus;

    /** 上次计划时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "上次计划时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date lastPlanTime;

    /** 本次计划时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "本次计划时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date currentPlanTime;

    /** 蛋白率%EBV */
    @Excel(name = "蛋白率%EBV")
    private BigDecimal proteinRateEbv;

    /** 乳脂率%EBV */
    @Excel(name = "乳脂率%EBV")
    private BigDecimal milkFatRateEbv;

    /** 乳体细胞（SCS）EBV */
    @Excel(name = "乳体细胞", readConverterExp = "S=CS")
    private BigDecimal scsEbv;

    /** 生长性能EBV */
    @Excel(name = "生长性能EBV")
    private BigDecimal growthPerformanceEbv;

    /** 抗逆性EBV */
    @Excel(name = "抗逆性EBV")
    private BigDecimal resistanceEbv;

    /** 繁殖性能EBV */
    @Excel(name = "繁殖性能EBV")
    private BigDecimal reproductionPerformanceEbv;

    /** 体型性状EBV */
    @Excel(name = "体型性状EBV")
    private BigDecimal bodyTypeEbv;

    /** 综合育种值 */
    @Excel(name = "综合育种值")
    private BigDecimal comprehensiveBreedingValue;

    /** 父号 */
    @Excel(name = "父号")
    private String fatherNumber;

    /** 母号 */
    @Excel(name = "母号")
    private String motherNumber;

    /** 祖父 */
    @Excel(name = "祖父")
    private String grandfatherNumber;

    /** 祖母 */
    @Excel(name = "祖母")
    private String grandmotherNumber;

    /** 外祖父 */
    @Excel(name = "外祖父")
    private String maternalGrandfatherNumber;

    /** 外祖母 */
    @Excel(name = "外祖母")
    private String maternalGrandmotherNumber;

    /** 是否核心羊群（0否1是） */
    @Excel(name = "是否核心羊群", readConverterExp = "0=否,1=是")
    private Long isCoreFlock;

    /** 是否种用（0否1是） */
    @Excel(name = "是否种用", readConverterExp = "0=否,1=是")
    private Long isBreedingUse;

    /** 孕检 */
    @Excel(name = "孕检")
    private String pregnancyCheck;

    /** 总配母羊数 */
    @Excel(name = "总配母羊数")
    private Long totalMatedEwes;

    /** 本交孕检母羊数 */
    @Excel(name = "本交孕检母羊数")
    private Long naturalPregnancyCheckEwes;

    /** 本交受孕率% */
    @Excel(name = "本交受孕率%")
    private BigDecimal naturalConceptionRate;

    /** 人工孕检母羊数 */
    @Excel(name = "人工孕检母羊数")
    private Long artificialPregnancyCheckEwes;

    /** 人工受孕率% */
    @Excel(name = "人工受孕率%")
    private BigDecimal artificialConceptionRate;

    /** 公羊母亲奶量 */
    @Excel(name = "公羊母亲奶量")
    private BigDecimal ramMotherMilkVolume;

    /** 产奶量估计育种值（Kg） */
    @Excel(name = "产奶量估计育种值", readConverterExp = "K=g")
    private BigDecimal milkProductionEbv;

    /** 准确性 */
    @Excel(name = "准确性")
    private BigDecimal accuracy;

    /** 信息数 */
    @Excel(name = "信息数")
    private Long informationCount;

    /** 是否亲子鉴定（0否1是） */
    @Excel(name = "是否亲子鉴定", readConverterExp = "0=否,1=是")
    private Long isPaternityTested;

    /** 公羊后代数 */
    @Excel(name = "公羊后代数")
    private Long offspringCount;

    /** 多胎性 */
    @Excel(name = "多胎性")
    private BigDecimal prolificacy;

// 对应的Getter和Setter方法

    public Long getOffspringCount() {
        return offspringCount;
    }

    public void setOffspringCount(Long offspringCount) {
        this.offspringCount = offspringCount;
    }

    public BigDecimal getProlificacy() {
        return prolificacy;
    }

    public void setProlificacy(BigDecimal prolificacy) {
        this.prolificacy = prolificacy;
    }

    /** 是否删除（0否1是） */
    private Long isDelete;

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

    public Long getId()
    {
        return id;
    }
    public void setOrdinaryEarNumber(String ordinaryEarNumber) {
        this.manageTags = ordinaryEarNumber;
    }

    public String getOrdinaryEarNumber() {
        return this.manageTags;
    }

    public void setManageTags(String manageTags) {
        this.manageTags = manageTags;
    }

    public String getManageTags() {
        return manageTags;
    }

    public void setRanchId(Long ranchId)
    {
        this.ranchId = ranchId;
    }

    public Long getRanchId()
    {
        return ranchId;
    }
    public void setRanchName(String ranchName)
    {
        this.ranchName = ranchName;
    }

    public String getRanchName()
    {
        return ranchName;
    }
    public void setSheepfoldId(Long sheepfoldId)
    {
        this.sheepfoldId = sheepfoldId;
    }

    public Long getSheepfoldId()
    {
        return sheepfoldId;
    }
    public void setSheepfoldName(String sheepfoldName)
    {
        this.sheepfoldName = sheepfoldName;
    }

    public String getSheepfoldName()
    {
        return sheepfoldName;
    }
    public void setElectronicTags(String electronicTags)
    {
        this.electronicTags = electronicTags;
    }

    public String getElectronicTags()
    {
        return electronicTags;
    }
    public void setVarietyId(Long varietyId)
    {
        this.varietyId = varietyId;
    }

    public Long getVarietyId()
    {
        return varietyId;
    }
    public void setVariety(String variety)
    {
        this.variety = variety;
    }

    public String getVariety()
    {
        return variety;
    }
    public void setSheepCategory(String sheepCategory)
    {
        this.sheepCategory = sheepCategory;
    }

    public String getSheepCategory()
    {
        return sheepCategory;
    }
    public void setCurrentStatus(String currentStatus)
    {
        this.currentStatus = currentStatus;
    }

    public String getCurrentStatus()
    {
        return currentStatus;
    }
    public void setBirthday(Date birthday)
    {
        this.birthday = birthday;
    }

    public Date getBirthday()
    {
        return birthday;
    }
    public void setDynamicInfo(String dynamicInfo)
    {
        this.dynamicInfo = dynamicInfo;
    }

    public String getDynamicInfo()
    {
        return dynamicInfo;
    }
    public void setMonthAge(Long monthAge)
    {
        this.monthAge = monthAge;
    }

    public Long getMonthAge()
    {
        return monthAge;
    }
    public void setBirthWeight(BigDecimal birthWeight)
    {
        this.birthWeight = birthWeight;
    }

    public BigDecimal getBirthWeight()
    {
        return birthWeight;
    }
    public void setWeaningDate(Date weaningDate)
    {
        this.weaningDate = weaningDate;
    }

    public Date getWeaningDate()
    {
        return weaningDate;
    }
    public void setWeaningDayAge(Long weaningDayAge)
    {
        this.weaningDayAge = weaningDayAge;
    }

    public Long getWeaningDayAge()
    {
        return weaningDayAge;
    }
    public void setWeaningWeight(BigDecimal weaningWeight)
    {
        this.weaningWeight = weaningWeight;
    }

    public BigDecimal getWeaningWeight()
    {
        return weaningWeight;
    }
    public void setWeaningDailyGain(BigDecimal weaningDailyGain)
    {
        this.weaningDailyGain = weaningDailyGain;
    }

    public BigDecimal getWeaningDailyGain()
    {
        return weaningDailyGain;
    }
    public void setPostWeaningDailyGain(BigDecimal postWeaningDailyGain)
    {
        this.postWeaningDailyGain = postWeaningDailyGain;
    }

    public BigDecimal getPostWeaningDailyGain()
    {
        return postWeaningDailyGain;
    }
    public void setCurrentWeight(BigDecimal currentWeight)
    {
        this.currentWeight = currentWeight;
    }

    public BigDecimal getCurrentWeight()
    {
        return currentWeight;
    }
    public void setCurrentWeightDate(Date currentWeightDate)
    {
        this.currentWeightDate = currentWeightDate;
    }

    public Date getCurrentWeightDate()
    {
        return currentWeightDate;
    }
    public void setActivityLevel(String activityLevel)
    {
        this.activityLevel = activityLevel;
    }

    public String getActivityLevel()
    {
        return activityLevel;
    }
    public void setSexualStatus(String sexualStatus)
    {
        this.sexualStatus = sexualStatus;
    }

    public String getSexualStatus()
    {
        return sexualStatus;
    }
    public void setScrotumCircumference(BigDecimal scrotumCircumference)
    {
        this.scrotumCircumference = scrotumCircumference;
    }

    public BigDecimal getScrotumCircumference()
    {
        return scrotumCircumference;
    }
    public void setSpermCollectionTime(Date spermCollectionTime)
    {
        this.spermCollectionTime = spermCollectionTime;
    }

    public Date getSpermCollectionTime()
    {
        return spermCollectionTime;
    }
    public void setSpermVolume(BigDecimal spermVolume)
    {
        this.spermVolume = spermVolume;
    }

    public BigDecimal getSpermVolume()
    {
        return spermVolume;
    }
    public void setSpermVitality(String spermVitality)
    {
        this.spermVitality = spermVitality;
    }

    public String getSpermVitality()
    {
        return spermVitality;
    }
    public void setSpermDensity(String spermDensity)
    {
        this.spermDensity = spermDensity;
    }

    public String getSpermDensity()
    {
        return spermDensity;
    }
    public void setSpermQuality(String spermQuality)
    {
        this.spermQuality = spermQuality;
    }

    public String getSpermQuality()
    {
        return spermQuality;
    }
    public void setBreedingStatus(Long breedingStatus)
    {
        this.breedingStatus = breedingStatus;
    }

    public Long getBreedingStatus()
    {
        return breedingStatus;
    }
    public void setLastPlanTime(Date lastPlanTime)
    {
        this.lastPlanTime = lastPlanTime;
    }

    public Date getLastPlanTime()
    {
        return lastPlanTime;
    }
    public void setCurrentPlanTime(Date currentPlanTime)
    {
        this.currentPlanTime = currentPlanTime;
    }

    public Date getCurrentPlanTime()
    {
        return currentPlanTime;
    }
    public void setProteinRateEbv(BigDecimal proteinRateEbv)
    {
        this.proteinRateEbv = proteinRateEbv;
    }

    public BigDecimal getProteinRateEbv()
    {
        return proteinRateEbv;
    }
    public void setMilkFatRateEbv(BigDecimal milkFatRateEbv)
    {
        this.milkFatRateEbv = milkFatRateEbv;
    }

    public BigDecimal getMilkFatRateEbv()
    {
        return milkFatRateEbv;
    }
    public void setScsEbv(BigDecimal scsEbv)
    {
        this.scsEbv = scsEbv;
    }

    public BigDecimal getScsEbv()
    {
        return scsEbv;
    }
    public void setGrowthPerformanceEbv(BigDecimal growthPerformanceEbv)
    {
        this.growthPerformanceEbv = growthPerformanceEbv;
    }

    public BigDecimal getGrowthPerformanceEbv()
    {
        return growthPerformanceEbv;
    }
    public void setResistanceEbv(BigDecimal resistanceEbv)
    {
        this.resistanceEbv = resistanceEbv;
    }

    public BigDecimal getResistanceEbv()
    {
        return resistanceEbv;
    }
    public void setReproductionPerformanceEbv(BigDecimal reproductionPerformanceEbv)
    {
        this.reproductionPerformanceEbv = reproductionPerformanceEbv;
    }

    public BigDecimal getReproductionPerformanceEbv()
    {
        return reproductionPerformanceEbv;
    }
    public void setBodyTypeEbv(BigDecimal bodyTypeEbv)
    {
        this.bodyTypeEbv = bodyTypeEbv;
    }

    public BigDecimal getBodyTypeEbv()
    {
        return bodyTypeEbv;
    }
    public void setComprehensiveBreedingValue(BigDecimal comprehensiveBreedingValue)
    {
        this.comprehensiveBreedingValue = comprehensiveBreedingValue;
    }

    public BigDecimal getComprehensiveBreedingValue()
    {
        return comprehensiveBreedingValue;
    }
    public void setFatherNumber(String fatherNumber)
    {
        this.fatherNumber = fatherNumber;
    }

    public String getFatherNumber()
    {
        return fatherNumber;
    }
    public void setMotherNumber(String motherNumber)
    {
        this.motherNumber = motherNumber;
    }

    public String getMotherNumber()
    {
        return motherNumber;
    }
    public void setGrandfatherNumber(String grandfatherNumber)
    {
        this.grandfatherNumber = grandfatherNumber;
    }

    public String getGrandfatherNumber()
    {
        return grandfatherNumber;
    }
    public void setGrandmotherNumber(String grandmotherNumber)
    {
        this.grandmotherNumber = grandmotherNumber;
    }

    public String getGrandmotherNumber()
    {
        return grandmotherNumber;
    }
    public void setMaternalGrandfatherNumber(String maternalGrandfatherNumber)
    {
        this.maternalGrandfatherNumber = maternalGrandfatherNumber;
    }

    public String getMaternalGrandfatherNumber()
    {
        return maternalGrandfatherNumber;
    }
    public void setMaternalGrandmotherNumber(String maternalGrandmotherNumber)
    {
        this.maternalGrandmotherNumber = maternalGrandmotherNumber;
    }

    public String getMaternalGrandmotherNumber()
    {
        return maternalGrandmotherNumber;
    }
    public void setIsCoreFlock(Long isCoreFlock)
    {
        this.isCoreFlock = isCoreFlock;
    }

    public Long getIsCoreFlock()
    {
        return isCoreFlock;
    }
    public void setIsBreedingUse(Long isBreedingUse)
    {
        this.isBreedingUse = isBreedingUse;
    }

    public Long getIsBreedingUse()
    {
        return isBreedingUse;
    }
    public void setPregnancyCheck(String pregnancyCheck)
    {
        this.pregnancyCheck = pregnancyCheck;
    }

    public String getPregnancyCheck()
    {
        return pregnancyCheck;
    }
    public void setTotalMatedEwes(Long totalMatedEwes)
    {
        this.totalMatedEwes = totalMatedEwes;
    }

    public Long getTotalMatedEwes()
    {
        return totalMatedEwes;
    }
    public void setNaturalPregnancyCheckEwes(Long naturalPregnancyCheckEwes)
    {
        this.naturalPregnancyCheckEwes = naturalPregnancyCheckEwes;
    }

    public Long getNaturalPregnancyCheckEwes()
    {
        return naturalPregnancyCheckEwes;
    }
    public void setNaturalConceptionRate(BigDecimal naturalConceptionRate)
    {
        this.naturalConceptionRate = naturalConceptionRate;
    }

    public BigDecimal getNaturalConceptionRate()
    {
        return naturalConceptionRate;
    }
    public void setArtificialPregnancyCheckEwes(Long artificialPregnancyCheckEwes)
    {
        this.artificialPregnancyCheckEwes = artificialPregnancyCheckEwes;
    }

    public Long getArtificialPregnancyCheckEwes()
    {
        return artificialPregnancyCheckEwes;
    }
    public void setArtificialConceptionRate(BigDecimal artificialConceptionRate)
    {
        this.artificialConceptionRate = artificialConceptionRate;
    }

    public BigDecimal getArtificialConceptionRate()
    {
        return artificialConceptionRate;
    }
    public void setRamMotherMilkVolume(BigDecimal ramMotherMilkVolume)
    {
        this.ramMotherMilkVolume = ramMotherMilkVolume;
    }

    public BigDecimal getRamMotherMilkVolume()
    {
        return ramMotherMilkVolume;
    }
    public void setMilkProductionEbv(BigDecimal milkProductionEbv)
    {
        this.milkProductionEbv = milkProductionEbv;
    }

    public BigDecimal getMilkProductionEbv()
    {
        return milkProductionEbv;
    }
    public void setAccuracy(BigDecimal accuracy)
    {
        this.accuracy = accuracy;
    }

    public BigDecimal getAccuracy()
    {
        return accuracy;
    }
    public void setInformationCount(Long informationCount)
    {
        this.informationCount = informationCount;
    }

    public Long getInformationCount()
    {
        return informationCount;
    }
    public void setIsPaternityTested(Long isPaternityTested)
    {
        this.isPaternityTested = isPaternityTested;
    }

    public Long getIsPaternityTested()
    {
        return isPaternityTested;
    }
    public void setIsDelete(Long isDelete)
    {
        this.isDelete = isDelete;
    }

    public Long getIsDelete()
    {
        return isDelete;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("ordinaryEarNumber", getOrdinaryEarNumber())
                .append("ranchId", getRanchId())
                .append("ranchName", getRanchName())
                .append("sheepfoldId", getSheepfoldId())
                .append("sheepfoldName", getSheepfoldName())
                .append("electronicTags", getElectronicTags())
                .append("varietyId", getVarietyId())
                .append("variety", getVariety())
                .append("sheepCategory", getSheepCategory())
                .append("currentStatus", getCurrentStatus())
                .append("birthday", getBirthday())
                .append("dynamicInfo", getDynamicInfo())
                .append("monthAge", getMonthAge())
                .append("birthWeight", getBirthWeight())
                .append("weaningDate", getWeaningDate())
                .append("weaningDayAge", getWeaningDayAge())
                .append("weaningWeight", getWeaningWeight())
                .append("weaningDailyGain", getWeaningDailyGain())
                .append("postWeaningDailyGain", getPostWeaningDailyGain())
                .append("currentWeight", getCurrentWeight())
                .append("currentWeightDate", getCurrentWeightDate())
                .append("activityLevel", getActivityLevel())
                .append("sexualStatus", getSexualStatus())
                .append("scrotumCircumference", getScrotumCircumference())
                .append("spermCollectionTime", getSpermCollectionTime())
                .append("spermVolume", getSpermVolume())
                .append("spermVitality", getSpermVitality())
                .append("spermDensity", getSpermDensity())
                .append("spermQuality", getSpermQuality())
                .append("breedingStatus", getBreedingStatus())
                .append("lastPlanTime", getLastPlanTime())
                .append("currentPlanTime", getCurrentPlanTime())
                .append("remark", getRemark())
                .append("proteinRateEbv", getProteinRateEbv())
                .append("milkFatRateEbv", getMilkFatRateEbv())
                .append("scsEbv", getScsEbv())
                .append("growthPerformanceEbv", getGrowthPerformanceEbv())
                .append("resistanceEbv", getResistanceEbv())
                .append("reproductionPerformanceEbv", getReproductionPerformanceEbv())
                .append("bodyTypeEbv", getBodyTypeEbv())
                .append("comprehensiveBreedingValue", getComprehensiveBreedingValue())
                .append("fatherNumber", getFatherNumber())
                .append("motherNumber", getMotherNumber())
                .append("grandfatherNumber", getGrandfatherNumber())
                .append("grandmotherNumber", getGrandmotherNumber())
                .append("maternalGrandfatherNumber", getMaternalGrandfatherNumber())
                .append("maternalGrandmotherNumber", getMaternalGrandmotherNumber())
                .append("isCoreFlock", getIsCoreFlock())
                .append("isBreedingUse", getIsBreedingUse())
                .append("pregnancyCheck", getPregnancyCheck())
                .append("totalMatedEwes", getTotalMatedEwes())
                .append("naturalPregnancyCheckEwes", getNaturalPregnancyCheckEwes())
                .append("naturalConceptionRate", getNaturalConceptionRate())
                .append("artificialPregnancyCheckEwes", getArtificialPregnancyCheckEwes())
                .append("artificialConceptionRate", getArtificialConceptionRate())
                .append("ramMotherMilkVolume", getRamMotherMilkVolume())
                .append("milkProductionEbv", getMilkProductionEbv())
                .append("accuracy", getAccuracy())
                .append("informationCount", getInformationCount())
                .append("isPaternityTested", getIsPaternityTested())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("isDelete", getIsDelete())
                // 同时在toString()方法中添加这两个字段
                .append("offspringCount", getOffspringCount())
                .append("prolificacy", getProlificacy())
                .toString();
    }
}