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.models.auth.In;
import io.swagger.v3.oas.models.security.SecurityScheme;
import lombok.Data;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;


/**
 * 盘点批次信息对象 biz_taks_stock_lot
 *
 * @author ezhizao
 * @date 2024-08-15
 */
@Data
@TableName(value = "biz_taks_stock_lot")
public class BizTaksStockLot extends BaseEntity
{
    private static final long serialVersionUID = 1L;

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

    /** 计划单id */
    @ApiModelProperty(value = "${comment}")
    private Long productionPlanId;

    /** 计划单明细id */
    @ApiModelProperty(value = "${comment}")
    private Long productionPlanDetailId;
    /** 批次号 */

    @ApiModelProperty(value = "批次号")
    @Excel(name = "批次号",sort = 3)
    private String lotCode;

    /** 产品描述 */
    @Excel(name = "产品描述",sort = 4)
    @ApiModelProperty(value = "产品描述")
    private String productDescription;

    /** 子计划id */
    @ApiModelProperty(value = "产品描述")
    private Long productionPlanDetailSubDetailId;

    /** daywork_id */
    @ApiModelProperty(value = "产品描述")
    private Long dayworkId;

    /** 批次id */
    @ApiModelProperty(value = "产品描述")
    private Long lotId;


    /** 工段id（当前工段的id） */
    @ApiModelProperty(value = "批次号")
    private Long deptId;

    /** 产品id */
    @ApiModelProperty(value = "批次号")
    private Long productId;

    /** 是否盘点(0：未盘点，1：已盘点) */
    @ApiModelProperty(value = "是否盘点(0：未盘点，1：已盘点)")
    private Integer isTaksStock;

    /** 盘点数量 */
    @ApiModelProperty(value = "盘点数量")
    @Excel(name = "盘点数量",sort = 10)
    private Integer taksStockNum;

    /** 工艺id（通过工艺id，获取版本号） */
    @ApiModelProperty(value = "盘点数量")
    private Long technologicalProcessId;

    /** 投产数 */
    @ApiModelProperty(value = "投产数")
    @Excel(name = "投入数",sort = 9)
    private Integer prodNum;

    /** 是否尾批（0：默认，1: 是尾批） */
    @ApiModelProperty(value = "是否尾批")
    private Integer isLast;

    /** 是否是废品回用(0:否；1：是) */
    @ApiModelProperty(value = "是否是废品回用(0:否；1：是)")
    private Long isWasteRecycling;

    /** 是否修改(0 否 ，1 是)单批单改；多批单改；回退 */
    @ApiModelProperty(value = "是否修改(0 否 ，1 是)单批单改；多批单改；回退")
    private Integer isAmend;

    /** 工序合格数 */
    @ApiModelProperty(value = "工序合格数")
    private Integer temporaryProcessQualifiedNum;

    /** 批次生产状态（0：未开始，1：进行中，2：已完成） */
    @ApiModelProperty(value = "批次生产状态")
    @Excel(name = "批次生产状态", readConverterExp = "0=未开始,1=进行中,2=已完成",sort = 11)
    private Integer status;

    /** 是否经过特殊报工（0：否，1：是） */
    @ApiModelProperty(value = "是否经过特殊报工")
    private Integer hasSpecial;
    private Long takeStockPeriodId;
    @TableField(exist = false)
    @Excel(name = "工段", sort = 7)
    private String deptName;
    @TableField(exist = false)
    private List<Long> flags;
    @TableField(exist = false)
    private String productionPlanNo;
    private Integer isProductStatus;
    private Long processId;
    @Excel(name="工序", sort = 8)
    private String processAlias;
    @TableField(exist = false)
    @Excel(name = "箱号",sort = 6)
    private String carrierName;
    @Excel(name = "盘点年",sort = 1)
    private String stockYear;
    @Excel(name = "盘点月",sort = 2)
    private String stockMonth;
//    @Excel(name = "产品数",sort = 5)
    @TableField(exist = false)
    private Integer productNum;
    @Excel(name = "产品图号",sort = 3)
    private String drawingNumber;
    private Integer isWaste;
    private Long fromLotId;

//    @TableField(exist = false)
    @Excel(name = "外协单号",sort = 12)
    private String outsourceFormNo;
    @TableField(exist = false)
    private String deptCode;

    @TableField(exist = false)
    private List<Long> lotIds;
    @TableField(exist = false)
    @Excel(name = "标识",sort = 13)
    private String flag;
//    @TableField(exist = false)
    private String statusLabel;
    @TableField(exist = false)
    private String label;
    @TableField(exist = false)
    private Long value;
    private Integer isSuperaddition;
    //子计划投产批数
    @TableField(exist = false)
    private Integer lotTotalNumber;
    //已经生成正常批次数量
    @TableField(exist = false)
    private Long normalLotNumber;
    //已经盘点的未生产的批次量
    @TableField(exist = false)
    private Long notProductionLotNumber;
    @TableField(exist = false)
    private Long allowLotNum;
    @Excel(name = "盘点状态",sort = 5)
    @TableField(exist =false)
    private String taksStatus;
    @TableField(exist =false)
    @Excel(name = "产品编码", sort = 4)
    private String productCode;
}
