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

import com.fasterxml.jackson.annotation.JsonFormat;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Table;
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;


@Data
@Table("bms_loading_bill_header")
public class BmsLoadingBillHeaderModel implements Serializable {

	private static final long serialVersionUID = -92248416608078822L;

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

	@ApiModelProperty(value = "装车单编号")
	@Column(value = "loading_bill_no")
	private String loadingBillNo;

	@ApiModelProperty(value = "调度类型 数据字典SCHEDULE_TYPE:1.自有  2.承运商")
	@Column(value = "schedule_type")
	private Integer scheduleType;

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

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

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

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

	@ApiModelProperty(value = "费用计算类型  10:按运单计费  20:按派车单计费 30:未匹配到价格")
	@Column(value = "fee_clt_type")
	private Integer feeCltType;

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

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

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

	@ApiModelProperty(value = "导入批次号")
	@Column(value = "import_batch_number")
	private String importBatchNumber;

	@ApiModelProperty(value = "调度时间")
	@Column(value = "loading_date")
	private Date loadingDate;

	@ApiModelProperty(value = "调度审核时间")
	@Column(value = "loading_audit_date")
	private Date loadingAuditDate;

	@ApiModelProperty(value = "启运日期")
	@Column(value = "start_date")
	private Date startDate;

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

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

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

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

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

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "配送区域")
	@Column(value = "delivery_areas")
	private String deliveryAreas;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "来源 数据字典SOURCE 1.新增 2.excel导入 3.接口导入")
	@Column(value = "source")
	private Integer source;

	@ApiModelProperty(value = "同步状态")
	@Column(value = "synchronous_status")
	private Integer synchronousStatus;

	@ApiModelProperty(value = "同步时间")
	@Column(value = "synchronous_date")
	private Date synchronousDate;

	@ApiModelProperty(value = "同步失败原因")
	@Column(value = "synchronous_fail_reason")
	private String synchronousFailReason;

	@ApiModelProperty(value = "所属组织ID")
	@Column(value = "ORGANIZATION_ID")
	private Long organizationId;

	@ApiModelProperty(value = "所属组织编码")
	@Column(value = "organization_code")
	private String organizationCode;

	@ApiModelProperty(value = "所属组织名称")
	@Column(value = "organization_name")
	private String organizationName;

	@ApiModelProperty(value = "所属部门ID")
	@Column(value = "department_id")
	private String departmentId;

	@ApiModelProperty(value = "所属部门编码")
	@Column(value = "department_code")
	private String departmentCode;

	@ApiModelProperty(value = "所属部门名称")
	@Column(value = "department_name")
	private String departmentName;

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

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

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

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "数值属性扩展5")
	@Column(value = "ext_num5")
	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")
	@Column(value = "ext_date1")
	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")
	@Column(value = "ext_date2")
	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")
	@Column(value = "ext_date3")
	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")
	@Column(value = "ext_date4")
	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")
	@Column(value = "ext_date5")
	private Date extDate5;

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

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

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

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

	@ApiModelProperty(value = "包含的运单")
	@Column(value = "shipbill_no_list")
	private String shipbillNoList;

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

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

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

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

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

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

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

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

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

	@ApiModelProperty(value = "支出计费类型 10:按运单计费  20:按派车单计费 30:未匹配到价格")
	@Column(value = "pay_fee_clt_type")
	private Integer payFeeCltType;

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

	@ApiModelProperty(value = "支出地图总里程")
	@Column(value = "total_pay_mileage_map")
	private BigDecimal totalPayMileageMap;
}
