package net.lab1024.sa.admin.module.business.wms.task.domain.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;

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

import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * Task任务 实体类
 *
 * @Author 霍锦
 * @Date 2024-12-03 17:08:30
 * @Copyright 友仓
 */

@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("t_task")
public class TaskEntity implements Serializable {

    /**
     * 任务id
     */
    @TableId(type = IdType.AUTO)
    private Long taskId;

    /**
     * 任务号
     */
    private String billCode;

    /**
     * 任务状态
     */
    private String status;

    /**
     * 任务类型
     */
    private String taskType;

    /**
     * 待拣货数量
     */
    private BigDecimal planQty;

    /**
     * 已拣货数量
     */
    private BigDecimal moveQty;

    /**
     * 物料序号
     */
    private Long itemKeyId;

    /**
     * 收货明细序号
     */
    private Long asnDetailId;

    /**
     * 发货明细序号
     */
    private Long pickDetailId;

    /**
     * 原容器
     */
    private Long srcStockId;

    /**
     * 原容器编码
     */
    private String srcStockCode;

    /**
     * 目标容器
     */
    private Long dstStockId;

    /**
     * 目标容器编码
     */
    private String dstStockCode;


    /**
     * 原点位
     */
    private Long srcLocationId;

    /**
     * 原库位编码
     */
    private String srcLocationCode;

    /**
     * 目标点位
     */
    private Long dstLocationId;

    /**
     * 目标库位编码
     */
    private String dstLocationCode;

    /**
     * 库存ID
     */
    private Long inventoryId;

    /**
     * agvID
     */
    private Long agvTaskId;

    /**
     * 跳过
     */
    private Long beSkip;

    /**
     * 创建时间
     */
    @TableField(fill = FieldFill.INSERT)
    private LocalDateTime createTime;

    /**
     * 完成时间
     */
    private LocalDateTime endTime;

    /**
     * 创建人ID
     */
    private Long createUserId;

    /**
     * 创建人
     */
    private String createUserName;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;

}
