package com.prolog.rdc.tms.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;

/**
 *
 * 容器业务单汇总
 *
 * @className    :TmsContainerBillHeaderModel
 * @author       :fanzw
 * @date         :2023/6/8
 * @description  :
 *
 * @version      :1.2.1
 *
 */
@Data
@Table("tms_container_bill_header")
public class TmsContainerBillHeaderModel implements Serializable {

	private static final long serialVersionUID = -1091538842640665663L;

	@Id
	@ApiModelProperty(value = "容器业务单号")
	@Column(value = "container_bill_no")
	private String containerBillNo;

	@ApiModelProperty(value = "容器业务单类型：CONTAINER_BILL_TYPE:1容器随车单 2容器归还单")
	@Column(value = "container_bill_type")
	private Integer containerBillType;

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

	@ApiModelProperty(value = "发货方类型 数据字典SHIPPER_TYPE:1客户 2仓库 3供应商")
	@Column(value = "shipper_type")
	private Integer shipperType;

	@ApiModelProperty(value = "发货方单位ID")
	@Column(value = "shipper_unit_id")
	private Long shipperUnitId;

	@ApiModelProperty(value = "发货方单位编码")
	@Column(value = "shipper_unit_code")
	private String shipperUnitCode;

	@ApiModelProperty(value = "发货方单位名称")
	@Column(value = "shipper_unit_name")
	private String shipperUnitName;

	@ApiModelProperty(value = "发货方ID")
	@Column(value = "shipper_id")
	private Long shipperId;

	@ApiModelProperty(value = "发货方编码")
	@Column(value = "shipper_code")
	private String shipperCode;

	@ApiModelProperty(value = "发货方名称")
	@Column(value = "shipper_name")
	private String shipperName;

	@ApiModelProperty(value = "发货方联系人")
	@Column(value = "shipper_contact")
	private String shipperContact;

	@ApiModelProperty(value = "发货方手机号")
	@Column(value = "shipper_phone_number")
	private String shipperPhoneNumber;

	@ApiModelProperty(value = "发货方详细地址")
	@Column(value = "shipper_address")
	private String shipperAddress;

	@ApiModelProperty(value = "收货方类型 数据字典CONSIGNEE_TYPE:1客户 2仓库 3供应商")
	@Column(value = "consignee_type")
	private Integer consigneeType;

	@ApiModelProperty(value = "收货方单位ID")
	@Column(value = "consignee_unit_id")
	private Long consigneeUnitId;

	@ApiModelProperty(value = "收货方单位编码")
	@Column(value = "consignee_unit_code")
	private String consigneeUnitCode;

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

	@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 = "收货方联系人")
	@Column(value = "consignee_contact")
	private String consigneeContact;

	@ApiModelProperty(value = "收货方手机号")
	@Column(value = "consignee_phone_number")
	private String consigneePhoneNumber;

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

	@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_plate_number")
	private String vehiclePlateNumber;

	@ApiModelProperty(value = "容器数量")
	@Column(value = "containers_number")
	private BigDecimal containersNumber;

	@ApiModelProperty(value = "托盘数量")
	@Column(value = "pallets_number")
	private BigDecimal palletsNumber;

	@ApiModelProperty(value = "周转箱数量")
	@Column(value = "totes_number")
	private BigDecimal totesNumber;

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

	@ApiModelProperty(value = "异常状态 数据字典CONTAINER_BILL_ABNORMAL_STATUS：0正常 1异常")
	@Column(value = "abnormal_status")
	private Integer abnormalStatus;

	@ApiModelProperty(value = "状态 数据字典CONTAINER_BILL_STATUS:0 取消 1在途 2在店 3归还 4回途 5已送达 6到仓")
	@Column(value = "status")
	private Integer status;

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

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


}
