package com.zbf.system.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.zbf.common.annotation.Excel;
import com.zbf.common.core.domain.BaseEntity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

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

/**
 * 库存对象 t_mi_stock
 *
 * @author tony
 * @date 2024-06-14
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
@TableName(resultMap = "com.zbf.system.mapper.TMiXnStockMapper.TMiXnStockResult")
public class TMiXnStock extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 库存编号
     */
    @TableId(value = "id", type = IdType.AUTO)
    @Excel(name = "库存编号")
    @TableField(value = "id")
    private String id;

    @Excel(name = "物料编号")
    private String goodsId;

    @Excel(name = "物料名称")
    private String goodsName;


    @Excel(name = "规格")
    private String specification;
    @Excel(name = "物料描述")
    private String recoil;

    @Excel(name = "数量")
    private BigDecimal shelvesNum;

    @Excel(name = "单位")
    private String unit;

    @Excel(name = "容器编号")
    private String ctl;

    @Excel(name = "库位编号")
    private String locationId;

    @Excel(name = "仓库名称")
    private String storageShortName;

    @Excel(name = "仓库编号")
    private String storageId;

    @Excel(name = "采购含税单价")
    private String price;

    @Excel(name = "采购含税金额")
    private BigDecimal totalMoney;


    @Excel(name = "库级")
    private String levelType;
    @Excel(name = "操作人")
    private String createBy;
    /* @Excel(name = "是否冻结")*/
    private String isFreeze;

    @Excel(name = "状态", readConverterExp = "0=正常,1=锁定")
    private String status;

    private String recordPerson;


    /**
     * 仓库编号
     */

    /** 仓库名称 */

    /**
     * 库区编号
     */
    private String storageAreaId;

    /**
     * 库位编号
     */

    /**
     * 已占用数量
     */
    @Excel(name = "占用数量")
    private BigDecimal occupyNum;

    /**
     * 物料编号
     */


    /**
     * 数量
     */


    /**
     * 版本号
     */

    private String version;

    @Excel(name = "原仓库")
    private String original;

    /**
     * 入库类型
     */
    /*@Excel(name = "入库类型")*/
    private String storageMode;

    /**
     * 中标供应商
     */
    /*@Excel(name = "中标供应商")*/
    private String providerId;

    /**
     * 生产日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    /*@Excel(name = "生产日期", width = 30, dateFormat = "yyyy-MM-dd")*/
    private Date productionDate;

    /**
     * 入库时间
     */
    @Excel(name = "入库时间")
    private String wareDate;

    /**
     * 单据编号
     */
    /*@Excel(name = "单据编号")*/
    private String doctNumber;

    /**
     * 商品体积
     */
/*
    @Excel(name = "商品体积")
*/
    private BigDecimal goodsVolume;


    /**
     * 通知单号
     */
    /*@Excel(name = "通知单号")*/
    private String noticeId;

    /**
     * 图号
     */

    private String oriBill;

    /**
     * 占用容器
     */


    /**
     * 条形码
     */
    /* @Excel(name = "条形码")*/
    private String barcode;

    /**
     * 宽
     */
    /* @Excel(name = "宽")*/
    private String wgh;

    /**
     * 高
     */

    private String high;

    /**
     * 物料名称
     */

    /**
     * 状态（0：正常 1：锁定）
     */


    /**
     * 招标员
     */

    private String customerId;

    /**
     * 生产批号
     */

    private String batchNo;


    @Excel(name = "冻结人")
    private String frostMan;

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

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

    /**
     * 标准
     */
//    @Excel(name = "标准")
    private String standard;

    /**
     * 标注过期
     */
//    @Excel(name = "标注过期")
    private String flag;

    /**
     * 过期天数
     */
//    @Excel(name = "过期天数")
    private String mark;

    /**
     * 订单数量
     */
//    @Excel(name = "订单数量")
    private String orderNum;

    /**
     * 物料问题
     */
//    @Excel(name = "物料问题")
    private String problem;

    /**
     * 计划单价（含税）
     */


    /**
     * 出库数量
     */

    private BigDecimal packingNum;

    /**
     * 料箱类型
     */

    private String boxType;

    /**
     * 测量单位
     */

    private String scaleUnit;

    /**
     * 物料SKU
     */

    private String goodsSku;

    /**
     * 工厂ID
     */
    private String factoryId;

    /**
     * 销售订单
     */
    private String salesOrderNo;

    /**
     * 子需求编号
     */
    @Excel(name = "子需求编号")
    private String salesOrderNumber;

    /**
     * 申请部门
     */
    private String supplier;

    /**
     * 在途数量
     */
    private Long onOrder;

    /**
     * 操作人
     */

    /**
     * 入库任务ID
     */
    private String lotId;

    /**
     * 堆垛机编号
     */
    private String decid;

    /**
     * 单位
     */


    /**
     * 规格
     */


    /**
     * 库龄
     */
//    @Excel(name = "库龄")
    private Long goodsAge;

    /**
     * 需求数量
     */
    private BigDecimal arraMount;

    /**
     * 物料描述
     */


    /**
     * 需求组织
     */
    private String operatorId;

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

    /**
     * 申请单号
     */
    private String purchaseId;

    /**
     * 申请人
     */
    private String applicant;

    /**
     * 主管部门
     */
    private String respDept;

    /**
     * 计划日期
     */
    private String planDate;

    /**
     * 计划时间
     */
    private String planTime;

    /**
     * 需求周期
     */
    private BigDecimal needCycle;

    /**
     * 需求类型
     */
    private String needType;

    /**
     * 物料分类
     */
//    @Excel(name = "物料分类")
    private String goodsTypeId;

    /**
     * 品牌
     */
    @Excel(name = "品牌")
    private String brand;

    /**
     * 计划金额
     */

    /**
     * 需求时间
     */
//    @Excel(name = "需求时间")
    private String expiryDate;

    /**
     * 建议供应商名称
     */
    @Excel(name = "供应商名称")
    private String providerName;

    /**
     * 收货人
     */
    @Excel(name = "收货人")
    private String receiver;

    /**
     * 需求部门
     */
    @Excel(name = "需求部门")
    private String needDept;
    /** 需求人 */
    @Excel(name = "需求人")
    private String needPerson;
    /** 需求人联系方式 */
    @Excel(name = "需求人联系方式")
    private String needTel;
    /**
     * 采购组织
     */
    private String purchaseDept;

    /**
     * 收货组织
     */
    private String produclotId;

    /**
     * 收货人部门
     */
    private String receiverDept;

    /**
     * 送货区域
     */
    private String receivingArea;

    /**
     * 技术需求附件
     */
    private String packageId;

    /**
     * 用途
     */

    private String useType;

    /**
     * 中标供应商联系方式
     */
    private String telephone;

    /**
     * 总重量
     */
    private BigDecimal totalVolume;

    /**
     * 毛重
     */
    private BigDecimal totalRoughWeight;

    /**
     * 净重
     */
    private BigDecimal totalNetWeigh;

    /**
     * 默认存储库区
     */
    private String defaultStorageAreaId;

    /**
     * 质检状态
     */
    private String qualityInspecStatus;

    /**
     * 保质期单位
     */
    /*@Excel(name = "保质期单位")*/
    private String periodUnit;

    /**
     * 保质期
     */
    /* @Excel(name = "保质期")*/
    private BigDecimal period;

    /**
     * 上报时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
//    @Excel(name = "上报时间", width = 30, dateFormat = "yyyy-MM-dd")
    private String reportTime;

    /**
     * 特殊标志 空：一般库存、E 销售订单库存、K 寄售库存
     */
//    @Excel(name = "冻结原因")
    private String consignment;

    /**
     * 超期呆滞日期
     */
    @TableField(exist = false)
    /*@Excel(name = "超期呆滞日期")*/
    private String overdueDate;

    //1.零捡 2：全量 3移库
    private String ckType;

    // 盘点数量
//    @Excel(name = "盘点数量")
    private BigDecimal realNum;

    private Long deptId;
    @TableField(exist = false)
    private List<String> storageList;


    private String[] Date;


    private String startTime;

    private String endTime;
    /**
     * ABC分类
     */
//    @Excel(name = "ABC分类")
    private String abc;

    /** 1:一级库 2：二级库 */

//    @TableField(value = "sum(shelves_num)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
//    private BigDecimal shelvesNums;
//    //这个地方
//    @TableField(value = "count(*)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
//    private  Integer count;
}


















