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

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

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author hongbo.pan
 * @date 2022/10/12
 */
@Data
@ApiModel("待预约派车单模式查询DTO")
public class AppointmentLoadingBillQueryDTO implements Serializable {

	private static final long serialVersionUID = -95869941042132913L;

	@ApiModelProperty(value = "派车单ID")
	private String loadingBillId;

	@ApiModelProperty(value = "派车单编号")
	private String loadingBillNo;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "派车单时间")
	private Date loadingBillDate;

	@ApiModelProperty(value = "仓库ID")
	private Long branchId;

	@ApiModelProperty(value = "仓库编码")
	private String branchCode;

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

	@ApiModelProperty(value = "发货方ID")
	private Long shipperId;

	@ApiModelProperty(value = "发货方编码")
	private String shipperCode;

	@ApiModelProperty(value = "发货方名称")
	private String shipperName;

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

	@ApiModelProperty(value = "发货方地址")
	private String shipperAddress;

	@ApiModelProperty(value = "分组名称")
	private String groupName;

	@ApiModelProperty(value = "司机id")
	private Long driverId;

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

	@ApiModelProperty(value = "司机编码")
	private String driverCode;

	@ApiModelProperty(value = "司机手机号")
	private String driverPhoneNumber;

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

	@ApiModelProperty(value = "车型名称")
	private String vehicleTypeName;

	@ApiModelProperty(value = "送货员名称")
	private String deliverymanName;

	@ApiModelProperty(value = "送货员手机号")
	private String deliverymanPhoneNumber;

	@ApiModelProperty(value = "运单数")
	private Integer shipbillNumber;

	@ApiModelProperty(value = "客户数")
	private Integer customerNumber;

	@ApiModelProperty(value = "总站点数")
	private Integer siteNumber;

	@ApiModelProperty(value = "总里程数")
	private BigDecimal totalMileage;

	@ApiModelProperty(value = "总件数")
	private BigDecimal totalPcs;

	@ApiModelProperty(value = "总体积")
	private BigDecimal totalVolume;

	@ApiModelProperty(value = "总重量")
	private BigDecimal totalWeight;

	@ApiModelProperty(value = "实际总件数")
	private BigDecimal actualTotalPcs;

	@ApiModelProperty(value = "实际总体积")
	private BigDecimal actualTotalVolume;

	@ApiModelProperty(value = "实际总重量")
	private BigDecimal actualTotalWeight;

	@ApiModelProperty(value = "总整件数")
	private BigDecimal totalWholePiece;

	@ApiModelProperty(value = "总拼箱数")
	private BigDecimal totalLclPiece;

	@ApiModelProperty(value = "配载体积装载率")
	private String volumeLoadingRate;

	@ApiModelProperty(value = "配载重量装载率")
	private String weightLoadingRate;

	@ApiModelProperty(value = "装车单状态 数据字典：LOADING_BILL_STATUS:10未审核 20已审核")
	private Integer status;

	@ApiModelProperty(value = "装车单状态名称 数据字典：LOADING_BILL_STATUS:10未审核 20已审核")
	private String statusName;

	@ApiModelProperty(value = "备注")
	private String memo;

	@ApiModelProperty(value = "字符属性扩展1")
	private String extStr1;

	@ApiModelProperty(value = "字符属性扩展2")
	private String extStr2;

	@ApiModelProperty(value = "字符属性扩展3")
	private String extStr3;

	@ApiModelProperty(value = "字符属性扩展4")
	private String extStr4;

	@ApiModelProperty(value = "字符属性扩展5")
	private String extStr5;

	@ApiModelProperty(value = "数值属性扩展1")
	private BigDecimal extNum1;

	@ApiModelProperty(value = "数值属性扩展2")
	private BigDecimal extNum2;

	@ApiModelProperty(value = "数值属性扩展3")
	private BigDecimal extNum3;

	@ApiModelProperty(value = "数值属性扩展4")
	private BigDecimal extNum4;

	@ApiModelProperty(value = "数值属性扩展5")
	private BigDecimal extNum5;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展1")
	private Date extDate1;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展2")
	private Date extDate2;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展3")
	private Date extDate3;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展4")
	private Date extDate4;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "日期属性扩展5")
	private Date extDate5;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "创建时间")
	private Date createtime;

	@ApiModelProperty(value = "创建人")
	private String createperson;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "修改时间")
	private Date updatetime;

	@ApiModelProperty(value = "修改人")
	private String updateperson;

	@ApiModelProperty(value = "运单id集合")
	private String shipbillIds;

	@ApiModelProperty(value = "提货站点数")
	private Long pickupStations;

	@ApiModelProperty(value = "送货站点数")
	private Long deliveryStations;

	@ApiModelProperty(value = "总站点数")
	private Long totalStations;

	@ApiModelProperty(value = "运单数")
	private BigDecimal count;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "预计提货开始时间")
	private Date estimatedPickupStartTime;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "预计提货结束时间")
	private Date estimatedPickupEndTime;

	@ApiModelProperty(value = "预计提货时间")
	private String estimatedPickupTime;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "预计送达开始时间")
	private Date estimatedDeliveryStartTime;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "预计送达结束时间")
	private Date estimatedDeliveryEndTime;

	@ApiModelProperty(value = "预计送达时间")
	private String estimatedDeliveryTime;

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

	@ApiModelProperty(value = "收货方名称")
	private String consigneeName;

	@ApiModelProperty(value = "收货方手机号")
	private String consigneePhoneNumber;

	@ApiModelProperty(value = "收货方座机号")
	private String consigneeLandlineNumber;

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

	@ApiModelProperty(value = "收货方省名称")
	private String consigneeProvinceName;

	@ApiModelProperty(value = "收货方市名称")
	private String consigneeCityName;

	@ApiModelProperty(value = "收货方区/县名称")
	private String consigneeDistrictName;

	@ApiModelProperty(value = "收货方详细地址")
	private String consigneeAddress;

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

	@ApiModelProperty(value = "发货方省名称")
	private String shipperProvinceName;

	@ApiModelProperty(value = "发货方市名称")
	private String shipperCityName;

	@ApiModelProperty(value = "发货方区/县名称")
	private String shipperDistrictName;

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

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

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

}
