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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.rdc.tms.model.vo.shipbill.BmsShipBillVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

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

/**
 * @author hongbo.pan
 */
@Data
public class BmsLoadingBillVO {

	@ApiModelProperty(value = "ID")
	private Long id;

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

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

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

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

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

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

	@ApiModelProperty(value = "结算部门编码")
	private String settlementDepartmentCode;

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

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "调度审核时间")
	private Date loadingAuditDate;

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

	@ApiModelProperty(value = "配送线路")
	private String deliveryLines;

	@ApiModelProperty(value = "站点线路")
	private String stationLines;

	@ApiModelProperty(value = "地图总里程")
	private BigDecimal totalMileageMap;

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

	@ApiModelProperty(value = "提货区域")
	private String pickUpAreas;

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

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

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

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

	@ApiModelProperty(value = "车辆ID")
	private Long vehicleId;

	@ApiModelProperty(value = "车辆编号")
	private String vehicleCode;

	@ApiModelProperty(value = "车辆名称")
	private String vehicleName;

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

	@ApiModelProperty(value = "车型ID")
	private Long vehicleTypeId;

	@ApiModelProperty(value = "车型编码")
	private String vehicleTypeCode;

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

	@ApiModelProperty(value = "车辆隶属机构ID")
	private String vehicleAffiliationId;

	@ApiModelProperty(value = "车辆隶属机构CODE")
	private String vehicleAffiliationCode;

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

	@ApiModelProperty(value = "车辆归属")
	private Integer vehicleAscription;

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

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

	@ApiModelProperty(value = "载重(kg)")
	private BigDecimal vehicleWeight;

	@ApiModelProperty(value = "载方(m³)")
	private BigDecimal vehicleVolume;

	@ApiModelProperty(value = "货主ID")
	private Long cargoOwnerId;

	@ApiModelProperty(value = "货主编码")
	private String cargoOwnerCode;

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

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

	@ApiModelProperty(value = "车辆规格")
	private String vehicleSpec;

	@ApiModelProperty(value = "运单集合")
	private List<BmsShipBillVO> shipBillList;

	@ApiModelProperty(value = "支出件数")
	private BigDecimal totalPayPcs;

	@ApiModelProperty(value = "支出体积")
	private BigDecimal totalPayVolume;

	@ApiModelProperty(value = "支出重量")
	private BigDecimal totalPayWeight;

	@ApiModelProperty(value = "支出总里程")
	private BigDecimal totalPayMileage;

	@ApiModelProperty(value = "送货员ID")
	private Long deliverymanId;

	@ApiModelProperty(value = "送货员编号")
	private String deliverymanCode;

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

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

	@ApiModelProperty(value = "车辆类别数据字典VEHICLE_TYPE_CATEGORY：1冷藏车、2平顶车、3厢式货车")
	private String vehicleTypeCategory;

	@ApiModelProperty(value = "10-收入 20-支出", hidden = true)
	private Integer businessTypeHidden;

}
