package com.zhyc.module.frozen.domain;

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;

/**
 * 冻胚库存对象 dd_fe
 * 
 * @author ruoyi
 * @date 2025-11-29
 */
public class DdFe extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 胚胎编号 YS+日期+序号 */
    @Excel(name = "胚胎编号")
    private String code;

    /** 冻胚日期（事件录入日） */
    @Excel(name = "冻胚日期", dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date freezeDate;

    /** 供体公羊耳号 */
    @Excel(name = "供体公羊耳号")
    private String drId;

    /** 供体公羊品种 */
    @Excel(name = "供体公羊品种")
    private String drBreed;

    /** 供体母羊耳号 */
    @Excel(name = "供体母羊耳号")
    private String deId;

    /** 供体母羊品种 */
    @Excel(name = "供体母羊品种")
    private String deBreed;

    /** 胚胎品种（自动生成） */
    @Excel(name = "胚胎品种")
    private String embBreed;

    /** 胚胎阶段等级('A', 'B', 'C', 'D', '囊胚', '桑椹胚') */
    @Excel(name = "胚胎阶段等级")
    private String grade;

    /** 胚胎数量 */
    @Excel(name = "胚胎数量")
    private Long qty;

    /** 是否性控 1是 0否 */
    @Excel(name = "是否性控",readConverterExp = "1=是,0=否")
    private Integer sexCtl;

    /** 状态(0正常1销售 2自用3废弃) */
    @Excel(name = "状态")
    private String status;

    /** 技术员 */
    @Excel(name = "技术员")
    private String tech;

    /** 液氮罐ID */
    @Excel(name = "液氮罐ID")
    private Long tankId;

    /** 提桶ID */
    @Excel(name = "提桶ID")
    private Long bucketId;

    /** 冷冻架ID */
    @Excel(name = "冷冻架ID")
    private Long rackId;

    /** 出库日期（出库后回写） */
    @Excel(name = "出库日期", dateFormat = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date outDate;

    /** 废弃原因（废弃时填写） */
    @Excel(name = "废弃原因")
    private String discardTxt;

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

    public Long getId() 
    {
        return id;
    }

    public void setCode(String code) 
    {
        this.code = code;
    }

    public String getCode() 
    {
        return code;
    }

    public void setFreezeDate(Date freezeDate) 
    {
        this.freezeDate = freezeDate;
    }

    public Date getFreezeDate() 
    {
        return freezeDate;
    }

    public void setDrId(String drId) 
    {
        this.drId = drId;
    }

    public String getDrId() 
    {
        return drId;
    }

    public void setDrBreed(String drBreed) 
    {
        this.drBreed = drBreed;
    }

    public String getDrBreed() 
    {
        return drBreed;
    }

    public void setDeId(String deId) 
    {
        this.deId = deId;
    }

    public String getDeId() 
    {
        return deId;
    }

    public void setDeBreed(String deBreed) 
    {
        this.deBreed = deBreed;
    }

    public String getDeBreed() 
    {
        return deBreed;
    }

    public void setEmbBreed(String embBreed) 
    {
        this.embBreed = embBreed;
    }

    public String getEmbBreed() 
    {
        return embBreed;
    }

    public void setGrade(String grade) 
    {
        this.grade = grade;
    }

    public String getGrade() 
    {
        return grade;
    }

    public void setQty(Long qty) 
    {
        this.qty = qty;
    }

    public Long getQty() 
    {
        return qty;
    }

    public void setSexCtl(Integer sexCtl) 
    {
        this.sexCtl = sexCtl;
    }

    public Integer getSexCtl() 
    {
        return sexCtl;
    }

    public void setStatus(String status) 
    {
        this.status = status;
    }

    public String getStatus() 
    {
        return status;
    }

    public void setTech(String tech) 
    {
        this.tech = tech;
    }

    public String getTech() 
    {
        return tech;
    }

    public void setTankId(Long tankId) 
    {
        this.tankId = tankId;
    }

    public Long getTankId() 
    {
        return tankId;
    }

    public void setBucketId(Long bucketId) 
    {
        this.bucketId = bucketId;
    }

    public Long getBucketId() 
    {
        return bucketId;
    }

    public void setRackId(Long rackId) 
    {
        this.rackId = rackId;
    }

    public Long getRackId() 
    {
        return rackId;
    }

    public void setOutDate(Date outDate) 
    {
        this.outDate = outDate;
    }

    public Date getOutDate() 
    {
        return outDate;
    }

    public void setDiscardTxt(String discardTxt) 
    {
        this.discardTxt = discardTxt;
    }

    public String getDiscardTxt() 
    {
        return discardTxt;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("code", getCode())
            .append("freezeDate", getFreezeDate())
            .append("drId", getDrId())
            .append("drBreed", getDrBreed())
            .append("deId", getDeId())
            .append("deBreed", getDeBreed())
            .append("embBreed", getEmbBreed())
            .append("grade", getGrade())
            .append("qty", getQty())
            .append("sexCtl", getSexCtl())
            .append("status", getStatus())
            .append("tech", getTech())
            .append("tankId", getTankId())
            .append("bucketId", getBucketId())
            .append("rackId", getRackId())
            .append("outDate", getOutDate())
            .append("discardTxt", getDiscardTxt())
            .append("remark", getRemark())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .toString();
    }
}
