package com.sw.mes.yb.mcs.dto;

import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

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

/**
 * @zhaoyayun
 * @20231220
 * @v1.0.0
 **/
@Data
@ApiModel(value = "Agv任务数据dto")
public class AgvTaskDto {

    @ApiModelProperty(value = "第三方任务编码")
    private String taskCode;

    private String reqCode;

    @ApiModelProperty(value = "优先级")
    private Integer priority = 3;

    @ApiModelProperty(value = "起始位置编号")
    private String startCode;

    @ApiModelProperty(value = "起始工作位")
    private String startPoint;

    @ApiModelProperty(value = "结束位置编号")
    private String endCode;

    @ApiModelProperty(value = "结束工作位")
    private String targetPoint;

    @ApiModelProperty(value = "任务类型")
    private Integer agvTaskType;

    @ApiModelProperty(value = "任务状态：0 等待创建,1 已创建,2 正在执行,5 取消完成,9 已结束")
    private Integer status;

    @ApiModelProperty(value = "载具编号")
    @JsonProperty("frockCode")
    private String vehicleCode;

    @ApiModelProperty(value = "载具类型：1复投  2坩埚车 3拆清车 4复拉提头车 5晶棒送验车")
    @JsonProperty("frockType")
    private Integer vehicleType;

    @ApiModelProperty(value = "单晶编号")
    private String crystalNo;

    @ApiModelProperty(value = "配方id")
    private String recipeId;

    @ApiModelProperty(value = "重量id")
    private String weightId;

    @ApiModelProperty(value = "回调地址url")
    private String callbackMsg;

    @ApiModelProperty(value = "单晶详细信息,如[{‘crystalNo’：””,”weight”：””,”length”：“”},{‘crystalNo’：””,”weight”：””,”length”：“”}......]")
    private String crystalDetailInfo;

    @ApiModelProperty(value = "数量")
    private Integer number;

    @ApiModelProperty(value = "AGV编号")
    private String agvCode;

    @ApiModelProperty(value = "请求ip")
    private String ip;

    /**
     * 规格 规格:0 随机模式 1--12寸模式,2--10寸模式
     */
    @ApiModelProperty(value = "规格")
    private String specs;

    /**
     * 是否完结尾 0代表不要完结段   1代表要完结段
     */
    @ApiModelProperty(value = "是否完结尾")
    private String windUp;

    /**
     * 任务延迟时间
     **/
    @ApiModelProperty(value = "任务延迟时间")
    private Integer bufferTime;

    @ApiModelProperty(value = "单晶出炉时间")
    public Date time;

    @ApiModelProperty(value = "晶棒长度")
    public BigDecimal length;

}
