package com.fjhx.entity.apply;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.Version;
import com.fjhx.base.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * <p>
 * 申购单
 * </p>
 *
 * @author ${author}
 * @since 2022-11-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class ApplyPurchase extends BaseEntity {

    /**
     * 申购单号
     */
    private String code;

    /**
     * 采购ID
     */
    private Long purchaseId;

    /**
     * 采购单号
     */
    private String purchaseCode;

    /**
     * 物品id
     */
    private Long goodsId;

    /**
     * 申购数量
     */
    private BigDecimal quantity;

    /**
     * 单价
     */
    private BigDecimal unitPrice;

    /**
     * 要求到货时间
     */
    private Date planArrivalTime;

    /**
     * 收货仓库ID
     */
    private Long receiptWarehouseId;

    /**
     * 状态：10、申购审批中；20、申购审批已驳回；30、申购审批已通过；40、采购审批中；50、采购审批已驳回；60、采购审批已通过；70、已完成
     */
    private Integer status;

    /**
     * 申购原因
     */
    private String cause;

    /**
     * 入库数量
     */
    private BigDecimal receiptQuantity;

    /**
     * 入库时间
     */
    private BigDecimal receiptTime;

    /**
     * 乐观锁
     */
    @TableField(fill = FieldFill.INSERT)
    @Version
    private Integer version;

    /**
     * 逻辑删除 0未删除 1已删除
     */
    @TableField(fill = FieldFill.INSERT)
    @TableLogic
    private Integer delFlag;

    /**
     * 申购人名称
     */
    @TableField(exist = false)
    private String createName;

    /**
     * 物品类型
     */
    @TableField(exist = false)
    private Integer goodsType;

    /**
     * 物品编码
     */
    @TableField(exist = false)
    private String goodsCode;

    /**
     * 物品名称
     */
    @TableField(exist = false)
    private String goodsName;

    /**
     * 物品单位
     */
    @TableField(exist = false)
    private String goodsUnit;

    /**
     * 收货仓库名称
     */
    @TableField(exist = false)
    private String warehouseName;

    /**
     * 库存数量
     */
    @TableField(exist = false)
    private BigDecimal stockQuantity;

    /**
     * 出库数量
     */
    @TableField(exist = false)
    private BigDecimal outStockQuantity;
}
