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

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
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;

/**
 * 系统分组-查询 DTO
 *
 * Company: 湖北普罗格科技股份有限公司
 *
 * @author lhb
 * @since 2022/4/20 12:22
 */
@Data
@ApiModel("系统分组-查询DTO")
public class SysGroupQueryDTO {

    @ApiModelProperty(value = "行ID")
    private String id;

    @ApiModelProperty(value = "多个运单ID")
    private String shipbillIds;

    @ApiModelProperty(value = "分组名称")
    private String groupName;

    @ApiModelProperty(value = "货主数")
    private Integer cargoOwnerQty;

    @ApiModelProperty(value = "运单数")
    private Integer shipbillQty;

    @ApiModelProperty(value = "冷链运单数")
    private Integer coldChainShipbillQty;

    @ApiModelProperty(value = "紧急加急运单数")
    private Integer urgentShipbillQty;

    @ApiModelProperty(value = "收货方数")
    private Integer consigneeQty;

    @ApiModelProperty(value = "总提货点数")
    private Integer totalPickUpSiteQty;

    @ApiModelProperty(value = "总配送点数")
    private Integer totalDeliverySiteQty;

    @ApiModelProperty(value = "总站数")
    private Integer totalSitQty;

    @ApiModelProperty(value = "总整件数")
    private Integer totalWholePieceQty;

    @ApiModelProperty(value = "总拼箱数")
    private Integer totalLclPieceQty;

    @ApiModelProperty(value = "商品/包裹 总件数")
    private Integer totalPieceQty;

    @ApiModelProperty(value = "商品/包裹 总重量")
    private BigDecimal totalWeightQty;

    @ApiModelProperty(value = "商品/包裹 总体积")
    private BigDecimal totalVolumeQty;

    @ApiModelProperty(value = "分组运单集合")
    List<SysGroupShipbillQueryDTO> sysGroupShipbillQueryDTOS;

    @ApiModelProperty(value = "线路编码")
    private String lineCode;

    @ApiModelProperty(value = "线路名称")
    public String lineName;

    @ApiModelProperty(value = "线路方向")
    public Integer lineDirection;

    @ApiModelProperty(value = "订单业务类型 数据字典ORDER_BUSINESS_TYPE：1销售订单-直送  2销售订单-供应商配送 3采购订单-供应商配送 4采购订单-自提 5销售退货 6采购退货 7调拨")
    public Integer orderBusinessType;

    @ApiModelProperty(value = "温度要求 数据字典TEMPERATURE_REQUIREMENT：1常温 2冷藏 3冷冻 4恒温")
    public Integer temperatureRequirement;

    @ApiModelProperty(value = "温度要求名称")
    private String temperatureRequirementName;

    @ApiModelProperty(value = "收货方单位ID")
    private Long consigneeUnitId;

    @ApiModelProperty(value = "收货方单位编码")
    private String consigneeUnitCode;

    @ApiModelProperty(value = "收货方单位名称")
    public String consigneeUnitName;

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

    @ApiModelProperty(value = "收货方编码")
    private String consigneeCode;

    @ApiModelProperty(value = "收货方名称")
    public String consigneeName;

    @ApiModelProperty(value = "发货方省编码")
    private String shipperProvince;

    @ApiModelProperty(value = "发货方省名称")
    public String shipperProvinceName;

    @ApiModelProperty(value = "发货方市编码")
    private String shipperCity;

    @ApiModelProperty(value = "发货方市名称")
    public String shipperCityName;

    @ApiModelProperty(value = "发货方区/县编码")
    private String shipperDistrict;

    @ApiModelProperty(value = "发货方区/县名称")
    public String shipperDistrictName;

    @ApiModelProperty(value = "收货方省编码")
    private String consigneeProvince;

    @ApiModelProperty(value = "收货方省名称")
    public String consigneeProvinceName;

    @ApiModelProperty(value = "收货方市编码")
    private String consigneeCity;

    @ApiModelProperty(value = "收货方市名称")
    public String consigneeCityName;

    @ApiModelProperty(value = "收货方区/县编码")
    private String consigneeDistrict;

    @ApiModelProperty(value = "收货方区/县名称")
    public String consigneeDistrictName;

    @ApiModelProperty(value = "总配送点数量")
    private Integer consigneeAddressQty;

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

    @ApiModelProperty(value = "货主名称")
    public String cargoOwnerName;

    @ApiModelProperty(value = "根分组ID")
    private String rootId;

    @ApiModelProperty(value = "父分组ID")
    private String parentId;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "最早提货时间")
    private Date minEstimatedPickupTime;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "最晚送达时间")
    private Date maxEstimatedDeliveryTime;

    @ApiModelProperty(value = "配送顺序")
    private BigDecimal shippingOrder;

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

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

    @ApiModelProperty(value = "系统分组维度集合")
    private List<String> groupDimensionList;

    private Integer groupNumber;

    @ApiModelProperty(value = "备注")
    public String memo;

    @ApiModelProperty(value = "收货方站点名称")
    public String consigneeStationName;

    @ApiModelProperty(value = "收货方站点区域")
    public String consigneeStationAreas;

    @ApiModelProperty(value = "分组项目")
    private String groupItem;

    @ApiModelProperty(value = "分组项目名称")
    private String groupItemName;
}
