package com.jwipc.order.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 送货单管理
 * </p>
 *
 * @author zhangjie
 * @since 2024-03-06
 */
@Getter
@Setter
@TableName("t_delivery_order")
public class DeliveryOrder implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 送货单代码，统一由sap生成
     */
    private String orderCode;

    /**
     * 预约单号
     */
    private String appointmentCode;

    /**
     * 送货单类型 1-材料送货单 2-OEM送货单
     */
    private Integer deliverType;

    /**
     * 供应商编码，t_supplier.supplier_erp_code
     */
    private String supplierErpCode;

    /**
     * 供应商名称，t_supplier.supplier_name
     */
    private String supplierName;

    /**
     * 送货日期
     */
    private String deliveryDate;

    /**
     * 公司代码, basis_company.company_code
     */
    private String companyCode;

    /**
     * 公司名称
     */
    private String companyName;

    /**
     * dockerCode 预约配置的卸货地点编号
     */
    private String dockerCode;
    /**
     * 工厂 t_factory.code
     */
    private String factoryCode;

    /**
     * 工厂名称
     */
    private String factoryName;

    /**
     * 库存地点 basis_stock_location.location_code
     */
    private String stockCode;

    /**
     * 库存地点名称
     */
    private String stockName;

    /**
     * 收货人名称
     */
    private String receiverName;

    /**
     * 收货人电话
     */
    private String receiverPhone;

    /**
     * 收货地址描述
     */
    private String receiverAddress;

    /**
     * 车辆SAP编码
     */
    private String vehicleErpCode;

    /**
     * 车辆牌照号
     */
    private String vehicleNo;

    /**
     * 车辆描述
     */
    private String vehicleName;

    /**
     * 车辆最大载重
     */
    private String vehicleMaxWeight;

    /**
     * 车辆最大体积
     */
    private String vehicleMaxVolume;

    /**
     *  1-新建  2-已发货 3- 已完成 4- 待审批 5- 审批不通过 6- 待发货',
     */
    private Integer state;

    /**
     * 1 未同步 2 已同步 3 部分同步 4 同步失败
     */
    private Integer syncState;

    /**
     * 同步返回信息
     */
    private String syncMsg;

    private Long createId;

    /**
     * 创建或同步时间
     */
    private LocalDateTime createTime;

    private Long updateId;

    private LocalDateTime updateTime;
    private LocalDateTime complateTime;

    /**
     * 1-删除
     */
    private Integer delFlag;

    /**
     * 备注
     */
    private String remark;

    /**
     * 收货方代码
     */
    private String receivingCode;

    /**
     * 收货方名称
     */
    private String receivingName;

    /**
     * 收货方地址
     */
    private String receivingAddress;

    /**
     * 审批人
     */
    private String approver;

    /**
     * SRM送货单号
     */
    private String orderSrmCode;

    /**
     * 物流公司代码
     */
    private String expressCode;

    /**
     * 物流单号
     */
    private String expressNo;

    /**
     * 发货人
     */
    private String consigner;

    /**
     * 发货人联系电话
     */
    private String phone;

    /**
     * 预计到货日期
     */
    private LocalDateTime planDeliveryDate;

    /**
     * 厂区
     */
    private String factoryArea;

    /**
     * 送货方式1:送货;2:快递/物流;3:自提
     */
    private Integer directShipment;

    /**
     * 是否二次检验:1 是；0 否
     */
    private Integer secondInspection;
    /**
     * 打印锁定标识 0未锁定 1锁定
     */
    private Integer printLock;
    /**
     * 解锁人
     */
    private String unlockUser;
    /**
     * 是否紧急标识 0否 1是
     */
    private Integer urgencyFlag;

    /**
     * 紧急放行操作人
     */
    private String urgencyUseName;
    /**
     * 采购组, t_purchase_group.purchase_group_code
     */
    private String purchaseGroupCode;
    /**
     * 采购组
     */
    private String purchaseGroupName;

    /**
     * 供应商是否可见
     */
    private Integer supplierVisible;

    /**
     * 退料仓位
     */
    private String returnLocation;

    /**
     * 委托单号
     */
    private String entrustNo;

    /**
     * 交货单推送状态；0-未推送；1-无需推送；2-推送成功；3-推送失败
     */
    private Integer shipmentSapStatus;

    /**
     * 交货单推送信息
     */
    private String shipmentSapMsg;
    /**
     * 退货确认状态；0-空；1-未确认；2-确认
     */
    private Integer returnConfirmStatus;
    /**
     * 凭证过账日期 (凭证过账日期)
     */
    private LocalDateTime mvPostDate;
}
