package com.prolog.rdc.tms.app.model.vo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;

/**
 * 单号扫描VO
 *
 * Company: 湖北普罗格科技股份有限公司
 *
 * @author zhangsj
 * @since 2022/6/13 14:51
 */
@Data
@ApiModel("单号扫描VO")
public class BillScanVO implements Serializable {

    private static final long serialVersionUID = 9179127280552737280L;

    @NotBlank(message = "扫描单号不为空")
    @ApiModelProperty(value = "扫描单号")
    private String billCode;

    @ApiModelProperty(value = "商品编号")
    private String itemCode;

    @ApiModelProperty(value = "订单号")
    private String orderNo;

    @ApiModelProperty(value = "运单号")
    private String shipbillNo;

    @ApiModelProperty(value = "获取数据类型 1:已扫订单 2:已扫运单 3:已扫商品 4:未扫商品 ")
    private Integer dataType;

    @ApiModelProperty(value = "页码")
    private Integer pageNum;

    @ApiModelProperty(value = "每页条数")
    private Integer pageSize;

    @ApiModelProperty(value = "订单号", hidden=true)
    private List<String> orderNos;

    @ApiModelProperty(value = "运单ID", hidden=true)
    private List<String> shipbillIds;

    @ApiModelProperty(value = "运单ID", hidden=true)
    private String shipbillId;

    @ApiModelProperty(value = "企业ID", hidden=true)
    private Long enterpriseId;

    @ApiModelProperty(value = "货主集合", hidden=true)
    private Long[] consignors;

    @ApiModelProperty(value = "承运商集合", hidden=true)
    private Long[] suppliers;

    @ApiModelProperty(value = "客户集合", hidden=true)
    private Long[] customers;

    @ApiModelProperty(value = "仓库集合", hidden=true)
    private Long[] wsarehouses;

    @ApiModelProperty(value = "单位ID", hidden=true)
    private Long unitId;

    @ApiModelProperty(value = "部门IDs", hidden=true)
    private String[] depts;

    @ApiModelProperty(value = "调度类型 数据字典SCHEDULE_TYPE:1.自有  2.承运商", hidden=true)
    private Integer scheduleType;

    @ApiModelProperty(value = "承运方运单调度状态", hidden=true)
    private Integer carrierShipbillStatus;

    @ApiModelProperty(value = "是否部门权限", hidden=true)
    private String isDept;

    @ApiModelProperty(value = "用户类型", hidden=true)
    private String userType;

    @ApiModelProperty(value = "配送方式 数据字典DELIVERY_METHOD_TYPE：1配送 2自提", hidden=true)
    private Integer deliveryMethodType;

    @ApiModelProperty(value = "扫描派车方式")
    private String scanDispatchMethod;

    @ApiModelProperty(value = "运单ID", hidden=true)
    private List<String> shipbillDetailIds;

}
