package com.prolog.rdc.tms.model.vo;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import org.springframework.format.annotation.DateTimeFormat;

import com.fasterxml.jackson.annotation.JsonFormat;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * 系统分组-查询VO
 *
 * @author lhb
 * @date 2022/04/20
 */
@Data
@ApiModel("系统分组-查询VO")
public class SysGroupQueryVO implements Serializable {

	private static final long serialVersionUID = -1629837230585746141L;

	@ApiModelProperty(value = "分组配置名称")
	private String groupConfigName;

	@ApiModelProperty(value = "分组层级")
	private Integer groupNumber;

	@ApiModelProperty(value = "系统分组的运单ID集合")
	private List<String> shipbillIdList;

	@ApiModelProperty(value = "系统分组维度集合")
	//  分组调度 分组项目 数据字典GROUP_DISPATCH: 0线路 1业务类型 2温度要求 3客户 4客户-收货方 5始发地-省
	//  6始发地-市 7始发地-区 8目的地-省 9目的地-市 10目的地-区
	private List<String> groupDimensionList;

	@ApiModelProperty(value = "货主ID")
	private String cargoOwnerIds;

	@ApiModelProperty(value = "货主ID, hidden = true")
	private List<Long> cargoOwnerIdList;

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

	@ApiModelProperty(value = "运单号")
	private String shipbillNo;

	@ApiModelProperty(value = "业务类型")
	private Integer orderBusinessType;

	@ApiModelProperty(value = "预计提货开始日期")
	private Date estimatedPickupStartTime;

	@ApiModelProperty(value = "预计提货结束日期")
	private Date estimatedPickupEndTime;

	@ApiModelProperty(value = "预计送达开始日期")
	private Date estimatedDeliveryStartTime;

	@ApiModelProperty(value = "预计送达结束日期")
	private Date estimatedDeliveryEndTime;

	@ApiModelProperty(value = "发货方省编码, hidden = true")
	private List<String> shipperProvinceList;

	@ApiModelProperty(value = "发货方市编码, hidden = true")
	private List<String> shipperCityList;

	@ApiModelProperty(value = "发货方区/县编码, hidden = true")
	private List<String> shipperDistrictList;

	@ApiModelProperty(value = "收货方省编码, hidden = true")
	private List<String> consigneeProvinceList;

	@ApiModelProperty(value = "收货方市编码, hidden = true")
	private List<String> consigneeCityList;

	@ApiModelProperty(value = "收货方区/县编码, hidden = true")
	private List<String> consigneeDistrictList;

	@ApiModelProperty(value = "目的地-行政区域")
	private List<ZoneVO> administrativeAreas;

	@ApiModelProperty(value = "始发地-行政区域")
	private List<ZoneVO> shipperAdministrativeAreas;

	@ApiModelProperty(value = "线路ID, hidden = true")
	private List<Long> lineIdList;

	@ApiModelProperty(value = "线路ID")
	private String lineIds;

	@ApiModelProperty(value = "发货方位置")
	private Integer shipperLocation;

	@ApiModelProperty(value = "收货方位置")
	private Integer consigneeLocation;

	@ApiModelProperty(value = "查询项目", hidden = true)
	private String queryGroupItems;

	@ApiModelProperty(value = "分组项目", hidden = true)
	private String groupByItems;

	@ApiModelProperty(value = "企业ID", hidden = true)
	private Long enterpriseId;

	@ApiModelProperty(value = "用户类型", hidden = true)
	private String userType;

	@ApiModelProperty(value = "顶级部门ID", hidden = true)
	private String departmentId;

	@ApiModelProperty(value = "货主ID", hidden = true)
	private Long cargoOwnerId;

	@ApiModelProperty(value = "仓库", hidden = true)
	private Long[] wsarehouses;

	@ApiModelProperty(value = "供应商", hidden = true)
	private Long[] suppliers;

	@ApiModelProperty(value = "客户", hidden = true)
	private Long[] customers;

	@ApiModelProperty(value = "部门IDs",hidden = true)
	private String[] depts;

	@ApiModelProperty(value = "是否部门权限",hidden = true)
	private String isDept;

	@ApiModelProperty(value = "货主",hidden = true)
	private Long[] consignors;

	@ApiModelProperty(value = "承运商ID", hidden = true)
	private Long carrierId;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "下单开始日", hidden = true)
	private Date orderDateStart;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "下单结束日", hidden = true)
	private Date orderDateEnd;

	@ApiModelProperty(value = "记录标记语")
	private String recordTagWord;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "创建时间开始日", hidden = true)
	private Date createDateStart;

	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
	@ApiModelProperty(value = "创建时间结束日", hidden = true)
	private Date createDateEnd;

	@ApiModelProperty(value = "用户")
	private String createperson;

	@ApiModelProperty(value = "收货方类型 数据字典CONSIGNEE_TYPE:1客户 2仓库 3供应商")
	private Integer consigneeType;

	@ApiModelProperty(value = "收货方ID")
	private String consigneeId;

	@ApiModelProperty(value = "收货方站点ID")
	private String consigneeStationId;

	@ApiModelProperty(value = "收货方详细地址")
	private String consigneeAddress;

	@ApiModelProperty(value = "承运商ID")
	private Long carriersId;

}
