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

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import javax.validation.constraints.NotBlank;
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
@ApiModel("管理后台 - 订单异常查询 VO")
public class OrderExceptionQueryVO {

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

    @ApiModelProperty(value = "始发仓")
    private List<String> startWarehouseIds;

    @ApiModelProperty(value = "目的仓")
    private List<String> destWarehouseIds;

    @ApiModelProperty(value = "订单id")
    private Long orderId;

    @ApiModelProperty(value = "订单号查询前缀:包含in,等于eq,不等于ne,不包含nt")
    @NotBlank(message = "订单号查询前缀不能为空")
    private String orderNoKey;

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

    @ApiModelProperty(value = "唛头查询前缀:包含in,等于eq,不等于ne,不包含nt")
    @NotBlank(message = "唛头查询前缀不能为空")
    private String marksKey;

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

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

    @ApiModelProperty(value = "异常类型")
    private List<String> orderExceptionType;

    @ApiModelProperty(value = "异常状态")
    private List<Integer> orderExceptionStatusList;

    @ApiModelProperty(value = "发货人")
    private String consignor;

  /*  @ApiModelProperty(value = "备案")
    private String productRecord;*/

    @ApiModelProperty(value = "1:入仓时间2:处理时间")
    private String dateType;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "开始时间")
    private Date beginCreateTime;

    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    @ApiModelProperty(value = "结束时间")
    private Date endCreateTime;

    @ApiModelProperty(value = "品名查询前缀:包含in,等于eq,不等于ne,不包含nt")
    @NotBlank(message = "品名查询前缀不能为空")
    private String goodsNameKey;

    @ApiModelProperty(value = "品名")
    private String goodsName;

    @ApiModelProperty(value = "跟进人")
    private String salesmanId;

    @ApiModelProperty(value = "客户经理")
    private List<String> customerIds;

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

    @ApiModelProperty(value = "发货人手机,email,公司名")
    private String consignorText;

    @ApiModelProperty(value = "收货人手机,email,公司名")
    private String consigneeText;

    @ApiModelProperty(value = "OrderId列表，通过多个orderId查询订单时使用")
    private List<Long> orderIdList;

    @ApiModelProperty(value = "有无客户经理")
    private Boolean isHaveCustomer;

    @ApiModelProperty(value = "订单状态")
    private String orderStatus;

    @ApiModelProperty(value = "特需")
    private String packageType;

    @ApiModelProperty(value = "渠道集合")
    private List<Long> channelIds;

    @ApiModelProperty(value = "跟进客服")
    private List<Long> salesmanIds;

    @ApiModelProperty(value = "目的国")
    private List<Long> destCountryIds;

    @ApiModelProperty(value = "目的城市")
    private List<Long> objectiveIds;

    @ApiModelProperty(value = "增值服务")
    private List<Long> types;

    @ApiModelProperty(value = "商品类型")
    private List<Long> goodsTypes;

    @ApiModelProperty(value = "备案")
    private List<Integer> productRecord;
}
