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


import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import java.math.BigDecimal;
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 WareHouseLocationPageReqVO extends PageParam {

    @Schema(description = "巷道/线库id", example = "24770")
    private Long laneId;

    @Schema(description = "巷道/线库名称", example = "赵六")
    private String laneName;

    @Schema(description = "库区id(自定义)", example = "11770")
    private Long areaId;

    @Schema(description = "库区名称", example = "张三")
    private String areaName;

    @Schema(description = "库位编号")
    private String locationNo;

    @Schema(description = "分组名称", example = "李四")
    private String groupName;

    @Schema(description = "弧度")
    private String locationYaw;

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

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

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

    @Schema(description = "托盘消息")
    private String trayInfo;

    @Schema(description = "启用/禁用（0：禁用、1：启用）")
    private Integer locationEnable;

    @Schema(description = "锁定/正常（0：锁定、1：正常）")
    private Integer locationLock;

    @Schema(description = "状态（0：空闲、1：占用）", example = "2")
    private Integer locationUseStatus;

    @Schema(description = "库位坐标x轴")
    private String locationX;

    @Schema(description = "库位坐标y轴")
    private String locationY;

    @Schema(description = "宽度")
    private BigDecimal locationWide;

    @Schema(description = "长度")
    private BigDecimal locationDeep;

    @Schema(description = "高(库位上目前所放物品的高)--备用")
    private BigDecimal locationHeight;

    @Schema(description = "库位默认高度(现场有水泥高出地面的高度)--备用")
    private BigDecimal locationDefaultHeight;

    @Schema(description = "机车上报的高度/总高(如果两个箱子叠加，就是叠加后的总高度)--备用")
    private BigDecimal locationTotalHeight;

    @Schema(description = "机车上报的托盘高度--机车上报的下一层箱子高度")
    private BigDecimal locationTrayHeight;

    @Schema(description = "库位方向（1：单向、2：双向、3：三向、4：四向）")
    private Integer direction;

    @Schema(description = "进入方向（0：尾入、1：头入）")
    private Integer inDirection;

    @Schema(description = "离开方向（0：尾出、1：头出）")
    private Integer outDirection;

    @Schema(description = "层数")
    private Integer locationStorey;

    @Schema(description = "点位类型（0：库位、1：等待点、2：输送线取托盘点、3：出库放托盘点）", example = "1")
    private Integer locationType;

    @Schema(description = "排序的位置,越大越优先堆放")
    private Long locationNumber;

    @Schema(description = "最后一次执行任务robot_task的id", example = "23816")
    private Long taskId;

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

    @Schema(description = "ware_position_map的id", example = "1")
    private Long mapId;

    @Schema(description = "库位类型表的id")
    private Long locationTypeId;

}