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

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

import org.springframework.format.annotation.DateTimeFormat;

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;

/**
 * 装车单汇总表(TmsLoadingBillHeader)Model
 *
 * @author zhangsj
 * @since 2022-04-13 13:51:50
 */
@Data
@Table("tms_loading_bill_header")
public class TmsLoadingBillHeaderModel implements Serializable {
	private static final long serialVersionUID = -83661984680307412L;

	@Id
	@ApiModelProperty(value = "装车单ID")
	@Column(value = "loading_bill_id")
	private String loadingBillId;

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

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

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

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

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

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

	@ApiModelProperty(value = "装车单类型 数据字典LOADING_BILL_TYPE:10.入库类型  20.出库类型 30其他类型")
	@Column(value = "loading_bill_type")
	private Integer loadingBillType;

	@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 = "司机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 = "vice_driver_id")
	private String viceDriverId;

	@ApiModelProperty(value = "副司机编号")
	@Column(value = "vice_driver_code")
	private String viceDriverCode;

	@ApiModelProperty(value = "副司机名称")
	@Column(value = "vice_driver_name")
	private String viceDriverName;

	@ApiModelProperty(value = "副司机手机号")
	@Column(value = "vice_driver_phone_number")
	private String viceDriverPhoneNumber;

	@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 = "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 = "副送货员ID")
	@Column(value = "vice_deliveryman_id")
	private String viceDeliverymanId;

	@ApiModelProperty(value = "副送货员编号")
	@Column(value = "vice_deliveryman_code")
	private String viceDeliverymanCode;

	@ApiModelProperty(value = "副送货员名称")
	@Column(value = "vice_deliveryman_name")
	private String viceDeliverymanName;

	@ApiModelProperty(value = "副送货员手机号")
	@Column(value = "vice_deliveryman_phone_number")
	private String viceDeliverymanPhoneNumber;

	@ApiModelProperty(value = "设备类型  数据字典 DEVICE_TYPE  1. GPS设备   2.    冷链设备")
	@Column(value = "device_type")
	private Integer deviceType;

	@ApiModelProperty(value = "设备ID")
	@Column(value = "device_id")
	private Long deviceId;

	@ApiModelProperty(value = "设备编码")
	@Column(value = "device_code")
	private String deviceCode;

	@ApiModelProperty(value = "设备名称")
	@Column(value = "device_name")
	private String deviceName;

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

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

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

	@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 = "volume_loading_rate")
	private String volumeLoadingRate;

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

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "装车开始时间")
	@Column(value = "loading_start_date")
	private Date loadingStartDate;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "装车结束时间")
	@Column(value = "loading_end_date")
	private Date loadingEndDate;

	@ApiModelProperty(value = "装车人员ID")
	@Column(value = "loader_id")
	private String loaderId;

	@ApiModelProperty(value = "装车人员名称")
	@Column(value = "loader_name")
	private String loaderName;

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

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

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

	@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 = "pickup_stations")
	private Long pickupStations;

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

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

	@ApiModelProperty(value = "签收状态数据字典SIGN_IN_STATUS:S已签收P部分签收N未签收，默认N")
	@Column(value = "sign_in_status")
	private String signInStatus;

	@ApiModelProperty(value = "暂存位")
	@Column(value = "staging_locations")
	private String stagingLocations;

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

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

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

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

	@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 = "cold_shipbill_number")
	private Long coldShipbillNumber;

	@ApiModelProperty(value = "紧急运单数")
	@Column(value = "urgent_shipbill_number")
	private Long urgentShipbillNumber;

	@ApiModelProperty(value = "总货主数")
	@Column(value = "cargo_owner_number")
	private Long cargoOwnerNumber;

	@ApiModelProperty(value = "托运经办人")
	@Column(value = "consignment_agen")
	private String consignmentAgen;

	@ApiModelProperty(value = "经办人联系方式")
	@Column(value = "agen_contact_phone_number")
	private String agenContactPhoneNumber;

	@ApiModelProperty(value = "身份证")
	@Column(value = "driver_id_card")
	private String driverIdCard;

	@ApiModelProperty(value = "图片")
	@Column(value = "picture_url")
	private String pictureUrl;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "托运交接时间")
	@Column(value = "consignment_handover_date")
	private Date consignmentHandoverDate;

	@ApiModelProperty(value = "扫描状态 数据字典SCAN_STATUS:10初始 20已装车扫描")
	@Column(value = "scan_status")
	private Integer scanStatus;

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

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

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

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

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

	@ApiModelProperty(value = "系统标志")
	@Column(value = "carrier_sys_flag")
	private String carrierSysFlag;

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

	@ApiModelProperty(value = "总发货件数")
	@Column(value = "total_delivery_pcs")
	private BigDecimal totalDeliveryPcs;

	@ApiModelProperty(value = "总发货体积")
	@Column(value = "total_delivery_volume")
	private BigDecimal totalDeliveryVolume;

	@ApiModelProperty(value = "总发货重量")
	@Column(value = "total_delivery_weight")
	private BigDecimal totalDeliveryWeight;

	@ApiModelProperty(value = "容器是否随车 数据字典:WHETHER 1是 0否")
	@Column(value = "container_with_vehicle")
	private BigDecimal containerWithVehicle;

	@ApiModelProperty(value = "超限单数")
	@Column(value = "transfinite_bill_number")
	private Long transfiniteBillNumber;

	@ApiModelProperty(value = "是否过磅 0:否 1:是")
	@Column(value = "IS_WEIGH")
	private Integer isWeigh;
}
