package org.wcs.model.vo.serve.stockSingleTask;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Getter
@Setter
public class AppStockSingleTaskVo {

    /**
     * 任务ID --- 此ID是WCS内部生成的唯一ID
     */
    @JsonProperty("taskId")
    private String taskId;

    /**
     * 任务组ID
     */
    @JsonProperty("taskGroup")
    private String taskGroup;

    /**
     * PLC任务ID
     */
    @JsonProperty("plcTaskId")
    private Integer plcTaskId;


    /**
     * 上游任务号 --- 此ID是上游系统发送过来的ID
     */
    @JsonProperty("upperTaskId")
    private String upperTaskId;

    /**
     * 执行机器
     */
    @JsonProperty("executeMachine")
    private Integer executeMachine;

    /**
     * 任务类型
     * 0-自动
     * 1-入库
     * 2-出库
     * 9-移库
     * 3-托盘线搬运
     */
    @JsonProperty("taskType")
    private Integer taskType;

    /**
     * 任务起点
     */
    @JsonProperty("origin")
    private String origin;

    /**
     * 任务目的地
     */
    @JsonProperty("destination")
    private String destination;

    /**
     * 最终终点
     */
    @JsonProperty("composeDestination")
    private String composeDestination;

    /**
     * 任务状态
     * 0-待执行
     * 1-排队中
     * 2-执行中
     * 3-任务完成
     * 4-任务取消
     * 5-任务异常
     * 6-任务超时
     */
    @JsonProperty("taskStatus")
    private Integer taskStatus;


    /**
     * 是否可取消
     */
    @JsonProperty("canCancel")
    private Integer canCancel;

    /**
     * 优先级
     */
    @JsonProperty("priority")
    private Integer priority;

    /**
     * 载具编号
     */
    @JsonProperty("vehicleNo")
    private String vehicleNo;

    /**
     * 载具号数字
     */
    @JsonProperty("vehicleNoNumber")
    private Integer vehicleNoNumber;

    /**
     * 载具尺寸
     */
    @JsonProperty("vehicleSize")
    private Integer vehicleSize;

    /**
     * 载具重量
     */
    @JsonProperty("weight")
    private BigDecimal weight;

    /**
     * 创建时间
     */
    @JsonProperty("createTime")
    private LocalDateTime createTime;

    /**
     * 更新时间
     */
    @JsonProperty("updateTime")
    private LocalDateTime updateTime;

    /**
     * 任务开始时间
     */
    @JsonProperty("startTime")
    private LocalDateTime startTime;

    /**
     * 任务完成时间
     */
    @JsonProperty("completeTime")
    private LocalDateTime completeTime;

    /**
     * 任务结束时间
     */
    @JsonProperty("endTime")
    private LocalDateTime endTime;

    /**
     * 任务来源
     */
    @JsonProperty("taskSource")
    private String taskSource;

    /**
     * 创建人
     */
    @JsonProperty("createPerson")
    private String createPerson;

    /**
     * 任务信息
     */
    @JsonProperty("taskMsg")
    private String taskMsg;
}
