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

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 库位 Response VO")
@Data
@ExcelIgnoreUnannotated
public class WareHouseLocationRespVO {

    @Schema(description = "主键ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "31866")
    @ExcelProperty("主键ID")
    private Long id;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

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

    @Schema(description = "ware_position_map_item的id", example = "1")
    @ExcelProperty("ware_position_map_item的id")
    private Long mapItemId;
}