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_fs
 *
 * @author ruoyi
 * @date 2025-11-29
 */
public class DdFs extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 冻精号/公羊耳号
     */
    @Excel(name = "冻精号")
    private String code;

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

    /**
     * 冻精品种（同公羊品种）
     */
    @Excel(name = "冻精品种")
    private String breed;

    /**
     * 生产批次（日期格式）
     */
    @Excel(name = "生产批次")
    private String batch;

    /**
     * 规格(0.25mL,0.5mL)
     */
    @Excel(name = "规格")
    private String spec;

    /**
     * 数量（支）
     */
    @Excel(name = "数量")
    private Long qty;

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

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

    /**
     * 技术员
     */
    @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 outDt;

    /**
     * 废弃原因
     */
    @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 setFreezeDt(Date freezeDt) {
        this.freezeDt = freezeDt;
    }

    public Date getFreezeDt() {
        return freezeDt;
    }

    public void setBreed(String breed) {
        this.breed = breed;
    }

    public String getBreed() {
        return breed;
    }

    public void setBatch(String batch) {
        this.batch = batch;
    }

    public String getBatch() {
        return batch;
    }

    public void setSpec(String spec) {
        this.spec = spec;
    }

    public String getSpec() {
        return spec;
    }

    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 setStat(String stat) {
        this.stat = stat;
    }

    public String getStat() {
        return stat;
    }

    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 setOutDt(Date outDt) {
        this.outDt = outDt;
    }

    public Date getOutDt() {
        return outDt;
    }

    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("freezeDt", getFreezeDt())
                .append("breed", getBreed())
                .append("batch", getBatch())
                .append("spec", getSpec())
                .append("qty", getQty())
                .append("sexCtl", getSexCtl())
                .append("stat", getStat())
                .append("tech", getTech())
                .append("tankId", getTankId())
                .append("bucketId", getBucketId())
                .append("rackId", getRackId())
                .append("outDt", getOutDt())
                .append("discardTxt", getDiscardTxt())
                .append("remark", getRemark())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .toString();
    }
}
