package com.sunda.spmsoversea.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 海外仓交货单表
 * </p>
 *
 * @author Wayne
 * @since 2021-10-22
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("OVERSEA_DELIVERY_NOTE")
@ApiModel(value="OverseaDeliveryNote对象", description="海外仓交货单表")
public class OverseaDeliveryNote implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "交货单号uuid")
    @TableId("UUID_DELIVERY_NOTE")
    private String uuidDeliveryNote;

    @ApiModelProperty(value = "交货单号")
    @TableField("SAP_DELIVERY_NOTE")
    private String sapDeliveryNote;

    @ApiModelProperty(value = "装箱单号")
    @TableField("SAP_PACKAGE_LIST")
    private String sapPackageList;

    @ApiModelProperty(value = "货柜号")
    @TableField("CABINET_NUMBER")
    private String cabinetNumber;

    @ApiModelProperty(value = "交货类型")
    @TableField("DELIVERY_TYPE")
    private String deliveryType;

    @ApiModelProperty(value = "SPMS单据状态(默认0待到货;1收货中/SAP撤销;2提交OA成功/收货完成;3提交OA失败;4OA审批不通过;5OA审批通过/提交SAP失败;6提交SAP成功;7关闭;)")
    @TableField("SPMS_STATUS")
    private String spmsStatus;

    @ApiModelProperty(value = "收货工厂")
    @TableField("WERKS_RECEIVE")
    private String werksReceive;

    @ApiModelProperty(value = "发货工厂")
    @TableField("WERKS_DELIVERY")
    private String werksDelivery;

    @ApiModelProperty(value = "创建日期")
    @TableField("CREATE_DATE")
    private String createDate;

    @ApiModelProperty(value = "到货日期(第一次生成入库任务日期)")
    @TableField("ARRIVAL_DATE")
    private String arrivalDate;

    @ApiModelProperty(value = "SPMS备注信息")
    @TableField("REMARKS")
    private String remarks;

    @ApiModelProperty(value = "SPMS评论/预留")
    @TableField("COMMENTS")
    private String comments;

    @ApiModelProperty(value = "过账日期/少收提交SAP入库凭证")
    @TableField("POSTING_DATE")
    private String postingDate;

    @ApiModelProperty(value = "SAP凭证号/少收提交SAP入库凭证")
    @TableField("SAP_VOUCHER_NUMBER")
    private String sapVoucherNumber;

    @ApiModelProperty(value = "SAP凭证年份/少收提交SAP入库凭证")
    @TableField("SAP_VOUCHER_YEAR")
    private String sapVoucherYear;

    @ApiModelProperty(value = "撤销SAP过账日期/少收提交SAP入库凭证")
    @TableField("CANCEL_POSTING_DATE")
    private String cancelPostingDate;

    @ApiModelProperty(value = "撤销SAP凭证/少收提交SAP入库凭证")
    @TableField("CANCEL_VOUCHER_NUMBER")
    private String cancelVoucherNumber;

    @ApiModelProperty(value = "撤销SAP凭证年份/少收提交SAP入库凭证")
    @TableField("CANCEL_VOUCHER_YEAR")
    private String cancelVoucherYear;

    @ApiModelProperty(value = "SAP交货单抬头文本")
    @TableField("SAP_REMARK")
    private String sapRemark;

    @ApiModelProperty(value = "数据状态(默认0能被SAP更新数据；1禁止更新数据；)")
    @TableField("DATA_STATUS")
    private String dataStatus;

    @ApiModelProperty(value = "数据版本号")
    @TableField("DATA_VERSION")
    private Integer dataVersion;

    @ApiModelProperty(value = "创建时间")
    @TableField("CREATE_TIME")
    private Date createTime;

    @ApiModelProperty(value = "更新时间")
    @TableField("UPDATE_TIME")
    private Date updateTime;

    @ApiModelProperty(value = "实际收货工厂")
    @TableField("ACTUAL_WERKS_RECEIVE")
    private String actualWerksReceive;

    @ApiModelProperty(value = "OA流程编号")
    @TableField("OA_WORKFLOW")
    private String oaWorkflow;

    @ApiModelProperty(value = "OA单据编号")
    @TableField("OA_BIANHAO")
    private String oaBianhao;

    @ApiModelProperty(value = "提交OA审批备注")
    @TableField("OA_REMARK")
    private String oaRemark;

    @ApiModelProperty(value = "提交OA日期")
    @TableField("SUBMIT_OA_DATE")
    private String submitOaDate;

    @ApiModelProperty(value = "OA审批通过日期")
    @TableField("OA_APPROVAL_DATE")
    private String oaApprovalDate;

    @ApiModelProperty(value = "OA预留字段/存储SPMS生成提交OA流水单据号")
    @TableField("OA_FIELD")
    private String oaField;

    /** 考虑交货单多收少收凭证分开单独提交SAP，对应的凭证需新增字段记录信息 ———— 20211119 */

    @ApiModelProperty(value = "过账日期/少收凭证")
    @TableField("UNDER_POSTING_DATE")
    private String underPostingDate;

    @ApiModelProperty(value = "SAP凭证号/少收凭证")
    @TableField("UNDER_VOUCHER_NUMBER")
    private String underVoucherNumber;

    @ApiModelProperty(value = "SAP凭证年份/少收凭证")
    @TableField("UNDER_VOUCHER_YEAR")
    private String underVoucherYear;

    @ApiModelProperty(value = "撤销SAP过账日期/少收凭证")
    @TableField("CANCEL_UNDER_POSTING_DATE")
    private String cancelUnderPostingDate;

    @ApiModelProperty(value = "撤销SAP凭证/少收凭证")
    @TableField("CANCEL_UNDER_VOUCHER_NUMBER")
    private String cancelUnderVoucherNumber;

    @ApiModelProperty(value = "撤销SAP凭证年份/少收凭证")
    @TableField("CANCEL_UNDER_VOUCHER_YEAR")
    private String cancelUnderVoucherYear;

    @ApiModelProperty(value = "实际收货仓库(第一次拆出入库任务时写入)")
    @TableField("ACTUAL_WHS_LOCATION_CODE_RECEIVE")
    private String actualWhsLocationCodeReceive;

    @ApiModelProperty(value = "成本中心")
    @TableField("COST_CENTER")
    private String costCenter;
    
    @ApiModelProperty(value = "工厂类型")
    @TableField("FACTORY_TYPE")
    private String factoryType;
    
    @ApiModelProperty(value = "客户端")
    @TableField("MANDT")
    private String mandt;

    @ApiModelProperty(value = "对接OA的client")
    @TableField("OA_CLIENT")
    private String oaClient;

}
