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

import cn.iocoder.yudao.module.order.vo.orderItem.OrderItemBackVO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

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

/**
 * 查询的预装订单返回
 */
@Data
public class OrderPreloadVO {
    @ApiModelProperty(value = "订单ID")
    private Long orderId;

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

    @ApiModelProperty(value = "运输方式id")
    private Integer transportId;

    @ApiModelProperty(value = "始发仓ID")
    private Long startWarehouseId;

    @ApiModelProperty(value = "调仓目的仓Id")
    private Long adjustToDestWarehouseId;

    @ApiModelProperty(value = "目的仓ID")
    private Long destWarehouseId;

    @ApiModelProperty(value = "始发仓名称")
    private String startWarehouseName;

    @ApiModelProperty(value = "目的仓名称")
    private String destWarehouseName;

    @ApiModelProperty(value = "渠道ID")
    private Long channelId;

    @ApiModelProperty(value = "报关方式")
    private Integer customsType;

    @ApiModelProperty(value = "唛头")
    private String marks;

    @ApiModelProperty(value = "备案属性")
    private Integer productRecord;

    @ApiModelProperty(value = "重货比")
    private BigDecimal weightRatio;

    @ApiModelProperty(value = "订单状态详情见字典：order_status")
    private Integer status;

    @ApiModelProperty(value = "订单异常状态(字典 order_abnormal_state)")
    private Integer abnormalState;

    @ApiModelProperty(value = "订单入仓状态(字典 order_warehouse_in_status)")
    private Integer inWarehouseState;

    @ApiModelProperty(value = "入仓类型")
    private Integer warehouseType;

    @ApiModelProperty(value = "入仓时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private Date rucangTime;

    @ApiModelProperty(value = "商品项列表")
    private List<OrderItemBackVO> orderItemList;

    @ApiModelProperty(value = "符合条件的商品项数量")
    private Long matchItemCount;

    @ApiModelProperty(value = "是否是外部仓")
    private Integer isExternalWarehouse;

    @ApiModelProperty(value = "父订单ID")
    private Long parentOrderId;

    @ApiModelProperty(value = "关联单状态")
    private String guanLianOrderStatus;

    @ApiModelProperty(value = "空运可出货状态： 0 默认值 1 待出 2 可出 3 备货中 4 已备货")
    private Integer airShipment;

    @ApiModelProperty(value = "目的港清关：1 我司 2 客户")
    private Integer portDestCustomsClear;

}
