package com.prolog.cs.biz.outbound.model.dto;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.prolog.framework.core.annotation.Column;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

@Data
@ApiModel
public class BillQueryDTO {

    @ApiModelProperty(value = "当前页码")
    private Integer pageSize;

    @ApiModelProperty(value = "每页数量")
    private Integer pageNum;

    @ApiModelProperty(value = "交货单号")
    @Column(value = "billno")
    private String billno;

    @ApiModelProperty(value = "交货单类型")
    private List<String> billtypes;

    @ApiModelProperty(value = "排除交货单类型")
    private List<String> excludeBilltypes;

    @ApiModelProperty(value = "交货单来源单据类型")
    private String refBilltype;

    @ApiModelProperty(value = "来源单据ID")
    private String refBillid;

    @ApiModelProperty(value = "来源单据号")
    private String refBillno;

    @ApiModelProperty(value = "货主ID")
    private String consignorid;

    @ApiModelProperty(value = "货主名称")
    private String consignorname;

    @ApiModelProperty(value = "出库仓库ID")
    private String branchid;

    @ApiModelProperty(value = "出库仓库编号")
    private String branchcode;

    @ApiModelProperty(value = "出库仓库名称")
    private String branchname;

    @ApiModelProperty(value = "出库仓库库区ID")
    private String branchareaid;

    @ApiModelProperty(value = "出库仓库库区")
    private String brancharea;

    @ApiModelProperty(value = "出库仓库详细地址")
    private String branchAddress;

    @ApiModelProperty(value = "收货单位类型")
    private String shipperType;

    @ApiModelProperty(value = "收货单位名称")
    private String shippername;

    @ApiModelProperty(value = "承运商名称")
    private String carrierName;

    @ApiModelProperty(value = "收货联系人")
    private String custPerson;

    @ApiModelProperty(value = "状态 10-未下发 20-已下发 30-已确认")
    private String status;

    @ApiModelProperty(value = "制单开始日期")
    private Date billDateStart;

    @ApiModelProperty(value = "制单结束日期")
    private Date billDateEnd;

    @ApiModelProperty(value = "销售员名称")
    private String salesPersonName;

    @ApiModelProperty(value = "到货方式")
    private String arrivalMode;

    @ApiModelProperty(value = "业务员部门")
    private String saleBranchname;

    @ApiModelProperty(value = "是否紧急")
    private Integer isEmergency;

    @ApiModelProperty(value = "运输路线id")
    private String shipLineId;

    @ApiModelProperty(value = "单据类型")
    private String billtype;

    @ApiModelProperty(value = "配送开始时间")
    private Date attainDateStart;

    @ApiModelProperty(value = "配送结束时间")
    private Date attainDateEnd;

    @ApiModelProperty(value = "客户id")
    private String customerId;

    @ApiModelProperty(value = "承运商")
    @JsonProperty(value = "char")
    @JSONField(name = "char")
    private String carrier;


    @ApiModelProperty(value = "商品ID")
    private String itemId;

    @ApiModelProperty(value = "商品通用查询（名称，编码，助记码）")
    private String itemCondition;

    @ApiModelProperty(value = "单位通用查询（名称，编码，助记码）")
    private String shipperCondition;

    @ApiModelProperty(value = "商品id集合")
    private List<String> itemIds;

    @ApiModelProperty(value = "单位id集合")
    private List<String> shipperIds;
}
