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

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

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

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

/**
 * 待送达运单分页DTO
 *
 */
@Data
@ApiModel("运单DTO")
public class WaitDeliveredPageDTO implements Serializable {

	private static final long serialVersionUID = 6212493096144498263L;

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

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

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

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

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

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

	@ApiModelProperty(value = "电话/手机号")
	private String contact;

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

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

	@ApiModelProperty(value = "企业名称")
	private String enterpriseName;

	@ApiModelProperty(value = "创建时间")
	private Date createtime;

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

	@ApiModelProperty(value = "修改时间")
	private Date updatetime;

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

	@ApiModelProperty(value = "是否已签到 0否 1是")
	private String isSign;

	@ApiModelProperty(value = "收货方经度")
	private BigDecimal consigneeLongitude;

	@ApiModelProperty(value = "收货方纬度")
	private BigDecimal consigneeLatitude;

	@ApiModelProperty(value = "包裹明细")
	private List<PendingDisPackageDTO> packageDetail;

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

	// STD-DEVELOP20220823 lhb 自动签到 20220907 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 自动签到 20220907 end

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

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

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

	@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 List<DeliveryShipbillQueryDTO> shipbillDTOList;

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