package cn.ezhizao.project.business.domain;

import cn.ezhizao.framework.aspectj.lang.annotation.Excel;
import cn.ezhizao.framework.web.domain.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

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

/**
 * 产品管理对象 biz_product
 *
 * @author ezhizao
 * @date 2023-11-13
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName(value = "biz_product")
public class BizProduct extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 料号 */
    @Excel(name = "料号")
    @ApiModelProperty(value = "料号")
    private String productCode;

    /** 预入仓库 */
    @Excel(name = "预入仓库")
    @ApiModelProperty(value = "预入仓库")
    private String preStock;

    /** 类别9:成品8:半成品 */
    @Excel(name = "类别9:成品8:半成品")
    @ApiModelProperty(value = "类别9:成品8:半成品")
    private String type;

    /** 租户id */
    @ApiModelProperty(value = "${comment}")
    private Long tenantId;

    /** 轴类型大类id */
    @Excel(name = "轴类型大类id")
    @ApiModelProperty(value = "轴类型大类id")
    private Long shaftBroadCategoryId;

    /** 轴类型大类A=视窗系统零部件B=动力系统零部件C=车身及底盘系统零部件D=工业精密零部件 */
    @Excel(name = "轴类型大类A=视窗系统零部件B=动力系统零部件C=车身及底盘系统零部件D=工业精密零部件")
    @ApiModelProperty(value = "轴类型大类A=视窗系统零部件B=动力系统零部件C=车身及底盘系统零部件D=工业精密零部件")
    private String shaftBroadCategoryCode;

    /** 轴类型id */
    @ApiModelProperty(value = "轴类型大类A=视窗系统零部件B=动力系统零部件C=车身及底盘系统零部件D=工业精密零部件")
    private Long shaftCategoryId;

    /** 轴类型=基本上=SCLASS */
    @Excel(name = "轴类型=基本上=SCLASS")
    @ApiModelProperty(value = "轴类型=基本上=SCLASS")
    private String shaftCategoryCode;

    /** 规格,不允许出现下划线_ */
    @Excel(name = "规格,不允许出现下划线_")
    @ApiModelProperty(value = "规格,不允许出现下划线_")
    private String specification;

    /** 图号,不允许出现下划线_ */
    @Excel(name = "图号,不允许出现下划线_")
    @ApiModelProperty(value = "图号,不允许出现下划线_")
    private String drawingNumber;

    /** 客户集团简称,产品描述用 */
    @Excel(name = "客户集团简称,产品描述用")
    @ApiModelProperty(value = "客户集团简称,产品描述用")
    private String companyAlias;

    /** =客户简称_图号_规格 */
    @Excel(name = "=客户简称_图号_规格")
    @ApiModelProperty(value = "=客户简称_图号_规格")
    private String description;

    /** 生产单位（租户id） */
    @ApiModelProperty(value = "=客户简称_图号_规格")
    private Long productionTenantId;

    /** 直径 */
    @Excel(name = "直径")
    @ApiModelProperty(value = "直径")
    private BigDecimal diameter;

    /** 成品长度 */
    @Excel(name = "成品长度")
    @ApiModelProperty(value = "成品长度")
    private BigDecimal lenght;

    /** 厚度 */
    @Excel(name = "厚度")
    @ApiModelProperty(value = "厚度")
    private BigDecimal thickness;

    /** 客户id */
    @ApiModelProperty(value = "厚度")
    private Long companyId;

    /** 客户代号 */
    @Excel(name = "客户代号")
    @ApiModelProperty(value = "客户代号")
    private String companyCode;
    /** 客户代号 */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    /** 销售员id */
    @ApiModelProperty(value = "客户代号")
    private Long salesmanId;

    /** 销售员编码 */
    @Excel(name = "销售员编码")
    @ApiModelProperty(value = "销售员编码")
    private String salesmanCode;

    /** 保管员id（对应sys_user的id） */
    @ApiModelProperty(value = "销售员编码")
    private Long stockKeeperId;

    /** 保管员编码 */
    @Excel(name = "保管员编码")
    @ApiModelProperty(value = "保管员编码")
    private String stockKeeperCode;

    /** 调度员id（对应员工id） */
    @ApiModelProperty(value = "保管员编码")
    private Long dispatcherId;

    /** 调度员编号（对应员工编码） */
    @Excel(name = "调度员编号", readConverterExp = "对=应员工编码")
    @ApiModelProperty(value = "调度员编号")
    private String dispatcherCode;

    /** 产品状态：NA：正常；CL：不用；OP：封存 */
    @Excel(name = "产品状态：NA：正常；CL：不用；OP：封存")
    @ApiModelProperty(value = "产品状态：NA：正常；CL：不用；OP：封存")
    private String productStatusCode;

    /** 产品状态id（对应数据字典id） */
    @ApiModelProperty(value = "产品状态：NA：正常；CL：不用；OP：封存")
    private Long productStatusId;

    /** 生产类型id */
    @ApiModelProperty(value = "产品状态：NA：正常；CL：不用；OP：封存")
    private Long productionTypeId;

    /** 生产类型（Y：样品；N：量产；T：图号升级） */
    @Excel(name = "生产类型", readConverterExp = "Y=：样品；N：量产；T：图号升级")
    @ApiModelProperty(value = "生产类型")
    private String productionTypeCode;

    /** 技术员id（对应sys_user的id） */
    @ApiModelProperty(value = "生产类型")
    private Long technicianId;

    /** 技术员编码 */
    @Excel(name = "技术员编码")
    @ApiModelProperty(value = "技术员编码")
    private String technicianCode;

    /** 创建者编码 */
    @Excel(name = "创建者编码")
    @ApiModelProperty(value = "创建者编码")
    private String creatorCode;

}
