package org.wcs.model.po.app;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

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

/**
 * 组合式设备任务表
 */
@Getter
@Setter
@TableName("t_app_stock_compose_task")
public class AppStockComposeTask {

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

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

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

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

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

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

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

    /**
     * 步骤状态
     * 0-待执行
     * 1-执行中
     * 3-任务完成
     * 4-任务取消
     * 5-任务异常
     * 6-离开起点
     * 7-到达终点
     */
    @TableField("step_status")
    private Integer stepStatus;

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

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

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

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

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

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

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

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

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

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

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

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

    /**
     * 任务信息
     */
    @TableField("task_msg")
    private String taskMsg;


}
