package com.sunda.spmsorder.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-05-21
 */
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("MATERIAL_APPLICATION")
@ApiModel(value="MaterialApplication对象", description="物料申请单表表头")
public class MaterialApplication implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "物料申请单uuid")
    @TableId("APPLICATION_UUID")
    private String applicationUuid;

    @ApiModelProperty(value = "物料申请单号（工厂+车间+序列号）")
    @TableField("APPLICATION_ID")
    private String applicationId;

    @ApiModelProperty(value = "用户工号")
    @TableField("USER_ID")
    private String userId;

    @ApiModelProperty(value = "工厂代码")
    @TableField("WERKS")
    private String werks;

    @ApiModelProperty(value = "车间代码（申请部门）")
    @TableField("WORKSHOP_CODE")
    private String workshopCode;

    @ApiModelProperty(value = "申请类型（1-增补物料；2-修改物料信息）")
    @TableField("APPLICATION_TYPE")
    private String applicationType;

    @ApiModelProperty(value = "物料申请单状态（0-删除；1-保存；2-提交OA成功；3-提交OA失败；4-OA审批通过；5-OA审批不通过；6-完成）")
    @TableField("SPMS_STATUS")
    private String spmsStatus;

    @ApiModelProperty(value = "备注信息")
    @TableField("REMARKS")
    private String remarks;

    @ApiModelProperty(value = "申请日期")
    @TableField("APPLICATION_DATE")
    private String applicationDate;

    @ApiModelProperty(value = "创建时间")
    @TableField("CREATE_TIME")
    private Date createTime;

    @ApiModelProperty(value = "更新时间，自动生成")
    @TableField("UPDATE_TIME")
    private Date updateTime;

    @ApiModelProperty(value = "备件类别（0建材专属；1快消专属；2五金专属；3通用专属；4非备件类）")
    @TableField("CPX")
    private String cpx;

    @ApiModelProperty(value = "提交OA返回的编号")
    @TableField("OA_BIANHAO")
    private String oaBianhao;

    @ApiModelProperty(value = "OA流水号")
    @TableField("OA_ORDER_NO")
    private String oaOrderNo;

    @ApiModelProperty(value = "OA审批通过日期yyyy-MM-dd")
    @TableField("OA_APPROVAL_DATE")
    private String oaApprovalDate;

    @ApiModelProperty(value= "物料工程师工号")
    @TableField("REVIEWER_WORK_CODE")
    private String reviewId;

    @ApiModelProperty(value = "创建时间")
    @TableField("OA_SUBMIT_DATE")
    private Date oaDate;
    
    @ApiModelProperty(value= "采购地点：0中国，2海外")
    @TableField("PURCHASE_LOCATION")
    private String purchaseLocation;

    @ApiModelProperty(value = "对接OA的client")
    @TableField("OA_CLIENT")
    private String oaClient;

    public String getOaClient() {
        return oaClient;
    }

    public void setOaClient(String oaClient) {
        this.oaClient = oaClient;
    }

    public Date getOaDate() {
        return oaDate;
    }

    public void setOaDate(Date oaDate) {
        this.oaDate = oaDate;
    }

    public String getReviewId() {
        return reviewId;
    }

    public void setReviewId(String reviewId) {
        this.reviewId = reviewId;
    }

    public static long getSerialVersionUID() {
        return serialVersionUID;
    }

    public String getApplicationUuid() {
        return applicationUuid;
    }

    public void setApplicationUuid(String applicationUuid) {
        this.applicationUuid = applicationUuid;
    }

    public String getApplicationId() {
        return applicationId;
    }

    public void setApplicationId(String applicationId) {
        this.applicationId = applicationId;
    }

    public String getUserId() {
        return userId;
    }

    public void setUserId(String userId) {
        this.userId = userId;
    }

    public String getWerks() {
        return werks;
    }

    public void setWerks(String werks) {
        this.werks = werks;
    }

    public String getWorkshopCode() {
        return workshopCode;
    }

    public void setWorkshopCode(String workshopCode) {
        this.workshopCode = workshopCode;
    }

    public String getApplicationType() {
        return applicationType;
    }

    public void setApplicationType(String applicationType) {
        this.applicationType = applicationType;
    }

    public String getSpmsStatus() {
        return spmsStatus;
    }

    public void setSpmsStatus(String spmsStatus) {
        this.spmsStatus = spmsStatus;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getApplicationDate() {
        return applicationDate;
    }

    public void setApplicationDate(String applicationDate) {
        this.applicationDate = applicationDate;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getCpx() {
        return cpx;
    }

    public void setCpx(String cpx) {
        this.cpx = cpx;
    }

    public String getOaBianhao() {
        return oaBianhao;
    }

    public void setOaBianhao(String oaBianhao) {
        this.oaBianhao = oaBianhao;
    }

    public String getOaOrderNo() {
        return oaOrderNo;
    }

    public void setOaOrderNo(String oaOrderNo) {
        this.oaOrderNo = oaOrderNo;
    }

    public String getOaApprovalDate() {
        return oaApprovalDate;
    }

    public void setOaApprovalDate(String oaApprovalDate) {
        this.oaApprovalDate = oaApprovalDate;
    }
}
