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

import com.fasterxml.jackson.annotation.JsonFormat;
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
* <p>
* Copyright: Copyright (C) 2023 prolog-int, Inc. All rights reserved.
* <p>
* Company: 湖北普罗格科技股份有限公司
*
*
* @author hongbo.pan
* @since 2023-08-24 12:27:10
*/
@Data
public class IntelligentDispatchDTO {

    @ApiModelProperty(value = "智能调度id")
    private String intelligentDispatchId;

    @ApiModelProperty(value = "智能调度单号")
    private String intelligentDispatchNo;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "智能调度日期")
    private Date intelligentDispatchTime;

    @ApiModelProperty(value = "调度限制条件")
    private String condition;

    @ApiModelProperty(value = "智能调度规则")
    private String rule;

    @ApiModelProperty(value = "已派车辆")
    private Integer vehicleNum;

    @ApiModelProperty(value = "已规划线路")
    private Integer lineNum;

    @ApiModelProperty(value = "已派运单")
    private Integer shipBillNum;

    @ApiModelProperty(value = "未派运单")
    private Integer residueShipBillNum;

    @ApiModelProperty(value = "已调度车辆")
    private Integer dispatchVehicleNum;

    @ApiModelProperty(value = "已调度线路")
    private Integer dispatchLineNum;

    @ApiModelProperty(value = "已调度运单")
    private Integer dispatchShipBillNum;

    @ApiModelProperty(value = "参与智能调度运单数")
    private Integer totalShipBillNum;

    @ApiModelProperty(value = "预估成本")
    private BigDecimal estimateCost;

    @ApiModelProperty(value = "智能调度状态 数据字典：INTELLIGENT_DISPATCH_STATUS:1新建 2待调度 3调度中 4调度完成")
    private Integer status;

    @ApiModelProperty(value = "智能调度状态")
    private String statusName;

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

    @ApiModelProperty(value = "智能调度进程标识")
    private String processId;

    @ApiModelProperty(value = "回调json")
    private String processResult;

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

    @ApiModelProperty(value = "企业名称")
    private String enterpriseName;

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

    @ApiModelProperty(value = "创建人")
    private String createperson;

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    @ApiModelProperty(value = "修改时间")
    private Date updatetime;

    @ApiModelProperty(value = "修改人")
    private String updateperson;

    @ApiModelProperty(value = "智能调度派车单")
    private List<IntelligentDispatchLoadingDTO> loadingDTOList;

    @ApiModelProperty(value = "进度")
    private BigDecimal progress;

    @ApiModelProperty(value = "剩余时间（秒）")
    private Integer surplusTime;

    @ApiModelProperty(value = "阶段 1:订单车辆数据预处理 2:运单车辆匹配初始化阶段 3:车辆路线规划阶段")
    private Integer stage;

    @ApiModelProperty(value = "阶段 1:订单车辆数据预处理 2:运单车辆匹配初始化阶段 3:车辆路线规划阶段")
    private String stageName;

}
