package com.jwipc.sys.model.po;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 物料主数据
 * </p>
 *
 * @author shenyang.ou
 * @since 2024-02-03
 */
@Data
public class ProductInfoPO implements Serializable {

    private Long id;

    /**
     * 物料编码
     */
    private String materialCode;

    /**
     * 物料名称
     */
    private String materialName;

    /**
     * SAP物料编码
     */
    private String sapMaterialCode;

    /**
     * 物料组编码
     */
    private String materialGroupCode;

    /**
     * 基本计量单位
     */
    private String basisUnit;

    /**
     * 订单单位
     */
    private String orderUnit;

    /**
     * 价格单位
     */
    private String priceUnit;

    /**
     * 工厂编码
     */
    private String factoryCode;

    /**
     * 物料采购组编码
     */
    private String materialPurchaseGroup;

    /**
     * MRP 控制者(物料计划人)
     */
    private String mrpControlUser;

    /**
     * SAP数据主键
     */
    private String dataPrimary;

    /**
     * SAP客户端
     */
    private String sapClient;

    /**
     * 语言代码
     */
    private String languageCode;

    /**
     * 物料在SAP创建时间
     */
    private String sapCreateDate;

    /**
     * 物料在SAP更新时间
     */
    private String sapUpdateDate;

    /**
     * 数据状态  1:可用 2:不可用
     */
    private Integer state;

    /**
     * 型号
     */
    private String materialModel;

    /**
     * 规格
     */
    private String materialSpec;

    /**
     * 物料种类
     */
    private String materialExp;

    /**
     * 物料类型
     */
    private String materialTypeId;

    /**
     * 产地
     */
    private String placeOrigin;

    /**
     * 品牌
     */
    private String brand;

    /**
     * 制造商
     */
    private String manufacturer;

    /**
     * 生成周期
     */
    private Double leadTime;

    /**
     * 图号
     */
    private String pictureNo;

    /**
     * 基本单位
     */
    private String baseUnitId;

    /**
     * 销售单位
     */
    private String saleUnitId;

    /**
     * 包装单位
     */
    private Integer packingUnitId;

    /**
     * 转换比例
     */
    private Double unitChange;

    /**
     * 批号规则
     */
    private String batchRule;

    /**
     * 最小采购批量MOQ
     */
    private BigDecimal limitedQty;

    /**
     * 最小包装量MOQ
     */
    private BigDecimal moq;

    /**
     * 成本
     */
    private BigDecimal cost;

    /**
     * 销售组织
     */
    private String sapSaleOrg;

    /**
     * 分销渠道
     */
    private String sapDistributeChannel;

    /**
     * 产品组
     */
    private String sapMaterialGroupCode;

    /**
     * 客户编码（某些物料只卖给指定客户）（陈列）
     */
    private String customerCodes;

    /**
     * 旧物料号
     */
    private String oldMaterialCode;

    /**
     * 备注
     */
    private String remark;

    /**
     * 物料描述
     */
    private String materialDesc;

    /**
     * 物料类型编码
     */
    private String materialTypeCode;

    /**
     * 物料类型描述
     */
    private String materialTypeName;

    /**
     * 物料组名称
     */
    private String materialGroupName;

    /**
     * 是否拥有次级物料 1：否 2：是
     */
    private Integer isBom;

    /**
     * 外部采购组
     */
    private String outsidePurchaseGroup;

    /**
     * 采购订单数量
     */
    private Integer purchaseOrderNum;

    /**
     * 采购价值代码
     */
    private String purchaseCode;

    /**
     * 国家
     */
    private String countryName;

    /**
     * 存储条件
     */
    private String storageConditions;

    /**
     * 存储条件名称
     */
    private String storageConditionsName;

    /**
     * 日期表示
     */
    private String dateId;

    /**
     * 批准文号/注册证号
     */
    private String standCode;

    /**
     * CAS/货号
     */
    private String casitemNo;

    /**
     * 容差
     */
    private String quantityRange;

    /**
     * 风险级别
     */
    private String riskLevel;

    /**
     * 质量控制物料
     */
    private String isGmp;

    /**
     * 安全库存
     */
    private String safetyStock;

    /**
     * 批准文号/注册证号有效期
     */
    private LocalDateTime standcodeTime;

    /**
     * 预估单价
     */
    private BigDecimal estimatedPrice;

    /**
     * 是否批次管理，0-否，1-是
     */
    private Integer isBatch;

    /**
     * 采购提前期
     */
    private Long purchaseTime;

    /**
     * 到货处理时间
     */
    private Long arrivalTime;

    /**
     * 冻结状态，1是，0否
     */
    private Integer freeze;

    /**
     * ERP库存组织编码
     */
    private String storeOrgCode;

    /**
     * ERP库存组织名称
     */
    private String storeOrgName;

    /**
     * 创建人
     */
    private Long createUser;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 最后一次更新时间
     */
    private LocalDateTime lastUpdateTime;

    /**
     * 更新人
     */
    private Long updateUser;

    /**
     * 删除标识 0:未删除 1:已删除
     */
    private Integer deletedFlag;

    /**
     * 样品需求数量
     */
    private BigDecimal reqNum;
}
