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

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

import java.io.Serializable;
import java.util.Date;
import java.util.List;


@Data
public class ShipBillQueryVO implements Serializable {

    @ApiModelProperty(value = "当前页")
    private int pageNum;

    @ApiModelProperty(value = "页行数")
    private int pageSize;

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

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

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

    @ApiModelProperty(value = "订单业务类型 数据字典ORDER_BUSINESS_TYPE：1销售订单-直送  2销售订单-供应商配送 3采购订单-供应商配送 4采购订单-自提 5销售退货 6采购退货 7调拨")
    private Integer orderBusinessType;

    @ApiModelProperty(value = "费用名称")
    private String expenseName;

    @ApiModelProperty(value = "启运开始日期")
    private Date startDate;
    private Date endDate;

    @ApiModelProperty(value = "送达日期")
    private Date deliveryStartDate;
    private Date deliveryEndDate;

    @ApiModelProperty(value = "回单日期")
    private Date receiptStartDate;
    private Date receiptEndDate;

    @ApiModelProperty(value = "正本回单日期")
    private Date originalBackStartDate;
    private Date originalBackEndDate;

    @ApiModelProperty(value = "完成日期")
    private Date completeStartDate;
    private Date completeEndDate;

    @ApiModelProperty(value = "始发地")
    private String shipperProvinceCityDistrict;

    @ApiModelProperty(value = "目的地")
    private String consigneeProvinceCityDistrict;

    @ApiModelProperty(value = "部门ID")
    private String[]  departmentIds;

    @ApiModelProperty(value = "核算状态 0:未核算，1：核算待提交，2：核算审批中，3：核算完成")
    private Integer settlementStatus;

    @ApiModelProperty(value = "费用状态 EXPENSE_STATUS 0：新增 1：审核中 2:正常")
    private Integer expenseStatus;

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

    @ApiModelProperty(value = "发货方单位名称")
    private String shipperUnitName;

    @ApiModelProperty(value = "仓库ID")
    private List<Long> branchIds;

    @ApiModelProperty(value = "货主ID")
    private List<Long> cargoOwnerIds;

    @ApiModelProperty(value = "承运商")
    private Long carrierId;

    @ApiModelProperty(value = "承运商集合", hidden=true)
    private List<Long> suppliers;

    @ApiModelProperty(value = "客户集合", hidden=true)
    private List<Long> customers;

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

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

    @ApiModelProperty(value = "费用单号")
    private String expenseNo;

    @ApiModelProperty(value = "结算状态")
    private Integer checkStatus;

    @ApiModelProperty(value = "结算状态")
    private List<Integer> checkStatuses;

    @ApiModelProperty(value = "结算部门")
    private String settlementDepartment;

    @ApiModelProperty(value = "结算公司")
    private String settlementCompany;

    @ApiModelProperty(value = "承运方(调度)类型 数据字典LINE_CARRIER_TYPE:1.承运商  2.司机")
    private Integer carrierType;

    @ApiModelProperty(value = "隶属机构名称")
    private String affiliationName;

    @ApiModelProperty(value = "承运商编码")
    private String carrierCode;

    @ApiModelProperty(value = "排除费用单号")
    private List<String> expenseNos;
}