package com.dgtly.order.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.dgtly.common.annotation.Excel;
import com.dgtly.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import java.util.Date;

/**
 * 订单基础 对象 sales_order_base
 *
 * @author dgtly
 * @date 2023-05-23
 */
public class SalesOrderBase extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** id */
    private String id;

    /** 是否删除 */
//    @Excel(name = "是否删除")
    private String isDelete;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNumber;

    /** 订单生成时间 */
//    @Excel(name = "订单生成时间")
    private String orderCreationTime;

    /** 确认人 */
    @Excel(name = "操作用户")
    private String confirmBy;

    /** 期望到货时间 */
    @Excel(name = "确认要货时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date expectedTime;

    /** 订单所属 */
//    @Excel(name = "订单所属")
    private String belongTo;

    /** 期望到货时间是否通知 */
//    @Excel(name = "期望到货时间是否通知")
    private String expectedTimeNotice;

    @NotBlank(message = "经销商名称")
    @Excel(name = "经销商名称")
    private String customerName;

    @NotBlank(message = "经销商代码")
    @Excel(name = "经销商代码")
    private String customerCode;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "操作时间")
    private Date createTime;

    private String beginCreateTime;

    private String endCreateTime;

    public String getBeginCreateTime() {
        return beginCreateTime;
    }

    public void setBeginCreateTime(String beginCreateTime) {
        this.beginCreateTime = beginCreateTime;
    }

    public String getEndCreateTime() {
        return endCreateTime;
    }

    public void setEndCreateTime(String endCreateTime) {
        this.endCreateTime = endCreateTime;
    }

    @Override
    public Date getCreateTime() {
        return createTime;
    }

    @Override
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getId() {
        return id;
    }

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

    public void setIsDelete(String isDelete)
    {
        this.isDelete = isDelete;
    }

    public String getIsDelete()
    {
        return isDelete;
    }
    public void setOrderNumber(String orderNumber)
    {
        this.orderNumber = orderNumber;
    }

    public String getOrderNumber()
    {
        return orderNumber;
    }
    public void setOrderCreationTime(String orderCreationTime)
    {
        this.orderCreationTime = orderCreationTime;
    }

    public String getOrderCreationTime()
    {
        return orderCreationTime;
    }
    public void setConfirmBy(String confirmBy)
    {
        this.confirmBy = confirmBy;
    }

    public String getConfirmBy()
    {
        return confirmBy;
    }
    public void setExpectedTime(Date expectedTime)
    {
        this.expectedTime = expectedTime;
    }

    public Date getExpectedTime()
    {
        return expectedTime;
    }
    public void setBelongTo(String belongTo)
    {
        this.belongTo = belongTo;
    }

    public String getBelongTo()
    {
        return belongTo;
    }
    public void setExpectedTimeNotice(String expectedTimeNotice)
    {
        this.expectedTimeNotice = expectedTimeNotice;
    }

    public String getExpectedTimeNotice()
    {
        return expectedTimeNotice;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("createBy", getCreateBy())
            .append("createTime", getCreateTime())
            .append("updateBy", getUpdateBy())
            .append("updateTime", getUpdateTime())
            .append("isDelete", getIsDelete())
            .append("orderNumber", getOrderNumber())
            .append("orderCreationTime", getOrderCreationTime())
            .append("confirmBy", getConfirmBy())
                .append("customerName",getCustomerName())
                .append("customerCode",getCustomerCode())
            .append("expectedTime", getExpectedTime())
            .append("belongTo", getBelongTo())
            .append("expectedTimeNotice", getExpectedTimeNotice())
            .toString();
    }
}
