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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.rdc.tms.app.model.dto.business.DeliveryShipbillQueryDTO;
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;
import java.util.List;

/**
 *
 * 配送任务查询DTO
 *
 * @className :PendingDeliveryTaskQueryDTO
 * @author :qian.yh
 * @date :2022/7/7
 * @description :
 *
 * @version :1.0.0
 *
 */
@Data
@ApiModel("配送任务查询DTO")
public class PendingDeliveryTaskQueryDTO implements Serializable {

	private static final long serialVersionUID = 1L;

	@ApiModelProperty(value = "司机ID")
	private String driverId;

	@ApiModelProperty(value = "企业ID")
	private String enterpriseId;

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

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

	@ApiModelProperty(value = "配送地点ID")
	private String shipToId;

	@ApiModelProperty(value = "配送地点编号")
	private String shipToCode;

	@ApiModelProperty(value = "配送地点名称")
	private String shipToName;

	@ApiModelProperty(value = "配送地点地址")
	private String shipToAddress;

	@ApiModelProperty(value = "收货人")
	private String shipToConsignee;

	@ApiModelProperty(value = "收货人联系电话")
	private String shipToConsigneeTel;

	@ApiModelProperty(value = "收货人联系电话2")
	private String shipToConsigneeMobel;

	@ApiModelProperty(value = "配送地点经度")
	private String shipToLongitude;

	@ApiModelProperty(value = "配送地点纬度")
	private String shipToLatitude;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "送达签到时间")
	private Date deliverySignTime;

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

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

	//STD-DEVELOP20220823 lhb 自动签到 20220901 start
	@ApiModelProperty(value = "运单状态")
	private Integer status;

	@ApiModelProperty(value = "送达签到 数据字典WHETHER:0否，1是")
	private Integer consigneeDeliverySign;

	@ApiModelProperty(value = "默认送货围栏(km)")
	private BigDecimal consigneeDeliveryRail;

	@ApiModelProperty(value = "自动送达签到 数据字典WHETHER:0否，1是")
	private Integer consigneeAutoDeliverySign;
	//STD-DEVELOP20220823 lhb 自动签到 20220901 end

	@ApiModelProperty(value = "货物明细")
	private List<ShipbillItemDetailQueryDTO> itemDetail;

	@ApiModelProperty(value = "流程配置")
	private String flowConfig;

	@ApiModelProperty(value = "承运商流程配置")
	private String carrierFlowConfig;

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

	@ApiModelProperty(value = "运单类型数据字典SHIPBILL_TYPE:N正常运单R退运单，默认N")
	private String shipbillType;

	@ApiModelProperty(value = "车辆设备ID")
	private String vehicleDeviceId;

	@ApiModelProperty(value = "车辆设备CODE")
	private String vehicleDeviceCode;

	@ApiModelProperty(value = "车辆设备名称")
	private String vehicleDeviceName;

	@ApiModelProperty(value = "容器id")
	private String containerId;

	@ApiModelProperty(value = "容器编号")
	private String containerCode;

	@ApiModelProperty(value = "容器名称")
	private String containerName;

	@ApiModelProperty(value = "运单数")
	private int shipBillNums;

	@ApiModelProperty(value = "运单明细")
	private List<DeliveryShipbillQueryDTO> shipbillDTOList;

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

	@ApiModelProperty(value = "客户编号")
	private String customerCode;

	@ApiModelProperty(value = "客户名称")
	private String customerName;
}
