package com.bailuntec.domain.entity;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
public class DcSemiOrder {
    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.id
     *
     * @mbg.generated
     */
    private Integer id;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.order_no
     *
     * @mbg.generated
     */
    private String orderNo;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.purchase_no
     *
     * @mbg.generated
     */
    private String purchaseNo;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.source
     *
     * @mbg.generated
     */
    private Integer source;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.create_date
     *
     * @mbg.generated
     */
    private LocalDateTime createDate;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.create_user_name
     *
     * @mbg.generated
     */
    private String createUserName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.deliver_date
     *
     * @mbg.generated
     */
    private LocalDateTime deliverDate;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.sale_user
     *
     * @mbg.generated
     */
    private String saleUser;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.purchase_user
     *
     * @mbg.generated
     */
    private String purchaseUser;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.type
     *
     * @mbg.generated
     */
    private Integer type;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.company_id
     *
     * @mbg.generated
     */
    private Integer companyId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.state
     *
     * @mbg.generated
     */
    private Integer state;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.delivery_state
     *
     * @mbg.generated
     */
    private Integer deliveryState;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.total
     *
     * @mbg.generated
     */
    private Integer total;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.init_deliver_date
     *
     * @mbg.generated
     */
    private LocalDateTime initDeliverDate;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.order_type
     *
     * @mbg.generated
     */
    private Integer orderType;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.delivery_remarks
     *
     * @mbg.generated
     */
    private String deliveryRemarks;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.packRemarks
     *
     * @mbg.generated
     */
    private String packremarks;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.pay_type
     *
     * @mbg.generated
     */
    private Integer payType;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.original_quantity
     *
     * @mbg.generated
     */
    private Integer originalQuantity;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.toal_cost_record
     *
     * @mbg.generated
     */
    private BigDecimal toalCostRecord;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.toal_price_record
     *
     * @mbg.generated
     */
    private BigDecimal toalPriceRecord;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.warehouse_id
     *
     * @mbg.generated
     */
    private Integer warehouseId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.last_update_date
     *
     * @mbg.generated
     */
    private LocalDateTime lastUpdateDate;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.sku_quantity
     *
     * @mbg.generated
     */
    private BigDecimal skuQuantity;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.sku_unit_cost
     *
     * @mbg.generated
     */
    private BigDecimal skuUnitCost;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.sku_unit_price
     *
     * @mbg.generated
     */
    private BigDecimal skuUnitPrice;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.sku
     *
     * @mbg.generated
     */
    private String sku;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.warehouse_name
     *
     * @mbg.generated
     */
    private String warehouseName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column dc_semi_order.semi_order_id
     *
     * @mbg.generated
     */
    @JSONField(name = "id")
    private Integer semiOrderId;

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_semi_order
     *
     * @mbg.generated
     */
    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", orderNo=").append(orderNo);
        sb.append(", purchaseNo=").append(purchaseNo);
        sb.append(", source=").append(source);
        sb.append(", createDate=").append(createDate);
        sb.append(", createUserName=").append(createUserName);
        sb.append(", deliverDate=").append(deliverDate);
        sb.append(", saleUser=").append(saleUser);
        sb.append(", purchaseUser=").append(purchaseUser);
        sb.append(", type=").append(type);
        sb.append(", companyId=").append(companyId);
        sb.append(", state=").append(state);
        sb.append(", deliveryState=").append(deliveryState);
        sb.append(", total=").append(total);
        sb.append(", initDeliverDate=").append(initDeliverDate);
        sb.append(", orderType=").append(orderType);
        sb.append(", deliveryRemarks=").append(deliveryRemarks);
        sb.append(", packremarks=").append(packremarks);
        sb.append(", payType=").append(payType);
        sb.append(", originalQuantity=").append(originalQuantity);
        sb.append(", toalCostRecord=").append(toalCostRecord);
        sb.append(", toalPriceRecord=").append(toalPriceRecord);
        sb.append(", warehouseId=").append(warehouseId);
        sb.append(", lastUpdateDate=").append(lastUpdateDate);
        sb.append(", skuQuantity=").append(skuQuantity);
        sb.append(", skuUnitCost=").append(skuUnitCost);
        sb.append(", skuUnitPrice=").append(skuUnitPrice);
        sb.append(", sku=").append(sku);
        sb.append(", warehouseName=").append(warehouseName);
        sb.append(", semiOrderId=").append(semiOrderId);
        sb.append("]");
        return sb.toString();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_semi_order
     *
     * @mbg.generated
     */
    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        DcSemiOrder other = (DcSemiOrder) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getOrderNo() == null ? other.getOrderNo() == null : this.getOrderNo().equals(other.getOrderNo()))
            && (this.getPurchaseNo() == null ? other.getPurchaseNo() == null : this.getPurchaseNo().equals(other.getPurchaseNo()))
            && (this.getSource() == null ? other.getSource() == null : this.getSource().equals(other.getSource()))
            && (this.getCreateDate() == null ? other.getCreateDate() == null : this.getCreateDate().equals(other.getCreateDate()))
            && (this.getCreateUserName() == null ? other.getCreateUserName() == null : this.getCreateUserName().equals(other.getCreateUserName()))
            && (this.getDeliverDate() == null ? other.getDeliverDate() == null : this.getDeliverDate().equals(other.getDeliverDate()))
            && (this.getSaleUser() == null ? other.getSaleUser() == null : this.getSaleUser().equals(other.getSaleUser()))
            && (this.getPurchaseUser() == null ? other.getPurchaseUser() == null : this.getPurchaseUser().equals(other.getPurchaseUser()))
            && (this.getType() == null ? other.getType() == null : this.getType().equals(other.getType()))
            && (this.getCompanyId() == null ? other.getCompanyId() == null : this.getCompanyId().equals(other.getCompanyId()))
            && (this.getState() == null ? other.getState() == null : this.getState().equals(other.getState()))
            && (this.getDeliveryState() == null ? other.getDeliveryState() == null : this.getDeliveryState().equals(other.getDeliveryState()))
            && (this.getTotal() == null ? other.getTotal() == null : this.getTotal().equals(other.getTotal()))
            && (this.getInitDeliverDate() == null ? other.getInitDeliverDate() == null : this.getInitDeliverDate().equals(other.getInitDeliverDate()))
            && (this.getOrderType() == null ? other.getOrderType() == null : this.getOrderType().equals(other.getOrderType()))
            && (this.getDeliveryRemarks() == null ? other.getDeliveryRemarks() == null : this.getDeliveryRemarks().equals(other.getDeliveryRemarks()))
            && (this.getPackremarks() == null ? other.getPackremarks() == null : this.getPackremarks().equals(other.getPackremarks()))
            && (this.getPayType() == null ? other.getPayType() == null : this.getPayType().equals(other.getPayType()))
            && (this.getOriginalQuantity() == null ? other.getOriginalQuantity() == null : this.getOriginalQuantity().equals(other.getOriginalQuantity()))
            && (this.getToalCostRecord() == null ? other.getToalCostRecord() == null : this.getToalCostRecord().equals(other.getToalCostRecord()))
            && (this.getToalPriceRecord() == null ? other.getToalPriceRecord() == null : this.getToalPriceRecord().equals(other.getToalPriceRecord()))
            && (this.getWarehouseId() == null ? other.getWarehouseId() == null : this.getWarehouseId().equals(other.getWarehouseId()))
            && (this.getLastUpdateDate() == null ? other.getLastUpdateDate() == null : this.getLastUpdateDate().equals(other.getLastUpdateDate()))
            && (this.getSkuQuantity() == null ? other.getSkuQuantity() == null : this.getSkuQuantity().equals(other.getSkuQuantity()))
            && (this.getSkuUnitCost() == null ? other.getSkuUnitCost() == null : this.getSkuUnitCost().equals(other.getSkuUnitCost()))
            && (this.getSkuUnitPrice() == null ? other.getSkuUnitPrice() == null : this.getSkuUnitPrice().equals(other.getSkuUnitPrice()))
            && (this.getSku() == null ? other.getSku() == null : this.getSku().equals(other.getSku()))
            && (this.getWarehouseName() == null ? other.getWarehouseName() == null : this.getWarehouseName().equals(other.getWarehouseName()))
            && (this.getSemiOrderId() == null ? other.getSemiOrderId() == null : this.getSemiOrderId().equals(other.getSemiOrderId()));
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table dc_semi_order
     *
     * @mbg.generated
     */
    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getOrderNo() == null) ? 0 : getOrderNo().hashCode());
        result = prime * result + ((getPurchaseNo() == null) ? 0 : getPurchaseNo().hashCode());
        result = prime * result + ((getSource() == null) ? 0 : getSource().hashCode());
        result = prime * result + ((getCreateDate() == null) ? 0 : getCreateDate().hashCode());
        result = prime * result + ((getCreateUserName() == null) ? 0 : getCreateUserName().hashCode());
        result = prime * result + ((getDeliverDate() == null) ? 0 : getDeliverDate().hashCode());
        result = prime * result + ((getSaleUser() == null) ? 0 : getSaleUser().hashCode());
        result = prime * result + ((getPurchaseUser() == null) ? 0 : getPurchaseUser().hashCode());
        result = prime * result + ((getType() == null) ? 0 : getType().hashCode());
        result = prime * result + ((getCompanyId() == null) ? 0 : getCompanyId().hashCode());
        result = prime * result + ((getState() == null) ? 0 : getState().hashCode());
        result = prime * result + ((getDeliveryState() == null) ? 0 : getDeliveryState().hashCode());
        result = prime * result + ((getTotal() == null) ? 0 : getTotal().hashCode());
        result = prime * result + ((getInitDeliverDate() == null) ? 0 : getInitDeliverDate().hashCode());
        result = prime * result + ((getOrderType() == null) ? 0 : getOrderType().hashCode());
        result = prime * result + ((getDeliveryRemarks() == null) ? 0 : getDeliveryRemarks().hashCode());
        result = prime * result + ((getPackremarks() == null) ? 0 : getPackremarks().hashCode());
        result = prime * result + ((getPayType() == null) ? 0 : getPayType().hashCode());
        result = prime * result + ((getOriginalQuantity() == null) ? 0 : getOriginalQuantity().hashCode());
        result = prime * result + ((getToalCostRecord() == null) ? 0 : getToalCostRecord().hashCode());
        result = prime * result + ((getToalPriceRecord() == null) ? 0 : getToalPriceRecord().hashCode());
        result = prime * result + ((getWarehouseId() == null) ? 0 : getWarehouseId().hashCode());
        result = prime * result + ((getLastUpdateDate() == null) ? 0 : getLastUpdateDate().hashCode());
        result = prime * result + ((getSkuQuantity() == null) ? 0 : getSkuQuantity().hashCode());
        result = prime * result + ((getSkuUnitCost() == null) ? 0 : getSkuUnitCost().hashCode());
        result = prime * result + ((getSkuUnitPrice() == null) ? 0 : getSkuUnitPrice().hashCode());
        result = prime * result + ((getSku() == null) ? 0 : getSku().hashCode());
        result = prime * result + ((getWarehouseName() == null) ? 0 : getWarehouseName().hashCode());
        result = prime * result + ((getSemiOrderId() == null) ? 0 : getSemiOrderId().hashCode());
        return result;
    }
}