package com.zhyc.module.base.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import com.zhyc.common.annotation.Excel;
import com.zhyc.common.core.domain.BaseEntity;

/**
 * 羊只基本信息对象 bas_sheep
 * 
 * @author ruoyi
 * @date 2025-07-15
 */

@Data
@AllArgsConstructor
@NoArgsConstructor
public class BasSheep extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** $column.columnComment */
    private Long id;

    /** 管理耳号 */
    @Excel(name = "管理耳号")
    private String manageTags;

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

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

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

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

    //仅用于改品种页面的回显
    private String varietyName;

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

    /** 羊只类别 */
    @Excel(name = "羊只类别")
    private Long typeId;

    /** 性别 */
    @Excel(name = "性别")
    private Long gender;

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

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

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

    /** 胎次 */
    @Excel(name = "胎次")
    private Long parity;

    /** 羊只状态 */
    @Excel(name = "羊只状态")
    private Long statusId;

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

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

    /** 繁育状态id */
    @Excel(name = "繁育状态id")
    private Long breedStatusId;

    /** 父号id */
    @Excel(name = "父号id")
    private Long fatherId;

    /** 母号id */
    @Excel(name = "母号id")
    private Long motherId;

    /** 受体id */
    @Excel(name = "受体id")
    private Long receptorId;

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

    /** 配种类型 */
    @Excel(name = "配种类型")
    private Long matingTypeId;

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

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

    /** 产羔时怀孕天数 */
    @Excel(name = "产羔时怀孕天数")
    private Long lambingDay;

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

    /** 是否性控 */
    @Excel(name = "是否性控")
    private Long controlled;

    /** 配种次数 */
    @Excel(name = "配种次数")
    private Long matingCounts;

    /** $column.columnComment */
    @Excel(name = "${comment}", readConverterExp = "$column.readConverterExp()")
    private Long matingTotal;

    /** 累计流产次数 */
    @Excel(name = "累计流产次数")
    private Long miscarriageCounts;

    /** 体况评分 */
    @Excel(name = "体况评分")
    private Long body;

    /** 乳房评分 */
    @Excel(name = "乳房评分")
    private Long breast;

    /** 入群来源 */
    @Excel(name = "入群来源")
    private String source;

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

    /** 来源牧场id */
    @Excel(name = "来源牧场id")
    private Long sourceRanchId;

    /** 备注 */
    @Excel(name = "备注")
    private String comment;

    /** 是否删除 */
    @Excel(name = "是否删除")
    private Long isDelete;


}
