package com.zhyc.module.frozen.domain;

import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
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
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class DdFs extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;
    private Long[] ids;
    /**
     * 冻精号/公羊耳号
     */
    @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;
}
