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

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotNull;
import java.util.Date;
import java.util.List;

/**
 * @author hongbo.pan
 * @date 2023/6/25
 */
@Data
public class CarrierSettlementQueryVO {

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

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

    @ApiModelProperty(value = "司机名称")
    private String driverName;

    @ApiModelProperty(value = "车牌号")
    private String vehiclePlateNumber;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "下单开始日期")
    private Date orderStartDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "下单结束日期")
    private Date orderEndDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "启运开始日期")
    private Date shipStartDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "启运结束日期")
    private Date shipEndDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "送达开始日期")
    private Date deliveryStartDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "送达结束日期")
    private Date deliveryEndDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "回单开始日期")
    private Date receiptStartDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "回单结束日期")
    private Date receiptEndDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "正本回单开始日期")
    private Date originalBackStartDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "正本回单结束日期")
    private Date originalBackEndDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "完成开始日期")
    private Date completeStartDate;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "完成结束日期")
    private Date completeEndDate;

    @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 shipperProvinceCityDistrict;

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

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

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

    @ApiModelProperty(value = "核算状态")
    private Integer settlementStatus;

    @ApiModelProperty(value = "承运商ID", hidden = true)
    private Long carrierId;

    @ApiModelProperty(value = "部门",hidden = true)
    private List<String> deptList;

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

    @ApiModelProperty(value = "仓库", hidden = true)
    private List<Long> warehouseList;

    @ApiModelProperty(value = "供应商", hidden = true)
    private List<Long> supplierList;

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

    @ApiModelProperty(value = "货主",hidden = true)
    private List<Long> consignorList;

    @ApiModelProperty(value = "收货方",hidden = true)
    private List<Long> consigneeUnitIdList;

}
