package cn.iocoder.yudao.module.system.controller.admin.robot.vo;

import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 机器人任务主表分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class RobotTaskPageReqVO extends PageParam {

    @Schema(description = "是否拼接任务（0：不拼接、1：拼接）")
    private Integer montageTask;

    @Schema(description = "拼接任务数量")
    private Integer montageNumber;

    @Schema(description = "物料信息")
    private String skuInfo;

    @Schema(description = "物料批次号")
    private String skuBatch;

    @Schema(description = "物料数量")
    private Long skuNumber;

    @Schema(description = "优先级")
    private Long priority;

    @Schema(description = "其他信息")
    private String otherMsg;

    @Schema(description = "循环(0:不循环、1：循环)")
    private Long doCycle;

    @Schema(description = "是否搬空所选线库/区域(0:不搬空、1：搬空)")
    private Long doMoveAll;

    @Schema(description = "循环次数")
    private Long cycleNumber;

    @Schema(description = "剩余循环次数，默认1")
    private Long remainingCycleNumber;

    @Schema(description = "任务号")
    private String taskNo;

    @Schema(description = "机器人编号")
    private String robotNo;

    @Schema(description = "任务状态(0:未开始、1：执行中、2：已完成、3：已取消)", example = "2")
    private Integer taskStatus;

    @Schema(description = "任务阶段(0:待执行、1：前往取货、2：取货中、3：前往放货、4：放货中、5：结束、6：移动中、7:正在充电、8:取消、9:人工完成、10:异常)")
    private Long taskStage;

    @Schema(description = "开始时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] startTime;

    @Schema(description = "结束时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] endTime;

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;

}