package com.sw.mes.store.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.sw.mes.store.entity.WarehouseInputBillDetail;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.*;

import javax.validation.constraints.*;

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

/**
 * @Author
 * @Description：
 * @Date: Create in
 * @Modified By:
 */
@Data
@ApiModel(value = "入库申请单Dto")
public class WarehouseInputBillDto {

    private Long id;
    @ApiModelProperty(value = "入库单号", required = true)
    private String billNo;
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty(value = "创建人ID")
    private Integer createUserId;
    @ApiModelProperty(value = "创建人")
    private String createUserName;
    @ApiModelProperty(value = "单据状态。 待接收，已入库，拒收")
    private String status;
    @ApiModelProperty(value = "操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    @ApiModelProperty(value = "操作人ID")
    private Integer updateUserId;
    @ApiModelProperty(value = "操作人姓名")
    private String updateUserName;
    @ApiModelProperty(value = "入库类型")
    private String type;
    @ApiModelProperty(value = "备注")
    private String remark;
    @ApiModelProperty(value = "拒收原因")
    private String rejectReason;
    @ApiModelProperty(value = "拒收原因备注")
    private String rejectReasonRemark;
    @ApiModelProperty(value = "是否自动审核，0 否，默认否。1 自动审核")
    private Boolean autoAudit;

    @ApiModelProperty(value = "工厂")
    private String factoryId;
    @ApiModelProperty(value = "唯一ID")
    private String uniqueNo;
    @ApiModelProperty(value = "发料人工号")
    private String senderCode;
    @ApiModelProperty(value = "发料人名称")
    private String senderName;
    @ApiModelProperty(value = "线边库存地点")
    private String lgort;
    @ApiModelProperty(value = "工单号")
    private String workOrderNo;
    @ApiModelProperty(value = "EDI信息04")
    private String dedi04;
    @ApiModelProperty(value = "预留字段")
    private String define1;
    @ApiModelProperty(value = "预留字段")
    private String define2;
    @ApiModelProperty(value = "预留字段")
    private String define3;
    @ApiModelProperty(value = "预留字段")
    private String define4;
    @ApiModelProperty(value = "预留字段")
    private String define5;
    @ApiModelProperty(value = "定向标识(待业务确认)")
    private String direction;
    /**
     * 晶编编码
     */
    private String crystalNo;
    //update liru
    @ApiModelProperty(value = "库位编码", required = false)
    private String warehouseCode;
    @ApiModelProperty(value = "来源库存地点", required = false)
    private String sourceWarehouse;

    private Integer warehouseId;
    @ApiModelProperty(value = "入库明细")
    private List<WarehouseInputBillDetailDto> inputBillDetails = new ArrayList<>();
}