package com.pj.project.tb_logistics;

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

import com.baomidou.mybatisplus.annotation.*;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.EqualsAndHashCode;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * Model: tb_logistics -- 物流订单表
 * @author qzy
 */
@Data
@Accessors(chain = true)
@TableName(TbLogistics.TABLE_NAME)
@EqualsAndHashCode(callSuper = false)
public class TbLogistics extends Model<TbLogistics> implements Serializable {

	// ---------- 模块常量 ----------
	/**
	 * 序列化版本id
	 */
	private static final long serialVersionUID = 1L;
	/**
	 * 此模块对应的表名
	 */
	public static final String TABLE_NAME = "tb_logistics";
	/**
	 * 此模块对应的权限码
	 */
	public static final String PERMISSION_CODE = "tb-logistics";
	public static final String PERMISSION_CODE_ADD = "tb-logistics-add";
	public static final String PERMISSION_CODE_EDIT = "tb-logistics-edit";
	public static final String PERMISSION_CODE_DEL = "tb-logistics-del";




	// ---------- 表中字段 ----------
	/**
	 * 物流订单表主键
	 */
	@TableId(type = IdType.AUTO)
	private Long id;

	/**
	 * 订单表ID ---- 当前主键id为物流订单表id，故去掉此字段
	 */
	/*private Long ordersId;*/

	/**
	 * 订单编号
	 */
	private String orderNo;

	/**
	 * 一级市场订单ID
	 */
	private Long levelOneOrderId;

	/**
	 * 二级市场订单ID
	 */
	private Long levelTwoOrderId;

	/**
	 * 贸易区域id
	 */
	private Integer tradeAreaId;

	/**
	 * 贸易区域名称
	 */
	private String tradeAreaName;

	/**
	 * 装货地址
	 */
	private String loadingAddress;

	/**
	 * 卸货地址
	 */
	private String unloadingAddress;

	/**
	 * 备注
	 */
	private String comment;

	/**
	 * 司机ID
	 */
	private Long driverId;

	/**
	 * 司机名称
	 */
	private String driverName;

	/**
	 * 司机电话
	 */
	private String driverPhone;

	/**
	 * 车辆ID
	 */
	private Long vehicleId;

	/**
	 * 车牌号
	 */
	private String vehiclePlate;

	/**
	 * 车辆类型
	 */
	private Integer vehicleType;

	/**
	 * (预留字段) 申报订单号
	 */
	private String declarationNumber;

	/**
	 * 订单待司机确认(0=待确认,1=订单已确认,2=订单确认失败)
	 */
	private Integer prepare;

	/**
	 * 订单确认时间
	 */
	private Date prepareTime;

	/**
	 * 待装货(0=待装货,1=已装货)
	 */
	private Integer loading;

	/**
	 * 已装货时间
	 */
	private Date loadingTime;

	/**
	 * 发货(0=未发,1=已发)
	 */
	private Integer delivery;

	/**
	 * 发货时间
	 */
	private Date deliveryTime;

	/**
	 * 已出海关(0=禁用,1=启用)
	 */
	private Integer clearedCustom;

	/**
	 * 出海关时间
	 */
	private Date clearedCustomTime;

	/**
	 * 接货人确定接货(0=禁用,1=启用)
	 */
	private Integer makeCargo;

	/**
	 * 接货完成时间
	 */
	private Date makeCargoTime;

	/**
	 * 收购商确认(0=禁用,1=启用)
	 */
	private Integer confirmReceipt;

	/**
	 * 收货方确认时间(相当于订单完成时间)
	 */
	private Date confirmReceiptTime;

	/**
	 * 订单完成状态 (0=未完成,1=已完成)
	 */
	private Integer orderFinish;

	/**
	 * 创建时间
	 */
	@JsonFormat(pattern = "yyyy-MM-dd")
	private Date createTime;

	/**
	 * 创建人编号
	 */
	private Long createBy;

	/**
	 * 创建人名称
	 */
	private String createName;

	/**
	 * 更新时间
	 */
	private Date updateTime;

	/**
	 * 更新人编号
	 */
	private String updateBy;

	/**
	 * 更新人名称
	 */
	private String updateName;

	/**
	 * 删除状态(0=禁用,1=启用)
	 */
	private Integer deleteStatus;



}
