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 com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.util.Date;
import java.util.List;


/**
 * 报工对象 biz_daywork
 *
 * @author ezhizao
 * @date 2023-11-29
 */
@Data
@TableName(value = "biz_daywork")
public class BizDaywork extends BaseEntity
{
    private static final long serialVersionUID = 1L;

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

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

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

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

    /** 子计划工序对应的设备id */
//    @ApiModelProperty(value = "${comment}")
//    private Long productionPlanDetailSubDetailEquipmentId;

    /** 产品id */
    @ApiModelProperty(value = "${comment}")
    private Long productId;

    /** 工艺id（通过工艺id，获取版本号） */
    @ApiModelProperty(value = "${comment}")
    private Long technologicalProcessId;

    /** 是否是废品回用(0:否；1：是) */
    @ApiModelProperty(value = "${comment}")
    private Integer isWasteRecycling;

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

    /** 用户id */
    @ApiModelProperty(value = "用户id")
    private Long userId;

    /** 员工编码 */
    @Excel(name = "员工编码")
    @ApiModelProperty(value = "员工编码")
    private String userName;

    /** 员工姓名 */
    @Excel(name = "员工姓名")
    @ApiModelProperty(value = "员工姓名")
    private String nickName;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "开始时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "开始时间")
    private Date startTime;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "结束时间")
    private Date endTime;
    /** 载具 */
    @TableField(exist = false)
    private String carrierName;
    /** 周转中控制状态 */
    @TableField(exist = false)
    private Integer currentStatus;

    private Integer status;

    @TableField(exist = false)
    @ApiModelProperty(value = "生产数量")
    private Integer productionQuantity;

    @TableField(exist = false)
    private List<BizDayworkCarrier> dayworkCarriers;
    /** 炉号 */
    @TableField(exist = false)
    private String furnaceNumber;



    @TableField(exist = false)
    private List<BizDayworkItem> dayworkItemList;

    private Integer processQualifiedNum;
    /**
     * 临时合格数
     */
    private Integer temporaryProcessQualifiedNum;

    private Integer isLast;

    private Integer isCertificate;

    /** 单批量 */
    @TableField(exist = false)
    private Integer oneLotQuantity;

    @TableField(exist = false)
    private Integer lastLotQuantity;

    /** 工段id*/
    private Long deptId;

    @TableField(exist = false)
    private Long processId;

    @TableField(exist = false)
    private Long technologicalProcessDetailId;


    @TableField(exist = false)
    private String deptName;

    @TableField(exist = false)
    private String place;

    @TableField(exist = false)
    private String keywords;

    @TableField(exist = false)
    private String nextDeptProcess;

    @TableField(exist = false)
    private BizFurnaceNoInfo furnaceNoInfo;

    @TableField(exist = false)
    private Long protemProcessId;

    @TableField(exist = false)
    private Long newCarrierId;

    @TableField(exist = false)
    private String newCarrierCode;

    @TableField(exist = false)
    private String processStepNumber;

    @TableField(exist = false)
    private Boolean isNormalLot;

    @TableField(exist = false)
    private Integer isWaste;
    @TableField(exist = false)
    private Long fromId;
    @TableField(exist = false)
    private String carrierCode;
    @TableField(exist = false)
    private String allCarrierName;
    @TableField(exist = false)
    private String productDescription;
    @TableField(exist = false)
    private String drawingNumber;
    @TableField(exist = false)
    private String technologyVersion;
    @TableField(exist = false)
    private String currentNickName;
    @TableField(exist = false)
    private String currentEquipmentCode;
    @TableField(exist = false)
    private Integer totalQuantityNum;
    @TableField(exist = false)
    private String creatorName;
    @TableField(exist = false)
    private String protemProcessStepNumber;
    @TableField(exist = false)
    private Integer prodNum;
    private Integer isSuperaddition;
    private Long packageResourceGroupId;
    @TableField(exist = false)
    private List<Long> productionPlanDetailIds;
    @TableField(exist = false)
    private String workshopName;
    @TableField(exist = false)
    private Long workshopId;
    @TableField(exist =false)
    private Boolean hasFinishOutsource;
}
