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;

/**
 * 运输计划单汇总表
 *
 * @author lhb
 * @since 2023-06-07 13:51:50
 */
@Data
@Table("tms_transport_plan_bill_header")
public class TmsTransPlanBillHeaderModel implements Serializable {
	private static final long serialVersionUID = -83661984680307412L;

	@Id
	@ApiModelProperty(value = "运输计划单ID")
	@Column(value = "plan_bill_id")
	private String planBillId;

	@ApiModelProperty(value = "运输计划单编号")
	@Column(value = "plan_bill_no")
	private String planBillNo;

	@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 = "收货方ID")
	@Column(value = "consignee_id")
	private Long consigneeId;

	@ApiModelProperty(value = "收货方编码")
	@Column(value = "consignee_code")
	private String consigneeCode;

	@ApiModelProperty(value = "收货方名称")
	@Column(value = "consignee_name")
	private String consigneeName;

	@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 = "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 = "计划单状态 数据字典：PLAN_BILL_STATUS:10待调度 15部分调度 20已调度")
	@Column(value = "status")
	private Integer status;

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

	@ApiModelProperty(value = "计划日期")
	@Column(value = "plan_date")
	private Date planDate;

	@ApiModelProperty(value = "计划发运日期")
	@Column(value = "plan_delivery_date")
	private Date planDeliveryDate;

	@ApiModelProperty(value = "实际发运日期")
	@Column(value = "actual_delivery_date")
	private Date actualDeliveryDate;

	@ApiModelProperty(value = "计划总箱数")
	@Column(value = "plan_total_pcs")
	private Long planTotalPcs;

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

	@ApiModelProperty(value = "计划总车数")
	@Column(value = "plan_total_vehicle_number")
	private Long planTotalVehicleNumber;

	@ApiModelProperty(value = "实际总车数")
	@Column(value = "actual_total_vehicle_number")
	private Long actualTotalVehicleNumber;

	@ApiModelProperty(value = "超限提交日期")
	@Column(value = "transfinite_commit_date")
	private Date transfiniteCommitDate;

	@ApiModelProperty(value = "超限说明")
	@Column(value = "transfinite_description")
	private String transfiniteDescription;

	@ApiModelProperty(value = "装车地点")
	@Column(value = "loading_location")
	private String loadingLocation;

	@ApiModelProperty(value = "待发运情况说明")
	@Column(value = "delivery_description")
	private String deliveryDescription;

	@ApiModelProperty(value = "产品名称,多个运单的产品名称,分隔组合")
	@Column(value = "product_name")
	private String productName;

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

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