package com.zhyc.module.dairyProducts.domain;

import com.zhyc.common.annotation.Excel;
import java.util.Date;
import java.util.List; // 导入List

public class NpSheepMilkAnalysis {
    // 唯一键（可用于前端 row-key）
    @Excel(name = "羊只ID")
    private String sheepId;

    // 耳号（从 sheep_file.bs_manage_tags）
    @Excel(name = "耳号")
    private String manageEarTag;

    // 修改处：新增多耳号字段
    /** 全部羊耳号列表（用于多耳号查询） */
    private List<String> allEarNumbers;

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

    // 最高校正胎次的挤奶开始时间 & 干奶时间
    @Excel(name = "挤奶开始时间", dateFormat = "yyyy-MM-dd")
    private Date milkingStartTime;

    @Excel(name = "干奶时间", dateFormat = "yyyy-MM-dd")
    private Date dryEndTime;

    // 挤奶天数（该胎次）
    @Excel(name = "挤奶天数")
    private Integer milkingDays;

    // 前端传入的筛选天数（screenDays）
    @Excel(name = "筛选天数")
    private Integer screenDays;

    // 分析天数（若你有不同命名，可忽略）
    private Integer analysisDays;

    // 校正后最大胎次（即校正奶量之和最大的胎次）
    @Excel(name = "校正后最大胎次")
    private Integer maxParity;

    // 最高校正胎次区间内的系统奶量与校正奶量（按筛选窗口）
    @Excel(name = "系统奶量合计")
    private Double sumSystemMilk;

    @Excel(name = "校正奶量合计")
    private Double sumCorrectedMilk;

    // 校正日平均奶量（按min(挤奶天数,筛选天数)）
    @Excel(name = "校正日平均奶量")
    private Double avgCorrectedDaily;

    // 各胎次总奶量（校正）
    @Excel(name = "胎次1总奶量")
    private Double sumParity1Milk;

    @Excel(name = "胎次2总奶量")
    private Double sumParity2Milk;

    @Excel(name = "胎次3总奶量")
    private Double sumParity3Milk;

    @Excel(name = "胎次4总奶量")
    private Double sumParity4Milk;

    // 各胎次日平均（按规则）
    @Excel(name = "胎次1日平均")
    private Double avgParity1Daily;

    @Excel(name = "胎次2日平均")
    private Double avgParity2Daily;

    @Excel(name = "胎次3日平均")
    private Double avgParity3Daily;

    @Excel(name = "胎次4日平均")
    private Double avgParity4Daily;

    // 泌乳天数（sheep_file.lactation_day）
    @Excel(name = "泌乳天数")
    private Integer lactationDays;

    // 过去7/14/30日平均（系统奶量）
    @Excel(name = "过去7日均奶量")
    private Double avgLast7Milk;

    @Excel(name = "校正过去7日均")
    private Double avgLast7Corrected;

    @Excel(name = "过去14日均奶量")
    private Double avgLast14Milk;

    @Excel(name = "过去30日均奶量")
    private Double avgLast30Milk;

    // 羊只基础信息（来自sheep_file）
    @Excel(name = "羊只类别")
    private String sheepCategory;

    @Excel(name = "生日", dateFormat = "yyyy-MM-dd")
    private Date birthday;

    @Excel(name = "当前胎次")
    private Integer parity;

    @Excel(name = "月龄")
    private Integer monthAge;

    @Excel(name = "当前体重")
    private Double currentWeight;

    @Excel(name = "繁育状态")
    private String breedStatus;

    @Excel(name = "父号")
    private String fatherManageTags;

    @Excel(name = "母号")
    private String motherManageTags;

    @Excel(name = "牧场")
    private String ranchName;

    @Excel(name = "家系")
    private String family;

    // 母亲相关字段（由已计算的母亲分析结果中取值）
    @Excel(name = "母亲挤奶天数")
    private Integer motherMilkingDays;

    @Excel(name = "母亲校正奶量合计")
    private Double motherSumCorrected;

    @Excel(name = "母亲校正后最大胎次")
    private Integer motherMaxParity;

    @Excel(name = "母亲校正日平均奶量")
    private Double motherAvgCorrectedDaily;

    @Excel(name = "最后更新时间", dateFormat = "yyyy-MM-dd")
    private Date lastUpdate;

    // getters and setters

    // 修改处：添加 allEarNumbers 的 getter/setter
    public List<String> getAllEarNumbers() {
        return allEarNumbers;
    }

    public void setAllEarNumbers(List<String> allEarNumbers) {
        this.allEarNumbers = allEarNumbers;
    }

    public String getSheepId() { return sheepId; }
    public void setSheepId(String sheepId) { this.sheepId = sheepId; }

    public String getManageEarTag() { return manageEarTag; }
    public void setManageEarTag(String manageEarTag) { this.manageEarTag = manageEarTag; }

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

    public Date getMilkingStartTime() { return milkingStartTime; }
    public void setMilkingStartTime(Date milkingStartTime) { this.milkingStartTime = milkingStartTime; }

    public Date getDryEndTime() { return dryEndTime; }
    public void setDryEndTime(Date dryEndTime) { this.dryEndTime = dryEndTime; }

    public Integer getMilkingDays() { return milkingDays; }
    public void setMilkingDays(Integer milkingDays) { this.milkingDays = milkingDays; }

    public Integer getScreenDays() { return screenDays; }
    public void setScreenDays(Integer screenDays) { this.screenDays = screenDays; }

    public Integer getAnalysisDays() { return analysisDays; }
    public void setAnalysisDays(Integer analysisDays) { this.analysisDays = analysisDays; }

    public Integer getMaxParity() { return maxParity; }
    public void setMaxParity(Integer maxParity) { this.maxParity = maxParity; }

    public Double getSumSystemMilk() { return sumSystemMilk; }
    public void setSumSystemMilk(Double sumSystemMilk) { this.sumSystemMilk = sumSystemMilk; }

    public Double getSumCorrectedMilk() { return sumCorrectedMilk; }
    public void setSumCorrectedMilk(Double sumCorrectedMilk) { this.sumCorrectedMilk = sumCorrectedMilk; }

    public Double getAvgCorrectedDaily() { return avgCorrectedDaily; }
    public void setAvgCorrectedDaily(Double avgCorrectedDaily) { this.avgCorrectedDaily = avgCorrectedDaily; }

    public Double getSumParity1Milk() { return sumParity1Milk; }
    public void setSumParity1Milk(Double sumParity1Milk) { this.sumParity1Milk = sumParity1Milk; }

    public Double getSumParity2Milk() { return sumParity2Milk; }
    public void setSumParity2Milk(Double sumParity2Milk) { this.sumParity2Milk = sumParity2Milk; }

    public Double getSumParity3Milk() { return sumParity3Milk; }
    public void setSumParity3Milk(Double sumParity3Milk) { this.sumParity3Milk = sumParity3Milk; }

    public Double getSumParity4Milk() { return sumParity4Milk; }
    public void setSumParity4Milk(Double sumParity4Milk) { this.sumParity4Milk = sumParity4Milk; }

    public Double getAvgParity1Daily() { return avgParity1Daily; }
    public void setAvgParity1Daily(Double avgParity1Daily) { this.avgParity1Daily = avgParity1Daily; }

    public Double getAvgParity2Daily() { return avgParity2Daily; }
    public void setAvgParity2Daily(Double avgParity2Daily) { this.avgParity2Daily = avgParity2Daily; }

    public Double getAvgParity3Daily() { return avgParity3Daily; }
    public void setAvgParity3Daily(Double avgParity3Daily) { this.avgParity3Daily = avgParity3Daily; }

    public Double getAvgParity4Daily() { return avgParity4Daily; }
    public void setAvgParity4Daily(Double avgParity4Daily) { this.avgParity4Daily = avgParity4Daily; }

    public Integer getLactationDays() { return lactationDays; }
    public void setLactationDays(Integer lactationDays) { this.lactationDays = lactationDays; }

    public Double getAvgLast7Milk() { return avgLast7Milk; }
    public void setAvgLast7Milk(Double avgLast7Milk) { this.avgLast7Milk = avgLast7Milk; }

    public Double getAvgLast7Corrected() { return avgLast7Corrected; }
    public void setAvgLast7Corrected(Double avgLast7Corrected) { this.avgLast7Corrected = avgLast7Corrected; }

    public Double getAvgLast14Milk() { return avgLast14Milk; }
    public void setAvgLast14Milk(Double avgLast14Milk) { this.avgLast14Milk = avgLast14Milk; }

    public Double getAvgLast30Milk() { return avgLast30Milk; }
    public void setAvgLast30Milk(Double avgLast30Milk) { this.avgLast30Milk = avgLast30Milk; }

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

    public Date getBirthday() { return birthday; }
    public void setBirthday(Date birthday) { this.birthday = birthday; }

    public Integer getParity() { return parity; }
    public void setParity(Integer parity) { this.parity = parity; }

    public Integer getMonthAge() { return monthAge; }
    public void setMonthAge(Integer monthAge) { this.monthAge = monthAge; }

    public Double getCurrentWeight() { return currentWeight; }
    public void setCurrentWeight(Double currentWeight) { this.currentWeight = currentWeight; }

    public String getBreedStatus() { return breedStatus; }
    public void setBreedStatus(String breedStatus) { this.breedStatus = breedStatus; }

    public String getFatherManageTags() { return fatherManageTags; }
    public void setFatherManageTags(String fatherManageTags) { this.fatherManageTags = fatherManageTags; }

    public String getMotherManageTags() { return motherManageTags; }
    public void setMotherManageTags(String motherManageTags) { this.motherManageTags = motherManageTags; }

    public String getRanchName() { return ranchName; }
    public void setRanchName(String ranchName) { this.ranchName = ranchName; }

    public String getFamily() { return family; }
    public void setFamily(String family) { this.family = family; }

    public Integer getMotherMilkingDays() { return motherMilkingDays; }
    public void setMotherMilkingDays(Integer motherMilkingDays) { this.motherMilkingDays = motherMilkingDays; }

    public Double getMotherSumCorrected() { return motherSumCorrected; }
    public void setMotherSumCorrected(Double motherSumCorrected) { this.motherSumCorrected = motherSumCorrected; }

    public Integer getMotherMaxParity() { return motherMaxParity; }
    public void setMotherMaxParity(Integer motherMaxParity) { this.motherMaxParity = motherMaxParity; }

    public Double getMotherAvgCorrectedDaily() { return motherAvgCorrectedDaily; }
    public void setMotherAvgCorrectedDaily(Double motherAvgCorrectedDaily) { this.motherAvgCorrectedDaily = motherAvgCorrectedDaily; }

    public Date getLastUpdate() { return lastUpdate; }
    public void setLastUpdate(Date lastUpdate) { this.lastUpdate = lastUpdate; }
}