package com.huaheng.pc.shipment.shipmentHeader.domain;

import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import lombok.Data;

@ApiModel(value = "com.huaheng.pc.shipment.shipmentHeader.domain.ShipmentHeader")
@Data
@TableName(value = "shipment_header")
public class ShipmentHeader implements Serializable {
    /**
     * 出库单内部号
     */
    @TableId(value = "id", type = IdType.AUTO)
    @ApiModelProperty(value = "出库单内部号")
    private Integer id;

    /**
     * 仓库
     */
    @TableField(value = "warehouseCode")
    @ApiModelProperty(value = "仓库")
    private String warehouseCode;

    /**
     * 货主
     */
    @TableField(value = "companyCode")
    @ApiModelProperty(value = "货主")
    private String companyCode;

//    /**
//     * 装载号
//     */
//    @TableField(value = "loadId")
//    @ApiModelProperty(value = "装载号")
//    private Integer loadId;

    /**
     * 出库单号
     */
    @TableField(value = "code")
    @ApiModelProperty(value = "出库单号")
    private String code;

    /**
     * erp订单号
     */
    @TableField(value = "referCode")
    @ApiModelProperty(value = "erp订单号")
    private String referCode;

    /**
     * erp订单类型
     */
    @TableField(value = "referCodeType")
    @ApiModelProperty(value = "erp订单类型")
    private String referCodeType;

    /**
     * erp订单内部号
     */
    @TableField(value = "referId")
    @ApiModelProperty(value = "erp订单内部号")
    private Integer referId;

    /**
     * 订单平台
     */
    @TableField(value = "referPlatform")
    @ApiModelProperty(value = "订单平台")
    private String referPlatform;

    /**
     * 主状态
     */
    @TableField(value = "firstStatus")
    @ApiModelProperty(value = "主状态")
    private Integer firstStatus;

    /**
     * 拖状态
     */
    @TableField(value = "lastStatus")
    @ApiModelProperty(value = "拖状态")
    private Integer lastStatus;

    /**
     * 出库单类型
     */
    @TableField(value = "shipmentType")
    @ApiModelProperty(value = "出库单类型")
    private String shipmentType;

    /**
     * 路线
     */
    @TableField(value = "route")
    @ApiModelProperty(value = "路线")
    private String route;

    /**
     * 客户编号
     */
    @TableField(value = "customerCode")
    @ApiModelProperty(value = "客户编号")
    private String customerCode;
    /**
     * 供应商编码
     */
    @TableField(value = "supplierCode")
    @ApiModelProperty(value = "供应商编码")
    private String supplierCode;

    /**
     * 客户名称
     */
    @TableField(value = "customerName")
    @ApiModelProperty(value = "客户名称")
    private String customerName;

    /**
     * 优先级
     */
    @TableField(value = "priority")
    @ApiModelProperty(value = "优先级")
    private Integer priority;

    /**
     * 要求到货时间
     */
    @TableField(value = "requestedDeliveryDate")
    @ApiModelProperty(value = "要求到货时间")
    private Date requestedDeliveryDate;

//    /**
//     * 要求到货类型
//     */
//    @TableField(value = "requestedDeliveryType")
//    @ApiModelProperty(value = "要求到货类型")
//    private String requestedDeliveryType;

    /**
     * 计划发车日期
     */
    @TableField(value = "scheduledShipDate")
    @ApiModelProperty(value = "计划发车日期")
    private Date scheduledShipDate;

    /**
     * 实际发车时间
     */
    @TableField(value = "actualShipDateTime")
    @ApiModelProperty(value = "实际发车时间")
    private Date actualShipDateTime;

    /**
     * 实际到货时间
     */
    @TableField(value = "actualDeliveryDate")
    @ApiModelProperty(value = "实际到货时间")
    private Date actualDeliveryDate;

    /**
     * 配送要求
     */
    @TableField(value = "deliveryNote")
    @ApiModelProperty(value = "配送要求")
    private String deliveryNote;

    /**
     * 失败原因
     */
    @TableField(value = "rejectionNote")
    @ApiModelProperty(value = "失败原因")
    private String rejectionNote;

    /**
     * 波次号
     */
    @TableField(value = "waveId")
    @ApiModelProperty(value = "波次号")
    private Integer waveId;

    /**
     * 发货月台
     */
    @TableField(value = "shipDock")
    @ApiModelProperty(value = "发货月台")
    private String shipDock;

    /**
     * 分配完成
     */
    @TableField(value = "allocateComplete")
    @ApiModelProperty(value = "分配完成")
    private Integer allocateComplete;

    /**
     * 总重量
     */
    @TableField(value = "totalWeight")
    @ApiModelProperty(value = "总重量")
    private BigDecimal totalWeight;

    /**
     * 总数量
     */
    @TableField(value = "totalQty")
    @ApiModelProperty(value = "总数量")
    private BigDecimal totalQty;

    /**
     * 总体积
     */
    @TableField(value = "totalVolume")
    @ApiModelProperty(value = "总体积")
    private BigDecimal totalVolume;

    /**
     * 总行数
     */
    @TableField(value = "totalLines")
    @ApiModelProperty(value = "总行数")
    private Integer totalLines;


    /**
     * 处理类型
     */
    @TableField(value = "processType")
    @ApiModelProperty(value = "处理类型")
    private String processType;

    /**
     * 上次波次号
     */
    @TableField(value = "lastWaveId")
    @ApiModelProperty(value = "上次波次号")
    private Integer lastWaveId;

    /**
     * 特征值
     */
    @TableField(value = "signValue")
    @ApiModelProperty(value = "特征值")
    private String signValue;

    /**
     * 承运人
     */
    @TableField(value = "carrierCode")
    @ApiModelProperty(value = "承运人")
    private String carrierCode;

    /**
     * 承运人服务商
     */
    @TableField(value = "carrierService")
    @ApiModelProperty(value = "承运人服务商")
    private String carrierService;

    /**
     * 订单备注
     */
    @TableField(value = "shipmentNote")
    @ApiModelProperty(value = "订单备注")
    private String shipmentNote;

    /**
     * 承运商编码
     */
    @TableField(value = "carrierServer")
    @ApiModelProperty(value = "承运商编码")
    private String carrierServer;

    /**
     * 承运商名称
     */
    @TableField(value = "carrierServerName")
    @ApiModelProperty(value = "承运商名称")
    private String carrierServerName;

    /**
     * 车牌号
     */
    @TableField(value = "plateNumber")
    @ApiModelProperty(value = "车牌号")
    private String plateNumber;

    /**
     * 车型
     */
    @TableField(value = "carModel")
    @ApiModelProperty(value = "车型")
    private String carModel;

    /**
     * 司机名称
     */
    @TableField(value = "driverName")
    @ApiModelProperty(value = "司机名称")
    private String driverName;

    /**
     * 司机联系方式
     */
    @TableField(value = "driverTel")
    @ApiModelProperty(value = "司机联系方式")
    private String driverTel;

    /**
     * 创建时间
     */
    @TableField(value = "created", fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private Date created;

    /**
     * 创建用户
     */
    @TableField(value = "createdBy", fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建用户")
    private String createdBy;

    /**
     * 创建时间
     */
    @TableField(value = "lastUpdated", fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "创建时间")
    private Date lastUpdated;

    /**
     * 更新用户
     */
    @TableField(value = "lastUpdatedBy", fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新用户")
    private String lastUpdatedBy;

    /**
     * 数据版本
     */
    @TableField(value = "version")
    @ApiModelProperty(value = "数据版本")
    private Integer version;

    /**
     * 自定义字段1
     */
    @TableField(value = "userDef1")
    @ApiModelProperty(value = "自定义字段1")
    private String userDef1;

    /**
     * 自定义字段2
     */
    @TableField(value = "userDef2")
    @ApiModelProperty(value = "自定义字段2")
    private String userDef2;

    /**
     * 自定义字段3
     */
    @TableField(value = "userDef3")
    @ApiModelProperty(value = "自定义字段3")
    private String userDef3;

//    /**
//     * 自定义字段4
//     */
//    @TableField(value = "userDef4")
//    @ApiModelProperty(value = "自定义字段4")
//    private String userDef4;
//
//    /**
//     * 自定义字段5
//     */
//    @TableField(value = "userDef5")
//    @ApiModelProperty(value = "自定义字段5")
//    private String userDef5;
//
//    /**
//     * 自定义字段6
//     */
//    @TableField(value = "userDef6")
//    @ApiModelProperty(value = "自定义字段6")
//    private String userDef6;
//
//    /**
//     * 自定义字段7
//     */
//    @TableField(value = "userDef7")
//    @ApiModelProperty(value = "自定义字段7")
//    private String userDef7;
//
//    /**
//     * 自定义字段8
//     */
//    @TableField(value = "userDef8")
//    @ApiModelProperty(value = "自定义字段8")
//    private String userDef8;

    /**
     * 处理标记
     */
    @TableField(value = "processStamp")
    @ApiModelProperty(value = "处理标记")
    private String processStamp;

    /**
     * 是否删除
     */
    @TableField(value = "deleted")
    @ApiModelProperty(value = "是否删除")
    private Boolean companyIddeleted;

    /** 删除标记 */
    private Boolean deleted;

    //private Integer warehouseId;
    /** 货主id */

    //private Integer companyId;
    /** 上游系统单号 */
    @TableField(value = "sourceCode")
    private String sourceCode;
    /** 上游平台 */
    @TableField(value = "sourcePlatform")
    private String sourcePlatform;
    ///** 出库单类型 */
    //private String type;
    ///** 客户编码 */
    //private String shipTo;
    ///** 客户编码 */
    //private String shipToName;
    /** 发货站台 */
    @TableField(value = "station")
    private String station;
    /** 备注 */
    @TableField(value = "remark")
    private String remark;
    /** 上传备注 */
    @TableField(value = "uploadremark")
    private String uploadremark;
    /** 上传时间 */
    @TableField(value = "uploadTime")
    private Date uploadTime;
    /** 发货预约时间 */
    @TableField(value = "appointmentTime")
    private Date appointmentTime;
    /** upload状态 */
    @TableField(value = "uploadStatus")
    private Integer uploadStatus;
    /** 是否有效 */
    @TableField(value = "enable")
    private Integer enable;
    /** 扫描标识 */
    @TableField(value = "scanid")
    private String scanid;
    /** 货主id组 */
    //private List<Integer> companyIdList;
    ///** 货主编码组 */
    //private List<String> companyCodeList;
    //@TableField(value = "companyName")
    //private String companyName;
    @TableField("uWarehouseCode")
    private String uWarehouseCode;
    @TableField(exist = false)
    private String uWarehouseName;
    //部门名称
    @TableField(value = "cDepName")
    private String cDepName;
    //部门编码
    @TableField(value = "deptCode")
    private String deptCode;
    @TableField(value = "recName")
    //收货人信息
    private String recName;
    @TableField(value = "recMobile")
    private String recMobile;
    @TableField(value = "recAddr")
    private String recAddr;
    @TableField(value = "recCompany")
    private String recCompany;

    //发货人信息
    @TableField(value = "sendName")
    private String sendName;
    @TableField(value = "sendMobile")
    private String sendMobile;
    @TableField(value = "sendAddr")
    private String sendAddr;
    @TableField(value = "sendCompany")
    private String sendCompany;

    //快递公司
    @TableField(value = "kuaidiCom")
    private String kuaidiCom;

    //快递单号
    @TableField(value = "trackCode")
    private String trackCode;
    /**
     * 是否寄快递 0 表示不快递 1 表示快递 默认为0
     */
    @TableField(value = "kdEable")
    private Integer kdEable;
    //private String materialCode;
    //private List<Integer> integers;
    //private String moCode;
    ////过期时间
    //private Integer days;

    /**
     * 回传信息
     */
    @TableField(value = "backMsg")
    private String backMsg;
}