package com.ruoyi.inventory.domain;

import java.util.ArrayList;
import java.util.List;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 药品出库记录对象 healthcare_inventory_drugout
 * 
 * @author 蒋松
 * @date 2024-10-07
 */
@Data
public class HealthcareInventoryDrugout extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 序号 */
    private Long id;

    /** 出库单号 */
    @Excel(name = "出库单号")
    private String outCode;

    /** 出库状态 */
    @Excel(name = "出库状态", readConverterExp = "0=已完成,1=未完成")
    private Integer outStatus;

    /** 出库类型 */
    @Excel(name = "出库类型" , readConverterExp = "0=仓库调拨,1=依申请出库,2=过期报废,3=数量修正,4=药品报损")
    private Long outType;

    /** 药品品种 */
    @Excel(name = "药品品种")
    private int variety;

    /** 出库数量 */
    @Excel(name = "出库数量")
    private Long outQuantity;

    /** 出库箱数量 */
    @Excel(name = "出库箱数量")
    private Long outBoxQuantity;

    /** 出库包数量 */
    @Excel(name = "出库包数量")
    private Long outPackQuantity;

    /** 所在单位 */
    private String affiliation;

    /** 出库地点id */
    private Long outPoint;

    /** 出库地点名称 */
    @Excel(name = "出库地点")
    private String outPointName;

    /** 出库操作人 */
    @Excel(name = "出库操作人")
    private String outPerson;

    /** 出库时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "出库时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date outTime;


    /** 入库地点 */
    private Long inboundLocation;

    /** 签收人 */
    private String signee;

    /** 证明材料 */
    private String proofMaterial;

    /** 用途详述 */
    private String purposeDetails;

    /** 单位 */
    private String unit;

    /** 过期时间 */
    private Date expirationDate;

    /** 当前时间 */
    private Date currentDatetime;

    /** 销毁人 */
    private String destroyer;

    /** 销毁地点 */
    private String destructionLocation;

    /** 销毁过程 */
    private String destructionProcess;

    /** 报废原因 */
    private String scrapReason;

    /** 处理方式 */
    private String disposalMethod;

    /** 报损原因 */
    private String damageReason;

    /** 出库详情，用于记录药品出库的详细信息 */
    private List<HealthcareInventoryDrugoutDetails> healthcareInventoryDrugoutDetailsList;

}
