package cn.iocoder.yudao.module.order.vo.orderCargoControlPick;

import cn.iocoder.yudao.module.order.vo.order.OrderBackPageVO;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.List;

@Data
@ApiModel(value = "放货相关审核信息")
public class OrderCargoControlPickApplyVO {


    @ApiModelProperty(value = "申请类型：此处应该是 7 放货修改申请 8 放货反复核申 9 调货审核 10 取消放货审核", notes = "请详见字典order_approval_type 此处应该是 7 放货修改申请 8 放货反复核申请 9调货审核 10 取消放货审核", required = true)
    @NotNull(message = "申请类型不能为空")
    private Integer applyType;

    @ExcelProperty("订单id")
    @ApiModelProperty(value = "订单id")
    @NotNull(message = "订单ID不能为空")
    private Long orderId;

    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    @ApiModelProperty(value = "提单号")
    private String tidanNo;

    @ExcelProperty("是否控货")
    @ApiModelProperty(value = "是否控货")
    private Boolean isCargoControl;

    @ExcelProperty("0 控货中；1 已放完货；2 部分控货")
    @ApiModelProperty(value = "0 控货中；1 已放完货；2 部分控货")
    private Integer cargoControlStatus;

    @ApiModelProperty(value = "入仓数量")
    private Integer sumQuantity = 0;

    @ExcelProperty("入仓箱数")
    @ApiModelProperty(value = "入仓箱数")
    private Integer sumNum = 0;

    @ExcelProperty("入仓体积")
    @ApiModelProperty(value = "入仓体积")
    private BigDecimal sumVolume = BigDecimal.ZERO;

    @ExcelProperty("入仓重量")
    @ApiModelProperty(value = "入仓重量")
    private BigDecimal sumWeight = BigDecimal.ZERO;

    @ExcelProperty("已放货箱数")
    @ApiModelProperty(value = "已放货箱数")
    private Integer releaseNum = 0;

    @ExcelProperty("放货记录ID(放货修改、调货、取消放货时必传)")
    @ApiModelProperty(value = "放货记录ID(放货修改、调货、取消放货时必传)")
    private Long cargoControlPickId;

    @ExcelProperty("原放货箱数")
    @ApiModelProperty(value = "原放货箱数")
    private Integer pickNum = 0;

    @ExcelProperty("现在放货箱数")
    @ApiModelProperty(value = "现在放货箱数")
    private Integer currentPickNum = 0;

    @ExcelProperty("放货数量")
    @ApiModelProperty(value = "放货数量")
    private Integer pickQuantity = 0;

    @ExcelProperty("放货体积")
    @ApiModelProperty(value = "放货体积")
    private BigDecimal pickVolume = BigDecimal.ZERO;

    @ExcelProperty("放货重量")
    @ApiModelProperty(value = "放货重量")
    private BigDecimal pickWeight = BigDecimal.ZERO;

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

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

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

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

    @ApiModelProperty(value = "控货人手机验证码", required = true)
    private String code;

    @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 List<OrderBackPageVO> orderBackPageVOList;

    @ApiModelProperty(value = "备注")
    private String remarks;

    @ApiModelProperty(value = "申请原因(中文)")
    private String reasonZh;

    @ApiModelProperty(value = "申请原因(英文)")
    private String reasonEn;

    @ApiModelProperty(value = "取消放货类型: 1 修改放货人信息 2 展缓放货 ", required = true)
    private String cancelPickType;

    @ApiModelProperty(value = "凭证")
    private String voucher;

    @ApiModelProperty(value = "反复核类型: 1 放货人信息错误 2 放货箱数错误 3 展缓放货 99 其他", required = true)
    private String recurrentNuclearType;

    @ApiModelProperty(value = "审批状态: 1 处理中  2 通过 3 不通过 4 已取消")
    private Integer applyStatus = 1;

    @ApiModelProperty(value = "抄送人(id逗号拼接)")
    private String ccIds;

}
