package com.prolog.cs.biz.outbound.model.entity;

import com.prolog.cs.biz.outbound.model.BILL_STATUS;
import com.prolog.framework.bz.core.model.BaseModel;
import com.prolog.framework.core.annotation.Column;
import com.prolog.framework.core.annotation.Id;
import com.prolog.framework.core.annotation.Ignore;
import com.prolog.framework.core.annotation.Table;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

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

import static com.prolog.framework.core.annotation.Column.JdbcType_DATE;

/**
 * @Description 波次订单表
 * @Date 2021-03-25
 */

@ApiModel
@Table(value = "wms_wave_bill", camelToUnderline = true)
public class WaveBillDO extends BaseModel implements Serializable {
    private static final long serialVersionUID = 3830960794430572094L;
    @Id
    @Column(value = "id")
    private String id;

    @Column(value = "code")
    private String code;

    @ApiModelProperty(value = "波次ID")
    @Column(value = "wave_id")
    private String waveId;

    @ApiModelProperty(value = "波次订单分组ID")
    @Column(value = "wave_bill_group_id")
    private String waveBillGroupId;

    @ApiModelProperty(value = "仓库id")
    @Column(value = "warehouse_id")
    private String warehouseId;

    @ApiModelProperty(value = "来源单ID")
    @Column(value = "src_id")
    private String srcId;

    @ApiModelProperty(value = "来源单编码")
    @Column(value = "src_Code")
    private String srcCode;

    @ApiModelProperty(value = "状态")
    @Column(value = "status")
    private BILL_STATUS status;

    @ApiModelProperty(value = "来源单类型")
    @Column(value = "type")
    private String type;

    @ApiModelProperty(value = "货主ID")
    @Column(value = "consignor_id")
    private String consignorId;

    @ApiModelProperty(value = "收货单位(客户)类型")
    @Column(value = "shipper_type")
    private String shipperType;

    @ApiModelProperty(value = "收货单位(客户)编码")
    @Column(value = "shipper_code")
    private String shipperCode;

    @ApiModelProperty(value = "收货单位(客户)名称")
    @Column(value = "shipper_name")
    private String shipperName;

    @ApiModelProperty(value = "收货单位(客户)id")
    @Column(value = "shipper_id")
    private String shipperId;

    @ApiModelProperty(value = "收货联系人")
    @Column(value = "contact_name")
    private String contactName;

    @ApiModelProperty(value = "收货联系人电话")
    @Column(value = "contact_tel")
    private String contactTel;

    @ApiModelProperty(value = "收货地址")
    @Column(value = "receive_address")
    private String receiveAddress;

    @ApiModelProperty(value = "收货方式")
    @Column(value = "receive_way")
    private String receiveWay;

    @ApiModelProperty(value = "运输路线ID")
    @Column(value = "ship_line_id")
    private String shipLineId;

    @ApiModelProperty(value = "预定到货日")
    @Column(value = "attain_date",jdbcType =JdbcType_DATE )
    private Date attainDate;

    @ApiModelProperty(value = "物流商名称")
    @Column(value = "carrier_name")
    private String carrierName;

    @ApiModelProperty(value = "订单紧急等级")
    @Column(value = "priority")
    private Integer priority;

    @ApiModelProperty(value = "错误原因")
    @Column(value = "error_msg")
    private String errorMsg;

    @ApiModelProperty(value = "总体积")
    @Column(value = "total_volume")
    private BigDecimal totalVolume;

    @ApiModelProperty(value = "总体积")
    @Column(value = "total_weight")
    private BigDecimal totalWeight;

    @ApiModelProperty(value = "总件数")
    @Column(value = "total_pcs")
    private BigDecimal totalPcs;

    @ApiModelProperty(value = "总数量")
    @Column(value = "total_qty")
    private BigDecimal totalQty;

    @Column(value = "sale_branch_name")
    @ApiModelProperty(value = "要货部门")
    private String saleBranchName;

    @Column(value = "BILL_GROUP_ID")
    @ApiModelProperty(value = "订单合并后的新id")
    private String billGroupId;

    @Column(value = "payment_day_type")
    @ApiModelProperty(value = "账期类型")
    private String paymentDayType;

    @Column(value = "is_merged")
    @ApiModelProperty(value = "是否合单0,没有合并，1 合并过的订单，2合并后的订单")
    private Integer isMerged;

    @Ignore
    @ApiModelProperty(value = "是否急单")
//    @Column(value = "is_emergency")
    private Integer isEmergency;

    @Column(value = "CREATE_BY")
    @ApiModelProperty(value = "业务员")
    private String createBy;

    @Column(value = "REMARK")
    @ApiModelProperty(value = "备注")
    private String remark;

    @Column(value = "SALES_PERSON_NAME")
    @ApiModelProperty(value = "销售员/业务员编码")
    private String salesPersonName;

    @ApiModelProperty(value = "货主名称")
    @Column(value = "CONSIGNOR_NAME")
    private String consignorName;

    public String getConsignorName() {
        return consignorName;
    }

    public void setConsignorName(String consignorName) {
        this.consignorName = consignorName;
    }

    public String getSalesPersonName() {
        return salesPersonName;
    }

    public void setSalesPersonName(String salesPersonName) {
        this.salesPersonName = salesPersonName;
    }

    public Integer getIsEmergency() {
        return isEmergency;
    }

    public void setIsEmergency(Integer isEmergency) {
        this.isEmergency = isEmergency;
    }

    public String getCreateBy() {
        return createBy;
    }

    public void setCreateBy(String createBy) {
        this.createBy = createBy;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public Integer getIsMerged() {
        return isMerged;
    }

    public void setIsMerged(Integer isMerged) {
        this.isMerged = isMerged;
    }

    public String getPaymentDayType() {
        return paymentDayType;
    }

    public void setPaymentDayType(String paymentDayType) {
        this.paymentDayType = paymentDayType;
    }

    public String getBillGroupId() {
        return billGroupId;
    }

    public void setBillGroupId(String billGroupId) {
        this.billGroupId = billGroupId;
    }

    public String getSaleBranchName() {
        return saleBranchName;
    }

    public void setSaleBranchName(String saleBranchName) {
        this.saleBranchName = saleBranchName;
    }

    public BigDecimal getTotalVolume() {
        return totalVolume;
    }

    public void setTotalVolume(BigDecimal totalVolume) {
        this.totalVolume = totalVolume;
    }

    public BigDecimal getTotalWeight() {
        return totalWeight;
    }

    public void setTotalWeight(BigDecimal totalWeight) {
        this.totalWeight = totalWeight;
    }

    public BigDecimal getTotalPcs() {
        return totalPcs;
    }

    public void setTotalPcs(BigDecimal totalPcs) {
        this.totalPcs = totalPcs;
    }

    public BigDecimal getTotalQty() {
        return totalQty;
    }

    public void setTotalQty(BigDecimal totalQty) {
        this.totalQty = totalQty;
    }

    public String getWarehouseId() {
        return warehouseId;
    }

    public void setWarehouseId(String warehouseId) {
        this.warehouseId = warehouseId;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getWaveId() {
        return waveId;
    }

    public void setWaveId(String waveId) {
        this.waveId = waveId;
    }

    public String getWaveBillGroupId() {
        return waveBillGroupId;
    }

    public void setWaveBillGroupId(String waveBillGroupId) {
        this.waveBillGroupId = waveBillGroupId;
    }

    public String getSrcId() {
        return srcId;
    }

    public void setSrcId(String srcId) {
        this.srcId = srcId;
    }

    public String getSrcCode() {
        return srcCode;
    }

    public void setSrcCode(String srcCode) {
        this.srcCode = srcCode;
    }

    public BILL_STATUS getStatus() {
        return status;
    }

    public void setStatus(BILL_STATUS status) {
        this.status = status;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getConsignorId() {
        return consignorId;
    }

    public void setConsignorId(String consignorId) {
        this.consignorId = consignorId;
    }

    public String getShipperType() {
        return shipperType;
    }

    public void setShipperType(String shipperType) {
        this.shipperType = shipperType;
    }

    public String getShipperCode() {
        return shipperCode;
    }

    public void setShipperCode(String shipperCode) {
        this.shipperCode = shipperCode;
    }

    public String getShipperName() {
        return shipperName;
    }

    public void setShipperName(String shipperName) {
        this.shipperName = shipperName;
    }

    public String getShipperId() {
        return shipperId;
    }

    public void setShipperId(String shipperId) {
        this.shipperId = shipperId;
    }

    public String getContactName() {
        return contactName;
    }

    public void setContactName(String contactName) {
        this.contactName = contactName;
    }

    public String getContactTel() {
        return contactTel;
    }

    public void setContactTel(String contactTel) {
        this.contactTel = contactTel;
    }

    public String getReceiveAddress() {
        return receiveAddress;
    }

    public void setReceiveAddress(String receiveAddress) {
        this.receiveAddress = receiveAddress;
    }

    public String getReceiveWay() {
        return receiveWay;
    }

    public void setReceiveWay(String receiveWay) {
        this.receiveWay = receiveWay;
    }

    public String getShipLineId() {
        return shipLineId;
    }

    public void setShipLineId(String shipLineId) {
        this.shipLineId = shipLineId;
    }

    public Date getAttainDate() {
        return attainDate;
    }

    public void setAttainDate(Date attainDate) {
        this.attainDate = attainDate;
    }

    public String getCarrierName() {
        return carrierName;
    }

    public void setCarrierName(String carrierName) {
        this.carrierName = carrierName;
    }

    public Integer getPriority() {
        return priority;
    }

    public void setPriority(Integer priority) {
        this.priority = priority;
    }

    public String getErrorMsg() {
        return errorMsg;
    }

    public void setErrorMsg(String errorMsg) {
        this.errorMsg = errorMsg;
    }
}
