package cn.iocoder.yudao.module.order.dal.dataobject.orderCargoControlPick;

import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.math.BigDecimal;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
import org.springframework.format.annotation.DateTimeFormat;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

/**
 * 订单控货人放货记录 DO
 *
 * @author 郑屹
 */
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TableName("ecw_order_cargo_control_pick")
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class OrderCargoControlPickDO extends BaseDO {

    /**
     * 主键ID
     */
    @TableId
    private Long id;
    /**
     * 订单id
     */
    private Long orderId;
    /**
     * 订单编号
     */
    private String orderNo;
    /**
     * 提单号
     */
    private String tidanNo;
    /**
     * 放货箱数
     */
    private Integer pickNum = 0;
    /**
     * 控货箱数
     */
    private Integer controlNum = 0;
    /**
     * 放货数量
     */
    private Integer pickQuantity = 0;
    /**
     * 放货体积
     */
    private BigDecimal pickVolume = BigDecimal.ZERO;
    /**
     * 放货重量
     */
    private BigDecimal pickWeight = BigDecimal.ZERO;
    /**
     * 放货id
     */
    private Long pickId;
    /**
     * 状态: 0 已取消 1 放货中 2 修改审核中  3 已放货 4 反复核审核中 5 调货审核中 6 取消放货审核中
     */
    private Integer status;

    /**
     * 备注
     */
    private String remarks;

    @ExcelProperty("控货人名字")
    @ApiModelProperty(value = "控货人名字")
    private String name;

    @ExcelProperty("控货人名字(英文)")
    @ApiModelProperty(value = "控货人名字(英文)")
    private String nameEn;

    @ExcelProperty("控货人手机")
    @ApiModelProperty(value = "控货人手机")
    private String phone;

    @ExcelProperty("控货人邮箱")
    @ApiModelProperty(value = "控货人邮箱")
    private String email;

    @ExcelProperty("控货人公司")
    @ApiModelProperty(value = "控货人公司")
    private String company;

    @ExcelProperty("控货人公司(英文)")
    @ApiModelProperty(value = "控货人公司(英文)")
    private String companyEn;

    @ApiModelProperty(value = "控货人手机国家区号")
    private String countryCode;

    @ApiModelProperty(value = "收货人姓名")
    private String consigneeName;

    @ApiModelProperty(value = "收货人姓名(英文)")
    private String consigneeNameEn;

    @ApiModelProperty(value = "收货人手机")
    private String consigneePhone;

    @ApiModelProperty(value = "收货人手机国家区号")
    private String consigneeCountryCode;

    @ApiModelProperty(value = "收货人邮箱")
    private String consigneeEmail;

    @ApiModelProperty(value = "操作人")
    private String operator;

    @ApiModelProperty(value = "操作人类型：UserTypeEnum ")
    private Integer userType;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "复核时间")
    private Date checkTime;

}
