diff --git a/fortucky-algorithm/pom.xml b/fortucky-algorithm/pom.xml new file mode 100644 index 0000000..ff098ee --- /dev/null +++ b/fortucky-algorithm/pom.xml @@ -0,0 +1,48 @@ + + + 4.0.0 + + + com.ruoyi + ruoyi + 3.9.0 + + + fortucky-algorithm + jar + FT546 密集库 Java 调度算法与 WMS 接入门面 + + + + org.springframework + spring-jdbc + + + org.springframework.boot + spring-boot-autoconfigure + + + org.springframework.boot + spring-boot-configuration-processor + true + + + + org.springframework.boot + spring-boot-starter-test + test + + + com.h2database + h2 + test + + + com.fasterxml.jackson.core + jackson-databind + test + + + diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/LaneAnalyzer.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/LaneAnalyzer.java new file mode 100644 index 0000000..6aa4ddc --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/LaneAnalyzer.java @@ -0,0 +1,79 @@ +package com.ruoyi.algorithm; + +import com.ruoyi.algorithm.model.LaneState; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import com.ruoyi.algorithm.policy.SchedulingPolicy; + +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +public final class LaneAnalyzer { + + public LaneState analyze(List laneSpaces, SchedulingPolicy policy) { + List spaces = laneSpaces.stream() + .sorted(Comparator.comparingInt(SpaceState::depthOrder)) + .toList(); + + boolean emptySeen = false; + boolean physicallyContinuous = true; + boolean invalidInventoryState = false; + int segmentCount = 0; + String currentSegmentKey = null; + String residentProject = null; + String guestProject = null; + + for (SpaceState space : spaces) { + boolean occupied = space.occupied(); + if (!occupied) { + emptySeen = true; + continue; + } + + if (emptySeen) { + physicallyContinuous = false; + } + if (space.inventoryProjectConflict() + || (space.status() == SpaceStatus.EMPTY && space.hasTray())) { + invalidInventoryState = true; + } + + String segmentKey = space.projectNo() == null ? "__UNKNOWN__" : space.projectNo(); + if (!segmentKey.equals(currentSegmentKey)) { + currentSegmentKey = segmentKey; + segmentCount++; + if (segmentCount == 1) { + residentProject = space.projectNo(); + } else if (segmentCount == 2) { + guestProject = space.projectNo(); + } + } + } + + boolean corrupt = invalidInventoryState || !physicallyContinuous || segmentCount > 2; + Optional nextSlot = corrupt + ? Optional.empty() + : spaces.stream().filter(SpaceState::availableEmpty).findFirst(); + int outermostOccupiedDepth = spaces.stream() + .filter(SpaceState::occupied) + .mapToInt(SpaceState::depthOrder) + .max() + .orElse(0); + Optional outerSlot = spaces.stream() + .filter(SpaceState::availableEmpty) + .filter(space -> space.depthOrder() > outermostOccupiedDepth) + .findFirst(); + + return new LaneState( + spaces, + physicallyContinuous, + corrupt, + segmentCount, + Optional.ofNullable(residentProject), + Optional.ofNullable(guestProject), + nextSlot, + outerSlot + ); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/BatchLaneMode.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/BatchLaneMode.java new file mode 100644 index 0000000..2364e23 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/BatchLaneMode.java @@ -0,0 +1,6 @@ +package com.ruoyi.algorithm.inbound; + +public enum BatchLaneMode { + OPEN, + SEALED +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundAssignment.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundAssignment.java new file mode 100644 index 0000000..e3c810a --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundAssignment.java @@ -0,0 +1,20 @@ +package com.ruoyi.algorithm.inbound; + +public record InboundAssignment( + String requestId, + String spaceId, + String laneCode, + int laneCapacity, + int depthOrder, + InboundLadderRung ladderRung, + InboundBorrowType borrowType, + String mixedIntoResidentProject, + double capacityScore, + double efficiencyScore, + double totalScore, + double fillRatePercent, + boolean batchLaneApplied, + boolean openedNewLane, + String reason +) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundBorrowType.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundBorrowType.java new file mode 100644 index 0000000..4cc1233 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundBorrowType.java @@ -0,0 +1,8 @@ +package com.ruoyi.algorithm.inbound; + +public enum InboundBorrowType { + NONE, + CACHE_BORROWED, + RESERVE_BORROWED, + MIXED_IN +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundContext.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundContext.java new file mode 100644 index 0000000..6e042e6 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundContext.java @@ -0,0 +1,19 @@ +package com.ruoyi.algorithm.inbound; + +import com.ruoyi.algorithm.model.SpaceState; + +import java.util.List; + +public record InboundContext( + List spaces, + InboundPolicy policy, + List pendingOutbounds, + int occupiedCount +) { + public InboundContext { + spaces = spaces == null ? List.of() : List.copyOf(spaces); + policy = policy == null ? InboundPolicy.defaults() : policy; + pendingOutbounds = pendingOutbounds == null ? List.of() : List.copyOf(pendingOutbounds); + if (occupiedCount < 0) throw new IllegalArgumentException("occupiedCount cannot be negative"); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundLadderRung.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundLadderRung.java new file mode 100644 index 0000000..4834279 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundLadderRung.java @@ -0,0 +1,12 @@ +package com.ruoyi.algorithm.inbound; + +public enum InboundLadderRung { + CONTINUE, + OPEN_GRADED, + OPEN_ADJACENT, + MIXED_GUEST, + POOL_BORROW, + COMMON_SINGLE, + COMMON_LANE_CONTINUE, + COMMON_LANE_OPEN +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPlan.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPlan.java new file mode 100644 index 0000000..3df424c --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPlan.java @@ -0,0 +1,21 @@ +package com.ruoyi.algorithm.inbound; + +import java.util.Optional; + +public record InboundPlan(Optional assignment, Optional rejection) { + public InboundPlan { + assignment = assignment == null ? Optional.empty() : assignment; + rejection = rejection == null ? Optional.empty() : rejection; + if (assignment.isPresent() == rejection.isPresent()) { + throw new IllegalArgumentException("plan must contain exactly one assignment or rejection"); + } + } + + public static InboundPlan assigned(InboundAssignment assignment) { + return new InboundPlan(Optional.of(assignment), Optional.empty()); + } + + public static InboundPlan rejected(InboundRejection rejection) { + return new InboundPlan(Optional.empty(), Optional.of(rejection)); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPlanner.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPlanner.java new file mode 100644 index 0000000..51edcb4 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPlanner.java @@ -0,0 +1,674 @@ +package com.ruoyi.algorithm.inbound; + +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import com.ruoyi.algorithm.policy.SchedulingPolicy; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.stream.Collectors; + +public final class InboundPlanner { + private static final Map> ADJACENT_DEPTH_ORDER = Map.of( + 2, List.of(3, 5), + 3, List.of(5, 2), + 5, List.of(3, 2) + ); + + public InboundPlan plan(InboundRequest request, InboundContext context) { + Objects.requireNonNull(request, "request"); + Objects.requireNonNull(context, "context"); + validateManualReservations(context); + List lanes = buildLanes(context); + + Optional selected = context.policy().isCommon(request.projectNo()) + ? chooseCommon(request, context, lanes) + : chooseProject(request, context, lanes); + if (selected.isPresent()) { + return InboundPlan.assigned(toAssignment(request, selected.orElseThrow())); + } + + List trace = traceFor(request, context, lanes); + boolean sealedProjectRequest = request.batchLaneMode() == BatchLaneMode.SEALED + && !context.policy().isCommon(request.projectNo()); + InboundRejectionCode code = sealedProjectRequest + ? InboundRejectionCode.NO_BATCH_COMPATIBLE_LANE + : InboundRejectionCode.NO_FEASIBLE_LOCATION; + String reason = sealedProjectRequest + ? "No lane can continue the same project, product and lot, and no completely empty lane remains." + : "Inbound admission ladder exhausted every legal location; no feasible location remains."; + return InboundPlan.rejected(new InboundRejection( + code, reason, request.projectNo(), request.productId(), request.lotNo(), trace)); + } + + public PagedSession startPaged(InboundRequest request, InboundPolicy policy, + List pendingOutbounds, int occupiedCount) { + return new PagedSession(request, policy, pendingOutbounds, occupiedCount); + } + + public final class PagedSession { + private final InboundRequest request; + private final InboundPolicy policy; + private final List pendingOutbounds; + private final int occupiedCount; + private final Map retained = new LinkedHashMap<>(); + private final java.util.Set missingManualLanes; + private long freeSinglePool; + + private PagedSession(InboundRequest request, InboundPolicy policy, + List pendingOutbounds, int occupiedCount) { + this.request = Objects.requireNonNull(request, "request"); + this.policy = Objects.requireNonNull(policy, "policy"); + this.pendingOutbounds = List.copyOf(pendingOutbounds == null ? List.of() : pendingOutbounds); + this.occupiedCount = occupiedCount; + this.missingManualLanes = policy.manualReservedLanes().stream() + .map(ManualLaneReservation::laneCode) + .collect(Collectors.toCollection(java.util.LinkedHashSet::new)); + } + + public void accept(List pageSpaces) { + InboundContext context = new InboundContext(pageSpaces, policy, pendingOutbounds, occupiedCount); + List lanes = buildLanes(context); + lanes.forEach(lane -> missingManualLanes.remove(lane.code())); + if (policy.isCommon(request.projectNo())) { + acceptCommon(context, lanes); + } else { + acceptProject(context, lanes); + } + } + + public Optional currentAssignment() { + return selected().map(candidate -> toAssignment(request, candidate)); + } + + public java.util.Set retainedLaneCodes() { + return retained.values().stream().map(candidate -> candidate.lane().code()) + .collect(Collectors.toUnmodifiableSet()); + } + + public InboundPlan finish() { + if (!missingManualLanes.isEmpty()) { + throw new IllegalArgumentException("manualReservedLanes references unknown lane " + + missingManualLanes.iterator().next()); + } + Optional candidate = selected(); + if (candidate.isPresent()) return InboundPlan.assigned(toAssignment(request, candidate.orElseThrow())); + + boolean sealed = request.batchLaneMode() == BatchLaneMode.SEALED + && !policy.isCommon(request.projectNo()); + InboundRejectionCode code = sealed ? InboundRejectionCode.NO_BATCH_COMPATIBLE_LANE + : InboundRejectionCode.NO_FEASIBLE_LOCATION; + String reason = sealed + ? "No lane can continue the same project, product and lot, and no completely empty lane remains." + : "Inbound admission ladder exhausted every legal location; no feasible location remains."; + return InboundPlan.rejected(new InboundRejection(code, reason, request.projectNo(), + request.productId(), request.lotNo(), pagedTrace(sealed))); + } + + private void acceptProject(InboundContext context, List lanes) { + retain("CONTINUE", best(lanes.stream() + .filter(lane -> lane.usableForInbound() && !lane.occupied().isEmpty()) + .map(lane -> continueCandidate(request, context, lane)).flatMap(Optional::stream).toList()), + candidateComparator()); + + int targetDepth = gradedTargetDepth(request, context); + retain("GRADED", best(emptyLaneCandidates(request, context, lanes, targetDepth, + InboundLadderRung.OPEN_GRADED)), candidateComparator()); + for (int depth : ADJACENT_DEPTH_ORDER.getOrDefault(targetDepth, List.of())) { + retain("ADJACENT:" + depth, best(emptyLaneCandidates(request, context, lanes, depth, + InboundLadderRung.OPEN_ADJACENT)), candidateComparator()); + } + + if (request.batchLaneMode() != BatchLaneMode.SEALED && request.projectNo() != null + && !policy.isIsolated(request.projectNo()) && !policy.isCommon(request.projectNo()) + && policy.allowsMixed(request.projectNo())) { + Comparator mixedOrder = Comparator.comparingInt(Candidate::remaining) + .thenComparing(Candidate::residentNewest).thenComparing(candidateComparator()); + retain("MIXED", bestMixed(request, context, lanes), mixedOrder); + } + acceptPool(context, lanes); + } + + private void acceptPool(InboundContext context, List lanes) { + List pool = lanes.stream().filter(lane -> lane.depth() == 1) + .filter(lane -> lane.spaces().stream().allMatch(space -> space.role() == SpaceRole.STORAGE)) + .toList(); + freeSinglePool += pool.stream().filter(Lane::isEmptyLane).count(); + List tiers = new ArrayList<>(); + tiers.add(new PoolTier("FLEX", InboundBorrowType.NONE)); + tiers.add(new PoolTier("CACHE", InboundBorrowType.CACHE_BORROWED)); + if (occupiedCount >= policy.schedulingPolicy().capacityFirstOccupied()) { + tiers.add(new PoolTier("RESERVE", InboundBorrowType.RESERVE_BORROWED)); + } + for (PoolTier tier : tiers) { + retain("POOL:" + tier.zone(), best(pool.stream().filter(Lane::usableForInbound) + .filter(Lane::isEmptyLane) + .filter(lane -> tier.zone().equalsIgnoreCase(lane.spaces().get(0).zoneCode())) + .filter(lane -> usableSlot(lane, lane.spaces().get(0), request, context)) + .map(lane -> score(lane, lane.spaces().get(0), request, context, + InboundLadderRung.POOL_BORROW, tier.borrowType(), null, true)).toList()), + candidateComparator()); + } + } + + private void acceptCommon(InboundContext context, List lanes) { + for (String zone : List.of("FLEX", "CACHE", "RESERVE")) { + retain("COMMON_SINGLE:" + zone, best(lanes.stream().filter(Lane::usableForInbound) + .filter(lane -> lane.depth() == 1 && lane.isEmptyLane()) + .filter(lane -> zone.equalsIgnoreCase(lane.spaces().get(0).zoneCode())) + .filter(lane -> usableSlot(lane, lane.spaces().get(0), request, context)) + .map(lane -> score(lane, lane.spaces().get(0), request, context, + InboundLadderRung.COMMON_SINGLE, InboundBorrowType.NONE, null, true)).toList()), + candidateComparator()); + } + retain("COMMON_CONTINUE", best(lanes.stream().filter(Lane::usableForInbound) + .filter(lane -> lane.depth() == 2 && !lane.occupied().isEmpty()) + .filter(lane -> lane.nextSlot().isPresent()) + .filter(lane -> lane.occupied().stream().allMatch(space -> commonCompatible(space, request, context))) + .filter(lane -> usableSlot(lane, lane.nextSlot().orElseThrow(), request, context)) + .map(lane -> score(lane, lane.nextSlot().orElseThrow(), request, context, + InboundLadderRung.COMMON_LANE_CONTINUE, InboundBorrowType.NONE, null, false)).toList()), + candidateComparator()); + retain("COMMON_OPEN", best(emptyLaneCandidates(request, context, lanes, 2, + InboundLadderRung.COMMON_LANE_OPEN)), candidateComparator()); + } + + private Optional selected() { + if (policy.isCommon(request.projectNo())) { + for (String zone : List.of("FLEX", "CACHE", "RESERVE")) { + Candidate candidate = retained.get("COMMON_SINGLE:" + zone); + if (candidate != null) return Optional.of(candidate); + } + if (retained.containsKey("COMMON_CONTINUE")) return Optional.of(retained.get("COMMON_CONTINUE")); + return Optional.ofNullable(retained.get("COMMON_OPEN")); + } + if (retained.containsKey("CONTINUE")) return Optional.of(retained.get("CONTINUE")); + if (retained.containsKey("GRADED")) return Optional.of(retained.get("GRADED")); + int targetDepth = gradedTargetDepth(request, + new InboundContext(List.of(), policy, pendingOutbounds, occupiedCount)); + if (targetDepth == 2) { + Optional pool = selectedPool(); + if (pool.isPresent()) return pool; + } + for (int depth : ADJACENT_DEPTH_ORDER.getOrDefault(targetDepth, List.of())) { + Candidate candidate = retained.get("ADJACENT:" + depth); + if (candidate != null) return Optional.of(candidate); + } + if (retained.containsKey("MIXED")) return Optional.of(retained.get("MIXED")); + return selectedPool(); + } + + private Optional selectedPool() { + if (policy.commonSinglePoolReserve() > 0 + && freeSinglePool - 1 < policy.commonSinglePoolReserve()) return Optional.empty(); + for (String zone : List.of("FLEX", "CACHE", "RESERVE")) { + Candidate candidate = retained.get("POOL:" + zone); + if (candidate != null) return Optional.of(candidate); + } + return Optional.empty(); + } + + private void retain(String key, Optional candidate, Comparator comparator) { + candidate.ifPresent(value -> retained.merge(key, value, + (current, proposed) -> comparator.compare(proposed, current) < 0 ? proposed : current)); + } + + private List pagedTrace(boolean sealed) { + if (policy.isCommon(request.projectNo())) { + return List.of( + new LadderTraceStep(InboundLadderRung.COMMON_SINGLE, + "No outbound-free and reservation-compatible FLEX, CACHE or RESERVE single slot."), + new LadderTraceStep(InboundLadderRung.COMMON_LANE_CONTINUE, + "No physically continuous outbound-free double lane contains only the same common product."), + new LadderTraceStep(InboundLadderRung.COMMON_LANE_OPEN, + "No completely empty outbound-free double lane is available.")); + } + int targetDepth = gradedTargetDepth(request, + new InboundContext(List.of(), policy, pendingOutbounds, occupiedCount)); + boolean guard = policy.commonSinglePoolReserve() > 0 + && freeSinglePool - 1 < policy.commonSinglePoolReserve(); + return List.of( + new LadderTraceStep(InboundLadderRung.CONTINUE, + "No physically continuous outbound-free lane can legally continue this project/cohort."), + new LadderTraceStep(InboundLadderRung.OPEN_GRADED, + "No completely empty legal lane at graded depth " + targetDepth + "."), + new LadderTraceStep(InboundLadderRung.OPEN_ADJACENT, + "No completely empty legal lane in adjacent order " + + ADJACENT_DEPTH_ORDER.getOrDefault(targetDepth, List.of()) + "."), + new LadderTraceStep(InboundLadderRung.MIXED_GUEST, + sealed ? "SEALED admission never mixes projects or lots." + : "No one-segment non-isolated resident lane without pending outbound can accept one outer guest."), + new LadderTraceStep(InboundLadderRung.POOL_BORROW, + guard ? "Single-pool common-parts watermark would be breached." + : "No legal FLEX/CACHE single slot, or high-water RESERVE slot, is available.")); + } + } + + private void validateManualReservations(InboundContext context) { + List laneCodes = context.spaces().stream().map(SpaceState::laneCode).distinct().toList(); + context.policy().manualReservedLanes().stream() + .filter(reservation -> !laneCodes.contains(reservation.laneCode())) + .findFirst() + .ifPresent(reservation -> { + throw new IllegalArgumentException( + "manualReservedLanes references unknown lane " + reservation.laneCode()); + }); + } + + private Optional chooseProject(InboundRequest request, InboundContext context, List lanes) { + Optional candidate = best(lanes.stream() + .filter(lane -> lane.usableForInbound() && !lane.occupied().isEmpty()) + .map(lane -> continueCandidate(request, context, lane)) + .flatMap(Optional::stream) + .toList()); + if (candidate.isPresent()) return candidate; + + int targetDepth = gradedTargetDepth(request, context); + candidate = best(emptyLaneCandidates(request, context, lanes, targetDepth, InboundLadderRung.OPEN_GRADED)); + if (candidate.isPresent()) return candidate; + + if (targetDepth == 2) { + candidate = bestPoolSingle(request, context, lanes).candidate(); + if (candidate.isPresent()) return candidate; + } + + for (int depth : ADJACENT_DEPTH_ORDER.getOrDefault(targetDepth, List.of())) { + candidate = best(emptyLaneCandidates(request, context, lanes, depth, InboundLadderRung.OPEN_ADJACENT)); + if (candidate.isPresent()) return candidate; + } + + if (request.batchLaneMode() != BatchLaneMode.SEALED + && request.projectNo() != null + && !context.policy().isIsolated(request.projectNo()) + && !context.policy().isCommon(request.projectNo()) + && context.policy().allowsMixed(request.projectNo())) { + candidate = bestMixed(request, context, lanes); + if (candidate.isPresent()) return candidate; + } + + return bestPoolSingle(request, context, lanes).candidate(); + } + + private Optional chooseCommon(InboundRequest request, InboundContext context, List lanes) { + for (String zone : List.of("FLEX", "CACHE", "RESERVE")) { + Optional single = best(lanes.stream() + .filter(Lane::usableForInbound) + .filter(lane -> lane.depth() == 1 && lane.isEmptyLane()) + .filter(lane -> zone.equalsIgnoreCase(lane.spaces().get(0).zoneCode())) + .filter(lane -> usableSlot(lane, lane.spaces().get(0), request, context)) + .map(lane -> score(lane, lane.spaces().get(0), request, context, + InboundLadderRung.COMMON_SINGLE, InboundBorrowType.NONE, null, true)) + .toList()); + if (single.isPresent()) return single; + } + + Optional continuation = best(lanes.stream() + .filter(Lane::usableForInbound) + .filter(lane -> lane.depth() == 2 && !lane.occupied().isEmpty()) + .filter(lane -> lane.nextSlot().isPresent()) + .filter(lane -> lane.occupied().stream().allMatch(space -> commonCompatible(space, request, context))) + .filter(lane -> usableSlot(lane, lane.nextSlot().orElseThrow(), request, context)) + .map(lane -> score(lane, lane.nextSlot().orElseThrow(), request, context, + InboundLadderRung.COMMON_LANE_CONTINUE, InboundBorrowType.NONE, null, false)) + .toList()); + if (continuation.isPresent()) return continuation; + + return best(emptyLaneCandidates(request, context, lanes, 2, InboundLadderRung.COMMON_LANE_OPEN)); + } + + private boolean commonCompatible(SpaceState space, InboundRequest request, InboundContext context) { + return context.policy().isCommon(space.projectNo()) + && Objects.equals(space.productId(), request.productId()); + } + + private Optional continueCandidate(InboundRequest request, InboundContext context, Lane lane) { + if (lane.segments().isEmpty()) return Optional.empty(); + Segment resident = lane.segments().get(0); + boolean residentMatch = lane.segments().size() == 1 + && Objects.equals(resident.projectNo(), request.projectNo()); + boolean guestMatch = lane.segments().size() == 2 + && Objects.equals(lane.segments().get(1).projectNo(), request.projectNo()); + if (!residentMatch && !guestMatch) return Optional.empty(); + + Optional slot = guestMatch ? lane.outerSlot() : lane.nextSlot(); + if (slot.isEmpty() || !usableSlot(lane, slot.orElseThrow(), request, context)) return Optional.empty(); + if (guestMatch && (!context.policy().allowsMixed(request.projectNo()) + || !context.policy().allowsMixed(resident.projectNo()))) { + return Optional.empty(); + } + if (request.batchLaneMode() == BatchLaneMode.SEALED && lane.occupied().stream().anyMatch(space -> + !Objects.equals(space.projectNo(), request.projectNo()) + || !Objects.equals(space.productId(), request.productId()) + || !Objects.equals(space.lotNo(), request.lotNo()))) { + return Optional.empty(); + } + return Optional.of(score(lane, slot.orElseThrow(), request, context, InboundLadderRung.CONTINUE, + guestMatch ? InboundBorrowType.MIXED_IN : InboundBorrowType.NONE, + guestMatch ? resident.projectNo() : null, false)); + } + + private List emptyLaneCandidates(InboundRequest request, InboundContext context, + List lanes, int depth, InboundLadderRung rung) { + return lanes.stream() + .filter(Lane::usableForInbound) + .filter(lane -> lane.depth() == depth && lane.isEmptyLane()) + .filter(lane -> lane.spaces().stream().allMatch(space -> space.role() == SpaceRole.STORAGE)) + .filter(lane -> usableSlot(lane, lane.spaces().get(0), request, context)) + .map(lane -> score(lane, lane.spaces().get(0), request, context, rung, + InboundBorrowType.NONE, null, true)) + .toList(); + } + + private PoolChoice bestPoolSingle(InboundRequest request, InboundContext context, List lanes) { + List pool = lanes.stream() + .filter(lane -> lane.depth() == 1) + .filter(lane -> lane.spaces().stream().allMatch(space -> space.role() == SpaceRole.STORAGE)) + .toList(); + long freeTotal = pool.stream().filter(Lane::isEmptyLane).count(); + if (context.policy().commonSinglePoolReserve() > 0 + && freeTotal - 1 < context.policy().commonSinglePoolReserve()) { + return new PoolChoice(Optional.empty(), true); + } + + List tiers = new ArrayList<>(); + tiers.add(new PoolTier("FLEX", InboundBorrowType.NONE)); + tiers.add(new PoolTier("CACHE", InboundBorrowType.CACHE_BORROWED)); + if (context.occupiedCount() >= context.policy().schedulingPolicy().capacityFirstOccupied()) { + tiers.add(new PoolTier("RESERVE", InboundBorrowType.RESERVE_BORROWED)); + } + for (PoolTier tier : tiers) { + Optional found = best(pool.stream() + .filter(Lane::usableForInbound) + .filter(Lane::isEmptyLane) + .filter(lane -> tier.zone().equalsIgnoreCase(lane.spaces().get(0).zoneCode())) + .filter(lane -> usableSlot(lane, lane.spaces().get(0), request, context)) + .map(lane -> score(lane, lane.spaces().get(0), request, context, + InboundLadderRung.POOL_BORROW, tier.borrowType(), null, true)) + .toList()); + if (found.isPresent()) return new PoolChoice(found, false); + } + return new PoolChoice(Optional.empty(), false); + } + + private Optional bestMixed(InboundRequest request, InboundContext context, List lanes) { + Comparator mixedOrder = Comparator.comparingInt(Candidate::remaining) + .thenComparing(Candidate::residentNewest) + .thenComparing(candidateComparator()); + return lanes.stream() + .filter(Lane::usableForInbound) + .filter(lane -> lane.depth() >= 2 && lane.segments().size() == 1 && lane.outerSlot().isPresent()) + .filter(lane -> lane.segments().get(0).projectNo() != null) + .filter(lane -> !Objects.equals(lane.segments().get(0).projectNo(), request.projectNo())) + .filter(lane -> !context.policy().isIsolated(lane.segments().get(0).projectNo())) + .filter(lane -> !context.policy().isCommon(lane.segments().get(0).projectNo())) + .filter(lane -> context.policy().allowsMixed(request.projectNo())) + .filter(lane -> context.policy().allowsMixed(lane.segments().get(0).projectNo())) + .filter(lane -> usableSlot(lane, lane.outerSlot().orElseThrow(), request, context)) + .map(lane -> score(lane, lane.outerSlot().orElseThrow(), request, context, + InboundLadderRung.MIXED_GUEST, InboundBorrowType.MIXED_IN, + lane.segments().get(0).projectNo(), false)) + .min(mixedOrder); + } + + private List traceFor(InboundRequest request, InboundContext context, List lanes) { + if (context.policy().isCommon(request.projectNo())) { + return List.of( + new LadderTraceStep(InboundLadderRung.COMMON_SINGLE, + "No outbound-free and reservation-compatible FLEX, CACHE or RESERVE single slot."), + new LadderTraceStep(InboundLadderRung.COMMON_LANE_CONTINUE, + "No physically continuous outbound-free double lane contains only the same common product."), + new LadderTraceStep(InboundLadderRung.COMMON_LANE_OPEN, + "No completely empty outbound-free double lane is available.")); + } + + int targetDepth = gradedTargetDepth(request, context); + PoolChoice pool = bestPoolSingle(request, context, lanes); + String poolReason = pool.guardBlocked() + ? "Single-pool common-parts watermark would be breached." + : "No legal FLEX/CACHE single slot, or high-water RESERVE slot, is available."; + return List.of( + new LadderTraceStep(InboundLadderRung.CONTINUE, + "No physically continuous outbound-free lane can legally continue this project/cohort."), + new LadderTraceStep(InboundLadderRung.OPEN_GRADED, + "No completely empty legal lane at graded depth " + targetDepth + "."), + new LadderTraceStep(InboundLadderRung.OPEN_ADJACENT, + "No completely empty legal lane in adjacent order " + ADJACENT_DEPTH_ORDER.getOrDefault(targetDepth, List.of()) + "."), + new LadderTraceStep(InboundLadderRung.MIXED_GUEST, + request.batchLaneMode() == BatchLaneMode.SEALED + ? "SEALED admission never mixes projects or lots." + : "No one-segment non-isolated resident lane without pending outbound can accept one outer guest."), + new LadderTraceStep(InboundLadderRung.POOL_BORROW, poolReason)); + } + + private int gradedTargetDepth(InboundRequest request, InboundContext context) { + if (request.expectedProjectPallets() != null) { + if (request.expectedProjectPallets() <= 2) return 2; + if (request.expectedProjectPallets() == 3) return 3; + return 5; + } + long current = context.spaces().stream() + .filter(SpaceState::occupied) + .filter(space -> !space.outboundTaskActive()) + .filter(space -> Objects.equals(space.projectNo(), request.projectNo())) + .count(); + return current <= 1 ? 2 : 5; + } + + private boolean pendingHitsPallet(InboundContext context, SpaceState pallet) { + return context.pendingOutbounds().stream().anyMatch(pending -> { + boolean exactTray = pending.trayNo() != null && !pending.trayNo().isBlank() + && Objects.equals(pending.trayNo(), pallet.trayNo()); + boolean resolvedLane = pending.hasResolvedLane() + && Objects.equals(pending.sourceLaneCode(), pallet.laneCode()); + return exactTray || resolvedLane; + }); + } + + private boolean usableSlot(Lane lane, SpaceState space, InboundRequest request, InboundContext context) { + if (!lane.usableForInbound() || !space.availableEmpty() || space.role() != SpaceRole.STORAGE) return false; + if (request.targetFloor() != null && space.floorNo() != request.targetFloor()) return false; + if (request.targetFloor() == null && !request.allowedFloors().isEmpty() + && !request.allowedFloors().contains(space.floorNo())) return false; + return !reservationBlocks(lane.code(), request.projectNo(), context.policy()); + } + + private boolean reservationBlocks(String laneCode, String projectNo, InboundPolicy policy) { + Optional reservation = policy.manualReservedLanes().stream() + .filter(item -> item.laneCode().equals(laneCode)) + .findFirst(); + if (reservation.isEmpty()) return false; + if (reservation.orElseThrow().projectNo() != null) { + return !Objects.equals(reservation.orElseThrow().projectNo(), projectNo); + } + return !policy.isIsolated(projectNo); + } + + private Candidate score(Lane lane, SpaceState space, InboundRequest request, InboundContext context, + InboundLadderRung rung, InboundBorrowType borrowType, + String mixedIntoResidentProject, boolean openedNewLane) { + long sameProject = lane.occupied().stream() + .filter(item -> request.projectNo() != null && Objects.equals(item.projectNo(), request.projectNo())) + .count(); + double fillRate = lane.spaces().isEmpty() ? 0 : (double) lane.occupied().size() / lane.spaces().size(); + double codingProgress = (space.laneCapacity() - space.groupCoding() + 1.0) / Math.max(1, space.laneCapacity()); + double zoneBonus = "MAIN".equalsIgnoreCase(space.zoneCode()) ? 8 + : "FLEX".equalsIgnoreCase(space.zoneCode()) ? 5 : 0; + double capacityScore = clamp(20 + fillRate * 52 + (sameProject > 0 ? 20 : 0) + + codingProgress * 15 + zoneBonus); + int entryFloor = Math.max(1, Math.min(8, request.entryFloor() == null ? 1 : request.entryFloor())); + int aisleDistance = Math.min(Math.abs(space.aisleNo() - 6), Math.abs(space.aisleNo() - 10)); + double efficiencyScore = clamp(105 - Math.abs(space.floorNo() - entryFloor) * 12 + - aisleDistance * 3 - numericRow(space.rowCode()) * 0.7); + SchedulingPolicy scheduling = context.policy().schedulingPolicy(); + double capacityWeight = scheduling.capacityWeight(); + double efficiencyWeight = scheduling.efficiencyWeight(); + if (context.occupiedCount() >= scheduling.capacityFirstOccupied()) { + capacityWeight = 0.8; + efficiencyWeight = 0.2; + } + double sum = capacityWeight + efficiencyWeight; + if (sum == 0) { + capacityWeight = efficiencyWeight = 0.5; + sum = 1; + } + double totalScore = capacityScore * capacityWeight / sum + efficiencyScore * efficiencyWeight / sum; + Instant residentNewest = lane.occupied().stream() + .map(SpaceState::inboundAt) + .filter(Objects::nonNull) + .max(Comparator.naturalOrder()) + .orElse(Instant.MAX); + if (lane.occupied().stream().anyMatch(item -> item.inboundAt() == null)) residentNewest = Instant.MAX; + return new Candidate(space, lane, rung, borrowType, mixedIntoResidentProject, openedNewLane, + round1(capacityScore), round1(efficiencyScore), round1(totalScore), round1(fillRate * 100), + lane.spaces().size() - lane.occupied().size(), residentNewest); + } + + private Optional best(List candidates) { + return candidates.stream().min(candidateComparator()); + } + + private Comparator candidateComparator() { + return Comparator.comparingDouble(Candidate::totalScore).reversed() + .thenComparing(Comparator.comparingDouble(Candidate::capacityScore).reversed()) + .thenComparing(candidate -> candidate.space().spaceId()); + } + + private InboundAssignment toAssignment(InboundRequest request, Candidate candidate) { + SpaceState space = candidate.space(); + String reason = "Selected the innermost legal slot " + space.spaceId() + " in lane " + + candidate.lane().code() + " at rung " + candidate.rung() + + "; fill=" + candidate.fillRatePercent() + "%, capacity=" + candidate.capacityScore() + + ", efficiency=" + candidate.efficiencyScore() + ", total=" + candidate.totalScore() + "."; + return new InboundAssignment(request.requestId(), space.spaceId(), candidate.lane().code(), + space.laneCapacity(), space.depthOrder(), candidate.rung(), candidate.borrowType(), + candidate.mixedIntoResidentProject(), candidate.capacityScore(), candidate.efficiencyScore(), + candidate.totalScore(), candidate.fillRatePercent(), request.batchLaneMode() == BatchLaneMode.SEALED, + candidate.openedNewLane(), reason); + } + + private List buildLanes(InboundContext context) { + Map> grouped = context.spaces().stream().collect(Collectors.groupingBy( + SpaceState::laneCode, LinkedHashMap::new, Collectors.toList())); + return grouped.entrySet().stream().map(entry -> analyzeLane(entry.getKey(), entry.getValue(), context)) + .toList(); + } + + private Lane analyzeLane(String code, List input, InboundContext context) { + List spaces = input.stream() + .sorted(Comparator.comparingInt(SpaceState::depthOrder).thenComparing(SpaceState::spaceId)) + .toList(); + List occupied = spaces.stream().filter(SpaceState::occupied).toList(); + boolean gapSeen = false; + boolean continuous = true; + boolean invalid = false; + for (SpaceState space : spaces) { + if (!space.occupied()) { + gapSeen = true; + } else if (gapSeen) { + continuous = false; + } + if (space.inventoryProjectConflict() + || (space.status() == SpaceStatus.EMPTY && space.hasTray())) invalid = true; + } + + List segments = new ArrayList<>(); + for (SpaceState space : occupied) { + String key = segmentKey(space, context.policy()); + if (segments.isEmpty() || !segments.get(segments.size() - 1).key().equals(key)) { + segments.add(new Segment(key, space.projectNo(), space.productId())); + } + } + int depth = spaces.stream().mapToInt(SpaceState::laneCapacity).max().orElse(0); + boolean completeTopology = spaces.size() == depth; + for (int index = 0; index < spaces.size(); index++) { + SpaceState space = spaces.get(index); + if (space.depthOrder() != index + 1 || space.laneCapacity() != depth) { + completeTopology = false; + break; + } + } + boolean corrupt = invalid || !continuous || !completeTopology || segments.size() > 2; + int maxOccupiedDepth = occupied.stream().mapToInt(SpaceState::depthOrder).max().orElse(0); + Optional immediateOuterSlot = corrupt ? Optional.empty() + : spaces.stream().filter(SpaceState::availableEmpty) + .filter(space -> space.depthOrder() == maxOccupiedDepth + 1).findFirst(); + boolean emptyLane = occupied.isEmpty() && spaces.stream().allMatch(SpaceState::availableEmpty); + boolean outboundBlocked = spaces.stream().anyMatch(SpaceState::outboundTaskActive) + || occupied.stream().anyMatch(space -> pendingHitsPallet(context, space)); + return new Lane(code, depth, spaces, occupied, segments, corrupt, outboundBlocked, + emptyLane, immediateOuterSlot, immediateOuterSlot); + } + + private String segmentKey(SpaceState space, InboundPolicy policy) { + if (space.projectNo() == null) return "P|__UNKNOWN__"; + if (policy.isCommon(space.projectNo())) { + return "C|" + space.projectNo() + "|" + Objects.toString(space.productId(), ""); + } + return "P|" + space.projectNo(); + } + + private double numericRow(String rowCode) { + try { + return Double.parseDouble(rowCode); + } catch (RuntimeException ignored) { + return 0; + } + } + + private double clamp(double value) { + return Math.max(0, Math.min(100, value)); + } + + private double round1(double value) { + return Math.round(value * 10.0) / 10.0; + } + + private record Segment(String key, String projectNo, String productId) { + } + + private record Lane( + String code, + int depth, + List spaces, + List occupied, + List segments, + boolean corrupt, + boolean outboundBlocked, + boolean isEmptyLane, + Optional nextSlot, + Optional outerSlot + ) { + private boolean usableForInbound() { + return !corrupt && !outboundBlocked; + } + } + + private record Candidate( + SpaceState space, + Lane lane, + InboundLadderRung rung, + InboundBorrowType borrowType, + String mixedIntoResidentProject, + boolean openedNewLane, + double capacityScore, + double efficiencyScore, + double totalScore, + double fillRatePercent, + int remaining, + Instant residentNewest + ) { + } + + private record PoolTier(String zone, InboundBorrowType borrowType) { + } + + private record PoolChoice(Optional candidate, boolean guardBlocked) { + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPolicy.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPolicy.java new file mode 100644 index 0000000..58354f1 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundPolicy.java @@ -0,0 +1,51 @@ +package com.ruoyi.algorithm.inbound; + +import com.ruoyi.algorithm.policy.SchedulingPolicy; + +import java.util.List; +import java.util.Set; + +public record InboundPolicy( + SchedulingPolicy schedulingPolicy, + Set isolatedProjects, + Set commonProjectNos, + List manualReservedLanes, + int commonSinglePoolReserve, + Set mixedDeniedProjects +) { + public InboundPolicy { + schedulingPolicy = schedulingPolicy == null ? SchedulingPolicy.ft546Defaults() : schedulingPolicy; + isolatedProjects = isolatedProjects == null ? Set.of() : Set.copyOf(isolatedProjects); + commonProjectNos = commonProjectNos == null ? Set.of("COMMON") : Set.copyOf(commonProjectNos); + manualReservedLanes = manualReservedLanes == null ? List.of() : List.copyOf(manualReservedLanes); + mixedDeniedProjects = mixedDeniedProjects == null ? Set.of() : Set.copyOf(mixedDeniedProjects); + if (commonSinglePoolReserve < 0) throw new IllegalArgumentException("commonSinglePoolReserve cannot be negative"); + long distinctLanes = manualReservedLanes.stream().map(ManualLaneReservation::laneCode).distinct().count(); + if (distinctLanes != manualReservedLanes.size()) { + throw new IllegalArgumentException("manualReservedLanes contains a duplicate lane"); + } + } + + public InboundPolicy(SchedulingPolicy schedulingPolicy, Set isolatedProjects, + Set commonProjectNos, List manualReservedLanes, + int commonSinglePoolReserve) { + this(schedulingPolicy, isolatedProjects, commonProjectNos, manualReservedLanes, + commonSinglePoolReserve, Set.of()); + } + + public static InboundPolicy defaults() { + return new InboundPolicy(SchedulingPolicy.ft546Defaults(), Set.of(), Set.of("COMMON"), List.of(), 0); + } + + public boolean isIsolated(String projectNo) { + return projectNo != null && isolatedProjects.contains(projectNo); + } + + public boolean isCommon(String projectNo) { + return projectNo != null && commonProjectNos.contains(projectNo); + } + + public boolean allowsMixed(String projectNo) { + return projectNo != null && !mixedDeniedProjects.contains(projectNo); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRejection.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRejection.java new file mode 100644 index 0000000..bba17fd --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRejection.java @@ -0,0 +1,16 @@ +package com.ruoyi.algorithm.inbound; + +import java.util.List; + +public record InboundRejection( + InboundRejectionCode code, + String reason, + String projectNo, + String productId, + String lotNo, + List ladderTrace +) { + public InboundRejection { + ladderTrace = List.copyOf(ladderTrace); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRejectionCode.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRejectionCode.java new file mode 100644 index 0000000..14ff868 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRejectionCode.java @@ -0,0 +1,6 @@ +package com.ruoyi.algorithm.inbound; + +public enum InboundRejectionCode { + NO_FEASIBLE_LOCATION, + NO_BATCH_COMPATIBLE_LANE +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRequest.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRequest.java new file mode 100644 index 0000000..95ac54e --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/InboundRequest.java @@ -0,0 +1,26 @@ +package com.ruoyi.algorithm.inbound; + +import java.util.Set; + +public record InboundRequest( + String requestId, + String trayNo, + String projectNo, + String productId, + String lotNo, + Integer expectedProjectPallets, + Integer entryFloor, + Integer targetFloor, + Set allowedFloors, + BatchLaneMode batchLaneMode +) { + public InboundRequest { + if (requestId == null || requestId.isBlank()) throw new IllegalArgumentException("requestId is required"); + if (trayNo == null || trayNo.isBlank()) throw new IllegalArgumentException("trayNo is required"); + if (expectedProjectPallets != null && expectedProjectPallets <= 0) { + throw new IllegalArgumentException("expectedProjectPallets must be positive"); + } + allowedFloors = allowedFloors == null ? Set.of() : Set.copyOf(allowedFloors); + batchLaneMode = batchLaneMode == null ? BatchLaneMode.OPEN : batchLaneMode; + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/LadderTraceStep.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/LadderTraceStep.java new file mode 100644 index 0000000..809d519 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/LadderTraceStep.java @@ -0,0 +1,4 @@ +package com.ruoyi.algorithm.inbound; + +public record LadderTraceStep(InboundLadderRung rung, String reason) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/ManualLaneReservation.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/ManualLaneReservation.java new file mode 100644 index 0000000..af41f5f --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/ManualLaneReservation.java @@ -0,0 +1,9 @@ +package com.ruoyi.algorithm.inbound; + +public record ManualLaneReservation(String laneCode, String projectNo) { + public ManualLaneReservation { + if (laneCode == null || laneCode.isBlank()) { + throw new IllegalArgumentException("laneCode is required"); + } + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/PendingOutbound.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/PendingOutbound.java new file mode 100644 index 0000000..fe9971d --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/inbound/PendingOutbound.java @@ -0,0 +1,17 @@ +package com.ruoyi.algorithm.inbound; + +public record PendingOutbound(String projectNo, String productId, String trayNo, + String sourceLaneCode, String sourceResolution) { + public PendingOutbound(String projectNo, String productId, String trayNo) { + this(projectNo, productId, trayNo, null, "UNRESOLVED"); + } + + public boolean hasResolvedLane() { + if (sourceLaneCode == null || sourceLaneCode.isBlank() + || sourceResolution == null || sourceResolution.isBlank()) { + return false; + } + return !"UNRESOLVED".equalsIgnoreCase(sourceResolution) + && !"AMBIGUOUS_TRAY".equalsIgnoreCase(sourceResolution); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/AlgorithmConfiguration.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/AlgorithmConfiguration.java new file mode 100644 index 0000000..894a7c1 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/AlgorithmConfiguration.java @@ -0,0 +1,45 @@ +package com.ruoyi.algorithm.integration; + +import com.ruoyi.algorithm.inbound.InboundPlanner; +import com.ruoyi.algorithm.outbound.OutboundPlanner; +import com.ruoyi.algorithm.repository.JdbcWarehouseRepository; +import com.ruoyi.algorithm.repository.RepositoryDialect; +import com.ruoyi.algorithm.repository.WarehouseRepository; +import com.ruoyi.algorithm.service.WarehouseApplicationService; +import com.ruoyi.algorithm.tidy.TidyPlanner; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.PlatformTransactionManager; + +import javax.sql.DataSource; + +@Configuration +@EnableConfigurationProperties(AlgorithmProperties.class) +public class AlgorithmConfiguration { + + @Bean + WarehouseRepository algorithmWarehouseRepository(DataSource dataSource, AlgorithmProperties properties, + PlatformTransactionManager transactionManager) { + if (transactionManager instanceof DataSourceTransactionManager dataSourceTransactionManager + && dataSourceTransactionManager.getDataSource() != dataSource) { + throw new IllegalStateException("Algorithm repository and WMS must use the same DataSource"); + } + return new JdbcWarehouseRepository(dataSource, RepositoryDialect.sqlServer(), + properties.isDatabaseWritesEnabled(), transactionManager); + } + + @Bean + WarehouseApplicationService algorithmApplicationService(WarehouseRepository algorithmWarehouseRepository, + AlgorithmProperties properties) { + return new WarehouseApplicationService(algorithmWarehouseRepository, new InboundPlanner(), + new OutboundPlanner(), new TidyPlanner(), properties.getPageSize()); + } + + @Bean + SchedulingFacade schedulingFacade(WarehouseApplicationService algorithmApplicationService, + AlgorithmProperties properties) { + return new SchedulingFacade(algorithmApplicationService, properties); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/AlgorithmProperties.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/AlgorithmProperties.java new file mode 100644 index 0000000..30acd0e --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/AlgorithmProperties.java @@ -0,0 +1,74 @@ +package com.ruoyi.algorithm.integration; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties(prefix = "fortucky.algorithm") +public class AlgorithmProperties { + private SchedulingMode mode = SchedulingMode.SHADOW; + private String warehouseId = "01"; + private int pageSize = 100; + private boolean databaseWritesEnabled = true; + private boolean legacyFallbackOnTechnicalError; + private long tidyAutoScanMs = 600_000L; + private long tidyReconcileMs = 5_000L; + private int tidyClaimLeaseSeconds = 60; + private int tidyManualMaxConcurrency = 3; + private String tidyWcsSnapshotUrl = "http://localhost:8081/wcs2Wms/api/tidyVehicleSnapshot"; + private String replayRunId = ""; + private String replayDatabase = ""; + + public SchedulingMode getMode() { + return mode; + } + + public void setMode(SchedulingMode mode) { + this.mode = mode; + } + + public String getWarehouseId() { + return warehouseId; + } + + public void setWarehouseId(String warehouseId) { + this.warehouseId = warehouseId; + } + + public int getPageSize() { + return pageSize; + } + + public void setPageSize(int pageSize) { + this.pageSize = pageSize; + } + + public boolean isDatabaseWritesEnabled() { + return databaseWritesEnabled; + } + + public void setDatabaseWritesEnabled(boolean databaseWritesEnabled) { + this.databaseWritesEnabled = databaseWritesEnabled; + } + + public boolean isLegacyFallbackOnTechnicalError() { + return legacyFallbackOnTechnicalError; + } + + public void setLegacyFallbackOnTechnicalError(boolean legacyFallbackOnTechnicalError) { + this.legacyFallbackOnTechnicalError = legacyFallbackOnTechnicalError; + } + + public long getTidyAutoScanMs() { return tidyAutoScanMs; } + public void setTidyAutoScanMs(long value) { this.tidyAutoScanMs = value; } + public long getTidyReconcileMs() { return tidyReconcileMs; } + public void setTidyReconcileMs(long value) { this.tidyReconcileMs = value; } + public int getTidyClaimLeaseSeconds() { return tidyClaimLeaseSeconds; } + public void setTidyClaimLeaseSeconds(int value) { this.tidyClaimLeaseSeconds = value; } + public int getTidyManualMaxConcurrency() { return tidyManualMaxConcurrency; } + public void setTidyManualMaxConcurrency(int value) { this.tidyManualMaxConcurrency = value; } + public String getTidyWcsSnapshotUrl() { return tidyWcsSnapshotUrl; } + public void setTidyWcsSnapshotUrl(String value) { this.tidyWcsSnapshotUrl = value; } + public String getReplayRunId() { return replayRunId; } + public void setReplayRunId(String value) { this.replayRunId = value; } + public String getReplayDatabase() { return replayDatabase; } + public void setReplayDatabase(String value) { this.replayDatabase = value; } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingDecisionStatus.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingDecisionStatus.java new file mode 100644 index 0000000..621c069 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingDecisionStatus.java @@ -0,0 +1,8 @@ +package com.ruoyi.algorithm.integration; + +public enum SchedulingDecisionStatus { + READY, + WAITING, + REJECTED, + TECHNICAL_ERROR +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingFacade.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingFacade.java new file mode 100644 index 0000000..a684c9f --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingFacade.java @@ -0,0 +1,82 @@ +package com.ruoyi.algorithm.integration; + +import com.ruoyi.algorithm.inbound.InboundRequest; +import com.ruoyi.algorithm.outbound.OutboundPlan; +import com.ruoyi.algorithm.outbound.OutboundRequest; +import com.ruoyi.algorithm.repository.DeepWorkflowMutationResult; +import com.ruoyi.algorithm.repository.ReservationResult; +import com.ruoyi.algorithm.service.InboundPlanningResult; +import com.ruoyi.algorithm.service.InboundReservationOutcome; +import com.ruoyi.algorithm.service.WarehouseApplicationService; +import com.ruoyi.algorithm.tidy.TidyPlan; + +import java.time.Instant; + +import java.util.Objects; + +public final class SchedulingFacade { + private final WarehouseApplicationService applicationService; + private final AlgorithmProperties properties; + private final SchedulingRoutingPolicy routingPolicy; + + public SchedulingFacade(WarehouseApplicationService applicationService, AlgorithmProperties properties) { + this.applicationService = Objects.requireNonNull(applicationService, "applicationService"); + this.properties = Objects.requireNonNull(properties, "properties"); + this.routingPolicy = new SchedulingRoutingPolicy(properties.getMode(), + properties.isLegacyFallbackOnTechnicalError()); + } + + public SchedulingRoutingPolicy routingPolicy() { + return routingPolicy; + } + + public String defaultWarehouseId() { + return properties.getWarehouseId(); + } + + public InboundPlanningResult planInbound(String warehouseId, InboundRequest request) { + requireAlgorithmMode(); + return applicationService.planInbound(warehouseId, request); + } + + public InboundReservationOutcome reserveInbound(String reservationId, String warehouseId, + String projectNo, InboundPlanningResult plan) { + requireActiveMode(); + return applicationService.reserveInbound(reservationId, warehouseId, projectNo, plan); + } + + public OutboundPlan planOutbound(String warehouseId, OutboundRequest request) { + requireAlgorithmMode(); + return applicationService.planOutbound(warehouseId, request); + } + + public TidyPlan planTidy(String warehouseId, Instant now) { + requireAlgorithmMode(); + return applicationService.planTidy(warehouseId, now); + } + + public ReservationResult releaseInboundReservation(String warehouseId, String reservationId) { + return applicationService.releaseReservation(warehouseId, reservationId); + } + + public DeepWorkflowMutationResult acquireDeepWorkflowLock(String warehouseId, String requestId, int floorNo) { + requireActiveMode(); + return applicationService.acquireDeepWorkflowLock(warehouseId, requestId, floorNo); + } + + public DeepWorkflowMutationResult releaseDeepWorkflowLock(String warehouseId, String requestId, int floorNo) { + return applicationService.releaseDeepWorkflowLock(warehouseId, requestId, floorNo); + } + + private void requireAlgorithmMode() { + if (!routingPolicy.runAlgorithm()) { + throw new IllegalStateException("Java scheduling is disabled in LEGACY mode"); + } + } + + private void requireActiveMode() { + if (!routingPolicy.algorithmOwnsDecision()) { + throw new IllegalStateException("Algorithm writes require ACTIVE mode"); + } + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingMode.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingMode.java new file mode 100644 index 0000000..e5a7395 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingMode.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.integration; + +public enum SchedulingMode { + LEGACY, + SHADOW, + ACTIVE +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingRoutingPolicy.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingRoutingPolicy.java new file mode 100644 index 0000000..89e4858 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/integration/SchedulingRoutingPolicy.java @@ -0,0 +1,27 @@ +package com.ruoyi.algorithm.integration; + +import java.util.Objects; + +public record SchedulingRoutingPolicy(SchedulingMode mode, boolean legacyFallbackOnTechnicalError) { + + public SchedulingRoutingPolicy { + mode = Objects.requireNonNull(mode, "mode"); + } + + public boolean runAlgorithm() { + return mode != SchedulingMode.LEGACY; + } + + public boolean algorithmOwnsDecision() { + return mode == SchedulingMode.ACTIVE; + } + + public boolean runLegacy(SchedulingDecisionStatus status) { + Objects.requireNonNull(status, "status"); + return switch (mode) { + case LEGACY, SHADOW -> true; + case ACTIVE -> status == SchedulingDecisionStatus.TECHNICAL_ERROR + && legacyFallbackOnTechnicalError; + }; + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/LaneState.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/LaneState.java new file mode 100644 index 0000000..09b878b --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/LaneState.java @@ -0,0 +1,19 @@ +package com.ruoyi.algorithm.model; + +import java.util.List; +import java.util.Optional; + +public record LaneState( + List spaces, + boolean physicallyContinuous, + boolean corrupt, + int segmentCount, + Optional residentProjectNo, + Optional guestProjectNo, + Optional nextSlot, + Optional outerSlot +) { + public LaneState { + spaces = List.copyOf(spaces); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceRole.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceRole.java new file mode 100644 index 0000000..d64e94e --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceRole.java @@ -0,0 +1,8 @@ +package com.ruoyi.algorithm.model; + +public enum SpaceRole { + STORAGE, + RELOCATION_BUFFER, + OUTBOUND_CACHE, + PROTECTED_CORE +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceState.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceState.java new file mode 100644 index 0000000..07b8505 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceState.java @@ -0,0 +1,54 @@ +package com.ruoyi.algorithm.model; + +import java.time.Instant; + +public record SpaceState( + String spaceId, + String zoneCode, + String laneCode, + int depthOrder, + int laneCapacity, + int floorNo, + int aisleNo, + int groupCoding, + String rowCode, + SpaceRole role, + SpaceStatus status, + boolean outboundTaskActive, + boolean inventoryProjectConflict, + String trayNo, + String projectNo, + String productId, + String lotNo, + Instant inboundAt, + Instant outboundAt, + boolean reserved, + String rowVersion, + boolean physicalStockPresent +) { + public SpaceState(String spaceId, String zoneCode, String laneCode, int depthOrder, int laneCapacity, + int floorNo, int aisleNo, int groupCoding, String rowCode, SpaceRole role, + SpaceStatus status, boolean outboundTaskActive, boolean inventoryProjectConflict, + String trayNo, String projectNo, String productId, String lotNo, Instant inboundAt, + Instant outboundAt, boolean reserved, String rowVersion) { + this(spaceId, zoneCode, laneCode, depthOrder, laneCapacity, floorNo, aisleNo, groupCoding, rowCode, + role, status, outboundTaskActive, inventoryProjectConflict, trayNo, projectNo, productId, + lotNo, inboundAt, outboundAt, reserved, rowVersion, false); + } + + public boolean hasTray() { + return trayNo != null && !trayNo.isBlank(); + } + + public boolean occupied() { + return status == SpaceStatus.OCCUPIED || hasTray() || physicalStockPresent; + } + + public boolean availableEmpty() { + return status == SpaceStatus.EMPTY && !reserved && !hasTray() && !physicalStockPresent; + } + + public boolean outboundSelectable() { + return status == SpaceStatus.OCCUPIED && !reserved && hasTray(); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceStatus.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceStatus.java new file mode 100644 index 0000000..8878d05 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/model/SpaceStatus.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.model; + +public enum SpaceStatus { + EMPTY, + OCCUPIED, + DISABLED +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/FifoDecision.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/FifoDecision.java new file mode 100644 index 0000000..e0c6a97 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/FifoDecision.java @@ -0,0 +1,25 @@ +package com.ruoyi.algorithm.outbound; + +import java.time.Instant; +import java.util.Optional; + +public record FifoDecision( + boolean fifoApplied, + String fifoMode, + Integer fifoRank, + Instant oldestInboundTime, + Instant selectedInboundTime, + int fifoDeviationMinutes, + boolean fifoViolation, + String reason, + Optional warning +) { + public FifoDecision { + warning = warning == null ? Optional.empty() : warning; + } + + public static FifoDecision off() { + return new FifoDecision(false, "OFF", null, null, null, 0, false, + "FIFO is disabled", Optional.empty()); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/FifoWarning.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/FifoWarning.java new file mode 100644 index 0000000..544fdbe --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/FifoWarning.java @@ -0,0 +1,4 @@ +package com.ruoyi.algorithm.outbound; + +public record FifoWarning(String code, String message) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundAssignment.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundAssignment.java new file mode 100644 index 0000000..828f66c --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundAssignment.java @@ -0,0 +1,29 @@ +package com.ruoyi.algorithm.outbound; + +import java.util.List; +import java.util.Optional; + +public record OutboundAssignment( + String requestId, + String trayNo, + String projectNo, + String productId, + String sourceSpaceId, + int sourceFloor, + boolean wholeTray, + List blockerSpaceIds, + List blockingTrayNos, + boolean laneReleasing, + double capacityScore, + double efficiencyScore, + double totalScore, + FifoDecision fifo, + Optional workflow, + String reason +) { + public OutboundAssignment { + blockerSpaceIds = List.copyOf(blockerSpaceIds); + blockingTrayNos = List.copyOf(blockingTrayNos); + workflow = workflow == null ? Optional.empty() : workflow; + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundCapacityMode.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundCapacityMode.java new file mode 100644 index 0000000..5e6ab38 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundCapacityMode.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.outbound; + +public enum OutboundCapacityMode { + BALANCED, + WARNING, + CAPACITY_FIRST +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundContext.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundContext.java new file mode 100644 index 0000000..f97abce --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundContext.java @@ -0,0 +1,33 @@ +package com.ruoyi.algorithm.outbound; + +import com.ruoyi.algorithm.model.SpaceState; + +import java.util.List; +import java.util.Map; +import java.util.Set; + +public record OutboundContext( + List spaces, + Map rawInboundTimes, + OutboundCapacityMode capacityMode, + Set activeDeepWorkflowFloors +) { + public OutboundContext { + spaces = List.copyOf(spaces); + rawInboundTimes = Map.copyOf(rawInboundTimes); + capacityMode = capacityMode == null ? OutboundCapacityMode.BALANCED : capacityMode; + activeDeepWorkflowFloors = activeDeepWorkflowFloors == null ? Set.of() : Set.copyOf(activeDeepWorkflowFloors); + } + + public OutboundContext(List spaces, Map rawInboundTimes, + OutboundCapacityMode capacityMode) { + this(spaces, rawInboundTimes, capacityMode, Set.of()); + } + + public String rawInboundTime(SpaceState space) { + if (rawInboundTimes.containsKey(space.spaceId())) { + return rawInboundTimes.get(space.spaceId()); + } + return space.inboundAt() == null ? null : space.inboundAt().toString(); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundError.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundError.java new file mode 100644 index 0000000..5623e17 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundError.java @@ -0,0 +1,9 @@ +package com.ruoyi.algorithm.outbound; + +import java.util.Map; + +public record OutboundError(OutboundErrorCode code, String message, Map details) { + public OutboundError { + details = Map.copyOf(details); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundErrorCode.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundErrorCode.java new file mode 100644 index 0000000..21b4ad3 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundErrorCode.java @@ -0,0 +1,12 @@ +package com.ruoyi.algorithm.outbound; + +public enum OutboundErrorCode { + STOCK_NOT_FOUND, + AMBIGUOUS_TRAY, + OUTBOUND_SCOPE_REQUIRED, + FIFO_INVALID_MODE, + FIFO_INVALID_TOLERANCE, + FIFO_SCOPE_REQUIRED, + FIFO_DATA_MISSING, + FIFO_INVALID_TIME +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlan.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlan.java new file mode 100644 index 0000000..a84bc9d --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlan.java @@ -0,0 +1,32 @@ +package com.ruoyi.algorithm.outbound; + +import java.util.Optional; + +public record OutboundPlan( + OutboundPlanStatus status, + Optional assignment, + Optional waiting, + Optional error, + TaskCountEstimate taskCountEstimate +) { + public OutboundPlan { + assignment = assignment == null ? Optional.empty() : assignment; + waiting = waiting == null ? Optional.empty() : waiting; + error = error == null ? Optional.empty() : error; + } + + public static OutboundPlan ready(OutboundAssignment assignment, TaskCountEstimate estimate) { + return new OutboundPlan(OutboundPlanStatus.READY, Optional.of(assignment), Optional.empty(), + Optional.empty(), estimate); + } + + public static OutboundPlan waiting(OutboundWaiting waiting) { + return new OutboundPlan(OutboundPlanStatus.WAITING, Optional.empty(), Optional.of(waiting), + Optional.empty(), TaskCountEstimate.zero()); + } + + public static OutboundPlan error(OutboundError error) { + return new OutboundPlan(OutboundPlanStatus.ERROR, Optional.empty(), Optional.empty(), + Optional.of(error), TaskCountEstimate.zero()); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlanStatus.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlanStatus.java new file mode 100644 index 0000000..91e5a30 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlanStatus.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.outbound; + +public enum OutboundPlanStatus { + READY, + WAITING, + ERROR +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlanner.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlanner.java new file mode 100644 index 0000000..421f917 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundPlanner.java @@ -0,0 +1,324 @@ +package com.ruoyi.algorithm.outbound; + +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; + +import java.time.Instant; +import java.time.OffsetDateTime; +import java.time.format.DateTimeParseException; +import java.time.temporal.ChronoUnit; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Optional; + +public final class OutboundPlanner { + + public OutboundPlan plan(OutboundRequest request, OutboundContext context) { + String mode = normalizedMode(request.fifoMode()); + if (!List.of("OFF", "STRICT", "FLEXIBLE").contains(mode)) { + return error(OutboundErrorCode.FIFO_INVALID_MODE, "Unsupported FIFO mode", + Map.of("fifoMode", String.valueOf(request.fifoMode()))); + } + int tolerance = request.fifoToleranceMinutes() == null ? 0 : request.fifoToleranceMinutes(); + if (tolerance < 0) { + return error(OutboundErrorCode.FIFO_INVALID_TOLERANCE, + "FIFO tolerance must be a non-negative integer", Map.of("fifoToleranceMinutes", tolerance)); + } + if (blank(request.trayNo()) && blank(request.projectNo())) { + return error(OutboundErrorCode.OUTBOUND_SCOPE_REQUIRED, + "Outbound without a specified tray requires projectNo", Map.of("requestId", request.requestId())); + } + + List physicalMatches = context.spaces().stream() + .filter(SpaceState::occupied) + .filter(space -> matchesRequest(space, request)) + .toList(); + if (physicalMatches.isEmpty()) { + return error(OutboundErrorCode.STOCK_NOT_FOUND, "No matching stock was found", + Map.of("requestId", request.requestId())); + } + if (!blank(request.trayNo()) && physicalMatches.stream().noneMatch(SpaceState::outboundSelectable)) { + return unavailableSource(physicalMatches.get(0)); + } + List businessMatches = physicalMatches.stream() + .filter(SpaceState::outboundSelectable) + .toList(); + if (businessMatches.isEmpty()) { + return unavailableSource(physicalMatches.get(0)); + } + + Selection selection = mode.equals("OFF") + ? selectOff(businessMatches, request, context) + : selectFifo(businessMatches, request, context, mode, tolerance); + if (selection.error() != null) return OutboundPlan.error(selection.error()); + + SpaceState source = selection.source(); + List blockers = actualBlockers(source, context.spaces()); + List unavailableBlockers = blockers.stream() + .filter(blocker -> !blocker.outboundSelectable()) + .toList(); + if (!unavailableBlockers.isEmpty()) { + return OutboundPlan.waiting(new OutboundWaiting(OutboundWaitingCode.WAITING_CHANNEL, + blockers.size(), 0, + "A physical outer pallet is allocated, inspected, locked, or reserved; wait and recalculate", + true, Map.of("sourceSpaceId", source.spaceId(), "laneCode", source.laneCode(), + "blockingSpaceIds", blockers.stream().map(SpaceState::spaceId).toList(), + "blockingTrayNos", blockers.stream().map(SpaceState::trayNo).toList(), + "unavailableBlockingSpaceIds", unavailableBlockers.stream().map(SpaceState::spaceId).toList()))); + } + List buffers = availableBuffers(source.floorNo(), context.spaces()); + if (!blockers.isEmpty() && context.activeDeepWorkflowFloors().contains(source.floorNo())) { + return OutboundPlan.waiting(new OutboundWaiting( + OutboundWaitingCode.WAITING_RELOCATION_BUFFER, + blockers.size(), buffers.size(), + "An active same-floor deep workflow owns the relocation buffer; wait and recalculate", + true, Map.of("floor", source.floorNo(), "sourceSpaceId", source.spaceId(), + "laneCode", source.laneCode()))); + } + if (buffers.size() < blockers.size()) { + List blockerIds = blockers.stream().map(SpaceState::spaceId).toList(); + List blockerTrays = blockers.stream().map(SpaceState::trayNo).toList(); + Map details = new HashMap<>(); + details.put("floor", source.floorNo()); + details.put("required", blockers.size()); + details.put("available", buffers.size()); + details.put("sourceSpaceId", source.spaceId()); + details.put("laneCode", source.laneCode()); + details.put("blockingSpaceIds", blockerIds); + details.put("blockingTrayNos", blockerTrays); + return OutboundPlan.waiting(new OutboundWaiting( + OutboundWaitingCode.WAITING_RELOCATION_BUFFER, + blockers.size(), buffers.size(), + "Insufficient same-floor relocation buffer; wait and recalculate", true, details)); + } + + boolean laneReleasing = context.capacityMode() != OutboundCapacityMode.BALANCED + && occupiedInLane(source, context.spaces()) == 1; + Optional workflow = blockers.isEmpty() + ? Optional.empty() + : Optional.of(buildWorkflow(request, source, blockers, buffers.subList(0, blockers.size()), context.spaces())); + OutboundAssignment assignment = new OutboundAssignment( + request.requestId(), source.trayNo(), source.projectNo(), source.productId(), source.spaceId(), + source.floorNo(), request.wholeTrayOrDefault(), blockers.stream().map(SpaceState::spaceId).toList(), + blockers.stream().map(SpaceState::trayNo).toList(), laneReleasing, 100.0, + efficiencyScore(source, request, context), 100.0, selection.fifo(), workflow, + "Outbound " + source.spaceId() + " with " + blockers.size() + " blocking tray(s)"); + TaskCountEstimate estimate = new TaskCountEstimate(0, 1, blockers.size() * 2, + source.floorNo() == request.exitFloorOrDefault() ? 0 : 1); + return OutboundPlan.ready(assignment, estimate); + } + + private Selection selectOff(List matches, OutboundRequest request, OutboundContext context) { + Comparator comparator = Comparator + .comparingInt((SpaceState space) -> actualBlockers(space, context.spaces()).size()) + .thenComparingInt(space -> laneReleaseRank(space, context)) + .thenComparingInt(SpaceState::floorNo) + .thenComparing(SpaceState::spaceId); + return new Selection(matches.stream().min(comparator).orElseThrow(), FifoDecision.off(), null); + } + + private Selection selectFifo(List requestMatches, OutboundRequest request, + OutboundContext context, String mode, int tolerance) { + SpaceState specified = blank(request.trayNo()) ? null : requestMatches.get(0); + String project = specified == null ? request.projectNo() : specified.projectNo(); + String product = specified == null ? request.productId() : specified.productId(); + if (blank(project)) { + return failed(OutboundErrorCode.FIFO_SCOPE_REQUIRED, + "FIFO scope requires a project or a tray that identifies one", Map.of("requestId", request.requestId())); + } + List scope = context.spaces().stream() + .filter(SpaceState::occupied) + .filter(space -> project.equals(space.projectNo())) + .filter(space -> blank(product) || product.equals(space.productId())) + .toList(); + List missing = scope.stream() + .filter(space -> blank(context.rawInboundTime(space))) + .map(SpaceState::spaceId) + .sorted() + .toList(); + if (!missing.isEmpty()) { + return failed(OutboundErrorCode.FIFO_DATA_MISSING, + "FIFO scope contains stock without inbound time", Map.of("spaceIds", missing)); + } + + List timed = new ArrayList<>(); + for (SpaceState space : scope) { + String raw = context.rawInboundTime(space); + Instant timestamp; + try { + timestamp = OffsetDateTime.parse(raw).toInstant(); + } catch (DateTimeParseException first) { + try { + timestamp = Instant.parse(raw); + } catch (DateTimeParseException second) { + return failed(OutboundErrorCode.FIFO_INVALID_TIME, "Stock has an invalid inbound time", + Map.of("spaceId", space.spaceId(), "inboundTime", raw)); + } + } + timed.add(new TimedStock(space, timestamp, actualBlockers(space, context.spaces()).size(), + laneReleaseRank(space, context), efficiencyScore(space, request, context))); + } + Instant oldest = timed.stream().map(TimedStock::timestamp).min(Instant::compareTo).orElseThrow(); + Comparator costComparator = Comparator.comparingInt(TimedStock::blockerCount) + .thenComparingInt(TimedStock::releaseRank) + .thenComparing(Comparator.comparingInt(TimedStock::efficiencyScore).reversed()) + .thenComparing(TimedStock::timestamp) + .thenComparing(item -> item.space().spaceId()); + + TimedStock selected; + if (specified != null) { + selected = timed.stream().filter(item -> item.space().spaceId().equals(specified.spaceId())) + .findFirst().orElseThrow(); + } else if (mode.equals("STRICT")) { + selected = timed.stream().filter(item -> item.timestamp().equals(oldest)).min(costComparator).orElseThrow(); + } else { + Instant latest = oldest.plus(tolerance, ChronoUnit.MINUTES); + selected = timed.stream().filter(item -> !item.timestamp().isAfter(latest)).min(costComparator).orElseThrow(); + } + + int rank = 1 + (int) timed.stream().filter(item -> item.timestamp().isBefore(selected.timestamp())).count(); + int deviation = Math.toIntExact(ChronoUnit.MINUTES.between(oldest, selected.timestamp())); + boolean overridden = specified != null; + boolean violation = overridden && selected.timestamp().isAfter(oldest); + Optional warning = overridden + ? Optional.of(new FifoWarning("FIFO_OVERRIDDEN_BY_TRAY", violation + ? "Specified tray is not the oldest stock; FIFO was explicitly overridden" + : "Specified tray is in the oldest FIFO cohort")) + : Optional.empty(); + String reason = overridden + ? "Specified tray retained; real FIFO rank reported" + : mode.equals("STRICT") + ? "Global oldest stock selected" + : "Lowest handling cost selected inside the FIFO tolerance window"; + return new Selection(selected.space(), new FifoDecision(true, mode, rank, oldest, selected.timestamp(), + deviation, violation, reason, warning), null); + } + + private OutboundWorkflow buildWorkflow(OutboundRequest request, SpaceState source, List blockers, + List buffers, List spaces) { + List drafts = new ArrayList<>(); + for (int index = 0; index < blockers.size(); index++) { + drafts.add(new DraftStep(id(request.requestId(), "MOVE-OUT", index), OutboundWorkflowPhase.MOVE_OUT, + blockers.get(index).spaceId(), buffers.get(index).spaceId())); + } + drafts.add(new DraftStep(id(request.requestId(), "OUTBOUND", 0), OutboundWorkflowPhase.OUTBOUND, + source.spaceId(), "DIRECT_OUT")); + + List ascending = new ArrayList<>(blockers); + ascending.sort(Comparator.comparingInt(SpaceState::groupCoding).thenComparing(SpaceState::spaceId)); + List compactTargets = spaces.stream() + .filter(space -> space.laneCode().equals(source.laneCode())) + .filter(space -> space.groupCoding() >= source.groupCoding()) + .sorted(Comparator.comparingInt(SpaceState::groupCoding).thenComparing(SpaceState::spaceId)) + .limit(blockers.size()) + .toList(); + for (int index = 0; index < ascending.size(); index++) { + SpaceState blocker = ascending.get(index); + int bufferIndex = blockers.indexOf(blocker); + String target = request.wholeTrayOrDefault() ? compactTargets.get(index).spaceId() : blocker.spaceId(); + drafts.add(new DraftStep(id(request.requestId(), "RESTORE", index), OutboundWorkflowPhase.RESTORE, + buffers.get(bufferIndex).spaceId(), target)); + } + + List steps = new ArrayList<>(); + for (int index = 0; index < drafts.size(); index++) { + DraftStep draft = drafts.get(index); + steps.add(new OutboundWorkflowStep(draft.assignmentId(), draft.phase(), draft.sourceSpaceId(), + draft.targetSpaceId(), index + 1, drafts.size(), index == 0 ? null : drafts.get(index - 1).assignmentId())); + } + List laneLocks = spaces.stream() + .filter(space -> space.laneCode().equals(source.laneCode())) + .sorted(Comparator.comparingInt(SpaceState::groupCoding).thenComparing(SpaceState::spaceId)) + .map(SpaceState::spaceId) + .toList(); + return new OutboundWorkflow(request.requestId(), source.spaceId(), source.laneCode(), source.floorNo(), steps, + laneLocks, buffers.stream().map(SpaceState::spaceId).toList(), "RELEASE_AFTER_FINAL_RESTORE"); + } + + private List actualBlockers(SpaceState source, List spaces) { + return spaces.stream() + .filter(space -> space.laneCode().equals(source.laneCode())) + .filter(space -> space.groupCoding() > source.groupCoding()) + .filter(SpaceState::occupied) + .sorted(Comparator.comparingInt(SpaceState::groupCoding).reversed() + .thenComparing(SpaceState::spaceId)) + .toList(); + } + + private List availableBuffers(int floor, List spaces) { + return spaces.stream() + .filter(space -> space.floorNo() == floor) + .filter(space -> space.role() == SpaceRole.RELOCATION_BUFFER) + .filter(SpaceState::availableEmpty) + .sorted(Comparator.comparing(SpaceState::spaceId)) + .toList(); + } + + private boolean matchesRequest(SpaceState space, OutboundRequest request) { + if (!blank(request.trayNo())) return request.trayNo().equals(space.trayNo()); + return request.projectNo().equals(space.projectNo()) + && (blank(request.productId()) || request.productId().equals(space.productId())); + } + + private int laneReleaseRank(SpaceState space, OutboundContext context) { + return context.capacityMode() != OutboundCapacityMode.BALANCED + && occupiedInLane(space, context.spaces()) == 1 ? 0 : 1; + } + + private int occupiedInLane(SpaceState source, List spaces) { + return (int) spaces.stream() + .filter(space -> space.laneCode().equals(source.laneCode())) + .filter(SpaceState::occupied) + .count(); + } + + private int efficiencyScore(SpaceState space, OutboundRequest request, OutboundContext context) { + return 100 - Math.abs(space.floorNo() - request.exitFloorOrDefault()) * 12 + - actualBlockers(space, context.spaces()).size() * 10; + } + + private OutboundPlan error(OutboundErrorCode code, String message, Map details) { + return OutboundPlan.error(new OutboundError(code, message, details)); + } + + private OutboundPlan unavailableSource(SpaceState source) { + Map details = new HashMap<>(); + details.put("sourceSpaceId", source.spaceId()); + details.put("laneCode", source.laneCode()); + if (!blank(source.trayNo())) details.put("trayNo", source.trayNo()); + return OutboundPlan.waiting(new OutboundWaiting(OutboundWaitingCode.WAITING_CHANNEL, 0, 0, + "Requested stock is allocated, inspected, locked, or reserved; wait and recalculate", true, + details)); + } + + private Selection failed(OutboundErrorCode code, String message, Map details) { + return new Selection(null, null, new OutboundError(code, message, details)); + } + + private String normalizedMode(String value) { + return blank(value) ? "OFF" : value.trim().toUpperCase(Locale.ROOT); + } + + private String id(String requestId, String phase, int index) { + return requestId + "-" + phase + "-" + String.format(Locale.ROOT, "%02d", index + 1); + } + + private boolean blank(String value) { + return value == null || value.isBlank(); + } + + private record Selection(SpaceState source, FifoDecision fifo, OutboundError error) { + } + + private record TimedStock(SpaceState space, Instant timestamp, int blockerCount, int releaseRank, + int efficiencyScore) { + } + + private record DraftStep(String assignmentId, OutboundWorkflowPhase phase, String sourceSpaceId, + String targetSpaceId) { + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundRequest.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundRequest.java new file mode 100644 index 0000000..64db789 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundRequest.java @@ -0,0 +1,20 @@ +package com.ruoyi.algorithm.outbound; + +public record OutboundRequest( + String requestId, + String trayNo, + String projectNo, + String productId, + String fifoMode, + Integer fifoToleranceMinutes, + Integer exitFloor, + Boolean wholeTray +) { + public boolean wholeTrayOrDefault() { + return wholeTray == null || wholeTray; + } + + public int exitFloorOrDefault() { + return exitFloor == null ? 1 : exitFloor; + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWaiting.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWaiting.java new file mode 100644 index 0000000..2d6096e --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWaiting.java @@ -0,0 +1,16 @@ +package com.ruoyi.algorithm.outbound; + +import java.util.Map; + +public record OutboundWaiting( + OutboundWaitingCode code, + int required, + int available, + String reason, + boolean retryable, + Map details +) { + public OutboundWaiting { + details = Map.copyOf(details); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWaitingCode.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWaitingCode.java new file mode 100644 index 0000000..6e12728 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWaitingCode.java @@ -0,0 +1,6 @@ +package com.ruoyi.algorithm.outbound; + +public enum OutboundWaitingCode { + WAITING_RELOCATION_BUFFER, + WAITING_CHANNEL +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflow.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflow.java new file mode 100644 index 0000000..30ee30e --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflow.java @@ -0,0 +1,20 @@ +package com.ruoyi.algorithm.outbound; + +import java.util.List; + +public record OutboundWorkflow( + String workflowId, + String sourceSpaceId, + String laneCode, + int floorNo, + List steps, + List lockedLaneSpaceIds, + List lockedBufferSpaceIds, + String lockReleaseRule +) { + public OutboundWorkflow { + steps = List.copyOf(steps); + lockedLaneSpaceIds = List.copyOf(lockedLaneSpaceIds); + lockedBufferSpaceIds = List.copyOf(lockedBufferSpaceIds); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflowPhase.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflowPhase.java new file mode 100644 index 0000000..72af895 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflowPhase.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.outbound; + +public enum OutboundWorkflowPhase { + MOVE_OUT, + OUTBOUND, + RESTORE +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflowStep.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflowStep.java new file mode 100644 index 0000000..21a6df8 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/OutboundWorkflowStep.java @@ -0,0 +1,12 @@ +package com.ruoyi.algorithm.outbound; + +public record OutboundWorkflowStep( + String assignmentId, + OutboundWorkflowPhase phase, + String sourceSpaceId, + String targetSpaceId, + int workflowStep, + int workflowTotalSteps, + String dependsOnAssignmentId +) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/TaskCountEstimate.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/TaskCountEstimate.java new file mode 100644 index 0000000..fb91d4e --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/outbound/TaskCountEstimate.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.outbound; + +public record TaskCountEstimate(int inbound, int outbound, int relocation, int floorChange) { + public static TaskCountEstimate zero() { + return new TaskCountEstimate(0, 0, 0, 0); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/policy/SchedulingPolicy.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/policy/SchedulingPolicy.java new file mode 100644 index 0000000..a8f1226 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/policy/SchedulingPolicy.java @@ -0,0 +1,16 @@ +package com.ruoyi.algorithm.policy; + +public record SchedulingPolicy( + double capacityWeight, + double efficiencyWeight, + int warningOccupied, + int capacityFirstOccupied, + int maxOccupied, + int relocationBuffersPerFloor, + int outboundCachesPerFloor, + int maxTidyCandidates +) { + public static SchedulingPolicy ft546Defaults() { + return new SchedulingPolicy(0.55, 0.45, 564, 597, 615, 4, 2, 10); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DecisionLogEntry.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DecisionLogEntry.java new file mode 100644 index 0000000..fe28bd0 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DecisionLogEntry.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.repository; + +import java.time.Instant; + +public record DecisionLogEntry(String decisionId, String warehouseId, String decisionType, + VersionToken inputVersion, String resultCode, String reason, Instant createdAt) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DecisionLogRecord.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DecisionLogRecord.java new file mode 100644 index 0000000..6ec914e --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DecisionLogRecord.java @@ -0,0 +1,5 @@ +package com.ruoyi.algorithm.repository; + +public record DecisionLogRecord(String decisionId, String warehouseId, String decisionType, + VersionToken inputVersion, String resultCode, String reason) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DeepWorkflowMutationResult.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DeepWorkflowMutationResult.java new file mode 100644 index 0000000..0f1dbfe --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/DeepWorkflowMutationResult.java @@ -0,0 +1,9 @@ +package com.ruoyi.algorithm.repository; + +public record DeepWorkflowMutationResult(boolean changed, String reasonCode) { + public static DeepWorkflowMutationResult succeeded() { return new DeepWorkflowMutationResult(true, null); } + public static DeepWorkflowMutationResult unchanged() { return new DeepWorkflowMutationResult(false, null); } + public static DeepWorkflowMutationResult writesDisabled() { + return new DeepWorkflowMutationResult(false, "WRITES_DISABLED"); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/H2TopologyReadModel.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/H2TopologyReadModel.java new file mode 100644 index 0000000..03d02ca --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/H2TopologyReadModel.java @@ -0,0 +1,61 @@ +package com.ruoyi.algorithm.repository; + +import org.springframework.jdbc.core.JdbcTemplate; + +import java.util.Objects; + +final class H2TopologyReadModel { + private final JdbcTemplate jdbc; + + H2TopologyReadModel(JdbcTemplate jdbc) { + this.jdbc = Objects.requireNonNull(jdbc, "jdbc"); + } + + boolean changed(String warehouseId) { + String expectedMismatch = "WITH LANE_TOPOLOGY AS (" + + "SELECT WAREHOUSE_ID,GROUP_CODING_NO AS LANE_CODE,COUNT(*) AS LANE_DEPTH," + + "MAX(THE_COLUMN) AS COLUMN_NO,MIN(THE_PLATOON) AS ROW_NO,MIN(THE_FLOOR) AS FLOOR_NO," + + "MIN(CARGO_SPACE_ID) AS STABLE_ID FROM BAS_CARGO_SPACE WHERE WAREHOUSE_ID=? " + + "GROUP BY WAREHOUSE_ID,GROUP_CODING_NO), RANKED_LANES AS (" + + "SELECT LANE_TOPOLOGY.*,CASE WHEN LANE_DEPTH=1 THEN ROW_NUMBER() OVER (" + + "PARTITION BY WAREHOUSE_ID ORDER BY CASE WHEN LANE_DEPTH=1 THEN 0 ELSE 1 END," + + "COLUMN_NO DESC,ROW_NO ASC,FLOOR_NO ASC,STABLE_ID ASC) END AS SINGLE_DEPTH_RANK " + + "FROM LANE_TOPOLOGY), EXPECTED AS (SELECT C.CARGO_SPACE_ID AS SPACE_ID,C.WAREHOUSE_ID," + + "C.GROUP_CODING_NO AS LANE_CODE,R.LANE_DEPTH,CASE WHEN R.LANE_DEPTH=1 " + + "AND R.SINGLE_DEPTH_RANK<=80 THEN 'CACHE' WHEN R.LANE_DEPTH=1 AND R.SINGLE_DEPTH_RANK<=133 " + + "THEN 'RESERVE' WHEN R.LANE_DEPTH=5 THEN 'MAIN' ELSE 'FLEX' END AS BASE_ZONE " + + "FROM BAS_CARGO_SPACE C JOIN RANKED_LANES R ON R.WAREHOUSE_ID=C.WAREHOUSE_ID " + + "AND R.LANE_CODE=C.GROUP_CODING_NO WHERE C.WAREHOUSE_ID=?) " + + "SELECT COUNT(*) FROM EXPECTED E LEFT JOIN ALG_SPACE_TOPOLOGY T ON T.SPACE_ID=E.SPACE_ID " + + "WHERE T.SPACE_ID IS NULL OR T.WAREHOUSE_ID<>E.WAREHOUSE_ID OR T.LANE_CODE<>E.LANE_CODE " + + "OR T.LANE_DEPTH<>E.LANE_DEPTH OR T.BASE_ZONE<>E.BASE_ZONE"; + Integer mismatched = jdbc.queryForObject(expectedMismatch, Integer.class, warehouseId, warehouseId); + if (mismatched != null && mismatched > 0) { + return true; + } + Integer stale = jdbc.queryForObject("SELECT COUNT(*) FROM ALG_SPACE_TOPOLOGY T LEFT JOIN BAS_CARGO_SPACE C " + + "ON C.CARGO_SPACE_ID=T.SPACE_ID AND C.WAREHOUSE_ID=T.WAREHOUSE_ID " + + "WHERE T.WAREHOUSE_ID=? AND C.CARGO_SPACE_ID IS NULL", + Integer.class, warehouseId); + return stale != null && stale > 0; + } + + void rebuild(String warehouseId) { + jdbc.update("DELETE FROM ALG_SPACE_TOPOLOGY WHERE WAREHOUSE_ID=?", warehouseId); + jdbc.update("INSERT INTO ALG_SPACE_TOPOLOGY (WAREHOUSE_ID,SPACE_ID,LANE_CODE,LANE_DEPTH,BASE_ZONE) " + + "WITH LANE_TOPOLOGY AS (SELECT WAREHOUSE_ID,GROUP_CODING_NO AS LANE_CODE," + + "COUNT(*) AS LANE_DEPTH,MAX(THE_COLUMN) AS COLUMN_NO,MIN(THE_PLATOON) AS ROW_NO," + + "MIN(THE_FLOOR) AS FLOOR_NO,MIN(CARGO_SPACE_ID) AS STABLE_ID FROM BAS_CARGO_SPACE " + + "WHERE WAREHOUSE_ID=? GROUP BY WAREHOUSE_ID,GROUP_CODING_NO), RANKED_LANES AS (" + + "SELECT LANE_TOPOLOGY.*,CASE WHEN LANE_DEPTH=1 THEN ROW_NUMBER() OVER (" + + "PARTITION BY WAREHOUSE_ID ORDER BY CASE WHEN LANE_DEPTH=1 THEN 0 ELSE 1 END," + + "COLUMN_NO DESC,ROW_NO ASC,FLOOR_NO ASC,STABLE_ID ASC) END AS SINGLE_DEPTH_RANK " + + "FROM LANE_TOPOLOGY) SELECT C.WAREHOUSE_ID,C.CARGO_SPACE_ID,C.GROUP_CODING_NO," + + "R.LANE_DEPTH,CASE WHEN R.LANE_DEPTH=1 AND R.SINGLE_DEPTH_RANK<=80 THEN 'CACHE' " + + "WHEN R.LANE_DEPTH=1 AND R.SINGLE_DEPTH_RANK<=133 THEN 'RESERVE' " + + "WHEN R.LANE_DEPTH=5 THEN 'MAIN' ELSE 'FLEX' END FROM BAS_CARGO_SPACE C " + + "JOIN RANKED_LANES R ON R.WAREHOUSE_ID=C.WAREHOUSE_ID " + + "AND R.LANE_CODE=C.GROUP_CODING_NO WHERE C.WAREHOUSE_ID=?", + warehouseId, warehouseId); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/InboundReservation.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/InboundReservation.java new file mode 100644 index 0000000..5df00ee --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/InboundReservation.java @@ -0,0 +1,5 @@ +package com.ruoyi.algorithm.repository; + +public record InboundReservation(String reservationId, String warehouseId, String laneCode, + String spaceId, String projectNo, VersionToken expectedVersion) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/InventoryItem.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/InventoryItem.java new file mode 100644 index 0000000..f611481 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/InventoryItem.java @@ -0,0 +1,9 @@ +package com.ruoyi.algorithm.repository; + +import java.math.BigDecimal; +import java.time.Instant; + +public record InventoryItem(String stockId, String spaceId, String trayNo, String projectNo, String productNo, + String lotNo, String inboundTimeRaw, Instant inboundAt, + BigDecimal quantity, BigDecimal outboundQuantity) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepository.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepository.java new file mode 100644 index 0000000..437a558 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepository.java @@ -0,0 +1,845 @@ +package com.ruoyi.algorithm.repository; + +import com.ruoyi.algorithm.inbound.InboundPolicy; +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import com.ruoyi.algorithm.policy.SchedulingPolicy; +import org.springframework.dao.DuplicateKeyException; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.core.RowMapper; +import org.springframework.jdbc.core.namedparam.MapSqlParameterSource; +import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.support.TransactionTemplate; + +import javax.sql.DataSource; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Types; +import java.sql.Timestamp; +import java.time.Instant; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Comparator; +import java.util.EnumSet; +import java.util.HexFormat; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Optional; +import java.util.Set; +import java.util.UUID; +import java.util.function.Function; +import java.util.stream.Collectors; + +public final class JdbcWarehouseRepository implements WarehouseRepository { + public static final int MAX_PAGE_SIZE = 200; + + private final RepositoryDialect dialect; + private final JdbcTemplate jdbc; + private final NamedParameterJdbcTemplate named; + private final TransactionTemplate transactions; + private final H2TopologyReadModel h2Topology; + private final boolean writesEnabled; + + public JdbcWarehouseRepository(DataSource dataSource, RepositoryDialect dialect) { + this(dataSource, dialect, true); + } + + public JdbcWarehouseRepository(DataSource dataSource, RepositoryDialect dialect, boolean writesEnabled) { + this(dataSource, dialect, writesEnabled, new DataSourceTransactionManager(dataSource)); + } + + public JdbcWarehouseRepository(DataSource dataSource, RepositoryDialect dialect, boolean writesEnabled, + PlatformTransactionManager transactionManager) { + this.dialect = Objects.requireNonNull(dialect, "dialect"); + this.jdbc = new JdbcTemplate(dataSource); + this.named = new NamedParameterJdbcTemplate(dataSource); + this.transactions = new TransactionTemplate(Objects.requireNonNull(transactionManager, "transactionManager")); + this.h2Topology = new H2TopologyReadModel(jdbc); + this.writesEnabled = writesEnabled; + } + + @Override + public void synchronizeReadModel(String warehouseId) { + if (!writesEnabled) throw new IllegalStateException("Database writes are disabled"); + if (blankToNull(warehouseId) == null) throw new IllegalArgumentException("warehouseId is required"); + if (!dialect.h2Database()) { + jdbc.update("EXEC alg.usp_sync_inventory_snapshot @warehouse_id=?", warehouseId); + jdbc.update("EXEC alg.usp_rebuild_lane_state @warehouse_id=?", warehouseId); + return; + } + transactions.executeWithoutResult(status -> synchronizeH2ReadModel(warehouseId)); + } + + @Override + public void refreshChangedLanes(String warehouseId) { + if (!writesEnabled) throw new IllegalStateException("Database writes are disabled"); + if (blankToNull(warehouseId) == null) throw new IllegalArgumentException("warehouseId is required"); + if (!dialect.h2Database()) { + jdbc.update("EXEC alg.usp_refresh_dirty_lanes @warehouse_id=?", warehouseId); + return; + } + transactions.executeWithoutResult(status -> refreshChangedLanesH2(warehouseId)); + } + + private void refreshChangedLanesH2(String warehouseId) { + LinkedHashSet laneCodes = new LinkedHashSet<>(jdbc.queryForList( + "SELECT GROUP_CODING_NO FROM BAS_CARGO_SPACE WHERE WAREHOUSE_ID=? " + + "UNION SELECT LANE_CODE FROM ALG_LANE_STATE WHERE WAREHOUSE_ID=? ORDER BY 1", + String.class, warehouseId, warehouseId)); + if (h2Topology.changed(warehouseId)) { + h2Topology.rebuild(warehouseId); + laneCodes.addAll(jdbc.queryForList("SELECT DISTINCT GROUP_CODING_NO FROM BAS_CARGO_SPACE " + + "WHERE WAREHOUSE_ID=? ORDER BY GROUP_CODING_NO", String.class, warehouseId)); + jdbc.update("DELETE FROM ALG_INVENTORY_ITEM_SNAPSHOT WHERE WAREHOUSE_ID=? AND SPACE_ID NOT IN " + + "(SELECT CARGO_SPACE_ID FROM BAS_CARGO_SPACE WHERE WAREHOUSE_ID=?)", + warehouseId, warehouseId); + jdbc.update("DELETE FROM ALG_SPACE_INVENTORY_SUMMARY WHERE WAREHOUSE_ID=? AND SPACE_ID NOT IN " + + "(SELECT CARGO_SPACE_ID FROM BAS_CARGO_SPACE WHERE WAREHOUSE_ID=?)", + warehouseId, warehouseId); + } + List dirtyLanes = laneCodes.stream().filter(laneCode -> { + List stored = jdbc.queryForList("SELECT SEMANTIC_FINGERPRINT FROM ALG_LANE_STATE " + + "WHERE WAREHOUSE_ID=? AND LANE_CODE=?", + String.class, warehouseId, laneCode); + return stored.isEmpty() || !Objects.equals(stored.get(0), + h2SemanticFingerprint(warehouseId, laneCode, InventoryFingerprintSource.LIVE)); + }).toList(); + dirtyLanes.forEach(laneCode -> refreshH2InventoryLane(warehouseId, laneCode)); + dirtyLanes.forEach(laneCode -> refreshH2LaneState(warehouseId, laneCode)); + } + + private void refreshH2InventoryLane(String warehouseId, String laneCode) { + jdbc.update("DELETE FROM ALG_SPACE_INVENTORY_SUMMARY WHERE WAREHOUSE_ID=? AND SPACE_ID IN " + + "(SELECT CARGO_SPACE_ID FROM BAS_CARGO_SPACE WHERE WAREHOUSE_ID=? AND GROUP_CODING_NO=?)", + warehouseId, warehouseId, laneCode); + jdbc.update("DELETE FROM ALG_INVENTORY_ITEM_SNAPSHOT WHERE WAREHOUSE_ID=? AND SPACE_ID IN " + + "(SELECT CARGO_SPACE_ID FROM BAS_CARGO_SPACE WHERE WAREHOUSE_ID=? AND GROUP_CODING_NO=?)", + warehouseId, warehouseId, laneCode); + jdbc.update("INSERT INTO ALG_INVENTORY_ITEM_SNAPSHOT " + + "(WAREHOUSE_ID,STOCK_ID,SPACE_ID,TRAY_CODE,PROJECT_NO,PRODUCT_NO,LOT_NO," + + "INBOUND_TIME_RAW,INBOUND_AT,QUANTITY,OUT_QUANTITY) " + + "SELECT C.WAREHOUSE_ID,S.STOCK_ID,S.CARGO_SPACE_ID,S.TRAY_CODE,S.SPARE4,S.PRODUCT_ID," + + "S.LOT_NO,S.IN_DATE,ALG_TRY_TIMESTAMP(S.IN_DATE),S.QUANTITY,S.OUT_QUANTITY " + + "FROM BAS_STOCK S JOIN BAS_CARGO_SPACE C ON C.CARGO_SPACE_ID=S.CARGO_SPACE_ID " + + "WHERE C.WAREHOUSE_ID=? AND C.GROUP_CODING_NO=?", + warehouseId, laneCode); + jdbc.update("INSERT INTO ALG_SPACE_INVENTORY_SUMMARY " + + "(WAREHOUSE_ID,SPACE_ID,STOCK_DETAIL_COUNT,STOCK_TRAY_COUNT,STOCK_PROJECT_COUNT,STOCK_PRODUCT_COUNT) " + + "SELECT I.WAREHOUSE_ID,I.SPACE_ID,COUNT(*),COUNT(DISTINCT NULLIF(TRIM(I.TRAY_CODE),''))," + + "COUNT(DISTINCT NULLIF(TRIM(I.PROJECT_NO),'')),COUNT(DISTINCT NULLIF(TRIM(I.PRODUCT_NO),'')) " + + "FROM ALG_INVENTORY_ITEM_SNAPSHOT I JOIN BAS_CARGO_SPACE C ON C.CARGO_SPACE_ID=I.SPACE_ID " + + "AND C.WAREHOUSE_ID=I.WAREHOUSE_ID WHERE I.WAREHOUSE_ID=? AND C.GROUP_CODING_NO=? " + + "GROUP BY I.WAREHOUSE_ID,I.SPACE_ID", + warehouseId, laneCode); + } + + private void refreshH2LaneState(String warehouseId, String laneCode) { + List> source = jdbc.queryForList("SELECT WAREHOUSE_ID,LANE_CODE,COUNT(*) SPACE_COUNT," + + "SUM(CASE WHEN SPACE_STATUS='2' OR STOCK_DETAIL_COUNT>0 THEN 1 ELSE 0 END) OCCUPIED_COUNT," + + "SUM(CASE WHEN INBOUND_AVAILABLE=TRUE THEN 1 ELSE 0 END) AVAILABLE_COUNT," + + "MAX(CASE WHEN PENDING_OUTBOUND=TRUE THEN 1 ELSE 0 END) PENDING_OUTBOUND," + + "MAX(CASE WHEN HAS_GAP=TRUE THEN 1 ELSE 0 END) HAS_GAP " + + "FROM ALG_V_SPACE_STATE WHERE WAREHOUSE_ID=? AND LANE_CODE=? " + + "GROUP BY WAREHOUSE_ID,LANE_CODE", + warehouseId, laneCode); + if (source.isEmpty()) { + jdbc.update("DELETE FROM ALG_LANE_STATE WHERE WAREHOUSE_ID=? AND LANE_CODE=?", + warehouseId, laneCode); + return; + } + Map lane = source.get(0); + int spaces = number(lane, "SPACE_COUNT"); + int occupied = number(lane, "OCCUPIED_COUNT"); + int available = number(lane, "AVAILABLE_COUNT"); + boolean pending = number(lane, "PENDING_OUTBOUND") != 0; + boolean gap = number(lane, "HAS_GAP") != 0; + String fingerprint = h2SemanticFingerprint(warehouseId, laneCode, + InventoryFingerprintSource.SNAPSHOT); + List> existing = jdbc.queryForList( + "SELECT SPACE_COUNT,OCCUPIED_COUNT,AVAILABLE_COUNT,PENDING_OUTBOUND,HAS_GAP," + + "SEMANTIC_FINGERPRINT FROM ALG_LANE_STATE WHERE WAREHOUSE_ID=? AND LANE_CODE=?", + warehouseId, laneCode); + if (existing.isEmpty()) { + jdbc.update("INSERT INTO ALG_LANE_STATE (WAREHOUSE_ID,LANE_CODE,SPACE_COUNT,OCCUPIED_COUNT," + + "AVAILABLE_COUNT,PENDING_OUTBOUND,HAS_GAP,SEMANTIC_FINGERPRINT,STATE_VERSION) " + + "VALUES (?,?,?,?,?,?,?,?,1)", + warehouseId, laneCode, spaces, occupied, available, pending, gap, fingerprint); + return; + } + Map old = existing.get(0); + boolean changed = number(old, "SPACE_COUNT") != spaces || number(old, "OCCUPIED_COUNT") != occupied + || number(old, "AVAILABLE_COUNT") != available + || booleanValue(old.get("PENDING_OUTBOUND")) != pending + || booleanValue(old.get("HAS_GAP")) != gap + || !Objects.equals(old.get("SEMANTIC_FINGERPRINT"), fingerprint); + if (changed) { + jdbc.update("UPDATE ALG_LANE_STATE SET SPACE_COUNT=?,OCCUPIED_COUNT=?,AVAILABLE_COUNT=?," + + "PENDING_OUTBOUND=?,HAS_GAP=?,SEMANTIC_FINGERPRINT=?,STATE_VERSION=STATE_VERSION+1," + + "REBUILT_AT=CURRENT_TIMESTAMP WHERE WAREHOUSE_ID=? AND LANE_CODE=?", + spaces, occupied, available, pending, gap, fingerprint, warehouseId, laneCode); + } + } + + private void synchronizeH2ReadModel(String warehouseId) { + jdbc.update("DELETE FROM ALG_SPACE_INVENTORY_SUMMARY WHERE WAREHOUSE_ID = ?", warehouseId); + jdbc.update("DELETE FROM ALG_INVENTORY_ITEM_SNAPSHOT WHERE WAREHOUSE_ID = ?", warehouseId); + jdbc.update("INSERT INTO ALG_INVENTORY_ITEM_SNAPSHOT " + + "(WAREHOUSE_ID,STOCK_ID,SPACE_ID,TRAY_CODE,PROJECT_NO,PRODUCT_NO,LOT_NO," + + "INBOUND_TIME_RAW,INBOUND_AT,QUANTITY,OUT_QUANTITY) " + + "SELECT C.WAREHOUSE_ID,S.STOCK_ID,S.CARGO_SPACE_ID,S.TRAY_CODE,S.SPARE4,S.PRODUCT_ID," + + "S.LOT_NO,S.IN_DATE,ALG_TRY_TIMESTAMP(S.IN_DATE),S.QUANTITY,S.OUT_QUANTITY " + + "FROM BAS_STOCK S JOIN BAS_CARGO_SPACE C ON C.CARGO_SPACE_ID=S.CARGO_SPACE_ID " + + "WHERE C.WAREHOUSE_ID = ?", warehouseId); + jdbc.update("INSERT INTO ALG_SPACE_INVENTORY_SUMMARY " + + "(WAREHOUSE_ID,SPACE_ID,STOCK_DETAIL_COUNT,STOCK_TRAY_COUNT,STOCK_PROJECT_COUNT,STOCK_PRODUCT_COUNT) " + + "SELECT WAREHOUSE_ID,SPACE_ID,COUNT(*),COUNT(DISTINCT NULLIF(TRIM(TRAY_CODE),''))," + + "COUNT(DISTINCT NULLIF(TRIM(PROJECT_NO),'')),COUNT(DISTINCT NULLIF(TRIM(PRODUCT_NO),'')) " + + "FROM ALG_INVENTORY_ITEM_SNAPSHOT WHERE WAREHOUSE_ID = ? GROUP BY WAREHOUSE_ID,SPACE_ID", + warehouseId); + + List> source = jdbc.queryForList("SELECT WAREHOUSE_ID,LANE_CODE,COUNT(*) SPACE_COUNT," + + "SUM(CASE WHEN SPACE_STATUS='2' OR STOCK_DETAIL_COUNT>0 THEN 1 ELSE 0 END) OCCUPIED_COUNT," + + "SUM(CASE WHEN INBOUND_AVAILABLE=TRUE THEN 1 ELSE 0 END) AVAILABLE_COUNT," + + "MAX(CASE WHEN PENDING_OUTBOUND=TRUE THEN 1 ELSE 0 END) PENDING_OUTBOUND," + + "MAX(CASE WHEN HAS_GAP=TRUE THEN 1 ELSE 0 END) HAS_GAP " + + "FROM ALG_V_SPACE_STATE WHERE WAREHOUSE_ID=? GROUP BY WAREHOUSE_ID,LANE_CODE ORDER BY LANE_CODE", + warehouseId); + Set currentLanes = new LinkedHashSet<>(); + for (Map lane : source) { + String laneCode = lane.get("LANE_CODE").toString(); + currentLanes.add(laneCode); + String fingerprint = h2SemanticFingerprint(warehouseId, laneCode, + InventoryFingerprintSource.SNAPSHOT); + List> existing = jdbc.queryForList("SELECT SPACE_COUNT,OCCUPIED_COUNT,AVAILABLE_COUNT," + + "PENDING_OUTBOUND,HAS_GAP,SEMANTIC_FINGERPRINT,STATE_VERSION FROM ALG_LANE_STATE " + + "WHERE WAREHOUSE_ID=? AND LANE_CODE=?", warehouseId, laneCode); + int spaces = number(lane, "SPACE_COUNT"); + int occupied = number(lane, "OCCUPIED_COUNT"); + int available = number(lane, "AVAILABLE_COUNT"); + boolean pending = number(lane, "PENDING_OUTBOUND") != 0; + boolean gap = number(lane, "HAS_GAP") != 0; + if (existing.isEmpty()) { + jdbc.update("INSERT INTO ALG_LANE_STATE (WAREHOUSE_ID,LANE_CODE,SPACE_COUNT,OCCUPIED_COUNT," + + "AVAILABLE_COUNT,PENDING_OUTBOUND,HAS_GAP,SEMANTIC_FINGERPRINT,STATE_VERSION) " + + "VALUES (?,?,?,?,?,?,?,?,1)", warehouseId, laneCode, spaces, occupied, available, + pending, gap, fingerprint); + continue; + } + Map old = existing.get(0); + boolean changed = number(old, "SPACE_COUNT") != spaces || number(old, "OCCUPIED_COUNT") != occupied + || number(old, "AVAILABLE_COUNT") != available + || booleanValue(old.get("PENDING_OUTBOUND")) != pending + || booleanValue(old.get("HAS_GAP")) != gap + || !fingerprint.equals(Objects.toString(old.get("SEMANTIC_FINGERPRINT"), "")); + if (changed) { + jdbc.update("UPDATE ALG_LANE_STATE SET SPACE_COUNT=?,OCCUPIED_COUNT=?,AVAILABLE_COUNT=?," + + "PENDING_OUTBOUND=?,HAS_GAP=?,SEMANTIC_FINGERPRINT=?,STATE_VERSION=STATE_VERSION+1," + + "REBUILT_AT=CURRENT_TIMESTAMP WHERE WAREHOUSE_ID=? AND LANE_CODE=?", + spaces, occupied, available, pending, gap, fingerprint, warehouseId, laneCode); + } + } + jdbc.queryForList("SELECT LANE_CODE FROM ALG_LANE_STATE WHERE WAREHOUSE_ID=?", String.class, warehouseId) + .stream().filter(lane -> !currentLanes.contains(lane)) + .forEach(lane -> jdbc.update("DELETE FROM ALG_LANE_STATE WHERE WAREHOUSE_ID=? AND LANE_CODE=?", + warehouseId, lane)); + } + + private String h2SemanticFingerprint(String warehouseId, String laneCode, + InventoryFingerprintSource inventorySource) { + StringBuilder payload = new StringBuilder(); + appendRows(payload, "SELECT C.CARGO_SPACE_ID,C.STATUS,C.LOCKED,C.TRAY_CODE,C.GROUP_CODING," + + "C.THE_PLATOON,C.THE_COLUMN,C.THE_FLOOR,T.LANE_DEPTH,T.BASE_ZONE,COALESCE(R.ROLE,'STORAGE') " + + "FROM BAS_CARGO_SPACE C LEFT JOIN ALG_SPACE_TOPOLOGY T ON T.SPACE_ID=C.CARGO_SPACE_ID " + + "LEFT JOIN ALG_SPACE_ROLE R ON R.SPACE_ID=C.CARGO_SPACE_ID " + + "WHERE C.WAREHOUSE_ID=? AND C.GROUP_CODING_NO=? " + + "ORDER BY CASE WHEN C.GROUP_CODING REGEXP '^[0-9]+$' THEN CAST(C.GROUP_CODING AS INT) END,C.CARGO_SPACE_ID", + warehouseId, laneCode); + String inventorySql = inventorySource == InventoryFingerprintSource.SNAPSHOT + ? "SELECT S.STOCK_ID,S.SPACE_ID,S.TRAY_CODE,S.PROJECT_NO,S.PRODUCT_NO,S.LOT_NO," + + "S.INBOUND_TIME_RAW,CAST(S.QUANTITY AS DECIMAL(38,6)),CAST(S.OUT_QUANTITY AS DECIMAL(38,6)) " + + "FROM ALG_INVENTORY_ITEM_SNAPSHOT S JOIN BAS_CARGO_SPACE C " + + "ON C.CARGO_SPACE_ID=S.SPACE_ID AND C.WAREHOUSE_ID=S.WAREHOUSE_ID " + + "WHERE C.WAREHOUSE_ID=? AND C.GROUP_CODING_NO=? ORDER BY S.SPACE_ID,S.STOCK_ID" + : "SELECT S.STOCK_ID,S.CARGO_SPACE_ID,S.TRAY_CODE,S.SPARE4,S.PRODUCT_ID,S.LOT_NO," + + "S.IN_DATE,CAST(S.QUANTITY AS DECIMAL(38,6)),CAST(S.OUT_QUANTITY AS DECIMAL(38,6)) " + + "FROM BAS_STOCK S JOIN BAS_CARGO_SPACE C ON C.CARGO_SPACE_ID=S.CARGO_SPACE_ID " + + "WHERE C.WAREHOUSE_ID=? AND C.GROUP_CODING_NO=? ORDER BY S.CARGO_SPACE_ID,S.STOCK_ID"; + appendRows(payload, inventorySql, warehouseId, laneCode); + appendRows(payload, "SELECT JOB_ID,TASK_NO,TRAY_CODE,SOURCE_SPACE_ID,TARGET_CARGO_SPACE_ID,STATUS,IN_OR_OUT,CREATE_TIME_RAW " + + "FROM ALG_V_ACTIVE_JOB WHERE WAREHOUSE_ID=? AND SOURCE_LANE_CODE=? ORDER BY JOB_ID", + warehouseId, laneCode); + appendRows(payload, "SELECT PROJECT_NO,IS_ISOLATED,IS_COMMON,ALLOW_MIXED FROM ALG_PROJECT_POLICY ORDER BY PROJECT_NO"); + appendRows(payload, "SELECT WAREHOUSE_ID,TARGET_FILL_RATE,FIFO_TOLERANCE_HOURS FROM ALG_WAREHOUSE_POLICY WHERE WAREHOUSE_ID=?", + warehouseId); + appendRows(payload, "SELECT RESERVATION_ID,SPACE_ID,PROJECT_NO,STATUS FROM ALG_RESERVATION " + + "WHERE WAREHOUSE_ID=? AND LANE_CODE=? AND STATUS='ACTIVE' ORDER BY SPACE_ID,RESERVATION_ID", + warehouseId, laneCode); + try { + return HexFormat.of().formatHex(MessageDigest.getInstance("SHA-256") + .digest(payload.toString().getBytes(StandardCharsets.UTF_8))); + } catch (NoSuchAlgorithmException exception) { + throw new IllegalStateException("SHA-256 is unavailable", exception); + } + } + + private void appendRows(StringBuilder payload, String sql, Object... arguments) { + payload.append('|'); + jdbc.query(sql, rs -> { + int columns = rs.getMetaData().getColumnCount(); + payload.append('['); + for (int index = 1; index <= columns; index++) { + String value = rs.getString(index); + payload.append(value == null ? -1 : value.length()).append(':'); + if (value != null) payload.append(value); + payload.append(';'); + } + payload.append(']'); + }, arguments); + } + + private int number(Map row, String column) { + Object value = row.get(column); + return value == null ? 0 : ((Number) value).intValue(); + } + + private boolean booleanValue(Object value) { + return value instanceof Boolean bool ? bool : value instanceof Number number && number.intValue() != 0; + } + + @Override + public WarehouseSummary loadSummary(String warehouseId) { + String sql = "SELECT COUNT(DISTINCT lane_code) AS lane_count, COUNT(*) AS space_count, " + + "SUM(CASE WHEN space_status = '2' OR stock_detail_count > 0 THEN 1 ELSE 0 END) AS occupied_count, " + + "SUM(CASE WHEN inbound_available = " + dialect.trueLiteral() + " THEN 1 ELSE 0 END) AS available_count, " + + "COUNT(DISTINCT CASE WHEN pending_outbound = " + dialect.trueLiteral() + " THEN lane_code END) AS pending_lane_count, " + + "SUM(CASE WHEN tray_conflict = " + dialect.trueLiteral() + " OR project_conflict = " + dialect.trueLiteral() + + " OR product_conflict = " + dialect.trueLiteral() + " THEN 1 ELSE 0 END) AS conflict_count, " + + "SUM(CASE WHEN reserved = " + dialect.trueLiteral() + " THEN 1 ELSE 0 END) AS reserved_count " + + "FROM " + dialect.spaceStateView() + " WHERE warehouse_id = ?"; + return jdbc.queryForObject(sql, (rs, row) -> new WarehouseSummary(warehouseId, + rs.getInt("lane_count"), rs.getInt("space_count"), rs.getInt("occupied_count"), + rs.getInt("available_count"), rs.getInt("pending_lane_count"), rs.getInt("conflict_count"), + rs.getInt("reserved_count")), warehouseId); + } + + @Override + public LanePage pageCandidateLanes(String warehouseId, String afterLaneCode, int pageSize) { + return pageLanes(warehouseId, afterLaneCode, pageSize, + " AND available_count > 0 AND pending_outbound = " + dialect.falseLiteral() + + " AND has_gap = " + dialect.falseLiteral()); + } + + @Override + public LanePage pageWarehouseLanes(String warehouseId, String afterLaneCode, int pageSize) { + return pageLanes(warehouseId, afterLaneCode, pageSize, ""); + } + + private LanePage pageLanes(String warehouseId, String afterLaneCode, int requestedSize, String hardFacts) { + int size = Math.max(1, Math.min(MAX_PAGE_SIZE, requestedSize)); + String projection = "warehouse_id, lane_code, space_count, occupied_count, available_count, " + + "pending_outbound, has_gap, state_version"; + String sql = "SELECT TOP (:limit) " + projection + " FROM " + dialect.laneState() + + " WHERE warehouse_id = :warehouse AND lane_code > :after" + hardFacts + + " ORDER BY lane_code"; + List lanes = named.query(sql, new MapSqlParameterSource() + .addValue("warehouse", warehouseId).addValue("after", blankToEmpty(afterLaneCode)) + .addValue("limit", size), laneCandidateMapper()); + String next = lanes.size() == size ? lanes.get(lanes.size() - 1).laneCode() : null; + return new LanePage(lanes, next); + } + + @Override + public List loadLaneSnapshots(String warehouseId, Collection laneCodes) { + LinkedHashSet codes = laneCodes == null ? new LinkedHashSet<>() + : laneCodes.stream().filter(Objects::nonNull).collect(Collectors.toCollection(LinkedHashSet::new)); + if (codes.isEmpty()) return List.of(); + MapSqlParameterSource parameters = new MapSqlParameterSource() + .addValue("warehouse", warehouseId).addValue("lanes", codes); + Map versions = new LinkedHashMap<>(); + named.query("SELECT lane_code, state_version FROM " + dialect.laneState() + + " WHERE warehouse_id = :warehouse AND lane_code IN (:lanes)", parameters, + (rs, row) -> Map.entry(rs.getString("lane_code"), + VersionToken.fromJdbc(rs.getObject("state_version")))) + .forEach(entry -> versions.put(entry.getKey(), entry.getValue())); + + List rawSpaces = named.query("SELECT space_id, warehouse_id, lane_code, area_id, zone_code, roadway_id, " + + "platoon, column_no, floor_no, depth, space_status, locked, space_tray_code, role, " + + "tray_conflict, project_conflict, product_conflict, pending_outbound, reserved, has_gap, inbound_available " + + "FROM " + dialect.spaceStateView() + + " WHERE warehouse_id = :warehouse AND lane_code IN (:lanes) " + + "ORDER BY lane_code, depth, space_id", parameters, rawSpaceMapper()); + List inventory = named.query("SELECT i.stock_id, i.space_id, i.tray_code, i.project_no, " + + "i.product_no, i.lot_no, i.inbound_time_raw, i.inbound_at, i.quantity, i.out_quantity " + + "FROM " + dialect.inventoryView() + " i JOIN " + dialect.spaceStateView() + " s ON s.space_id = i.space_id " + + "WHERE s.warehouse_id = :warehouse AND s.lane_code IN (:lanes) " + + "ORDER BY i.space_id, i.stock_id", parameters, inventoryMapper()); + Map> inventoryBySpace = inventory.stream() + .collect(Collectors.groupingBy(InventoryItem::spaceId, LinkedHashMap::new, Collectors.toList())); + Map> byLane = rawSpaces.stream() + .collect(Collectors.groupingBy(RawSpace::laneCode, LinkedHashMap::new, Collectors.toList())); + List result = new ArrayList<>(); + byLane.entrySet().stream().sorted(Map.Entry.comparingByKey()).forEach(entry -> { + int capacity = entry.getValue().size(); + List spaces = entry.getValue().stream() + .map(raw -> mapSpace(raw, capacity, versions.get(entry.getKey()), + inventoryBySpace.getOrDefault(raw.spaceId(), List.of()))) + .sorted(Comparator.comparingInt((SpaceSnapshot value) -> value.state().depthOrder()) + .thenComparing(SpaceSnapshot::spaceId)).toList(); + result.add(new LaneSnapshot(warehouseId, entry.getKey(), versions.get(entry.getKey()), spaces)); + }); + return List.copyOf(result); + } + + @Override + public List loadRelocationBuffers(String warehouseId, Set floors) { + if (floors == null || floors.isEmpty()) return List.of(); + List laneCodes = named.queryForList("SELECT DISTINCT lane_code FROM " + dialect.spaceStateView() + + " WHERE warehouse_id = :warehouse AND role = 'RELOCATION_BUFFER' AND floor_no IN (:floors) " + + "ORDER BY lane_code", new MapSqlParameterSource().addValue("warehouse", warehouseId) + .addValue("floors", floors), String.class); + return loadLaneSnapshots(warehouseId, laneCodes).stream().flatMap(lane -> lane.spaces().stream()) + .filter(space -> space.state().role() == SpaceRole.RELOCATION_BUFFER) + .filter(space -> floors.contains(space.state().floorNo())).toList(); + } + + @Override + public Set loadActiveDeepWorkflowFloors(String warehouseId, String excludingRequestId) { + String sql = "SELECT floor_no FROM " + dialect.deepWorkflowLock() + + " WHERE warehouse_id = ? AND status = 'ACTIVE' AND (? IS NULL OR request_id <> ?) ORDER BY floor_no"; + String excluded = blankToNull(excludingRequestId); + return new LinkedHashSet<>(jdbc.queryForList(sql, Integer.class, warehouseId, excluded, excluded)); + } + + @Override + public boolean acquireDeepWorkflowLock(String requestId, String warehouseId, int floorNo) { + return acquireDeepWorkflowLockResult(requestId, warehouseId, floorNo).changed(); + } + + @Override + public DeepWorkflowMutationResult acquireDeepWorkflowLockResult(String requestId, String warehouseId, int floorNo) { + if (!writesEnabled) return DeepWorkflowMutationResult.writesDisabled(); + validateWorkflowLock(requestId, warehouseId, floorNo); + boolean acquired = dialect.h2Database() ? acquireDeepWorkflowH2(requestId, warehouseId, floorNo) + : named.queryForObject("EXEC " + dialect.acquireDeepWorkflowProcedure() + + " @request_id=:request, @warehouse_id=:warehouse, @floor_no=:floor", + new MapSqlParameterSource().addValue("request", requestId).addValue("warehouse", warehouseId) + .addValue("floor", floorNo), (rs, row) -> rs.getBoolean("acquired")); + return acquired ? DeepWorkflowMutationResult.succeeded() : DeepWorkflowMutationResult.unchanged(); + } + + @Override + public boolean releaseDeepWorkflowLock(String requestId, String warehouseId, int floorNo) { + return releaseDeepWorkflowLockResult(requestId, warehouseId, floorNo).changed(); + } + + @Override + public DeepWorkflowMutationResult releaseDeepWorkflowLockResult(String requestId, String warehouseId, int floorNo) { + if (!writesEnabled) return DeepWorkflowMutationResult.writesDisabled(); + validateWorkflowLock(requestId, warehouseId, floorNo); + boolean released = dialect.h2Database() ? releaseDeepWorkflowH2(requestId, warehouseId, floorNo) + : named.queryForObject("EXEC " + dialect.releaseDeepWorkflowProcedure() + + " @request_id=:request, @warehouse_id=:warehouse, @floor_no=:floor", + new MapSqlParameterSource().addValue("request", requestId).addValue("warehouse", warehouseId) + .addValue("floor", floorNo), (rs, row) -> rs.getBoolean("released")); + return released ? DeepWorkflowMutationResult.succeeded() : DeepWorkflowMutationResult.unchanged(); + } + + @Override + public List loadPendingOutboundJobs(String warehouseId) { + String sql = "SELECT job_id, task_no, tray_code, project_no, product_no, source_space_id, warehouse_id, source_lane_code, " + + "source_resolution, status, in_or_out, create_time_raw FROM " + dialect.activeJobView() + + " WHERE warehouse_id = ? AND in_or_out >= 20 ORDER BY job_id"; + return jdbc.query(sql, (rs, row) -> new PendingOutboundJob(rs.getString("job_id"), rs.getString("task_no"), + rs.getString("tray_code"), rs.getString("project_no"), rs.getString("product_no"), + rs.getString("source_space_id"), rs.getString("warehouse_id"), rs.getString("source_lane_code"), + rs.getString("source_resolution"), rs.getString("status"), rs.getInt("in_or_out"), + rs.getString("create_time_raw")), warehouseId); + } + + @Override + public List searchOutboundStock(String warehouseId, OutboundStockSearch search) { + String predicate = search.trayNo() != null ? "i.tray_code = :tray" + : "i.project_no = :project AND (:product IS NULL OR i.product_no = :product)"; + MapSqlParameterSource parameters = new MapSqlParameterSource().addValue("warehouse", warehouseId) + .addValue("tray", search.trayNo()).addValue("project", search.projectNo()) + .addValue("product", blankToNull(search.productNo())); + String sql = "SELECT i.stock_id, i.space_id, s.lane_code, s.floor_no, i.tray_code, i.project_no, " + + "i.product_no, i.lot_no, i.inbound_time_raw, i.inbound_at FROM " + dialect.inventoryView() + + " i JOIN " + dialect.spaceStateView() + " s ON s.space_id = i.space_id " + + "WHERE s.warehouse_id = :warehouse AND " + predicate + + " ORDER BY i.inbound_at, i.inbound_time_raw, i.stock_id"; + List matches = named.query(sql, parameters, (rs, row) -> new OutboundStockMatch( + rs.getString("stock_id"), rs.getString("space_id"), rs.getString("lane_code"), + rs.getInt("floor_no"), rs.getString("tray_code"), rs.getString("project_no"), + rs.getString("product_no"), rs.getString("lot_no"), rs.getString("inbound_time_raw"), + instant(rs, "inbound_at"))); + if (search.trayNo() == null) return matches; + + List cargoMatches = named.query("SELECT space_id, lane_code, floor_no, space_tray_code FROM " + + dialect.spaceStateView() + " WHERE warehouse_id = :warehouse " + + "AND LTRIM(RTRIM(space_tray_code)) = :tray ORDER BY space_id", + parameters, (rs, row) -> new OutboundStockMatch("CARGO_SPACE:" + rs.getString("space_id"), + rs.getString("space_id"), rs.getString("lane_code"), rs.getInt("floor_no"), + rs.getString("space_tray_code"), null, null, null, null, null)); + Set matchedSpaces = matches.stream().map(OutboundStockMatch::spaceId) + .collect(Collectors.toCollection(LinkedHashSet::new)); + List combined = new ArrayList<>(matches); + cargoMatches.stream().filter(match -> matchedSpaces.add(match.spaceId())).forEach(combined::add); + return List.copyOf(combined); + } + + @Override + public int countProjectPallets(String warehouseId, String projectNo) { + String usableTray = "CASE WHEN s.stock_tray_count = 1 THEN NULLIF(LTRIM(RTRIM(i.tray_code)), '') " + + "WHEN s.stock_tray_count = 0 THEN NULLIF(LTRIM(RTRIM(s.space_tray_code)), '') END"; + Integer count = named.queryForObject("SELECT COUNT(DISTINCT " + usableTray + ") FROM " + + dialect.spaceStateView() + " s JOIN " + dialect.inventoryView() + + " i ON i.space_id = s.space_id WHERE s.warehouse_id = :warehouse " + + "AND NULLIF(LTRIM(RTRIM(i.project_no)), '') = :project AND s.space_status = '2' " + + "AND s.role = 'STORAGE' AND s.depth IS NOT NULL AND s.pending_outbound = " + + dialect.falseLiteral() + " AND s.reserved = " + dialect.falseLiteral() + + " AND s.has_gap = " + dialect.falseLiteral() + " AND s.tray_conflict = " + + dialect.falseLiteral() + " AND s.project_conflict = " + dialect.falseLiteral() + + " AND (NULLIF(LTRIM(RTRIM(s.locked)), '') IS NULL OR LTRIM(RTRIM(s.locked)) IN ('0', 'N')) " + + "AND (NULLIF(LTRIM(RTRIM(s.space_tray_code)), '') IS NULL " + + "OR NULLIF(LTRIM(RTRIM(i.tray_code)), '') IS NULL " + + "OR LTRIM(RTRIM(s.space_tray_code)) = LTRIM(RTRIM(i.tray_code)))", + new MapSqlParameterSource().addValue("warehouse", warehouseId).addValue("project", projectNo), + Integer.class); + return count == null ? 0 : count; + } + + @Override + public RepositoryPolicy loadPolicy(String warehouseId) { + List> warehouses = jdbc.queryForList("SELECT target_fill_rate, fifo_tolerance_hours FROM " + + dialect.warehousePolicy() + " WHERE warehouse_id = ?", warehouseId); + double targetFill = warehouses.isEmpty() || warehouses.get(0).get("TARGET_FILL_RATE") == null ? 0.0 + : ((Number) warehouses.get(0).get("TARGET_FILL_RATE")).doubleValue(); + int toleranceMinutes = warehouses.isEmpty() || warehouses.get(0).get("FIFO_TOLERANCE_HOURS") == null ? 0 + : ((Number) warehouses.get(0).get("FIFO_TOLERANCE_HOURS")).intValue() * 60; + Set isolated = new LinkedHashSet<>(); + Set common = new LinkedHashSet<>(); + Set mixedDenied = new LinkedHashSet<>(); + jdbc.query("SELECT project_no, is_isolated, is_common, allow_mixed FROM " + dialect.projectPolicy(), rs -> { + if (rs.getBoolean("is_isolated")) isolated.add(rs.getString("project_no")); + if (rs.getBoolean("is_common")) common.add(rs.getString("project_no")); + if (!rs.getBoolean("allow_mixed")) mixedDenied.add(rs.getString("project_no")); + }); + if (common.isEmpty()) common.add("COMMON"); + SchedulingPolicy scheduling = SchedulingPolicy.ft546Defaults(); + return new RepositoryPolicy(new InboundPolicy(scheduling, isolated, common, List.of(), 0, mixedDenied), + scheduling, toleranceMinutes, targetFill); + } + + @Override + public DecisionLogEntry insertDecision(DecisionLogRecord record) { + String id = blankToNull(record.decisionId()) == null ? UUID.randomUUID().toString() : record.decisionId(); + if (!writesEnabled) { + return new DecisionLogEntry(id, record.warehouseId(), record.decisionType(), record.inputVersion(), + record.resultCode(), abbreviate(record.reason(), 2000), Instant.now()); + } + named.update("INSERT INTO " + dialect.decisionLog() + + " (decision_id, warehouse_id, decision_type, input_version, result_code, reason) " + + "VALUES (:id, :warehouse, :type, :version, :result, :reason)", + new MapSqlParameterSource().addValue("id", sqlId(id)).addValue("warehouse", record.warehouseId()) + .addValue("type", record.decisionType()).addValue("version", versionValue(record.inputVersion()), + decisionVersionSqlType(dialect)) + .addValue("result", record.resultCode()).addValue("reason", abbreviate(record.reason(), 2000))); + return findDecision(id).orElseThrow(); + } + + @Override + public Optional findDecision(String decisionId) { + List values = jdbc.query("SELECT decision_id, warehouse_id, decision_type, input_version, " + + "result_code, reason, created_at FROM " + dialect.decisionLog() + " WHERE decision_id = ?", + (rs, row) -> new DecisionLogEntry(rs.getString("decision_id"), rs.getString("warehouse_id"), + rs.getString("decision_type"), VersionToken.fromJdbc(rs.getObject("input_version")), + rs.getString("result_code"), rs.getString("reason"), instant(rs, "created_at")), sqlId(decisionId)); + return values.stream().findFirst(); + } + + @Override + public ReservationResult tryReserveInbound(InboundReservation reservation) { + if (!writesEnabled) return ReservationResult.conflict("WRITES_DISABLED", reservation.reservationId()); + sqlId(reservation.reservationId()); + if (reservation.expectedVersion() == null) { + return ReservationResult.conflict("LANE_VERSION_MISMATCH", reservation.reservationId()); + } + return dialect.h2Database() ? reserveH2(reservation) : reserveSqlServer(reservation); + } + + @Override + public ReservationResult releaseReservation(String warehouseId, String reservationId) { + if (!writesEnabled) return ReservationResult.conflict("WRITES_DISABLED", reservationId); + return dialect.h2Database() ? releaseH2(warehouseId, reservationId) : releaseSqlServer(warehouseId, reservationId); + } + + private ReservationResult reserveH2(InboundReservation reservation) { + return transactions.execute(status -> { + List values = jdbc.query("SELECT state_version, semantic_fingerprint FROM " + dialect.laneState() + + " WHERE warehouse_id = ? AND lane_code = ? FOR UPDATE", + (rs, row) -> new LaneReservationState(VersionToken.fromJdbc(rs.getObject("state_version")), + rs.getString("semantic_fingerprint")), + reservation.warehouseId(), reservation.laneCode()); + if (values.isEmpty() || !reservation.expectedVersion().equals(values.get(0).version())) { + return ReservationResult.conflict("LANE_VERSION_MISMATCH", reservation.reservationId()); + } + String storedFingerprint = values.get(0).semanticFingerprint(); + if (storedFingerprint != null && !storedFingerprint.isBlank() + && !storedFingerprint.equals(h2SemanticFingerprint( + reservation.warehouseId(), reservation.laneCode(), InventoryFingerprintSource.LIVE))) { + return ReservationResult.conflict("LANE_VERSION_MISMATCH", reservation.reservationId()); + } + Integer pending = jdbc.queryForObject("SELECT COUNT(*) FROM " + dialect.activeJobView() + + " WHERE warehouse_id = ? AND in_or_out >= 20 AND source_lane_code = ?", + Integer.class, reservation.warehouseId(), reservation.laneCode()); + if (pending != null && pending > 0) { + return ReservationResult.conflict("PENDING_OUTBOUND", reservation.reservationId()); + } + Integer active = jdbc.queryForObject("SELECT COUNT(*) FROM " + dialect.reservation() + + " WHERE space_id = ? AND status = 'ACTIVE'", Integer.class, reservation.spaceId()); + if (active != null && active > 0) { + return ReservationResult.conflict("ACTIVE_RESERVATION_EXISTS", reservation.reservationId()); + } + Integer eligible = jdbc.queryForObject("SELECT COUNT(*) FROM " + dialect.spaceStateView() + + " WHERE warehouse_id = ? AND lane_code = ? AND space_id = ? AND inbound_available = TRUE", + Integer.class, reservation.warehouseId(), reservation.laneCode(), reservation.spaceId()); + if (eligible == null || eligible == 0) { + return ReservationResult.conflict("SPACE_NOT_ELIGIBLE", reservation.reservationId()); + } + try { + jdbc.update("INSERT INTO " + dialect.reservation() + + " (reservation_id, warehouse_id, lane_code, space_id, project_no, status) " + + "VALUES (?, ?, ?, ?, ?, 'ACTIVE')", sqlId(reservation.reservationId()), + reservation.warehouseId(), reservation.laneCode(), reservation.spaceId(), reservation.projectNo()); + } catch (DuplicateKeyException exception) { + return ReservationResult.conflict("ACTIVE_RESERVATION_EXISTS", reservation.reservationId()); + } + rebuildH2Lane(reservation.warehouseId(), reservation.laneCode()); + return ReservationResult.reserved(reservation.reservationId()); + }); + } + + private boolean acquireDeepWorkflowH2(String requestId, String warehouseId, int floorNo) { + return Boolean.TRUE.equals(transactions.execute(status -> { + List owners = jdbc.query("SELECT request_id FROM " + dialect.deepWorkflowLock() + + " WHERE warehouse_id = ? AND floor_no = ? AND status = 'ACTIVE' FOR UPDATE", + (rs, row) -> rs.getString("request_id"), warehouseId, floorNo); + if (!owners.isEmpty()) return requestId.equals(owners.get(0)); + try { + jdbc.update("INSERT INTO " + dialect.deepWorkflowLock() + + " (lock_id, request_id, warehouse_id, floor_no, status) VALUES (?, ?, ?, ?, 'ACTIVE')", + UUID.randomUUID().toString(), requestId, warehouseId, floorNo); + return true; + } catch (DuplicateKeyException exception) { + return false; + } + })); + } + + private boolean releaseDeepWorkflowH2(String requestId, String warehouseId, int floorNo) { + return Boolean.TRUE.equals(transactions.execute(status -> jdbc.update("UPDATE " + dialect.deepWorkflowLock() + + " SET status = 'RELEASED', released_at = CURRENT_TIMESTAMP WHERE request_id = ? " + + "AND warehouse_id = ? AND floor_no = ? AND status = 'ACTIVE'", + requestId, warehouseId, floorNo) == 1)); + } + + private ReservationResult releaseH2(String warehouseId, String reservationId) { + return transactions.execute(status -> { + Object reservationKey = sqlId(reservationId); + List> rows = jdbc.queryForList("SELECT warehouse_id, lane_code FROM " + + dialect.reservation() + " WHERE reservation_id = ? AND warehouse_id = ? AND status = 'ACTIVE' FOR UPDATE", + reservationKey, warehouseId); + if (rows.isEmpty()) return ReservationResult.notFound(reservationId); + jdbc.update("UPDATE " + dialect.reservation() + + " SET status = 'RELEASED', released_at = CURRENT_TIMESTAMP WHERE reservation_id = ? AND warehouse_id = ?", + reservationKey, warehouseId); + String warehouse = Objects.toString(rows.get(0).get("WAREHOUSE_ID"), null); + String lane = Objects.toString(rows.get(0).get("LANE_CODE"), null); + rebuildH2Lane(warehouse, lane); + return ReservationResult.released(reservationId); + }); + } + + private void rebuildH2Lane(String warehouseId, String laneCode) { + String fingerprint = h2SemanticFingerprint(warehouseId, laneCode, + InventoryFingerprintSource.SNAPSHOT); + jdbc.update("UPDATE " + dialect.laneState() + " SET " + + "space_count = (SELECT COUNT(*) FROM " + dialect.spaceStateView() + " WHERE warehouse_id = ? AND lane_code = ?), " + + "occupied_count = (SELECT COUNT(*) FROM " + dialect.spaceStateView() + " WHERE warehouse_id = ? AND lane_code = ? AND (space_status = '2' OR stock_detail_count > 0)), " + + "available_count = (SELECT COUNT(*) FROM " + dialect.spaceStateView() + " WHERE warehouse_id = ? AND lane_code = ? AND inbound_available = TRUE), " + + "pending_outbound = CASE WHEN EXISTS (SELECT 1 FROM " + dialect.spaceStateView() + " WHERE warehouse_id = ? AND lane_code = ? AND pending_outbound = TRUE) THEN TRUE ELSE FALSE END, " + + "has_gap = CASE WHEN EXISTS (SELECT 1 FROM " + dialect.spaceStateView() + " WHERE warehouse_id = ? AND lane_code = ? AND has_gap = TRUE) THEN TRUE ELSE FALSE END, " + + "semantic_fingerprint = ?, state_version = state_version + 1, rebuilt_at = CURRENT_TIMESTAMP " + + "WHERE warehouse_id = ? AND lane_code = ?", + warehouseId, laneCode, warehouseId, laneCode, warehouseId, laneCode, + warehouseId, laneCode, warehouseId, laneCode, fingerprint, warehouseId, laneCode); + } + + private ReservationResult reserveSqlServer(InboundReservation reservation) { + String sql = "EXEC " + dialect.tryReserveProcedure() + + " @warehouse_id=:warehouse, @lane_code=:lane, @space_id=:space, @project_no=:project, " + + "@expected_state_version=:version, @reservation_id=:reservation"; + return named.queryForObject(sql, new MapSqlParameterSource().addValue("warehouse", reservation.warehouseId()) + .addValue("lane", reservation.laneCode()).addValue("space", reservation.spaceId()) + .addValue("project", reservation.projectNo()).addValue("version", versionValue(reservation.expectedVersion())) + .addValue("reservation", sqlId(reservation.reservationId())), (rs, row) -> reservationResult(rs)); + } + + private ReservationResult releaseSqlServer(String warehouseId, String reservationId) { + return named.queryForObject("EXEC " + dialect.releaseProcedure() + + " @warehouse_id=:warehouse, @reservation_id=:reservation", + new MapSqlParameterSource().addValue("warehouse", warehouseId) + .addValue("reservation", sqlId(reservationId)), (rs, row) -> reservationResult(rs)); + } + + private ReservationResult reservationResult(ResultSet rs) throws SQLException { + String result = rs.getString("result"); + String id = rs.getString("reservation_id"); + return switch (result) { + case "RESERVED" -> ReservationResult.reserved(id); + case "RELEASED" -> ReservationResult.released(id); + case "NOT_FOUND" -> ReservationResult.notFound(id); + default -> ReservationResult.conflict(rs.getString("reason"), id); + }; + } + + private SpaceSnapshot mapSpace(RawSpace raw, int capacity, VersionToken version, List inventory) { + EnumSet conflicts = EnumSet.noneOf(SpaceConflict.class); + if (raw.trayConflict()) conflicts.add(SpaceConflict.TRAY); + if (raw.projectConflict()) conflicts.add(SpaceConflict.PROJECT); + String inventoryTray = unique(inventory, InventoryItem::trayNo); + String tray = blankToNull(raw.spaceTrayNo()) != null ? raw.spaceTrayNo() : inventoryTray; + if (blankToNull(raw.spaceTrayNo()) != null && inventoryTray != null && !raw.spaceTrayNo().equals(inventoryTray)) { + conflicts.add(SpaceConflict.SPACE_TRAY_MISMATCH); + } + String project = unique(inventory, InventoryItem::projectNo); + String product = unique(inventory, InventoryItem::productNo); + String lot = unique(inventory, InventoryItem::lotNo); + Instant inboundAt = inventory.stream().map(InventoryItem::inboundAt).filter(Objects::nonNull) + .min(Comparator.naturalOrder()).orElse(null); + boolean invalid = locked(raw.locked()) || raw.reserved() || raw.hasGap() || raw.depth() == null + || !conflicts.isEmpty() || ("1".equals(raw.spaceStatus()) && (!inventory.isEmpty() || tray != null)); + SpaceStatus status = invalid ? SpaceStatus.DISABLED : switch (Objects.toString(raw.spaceStatus(), "")) { + case "1" -> SpaceStatus.EMPTY; + case "2" -> SpaceStatus.OCCUPIED; + default -> SpaceStatus.DISABLED; + }; + SpaceState state = new SpaceState(raw.spaceId(), raw.zoneCode(), raw.laneCode(), + raw.depth() == null ? 0 : raw.depth(), capacity, raw.floorNo(), raw.columnNo(), + raw.depth() == null ? 0 : raw.depth(), raw.platoon() == null ? null : raw.platoon().toString(), + mapRole(raw.role()), status, + raw.pendingOutbound(), !conflicts.isEmpty(), tray, project, product, lot, inboundAt, null, + raw.reserved(), version == null ? null : version.externalForm(), !inventory.isEmpty()); + String diagnostic = invalid ? diagnostic(raw, conflicts) : null; + return new SpaceSnapshot(state, inventory, conflicts, raw.inboundAvailable(), raw.hasGap(), diagnostic); + } + + private String diagnostic(RawSpace raw, Set conflicts) { + if (!conflicts.isEmpty()) return "INVENTORY_CONFLICT:" + conflicts; + if (raw.reserved()) return "RESERVED"; + if (raw.hasGap()) return "LANE_GAP"; + if (raw.depth() == null) return "INVALID_TOPOLOGY"; + if (locked(raw.locked())) return "LOCKED"; + return "NON_AVAILABLE_STATUS:" + raw.spaceStatus(); + } + + private SpaceRole mapRole(String role) { + return switch (role) { + case "STORAGE" -> SpaceRole.STORAGE; + case "RELOCATION_BUFFER" -> SpaceRole.RELOCATION_BUFFER; + case "OUTBOUND_BUFFER" -> SpaceRole.OUTBOUND_CACHE; + case "PROTECTED_CORE" -> SpaceRole.PROTECTED_CORE; + default -> throw new IllegalStateException("Unknown space role: " + role); + }; + } + + private RowMapper laneCandidateMapper() { + return (rs, row) -> new LaneCandidate(rs.getString("warehouse_id"), rs.getString("lane_code"), + rs.getInt("space_count"), rs.getInt("occupied_count"), rs.getInt("available_count"), + rs.getBoolean("pending_outbound"), rs.getBoolean("has_gap"), + VersionToken.fromJdbc(rs.getObject("state_version"))); + } + + private RowMapper rawSpaceMapper() { + return (rs, row) -> new RawSpace(rs.getString("space_id"), rs.getString("lane_code"), + rs.getString("area_id"), rs.getString("zone_code"), rs.getString("roadway_id"), + nullableInt(rs, "platoon"), rs.getInt("column_no"), rs.getInt("floor_no"), + nullableInt(rs, "depth"), rs.getString("space_status"), + rs.getString("locked"), rs.getString("space_tray_code"), rs.getString("role"), + rs.getBoolean("tray_conflict"), rs.getBoolean("project_conflict"), + rs.getBoolean("product_conflict"), rs.getBoolean("pending_outbound"), + rs.getBoolean("reserved"), rs.getBoolean("has_gap"), rs.getBoolean("inbound_available")); + } + + private RowMapper inventoryMapper() { + return (rs, row) -> new InventoryItem(rs.getString("stock_id"), rs.getString("space_id"), + rs.getString("tray_code"), rs.getString("project_no"), rs.getString("product_no"), + rs.getString("lot_no"), rs.getString("inbound_time_raw"), instant(rs, "inbound_at"), + rs.getBigDecimal("quantity"), rs.getBigDecimal("out_quantity")); + } + + private Object sqlId(String id) { + UUID value = UUID.fromString(id); + return dialect.h2Database() ? value.toString() : value; + } + private void validateWorkflowLock(String requestId, String warehouseId, int floorNo) { + if (blankToNull(requestId) == null) throw new IllegalArgumentException("requestId is required"); + if (blankToNull(warehouseId) == null) throw new IllegalArgumentException("warehouseId is required"); + if (floorNo <= 0) throw new IllegalArgumentException("floorNo must be positive"); + } + private Object versionValue(VersionToken token) { return token == null ? null : token.jdbcValue(); } + + static int decisionVersionSqlType(RepositoryDialect dialect) { + return dialect.h2Database() ? Types.BIGINT : Types.BINARY; + } + private String abbreviate(String value, int maximum) { + return value == null || value.length() <= maximum ? value : value.substring(0, maximum); + } + private boolean locked(String value) { + String normalized = blankToNull(value); + return normalized != null && !"0".equalsIgnoreCase(normalized) && !"N".equalsIgnoreCase(normalized); + } + private String blankToEmpty(String value) { return value == null ? "" : value; } + private String blankToNull(String value) { return value == null || value.isBlank() ? null : value; } + private Integer nullableInt(ResultSet rs, String column) throws SQLException { + int value = rs.getInt(column); + return rs.wasNull() ? null : value; + } + private Instant instant(ResultSet rs, String column) throws SQLException { + Timestamp timestamp = rs.getTimestamp(column); + return timestamp == null ? null : timestamp.toInstant(); + } + private String unique(List values, Function extractor) { + Set distinct = values.stream().map(extractor).map(this::blankToNull) + .filter(Objects::nonNull).collect(Collectors.toCollection(LinkedHashSet::new)); + return distinct.size() == 1 ? distinct.iterator().next() : null; + } + private long distinctCount(List values, Function extractor) { + return values.stream().map(extractor).map(this::blankToNull).filter(Objects::nonNull).distinct().count(); + } + + private record RawSpace(String spaceId, String laneCode, String areaId, String zoneCode, String roadwayId, + Integer platoon, int columnNo, int floorNo, Integer depth, String spaceStatus, + String locked, String spaceTrayNo, + String role, boolean trayConflict, boolean projectConflict, boolean productConflict, + boolean pendingOutbound, boolean reserved, boolean hasGap, boolean inboundAvailable) { + } + + private record LaneReservationState(VersionToken version, String semanticFingerprint) { + } + + private enum InventoryFingerprintSource { + SNAPSHOT, + LIVE + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LaneCandidate.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LaneCandidate.java new file mode 100644 index 0000000..1f7dd77 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LaneCandidate.java @@ -0,0 +1,5 @@ +package com.ruoyi.algorithm.repository; + +public record LaneCandidate(String warehouseId, String laneCode, int spaceCount, int occupiedCount, + int availableCount, boolean pendingOutbound, boolean hasGap, VersionToken version) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LanePage.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LanePage.java new file mode 100644 index 0000000..d72295c --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LanePage.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.repository; + +import java.util.List; + +public record LanePage(List lanes, String nextLaneCode) { + public LanePage { lanes = List.copyOf(lanes); } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LaneSnapshot.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LaneSnapshot.java new file mode 100644 index 0000000..70b6375 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/LaneSnapshot.java @@ -0,0 +1,10 @@ +package com.ruoyi.algorithm.repository; + +import com.ruoyi.algorithm.model.SpaceState; + +import java.util.List; + +public record LaneSnapshot(String warehouseId, String laneCode, VersionToken version, List spaces) { + public LaneSnapshot { spaces = List.copyOf(spaces); } + public List spaceStates() { return spaces.stream().map(SpaceSnapshot::state).toList(); } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/OutboundStockMatch.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/OutboundStockMatch.java new file mode 100644 index 0000000..aba77ab --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/OutboundStockMatch.java @@ -0,0 +1,8 @@ +package com.ruoyi.algorithm.repository; + +import java.time.Instant; + +public record OutboundStockMatch(String stockId, String spaceId, String laneCode, int floorNo, String trayNo, + String projectNo, String productNo, String lotNo, + String inboundTimeRaw, Instant inboundAt) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/OutboundStockSearch.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/OutboundStockSearch.java new file mode 100644 index 0000000..17f1645 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/OutboundStockSearch.java @@ -0,0 +1,13 @@ +package com.ruoyi.algorithm.repository; + +public record OutboundStockSearch(String trayNo, String projectNo, String productNo) { + public OutboundStockSearch { + boolean hasTray = trayNo != null && !trayNo.isBlank(); + boolean hasProject = projectNo != null && !projectNo.isBlank(); + if (hasTray == hasProject) throw new IllegalArgumentException("Specify exact tray or project, but not both"); + } + public static OutboundStockSearch exactTray(String trayNo) { return new OutboundStockSearch(trayNo, null, null); } + public static OutboundStockSearch project(String projectNo, String productNo) { + return new OutboundStockSearch(null, projectNo, productNo); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/PendingOutboundJob.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/PendingOutboundJob.java new file mode 100644 index 0000000..205f2c4 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/PendingOutboundJob.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.repository; + +public record PendingOutboundJob(String jobId, String taskNo, String trayNo, String projectNo, + String productNo, String sourceSpaceId, String warehouseId, + String sourceLaneCode, String sourceResolution, String status, + int direction, String createTimeRaw) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/RepositoryDialect.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/RepositoryDialect.java new file mode 100644 index 0000000..925028b --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/RepositoryDialect.java @@ -0,0 +1,74 @@ +package com.ruoyi.algorithm.repository; + +public final class RepositoryDialect { + private final boolean h2Database; + private final String laneState; + private final String spaceStateView; + private final String inventoryView; + private final String activeJobView; + private final String warehousePolicy; + private final String projectPolicy; + private final String reservation; + private final String decisionLog; + private final String deepWorkflowLock; + private final String tryReserveProcedure; + private final String releaseProcedure; + private final String acquireDeepWorkflowProcedure; + private final String releaseDeepWorkflowProcedure; + private final String trueLiteral; + private final String falseLiteral; + + private RepositoryDialect(boolean h2Database, String laneState, String spaceStateView, String inventoryView, + String activeJobView, String warehousePolicy, String projectPolicy, + String reservation, String decisionLog, String deepWorkflowLock, + String tryReserveProcedure, String releaseProcedure, + String acquireDeepWorkflowProcedure, String releaseDeepWorkflowProcedure, + String trueLiteral, String falseLiteral) { + this.h2Database = h2Database; + this.laneState = laneState; + this.spaceStateView = spaceStateView; + this.inventoryView = inventoryView; + this.activeJobView = activeJobView; + this.warehousePolicy = warehousePolicy; + this.projectPolicy = projectPolicy; + this.reservation = reservation; + this.decisionLog = decisionLog; + this.deepWorkflowLock = deepWorkflowLock; + this.tryReserveProcedure = tryReserveProcedure; + this.releaseProcedure = releaseProcedure; + this.acquireDeepWorkflowProcedure = acquireDeepWorkflowProcedure; + this.releaseDeepWorkflowProcedure = releaseDeepWorkflowProcedure; + this.trueLiteral = trueLiteral; + this.falseLiteral = falseLiteral; + } + public static RepositoryDialect h2() { + return new RepositoryDialect(true, "ALG_LANE_STATE", "ALG_V_SPACE_STATE", "ALG_V_INVENTORY_ITEM", + "ALG_V_ACTIVE_JOB", "ALG_WAREHOUSE_POLICY", "ALG_PROJECT_POLICY", "ALG_RESERVATION", + "ALG_DECISION_LOG", "ALG_DEEP_WORKFLOW_LOCK", null, null, null, null, "TRUE", "FALSE"); + } + + public static RepositoryDialect sqlServer() { + return new RepositoryDialect(false, "alg.lane_state", "alg.v_space_state", "alg.v_inventory_item", + "alg.v_active_job", "alg.warehouse_policy", "alg.project_policy", "alg.reservation", + "alg.decision_log", "alg.deep_workflow_lock", "alg.usp_try_reserve_inbound", + "alg.usp_release_reservation", "alg.usp_acquire_deep_workflow_lock", + "alg.usp_release_deep_workflow_lock", "1", "0"); + } + + public boolean h2Database() { return h2Database; } + public String laneState() { return laneState; } + public String spaceStateView() { return spaceStateView; } + public String inventoryView() { return inventoryView; } + public String activeJobView() { return activeJobView; } + public String warehousePolicy() { return warehousePolicy; } + public String projectPolicy() { return projectPolicy; } + public String reservation() { return reservation; } + public String decisionLog() { return decisionLog; } + public String deepWorkflowLock() { return deepWorkflowLock; } + public String tryReserveProcedure() { return tryReserveProcedure; } + public String releaseProcedure() { return releaseProcedure; } + public String acquireDeepWorkflowProcedure() { return acquireDeepWorkflowProcedure; } + public String releaseDeepWorkflowProcedure() { return releaseDeepWorkflowProcedure; } + public String trueLiteral() { return trueLiteral; } + public String falseLiteral() { return falseLiteral; } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/RepositoryPolicy.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/RepositoryPolicy.java new file mode 100644 index 0000000..240fac9 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/RepositoryPolicy.java @@ -0,0 +1,11 @@ +package com.ruoyi.algorithm.repository; + +import com.ruoyi.algorithm.inbound.InboundPolicy; +import com.ruoyi.algorithm.policy.SchedulingPolicy; + +public record RepositoryPolicy(InboundPolicy inboundPolicy, SchedulingPolicy schedulingPolicy, + int fifoToleranceMinutes, double targetFillRate) { + public static RepositoryPolicy defaults() { + return new RepositoryPolicy(InboundPolicy.defaults(), SchedulingPolicy.ft546Defaults(), 0, 0.0); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/ReservationResult.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/ReservationResult.java new file mode 100644 index 0000000..541fa7f --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/ReservationResult.java @@ -0,0 +1,8 @@ +package com.ruoyi.algorithm.repository; + +public record ReservationResult(ReservationStatus status, String reasonCode, String reservationId) { + public static ReservationResult reserved(String id) { return new ReservationResult(ReservationStatus.RESERVED, null, id); } + public static ReservationResult conflict(String reason, String id) { return new ReservationResult(ReservationStatus.CONFLICT, reason, id); } + public static ReservationResult released(String id) { return new ReservationResult(ReservationStatus.RELEASED, null, id); } + public static ReservationResult notFound(String id) { return new ReservationResult(ReservationStatus.NOT_FOUND, "NOT_FOUND", id); } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/ReservationStatus.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/ReservationStatus.java new file mode 100644 index 0000000..2f2d163 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/ReservationStatus.java @@ -0,0 +1,3 @@ +package com.ruoyi.algorithm.repository; + +public enum ReservationStatus { RESERVED, CONFLICT, RELEASED, NOT_FOUND } diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/SpaceConflict.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/SpaceConflict.java new file mode 100644 index 0000000..0482e57 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/SpaceConflict.java @@ -0,0 +1,3 @@ +package com.ruoyi.algorithm.repository; + +public enum SpaceConflict { TRAY, PROJECT, PRODUCT, LOT, SPACE_TRAY_MISMATCH } diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/SpaceSnapshot.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/SpaceSnapshot.java new file mode 100644 index 0000000..66fa730 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/SpaceSnapshot.java @@ -0,0 +1,15 @@ +package com.ruoyi.algorithm.repository; + +import com.ruoyi.algorithm.model.SpaceState; + +import java.util.List; +import java.util.Set; + +public record SpaceSnapshot(SpaceState state, List inventory, Set conflicts, + boolean inboundAvailable, boolean hasGap, String diagnostic) { + public SpaceSnapshot { + inventory = List.copyOf(inventory); + conflicts = Set.copyOf(conflicts); + } + public String spaceId() { return state.spaceId(); } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/VersionToken.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/VersionToken.java new file mode 100644 index 0000000..5e399e2 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/VersionToken.java @@ -0,0 +1,50 @@ +package com.ruoyi.algorithm.repository; + +import java.util.Arrays; +import java.util.Base64; +import java.util.Objects; + +public final class VersionToken { + public enum Kind { NUMERIC, BINARY } + + private final Kind kind; + private final Long numeric; + private final byte[] binary; + + private VersionToken(Kind kind, Long numeric, byte[] binary) { + this.kind = kind; + this.numeric = numeric; + this.binary = binary == null ? null : binary.clone(); + } + + public static VersionToken numeric(long value) { + return new VersionToken(Kind.NUMERIC, value, null); + } + + public static VersionToken binary(byte[] value) { + Objects.requireNonNull(value, "value"); + return new VersionToken(Kind.BINARY, null, value); + } + + public static VersionToken fromJdbc(Object value) { + if (value == null) return null; + if (value instanceof byte[] bytes) return binary(bytes); + if (value instanceof Number number) return numeric(number.longValue()); + throw new IllegalArgumentException("Unsupported version token type: " + value.getClass().getName()); + } + + public Kind kind() { return kind; } + public Object jdbcValue() { return kind == Kind.BINARY ? binary.clone() : numeric; } + public String externalForm() { + return kind == Kind.BINARY ? Base64.getEncoder().encodeToString(binary) : Long.toString(numeric); + } + + @Override public boolean equals(Object other) { + if (this == other) return true; + if (!(other instanceof VersionToken token) || kind != token.kind) return false; + return Objects.equals(numeric, token.numeric) && Arrays.equals(binary, token.binary); + } + + @Override public int hashCode() { return 31 * Objects.hash(kind, numeric) + Arrays.hashCode(binary); } + @Override public String toString() { return externalForm(); } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/WarehouseRepository.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/WarehouseRepository.java new file mode 100644 index 0000000..af2def9 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/WarehouseRepository.java @@ -0,0 +1,39 @@ +package com.ruoyi.algorithm.repository; + +import java.util.Collection; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +public interface WarehouseRepository { + void synchronizeReadModel(String warehouseId); + + default void refreshChangedLanes(String warehouseId) { + synchronizeReadModel(warehouseId); + } + + WarehouseSummary loadSummary(String warehouseId); + LanePage pageCandidateLanes(String warehouseId, String afterLaneCode, int pageSize); + LanePage pageWarehouseLanes(String warehouseId, String afterLaneCode, int pageSize); + List loadLaneSnapshots(String warehouseId, Collection laneCodes); + List loadRelocationBuffers(String warehouseId, Set floors); + Set loadActiveDeepWorkflowFloors(String warehouseId, String excludingRequestId); + boolean acquireDeepWorkflowLock(String requestId, String warehouseId, int floorNo); + boolean releaseDeepWorkflowLock(String requestId, String warehouseId, int floorNo); + default DeepWorkflowMutationResult acquireDeepWorkflowLockResult(String requestId, String warehouseId, int floorNo) { + return acquireDeepWorkflowLock(requestId, warehouseId, floorNo) + ? DeepWorkflowMutationResult.succeeded() : DeepWorkflowMutationResult.unchanged(); + } + default DeepWorkflowMutationResult releaseDeepWorkflowLockResult(String requestId, String warehouseId, int floorNo) { + return releaseDeepWorkflowLock(requestId, warehouseId, floorNo) + ? DeepWorkflowMutationResult.succeeded() : DeepWorkflowMutationResult.unchanged(); + } + List loadPendingOutboundJobs(String warehouseId); + List searchOutboundStock(String warehouseId, OutboundStockSearch search); + int countProjectPallets(String warehouseId, String projectNo); + RepositoryPolicy loadPolicy(String warehouseId); + DecisionLogEntry insertDecision(DecisionLogRecord record); + Optional findDecision(String decisionId); + ReservationResult tryReserveInbound(InboundReservation reservation); + ReservationResult releaseReservation(String warehouseId, String reservationId); +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/WarehouseSummary.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/WarehouseSummary.java new file mode 100644 index 0000000..e968c6d --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/repository/WarehouseSummary.java @@ -0,0 +1,6 @@ +package com.ruoyi.algorithm.repository; + +public record WarehouseSummary(String warehouseId, int laneCount, int spaceCount, int occupiedCount, + int availableCount, int pendingLaneCount, int conflictSpaceCount, + int reservedSpaceCount) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/InboundPlanningResult.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/InboundPlanningResult.java new file mode 100644 index 0000000..4070524 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/InboundPlanningResult.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.service; + +import com.ruoyi.algorithm.inbound.InboundPlan; +import com.ruoyi.algorithm.repository.VersionToken; + +public record InboundPlanningResult(InboundPlan plan, VersionToken laneVersion) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/InboundReservationOutcome.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/InboundReservationOutcome.java new file mode 100644 index 0000000..3ce1133 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/InboundReservationOutcome.java @@ -0,0 +1,6 @@ +package com.ruoyi.algorithm.service; + +import com.ruoyi.algorithm.repository.ReservationResult; + +public record InboundReservationOutcome(String resultCode, ReservationResult reservation) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/WarehouseApplicationService.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/WarehouseApplicationService.java new file mode 100644 index 0000000..3c0564f --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/WarehouseApplicationService.java @@ -0,0 +1,295 @@ +package com.ruoyi.algorithm.service; + +import com.ruoyi.algorithm.inbound.InboundContext; +import com.ruoyi.algorithm.inbound.InboundPlan; +import com.ruoyi.algorithm.inbound.InboundPlanner; +import com.ruoyi.algorithm.inbound.InboundRequest; +import com.ruoyi.algorithm.inbound.PendingOutbound; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.outbound.OutboundCapacityMode; +import com.ruoyi.algorithm.outbound.OutboundContext; +import com.ruoyi.algorithm.outbound.OutboundError; +import com.ruoyi.algorithm.outbound.OutboundErrorCode; +import com.ruoyi.algorithm.outbound.OutboundPlan; +import com.ruoyi.algorithm.outbound.OutboundPlanner; +import com.ruoyi.algorithm.outbound.OutboundRequest; +import com.ruoyi.algorithm.tidy.TidyPendingOutbound; +import com.ruoyi.algorithm.tidy.TidyPlan; +import com.ruoyi.algorithm.tidy.TidyPlanner; +import com.ruoyi.algorithm.tidy.TidyRequest; +import com.ruoyi.algorithm.repository.DecisionLogRecord; +import com.ruoyi.algorithm.repository.DeepWorkflowMutationResult; +import com.ruoyi.algorithm.repository.InboundReservation; +import com.ruoyi.algorithm.repository.LaneCandidate; +import com.ruoyi.algorithm.repository.LanePage; +import com.ruoyi.algorithm.repository.LaneSnapshot; +import com.ruoyi.algorithm.repository.OutboundStockMatch; +import com.ruoyi.algorithm.repository.OutboundStockSearch; +import com.ruoyi.algorithm.repository.PendingOutboundJob; +import com.ruoyi.algorithm.repository.RepositoryPolicy; +import com.ruoyi.algorithm.repository.ReservationResult; +import com.ruoyi.algorithm.repository.ReservationStatus; +import com.ruoyi.algorithm.repository.SpaceSnapshot; +import com.ruoyi.algorithm.repository.VersionToken; +import com.ruoyi.algorithm.repository.WarehouseRepository; +import com.ruoyi.algorithm.repository.WarehouseSummary; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; + +public final class WarehouseApplicationService { + private final WarehouseRepository repository; + private final InboundPlanner inboundPlanner; + private final OutboundPlanner outboundPlanner; + private final TidyPlanner tidyPlanner; + private final int pageSize; + + public WarehouseApplicationService(WarehouseRepository repository, InboundPlanner inboundPlanner, + OutboundPlanner outboundPlanner, TidyPlanner tidyPlanner, int pageSize) { + this.repository = Objects.requireNonNull(repository, "repository"); + this.inboundPlanner = Objects.requireNonNull(inboundPlanner, "inboundPlanner"); + this.outboundPlanner = Objects.requireNonNull(outboundPlanner, "outboundPlanner"); + this.tidyPlanner = Objects.requireNonNull(tidyPlanner, "tidyPlanner"); + this.pageSize = Math.max(1, Math.min(200, pageSize)); + } + + public WarehouseSummary summary(String warehouseId) { + return repository.loadSummary(warehouseId); + } + + public WarehouseDiagnostics diagnostics(String warehouseId) { + WarehouseSummary summary = repository.loadSummary(warehouseId); + List issues = new ArrayList<>(); + forEachLanePage(warehouseId, false, snapshots -> snapshots.stream() + .flatMap(lane -> lane.spaces().stream()) + .filter(space -> space.diagnostic() != null) + .forEach(space -> issues.add(space.spaceId() + ":" + space.diagnostic()))); + return new WarehouseDiagnostics(summary, issues.stream().sorted().toList()); + } + + public InboundPlanningResult planInbound(String warehouseId, InboundRequest request) { + repository.refreshChangedLanes(warehouseId); + RepositoryPolicy policy = repository.loadPolicy(warehouseId); + WarehouseSummary summary = repository.loadSummary(warehouseId); + InboundRequest effectiveRequest = request; + if (request.expectedProjectPallets() == null && nonBlank(request.projectNo())) { + int currentProjectPallets = repository.countProjectPallets(warehouseId, request.projectNo()); + effectiveRequest = new InboundRequest(request.requestId(), request.trayNo(), request.projectNo(), + request.productId(), request.lotNo(), currentProjectPallets <= 1 ? 2 : 4, + request.entryFloor(), request.targetFloor(), request.allowedFloors(), request.batchLaneMode()); + } + List pending = repository.loadPendingOutboundJobs(warehouseId).stream() + .map(job -> new PendingOutbound(job.projectNo(), job.productNo(), job.trayNo(), + job.sourceLaneCode(), job.sourceResolution())).toList(); + InboundPlanner.PagedSession session = inboundPlanner.startPaged(effectiveRequest, + policy.inboundPolicy(), pending, summary.occupiedCount()); + Map versions = new LinkedHashMap<>(); + String cursor = null; + do { + LanePage page = repository.pageCandidateLanes(warehouseId, cursor, pageSize); + List laneCodes = page.lanes().stream().map(LaneCandidate::laneCode).toList(); + if (!laneCodes.isEmpty()) { + List snapshots = repository.loadLaneSnapshots(warehouseId, laneCodes); + snapshots.forEach(lane -> versions.put(lane.laneCode(), lane.version())); + session.accept(snapshots.stream().flatMap(lane -> lane.spaceStates().stream()).toList()); + versions.keySet().retainAll(session.retainedLaneCodes()); + } + cursor = page.nextLaneCode(); + } while (cursor != null); + InboundPlan plan = session.finish(); + VersionToken version = plan.assignment().map(value -> versions.get(value.laneCode())).orElse(null); + String resultCode = plan.assignment().isPresent() ? "READY" + : "REJECTED_" + plan.rejection().orElseThrow().code().name(); + String reason = plan.assignment().map(value -> value.reason()) + .orElseGet(() -> plan.rejection().orElseThrow().reason()); + log(warehouseId, "INBOUND", version, resultCode, reason); + return new InboundPlanningResult(plan, version); + } + + public OutboundPlan planOutbound(String warehouseId, OutboundRequest request) { + repository.refreshChangedLanes(warehouseId); + RepositoryPolicy policy = repository.loadPolicy(warehouseId); + WarehouseSummary summary = repository.loadSummary(warehouseId); + OutboundRequest effectiveRequest = request.fifoToleranceMinutes() == null && policy.fifoToleranceMinutes() > 0 + ? new OutboundRequest(request.requestId(), request.trayNo(), request.projectNo(), request.productId(), + request.fifoMode(), policy.fifoToleranceMinutes(), request.exitFloor(), request.wholeTray()) + : request; + List matches = new ArrayList<>(); + String matchedProductScope = null; + if (nonBlank(request.trayNo())) { + matches.addAll(repository.searchOutboundStock(warehouseId, OutboundStockSearch.exactTray(request.trayNo()))); + boolean fifoEnabled = nonBlank(request.fifoMode()) && !"OFF".equalsIgnoreCase(request.fifoMode()); + Set spaces = matches.stream().map(OutboundStockMatch::spaceId).filter(this::nonBlank) + .collect(java.util.stream.Collectors.toCollection(LinkedHashSet::new)); + Set projects = matches.stream().map(OutboundStockMatch::projectNo).filter(this::nonBlank) + .collect(java.util.stream.Collectors.toCollection(LinkedHashSet::new)); + Set products = matches.stream().map(OutboundStockMatch::productNo).filter(this::nonBlank) + .collect(java.util.stream.Collectors.toCollection(LinkedHashSet::new)); + if (spaces.size() > 1 || projects.size() > 1) { + OutboundPlan ambiguous = OutboundPlan.error(new OutboundError(OutboundErrorCode.AMBIGUOUS_TRAY, + "Exact tray resolves to multiple spaces or inventory scopes.", + Map.of("spaceCount", spaces.size(), "projectCount", projects.size(), + "productCount", products.size()))); + log(warehouseId, "OUTBOUND", null, "ERROR_AMBIGUOUS_TRAY", + ambiguous.error().orElseThrow().message()); + return ambiguous; + } + if (fifoEnabled && projects.size() == 1) { + String project = projects.iterator().next(); + String product = products.size() == 1 ? products.iterator().next() : null; + matchedProductScope = product; + List scoped = repository.searchOutboundStock(warehouseId, + OutboundStockSearch.project(project, product)); + scoped.forEach(match -> { + if (matches.stream().noneMatch(existing -> existing.stockId().equals(match.stockId()))) { + matches.add(match); + } + }); + } + } else if (nonBlank(request.projectNo())) { + matchedProductScope = nonBlank(request.productId()) ? request.productId() : null; + matches.addAll(repository.searchOutboundStock(warehouseId, + OutboundStockSearch.project(request.projectNo(), request.productId()))); + } + List laneCodes = matches.stream().map(OutboundStockMatch::laneCode).filter(Objects::nonNull) + .distinct().sorted().toList(); + List lanes = repository.loadLaneSnapshots(warehouseId, laneCodes); + Set floors = matches.stream().map(OutboundStockMatch::floorNo) + .collect(java.util.stream.Collectors.toCollection(LinkedHashSet::new)); + List buffers = repository.loadRelocationBuffers(warehouseId, floors); + Map uniqueSpaces = new LinkedHashMap<>(); + Set matchedSpaceIds = matches.stream().map(OutboundStockMatch::spaceId) + .filter(this::nonBlank).collect(java.util.stream.Collectors.toSet()); + String productScope = matchedProductScope; + lanes.stream().flatMap(lane -> lane.spaceStates().stream()).forEach(space -> uniqueSpaces.put(space.spaceId(), + productScope != null && matchedSpaceIds.contains(space.spaceId()) + ? withProductScope(space, productScope) : space)); + buffers.stream().map(SpaceSnapshot::state).forEach(space -> uniqueSpaces.put(space.spaceId(), space)); + Map rawInboundTimes = new LinkedHashMap<>(); + matches.stream().filter(match -> match.inboundTimeRaw() != null) + .forEach(match -> rawInboundTimes.putIfAbsent(match.spaceId(), match.inboundTimeRaw())); + lanes.stream().flatMap(lane -> lane.spaces().stream()).forEach(space -> space.inventory().stream() + .filter(item -> item.inboundTimeRaw() != null) + .forEach(item -> rawInboundTimes.putIfAbsent(space.spaceId(), item.inboundTimeRaw()))); + OutboundPlan plan = outboundPlanner.plan(effectiveRequest, + new OutboundContext(List.copyOf(uniqueSpaces.values()), rawInboundTimes, + capacityMode(summary, policy), + repository.loadActiveDeepWorkflowFloors(warehouseId, request.requestId()))); + String resultCode = switch (plan.status()) { + case READY -> "READY"; + case WAITING -> "WAITING_" + plan.waiting().orElseThrow().code().name(); + case ERROR -> "ERROR_" + plan.error().orElseThrow().code().name(); + }; + String reason = plan.assignment().map(value -> value.reason()) + .or(() -> plan.waiting().map(value -> value.reason())) + .or(() -> plan.error().map(value -> value.message())).orElse(resultCode); + log(warehouseId, "OUTBOUND", null, resultCode, reason); + return plan; + } + + public TidyPlan planTidy(String warehouseId, Instant now) { + RepositoryPolicy policy = repository.loadPolicy(warehouseId); + List spaces = new ArrayList<>(); + forEachLanePage(warehouseId, false, + snapshots -> snapshots.forEach(lane -> spaces.addAll(lane.spaceStates()))); + List pending = repository.loadPendingOutboundJobs(warehouseId).stream() + .map(job -> new TidyPendingOutbound(job.projectNo(), job.productNo(), job.trayNo(), + job.sourceLaneCode())).toList(); + TidyPlan plan = tidyPlanner.plan(new TidyRequest(spaces, pending, now, + policy.schedulingPolicy(), policy.inboundPolicy().commonProjectNos())); + String result = plan.candidates().isEmpty() ? "EMPTY" : "READY"; + log(warehouseId, "TIDY", null, result, + plan.diagnostics().isEmpty() ? "candidates=" + plan.candidates().size() + : String.join("; ", plan.diagnostics())); + return plan; + } + + public InboundReservationOutcome reserveInbound(String reservationId, String warehouseId, String projectNo, + InboundPlanningResult planned) { + var assignment = planned.plan().assignment().orElseThrow( + () -> new IllegalArgumentException("Only an accepted inbound plan can be reserved")); + ReservationResult result = repository.tryReserveInbound(new InboundReservation(reservationId, warehouseId, + assignment.laneCode(), assignment.spaceId(), projectNo, planned.laneVersion())); + String resultCode = result.status() == ReservationStatus.CONFLICT ? "REPLAN_REQUIRED" : result.status().name(); + log(warehouseId, "INBOUND_RESERVATION", planned.laneVersion(), resultCode, + result.reasonCode() == null ? resultCode : result.reasonCode()); + return new InboundReservationOutcome(resultCode, result); + } + + public InboundReservationOutcome reserveInbound(InboundReservation reservation) { + ReservationResult result = repository.tryReserveInbound(reservation); + String resultCode = result.status() == ReservationStatus.CONFLICT ? "REPLAN_REQUIRED" : result.status().name(); + log(reservation.warehouseId(), "INBOUND_RESERVATION", reservation.expectedVersion(), resultCode, + result.reasonCode() == null ? resultCode : result.reasonCode()); + return new InboundReservationOutcome(resultCode, result); + } + + public ReservationResult releaseReservation(String warehouseId, String reservationId) { + ReservationResult result = repository.releaseReservation(warehouseId, reservationId); + log(warehouseId, "RESERVATION_RELEASE", null, result.status().name(), result.reasonCode()); + return result; + } + + public DeepWorkflowMutationResult acquireDeepWorkflowLock(String warehouseId, String requestId, int floorNo) { + DeepWorkflowMutationResult result = repository.acquireDeepWorkflowLockResult(requestId, warehouseId, floorNo); + log(warehouseId, "DEEP_WORKFLOW_LOCK", null, result.changed() ? "ACQUIRED" + : result.reasonCode() == null ? "CONFLICT" : result.reasonCode(), + "request=" + requestId + ", floor=" + floorNo); + return result; + } + + public DeepWorkflowMutationResult releaseDeepWorkflowLock(String warehouseId, String requestId, int floorNo) { + DeepWorkflowMutationResult result = repository.releaseDeepWorkflowLockResult(requestId, warehouseId, floorNo); + log(warehouseId, "DEEP_WORKFLOW_RELEASE", null, result.changed() ? "RELEASED" + : result.reasonCode() == null ? "NOT_FOUND" : result.reasonCode(), + "request=" + requestId + ", floor=" + floorNo); + return result; + } + + private void forEachLanePage(String warehouseId, boolean candidatesOnly, + java.util.function.Consumer> consumer) { + String cursor = null; + do { + LanePage page = candidatesOnly + ? repository.pageCandidateLanes(warehouseId, cursor, pageSize) + : repository.pageWarehouseLanes(warehouseId, cursor, pageSize); + List laneCodes = page.lanes().stream().map(LaneCandidate::laneCode).toList(); + if (!laneCodes.isEmpty()) consumer.accept(repository.loadLaneSnapshots(warehouseId, laneCodes)); + cursor = page.nextLaneCode(); + } while (cursor != null); + } + + private void log(String warehouseId, String type, VersionToken version, String resultCode, String reason) { + repository.insertDecision(new DecisionLogRecord(UUID.randomUUID().toString(), warehouseId, type, + version, resultCode, reason)); + } + + private OutboundCapacityMode capacityMode(WarehouseSummary summary, RepositoryPolicy policy) { + int occupied = summary.occupiedCount(); + if (occupied >= policy.schedulingPolicy().capacityFirstOccupied()) { + return OutboundCapacityMode.CAPACITY_FIRST; + } + if (occupied >= policy.schedulingPolicy().warningOccupied()) { + return OutboundCapacityMode.WARNING; + } + return OutboundCapacityMode.BALANCED; + } + + private SpaceState withProductScope(SpaceState space, String productId) { + return new SpaceState(space.spaceId(), space.zoneCode(), space.laneCode(), space.depthOrder(), + space.laneCapacity(), space.floorNo(), space.aisleNo(), space.groupCoding(), space.rowCode(), + space.role(), space.status(), space.outboundTaskActive(), space.inventoryProjectConflict(), + space.trayNo(), space.projectNo(), productId, space.lotNo(), space.inboundAt(), space.outboundAt(), + space.reserved(), space.rowVersion(), space.physicalStockPresent()); + } + + private boolean nonBlank(String value) { return value != null && !value.isBlank(); } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/WarehouseDiagnostics.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/WarehouseDiagnostics.java new file mode 100644 index 0000000..fe000d4 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/service/WarehouseDiagnostics.java @@ -0,0 +1,9 @@ +package com.ruoyi.algorithm.service; + +import com.ruoyi.algorithm.repository.WarehouseSummary; + +import java.util.List; + +public record WarehouseDiagnostics(WarehouseSummary summary, List issues) { + public WarehouseDiagnostics { issues = List.copyOf(issues); } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyCandidate.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyCandidate.java new file mode 100644 index 0000000..e2627ce --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyCandidate.java @@ -0,0 +1,17 @@ +package com.ruoyi.algorithm.tidy; + +import java.util.List; +import java.util.Optional; + +public record TidyCandidate( + TidyCandidateType type, + String projectNo, + List moves, + Optional releasesLaneCode, + String reason +) { + public TidyCandidate { + moves = List.copyOf(moves); + releasesLaneCode = releasesLaneCode == null ? Optional.empty() : releasesLaneCode; + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyCandidateType.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyCandidateType.java new file mode 100644 index 0000000..141d4bc --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyCandidateType.java @@ -0,0 +1,7 @@ +package com.ruoyi.algorithm.tidy; + +public enum TidyCandidateType { + GUEST_RETURN, + DOWNGRADE_MERGE, + CONSOLIDATE_INCUBATION +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyMove.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyMove.java new file mode 100644 index 0000000..6b8e7a6 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyMove.java @@ -0,0 +1,4 @@ +package com.ruoyi.algorithm.tidy; + +public record TidyMove(String trayNo, String fromSpaceId, String toSpaceId) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPendingOutbound.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPendingOutbound.java new file mode 100644 index 0000000..1c937a5 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPendingOutbound.java @@ -0,0 +1,4 @@ +package com.ruoyi.algorithm.tidy; + +public record TidyPendingOutbound(String projectNo, String productId, String trayNo, String laneCode) { +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPlan.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPlan.java new file mode 100644 index 0000000..daa6cae --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPlan.java @@ -0,0 +1,10 @@ +package com.ruoyi.algorithm.tidy; + +import java.util.List; + +public record TidyPlan(List candidates, List diagnostics) { + public TidyPlan { + candidates = List.copyOf(candidates); + diagnostics = List.copyOf(diagnostics); + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPlanner.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPlanner.java new file mode 100644 index 0000000..ee45570 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyPlanner.java @@ -0,0 +1,358 @@ +package com.ruoyi.algorithm.tidy; + +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; + +import java.time.Duration; +import java.time.Instant; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.Set; + +public final class TidyPlanner { + private static final Duration STAGNANT_AGE = Duration.ofHours(72); + + public TidyPlan plan(TidyRequest request) { + Map lanes = laneViews(request.spaces()); + Set pendingLanes = pendingLaneCodes(request); + Set usedSources = new HashSet<>(); + Set usedTargets = new HashSet<>(); + List candidates = new ArrayList<>(); + List diagnostics = new ArrayList<>(); + Map newestInboundByProject = newestInboundByProject(request.spaces()); + + addGuestReturns(lanes, pendingLanes, usedSources, usedTargets, candidates); + if (request.now() == null) { + diagnostics.add("No current time supplied; DOWNGRADE_MERGE candidates were skipped"); + } else { + addDowngrades(lanes, pendingLanes, request.now(), newestInboundByProject, + request.commonProjectNos(), usedSources, usedTargets, candidates); + } + addConsolidations(lanes, pendingLanes, request.commonProjectNos(), + usedSources, usedTargets, candidates); + + candidates.sort(Comparator.comparingInt((TidyCandidate candidate) -> candidate.type().ordinal()) + .thenComparingInt(candidate -> candidate.releasesLaneCode().isPresent() ? 0 : 1) + .thenComparingInt(candidate -> candidate.moves().size()) + .thenComparing(TidyCandidate::projectNo, Comparator.nullsLast(String::compareTo))); + int maximum = Math.max(0, request.policy().maxTidyCandidates()); + if (candidates.size() > maximum) { + diagnostics.add("Tidy candidates exceeded policy maximum; retained first " + maximum); + candidates = new ArrayList<>(candidates.subList(0, maximum)); + } + return new TidyPlan(candidates, diagnostics); + } + + private void addGuestReturns(Map lanes, Set pendingLanes, + Set usedSources, Set usedTargets, + List candidates) { + lanes.values().stream().sorted(Comparator.comparing(LaneView::laneCode)).forEach(source -> { + if (source.corrupt() || source.guestProject() == null || pendingLanes.contains(source.laneCode()) + || laneTouched(source, usedSources, usedTargets)) return; + List guests = source.guestSpaces().stream() + .sorted(Comparator.comparingInt(SpaceState::groupCoding).reversed() + .thenComparing(SpaceState::spaceId)) + .toList(); + if (guests.stream().anyMatch(space -> usedSources.contains(space.spaceId()))) return; + LaneView target = lanes.values().stream() + .filter(lane -> !lane.laneCode().equals(source.laneCode())) + .filter(lane -> !lane.corrupt() && lane.guestProject() == null) + .filter(lane -> source.guestProject().equals(lane.residentProject())) + .filter(lane -> !pendingLanes.contains(lane.laneCode())) + .filter(lane -> !laneTouched(lane, usedSources, usedTargets)) + .filter(lane -> availableTargets(lane, usedTargets).size() >= guests.size()) + .min(Comparator.comparingInt((LaneView lane) -> Math.abs(lane.floorNo() - source.floorNo())) + .thenComparing(Comparator.comparingInt((LaneView lane) -> lane.occupied().size()).reversed()) + .thenComparing(LaneView::laneCode)) + .orElse(null); + if (target == null) { + target = fallbackGuestDestination(source, source.guestProject(), guests.size(), lanes, + pendingLanes, usedSources, usedTargets); + } + if (target == null) return; + List targetSpaces = availableTargets(target, usedTargets).subList(0, guests.size()); + List moves = moves(guests, targetSpaces); + reserve(moves, usedSources, usedTargets); + candidates.add(new TidyCandidate(TidyCandidateType.GUEST_RETURN, source.guestProject(), moves, + Optional.empty(), "Return guest project stock to its own lane")); + }); + } + + private void addDowngrades(Map lanes, Set pendingLanes, Instant now, + Map newestInboundByProject, Set commonProjectNos, + Set usedSources, Set usedTargets, + List candidates) { + Instant threshold = now.minus(STAGNANT_AGE); + lanes.values().stream().sorted(Comparator.comparing(LaneView::laneCode)).forEach(source -> { + if (source.capacity() != 5 || source.corrupt() || source.guestProject() != null + || source.residentProject() == null || source.occupied().isEmpty() + || source.occupied().size() > 2 || pendingLanes.contains(source.laneCode()) + || commonProjectNos.contains(source.residentProject()) + || laneTouched(source, usedSources, usedTargets)) return; + Instant projectNewest = newestInboundByProject.get(source.residentProject()); + if (projectNewest == null || projectNewest.isAfter(threshold)) return; + LaneView target = source.occupied().size() == 1 ? lanes.values().stream() + .filter(lane -> lane.capacity() == 1 && lane.occupied().isEmpty() && !lane.corrupt()) + .filter(lane -> singlePoolTier(lane) < 2) + .filter(lane -> !pendingLanes.contains(lane.laneCode())) + .filter(lane -> !laneTouched(lane, usedSources, usedTargets)) + .filter(lane -> availableTargets(lane, usedTargets).size() == 1) + .min(Comparator.comparingInt(this::singlePoolTier) + .thenComparingInt(lane -> Math.abs(lane.floorNo() - source.floorNo())) + .thenComparing(LaneView::laneCode)) + .orElse(null) : null; + if (target == null) target = lanes.values().stream() + .filter(lane -> lane.capacity() == 2 && lane.occupied().isEmpty() && !lane.corrupt()) + .filter(lane -> !pendingLanes.contains(lane.laneCode())) + .filter(lane -> !laneTouched(lane, usedSources, usedTargets)) + .filter(lane -> availableTargets(lane, usedTargets).size() >= source.occupied().size()) + .min(Comparator.comparingInt((LaneView lane) -> Math.abs(lane.floorNo() - source.floorNo())) + .thenComparing(LaneView::laneCode)) + .orElse(null); + if (target == null) return; + List ordered = source.occupied().stream() + .sorted(Comparator.comparingInt(SpaceState::groupCoding).reversed() + .thenComparing(SpaceState::spaceId)) + .toList(); + List moves = moves(ordered, + availableTargets(target, usedTargets).subList(0, ordered.size())); + reserve(moves, usedSources, usedTargets); + candidates.add(new TidyCandidate(TidyCandidateType.DOWNGRADE_MERGE, source.residentProject(), moves, + Optional.of(source.laneCode()), "Move stagnant stock to a shallower lane and release the deep lane")); + }); + } + + private void addConsolidations(Map lanes, Set pendingLanes, + Set commonProjectNos, + Set usedSources, Set usedTargets, + List candidates) { + Set projects = new HashSet<>(); + lanes.values().forEach(lane -> { + if (lane.capacity() == 5 && !lane.corrupt() && lane.guestProject() == null + && lane.residentProject() != null && !lane.occupied().isEmpty() + && lane.occupied().stream().noneMatch(space -> usedSources.contains(space.spaceId())) + && lane.spaces().stream().noneMatch(space -> usedTargets.contains(space.spaceId())) + && !commonProjectNos.contains(lane.residentProject()) + && !availableTargets(lane, usedTargets).isEmpty() && !pendingLanes.contains(lane.laneCode())) { + projects.add(lane.residentProject()); + } + }); + projects.stream().sorted().forEach(project -> { + if (commonProjectNos.contains(project)) return; + List deep = lanes.values().stream() + .filter(lane -> lane.capacity() == 5 && !lane.corrupt() && lane.guestProject() == null) + .filter(lane -> project.equals(lane.residentProject())) + .filter(lane -> lane.occupied().stream().noneMatch(space -> usedSources.contains(space.spaceId()))) + .filter(lane -> lane.spaces().stream().noneMatch(space -> usedTargets.contains(space.spaceId()))) + .filter(lane -> !pendingLanes.contains(lane.laneCode())) + .sorted(Comparator.comparingInt((LaneView lane) -> lane.occupied().size()).reversed() + .thenComparing(LaneView::laneCode)) + .toList(); + if (deep.isEmpty()) return; + List shallow = lanes.values().stream() + .filter(lane -> lane.capacity() <= 2 && !pendingLanes.contains(lane.laneCode())) + .filter(lane -> !laneTouched(lane, usedSources, usedTargets)) + .flatMap(lane -> accessibleInPhysicalOrder(lane).stream()) + .filter(space -> project.equals(space.projectNo())) + .filter(space -> !usedSources.contains(space.spaceId())) + .sorted(Comparator.comparing(SpaceState::laneCode) + .thenComparing(Comparator.comparingInt(SpaceState::groupCoding).reversed()) + .thenComparing(SpaceState::spaceId)) + .toList(); + if (shallow.isEmpty()) return; + List moves = new ArrayList<>(); + for (SpaceState source : shallow) { + SpaceState target = deep.stream().flatMap(lane -> availableTargets(lane, usedTargets).stream()) + .findFirst().orElse(null); + if (target == null) break; + TidyMove move = new TidyMove(source.trayNo(), source.spaceId(), target.spaceId()); + moves.add(move); + reserve(List.of(move), usedSources, usedTargets); + } + if (moves.isEmpty()) return; + Optional released = lanes.values().stream() + .filter(lane -> lane.capacity() <= 2) + .filter(lane -> lane.occupied().stream().allMatch(space -> usedSources.contains(space.spaceId()))) + .filter(lane -> lane.occupied().stream().anyMatch(space -> project.equals(space.projectNo()))) + .map(LaneView::laneCode).sorted().findFirst(); + candidates.add(new TidyCandidate(TidyCandidateType.CONSOLIDATE_INCUBATION, project, moves, released, + "Consolidate accessible shallow stock into a current deep project lane")); + }); + } + + private LaneView fallbackGuestDestination(LaneView source, String projectNo, int requiredSlots, + Map lanes, Set pendingLanes, + Set usedSources, Set usedTargets) { + int projectPallets = (int) lanes.values().stream() + .flatMap(lane -> lane.occupied().stream()) + .filter(space -> projectNo.equals(space.projectNo())) + .count(); + int[] depthOrder = projectPallets >= 2 ? new int[]{5, 3, 2} : new int[]{2, 3}; + for (int depth : depthOrder) { + LaneView empty = lanes.values().stream() + .filter(lane -> lane.capacity() == depth && lane.occupied().isEmpty() && !lane.corrupt()) + .filter(lane -> !pendingLanes.contains(lane.laneCode())) + .filter(lane -> !laneTouched(lane, usedSources, usedTargets)) + .filter(lane -> lane.spaces().stream().allMatch(this::ordinaryAvailableStorage)) + .filter(lane -> availableTargets(lane, usedTargets).size() >= requiredSlots) + .min(Comparator.comparingInt((LaneView lane) -> Math.abs(lane.floorNo() - source.floorNo())) + .thenComparing(LaneView::laneCode)) + .orElse(null); + if (empty != null) return empty; + } + if (requiredSlots != 1) return null; + return lanes.values().stream() + .filter(lane -> lane.capacity() == 1 && lane.occupied().isEmpty() && !lane.corrupt()) + .filter(lane -> !pendingLanes.contains(lane.laneCode())) + .filter(lane -> !laneTouched(lane, usedSources, usedTargets)) + .filter(lane -> lane.spaces().stream().allMatch(this::ordinaryAvailableStorage)) + .min(Comparator.comparingInt(this::singlePoolTier) + .thenComparingInt(lane -> Math.abs(lane.floorNo() - source.floorNo())) + .thenComparing(LaneView::laneCode)) + .orElse(null); + } + + private boolean ordinaryAvailableStorage(SpaceState space) { + return space.role() == SpaceRole.STORAGE && space.availableEmpty(); + } + + private int singlePoolTier(LaneView lane) { + String zone = lane.spaces().get(0).zoneCode(); + if ("FLEX".equals(zone)) return 0; + if ("CACHE".equals(zone)) return 1; + return 2; + } + + private boolean laneTouched(LaneView lane, Set usedSources, Set usedTargets) { + return lane.spaces().stream().anyMatch(space -> usedSources.contains(space.spaceId()) + || usedTargets.contains(space.spaceId())); + } + + private Map newestInboundByProject(List spaces) { + Map result = new HashMap<>(); + spaces.stream().filter(SpaceState::occupied) + .filter(space -> !blank(space.projectNo()) && space.inboundAt() != null) + .forEach(space -> result.merge(space.projectNo(), space.inboundAt(), + (left, right) -> left.isAfter(right) ? left : right)); + return result; + } + + private List accessibleInPhysicalOrder(LaneView lane) { + if (lane.corrupt() || lane.occupied().isEmpty()) return List.of(); + return lane.occupied().stream() + .sorted(Comparator.comparingInt(SpaceState::groupCoding).reversed() + .thenComparing(SpaceState::spaceId)) + .toList(); + } + + private List moves(List sources, List targets) { + List result = new ArrayList<>(); + for (int index = 0; index < sources.size(); index++) { + result.add(new TidyMove(sources.get(index).trayNo(), sources.get(index).spaceId(), targets.get(index).spaceId())); + } + return result; + } + + private void reserve(List moves, Set usedSources, Set usedTargets) { + moves.forEach(move -> { + usedSources.add(move.fromSpaceId()); + usedTargets.add(move.toSpaceId()); + }); + } + + private List availableTargets(LaneView lane, Set usedTargets) { + if (lane.corrupt()) return List.of(); + return lane.spaces().stream() + .filter(space -> space.groupCoding() > lane.occupied().size()) + .filter(space -> space.role() == SpaceRole.STORAGE && space.availableEmpty()) + .filter(space -> !usedTargets.contains(space.spaceId())) + .sorted(Comparator.comparingInt(SpaceState::groupCoding).thenComparing(SpaceState::spaceId)) + .toList(); + } + + private Set pendingLaneCodes(TidyRequest request) { + Set result = new HashSet<>(); + request.spaces().stream().filter(SpaceState::outboundTaskActive) + .map(SpaceState::laneCode).forEach(result::add); + for (TidyPendingOutbound pending : request.pendingOutbounds()) { + if (!blank(pending.laneCode())) result.add(pending.laneCode()); + request.spaces().stream().filter(SpaceState::occupied).filter(space -> pendingMatches(space, pending)) + .map(SpaceState::laneCode).forEach(result::add); + } + return result; + } + + private boolean pendingMatches(SpaceState space, TidyPendingOutbound pending) { + if (!blank(pending.trayNo())) return pending.trayNo().equals(space.trayNo()); + if (blank(pending.projectNo())) return false; + return pending.projectNo().equals(space.projectNo()) + && (blank(pending.productId()) || pending.productId().equals(space.productId())); + } + + private Map laneViews(List spaces) { + Map> grouped = new LinkedHashMap<>(); + spaces.forEach(space -> grouped.computeIfAbsent(space.laneCode(), ignored -> new ArrayList<>()).add(space)); + Map result = new HashMap<>(); + grouped.forEach((laneCode, members) -> result.put(laneCode, analyze(laneCode, members))); + return result; + } + + private LaneView analyze(String laneCode, List members) { + List ordered = members.stream() + .sorted(Comparator.comparingInt(SpaceState::groupCoding).thenComparing(SpaceState::spaceId)) + .toList(); + int capacity = ordered.stream().mapToInt(SpaceState::laneCapacity).max().orElse(0); + List occupied = ordered.stream().filter(SpaceState::occupied).toList(); + boolean corrupt = ordered.size() != capacity; + boolean emptySeen = false; + List segments = new ArrayList<>(); + String last = null; + for (SpaceState space : ordered) { + if (!space.occupied()) { + emptySeen = true; + continue; + } + if (emptySeen || space.inventoryProjectConflict() || !space.outboundSelectable()) corrupt = true; + String projectNo = space.projectNo(); + if (blank(projectNo)) { + corrupt = true; + continue; + } + if (!projectNo.equals(last)) { + segments.add(projectNo); + last = projectNo; + } + } + if (segments.size() > 2) corrupt = true; + String resident = segments.isEmpty() ? null : segments.get(0); + String guest = segments.size() < 2 ? null : segments.get(1); + String finalGuest = guest; + List guests = guest == null ? List.of() + : occupied.stream().filter(space -> finalGuest.equals(space.projectNo())).toList(); + int floor = ordered.isEmpty() ? 0 : ordered.get(0).floorNo(); + return new LaneView(laneCode, capacity, floor, ordered, occupied, corrupt, resident, guest, guests); + } + + private boolean blank(String value) { + return value == null || value.isBlank(); + } + + private record LaneView( + String laneCode, + int capacity, + int floorNo, + List spaces, + List occupied, + boolean corrupt, + String residentProject, + String guestProject, + List guestSpaces + ) { + } +} diff --git a/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyRequest.java b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyRequest.java new file mode 100644 index 0000000..5325040 --- /dev/null +++ b/fortucky-algorithm/src/main/java/com/ruoyi/algorithm/tidy/TidyRequest.java @@ -0,0 +1,28 @@ +package com.ruoyi.algorithm.tidy; + +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.policy.SchedulingPolicy; + +import java.time.Instant; +import java.util.List; +import java.util.Set; + +public record TidyRequest( + List spaces, + List pendingOutbounds, + Instant now, + SchedulingPolicy policy, + Set commonProjectNos +) { + public TidyRequest { + spaces = List.copyOf(spaces); + pendingOutbounds = pendingOutbounds == null ? List.of() : List.copyOf(pendingOutbounds); + policy = policy == null ? SchedulingPolicy.ft546Defaults() : policy; + commonProjectNos = commonProjectNos == null ? Set.of("COMMON") : Set.copyOf(commonProjectNos); + } + + public TidyRequest(List spaces, List pendingOutbounds, + Instant now, SchedulingPolicy policy) { + this(spaces, pendingOutbounds, now, policy, Set.of("COMMON")); + } +} diff --git a/fortucky-algorithm/src/main/resources/db/sqlserver/diagnostics.sql b/fortucky-algorithm/src/main/resources/db/sqlserver/diagnostics.sql new file mode 100644 index 0000000..14a3530 --- /dev/null +++ b/fortucky-algorithm/src/main/resources/db/sqlserver/diagnostics.sql @@ -0,0 +1,224 @@ +/* Read-only validation queries for a SQL Server 2016 installation. */ +SET NOCOUNT ON; + +SELECT CAST(SERVERPROPERTY('ProductVersion') AS varchar(30)) AS product_version, + DB_NAME() AS database_name; + +SELECT o.type_desc, COUNT(*) AS object_count +FROM sys.objects o +JOIN sys.schemas s ON s.schema_id = o.schema_id +WHERE s.name = N'alg' AND o.type IN ('U', 'V', 'P') +GROUP BY o.type_desc +ORDER BY o.type_desc; + +SELECT installed.object_kind, installed.object_name +FROM ( + SELECT o.type_desc AS object_kind, o.name AS object_name + FROM sys.objects o + JOIN sys.schemas s ON s.schema_id = o.schema_id + WHERE s.name = N'alg' AND o.type IN ('U', 'V', 'P') + UNION ALL + SELECT 'INDEX' AS object_kind, i.name AS object_name + FROM sys.indexes i + JOIN sys.objects o ON o.object_id = i.object_id + JOIN sys.schemas s ON s.schema_id = o.schema_id + WHERE s.name = N'alg' AND i.name IS NOT NULL +) installed +ORDER BY installed.object_kind, installed.object_name; + +SELECT warehouse_id, + COUNT_BIG(*) AS excluded_from_algorithm_topology_count, + SUM(CASE WHEN group_coding_no IS NULL OR LTRIM(RTRIM(group_coding_no)) = '' + THEN 1 ELSE 0 END) AS missing_lane_code_count, + SUM(CASE WHEN TRY_CONVERT(int, group_coding) IS NULL + THEN 1 ELSE 0 END) AS invalid_depth_count +FROM dbo.bas_cargo_space +WHERE group_coding_no IS NULL OR LTRIM(RTRIM(group_coding_no)) = '' + OR TRY_CONVERT(int, group_coding) IS NULL +GROUP BY warehouse_id +ORDER BY warehouse_id; + +SELECT warehouse_id, + COUNT(*) AS space_state_count, + SUM(CASE WHEN space_status = 2 THEN 1 ELSE 0 END) AS full_space_count, + SUM(CASE WHEN inbound_available = 1 THEN 1 ELSE 0 END) AS inbound_available_count, + SUM(CASE WHEN pending_outbound = 1 THEN 1 ELSE 0 END) AS pending_outbound_space_count, + SUM(CASE WHEN has_gap = 1 THEN 1 ELSE 0 END) AS gap_space_count, + SUM(CASE WHEN tray_conflict = 1 OR project_conflict = 1 OR product_conflict = 1 THEN 1 ELSE 0 END) AS conflict_space_count +FROM alg.v_space_state +GROUP BY warehouse_id +ORDER BY warehouse_id; + +SELECT warehouse_id, COUNT(*) AS topology_count +FROM alg.space_topology +GROUP BY warehouse_id +ORDER BY warehouse_id; + +SELECT warehouse_id, + COUNT(*) AS inventory_detail_snapshot_count, + COUNT(DISTINCT space_id) AS inventory_space_snapshot_count, + MAX(synchronized_at) AS last_inventory_synchronized_at +FROM alg.inventory_item_snapshot +GROUP BY warehouse_id +ORDER BY warehouse_id; + +;WITH warehouse_floors AS ( + SELECT DISTINCT warehouse_id, the_floor AS floor_no + FROM dbo.bas_cargo_space +), role_counts AS ( + SELECT cargo.warehouse_id, cargo.the_floor AS floor_no, + SUM(CASE WHEN role.role = 'RELOCATION_BUFFER' THEN 1 ELSE 0 END) AS relocation_buffer_count, + SUM(CASE WHEN role.role = 'OUTBOUND_BUFFER' THEN 1 ELSE 0 END) AS outbound_buffer_count, + SUM(CASE WHEN role.role = 'PROTECTED_CORE' THEN 1 ELSE 0 END) AS protected_core_count + FROM dbo.bas_cargo_space cargo + LEFT JOIN alg.space_role role ON role.space_id = cargo.cargo_space_id + GROUP BY cargo.warehouse_id, cargo.the_floor +) +SELECT floors.warehouse_id, floors.floor_no, + ISNULL(counts.relocation_buffer_count, 0) AS relocation_buffer_count, + CAST(4 AS int) AS relocation_buffer_target, + CASE WHEN ISNULL(counts.relocation_buffer_count, 0) >= 4 THEN 0 + ELSE 4 - ISNULL(counts.relocation_buffer_count, 0) END AS relocation_buffer_shortage, + ISNULL(counts.outbound_buffer_count, 0) AS outbound_buffer_count, + ISNULL(counts.protected_core_count, 0) AS protected_core_count +FROM warehouse_floors floors +LEFT JOIN role_counts counts ON counts.warehouse_id = floors.warehouse_id + AND counts.floor_no = floors.floor_no +ORDER BY floors.warehouse_id, floors.floor_no; + +SELECT cargo.warehouse_id, cargo.the_floor AS floor_no, role.space_id, role.role, role.updated_at +FROM alg.space_role role +JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = role.space_id +WHERE role.role IN ('RELOCATION_BUFFER', 'OUTBOUND_BUFFER', 'PROTECTED_CORE') +ORDER BY cargo.warehouse_id, cargo.the_floor, role.role, role.space_id; + +SELECT warehouse_id, COUNT(*) AS lane_state_count, + SUM(CASE WHEN pending_outbound = 1 THEN 1 ELSE 0 END) AS pending_lane_count, + SUM(CASE WHEN has_gap = 1 THEN 1 ELSE 0 END) AS gap_lane_count +FROM alg.lane_state +GROUP BY warehouse_id +ORDER BY warehouse_id; + +SELECT 'bas_cargo_space' AS table_name, COUNT_BIG(*) AS row_count, + CHECKSUM_AGG(BINARY_CHECKSUM(cargo_space_id, warehouse_id, group_coding_no, group_coding, status, tray_code)) AS row_checksum +FROM dbo.bas_cargo_space +UNION ALL +SELECT 'bas_stock', COUNT_BIG(*), + CHECKSUM_AGG(BINARY_CHECKSUM(stock_id, cargo_space_id, tray_code, spare4, product_id, lot_no, in_date)) +FROM dbo.bas_stock +UNION ALL +SELECT 'mydo_job', COUNT_BIG(*), + CHECKSUM_AGG(BINARY_CHECKSUM(job_id, status, task_no, tray_code, cargo_space_id, target_cargo_space_id, in_or_out, warehouse_id)) +FROM dbo.mydo_job; + +;WITH pallet_details AS ( + SELECT cargo_space_id, + MIN(NULLIF(LTRIM(RTRIM(tray_code)), '')) AS tray_code, + MIN(NULLIF(LTRIM(RTRIM(spare4)), '')) AS project_no, + MIN(NULLIF(LTRIM(RTRIM(product_id)), '')) AS first_product_no, + MAX(NULLIF(LTRIM(RTRIM(product_id)), '')) AS last_product_no, + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(product_id)), '')) AS product_count + FROM dbo.bas_stock + GROUP BY cargo_space_id +) +SELECT TOP 5 state.space_id, details.tray_code, details.project_no, + details.first_product_no, details.last_product_no, details.product_count +FROM pallet_details details +JOIN alg.v_space_state state ON state.space_id = details.cargo_space_id +WHERE details.product_count > 1 + AND state.space_status = '2' + AND state.stock_tray_count = 1 + AND state.stock_project_count = 1 + AND state.tray_conflict = 0 + AND state.project_conflict = 0 + AND state.pending_outbound = 0 + AND state.reserved = 0 + AND state.has_gap = 0 +ORDER BY state.space_id; + +SELECT space_id, warehouse_id, lane_code, depth, space_status, role, + tray_conflict, project_conflict, product_conflict, pending_outbound, reserved, has_gap, + inbound_available +FROM alg.v_space_state +WHERE tray_conflict = 1 OR project_conflict = 1 OR product_conflict = 1 + OR pending_outbound = 1 OR has_gap = 1 +ORDER BY warehouse_id, lane_code, depth; + +SELECT reservation_id, warehouse_id, lane_code, space_id, project_no, status, + created_at, released_at +FROM alg.reservation +ORDER BY created_at DESC; + +SELECT lock_id, request_id, warehouse_id, floor_no, status, created_at, released_at +FROM alg.deep_workflow_lock +ORDER BY created_at DESC; + +SELECT warehouse_id, lane_code, topology_dirty, reason_mask, change_count, + enqueued_at, last_changed_at +FROM alg.dirty_lane_queue +ORDER BY last_changed_at, warehouse_id, lane_code; + +SELECT workflow_id, request_id, stockout_detail_id, warehouse_id, source_stock_id, + selected_tray_code, source_space_id, lane_code, floor_no, exit_id, + status, current_step, total_steps, created_at, updated_at, completed_at +FROM alg.outbound_workflow +WHERE status <> 'COMPLETED' +ORDER BY created_at, workflow_id; + +SELECT step.workflow_id, step.assignment_id, step.phase, step.source_space_id, + step.target_space_id, step.workflow_step, step.workflow_total_steps, + step.depends_on_assignment_id, step.stock_id, step.tray_code, step.status, + step.wms_job_id, step.created_at, step.started_at, step.at_exit_at, step.completed_at +FROM alg.outbound_workflow_step step +JOIN alg.outbound_workflow workflow ON workflow.workflow_id = step.workflow_id +WHERE workflow.status <> 'COMPLETED' OR step.status <> 'COMPLETED' +ORDER BY step.workflow_id, step.workflow_step; + +SELECT mode.warehouse_id, mode.requested_enabled, mode.effective_state, + mode.status_reason, mode.mode_version, mode.updated_by, mode.updated_at +FROM alg.tidy_mode mode +ORDER BY mode.warehouse_id; + +SELECT queue.warehouse_id, queue.lane_code, queue.dirty_version, queue.queue_status, + queue.reason_mask, queue.change_count, queue.last_dirty_at, queue.claimed_version, + queue.claimed_by, queue.claimed_at, queue.lease_expires_at, queue.last_error +FROM alg.tidy_lane_queue queue +ORDER BY queue.last_dirty_at, queue.warehouse_id, queue.lane_code; + +SELECT workflow.workflow_id, workflow.warehouse_id, workflow.lane_code, workflow.origin, + workflow.candidate_type, workflow.source_space_id, workflow.target_space_id, + workflow.stock_id, workflow.tray_code, workflow.status, workflow.claimed_dirty_version, + workflow.vehicle_id, workflow.wcs_task_id, workflow.status_reason, + workflow.created_at, workflow.updated_at, workflow.dispatched_at, workflow.completed_at +FROM alg.tidy_workflow workflow +WHERE workflow.completed_at IS NULL + OR workflow.status IN ('PAUSED_RECOVERY', 'CANCELLED_RECONCILED') +ORDER BY workflow.created_at, workflow.workflow_id; + +SELECT step.workflow_id, step.step_id, step.step_no, step.source_space_id, + step.target_space_id, step.stock_id, step.tray_code, step.status, + step.wms_job_id, step.wcs_task_id, step.expected_event_stage, + step.created_at, step.started_at, step.completed_at +FROM alg.tidy_step step +JOIN alg.tidy_workflow workflow ON workflow.workflow_id = step.workflow_id +WHERE workflow.completed_at IS NULL OR step.completed_at IS NULL +ORDER BY step.workflow_id, step.step_no; + +SELECT lock.workflow_id, lock.warehouse_id, lock.resource_type, lock.resource_id, + lock.status, lock.locked_at, lock.released_at +FROM alg.tidy_space_lock lock +WHERE lock.status = 'ACTIVE' +ORDER BY lock.warehouse_id, lock.resource_type, lock.resource_id; + +SELECT event.workflow_id, event.step_id, event.wcs_task_id, event.event_stage, + COUNT(*) AS callback_count, MIN(event.received_at) AS first_received_at, + MAX(event.received_at) AS last_received_at +FROM alg.tidy_callback_event event +GROUP BY event.workflow_id, event.step_id, event.wcs_task_id, event.event_stage +HAVING COUNT(*) > 1 +ORDER BY event.workflow_id, event.step_id, event.event_stage; + +SELECT workflow.origin, workflow.status, COUNT(*) AS workflow_count +FROM alg.tidy_workflow workflow +GROUP BY workflow.origin, workflow.status +ORDER BY workflow.origin, workflow.status; diff --git a/fortucky-algorithm/src/main/resources/db/sqlserver/install.sql b/fortucky-algorithm/src/main/resources/db/sqlserver/install.sql new file mode 100644 index 0000000..1164263 --- /dev/null +++ b/fortucky-algorithm/src/main/resources/db/sqlserver/install.sql @@ -0,0 +1,1936 @@ +/* + FT546 algorithm read model for SQL Server 2016 RTM (13.0). + This script owns only schema alg. It never changes dbo.bas_cargo_space, + dbo.bas_stock, or dbo.mydo_job. +*/ +SET NOCOUNT ON; + +IF SCHEMA_ID(N'alg') IS NULL EXEC(N'CREATE SCHEMA alg'); +GO + +IF OBJECT_ID(N'alg.warehouse_policy', N'U') IS NULL +CREATE TABLE alg.warehouse_policy ( + warehouse_id varchar(80) NOT NULL PRIMARY KEY, + target_fill_rate decimal(9,4) NULL, + fifo_tolerance_hours int NULL, + updated_at datetime2 NOT NULL CONSTRAINT DF_alg_warehouse_policy_updated_at DEFAULT SYSUTCDATETIME() +); +GO + +IF OBJECT_ID(N'alg.project_policy', N'U') IS NULL +CREATE TABLE alg.project_policy ( + project_no varchar(255) NOT NULL PRIMARY KEY, + is_isolated bit NOT NULL CONSTRAINT DF_alg_project_policy_isolated DEFAULT 0, + is_common bit NOT NULL CONSTRAINT DF_alg_project_policy_common DEFAULT 0, + allow_mixed bit NOT NULL CONSTRAINT DF_alg_project_policy_mixed DEFAULT 0, + updated_at datetime2 NOT NULL CONSTRAINT DF_alg_project_policy_updated_at DEFAULT SYSUTCDATETIME() +); +GO + +IF OBJECT_ID(N'alg.space_role', N'U') IS NULL +CREATE TABLE alg.space_role ( + space_id varchar(80) NOT NULL PRIMARY KEY, + role varchar(40) NOT NULL, + updated_at datetime2 NOT NULL CONSTRAINT DF_alg_space_role_updated_at DEFAULT SYSUTCDATETIME(), + CONSTRAINT CK_alg_space_role_role CHECK (role IN ('STORAGE', 'RELOCATION_BUFFER', 'OUTBOUND_BUFFER', 'PROTECTED_CORE')) +); +GO + +IF OBJECT_ID(N'alg.space_topology', N'U') IS NULL +CREATE TABLE alg.space_topology ( + warehouse_id varchar(80) NOT NULL, + space_id varchar(80) NOT NULL CONSTRAINT PK_alg_space_topology PRIMARY KEY, + lane_code varchar(80) NOT NULL, + lane_depth int NOT NULL, + base_zone varchar(20) NOT NULL, + rebuilt_at datetime2 NOT NULL CONSTRAINT DF_alg_space_topology_rebuilt_at DEFAULT SYSUTCDATETIME(), + CONSTRAINT CK_alg_space_topology_base_zone CHECK (base_zone IN ('CACHE', 'RESERVE', 'MAIN', 'FLEX')) +); +GO + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.space_topology') AND name = N'IX_alg_space_topology_warehouse_lane') +CREATE INDEX IX_alg_space_topology_warehouse_lane ON alg.space_topology(warehouse_id, lane_code); +GO + +IF OBJECT_ID(N'alg.inventory_item_snapshot', N'U') IS NULL +CREATE TABLE alg.inventory_item_snapshot ( + warehouse_id varchar(80) NOT NULL, + stock_id varchar(80) NOT NULL, + space_id varchar(80) NOT NULL, + tray_code varchar(255) NULL, + project_no varchar(255) NULL, + product_no varchar(255) NULL, + lot_no varchar(80) NULL, + inbound_time_raw varchar(80) NULL, + inbound_at datetime2 NULL, + quantity decimal(38,6) NULL, + out_quantity decimal(38,6) NULL, + synchronized_at datetime2 NOT NULL CONSTRAINT DF_alg_inventory_item_snapshot_sync DEFAULT SYSUTCDATETIME(), + CONSTRAINT PK_alg_inventory_item_snapshot PRIMARY KEY (warehouse_id, stock_id) +); +GO + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.inventory_item_snapshot') AND name = N'IX_alg_inventory_item_snapshot_space') +CREATE INDEX IX_alg_inventory_item_snapshot_space ON alg.inventory_item_snapshot(warehouse_id, space_id); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.inventory_item_snapshot') AND name = N'IX_alg_inventory_item_snapshot_tray') +CREATE INDEX IX_alg_inventory_item_snapshot_tray ON alg.inventory_item_snapshot(warehouse_id, tray_code) INCLUDE (space_id, project_no, product_no); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.inventory_item_snapshot') AND name = N'IX_alg_inventory_item_snapshot_project_product') +CREATE INDEX IX_alg_inventory_item_snapshot_project_product ON alg.inventory_item_snapshot(warehouse_id, project_no, product_no) INCLUDE (space_id, tray_code, inbound_at); +GO + +IF OBJECT_ID(N'alg.space_inventory_summary', N'U') IS NULL +CREATE TABLE alg.space_inventory_summary ( + warehouse_id varchar(80) NOT NULL, + space_id varchar(80) NOT NULL, + stock_detail_count int NOT NULL, + stock_tray_count int NOT NULL, + stock_project_count int NOT NULL, + stock_product_count int NOT NULL, + synchronized_at datetime2 NOT NULL CONSTRAINT DF_alg_space_inventory_summary_sync DEFAULT SYSUTCDATETIME(), + CONSTRAINT PK_alg_space_inventory_summary PRIMARY KEY (warehouse_id, space_id) +); +GO + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.space_inventory_summary') AND name = N'IX_alg_space_inventory_summary_space') +CREATE INDEX IX_alg_space_inventory_summary_space ON alg.space_inventory_summary(space_id, warehouse_id); +GO + +IF OBJECT_ID(N'alg.lane_state', N'U') IS NULL +CREATE TABLE alg.lane_state ( + warehouse_id varchar(80) NOT NULL, + lane_code varchar(80) NOT NULL, + space_count int NOT NULL CONSTRAINT DF_alg_lane_state_space_count DEFAULT 0, + occupied_count int NOT NULL CONSTRAINT DF_alg_lane_state_occupied_count DEFAULT 0, + available_count int NOT NULL CONSTRAINT DF_alg_lane_state_available_count DEFAULT 0, + pending_outbound bit NOT NULL CONSTRAINT DF_alg_lane_state_pending_outbound DEFAULT 0, + has_gap bit NOT NULL CONSTRAINT DF_alg_lane_state_has_gap DEFAULT 0, + semantic_fingerprint varbinary(32) NULL, + state_version rowversion NOT NULL, + rebuilt_at datetime2 NOT NULL CONSTRAINT DF_alg_lane_state_rebuilt_at DEFAULT SYSUTCDATETIME(), + CONSTRAINT PK_alg_lane_state PRIMARY KEY (warehouse_id, lane_code) +); +GO + +IF COL_LENGTH(N'alg.lane_state', N'semantic_fingerprint') IS NULL +ALTER TABLE alg.lane_state ADD semantic_fingerprint varbinary(32) NULL; +GO + +IF OBJECT_ID(N'alg.reservation', N'U') IS NULL +CREATE TABLE alg.reservation ( + reservation_id uniqueidentifier NOT NULL CONSTRAINT PK_alg_reservation PRIMARY KEY, + warehouse_id varchar(80) NOT NULL, + lane_code varchar(80) NOT NULL, + space_id varchar(80) NOT NULL, + project_no varchar(255) NULL, + status varchar(20) NOT NULL, + created_at datetime2 NOT NULL CONSTRAINT DF_alg_reservation_created_at DEFAULT SYSUTCDATETIME(), + released_at datetime2 NULL, + CONSTRAINT CK_alg_reservation_status CHECK (status IN ('ACTIVE', 'RELEASED', 'EXPIRED')) +); +GO + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.reservation') AND name = N'UX_alg_reservation_active_space') +CREATE UNIQUE INDEX UX_alg_reservation_active_space ON alg.reservation(space_id) WHERE status = 'ACTIVE'; +GO + +IF OBJECT_ID(N'alg.deep_workflow_lock', N'U') IS NULL +CREATE TABLE alg.deep_workflow_lock ( + lock_id uniqueidentifier NOT NULL CONSTRAINT PK_alg_deep_workflow_lock PRIMARY KEY, + request_id varchar(80) NOT NULL, + warehouse_id varchar(80) NOT NULL, + floor_no int NOT NULL, + status varchar(20) NOT NULL, + created_at datetime2 NOT NULL CONSTRAINT DF_alg_deep_workflow_lock_created_at DEFAULT SYSUTCDATETIME(), + released_at datetime2 NULL, + CONSTRAINT CK_alg_deep_workflow_lock_status CHECK (status IN ('ACTIVE', 'RELEASED')) +); +GO + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.deep_workflow_lock') AND name = N'UX_alg_deep_workflow_lock_active_floor') +CREATE UNIQUE INDEX UX_alg_deep_workflow_lock_active_floor +ON alg.deep_workflow_lock(warehouse_id, floor_no) WHERE status = 'ACTIVE'; +GO + +IF OBJECT_ID(N'alg.outbound_workflow', N'U') IS NULL +CREATE TABLE alg.outbound_workflow ( + workflow_id varchar(120) NOT NULL CONSTRAINT PK_alg_outbound_workflow PRIMARY KEY, + request_id varchar(80) NOT NULL, + stockout_detail_id varchar(80) NOT NULL, + warehouse_id varchar(80) NOT NULL, + source_stock_id varchar(80) NOT NULL, + selected_tray_code varchar(255) NOT NULL, + source_space_id varchar(80) NOT NULL, + lane_code varchar(80) NOT NULL, + floor_no int NOT NULL, + exit_id varchar(80) NOT NULL, + status varchar(20) NOT NULL, + current_step int NOT NULL CONSTRAINT DF_alg_outbound_workflow_current_step DEFAULT 0, + total_steps int NOT NULL, + created_at datetime2 NOT NULL CONSTRAINT DF_alg_outbound_workflow_created_at DEFAULT SYSUTCDATETIME(), + updated_at datetime2 NOT NULL CONSTRAINT DF_alg_outbound_workflow_updated_at DEFAULT SYSUTCDATETIME(), + completed_at datetime2 NULL, + CONSTRAINT CK_alg_outbound_workflow_status CHECK (status IN ('ACTIVE', 'COMPLETED', 'FAILED', 'CANCELLED')), + CONSTRAINT CK_alg_outbound_workflow_steps CHECK (total_steps > 0 AND current_step >= 0 AND current_step <= total_steps) +); +GO + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.outbound_workflow') AND name = N'UX_alg_outbound_workflow_active_request') +CREATE UNIQUE INDEX UX_alg_outbound_workflow_active_request +ON alg.outbound_workflow(request_id, warehouse_id, floor_no) WHERE status = 'ACTIVE'; +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.outbound_workflow') AND name = N'IX_alg_outbound_workflow_stockout_detail') +CREATE INDEX IX_alg_outbound_workflow_stockout_detail +ON alg.outbound_workflow(stockout_detail_id, status) INCLUDE (workflow_id, warehouse_id, floor_no); +GO + +IF COL_LENGTH(N'alg.outbound_workflow', N'origin') IS NULL +ALTER TABLE alg.outbound_workflow ADD origin varchar(24) NOT NULL + CONSTRAINT DF_alg_outbound_workflow_origin DEFAULT 'OUTBOUND_RELOCATION'; +GO +IF NOT EXISTS ( + SELECT 1 FROM sys.check_constraints + WHERE parent_object_id = OBJECT_ID(N'alg.outbound_workflow') + AND name = N'CK_alg_outbound_workflow_origin') +ALTER TABLE alg.outbound_workflow WITH CHECK ADD CONSTRAINT CK_alg_outbound_workflow_origin + CHECK (origin = 'OUTBOUND_RELOCATION'); +GO + +IF OBJECT_ID(N'alg.outbound_workflow_step', N'U') IS NULL +CREATE TABLE alg.outbound_workflow_step ( + assignment_id varchar(120) NOT NULL CONSTRAINT PK_alg_outbound_workflow_step PRIMARY KEY, + workflow_id varchar(120) NOT NULL, + phase varchar(20) NOT NULL, + source_space_id varchar(80) NOT NULL, + target_space_id varchar(80) NULL, + workflow_step int NOT NULL, + workflow_total_steps int NOT NULL, + depends_on_assignment_id varchar(120) NULL, + stock_id varchar(80) NOT NULL, + tray_code varchar(255) NOT NULL, + status varchar(20) NOT NULL, + wms_job_id varchar(120) NULL, + created_at datetime2 NOT NULL CONSTRAINT DF_alg_outbound_workflow_step_created_at DEFAULT SYSUTCDATETIME(), + started_at datetime2 NULL, + at_exit_at datetime2 NULL, + completed_at datetime2 NULL, + CONSTRAINT FK_alg_outbound_workflow_step_workflow FOREIGN KEY (workflow_id) + REFERENCES alg.outbound_workflow(workflow_id), + CONSTRAINT FK_alg_outbound_workflow_step_dependency FOREIGN KEY (depends_on_assignment_id) + REFERENCES alg.outbound_workflow_step(assignment_id), + CONSTRAINT CK_alg_outbound_workflow_step_phase CHECK (phase IN ('MOVE_OUT', 'OUTBOUND', 'RESTORE')), + CONSTRAINT CK_alg_outbound_workflow_step_status CHECK (status IN ('PENDING', 'RUNNING', 'AT_EXIT', 'COMPLETED', 'FAILED')), + CONSTRAINT CK_alg_outbound_workflow_step_order CHECK ( + workflow_step > 0 AND workflow_total_steps > 0 AND workflow_step <= workflow_total_steps) +); +GO + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.outbound_workflow_step') AND name = N'UX_alg_outbound_workflow_step_order') +CREATE UNIQUE INDEX UX_alg_outbound_workflow_step_order +ON alg.outbound_workflow_step(workflow_id, workflow_step); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.outbound_workflow_step') AND name = N'UX_alg_outbound_workflow_step_wms_job') +CREATE UNIQUE INDEX UX_alg_outbound_workflow_step_wms_job +ON alg.outbound_workflow_step(wms_job_id) WHERE wms_job_id IS NOT NULL; +GO + +IF OBJECT_ID(N'alg.outbound_workflow_space', N'U') IS NULL +CREATE TABLE alg.outbound_workflow_space ( + workflow_id varchar(120) NOT NULL, + space_id varchar(80) NOT NULL, + status varchar(20) NOT NULL, + locked_at datetime2 NOT NULL CONSTRAINT DF_alg_outbound_workflow_space_locked_at DEFAULT SYSUTCDATETIME(), + released_at datetime2 NULL, + CONSTRAINT PK_alg_outbound_workflow_space PRIMARY KEY (workflow_id, space_id), + CONSTRAINT FK_alg_outbound_workflow_space_workflow FOREIGN KEY (workflow_id) + REFERENCES alg.outbound_workflow(workflow_id), + CONSTRAINT CK_alg_outbound_workflow_space_status CHECK (status IN ('ACTIVE', 'RELEASED')) +); +GO + +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.outbound_workflow_space') AND name = N'UX_alg_outbound_workflow_space_active') +CREATE UNIQUE INDEX UX_alg_outbound_workflow_space_active +ON alg.outbound_workflow_space(space_id) WHERE status = 'ACTIVE'; +GO + +IF OBJECT_ID(N'alg.dirty_lane_queue', N'U') IS NULL +CREATE TABLE alg.dirty_lane_queue ( + warehouse_id varchar(80) NOT NULL, + lane_code varchar(80) NOT NULL, + topology_dirty bit NOT NULL CONSTRAINT DF_alg_dirty_lane_queue_topology DEFAULT 0, + reason_mask int NOT NULL CONSTRAINT DF_alg_dirty_lane_queue_reason DEFAULT 0, + change_count bigint NOT NULL CONSTRAINT DF_alg_dirty_lane_queue_count DEFAULT 1, + enqueued_at datetime2 NOT NULL CONSTRAINT DF_alg_dirty_lane_queue_enqueued DEFAULT SYSUTCDATETIME(), + last_changed_at datetime2 NOT NULL CONSTRAINT DF_alg_dirty_lane_queue_changed DEFAULT SYSUTCDATETIME(), + CONSTRAINT PK_alg_dirty_lane_queue PRIMARY KEY (warehouse_id, lane_code) +); +GO + +IF OBJECT_ID(N'alg.tidy_mode', N'U') IS NULL +CREATE TABLE alg.tidy_mode ( + warehouse_id varchar(80) NOT NULL CONSTRAINT PK_alg_tidy_mode PRIMARY KEY, + requested_enabled bit NOT NULL CONSTRAINT DF_alg_tidy_mode_requested DEFAULT 0, + effective_state varchar(24) NOT NULL CONSTRAINT DF_alg_tidy_mode_state DEFAULT 'NORMAL', + status_reason varchar(255) NULL, + mode_version bigint NOT NULL CONSTRAINT DF_alg_tidy_mode_version DEFAULT 0, + updated_by varchar(80) NULL, + updated_at datetime2 NOT NULL CONSTRAINT DF_alg_tidy_mode_updated DEFAULT SYSUTCDATETIME(), + CONSTRAINT CK_alg_tidy_mode_effective_state CHECK ( + effective_state IN ('NORMAL', 'ENTERING_TIDY', 'TIDY_ACTIVE', 'EXITING_TIDY')) +); +GO + +IF OBJECT_ID(N'alg.tidy_lane_queue', N'U') IS NULL +CREATE TABLE alg.tidy_lane_queue ( + warehouse_id varchar(80) NOT NULL, + lane_code varchar(80) NOT NULL, + dirty_version bigint NOT NULL CONSTRAINT DF_alg_tidy_lane_queue_version DEFAULT 1, + queue_status varchar(20) NOT NULL CONSTRAINT DF_alg_tidy_lane_queue_status DEFAULT 'PENDING', + reason_mask int NOT NULL CONSTRAINT DF_alg_tidy_lane_queue_reason DEFAULT 0, + change_count bigint NOT NULL CONSTRAINT DF_alg_tidy_lane_queue_count DEFAULT 1, + last_dirty_at datetime2 NOT NULL CONSTRAINT DF_alg_tidy_lane_queue_dirty DEFAULT SYSUTCDATETIME(), + claim_token uniqueidentifier NULL, + claimed_version bigint NULL, + claimed_by varchar(120) NULL, + claimed_at datetime2 NULL, + lease_expires_at datetime2 NULL, + last_error varchar(2000) NULL, + CONSTRAINT PK_alg_tidy_lane_queue PRIMARY KEY (warehouse_id, lane_code), + CONSTRAINT CK_alg_tidy_lane_queue_status CHECK (queue_status IN ('PENDING', 'CLAIMED', 'COMPLETED')), + CONSTRAINT CK_alg_tidy_lane_queue_claim CHECK ( + (queue_status = 'CLAIMED' AND claim_token IS NOT NULL AND claimed_version IS NOT NULL + AND claimed_at IS NOT NULL AND lease_expires_at IS NOT NULL) + OR (queue_status <> 'CLAIMED' AND claim_token IS NULL AND claimed_version IS NULL + AND claimed_by IS NULL AND claimed_at IS NULL AND lease_expires_at IS NULL)) +); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_lane_queue') AND name = N'IX_alg_tidy_lane_queue_claim') +CREATE INDEX IX_alg_tidy_lane_queue_claim +ON alg.tidy_lane_queue(queue_status, last_dirty_at, warehouse_id, lane_code) +INCLUDE (dirty_version, lease_expires_at); +GO + +IF OBJECT_ID(N'alg.tidy_workflow', N'U') IS NULL +CREATE TABLE alg.tidy_workflow ( + workflow_id varchar(120) NOT NULL CONSTRAINT PK_alg_tidy_workflow PRIMARY KEY, + warehouse_id varchar(80) NOT NULL, + lane_code varchar(80) NOT NULL, + origin varchar(24) NOT NULL, + candidate_type varchar(40) NOT NULL, + source_space_id varchar(80) NOT NULL, + target_space_id varchar(80) NOT NULL, + stock_id varchar(80) NOT NULL, + tray_code varchar(255) NOT NULL, + status varchar(24) NOT NULL, + claimed_dirty_version bigint NOT NULL, + lane_claim_token uniqueidentifier NOT NULL, + mode_version bigint NOT NULL, + vehicle_id varchar(80) NULL, + wcs_task_id varchar(120) NULL, + status_reason varchar(2000) NULL, + created_at datetime2 NOT NULL CONSTRAINT DF_alg_tidy_workflow_created DEFAULT SYSUTCDATETIME(), + updated_at datetime2 NOT NULL CONSTRAINT DF_alg_tidy_workflow_updated DEFAULT SYSUTCDATETIME(), + dispatched_at datetime2 NULL, + completed_at datetime2 NULL, + CONSTRAINT CK_alg_tidy_workflow_origin CHECK (origin IN ('AUTO_TIDY', 'MANUAL_TIDY')), + CONSTRAINT CK_alg_tidy_workflow_status CHECK (status IN ( + 'CLAIMED', 'WAITING_DISPATCH', 'DISPATCHED', 'RUNNING', 'PAUSED_RECOVERY', + 'COMPLETED', 'CANCELLED_RECONCILED')), + CONSTRAINT CK_alg_tidy_workflow_spaces CHECK (source_space_id <> target_space_id) +); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_workflow') AND name = N'UX_alg_tidy_workflow_active_auto') +/* Automatic tidy is intentionally a global singleton across all warehouses. */ +CREATE UNIQUE INDEX UX_alg_tidy_workflow_active_auto +ON alg.tidy_workflow(origin) +WHERE origin = 'AUTO_TIDY' AND completed_at IS NULL; +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_workflow') AND name = N'UX_alg_tidy_workflow_wcs_task') +CREATE UNIQUE INDEX UX_alg_tidy_workflow_wcs_task +ON alg.tidy_workflow(wcs_task_id) WHERE wcs_task_id IS NOT NULL; +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_workflow') AND name = N'IX_alg_tidy_workflow_active') +CREATE INDEX IX_alg_tidy_workflow_active +ON alg.tidy_workflow(status, origin, warehouse_id, created_at) +INCLUDE (workflow_id, lane_code, vehicle_id, wcs_task_id); +GO + +IF OBJECT_ID(N'alg.tidy_step', N'U') IS NULL +CREATE TABLE alg.tidy_step ( + step_id varchar(120) NOT NULL CONSTRAINT PK_alg_tidy_step PRIMARY KEY, + workflow_id varchar(120) NOT NULL, + step_no int NOT NULL, + source_space_id varchar(80) NOT NULL, + target_space_id varchar(80) NOT NULL, + stock_id varchar(80) NOT NULL, + tray_code varchar(255) NOT NULL, + status varchar(24) NOT NULL, + wms_job_id varchar(120) NULL, + wcs_task_id varchar(120) NULL, + expected_event_stage varchar(40) NULL, + created_at datetime2 NOT NULL CONSTRAINT DF_alg_tidy_step_created DEFAULT SYSUTCDATETIME(), + started_at datetime2 NULL, + completed_at datetime2 NULL, + CONSTRAINT FK_alg_tidy_step_workflow FOREIGN KEY (workflow_id) + REFERENCES alg.tidy_workflow(workflow_id), + CONSTRAINT CK_alg_tidy_step_no CHECK (step_no > 0), + CONSTRAINT CK_alg_tidy_step_status CHECK (status IN ( + 'PENDING', 'DISPATCHED', 'RUNNING', 'PAUSED_RECOVERY', 'COMPLETED', 'CANCELLED_RECONCILED')) +); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_step') AND name = N'UX_alg_tidy_step_order') +CREATE UNIQUE INDEX UX_alg_tidy_step_order ON alg.tidy_step(workflow_id, step_no); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_step') AND name = N'UX_alg_tidy_step_workflow_key') +CREATE UNIQUE INDEX UX_alg_tidy_step_workflow_key ON alg.tidy_step(step_id, workflow_id); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_step') AND name = N'UX_alg_tidy_step_wms_job') +CREATE UNIQUE INDEX UX_alg_tidy_step_wms_job ON alg.tidy_step(wms_job_id) WHERE wms_job_id IS NOT NULL; +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_step') AND name = N'UX_alg_tidy_step_wcs_task') +CREATE UNIQUE INDEX UX_alg_tidy_step_wcs_task ON alg.tidy_step(wcs_task_id) WHERE wcs_task_id IS NOT NULL; +GO + +IF OBJECT_ID(N'alg.tidy_space_lock', N'U') IS NULL +CREATE TABLE alg.tidy_space_lock ( + lock_id uniqueidentifier NOT NULL CONSTRAINT PK_alg_tidy_space_lock PRIMARY KEY, + workflow_id varchar(120) NOT NULL, + warehouse_id varchar(80) NOT NULL, + resource_type varchar(8) NOT NULL, + resource_id varchar(120) NOT NULL, + status varchar(20) NOT NULL CONSTRAINT DF_alg_tidy_space_lock_status DEFAULT 'ACTIVE', + locked_at datetime2 NOT NULL CONSTRAINT DF_alg_tidy_space_lock_locked DEFAULT SYSUTCDATETIME(), + released_at datetime2 NULL, + CONSTRAINT FK_alg_tidy_space_lock_workflow FOREIGN KEY (workflow_id) + REFERENCES alg.tidy_workflow(workflow_id), + CONSTRAINT CK_alg_tidy_space_lock_resource_type CHECK (resource_type IN ('SPACE', 'LANE', 'FLOOR')), + CONSTRAINT CK_alg_tidy_space_lock_status CHECK (status IN ('ACTIVE', 'RELEASED')) +); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_space_lock') AND name = N'UX_alg_tidy_space_lock_active') +CREATE UNIQUE INDEX UX_alg_tidy_space_lock_active +ON alg.tidy_space_lock(warehouse_id, resource_type, resource_id) WHERE status = 'ACTIVE'; +GO + +IF OBJECT_ID(N'alg.tidy_callback_event', N'U') IS NULL +CREATE TABLE alg.tidy_callback_event ( + callback_event_id uniqueidentifier NOT NULL CONSTRAINT PK_alg_tidy_callback_event PRIMARY KEY, + workflow_id varchar(120) NOT NULL, + step_id varchar(120) NOT NULL, + wcs_task_id varchar(120) NOT NULL, + event_stage varchar(40) NOT NULL, + result_code varchar(40) NOT NULL, + result_message varchar(2000) NULL, + received_at datetime2 NOT NULL CONSTRAINT DF_alg_tidy_callback_event_received DEFAULT SYSUTCDATETIME(), + CONSTRAINT FK_alg_tidy_callback_event_workflow FOREIGN KEY (workflow_id) + REFERENCES alg.tidy_workflow(workflow_id), + CONSTRAINT FK_alg_tidy_callback_event_step FOREIGN KEY (step_id) + REFERENCES alg.tidy_step(step_id), + CONSTRAINT FK_alg_tidy_callback_event_step_workflow FOREIGN KEY (step_id, workflow_id) + REFERENCES alg.tidy_step(step_id, workflow_id) +); +GO +IF NOT EXISTS (SELECT 1 FROM sys.indexes WHERE object_id = OBJECT_ID(N'alg.tidy_callback_event') AND name = N'UX_alg_tidy_callback_event_key') +CREATE UNIQUE INDEX UX_alg_tidy_callback_event_key +ON alg.tidy_callback_event(workflow_id, step_id, wcs_task_id, event_stage); +GO + +IF OBJECT_ID(N'alg.decision_log', N'U') IS NULL +CREATE TABLE alg.decision_log ( + decision_id uniqueidentifier NOT NULL CONSTRAINT PK_alg_decision_log PRIMARY KEY, + warehouse_id varchar(80) NULL, + decision_type varchar(40) NOT NULL, + input_version binary(8) NULL, + result_code varchar(80) NULL, + reason varchar(2000) NULL, + created_at datetime2 NOT NULL CONSTRAINT DF_alg_decision_log_created_at DEFAULT SYSUTCDATETIME() +); +GO + +IF OBJECT_ID(N'alg.usp_rebuild_space_topology', N'P') IS NOT NULL DROP PROCEDURE alg.usp_rebuild_space_topology; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_rebuild_space_topology + @warehouse_id varchar(80) = NULL +AS +BEGIN + SET NOCOUNT ON; + ;WITH lane_topology AS ( + SELECT warehouse_id, group_coding_no AS lane_code, + COUNT(*) AS lane_depth, + MAX(the_column) AS column_no, + MIN(the_platoon) AS row_no, + MIN(the_floor) AS floor_no, + MIN(cargo_space_id) AS stable_id + FROM dbo.bas_cargo_space + WHERE NULLIF(LTRIM(RTRIM(group_coding_no)), '''') IS NOT NULL + AND TRY_CONVERT(int, group_coding) IS NOT NULL + AND (@warehouse_id IS NULL OR warehouse_id = @warehouse_id) + GROUP BY warehouse_id, group_coding_no + ), ranked_lanes AS ( + SELECT lane_topology.*, + CASE WHEN lane_depth = 1 THEN ROW_NUMBER() OVER ( + PARTITION BY warehouse_id + ORDER BY CASE WHEN lane_depth = 1 THEN 0 ELSE 1 END, + column_no DESC, row_no ASC, floor_no ASC, stable_id ASC + ) END AS single_depth_rank + FROM lane_topology + ), source AS ( + SELECT c.warehouse_id, c.cargo_space_id AS space_id, c.group_coding_no AS lane_code, + ranked_lanes.lane_depth, + CASE WHEN ranked_lanes.lane_depth = 1 AND ranked_lanes.single_depth_rank <= 80 THEN ''CACHE'' + WHEN ranked_lanes.lane_depth = 1 AND ranked_lanes.single_depth_rank <= 133 THEN ''RESERVE'' + WHEN ranked_lanes.lane_depth = 5 THEN ''MAIN'' + ELSE ''FLEX'' END AS base_zone + FROM dbo.bas_cargo_space c + JOIN ranked_lanes ON ranked_lanes.warehouse_id = c.warehouse_id + AND ranked_lanes.lane_code = c.group_coding_no + WHERE NULLIF(LTRIM(RTRIM(c.group_coding_no)), '''') IS NOT NULL + AND TRY_CONVERT(int, c.group_coding) IS NOT NULL + AND (@warehouse_id IS NULL OR c.warehouse_id = @warehouse_id) + ) + MERGE alg.space_topology AS target + USING source ON source.space_id = target.space_id + WHEN MATCHED AND (target.warehouse_id <> source.warehouse_id OR target.lane_code <> source.lane_code + OR target.lane_depth <> source.lane_depth OR target.base_zone <> source.base_zone) + THEN UPDATE SET warehouse_id = source.warehouse_id, lane_code = source.lane_code, + lane_depth = source.lane_depth, base_zone = source.base_zone, + rebuilt_at = SYSUTCDATETIME() + WHEN NOT MATCHED BY TARGET THEN + INSERT (warehouse_id, space_id, lane_code, lane_depth, base_zone) + VALUES (source.warehouse_id, source.space_id, source.lane_code, source.lane_depth, source.base_zone) + WHEN NOT MATCHED BY SOURCE AND (@warehouse_id IS NULL OR target.warehouse_id = @warehouse_id) + THEN DELETE; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_sync_inventory_snapshot', N'P') IS NOT NULL DROP PROCEDURE alg.usp_sync_inventory_snapshot; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_sync_inventory_snapshot + @warehouse_id varchar(80) = NULL +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + BEGIN TRANSACTION; + + DELETE summary + FROM alg.space_inventory_summary summary + WHERE @warehouse_id IS NULL OR summary.warehouse_id = @warehouse_id; + + DELETE item + FROM alg.inventory_item_snapshot item + WHERE @warehouse_id IS NULL OR item.warehouse_id = @warehouse_id; + + INSERT INTO alg.inventory_item_snapshot ( + warehouse_id, stock_id, space_id, tray_code, project_no, product_no, lot_no, + inbound_time_raw, inbound_at, quantity, out_quantity, synchronized_at) + SELECT space.warehouse_id, stock.stock_id, stock.cargo_space_id, stock.tray_code, + stock.spare4, stock.product_id, stock.lot_no, CONVERT(varchar(80), stock.in_date), + TRY_CONVERT(datetime2, stock.in_date), stock.quantity, stock.out_quantity, SYSUTCDATETIME() + FROM dbo.bas_stock stock + JOIN dbo.bas_cargo_space space ON space.cargo_space_id = stock.cargo_space_id + WHERE @warehouse_id IS NULL OR space.warehouse_id = @warehouse_id; + + INSERT INTO alg.space_inventory_summary ( + warehouse_id, space_id, stock_detail_count, stock_tray_count, + stock_project_count, stock_product_count, synchronized_at) + SELECT item.warehouse_id, item.space_id, COUNT(*), + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(item.tray_code)), '''')), + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(item.project_no)), '''')), + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(item.product_no)), '''')), + SYSUTCDATETIME() + FROM alg.inventory_item_snapshot item + WHERE @warehouse_id IS NULL OR item.warehouse_id = @warehouse_id + GROUP BY item.warehouse_id, item.space_id; + + COMMIT TRANSACTION; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_apply_space_role', N'P') IS NOT NULL DROP PROCEDURE alg.usp_apply_space_role; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_apply_space_role + @warehouse_id varchar(80), + @space_id varchar(80), + @role varchar(40) +AS +BEGIN + SET NOCOUNT ON; + IF @role NOT IN (''STORAGE'', ''RELOCATION_BUFFER'', ''OUTBOUND_BUFFER'', ''PROTECTED_CORE'') + BEGIN + SELECT CONVERT(bit, 0) AS applied, CAST(''INVALID_ROLE'' AS varchar(80)) AS reason; + RETURN; + END; + + DECLARE @warehouse_count int, @space_status varchar(5), @locked varchar(5), + @tray_code varchar(255), @stock_count int, @reservation_count int; + SELECT @warehouse_count = COUNT(*) + FROM dbo.bas_cargo_space WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id; + IF ISNULL(@warehouse_count, 0) = 0 + BEGIN + SELECT CONVERT(bit, 0) AS applied, CAST(''WAREHOUSE_NOT_FOUND'' AS varchar(80)) AS reason; + RETURN; + END; + + SELECT @space_status = status, @locked = locked, @tray_code = tray_code + FROM dbo.bas_cargo_space WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id AND cargo_space_id = @space_id; + IF @space_status IS NULL + BEGIN + SELECT CONVERT(bit, 0) AS applied, CAST(''SPACE_NOT_FOUND'' AS varchar(80)) AS reason; + RETURN; + END; + + SELECT @stock_count = COUNT(*) FROM dbo.bas_stock WITH (UPDLOCK, HOLDLOCK) + WHERE cargo_space_id = @space_id; + SELECT @reservation_count = COUNT(*) FROM alg.reservation WITH (UPDLOCK, HOLDLOCK) + WHERE space_id = @space_id AND status = ''ACTIVE''; + + IF @role <> ''STORAGE'' AND ( + @space_status <> ''1'' OR + (NULLIF(LTRIM(RTRIM(@locked)), '''') IS NOT NULL AND LTRIM(RTRIM(@locked)) NOT IN (''0'', ''N'')) OR + NULLIF(LTRIM(RTRIM(@tray_code)), '''') IS NOT NULL OR + ISNULL(@stock_count, 0) <> 0 OR ISNULL(@reservation_count, 0) <> 0) + BEGIN + SELECT CONVERT(bit, 0) AS applied, CAST(''TARGET_NOT_EMPTY_OR_RESERVED'' AS varchar(80)) AS reason; + RETURN; + END; + + MERGE alg.space_role WITH (HOLDLOCK) AS target + USING (SELECT @space_id AS space_id, @role AS role) AS source + ON source.space_id = target.space_id + WHEN MATCHED THEN UPDATE SET role = source.role, updated_at = SYSUTCDATETIME() + WHEN NOT MATCHED THEN INSERT (space_id, role) VALUES (source.space_id, source.role); + + SELECT CONVERT(bit, 1) AS applied, CAST(NULL AS varchar(80)) AS reason; +END;'); +GO + +IF OBJECT_ID(N'alg.v_inventory_item', N'V') IS NOT NULL DROP VIEW alg.v_inventory_item; +GO +EXEC(N' +CREATE VIEW alg.v_inventory_item AS +SELECT stock_id, space_id, tray_code, project_no, product_no, lot_no, + inbound_time_raw, inbound_at, quantity, out_quantity +FROM alg.inventory_item_snapshot;'); +GO + +IF OBJECT_ID(N'alg.v_active_job', N'V') IS NOT NULL DROP VIEW alg.v_active_job; +GO +EXEC(N' +CREATE VIEW alg.v_active_job AS +WITH tray_candidates AS ( + SELECT j.job_id, + COUNT(DISTINCT s.space_id) AS space_count, + MIN(s.space_id) AS cargo_space_id, + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(s.project_no)), '''')) AS project_count, + MIN(NULLIF(LTRIM(RTRIM(s.project_no)), '''')) AS project_no, + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(s.product_no)), '''')) AS product_count, + MIN(NULLIF(LTRIM(RTRIM(s.product_no)), '''')) AS product_no + FROM dbo.mydo_job j + JOIN alg.inventory_item_snapshot s ON s.warehouse_id = j.warehouse_id + AND s.tray_code = NULLIF(LTRIM(RTRIM(j.tray_code)), '''') + GROUP BY j.job_id +), resolved_jobs AS ( + SELECT j.job_id, j.task_no, j.tray_code, j.target_cargo_space_id, j.warehouse_id, + j.status, j.in_or_out, j.create_time AS create_time_raw, + COALESCE(source_space.cargo_space_id, + CASE WHEN tray_candidates.space_count = 1 THEN tray_candidates.cargo_space_id END) AS source_space_id, + CASE WHEN source_space.cargo_space_id IS NOT NULL THEN ''EXPLICIT'' + WHEN tray_candidates.space_count = 1 THEN ''TRAY'' + WHEN tray_candidates.space_count > 1 THEN ''AMBIGUOUS_TRAY'' + ELSE ''UNRESOLVED'' END AS source_resolution + FROM dbo.mydo_job j + LEFT JOIN dbo.bas_cargo_space source_space + ON source_space.cargo_space_id = NULLIF(LTRIM(RTRIM(j.cargo_space_id)), '''') + AND source_space.warehouse_id = j.warehouse_id + LEFT JOIN tray_candidates ON tray_candidates.job_id = j.job_id + WHERE j.finish_time IS NULL OR LTRIM(RTRIM(j.finish_time)) = '''' +), source_scope AS ( + SELECT resolved_jobs.job_id, + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(stock.project_no)), '''')) AS project_count, + MIN(NULLIF(LTRIM(RTRIM(stock.project_no)), '''')) AS project_no, + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(stock.product_no)), '''')) AS product_count, + MIN(NULLIF(LTRIM(RTRIM(stock.product_no)), '''')) AS product_no + FROM resolved_jobs + JOIN alg.inventory_item_snapshot stock ON stock.warehouse_id = resolved_jobs.warehouse_id + AND stock.space_id = resolved_jobs.source_space_id + GROUP BY resolved_jobs.job_id +) +SELECT resolved_jobs.job_id, resolved_jobs.task_no, resolved_jobs.tray_code, + CASE WHEN resolved_jobs.source_space_id IS NOT NULL + THEN CASE WHEN source_scope.project_count = 1 THEN source_scope.project_no END + ELSE CASE WHEN tray_candidates.project_count = 1 THEN tray_candidates.project_no END END AS project_no, + CASE WHEN resolved_jobs.source_space_id IS NOT NULL + THEN CASE WHEN source_scope.product_count = 1 THEN source_scope.product_no END + ELSE CASE WHEN tray_candidates.product_count = 1 THEN tray_candidates.product_no END END AS product_no, + resolved_jobs.source_space_id, resolved_jobs.target_cargo_space_id, resolved_jobs.warehouse_id, + resolved_jobs.status, resolved_jobs.in_or_out, resolved_jobs.create_time_raw, + resolved_space.group_coding_no AS source_lane_code, resolved_jobs.source_resolution +FROM resolved_jobs +LEFT JOIN tray_candidates ON tray_candidates.job_id = resolved_jobs.job_id +LEFT JOIN source_scope ON source_scope.job_id = resolved_jobs.job_id +LEFT JOIN dbo.bas_cargo_space resolved_space ON resolved_space.cargo_space_id = resolved_jobs.source_space_id;'); +GO + +IF OBJECT_ID(N'alg.v_space_state', N'V') IS NOT NULL DROP VIEW alg.v_space_state; +GO +EXEC(N' +CREATE VIEW alg.v_space_state AS +WITH outbound_lanes AS ( + SELECT DISTINCT warehouse_id, source_lane_code AS lane_code + FROM alg.v_active_job + WHERE in_or_out >= 20 AND source_lane_code IS NOT NULL +), lane_gaps AS ( + SELECT DISTINCT inner_space.warehouse_id, inner_space.group_coding_no AS lane_code + FROM dbo.bas_cargo_space inner_space + JOIN dbo.bas_cargo_space outer_space + ON outer_space.warehouse_id = inner_space.warehouse_id + AND outer_space.group_coding_no = inner_space.group_coding_no + AND TRY_CONVERT(int, outer_space.group_coding) > TRY_CONVERT(int, inner_space.group_coding) + WHERE TRY_CONVERT(int, inner_space.group_coding) IS NOT NULL + AND TRY_CONVERT(int, outer_space.group_coding) IS NOT NULL + AND NULLIF(LTRIM(RTRIM(inner_space.tray_code)), '''') IS NULL + AND NOT EXISTS ( + SELECT 1 FROM alg.inventory_item_snapshot inner_stock + WHERE inner_stock.warehouse_id = inner_space.warehouse_id + AND inner_stock.space_id = inner_space.cargo_space_id + ) + AND ( + NULLIF(LTRIM(RTRIM(outer_space.tray_code)), '''') IS NOT NULL + OR EXISTS ( + SELECT 1 FROM alg.inventory_item_snapshot outer_stock + WHERE outer_stock.warehouse_id = outer_space.warehouse_id + AND outer_stock.space_id = outer_space.cargo_space_id + ) + ) +) +SELECT c.cargo_space_id AS space_id, + c.warehouse_id, + c.group_coding_no AS lane_code, + c.cargo_area_id AS area_id, + CASE + WHEN ISNULL(role.role, ''STORAGE'') IN (''RELOCATION_BUFFER'', ''OUTBOUND_BUFFER'') THEN ''CACHE'' + WHEN ISNULL(role.role, ''STORAGE'') = ''PROTECTED_CORE'' THEN ''RESERVE'' + ELSE topology.base_zone + END AS zone_code, + c.roadway_id, + c.cargo_space_name AS display_name, + c.the_platoon AS platoon, + c.the_column AS column_no, + c.the_floor AS floor_no, + c.group_coding AS depth_raw, + TRY_CONVERT(int, c.group_coding) AS depth, + c.status AS space_status, + c.locked, + c.tray_code AS space_tray_code, + ISNULL(role.role, ''STORAGE'') AS role, + ISNULL(stock.stock_detail_count, 0) AS stock_detail_count, + ISNULL(stock.stock_tray_count, 0) AS stock_tray_count, + ISNULL(stock.stock_project_count, 0) AS stock_project_count, + ISNULL(stock.stock_product_count, 0) AS stock_product_count, + CONVERT(bit, CASE WHEN ISNULL(stock.stock_tray_count, 0) > 1 THEN 1 ELSE 0 END) AS tray_conflict, + CONVERT(bit, CASE WHEN ISNULL(stock.stock_project_count, 0) > 1 THEN 1 ELSE 0 END) AS project_conflict, + CONVERT(bit, 0) AS product_conflict, + CONVERT(bit, CASE WHEN outbound_lanes.lane_code IS NULL THEN 0 ELSE 1 END) AS pending_outbound, + active_reservations.reservation_id, + CONVERT(bit, CASE WHEN active_reservations.reservation_id IS NULL THEN 0 ELSE 1 END) AS reserved, + CONVERT(bit, CASE WHEN lane_gaps.lane_code IS NULL THEN 0 ELSE 1 END) AS has_gap, + CONVERT(bit, CASE + WHEN c.status IS NULL OR c.status <> ''1'' THEN 0 + WHEN NULLIF(LTRIM(RTRIM(c.locked)), '''') IS NOT NULL AND LTRIM(RTRIM(c.locked)) NOT IN (''0'', ''N'') THEN 0 + WHEN NULLIF(LTRIM(RTRIM(c.tray_code)), '''') IS NOT NULL THEN 0 + WHEN ISNULL(stock.stock_detail_count, 0) <> 0 THEN 0 + WHEN TRY_CONVERT(int, c.group_coding) IS NULL THEN 0 + WHEN ISNULL(role.role, ''STORAGE'') <> ''STORAGE'' THEN 0 + WHEN outbound_lanes.lane_code IS NOT NULL THEN 0 + WHEN active_reservations.reservation_id IS NOT NULL THEN 0 + WHEN lane_gaps.lane_code IS NOT NULL THEN 0 + WHEN EXISTS ( + SELECT 1 + FROM dbo.bas_cargo_space inner_candidate + LEFT JOIN alg.space_inventory_summary inner_stock + ON inner_stock.warehouse_id = inner_candidate.warehouse_id + AND inner_stock.space_id = inner_candidate.cargo_space_id + WHERE inner_candidate.warehouse_id = c.warehouse_id + AND inner_candidate.group_coding_no = c.group_coding_no + AND TRY_CONVERT(int, inner_candidate.group_coding) < TRY_CONVERT(int, c.group_coding) + AND inner_candidate.status = ''1'' + AND NULLIF(LTRIM(RTRIM(inner_candidate.tray_code)), '''') IS NULL + AND inner_stock.space_id IS NULL + ) THEN 0 + ELSE 1 END) AS inbound_available +FROM dbo.bas_cargo_space c +JOIN alg.space_topology topology ON topology.space_id = c.cargo_space_id +LEFT JOIN alg.space_inventory_summary stock ON stock.warehouse_id = c.warehouse_id + AND stock.space_id = c.cargo_space_id +LEFT JOIN alg.space_role role ON role.space_id = c.cargo_space_id +LEFT JOIN outbound_lanes ON outbound_lanes.warehouse_id = c.warehouse_id AND outbound_lanes.lane_code = c.group_coding_no +LEFT JOIN alg.reservation active_reservations ON active_reservations.space_id = c.cargo_space_id AND active_reservations.status = ''ACTIVE'' +LEFT JOIN lane_gaps ON lane_gaps.warehouse_id = c.warehouse_id AND lane_gaps.lane_code = c.group_coding_no;'); +GO + +IF OBJECT_ID(N'alg.usp_compute_lane_semantic_fingerprint', N'P') IS NOT NULL DROP PROCEDURE alg.usp_compute_lane_semantic_fingerprint; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_compute_lane_semantic_fingerprint + @warehouse_id varchar(80), + @lane_code varchar(80), + @semantic_fingerprint varbinary(32) OUTPUT, + @inventory_source varchar(20) = ''LIVE'' +AS +BEGIN + SET NOCOUNT ON; + DECLARE @payload nvarchar(max); + + CREATE TABLE #fingerprint_inventory ( + stock_id varchar(80) NOT NULL, + space_id varchar(80) NOT NULL, + tray_code varchar(255) NULL, + project_no varchar(255) NULL, + product_no varchar(255) NULL, + lot_no varchar(80) NULL, + inbound_time varchar(80) NULL, + quantity decimal(38,6) NULL, + out_quantity decimal(38,6) NULL + ); + + IF @inventory_source = ''SNAPSHOT'' + BEGIN + INSERT INTO #fingerprint_inventory ( + stock_id, space_id, tray_code, project_no, product_no, lot_no, + inbound_time, quantity, out_quantity) + SELECT stock.stock_id, stock.space_id, stock.tray_code, stock.project_no, + stock.product_no, stock.lot_no, stock.inbound_time_raw, + CONVERT(decimal(38,6), stock.quantity), CONVERT(decimal(38,6), stock.out_quantity) + FROM alg.inventory_item_snapshot stock + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = stock.space_id + AND cargo.warehouse_id = stock.warehouse_id + WHERE cargo.warehouse_id = @warehouse_id AND cargo.group_coding_no = @lane_code; + END + ELSE IF @inventory_source = ''LIVE'' + BEGIN + INSERT INTO #fingerprint_inventory ( + stock_id, space_id, tray_code, project_no, product_no, lot_no, + inbound_time, quantity, out_quantity) + SELECT stock.stock_id, stock.cargo_space_id, stock.tray_code, stock.spare4, + stock.product_id, stock.lot_no, CONVERT(varchar(80), stock.in_date), + CONVERT(decimal(38,6), stock.quantity), CONVERT(decimal(38,6), stock.out_quantity) + FROM dbo.bas_stock stock + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = stock.cargo_space_id + WHERE cargo.warehouse_id = @warehouse_id AND cargo.group_coding_no = @lane_code; + END + ELSE + BEGIN + THROW 50001, ''Unsupported inventory fingerprint source'', 1; + END; + + SELECT @payload = ISNULL(CONVERT(nvarchar(max), ( + SELECT cargo.cargo_space_id AS [@space_id], cargo.status AS [@status], + cargo.locked AS [@locked], cargo.tray_code AS [@tray_code], + cargo.group_coding AS [@depth], cargo.the_platoon AS [@platoon], + cargo.the_column AS [@column], cargo.the_floor AS [@floor], + topology.lane_depth AS [@lane_depth], topology.base_zone AS [@base_zone], + ISNULL(role.role, ''STORAGE'') AS [@role] + FROM dbo.bas_cargo_space cargo + LEFT JOIN alg.space_topology topology ON topology.space_id = cargo.cargo_space_id + LEFT JOIN alg.space_role role ON role.space_id = cargo.cargo_space_id + WHERE cargo.warehouse_id = @warehouse_id AND cargo.group_coding_no = @lane_code + ORDER BY TRY_CONVERT(int, cargo.group_coding), cargo.cargo_space_id + FOR XML PATH(''space''), ROOT(''spaces''), TYPE + )), N''''); + + SET @payload = @payload + N''|INVENTORY|'' + ISNULL(CONVERT(nvarchar(max), ( + SELECT stock.stock_id AS [@stock_id], stock.space_id AS [@space_id], + stock.tray_code AS [@tray_code], stock.project_no AS [@project_no], + stock.product_no AS [@product_no], stock.lot_no AS [@lot_no], + stock.inbound_time AS [@inbound_time], + stock.quantity AS [@quantity], stock.out_quantity AS [@out_quantity] + FROM #fingerprint_inventory stock + ORDER BY stock.space_id, stock.stock_id + FOR XML PATH(''item''), ROOT(''inventory''), TYPE + )), N''''); + + SET @payload = @payload + N''|ACTIVE_JOBS|'' + ISNULL(CONVERT(nvarchar(max), ( + SELECT job.job_id AS [@job_id], job.task_no AS [@task_no], job.tray_code AS [@tray_code], + job.source_space_id AS [@source_space_id], job.target_cargo_space_id AS [@target_space_id], + job.status AS [@status], job.in_or_out AS [@in_or_out], + job.create_time_raw AS [@create_time] + FROM alg.v_active_job job + WHERE job.warehouse_id = @warehouse_id AND job.source_lane_code = @lane_code + ORDER BY job.job_id + FOR XML PATH(''job''), ROOT(''jobs''), TYPE + )), N''''); + + SET @payload = @payload + N''|PROJECT_POLICY|'' + ISNULL(CONVERT(nvarchar(max), ( + SELECT policy.project_no AS [@project_no], policy.is_isolated AS [@is_isolated], + policy.is_common AS [@is_common], policy.allow_mixed AS [@allow_mixed] + FROM alg.project_policy policy + ORDER BY policy.project_no + FOR XML PATH(''project''), ROOT(''project_policy''), TYPE + )), N''''); + + SET @payload = @payload + N''|WAREHOUSE_POLICY|'' + ISNULL(CONVERT(nvarchar(max), ( + SELECT policy.warehouse_id AS [@warehouse_id], policy.target_fill_rate AS [@target_fill_rate], + policy.fifo_tolerance_hours AS [@fifo_tolerance_hours] + FROM alg.warehouse_policy policy + WHERE policy.warehouse_id = @warehouse_id + FOR XML PATH(''warehouse''), ROOT(''warehouse_policy''), TYPE + )), N''''); + + SET @payload = @payload + N''|RESERVATIONS|'' + ISNULL(CONVERT(nvarchar(max), ( + SELECT reservation.reservation_id AS [@reservation_id], reservation.space_id AS [@space_id], + reservation.project_no AS [@project_no], reservation.status AS [@status] + FROM alg.reservation reservation + WHERE reservation.warehouse_id = @warehouse_id AND reservation.lane_code = @lane_code + AND reservation.status = ''ACTIVE'' + ORDER BY reservation.space_id, reservation.reservation_id + FOR XML PATH(''reservation''), ROOT(''reservations''), TYPE + )), N''''); + + SET @semantic_fingerprint = HASHBYTES(''SHA2_256'', CONVERT(varbinary(max), @payload)); +END;'); +GO + +IF OBJECT_ID(N'alg.usp_rebuild_lane_state', N'P') IS NOT NULL DROP PROCEDURE alg.usp_rebuild_lane_state; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_rebuild_lane_state + @warehouse_id varchar(80) = NULL, + @lane_code varchar(80) = NULL +AS +BEGIN + SET NOCOUNT ON; + SELECT warehouse_id, lane_code, + COUNT(*) AS space_count, + SUM(CASE WHEN space_status = ''2'' OR stock_detail_count > 0 THEN 1 ELSE 0 END) AS occupied_count, + SUM(CASE WHEN inbound_available = 1 THEN 1 ELSE 0 END) AS available_count, + MAX(CASE WHEN pending_outbound = 1 THEN 1 ELSE 0 END) AS pending_outbound, + MAX(CASE WHEN has_gap = 1 THEN 1 ELSE 0 END) AS has_gap, + CAST(NULL AS varbinary(32)) AS semantic_fingerprint + INTO #source_state + FROM alg.v_space_state + WHERE (@warehouse_id IS NULL OR warehouse_id = @warehouse_id) + AND (@lane_code IS NULL OR lane_code = @lane_code) + GROUP BY warehouse_id, lane_code; + + DECLARE @fingerprint_warehouse varchar(80), @fingerprint_lane varchar(80), + @fingerprint varbinary(32); + DECLARE fingerprint_cursor CURSOR LOCAL FAST_FORWARD FOR + SELECT warehouse_id, lane_code FROM #source_state ORDER BY warehouse_id, lane_code; + OPEN fingerprint_cursor; + FETCH NEXT FROM fingerprint_cursor INTO @fingerprint_warehouse, @fingerprint_lane; + WHILE @@FETCH_STATUS = 0 + BEGIN + EXEC alg.usp_compute_lane_semantic_fingerprint + @warehouse_id = @fingerprint_warehouse, + @lane_code = @fingerprint_lane, + @semantic_fingerprint = @fingerprint OUTPUT, + @inventory_source = ''SNAPSHOT''; + UPDATE #source_state SET semantic_fingerprint = @fingerprint + WHERE warehouse_id = @fingerprint_warehouse AND lane_code = @fingerprint_lane; + FETCH NEXT FROM fingerprint_cursor INTO @fingerprint_warehouse, @fingerprint_lane; + END; + CLOSE fingerprint_cursor; + DEALLOCATE fingerprint_cursor; + + MERGE alg.lane_state WITH (HOLDLOCK) AS target + USING #source_state AS source + ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED AND (target.space_count <> source.space_count OR + target.occupied_count <> source.occupied_count OR + target.available_count <> source.available_count OR + target.pending_outbound <> source.pending_outbound OR + target.has_gap <> source.has_gap OR + target.semantic_fingerprint IS NULL OR + target.semantic_fingerprint <> source.semantic_fingerprint) + THEN UPDATE SET space_count = source.space_count, + occupied_count = source.occupied_count, + available_count = source.available_count, + pending_outbound = source.pending_outbound, + has_gap = source.has_gap, + semantic_fingerprint = source.semantic_fingerprint, + rebuilt_at = SYSUTCDATETIME() + WHEN NOT MATCHED BY TARGET THEN + INSERT (warehouse_id, lane_code, space_count, occupied_count, available_count, + pending_outbound, has_gap, semantic_fingerprint) + VALUES (source.warehouse_id, source.lane_code, source.space_count, source.occupied_count, + source.available_count, source.pending_outbound, source.has_gap, source.semantic_fingerprint) + WHEN NOT MATCHED BY SOURCE + AND (@warehouse_id IS NULL OR target.warehouse_id = @warehouse_id) + AND (@lane_code IS NULL OR target.lane_code = @lane_code) + THEN DELETE; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_mark_dirty_lane', N'P') IS NOT NULL DROP PROCEDURE alg.usp_mark_dirty_lane; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_mark_dirty_lane + @warehouse_id varchar(80), + @lane_code varchar(80), + @topology_dirty bit = 0, + @reason_mask int = 0 +AS +BEGIN + SET NOCOUNT ON; + IF NULLIF(LTRIM(RTRIM(@warehouse_id)), '''') IS NULL + OR NULLIF(LTRIM(RTRIM(@lane_code)), '''') IS NULL + RETURN; + MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target + USING (SELECT @warehouse_id AS warehouse_id, @lane_code AS lane_code) AS source + ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET + topology_dirty = CASE WHEN target.topology_dirty = 1 OR @topology_dirty = 1 THEN 1 ELSE 0 END, + reason_mask = target.reason_mask | @reason_mask, + change_count = target.change_count + 1, + last_changed_at = SYSUTCDATETIME() + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, change_count, enqueued_at, last_changed_at) + VALUES (@warehouse_id, @lane_code, @topology_dirty, @reason_mask, 1, + SYSUTCDATETIME(), SYSUTCDATETIME()); +END;'); +GO + +IF OBJECT_ID(N'alg.usp_refresh_dirty_lanes', N'P') IS NOT NULL DROP PROCEDURE alg.usp_refresh_dirty_lanes; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_refresh_dirty_lanes + @warehouse_id varchar(80) +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + IF NULLIF(LTRIM(RTRIM(@warehouse_id)), '''') IS NULL + THROW 50002, ''warehouse_id is required'', 1; + + CREATE TABLE #dirty ( + warehouse_id varchar(80) NOT NULL, + lane_code varchar(80) NOT NULL, + topology_dirty bit NOT NULL, + reason_mask int NOT NULL, + change_count bigint NOT NULL, + enqueued_at datetime2 NOT NULL, + last_changed_at datetime2 NOT NULL, + PRIMARY KEY (warehouse_id, lane_code) + ); + + BEGIN TRANSACTION; + DELETE queue + OUTPUT deleted.warehouse_id, deleted.lane_code, deleted.topology_dirty, + deleted.reason_mask, deleted.change_count, deleted.enqueued_at, deleted.last_changed_at + INTO #dirty (warehouse_id, lane_code, topology_dirty, reason_mask, + change_count, enqueued_at, last_changed_at) + FROM alg.dirty_lane_queue queue WITH (UPDLOCK, READPAST, ROWLOCK) + WHERE queue.warehouse_id = @warehouse_id; + COMMIT TRANSACTION; + + IF NOT EXISTS (SELECT 1 FROM #dirty) + RETURN; + + BEGIN TRY + BEGIN TRANSACTION; + IF EXISTS (SELECT 1 FROM #dirty WHERE topology_dirty = 1) + BEGIN + EXEC alg.usp_rebuild_space_topology @warehouse_id = @warehouse_id; + + MERGE #dirty AS target + USING ( + SELECT DISTINCT warehouse_id, group_coding_no AS lane_code + FROM dbo.bas_cargo_space + WHERE warehouse_id = @warehouse_id + AND NULLIF(LTRIM(RTRIM(group_coding_no)), '''') IS NOT NULL + ) AS source + ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, + change_count, enqueued_at, last_changed_at) + VALUES (source.warehouse_id, source.lane_code, 1, 2, 1, + SYSUTCDATETIME(), SYSUTCDATETIME()); + + DELETE snapshot + FROM alg.inventory_item_snapshot snapshot + WHERE snapshot.warehouse_id = @warehouse_id + AND NOT EXISTS ( + SELECT 1 FROM dbo.bas_cargo_space cargo + WHERE cargo.cargo_space_id = snapshot.space_id + AND cargo.warehouse_id = snapshot.warehouse_id + ); + DELETE summary + FROM alg.space_inventory_summary summary + WHERE summary.warehouse_id = @warehouse_id + AND NOT EXISTS ( + SELECT 1 FROM dbo.bas_cargo_space cargo + WHERE cargo.cargo_space_id = summary.space_id + AND cargo.warehouse_id = summary.warehouse_id + ); + END; + + DELETE summary + FROM alg.space_inventory_summary summary + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = summary.space_id + AND cargo.warehouse_id = summary.warehouse_id + JOIN #dirty dirty ON dirty.warehouse_id = cargo.warehouse_id + AND dirty.lane_code = cargo.group_coding_no; + + DELETE snapshot + FROM alg.inventory_item_snapshot snapshot + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = snapshot.space_id + AND cargo.warehouse_id = snapshot.warehouse_id + JOIN #dirty dirty ON dirty.warehouse_id = cargo.warehouse_id + AND dirty.lane_code = cargo.group_coding_no; + + INSERT INTO alg.inventory_item_snapshot ( + warehouse_id, stock_id, space_id, tray_code, project_no, product_no, lot_no, + inbound_time_raw, inbound_at, quantity, out_quantity, synchronized_at) + SELECT cargo.warehouse_id, stock.stock_id, stock.cargo_space_id, stock.tray_code, + stock.spare4, stock.product_id, stock.lot_no, CONVERT(varchar(80), stock.in_date), + TRY_CONVERT(datetime2, stock.in_date), stock.quantity, stock.out_quantity, SYSUTCDATETIME() + FROM dbo.bas_stock stock + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = stock.cargo_space_id + JOIN #dirty dirty ON dirty.warehouse_id = cargo.warehouse_id + AND dirty.lane_code = cargo.group_coding_no; + + INSERT INTO alg.space_inventory_summary ( + warehouse_id, space_id, stock_detail_count, stock_tray_count, + stock_project_count, stock_product_count, synchronized_at) + SELECT item.warehouse_id, item.space_id, COUNT(*), + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(item.tray_code)), '''')), + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(item.project_no)), '''')), + COUNT(DISTINCT NULLIF(LTRIM(RTRIM(item.product_no)), '''')), + SYSUTCDATETIME() + FROM alg.inventory_item_snapshot item + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = item.space_id + AND cargo.warehouse_id = item.warehouse_id + JOIN #dirty dirty ON dirty.warehouse_id = cargo.warehouse_id + AND dirty.lane_code = cargo.group_coding_no + GROUP BY item.warehouse_id, item.space_id; + + DECLARE @lane_code varchar(80); + DECLARE dirty_cursor CURSOR LOCAL FAST_FORWARD FOR + SELECT lane_code FROM #dirty ORDER BY lane_code; + OPEN dirty_cursor; + FETCH NEXT FROM dirty_cursor INTO @lane_code; + WHILE @@FETCH_STATUS = 0 + BEGIN + EXEC alg.usp_rebuild_lane_state @warehouse_id = @warehouse_id, @lane_code = @lane_code; + FETCH NEXT FROM dirty_cursor INTO @lane_code; + END; + CLOSE dirty_cursor; + DEALLOCATE dirty_cursor; + + /* A claimed row retains its lease until release; otherwise queue_status = ''PENDING''. */ + MERGE alg.tidy_lane_queue WITH (HOLDLOCK) AS target + USING #dirty AS source + ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET + dirty_version = target.dirty_version + 1, + queue_status = CASE WHEN target.queue_status = ''CLAIMED'' THEN ''CLAIMED'' ELSE ''PENDING'' END, + reason_mask = target.reason_mask | source.reason_mask, + change_count = target.change_count + source.change_count, + last_dirty_at = CASE WHEN target.last_dirty_at >= source.last_changed_at + THEN target.last_dirty_at ELSE source.last_changed_at END, + last_error = NULL + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, dirty_version, queue_status, reason_mask, + change_count, last_dirty_at) + VALUES (source.warehouse_id, source.lane_code, 1, ''PENDING'', source.reason_mask, + source.change_count, source.last_changed_at); + COMMIT TRANSACTION; + END TRY + BEGIN CATCH + IF XACT_STATE() <> 0 ROLLBACK TRANSACTION; + BEGIN TRY + BEGIN TRANSACTION; + MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target + USING #dirty AS source + ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET + topology_dirty = CASE WHEN target.topology_dirty = 1 OR source.topology_dirty = 1 THEN 1 ELSE 0 END, + reason_mask = target.reason_mask | source.reason_mask, + change_count = target.change_count + source.change_count, + enqueued_at = CASE WHEN target.enqueued_at <= source.enqueued_at + THEN target.enqueued_at ELSE source.enqueued_at END, + last_changed_at = CASE WHEN target.last_changed_at >= source.last_changed_at + THEN target.last_changed_at ELSE source.last_changed_at END + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, + change_count, enqueued_at, last_changed_at) + VALUES (source.warehouse_id, source.lane_code, source.topology_dirty, source.reason_mask, + source.change_count, source.enqueued_at, source.last_changed_at); + COMMIT TRANSACTION; + END TRY + BEGIN CATCH + IF XACT_STATE() <> 0 ROLLBACK TRANSACTION; + THROW; + END CATCH; + THROW; + END CATCH; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_claim_tidy_lane', N'P') IS NOT NULL DROP PROCEDURE alg.usp_claim_tidy_lane; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_claim_tidy_lane + @warehouse_id varchar(80) = NULL, + @eligible_lane_codes varchar(max) = NULL, + @claimed_by varchar(120), + @lease_seconds int = 120 +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + IF NULLIF(LTRIM(RTRIM(@claimed_by)), '''') IS NULL + THROW 50010, ''claimed_by is required'', 1; + IF @lease_seconds < 1 OR @lease_seconds > 3600 + THROW 50011, ''lease_seconds must be between 1 and 3600'', 1; + + DECLARE @claim_token uniqueidentifier = NEWID(), + @claimed_warehouse_id varchar(80), @claimed_lane_code varchar(80), + @claimed_dirty_version bigint, @now datetime2 = SYSUTCDATETIME(); + + BEGIN TRANSACTION; + ;WITH candidate AS ( + SELECT TOP (1) queue.* + FROM alg.tidy_lane_queue queue WITH (UPDLOCK, READPAST, ROWLOCK) + WHERE (@warehouse_id IS NULL OR queue.warehouse_id = @warehouse_id) + AND (NULLIF(LTRIM(RTRIM(@eligible_lane_codes)), '''') IS NULL + OR EXISTS ( + SELECT 1 + FROM STRING_SPLIT(@eligible_lane_codes, '','') eligible + WHERE LTRIM(RTRIM(eligible.value)) = queue.lane_code + )) + AND (queue.queue_status = ''PENDING'' + OR (queue.queue_status = ''CLAIMED'' AND queue.lease_expires_at <= @now)) + ORDER BY queue.last_dirty_at, queue.warehouse_id, queue.lane_code + ) + UPDATE candidate + SET queue_status = ''CLAIMED'', + claim_token = @claim_token, + claimed_version = dirty_version, + claimed_by = @claimed_by, + claimed_at = @now, + lease_expires_at = DATEADD(second, @lease_seconds, @now), + last_error = NULL; + + SELECT TOP (1) + @claimed_warehouse_id = warehouse_id, + @claimed_lane_code = lane_code, + @claimed_dirty_version = claimed_version + FROM alg.tidy_lane_queue + WHERE claim_token = @claim_token; + COMMIT TRANSACTION; + + SELECT @claimed_warehouse_id AS warehouse_id, + @claimed_lane_code AS lane_code, + @claimed_dirty_version AS dirty_version, + CASE WHEN @claimed_warehouse_id IS NULL THEN NULL ELSE @claim_token END AS claim_token, + CASE WHEN @claimed_warehouse_id IS NULL THEN NULL + ELSE DATEADD(second, @lease_seconds, @now) END AS lease_expires_at; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_release_tidy_lane', N'P') IS NOT NULL DROP PROCEDURE alg.usp_release_tidy_lane; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_release_tidy_lane + @warehouse_id varchar(80), + @lane_code varchar(80), + @claim_token uniqueidentifier, + @claimed_version bigint, + @completed bit, + @last_error varchar(2000) = NULL +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + + DECLARE @released TABLE (queue_status varchar(20), dirty_version bigint); + BEGIN TRANSACTION; + UPDATE alg.tidy_lane_queue WITH (UPDLOCK, ROWLOCK) + SET queue_status = CASE WHEN dirty_version > @claimed_version OR @completed = 0 + THEN ''PENDING'' ELSE ''COMPLETED'' END, + claim_token = NULL, + claimed_version = NULL, + claimed_by = NULL, + claimed_at = NULL, + lease_expires_at = NULL, + last_error = @last_error + OUTPUT inserted.queue_status, inserted.dirty_version + INTO @released (queue_status, dirty_version) + WHERE warehouse_id = @warehouse_id + AND lane_code = @lane_code + AND queue_status = ''CLAIMED'' + AND claim_token = @claim_token + AND claimed_version = @claimed_version; + COMMIT TRANSACTION; + + SELECT CASE WHEN EXISTS (SELECT 1 FROM @released) THEN CAST(1 AS bit) ELSE CAST(0 AS bit) END AS released, + queue_status, dirty_version + FROM @released + UNION ALL + SELECT CAST(0 AS bit), NULL, NULL + WHERE NOT EXISTS (SELECT 1 FROM @released); +END;'); +GO + +IF OBJECT_ID(N'alg.usp_complete_move_job', N'P') IS NOT NULL DROP PROCEDURE alg.usp_complete_move_job; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_complete_move_job + @v_job_id varchar(255), + @v_result int OUTPUT +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + SET @v_result = 0; + + DECLARE @source_space_id varchar(255); + DECLARE @target_space_id varchar(255); + DECLARE @tray_code varchar(255); + DECLARE @finished_at varchar(19) = CONVERT(varchar(19), GETDATE(), 120); + + BEGIN TRANSACTION; + SELECT @source_space_id = cargo_space_id, + @target_space_id = target_cargo_space_id, + @tray_code = tray_code + FROM dbo.mydo_job WITH (UPDLOCK, HOLDLOCK) + WHERE job_id = @v_job_id + AND in_or_out = ''28''; + + IF @source_space_id IS NULL OR @target_space_id IS NULL OR @tray_code IS NULL + THROW 51400, ''Algorithm move job is missing or invalid'', 1; + + UPDATE dbo.bas_stock + SET cargo_space_id = @target_space_id, + out_quantity = 0 + WHERE cargo_space_id = @source_space_id + AND tray_code = @tray_code; + IF @@ROWCOUNT = 0 + THROW 51401, ''Algorithm move stock is not at its source space'', 1; + + UPDATE dbo.bas_cargo_space + SET status = ''1'', tray_code = '''' + WHERE cargo_space_id = @source_space_id; + UPDATE dbo.bas_cargo_space + SET status = ''2'', tray_code = @tray_code + WHERE cargo_space_id = @target_space_id; + + UPDATE dbo.mydo_job + SET status = ''4'', finish_time = @finished_at + WHERE job_id = @v_job_id + AND in_or_out = ''28''; + INSERT INTO dbo.mydo_job_finish + SELECT job.* FROM dbo.mydo_job job + WHERE job.job_id = @v_job_id + AND job.in_or_out = ''28''; + DELETE FROM dbo.mydo_job + WHERE job_id = @v_job_id + AND in_or_out = ''28''; + + INSERT INTO dbo.move_msg (id, tray_code, old_space, new_space, status) + VALUES (NEWID(), @tray_code, @source_space_id, @target_space_id, ''0''); + + COMMIT TRANSACTION; + SET @v_result = 10; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_sync_replay_sequences', N'P') IS NOT NULL DROP PROCEDURE alg.usp_sync_replay_sequences; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_sync_replay_sequences +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + + DECLARE @lock_result int; + BEGIN TRANSACTION; + EXEC @lock_result = sys.sp_getapplock + @Resource = ''alg.usp_sync_replay_sequences'', + @LockMode = ''Exclusive'', + @LockOwner = ''Transaction'', + @LockTimeout = 10000; + IF @lock_result < 0 + THROW 50012, ''Unable to acquire replay sequence lock'', 1; + + /* Regression fixture: imported history already contains CK202607210002. */ + ;WITH all_job_ids AS ( + SELECT job_id FROM dbo.mydo_job + UNION ALL + SELECT job_id FROM dbo.mydo_job_finish + ), parsed AS ( + SELECT LEFT(job_id, 2) AS job_type, + SUBSTRING(job_id, 3, 8) AS job_date, + TRY_CONVERT(int, RIGHT(job_id, 4)) AS job_sequence + FROM all_job_ids + WHERE LEN(job_id) = 14 + AND TRY_CONVERT(date, SUBSTRING(job_id, 3, 8), 112) IS NOT NULL + AND TRY_CONVERT(int, RIGHT(job_id, 4)) IS NOT NULL + ), ranked AS ( + SELECT job_type, job_date, job_sequence, + ROW_NUMBER() OVER (PARTITION BY job_type ORDER BY job_date DESC, job_sequence DESC) AS row_no + FROM parsed + ) + UPDATE generator WITH (UPDLOCK, HOLDLOCK) + SET stock_id = ranked.job_date, + job_id = RIGHT(''0000'' + CONVERT(varchar(20), ranked.job_sequence), 4) + FROM dbo.bas_job_id generator + JOIN ranked ON ranked.job_type = generator.type AND ranked.row_no = 1 + WHERE TRY_CONVERT(bigint, ranked.job_date + RIGHT(''0000'' + CONVERT(varchar(20), ranked.job_sequence), 4)) + > TRY_CONVERT(bigint, ISNULL(generator.stock_id, ''00000000'') + + RIGHT(''0000'' + ISNULL(generator.job_id, ''0''), 4)); + + ;WITH all_task_numbers AS ( + SELECT TRY_CONVERT(int, task_no) AS task_no FROM dbo.mydo_job + UNION ALL + SELECT TRY_CONVERT(int, task_no) AS task_no FROM dbo.mydo_job_finish + ), observed AS ( + SELECT generator.id, MAX(numbers.task_no) AS max_task_no + FROM dbo.bas_task_no generator + JOIN all_task_numbers numbers + ON numbers.task_no BETWEEN generator.min_no AND generator.max_no + GROUP BY generator.id + ) + UPDATE generator WITH (UPDLOCK, HOLDLOCK) + SET task_no = observed.max_task_no + FROM dbo.bas_task_no generator + JOIN observed ON observed.id = generator.id + WHERE observed.max_task_no > ISNULL(generator.task_no, generator.min_no - 1); + + COMMIT TRANSACTION; + + SELECT type, stock_id, job_id FROM dbo.bas_job_id WHERE type IN (''RK'', ''CK'', ''ZC'') ORDER BY type; + SELECT id, task_type, task_no, min_no, max_no FROM dbo.bas_task_no WHERE id IN (1, 21) ORDER BY id; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_try_reserve_inbound', N'P') IS NOT NULL DROP PROCEDURE alg.usp_try_reserve_inbound; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_try_reserve_inbound + @warehouse_id varchar(80), + @lane_code varchar(80), + @space_id varchar(80), + @project_no varchar(255), + @expected_state_version binary(8), + @reservation_id uniqueidentifier = NULL +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + IF @reservation_id IS NULL SET @reservation_id = NEWID(); + IF @expected_state_version IS NULL + BEGIN + SELECT CAST(''CONFLICT'' AS varchar(20)) AS result, CAST(''LANE_VERSION_MISMATCH'' AS varchar(80)) AS reason, @reservation_id AS reservation_id; + RETURN; + END; + BEGIN TRANSACTION; + + DECLARE @current_version binary(8), @stored_semantic_fingerprint varbinary(32), + @live_semantic_fingerprint varbinary(32), @target_status varchar(5), @target_locked varchar(5), + @target_tray varchar(255), @target_depth int, @role varchar(40), @target_stock_count int, + @has_inner_candidate bit, @has_gap bit, @has_active_reservation bit, @pending_outbound bit, + @lane_lock_count int, @stock_lock_count int, @job_lock_count int, + @role_lock_count int, @topology_lock_count int, @project_policy_lock_count int, + @warehouse_policy_lock_count int, @reservation_lock_count int; + + /* Hold source-row and key-range locks through eligibility recomputation. */ + SELECT @current_version = state_version, @stored_semantic_fingerprint = semantic_fingerprint + FROM alg.lane_state WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id AND lane_code = @lane_code; + + IF @current_version IS NULL OR @current_version <> @expected_state_version + BEGIN + ROLLBACK TRANSACTION; + SELECT CAST(''CONFLICT'' AS varchar(20)) AS result, CAST(''LANE_VERSION_MISMATCH'' AS varchar(80)) AS reason, @reservation_id AS reservation_id; + RETURN; + END; + + SELECT @target_status = status, @target_locked = locked, @target_tray = tray_code, + @target_depth = TRY_CONVERT(int, group_coding) + FROM dbo.bas_cargo_space WITH (UPDLOCK, HOLDLOCK) + WHERE cargo_space_id = @space_id AND warehouse_id = @warehouse_id AND group_coding_no = @lane_code; + + SELECT @lane_lock_count = COUNT(*) + FROM dbo.bas_cargo_space WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id AND group_coding_no = @lane_code; + + SELECT @stock_lock_count = COUNT(*) + FROM dbo.bas_stock stock WITH (UPDLOCK, HOLDLOCK) + JOIN dbo.bas_cargo_space lane_space WITH (UPDLOCK, HOLDLOCK) ON lane_space.cargo_space_id = stock.cargo_space_id + WHERE lane_space.warehouse_id = @warehouse_id AND lane_space.group_coding_no = @lane_code; + + SELECT @job_lock_count = COUNT(*) + FROM dbo.mydo_job WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id + AND (finish_time IS NULL OR LTRIM(RTRIM(finish_time)) = ''''); + + SELECT @role_lock_count = COUNT(*) + FROM alg.space_role WITH (UPDLOCK, HOLDLOCK) + WHERE space_id IN (SELECT cargo_space_id FROM dbo.bas_cargo_space + WHERE warehouse_id = @warehouse_id AND group_coding_no = @lane_code); + + SELECT @topology_lock_count = COUNT(*) + FROM alg.space_topology WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id AND lane_code = @lane_code; + + SELECT @project_policy_lock_count = COUNT(*) + FROM alg.project_policy WITH (UPDLOCK, HOLDLOCK); + + SELECT @warehouse_policy_lock_count = COUNT(*) + FROM alg.warehouse_policy WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id; + + SELECT @reservation_lock_count = COUNT(*) + FROM alg.reservation WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id AND lane_code = @lane_code AND status = ''ACTIVE''; + + EXEC alg.usp_compute_lane_semantic_fingerprint + @warehouse_id = @warehouse_id, + @lane_code = @lane_code, + @semantic_fingerprint = @live_semantic_fingerprint OUTPUT, + @inventory_source = ''LIVE''; + + IF @stored_semantic_fingerprint IS NULL OR @live_semantic_fingerprint IS NULL + OR @stored_semantic_fingerprint <> @live_semantic_fingerprint + BEGIN + ROLLBACK TRANSACTION; + SELECT CAST(''CONFLICT'' AS varchar(20)) AS result, CAST(''LANE_VERSION_MISMATCH'' AS varchar(80)) AS reason, @reservation_id AS reservation_id; + RETURN; + END; + + SELECT @target_stock_count = COUNT(*) + FROM dbo.bas_stock WITH (UPDLOCK, HOLDLOCK) + WHERE cargo_space_id = @space_id; + + SELECT @role = role + FROM alg.space_role WITH (UPDLOCK, HOLDLOCK) + WHERE space_id = @space_id; + + SELECT @has_active_reservation = CASE WHEN EXISTS ( + SELECT 1 FROM alg.reservation WITH (UPDLOCK, HOLDLOCK) WHERE space_id = @space_id AND status = ''ACTIVE'' + ) THEN 1 ELSE 0 END; + + SELECT @has_inner_candidate = CASE WHEN EXISTS ( + SELECT 1 + FROM dbo.bas_cargo_space inner_candidate WITH (UPDLOCK, HOLDLOCK) + LEFT JOIN dbo.bas_stock inner_stock WITH (UPDLOCK, HOLDLOCK) ON inner_stock.cargo_space_id = inner_candidate.cargo_space_id + WHERE inner_candidate.warehouse_id = @warehouse_id + AND inner_candidate.group_coding_no = @lane_code + AND TRY_CONVERT(int, inner_candidate.group_coding) < @target_depth + AND inner_candidate.status = ''1'' + AND NULLIF(LTRIM(RTRIM(inner_candidate.tray_code)), '''') IS NULL + AND inner_stock.cargo_space_id IS NULL + ) THEN 1 ELSE 0 END; + + SELECT @has_gap = CASE WHEN EXISTS ( + SELECT 1 + FROM dbo.bas_cargo_space inner_space WITH (UPDLOCK, HOLDLOCK) + JOIN dbo.bas_cargo_space outer_space WITH (UPDLOCK, HOLDLOCK) + ON outer_space.warehouse_id = inner_space.warehouse_id + AND outer_space.group_coding_no = inner_space.group_coding_no + AND TRY_CONVERT(int, outer_space.group_coding) > TRY_CONVERT(int, inner_space.group_coding) + WHERE inner_space.warehouse_id = @warehouse_id + AND inner_space.group_coding_no = @lane_code + AND NULLIF(LTRIM(RTRIM(inner_space.tray_code)), '''') IS NULL + AND NOT EXISTS ( + SELECT 1 FROM dbo.bas_stock inner_stock WITH (UPDLOCK, HOLDLOCK) + WHERE inner_stock.cargo_space_id = inner_space.cargo_space_id + ) + AND ( + NULLIF(LTRIM(RTRIM(outer_space.tray_code)), '''') IS NOT NULL + OR EXISTS ( + SELECT 1 FROM dbo.bas_stock outer_stock WITH (UPDLOCK, HOLDLOCK) + WHERE outer_stock.cargo_space_id = outer_space.cargo_space_id + ) + ) + ) THEN 1 ELSE 0 END; + + ;WITH tray_candidates AS ( + SELECT j.job_id, COUNT(DISTINCT s.cargo_space_id) AS space_count, MIN(s.cargo_space_id) AS cargo_space_id + FROM dbo.mydo_job j WITH (UPDLOCK, HOLDLOCK) + JOIN dbo.bas_stock s WITH (UPDLOCK, HOLDLOCK) ON s.tray_code = NULLIF(LTRIM(RTRIM(j.tray_code)), '''') + JOIN dbo.bas_cargo_space c WITH (UPDLOCK, HOLDLOCK) ON c.cargo_space_id = s.cargo_space_id AND c.warehouse_id = j.warehouse_id + WHERE j.warehouse_id = @warehouse_id + GROUP BY j.job_id + ) + SELECT @pending_outbound = CASE WHEN EXISTS ( + SELECT 1 + FROM dbo.mydo_job j WITH (UPDLOCK, HOLDLOCK) + LEFT JOIN dbo.bas_cargo_space source_space WITH (UPDLOCK, HOLDLOCK) + ON source_space.cargo_space_id = NULLIF(LTRIM(RTRIM(j.cargo_space_id)), '''') + AND source_space.warehouse_id = j.warehouse_id + LEFT JOIN tray_candidates ON tray_candidates.job_id = j.job_id + LEFT JOIN dbo.bas_cargo_space resolved_space WITH (UPDLOCK, HOLDLOCK) + ON resolved_space.cargo_space_id = COALESCE(source_space.cargo_space_id, + CASE WHEN tray_candidates.space_count = 1 THEN tray_candidates.cargo_space_id END) + WHERE (j.finish_time IS NULL OR LTRIM(RTRIM(j.finish_time)) = '''') + AND j.in_or_out >= 20 + AND j.warehouse_id = @warehouse_id + AND resolved_space.group_coding_no = @lane_code + ) THEN 1 ELSE 0 END; + + IF ISNULL(@pending_outbound, 0) = 1 + BEGIN + ROLLBACK TRANSACTION; + SELECT CAST(''CONFLICT'' AS varchar(20)) AS result, CAST(''PENDING_OUTBOUND'' AS varchar(80)) AS reason, @reservation_id AS reservation_id; + RETURN; + END; + + IF @target_status IS NULL OR @target_status <> ''1'' OR + (NULLIF(LTRIM(RTRIM(@target_locked)), '''') IS NOT NULL AND LTRIM(RTRIM(@target_locked)) NOT IN (''0'', ''N'')) OR + NULLIF(LTRIM(RTRIM(@target_tray)), '''') IS NOT NULL OR + ISNULL(@target_stock_count, 0) <> 0 OR @target_depth IS NULL OR + ISNULL(@role, ''STORAGE'') <> ''STORAGE'' OR ISNULL(@has_active_reservation, 0) = 1 OR + ISNULL(@has_inner_candidate, 0) = 1 OR ISNULL(@has_gap, 0) = 1 + BEGIN + ROLLBACK TRANSACTION; + SELECT CAST(''CONFLICT'' AS varchar(20)) AS result, CAST(''SPACE_NOT_ELIGIBLE'' AS varchar(80)) AS reason, @reservation_id AS reservation_id; + RETURN; + END; + + BEGIN TRY + INSERT INTO alg.reservation (reservation_id, warehouse_id, lane_code, space_id, project_no, status) + VALUES (@reservation_id, @warehouse_id, @lane_code, @space_id, @project_no, ''ACTIVE''); + EXEC alg.usp_rebuild_lane_state @warehouse_id, @lane_code; + COMMIT TRANSACTION; + SELECT CAST(''RESERVED'' AS varchar(20)) AS result, CAST(NULL AS varchar(80)) AS reason, @reservation_id AS reservation_id; + END TRY + BEGIN CATCH + DECLARE @error_number int = ERROR_NUMBER(); + IF XACT_STATE() <> 0 ROLLBACK TRANSACTION; + IF @error_number IN (2601, 2627) + BEGIN + SELECT CAST(''CONFLICT'' AS varchar(20)) AS result, CAST(''ACTIVE_RESERVATION_EXISTS'' AS varchar(80)) AS reason, @reservation_id AS reservation_id; + RETURN; + END; + THROW; + END CATCH; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_release_reservation', N'P') IS NOT NULL DROP PROCEDURE alg.usp_release_reservation; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_release_reservation + @warehouse_id varchar(80), + @reservation_id uniqueidentifier +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + DECLARE @lane_code varchar(80); + BEGIN TRANSACTION; + SELECT @lane_code = lane_code + FROM alg.reservation WITH (UPDLOCK, HOLDLOCK) + WHERE reservation_id = @reservation_id AND warehouse_id = @warehouse_id AND status = ''ACTIVE''; + + IF @lane_code IS NULL + BEGIN + ROLLBACK TRANSACTION; + SELECT CAST(''NOT_FOUND'' AS varchar(20)) AS result, @reservation_id AS reservation_id; + RETURN; + END; + + UPDATE alg.reservation + SET status = ''RELEASED'', released_at = SYSUTCDATETIME() + WHERE reservation_id = @reservation_id AND warehouse_id = @warehouse_id; + EXEC alg.usp_rebuild_lane_state @warehouse_id, @lane_code; + COMMIT TRANSACTION; + SELECT CAST(''RELEASED'' AS varchar(20)) AS result, @reservation_id AS reservation_id; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_acquire_deep_workflow_lock', N'P') IS NOT NULL DROP PROCEDURE alg.usp_acquire_deep_workflow_lock; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_acquire_deep_workflow_lock + @request_id varchar(80), + @warehouse_id varchar(80), + @floor_no int +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + DECLARE @owner varchar(80); + BEGIN TRANSACTION; + SELECT @owner = request_id + FROM alg.deep_workflow_lock WITH (UPDLOCK, HOLDLOCK) + WHERE warehouse_id = @warehouse_id AND floor_no = @floor_no AND status = ''ACTIVE''; + + IF @owner IS NOT NULL + BEGIN + COMMIT TRANSACTION; + SELECT CONVERT(bit, CASE WHEN @owner = @request_id THEN 1 ELSE 0 END) AS acquired; + RETURN; + END; + + INSERT INTO alg.deep_workflow_lock (lock_id, request_id, warehouse_id, floor_no, status) + VALUES (NEWID(), @request_id, @warehouse_id, @floor_no, ''ACTIVE''); + COMMIT TRANSACTION; + SELECT CONVERT(bit, 1) AS acquired; +END;'); +GO + +IF OBJECT_ID(N'alg.usp_release_deep_workflow_lock', N'P') IS NOT NULL DROP PROCEDURE alg.usp_release_deep_workflow_lock; +GO +EXEC(N' +CREATE PROCEDURE alg.usp_release_deep_workflow_lock + @request_id varchar(80), + @warehouse_id varchar(80), + @floor_no int +AS +BEGIN + SET NOCOUNT ON; + SET XACT_ABORT ON; + BEGIN TRANSACTION; + UPDATE alg.deep_workflow_lock WITH (UPDLOCK, HOLDLOCK) + SET status = ''RELEASED'', released_at = SYSUTCDATETIME() + WHERE request_id = @request_id AND warehouse_id = @warehouse_id + AND floor_no = @floor_no AND status = ''ACTIVE''; + DECLARE @released bit = CASE WHEN @@ROWCOUNT = 1 THEN 1 ELSE 0 END; + COMMIT TRANSACTION; + SELECT @released AS released; +END;'); +GO + +IF OBJECT_ID(N'dbo.trg_alg_dirty_bas_stock', N'TR') IS NOT NULL DROP TRIGGER dbo.trg_alg_dirty_bas_stock; +GO +EXEC(N' +CREATE TRIGGER dbo.trg_alg_dirty_bas_stock +ON dbo.bas_stock +AFTER INSERT, UPDATE, DELETE +AS +BEGIN + SET NOCOUNT ON; + ;WITH changed AS ( + SELECT cargo.warehouse_id, cargo.group_coding_no AS lane_code + FROM inserted row_data + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = row_data.cargo_space_id + UNION + SELECT cargo.warehouse_id, cargo.group_coding_no + FROM deleted row_data + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = row_data.cargo_space_id + ), source AS ( + SELECT warehouse_id, lane_code + FROM changed + WHERE NULLIF(LTRIM(RTRIM(warehouse_id)), '''') IS NOT NULL + AND NULLIF(LTRIM(RTRIM(lane_code)), '''') IS NOT NULL + GROUP BY warehouse_id, lane_code + ) + MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target + USING source ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET reason_mask = target.reason_mask | 1, + change_count = target.change_count + 1, last_changed_at = SYSUTCDATETIME() + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, change_count, enqueued_at, last_changed_at) + VALUES (source.warehouse_id, source.lane_code, 0, 1, 1, SYSUTCDATETIME(), SYSUTCDATETIME()); +END;'); +GO + +IF OBJECT_ID(N'dbo.trg_alg_dirty_bas_cargo_space', N'TR') IS NOT NULL DROP TRIGGER dbo.trg_alg_dirty_bas_cargo_space; +GO +EXEC(N' +CREATE TRIGGER dbo.trg_alg_dirty_bas_cargo_space +ON dbo.bas_cargo_space +AFTER INSERT, UPDATE, DELETE +AS +BEGIN + SET NOCOUNT ON; + ;WITH paired AS ( + SELECT i.cargo_space_id AS inserted_id, d.cargo_space_id AS deleted_id, + i.warehouse_id AS inserted_warehouse, i.group_coding_no AS inserted_lane, + d.warehouse_id AS deleted_warehouse, d.group_coding_no AS deleted_lane, + CASE WHEN i.cargo_space_id IS NULL OR d.cargo_space_id IS NULL + OR ISNULL(i.warehouse_id, '''') <> ISNULL(d.warehouse_id, '''') + OR ISNULL(i.group_coding_no, '''') <> ISNULL(d.group_coding_no, '''') + OR ISNULL(i.group_coding, '''') <> ISNULL(d.group_coding, '''') + OR ISNULL(i.the_platoon, -2147483648) <> ISNULL(d.the_platoon, -2147483648) + OR ISNULL(i.the_column, -2147483648) <> ISNULL(d.the_column, -2147483648) + OR ISNULL(i.the_floor, -2147483648) <> ISNULL(d.the_floor, -2147483648) + THEN 1 ELSE 0 END AS topology_dirty + FROM inserted i + FULL OUTER JOIN deleted d ON d.cargo_space_id = i.cargo_space_id + ), changed AS ( + SELECT inserted_warehouse AS warehouse_id, inserted_lane AS lane_code, topology_dirty + FROM paired WHERE inserted_id IS NOT NULL + UNION ALL + SELECT deleted_warehouse, deleted_lane, topology_dirty + FROM paired WHERE deleted_id IS NOT NULL + ), source AS ( + SELECT warehouse_id, lane_code, CONVERT(bit, MAX(topology_dirty)) AS topology_dirty + FROM changed + WHERE NULLIF(LTRIM(RTRIM(warehouse_id)), '''') IS NOT NULL + AND NULLIF(LTRIM(RTRIM(lane_code)), '''') IS NOT NULL + GROUP BY warehouse_id, lane_code + ) + MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target + USING source ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET + topology_dirty = CASE WHEN target.topology_dirty = 1 OR source.topology_dirty = 1 THEN 1 ELSE 0 END, + reason_mask = target.reason_mask | 2, change_count = target.change_count + 1, + last_changed_at = SYSUTCDATETIME() + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, change_count, enqueued_at, last_changed_at) + VALUES (source.warehouse_id, source.lane_code, source.topology_dirty, 2, 1, + SYSUTCDATETIME(), SYSUTCDATETIME()); +END;'); +GO + +IF OBJECT_ID(N'dbo.trg_alg_dirty_mydo_job', N'TR') IS NOT NULL DROP TRIGGER dbo.trg_alg_dirty_mydo_job; +GO +EXEC(N' +CREATE TRIGGER dbo.trg_alg_dirty_mydo_job +ON dbo.mydo_job +AFTER INSERT, UPDATE, DELETE +AS +BEGIN + SET NOCOUNT ON; + ;WITH changed_jobs AS ( + SELECT warehouse_id, cargo_space_id, target_cargo_space_id, tray_code FROM inserted + UNION ALL + SELECT warehouse_id, cargo_space_id, target_cargo_space_id, tray_code FROM deleted + ), changed AS ( + SELECT job.warehouse_id, source_space.group_coding_no AS lane_code + FROM changed_jobs job + JOIN dbo.bas_cargo_space source_space + ON source_space.warehouse_id = job.warehouse_id + AND source_space.cargo_space_id = NULLIF(LTRIM(RTRIM(job.cargo_space_id)), '''') + UNION + SELECT job.warehouse_id, target_space.group_coding_no + FROM changed_jobs job + JOIN dbo.bas_cargo_space target_space + ON target_space.warehouse_id = job.warehouse_id + AND target_space.cargo_space_id = NULLIF(LTRIM(RTRIM(job.target_cargo_space_id)), '''') + UNION + SELECT job.warehouse_id, tray_space.group_coding_no + FROM changed_jobs job + JOIN dbo.bas_stock stock ON stock.tray_code = NULLIF(LTRIM(RTRIM(job.tray_code)), '''') + JOIN dbo.bas_cargo_space tray_space ON tray_space.cargo_space_id = stock.cargo_space_id + AND tray_space.warehouse_id = job.warehouse_id + ), source AS ( + SELECT warehouse_id, lane_code FROM changed + WHERE NULLIF(LTRIM(RTRIM(warehouse_id)), '''') IS NOT NULL + AND NULLIF(LTRIM(RTRIM(lane_code)), '''') IS NOT NULL + GROUP BY warehouse_id, lane_code + ) + MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target + USING source ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET reason_mask = target.reason_mask | 4, + change_count = target.change_count + 1, last_changed_at = SYSUTCDATETIME() + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, change_count, enqueued_at, last_changed_at) + VALUES (source.warehouse_id, source.lane_code, 0, 4, 1, SYSUTCDATETIME(), SYSUTCDATETIME()); +END;'); +GO + +IF OBJECT_ID(N'alg.trg_alg_dirty_space_role', N'TR') IS NOT NULL DROP TRIGGER alg.trg_alg_dirty_space_role; +GO +EXEC(N' +CREATE TRIGGER alg.trg_alg_dirty_space_role +ON alg.space_role +AFTER INSERT, UPDATE, DELETE +AS +BEGIN + SET NOCOUNT ON; + ;WITH changed_space AS ( + SELECT space_id FROM inserted UNION SELECT space_id FROM deleted + ), source AS ( + SELECT cargo.warehouse_id, cargo.group_coding_no AS lane_code + FROM changed_space changed + JOIN dbo.bas_cargo_space cargo ON cargo.cargo_space_id = changed.space_id + GROUP BY cargo.warehouse_id, cargo.group_coding_no + ) + MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target + USING source ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET reason_mask = target.reason_mask | 8, + change_count = target.change_count + 1, last_changed_at = SYSUTCDATETIME() + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, change_count, enqueued_at, last_changed_at) + VALUES (source.warehouse_id, source.lane_code, 0, 8, 1, SYSUTCDATETIME(), SYSUTCDATETIME()); +END;'); +GO + +IF OBJECT_ID(N'alg.trg_alg_dirty_project_policy', N'TR') IS NOT NULL DROP TRIGGER alg.trg_alg_dirty_project_policy; +GO +EXEC(N' +CREATE TRIGGER alg.trg_alg_dirty_project_policy +ON alg.project_policy +AFTER INSERT, UPDATE, DELETE +AS +BEGIN + SET NOCOUNT ON; + IF NOT EXISTS (SELECT 1 FROM inserted) AND NOT EXISTS (SELECT 1 FROM deleted) RETURN; + ;WITH source AS ( + SELECT warehouse_id, group_coding_no AS lane_code + FROM dbo.bas_cargo_space + GROUP BY warehouse_id, group_coding_no + ) + MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target + USING source ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET reason_mask = target.reason_mask | 16, + change_count = target.change_count + 1, last_changed_at = SYSUTCDATETIME() + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, change_count, enqueued_at, last_changed_at) + VALUES (source.warehouse_id, source.lane_code, 0, 16, 1, SYSUTCDATETIME(), SYSUTCDATETIME()); +END;'); +GO + +IF OBJECT_ID(N'alg.trg_alg_dirty_warehouse_policy', N'TR') IS NOT NULL DROP TRIGGER alg.trg_alg_dirty_warehouse_policy; +GO +EXEC(N' +CREATE TRIGGER alg.trg_alg_dirty_warehouse_policy +ON alg.warehouse_policy +AFTER INSERT, UPDATE, DELETE +AS +BEGIN + SET NOCOUNT ON; + ;WITH changed_warehouse AS ( + SELECT warehouse_id FROM inserted UNION SELECT warehouse_id FROM deleted + ), source AS ( + SELECT cargo.warehouse_id, cargo.group_coding_no AS lane_code + FROM changed_warehouse changed + JOIN dbo.bas_cargo_space cargo ON cargo.warehouse_id = changed.warehouse_id + GROUP BY cargo.warehouse_id, cargo.group_coding_no + ) + MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target + USING source ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code + WHEN MATCHED THEN UPDATE SET reason_mask = target.reason_mask | 32, + change_count = target.change_count + 1, last_changed_at = SYSUTCDATETIME() + WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, topology_dirty, reason_mask, change_count, enqueued_at, last_changed_at) + VALUES (source.warehouse_id, source.lane_code, 0, 32, 1, SYSUTCDATETIME(), SYSUTCDATETIME()); +END;'); +GO + +IF NOT EXISTS (SELECT 1 FROM alg.space_topology) + AND NOT EXISTS (SELECT 1 FROM alg.inventory_item_snapshot) + AND NOT EXISTS (SELECT 1 FROM alg.lane_state) +BEGIN + EXEC alg.usp_rebuild_space_topology; + EXEC alg.usp_sync_inventory_snapshot; + EXEC alg.usp_rebuild_lane_state; + DELETE FROM alg.dirty_lane_queue; +END; +MERGE alg.tidy_mode WITH (HOLDLOCK) AS target +USING (SELECT DISTINCT warehouse_id FROM alg.space_topology) AS source + ON target.warehouse_id = source.warehouse_id +WHEN NOT MATCHED THEN INSERT ( + warehouse_id, requested_enabled, effective_state, status_reason, mode_version, updated_at) + VALUES (source.warehouse_id, 0, 'NORMAL', 'MIGRATION_INITIALIZED', 0, SYSUTCDATETIME()); +MERGE alg.tidy_lane_queue WITH (HOLDLOCK) AS target +USING (SELECT warehouse_id, lane_code FROM alg.lane_state) AS source + ON target.warehouse_id = source.warehouse_id AND target.lane_code = source.lane_code +WHEN NOT MATCHED THEN INSERT ( + warehouse_id, lane_code, dirty_version, queue_status, reason_mask, change_count, last_dirty_at) + VALUES (source.warehouse_id, source.lane_code, 1, 'PENDING', 0, 1, SYSUTCDATETIME()); +GO diff --git a/fortucky-algorithm/src/main/resources/db/sqlserver/uninstall.sql b/fortucky-algorithm/src/main/resources/db/sqlserver/uninstall.sql new file mode 100644 index 0000000..b173938 --- /dev/null +++ b/fortucky-algorithm/src/main/resources/db/sqlserver/uninstall.sql @@ -0,0 +1,53 @@ +/* Removes only objects owned by schema alg. Run independently of install.sql. */ +SET NOCOUNT ON; + +IF OBJECT_ID(N'dbo.trg_alg_dirty_bas_stock', N'TR') IS NOT NULL DROP TRIGGER dbo.trg_alg_dirty_bas_stock; +IF OBJECT_ID(N'dbo.trg_alg_dirty_bas_cargo_space', N'TR') IS NOT NULL DROP TRIGGER dbo.trg_alg_dirty_bas_cargo_space; +IF OBJECT_ID(N'dbo.trg_alg_dirty_mydo_job', N'TR') IS NOT NULL DROP TRIGGER dbo.trg_alg_dirty_mydo_job; +IF OBJECT_ID(N'alg.trg_alg_dirty_space_role', N'TR') IS NOT NULL DROP TRIGGER alg.trg_alg_dirty_space_role; +IF OBJECT_ID(N'alg.trg_alg_dirty_project_policy', N'TR') IS NOT NULL DROP TRIGGER alg.trg_alg_dirty_project_policy; +IF OBJECT_ID(N'alg.trg_alg_dirty_warehouse_policy', N'TR') IS NOT NULL DROP TRIGGER alg.trg_alg_dirty_warehouse_policy; +GO +IF OBJECT_ID(N'alg.usp_refresh_dirty_lanes', N'P') IS NOT NULL DROP PROCEDURE alg.usp_refresh_dirty_lanes; +IF OBJECT_ID(N'alg.usp_mark_dirty_lane', N'P') IS NOT NULL DROP PROCEDURE alg.usp_mark_dirty_lane; +IF OBJECT_ID(N'alg.usp_claim_tidy_lane', N'P') IS NOT NULL DROP PROCEDURE alg.usp_claim_tidy_lane; +IF OBJECT_ID(N'alg.usp_release_tidy_lane', N'P') IS NOT NULL DROP PROCEDURE alg.usp_release_tidy_lane; +IF OBJECT_ID(N'alg.usp_complete_move_job', N'P') IS NOT NULL DROP PROCEDURE alg.usp_complete_move_job; +IF OBJECT_ID(N'alg.usp_sync_replay_sequences', N'P') IS NOT NULL DROP PROCEDURE alg.usp_sync_replay_sequences; +IF OBJECT_ID(N'alg.usp_release_reservation', N'P') IS NOT NULL DROP PROCEDURE alg.usp_release_reservation; +IF OBJECT_ID(N'alg.usp_try_reserve_inbound', N'P') IS NOT NULL DROP PROCEDURE alg.usp_try_reserve_inbound; +IF OBJECT_ID(N'alg.usp_apply_space_role', N'P') IS NOT NULL DROP PROCEDURE alg.usp_apply_space_role; +IF OBJECT_ID(N'alg.usp_release_deep_workflow_lock', N'P') IS NOT NULL DROP PROCEDURE alg.usp_release_deep_workflow_lock; +IF OBJECT_ID(N'alg.usp_acquire_deep_workflow_lock', N'P') IS NOT NULL DROP PROCEDURE alg.usp_acquire_deep_workflow_lock; +IF OBJECT_ID(N'alg.usp_rebuild_lane_state', N'P') IS NOT NULL DROP PROCEDURE alg.usp_rebuild_lane_state; +IF OBJECT_ID(N'alg.usp_compute_lane_semantic_fingerprint', N'P') IS NOT NULL DROP PROCEDURE alg.usp_compute_lane_semantic_fingerprint; +IF OBJECT_ID(N'alg.usp_sync_inventory_snapshot', N'P') IS NOT NULL DROP PROCEDURE alg.usp_sync_inventory_snapshot; +IF OBJECT_ID(N'alg.usp_rebuild_space_topology', N'P') IS NOT NULL DROP PROCEDURE alg.usp_rebuild_space_topology; +GO +IF OBJECT_ID(N'alg.v_space_state', N'V') IS NOT NULL DROP VIEW alg.v_space_state; +IF OBJECT_ID(N'alg.v_active_job', N'V') IS NOT NULL DROP VIEW alg.v_active_job; +IF OBJECT_ID(N'alg.v_inventory_item', N'V') IS NOT NULL DROP VIEW alg.v_inventory_item; +GO +IF OBJECT_ID(N'alg.outbound_workflow_space', N'U') IS NOT NULL DROP TABLE alg.outbound_workflow_space; +IF OBJECT_ID(N'alg.outbound_workflow_step', N'U') IS NOT NULL DROP TABLE alg.outbound_workflow_step; +IF OBJECT_ID(N'alg.outbound_workflow', N'U') IS NOT NULL DROP TABLE alg.outbound_workflow; +IF OBJECT_ID(N'alg.tidy_callback_event', N'U') IS NOT NULL DROP TABLE alg.tidy_callback_event; +IF OBJECT_ID(N'alg.tidy_space_lock', N'U') IS NOT NULL DROP TABLE alg.tidy_space_lock; +IF OBJECT_ID(N'alg.tidy_step', N'U') IS NOT NULL DROP TABLE alg.tidy_step; +IF OBJECT_ID(N'alg.tidy_workflow', N'U') IS NOT NULL DROP TABLE alg.tidy_workflow; +IF OBJECT_ID(N'alg.tidy_lane_queue', N'U') IS NOT NULL DROP TABLE alg.tidy_lane_queue; +IF OBJECT_ID(N'alg.tidy_mode', N'U') IS NOT NULL DROP TABLE alg.tidy_mode; +IF OBJECT_ID(N'alg.decision_log', N'U') IS NOT NULL DROP TABLE alg.decision_log; +IF OBJECT_ID(N'alg.deep_workflow_lock', N'U') IS NOT NULL DROP TABLE alg.deep_workflow_lock; +IF OBJECT_ID(N'alg.reservation', N'U') IS NOT NULL DROP TABLE alg.reservation; +IF OBJECT_ID(N'alg.dirty_lane_queue', N'U') IS NOT NULL DROP TABLE alg.dirty_lane_queue; +IF OBJECT_ID(N'alg.lane_state', N'U') IS NOT NULL DROP TABLE alg.lane_state; +IF OBJECT_ID(N'alg.space_inventory_summary', N'U') IS NOT NULL DROP TABLE alg.space_inventory_summary; +IF OBJECT_ID(N'alg.inventory_item_snapshot', N'U') IS NOT NULL DROP TABLE alg.inventory_item_snapshot; +IF OBJECT_ID(N'alg.space_topology', N'U') IS NOT NULL DROP TABLE alg.space_topology; +IF OBJECT_ID(N'alg.space_role', N'U') IS NOT NULL DROP TABLE alg.space_role; +IF OBJECT_ID(N'alg.project_policy', N'U') IS NOT NULL DROP TABLE alg.project_policy; +IF OBJECT_ID(N'alg.warehouse_policy', N'U') IS NOT NULL DROP TABLE alg.warehouse_policy; +GO +IF SCHEMA_ID(N'alg') IS NOT NULL EXEC(N'DROP SCHEMA alg'); +GO diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/LaneAnalyzerTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/LaneAnalyzerTest.java new file mode 100644 index 0000000..70bb02e --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/LaneAnalyzerTest.java @@ -0,0 +1,136 @@ +package com.ruoyi.algorithm; + +import com.ruoyi.algorithm.model.LaneState; +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import com.ruoyi.algorithm.policy.SchedulingPolicy; +import org.junit.jupiter.api.Test; + +import java.util.List; + +import static org.assertj.core.api.Assertions.assertThat; + +class LaneAnalyzerTest { + + private final LaneAnalyzer analyzer = new LaneAnalyzer(); + + @Test + void findsNextSlotFromInsideToOutside() { + LaneState lane = analyzer.analyze(List.of( + space("S1", 1, SpaceStatus.OCCUPIED, "T1", "P1"), + space("S2", 2, SpaceStatus.OCCUPIED, "T2", "P1"), + space("S3", 3, SpaceStatus.EMPTY, null, null), + space("S4", 4, SpaceStatus.EMPTY, null, null), + space("S5", 5, SpaceStatus.EMPTY, null, null) + ), SchedulingPolicy.ft546Defaults()); + + assertThat(lane.physicallyContinuous()).isTrue(); + assertThat(lane.nextSlot()).isPresent(); + assertThat(lane.nextSlot().orElseThrow().spaceId()).isEqualTo("S3"); + assertThat(lane.residentProjectNo()).contains("P1"); + assertThat(lane.segmentCount()).isEqualTo(1); + } + + @Test + void detectsInnerHoleAndRefusesNextSlot() { + LaneState lane = analyzer.analyze(List.of( + space("S1", 1, SpaceStatus.OCCUPIED, "T1", "P1"), + space("S2", 2, SpaceStatus.EMPTY, null, null), + space("S3", 3, SpaceStatus.OCCUPIED, "T3", "P1") + ), SchedulingPolicy.ft546Defaults()); + + assertThat(lane.physicallyContinuous()).isFalse(); + assertThat(lane.nextSlot()).isEmpty(); + } + + @Test + void detectsResidentAndSingleOuterGuestSegments() { + LaneState lane = analyzer.analyze(List.of( + space("S1", 1, SpaceStatus.OCCUPIED, "T1", "P1"), + space("S2", 2, SpaceStatus.OCCUPIED, "T2", "P1"), + space("S3", 3, SpaceStatus.OCCUPIED, "T3", "P2"), + space("S4", 4, SpaceStatus.EMPTY, null, null) + ), SchedulingPolicy.ft546Defaults()); + + assertThat(lane.segmentCount()).isEqualTo(2); + assertThat(lane.residentProjectNo()).contains("P1"); + assertThat(lane.guestProjectNo()).contains("P2"); + assertThat(lane.corrupt()).isFalse(); + assertThat(lane.outerSlot().orElseThrow().spaceId()).isEqualTo("S4"); + } + + @Test + void outerSlotIsTheFirstEmptyPositionImmediatelyOutsideStock() { + LaneState lane = analyzer.analyze(List.of( + space("S1", 1, SpaceStatus.OCCUPIED, "T1", "P1"), + space("S2", 2, SpaceStatus.OCCUPIED, "T2", "P1"), + space("S3", 3, SpaceStatus.EMPTY, null, null), + space("S4", 4, SpaceStatus.EMPTY, null, null), + space("S5", 5, SpaceStatus.EMPTY, null, null) + ), SchedulingPolicy.ft546Defaults()); + + assertThat(lane.outerSlot()).isPresent(); + assertThat(lane.outerSlot().orElseThrow().spaceId()).isEqualTo("S3"); + } + + @Test + void marksThreeProjectSegmentsCorrupt() { + LaneState lane = analyzer.analyze(List.of( + space("S1", 1, SpaceStatus.OCCUPIED, "T1", "P1"), + space("S2", 2, SpaceStatus.OCCUPIED, "T2", "P2"), + space("S3", 3, SpaceStatus.OCCUPIED, "T3", "P1") + ), SchedulingPolicy.ft546Defaults()); + + assertThat(lane.segmentCount()).isEqualTo(3); + assertThat(lane.corrupt()).isTrue(); + } + + @Test + void marksAggregatedMultiProjectInventoryCorrupt() { + LaneState lane = analyzer.analyze(List.of( + space("S1", 1, SpaceStatus.OCCUPIED, "T1", "P1", true), + space("S2", 2, SpaceStatus.EMPTY, null, null) + ), SchedulingPolicy.ft546Defaults()); + + assertThat(lane.corrupt()).isTrue(); + assertThat(lane.nextSlot()).isEmpty(); + } + + @Test + void marksEmptyStatusWithTrayCorruptInsteadOfAllocatable() { + LaneState lane = analyzer.analyze(List.of( + space("S1", 1, SpaceStatus.EMPTY, "T1", "P1"), + space("S2", 2, SpaceStatus.EMPTY, null, null) + ), SchedulingPolicy.ft546Defaults()); + + assertThat(lane.corrupt()).isTrue(); + assertThat(lane.nextSlot()).isEmpty(); + } + + @Test + void countsOccupiedInventoryWithUnknownProjectAsASegment() { + LaneState lane = analyzer.analyze(List.of( + space("S1", 1, SpaceStatus.OCCUPIED, "T1", null), + space("S2", 2, SpaceStatus.OCCUPIED, "T2", "P1"), + space("S3", 3, SpaceStatus.EMPTY, null, null) + ), SchedulingPolicy.ft546Defaults()); + + assertThat(lane.segmentCount()).isEqualTo(2); + assertThat(lane.residentProjectNo()).isEmpty(); + assertThat(lane.guestProjectNo()).contains("P1"); + } + + private SpaceState space(String id, int depthOrder, SpaceStatus status, String tray, String project) { + return space(id, depthOrder, status, tray, project, false); + } + + private SpaceState space(String id, int depthOrder, SpaceStatus status, String tray, String project, + boolean inventoryProjectConflict) { + return new SpaceState( + id, "01", "L1", depthOrder, 5, 1, 7, depthOrder, "A", + SpaceRole.STORAGE, status, false, inventoryProjectConflict, tray, project, null, null, + null, null, false, null + ); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/SchedulingPolicyTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/SchedulingPolicyTest.java new file mode 100644 index 0000000..ab9c647 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/SchedulingPolicyTest.java @@ -0,0 +1,23 @@ +package com.ruoyi.algorithm; + +import com.ruoyi.algorithm.policy.SchedulingPolicy; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class SchedulingPolicyTest { + + @Test + void ft546DefaultsMatchTheKnownJavascriptPolicy() { + SchedulingPolicy policy = SchedulingPolicy.ft546Defaults(); + + assertThat(policy.capacityWeight()).isEqualTo(0.55); + assertThat(policy.efficiencyWeight()).isEqualTo(0.45); + assertThat(policy.warningOccupied()).isEqualTo(564); + assertThat(policy.capacityFirstOccupied()).isEqualTo(597); + assertThat(policy.maxOccupied()).isEqualTo(615); + assertThat(policy.relocationBuffersPerFloor()).isEqualTo(4); + assertThat(policy.outboundCachesPerFloor()).isEqualTo(2); + assertThat(policy.maxTidyCandidates()).isEqualTo(10); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/contract/JsAlgorithmContractTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/contract/JsAlgorithmContractTest.java new file mode 100644 index 0000000..58c26ba --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/contract/JsAlgorithmContractTest.java @@ -0,0 +1,137 @@ +package com.ruoyi.algorithm.contract; + +import com.fasterxml.jackson.databind.JsonNode; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.ruoyi.algorithm.inbound.BatchLaneMode; +import com.ruoyi.algorithm.inbound.InboundContext; +import com.ruoyi.algorithm.inbound.InboundPlanner; +import com.ruoyi.algorithm.inbound.InboundPolicy; +import com.ruoyi.algorithm.inbound.InboundRequest; +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import com.ruoyi.algorithm.outbound.OutboundCapacityMode; +import com.ruoyi.algorithm.outbound.OutboundContext; +import com.ruoyi.algorithm.outbound.OutboundPlanner; +import com.ruoyi.algorithm.outbound.OutboundRequest; +import com.ruoyi.algorithm.policy.SchedulingPolicy; +import org.junit.jupiter.api.Test; + +import java.io.InputStream; +import java.nio.file.Files; +import java.nio.file.Path; +import java.security.MessageDigest; +import java.time.Instant; +import java.util.ArrayList; +import java.util.HexFormat; +import java.util.LinkedHashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; + +class JsAlgorithmContractTest { + private final ObjectMapper mapper = new ObjectMapper(); + + @Test + void generatedFixturesMatchTheExactJavascriptSourceAndJavaDecisions() throws Exception { + try (InputStream stream = getClass().getResourceAsStream("/contracts/js-contract-fixtures.json")) { + assertThat(stream).as("run tools/export-js-contracts.js first").isNotNull(); + JsonNode root = mapper.readTree(stream); + assertThat(root.path("sourceAlgorithmVersion").asText()).isEqualTo("1.2.0"); + Path source = Path.of("..", "..", "..", "ft546-storage-scheduling-algorithm.js"); + assertThat(root.path("sourceSha256").asText()).isEqualTo(sha256(Files.readAllBytes(source))); + assertThat(root.path("fixtures")).hasSize(4); + for (JsonNode fixture : root.path("fixtures")) { + verifyFixture(fixture); + } + } + } + + private void verifyFixture(JsonNode fixture) { + List spaces = new ArrayList<>(); + Map inboundTimes = new LinkedHashMap<>(); + for (JsonNode node : fixture.path("spaces")) { + assertThat(node.has("isCacheCore")).isTrue(); + assertThat(node.has("isReserveCore")).isTrue(); + String expectedRole = node.path("isCacheCore").asBoolean() ? "OUTBOUND_CACHE" + : node.path("isReserveCore").asBoolean() ? "PROTECTED_CORE" : "STORAGE"; + assertThat(node.path("role").asText()).isEqualTo(expectedRole); + String inbound = text(node, "inboundAt"); + SpaceState space = new SpaceState(text(node, "spaceId"), text(node, "zoneCode"), + text(node, "laneCode"), node.path("depthOrder").asInt(), node.path("laneCapacity").asInt(), + node.path("floorNo").asInt(), node.path("aisleNo").asInt(), node.path("groupCoding").asInt(), + text(node, "rowCode"), SpaceRole.valueOf(node.path("role").asText()), + SpaceStatus.valueOf(node.path("status").asText()), node.path("outboundTaskActive").asBoolean(), + false, text(node, "trayNo"), text(node, "projectNo"), text(node, "productId"), + text(node, "lotNo"), inbound == null ? null : Instant.parse(inbound), null, false, null); + spaces.add(space); + if (inbound != null) inboundTimes.put(space.spaceId(), inbound); + } + SchedulingPolicy scheduling = new SchedulingPolicy(fixture.at("/policy/capacityWeight").asDouble(), + fixture.at("/policy/efficiencyWeight").asDouble(), 564, 597, 615, 4, 2, 10); + JsonNode request = fixture.path("request"); + JsonNode expected = fixture.path("expected"); + assertThat(expected.path("planStatus").asText()).isEqualTo("READY"); + assertThat(expected.path("taskPlanCount").asInt()).isOne(); + assertThat(expected.path("plannedCount").asInt()).isOne(); + assertThat(expected.path("rejectedCount").asInt()).isZero(); + assertThat(expected.path("executionState").asText()).isIn("READY", "READY_WITH_ELEVATOR_TOKEN"); + if ("INBOUND".equals(fixture.path("kind").asText())) { + InboundRequest value = new InboundRequest(text(request, "requestId"), text(request, "trayNo"), + text(request, "projectNo"), text(request, "productId"), text(request, "lotNo"), + nullableInt(request, "expectedProjectPallets"), nullableInt(request, "entryFloor"), + nullableInt(request, "targetFloor"), Set.of(), BatchLaneMode.valueOf(request.path("batchLaneMode").asText())); + var plan = new InboundPlanner().plan(value, new InboundContext(spaces, + new InboundPolicy(scheduling, Set.of(), Set.of("COMMON"), List.of(), 0), List.of(), + (int) spaces.stream().filter(SpaceState::occupied).count())); + var assignment = plan.assignment().orElseThrow(); + assertThat(assignment.spaceId()).as(fixture.path("id").asText()).isEqualTo(text(expected, "spaceId")); + assertThat(assignment.laneCode()).isEqualTo(text(expected, "laneCode")); + assertThat(assignment.ladderRung().name()).isEqualTo(text(expected, "ladderRung")); + assertThat(assignment.capacityScore()).isEqualTo(expected.path("capacityScore").asDouble()); + assertThat(assignment.efficiencyScore()).isEqualTo(expected.path("efficiencyScore").asDouble()); + assertThat(assignment.totalScore()).isEqualTo(expected.path("totalScore").asDouble()); + assertThat(assignment.openedNewLane()).isEqualTo(expected.path("openedNewLane").asBoolean()); + } else { + OutboundRequest value = new OutboundRequest(text(request, "requestId"), text(request, "trayNo"), + text(request, "projectNo"), text(request, "productId"), text(request, "fifoMode"), + nullableInt(request, "fifoToleranceMinutes"), nullableInt(request, "exitFloor"), true); + var plan = new OutboundPlanner().plan(value, + new OutboundContext(spaces, inboundTimes, OutboundCapacityMode.BALANCED)); + var assignment = plan.assignment().orElseThrow(); + assertThat(plan.status().name()).isEqualTo(expected.path("planStatus").asText()); + assertThat(assignment.trayNo()).as(fixture.path("id").asText()).isEqualTo(text(expected, "trayNo")); + assertThat(assignment.sourceSpaceId()).isEqualTo(text(expected, "sourceSpaceId")); + assertThat(assignment.fifo().fifoRank()).isEqualTo(expected.path("fifoRank").asInt()); + assertThat(assignment.fifo().fifoViolation()).isEqualTo(expected.path("fifoViolation").asBoolean()); + assertThat(assignment.fifo().fifoMode()).isEqualTo(text(expected, "fifoMode")); + assertThat(assignment.fifo().fifoDeviationMinutes()) + .isEqualTo(expected.path("fifoDeviationMinutes").asInt()); + assertThat(assignment.blockerSpaceIds()).isEqualTo(mapper.convertValue( + expected.path("blockerSpaceIds"), mapper.getTypeFactory().constructCollectionType(List.class, String.class))); + assertThat(assignment.blockingTrayNos()).isEqualTo(mapper.convertValue( + expected.path("blockingTrayNos"), mapper.getTypeFactory().constructCollectionType(List.class, String.class))); + assertThat(assignment.blockerSpaceIds()).hasSize(expected.path("blockerCount").asInt()); + assertThat(assignment.capacityScore()).isEqualTo(expected.path("capacityScore").asDouble()); + assertThat(assignment.efficiencyScore()).isEqualTo(expected.path("efficiencyScore").asDouble()); + assertThat(assignment.totalScore()).isEqualTo(expected.path("totalScore").asDouble()); + assertThat(plan.taskCountEstimate().outbound()).isEqualTo(expected.path("taskPlanCount").asInt()); + } + } + + private String text(JsonNode node, String field) { + JsonNode value = node.get(field); + return value == null || value.isNull() || value.asText().isBlank() ? null : value.asText(); + } + + private Integer nullableInt(JsonNode node, String field) { + JsonNode value = node.get(field); + return value == null || value.isNull() ? null : value.asInt(); + } + + private String sha256(byte[] value) throws Exception { + return HexFormat.of().formatHex(MessageDigest.getInstance("SHA-256").digest(value)); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/inbound/InboundPlannerTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/inbound/InboundPlannerTest.java new file mode 100644 index 0000000..ec367a0 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/inbound/InboundPlannerTest.java @@ -0,0 +1,453 @@ +package com.ruoyi.algorithm.inbound; + +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import com.ruoyi.algorithm.policy.SchedulingPolicy; +import org.junit.jupiter.api.Test; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; + +class InboundPlannerTest { + + private final InboundPlanner planner = new InboundPlanner(); + + @Test + void continuesFromInsideToOutsideAndProtectsTheWholeLaneFromOutboundWork() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("SAFE", 5, "MAIN", occupied(1, "P1"), occupied(2, "P1"), empty(3), empty(4), empty(5))); + spaces.addAll(lane("BLOCKED", 5, "MAIN", occupied(1, "P1"), outboundEmpty(2), empty(3), empty(4), empty(5))); + + InboundPlan plan = plan(request("P1"), spaces); + + assertThat(plan.assignment()).isPresent(); + assertThat(plan.assignment().orElseThrow().laneCode()).isEqualTo("SAFE"); + assertThat(plan.assignment().orElseThrow().spaceId()).isEqualTo("SAFE-3"); + assertThat(plan.assignment().orElseThrow().ladderRung()).isEqualTo(InboundLadderRung.CONTINUE); + } + + @Test + void rejectsDiscontinuousLaneAndOnlyRejectsAfterEveryLegalSlotIsExhausted() { + List spaces = lane("HOLE", 5, "MAIN", + occupied(1, "P1"), empty(2), occupied(3, "P1"), empty(4), empty(5)); + + InboundPlan plan = plan(request("P1"), spaces); + + assertThat(plan.rejection()).isPresent(); + assertThat(plan.rejection().orElseThrow().code()).isEqualTo(InboundRejectionCode.NO_FEASIBLE_LOCATION); + assertThat(plan.rejection().orElseThrow().reason()).contains("exhausted"); + assertThat(plan.rejection().orElseThrow().ladderTrace()).extracting(LadderTraceStep::rung) + .containsExactly(InboundLadderRung.CONTINUE, InboundLadderRung.OPEN_GRADED, + InboundLadderRung.OPEN_ADJACENT, InboundLadderRung.MIXED_GUEST, + InboundLadderRung.POOL_BORROW); + } + + @Test + void rejectsIncompleteLaneTopologyInsteadOfTreatingItAsContinuous() { + List partial = List.of( + space("PARTIAL", 5, "MAIN", 1, 6, "1", occupied(2, "P1")), + space("PARTIAL", 5, "MAIN", 1, 6, "1", empty(3))); + + InboundPlan plan = plan(request("P1"), partial); + + assertThat(plan.assignment()).isEmpty(); + assertThat(plan.rejection().orElseThrow().code()).isEqualTo(InboundRejectionCode.NO_FEASIBLE_LOCATION); + } + + @Test + void guestContinuesOnlyInTheOuterSegmentWhileResidentCannotBuryIt() { + List shared = lane("SHARED", 5, "MAIN", + occupied(1, "HOST"), occupied(2, "HOST"), occupied(3, "GUEST"), empty(4), empty(5)); + + InboundPlan guest = plan(request("GUEST"), shared); + InboundPlan resident = plan(request("HOST"), shared); + + assertThat(guest.assignment()).isPresent(); + assertThat(guest.assignment().orElseThrow().spaceId()).isEqualTo("SHARED-4"); + assertThat(guest.assignment().orElseThrow().borrowType()).isEqualTo(InboundBorrowType.MIXED_IN); + assertThat(resident.assignment()).isEmpty(); + } + + @Test + void gradedDepthUsesExpectationThenIncubationFallback() { + List spaces = new ArrayList<>(); + spaces.addAll(emptyLane("D2", 2, "MAIN")); + spaces.addAll(emptyLane("D3", 3, "MAIN")); + spaces.addAll(emptyLane("D5", 5, "MAIN")); + + assertThat(plan(request("P", 2), spaces).assignment().orElseThrow().laneCapacity()).isEqualTo(2); + assertThat(plan(request("P", 3), spaces).assignment().orElseThrow().laneCapacity()).isEqualTo(3); + assertThat(plan(request("P", 4), spaces).assignment().orElseThrow().laneCapacity()).isEqualTo(5); + + List onePallet = new ArrayList<>(spaces); + onePallet.add(single("OLD", "MAIN", SpaceStatus.OCCUPIED, "P", "M", "B", false)); + assertThat(plan(request("P"), onePallet).assignment().orElseThrow().laneCapacity()).isEqualTo(2); + + List twoPallets = new ArrayList<>(onePallet); + twoPallets.add(single("OLD2", "MAIN", SpaceStatus.OCCUPIED, "P", "M", "B", false)); + assertThat(plan(request("P"), twoPallets).assignment().orElseThrow().laneCapacity()).isEqualTo(5); + } + + @Test + void smallProjectPrefersSinglePoolBeforeAdjacentDepth() { + List spaces = new ArrayList<>(); + spaces.add(single("SINGLE", "FLEX", SpaceStatus.EMPTY, null, null, null, false)); + spaces.addAll(emptyLane("D3", 3, "MAIN")); + + InboundAssignment assignment = plan(request("SMALL", 2), spaces).assignment().orElseThrow(); + + assertThat(assignment.spaceId()).isEqualTo("SINGLE"); + assertThat(assignment.ladderRung()).isEqualTo(InboundLadderRung.POOL_BORROW); + } + + @Test + void adjacentDepthOrderIsDeterministicForEachTargetGrade() { + assertThat(plan(request("P2", 2), lanesOfDepths(3, 5)).assignment().orElseThrow().laneCapacity()).isEqualTo(3); + assertThat(plan(request("P3", 3), lanesOfDepths(2, 5)).assignment().orElseThrow().laneCapacity()).isEqualTo(5); + assertThat(plan(request("P5", 5), lanesOfDepths(2, 3)).assignment().orElseThrow().laneCapacity()).isEqualTo(3); + } + + @Test + void mixedGuestAllowsOnlyOneGuestRejectsIsolationBothWaysAndExcludesPendingResidents() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("PENDING", 5, "MAIN", occupied(1, "A"), occupied(2, "A"), occupied(3, "A"), occupied(4, "A"), empty(5))); + spaces.addAll(lane("OPEN", 5, "MAIN", occupied(1, "B"), occupied(2, "B"), occupied(3, "B"), occupied(4, "B"), empty(5))); + InboundContext context = context(spaces, policy(Set.of("ISO"), Set.of("COMMON"), List.of(), 0), + List.of(new PendingOutbound("A", null, null))); + + assertThat(planner.plan(request("C"), context).assignment().orElseThrow().laneCode()).isEqualTo("OPEN"); + + List withGuest = lane("TWO", 5, "MAIN", occupied(1, "A"), occupied(2, "G"), empty(3), empty(4), empty(5)); + assertThat(plan(request("THIRD"), withGuest).assignment()).isEmpty(); + assertThat(planner.plan(request("ISO"), context).assignment()).isEmpty(); + + List isolatedResident = lane("ISO-LANE", 5, "MAIN", + occupied(1, "ISO"), occupied(2, "ISO"), occupied(3, "ISO"), occupied(4, "ISO"), empty(5)); + assertThat(planner.plan(request("NORMAL"), context(isolatedResident, + policy(Set.of("ISO"), Set.of("COMMON"), List.of(), 0), List.of())).assignment()).isEmpty(); + } + + @Test + void mixedGuestRequiresBothProjectsToAllowMixing() { + List residentLane = lane("MIX-POLICY", 5, "MAIN", + occupied(1, "RESIDENT"), occupied(2, "RESIDENT"), occupied(3, "RESIDENT"), + occupied(4, "RESIDENT"), empty(5)); + InboundPolicy deniedIncoming = new InboundPolicy(SchedulingPolicy.ft546Defaults(), Set.of(), + Set.of("COMMON"), List.of(), 0, Set.of("INCOMING")); + InboundPolicy deniedResident = new InboundPolicy(SchedulingPolicy.ft546Defaults(), Set.of(), + Set.of("COMMON"), List.of(), 0, Set.of("RESIDENT")); + + assertThat(planner.plan(request("INCOMING"), context(residentLane, deniedIncoming, List.of())).assignment()) + .isEmpty(); + assertThat(planner.plan(request("INCOMING"), context(residentLane, deniedResident, List.of())).assignment()) + .isEmpty(); + assertThat(planner.plan(request("INCOMING"), context(residentLane, InboundPolicy.defaults(), List.of())) + .assignment()).isPresent(); + } + + @Test + void pendingOutboundBlocksOnlyExactTrayOrResolvedLaneAndUnresolvedScopeIsSafe() { + List lane = lane("PENDING-MATCH", 5, "MAIN", + occupied(1, "P"), empty(2), empty(3), empty(4), empty(5)); + InboundPolicy policy = InboundPolicy.defaults(); + + assertThat(planner.plan(request("P"), context(lane, policy, + List.of(new PendingOutbound("OTHER", "OTHER", "PENDING-MATCH-T1")))).assignment()).isEmpty(); + assertThat(planner.plan(request("P"), context(lane, policy, + List.of(new PendingOutbound("P", "M", null)))).assignment()).isPresent(); + assertThat(planner.plan(request("P"), context(lane, policy, + List.of(new PendingOutbound("P", null, null)))).assignment()).isPresent(); + assertThat(planner.plan(request("P"), context(lane, policy, + List.of(new PendingOutbound("OTHER", null, null, "PENDING-MATCH", "EXPLICIT")))) + .assignment()).isEmpty(); + assertThat(planner.plan(request("P"), context(lane, policy, + List.of(new PendingOutbound("OTHER", null, "NOT-THE-TRAY", "PENDING-MATCH", "EXPLICIT")))) + .assignment()).isEmpty(); + + assertThat(planner.plan(request("P"), context(lane, policy, + List.of(new PendingOutbound("P", "OTHER", null)))).assignment()).isPresent(); + assertThat(planner.plan(request("P"), context(lane, policy, + List.of(new PendingOutbound("P", "M", "NOT-THE-TRAY")))).assignment()).isPresent(); + } + + @Test + void continuationNeverSkipsAnUnavailablePhysicalNextDepth() { + List reservedLane = lane("RESERVED-NEXT", 5, "MAIN", + occupied(1, "P"), empty(2), empty(3), empty(4), empty(5)); + reservedLane.set(1, withReserved(reservedLane.get(1))); + List roleLane = lane("ROLE-NEXT", 5, "MAIN", + occupied(1, "P"), empty(2), empty(3), empty(4), empty(5)); + roleLane.set(1, withRole(roleLane.get(1), SpaceRole.RELOCATION_BUFFER)); + List disabledLane = lane("DISABLED-NEXT", 5, "MAIN", + occupied(1, "P"), empty(2), empty(3), empty(4), empty(5)); + disabledLane.set(1, withStatus(disabledLane.get(1), SpaceStatus.DISABLED)); + List spaces = new ArrayList<>(); + spaces.addAll(reservedLane); + spaces.addAll(roleLane); + spaces.addAll(disabledLane); + + assertThat(plan(request("P"), spaces).assignment()).isEmpty(); + } + + @Test + void poolWatermarkAndFlexCacheReserveTiersAreEnforced() { + List tiers = List.of( + single("FLEX", "FLEX", SpaceStatus.EMPTY, null, null, null, false), + single("CACHE", "CACHE", SpaceStatus.EMPTY, null, null, null, false), + single("RESERVE", "RESERVE", SpaceStatus.EMPTY, null, null, null, false)); + + assertThat(plan(request("P", 5), tiers).assignment().orElseThrow().spaceId()).isEqualTo("FLEX"); + List noFlex = tiers.stream().filter(space -> !space.spaceId().equals("FLEX")).toList(); + assertThat(plan(request("P", 5), noFlex).assignment().orElseThrow().borrowType()).isEqualTo(InboundBorrowType.CACHE_BORROWED); + + InboundContext belowHighWater = context(List.of(tiers.get(2)), policy(Set.of(), Set.of("COMMON"), List.of(), 0), List.of()); + assertThat(planner.plan(request("P", 5), belowHighWater).assignment()).isEmpty(); + InboundContext atHighWater = new InboundContext(List.of(tiers.get(2)), + policy(Set.of(), Set.of("COMMON"), List.of(), 0), List.of(), 597); + assertThat(planner.plan(request("P", 5), atHighWater).assignment().orElseThrow().borrowType()) + .isEqualTo(InboundBorrowType.RESERVE_BORROWED); + + InboundContext guarded = context(List.of(tiers.get(0)), policy(Set.of(), Set.of("COMMON"), List.of(), 1), List.of()); + assertThat(planner.plan(request("P", 5), guarded).rejection().orElseThrow().ladderTrace()) + .anySatisfy(step -> assertThat(step.reason()).contains("watermark")); + } + + @Test + void zeroPoolReserveWithoutSingleSlotsReportsAvailabilityInsteadOfWatermark() { + InboundPlan plan = planner.plan(request("P", 5), + context(List.of(), policy(Set.of(), Set.of("COMMON"), List.of(), 0), List.of())); + + assertThat(plan.rejection().orElseThrow().ladderTrace()) + .filteredOn(step -> step.rung() == InboundLadderRung.POOL_BORROW) + .singleElement() + .satisfies(step -> { + assertThat(step.reason()).contains("No legal"); + assertThat(step.reason()).doesNotContain("watermark"); + }); + } + + @Test + void commonPartsUseSingleTiersThenSameMaterialDoubleLane() { + List spaces = new ArrayList<>(); + spaces.add(single("CACHE", "CACHE", SpaceStatus.EMPTY, null, null, null, false)); + spaces.addAll(laneWithProduct("DOUBLE", 2, "MAIN", "COMMON", "M1", null, empty(2))); + InboundPolicy commonPolicy = policy(Set.of(), Set.of("COMMON"), List.of(), 0); + + assertThat(planner.plan(request("COMMON", "M1", "B", null, BatchLaneMode.OPEN), + context(spaces, commonPolicy, List.of())).assignment().orElseThrow().spaceId()).isEqualTo("CACHE"); + + List doublesOnly = spaces.stream().filter(space -> !space.spaceId().equals("CACHE")).toList(); + assertThat(planner.plan(request("COMMON", "M1", "B", null, BatchLaneMode.OPEN), + context(doublesOnly, commonPolicy, List.of())).assignment().orElseThrow().spaceId()).isEqualTo("DOUBLE-2"); + assertThat(planner.plan(request("COMMON", "OTHER", "B", null, BatchLaneMode.OPEN), + context(doublesOnly, commonPolicy, List.of())).assignment()).isEmpty(); + } + + @Test + void manualReservationsRestrictLaneOwnership() { + List lane = emptyLane("VIP", 5, "MAIN"); + List named = List.of(new ManualLaneReservation("VIP", "P-VIP")); + InboundPolicy namedPolicy = policy(Set.of(), Set.of("COMMON"), named, 0); + + assertThat(planner.plan(request("OTHER", 5), context(lane, namedPolicy, List.of())).assignment()).isEmpty(); + assertThat(planner.plan(request("P-VIP", 5), context(lane, namedPolicy, List.of())).assignment()).isPresent(); + + InboundPolicy isolatedOnly = policy(Set.of("ISO"), Set.of("COMMON"), + List.of(new ManualLaneReservation("VIP", null)), 0); + assertThat(planner.plan(request("ISO", 5), context(lane, isolatedOnly, List.of())).assignment()).isPresent(); + assertThat(planner.plan(request("OTHER", 5), context(lane, isolatedOnly, List.of())).assignment()).isEmpty(); + } + + @Test + void rejectsUnknownManualReservationLane() { + InboundPolicy policy = policy(Set.of(), Set.of("COMMON"), + List.of(new ManualLaneReservation("MISSING", "P")), 0); + + org.assertj.core.api.Assertions.assertThatThrownBy(() -> + planner.plan(request("P", 5), context(emptyLane("REAL", 5, "MAIN"), policy, List.of()))) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("MISSING"); + } + + @Test + void protectedReservedAndWrongFloorSlotsStayInvisibleAcrossTheLadder() { + SpaceState reserved = withReserved(single("RESERVED", "FLEX", SpaceStatus.EMPTY, + null, null, null, false)); + SpaceState relocation = withRole(single("RELOC", "FLEX", SpaceStatus.EMPTY, + null, null, null, false), SpaceRole.RELOCATION_BUFFER); + List spaces = new ArrayList<>(List.of(reserved, relocation)); + spaces.addAll(emptyLane("FLOOR-2", 5, "MAIN", 2, 6, "1")); + spaces.addAll(emptyLane("FLOOR-3", 5, "MAIN", 3, 6, "1")); + InboundRequest floorTwo = new InboundRequest("REQ", "TRAY", "P", "M", "B", + 5, 1, null, Set.of(2), BatchLaneMode.OPEN); + + assertThat(plan(floorTwo, spaces).assignment().orElseThrow().laneCode()).isEqualTo("FLOOR-2"); + } + + @Test + void sealedModeContinuesOnlyExactCohortOrOpensCompletelyEmptyLane() { + List spaces = new ArrayList<>(); + spaces.addAll(laneWithProduct("WRONG", 5, "MAIN", "P", "M", "OLD", empty(2), empty(3), empty(4), empty(5))); + spaces.addAll(laneWithProduct("EXACT", 5, "MAIN", "P", "M", "B1", empty(2), empty(3), empty(4), empty(5))); + + InboundAssignment exact = plan(request("P", "M", "B1", 5, BatchLaneMode.SEALED), spaces).assignment().orElseThrow(); + assertThat(exact.laneCode()).isEqualTo("EXACT"); + assertThat(exact.openedNewLane()).isFalse(); + + InboundPlan rejected = plan(request("P", "M", "B2", 5, BatchLaneMode.SEALED), + spaces.stream().filter(space -> space.laneCode().equals("WRONG")).toList()); + assertThat(rejected.rejection().orElseThrow().code()).isEqualTo(InboundRejectionCode.NO_BATCH_COMPATIBLE_LANE); + assertThat(rejected.rejection().orElseThrow().reason()).contains("same project, product and lot"); + assertThat(rejected.rejection().orElseThrow().ladderTrace()).isNotEmpty(); + } + + @Test + void commonSealedDoubleLaneIgnoresLotAndUsesNormalNoFeasibleRejection() { + List compatible = laneWithProduct("COMMON-DOUBLE", 2, "MAIN", + "COMMON", "M1", "OLD-LOT", empty(2)); + InboundRequest sealedNewLot = request("COMMON", "M1", "NEW-LOT", null, BatchLaneMode.SEALED); + + InboundPlan continued = plan(sealedNewLot, compatible); + + assertThat(continued.assignment()).isPresent(); + assertThat(continued.assignment().orElseThrow().ladderRung()) + .isEqualTo(InboundLadderRung.COMMON_LANE_CONTINUE); + + List incompatible = laneWithProduct("COMMON-OTHER", 2, "MAIN", + "COMMON", "OTHER", "OLD-LOT", empty(2)); + InboundPlan rejected = plan(sealedNewLot, incompatible); + assertThat(rejected.rejection().orElseThrow().code()) + .isEqualTo(InboundRejectionCode.NO_FEASIBLE_LOCATION); + } + + @Test + void scoringAndTieBreakMatchJavascriptFormula() { + List spaces = new ArrayList<>(); + spaces.addAll(emptyLane("B", 2, "MAIN", 1, 6, "1")); + spaces.addAll(emptyLane("A", 2, "MAIN", 1, 6, "1")); + + InboundAssignment assignment = plan(request("P", 2), spaces).assignment().orElseThrow(); + + assertThat(assignment.laneCode()).isEqualTo("A"); + assertThat(assignment.capacityScore()).isEqualTo(43.0); + assertThat(assignment.efficiencyScore()).isEqualTo(100.0); + assertThat(assignment.totalScore()).isEqualTo(68.7); + } + + private InboundPlan plan(InboundRequest request, List spaces) { + return planner.plan(request, context(spaces, InboundPolicy.defaults(), List.of())); + } + + private InboundRequest request(String project) { + return request(project, "M", "B", null, BatchLaneMode.OPEN); + } + + private InboundRequest request(String project, Integer expected) { + return request(project, "M", "B", expected, BatchLaneMode.OPEN); + } + + private InboundRequest request(String project, String product, String lot, Integer expected, BatchLaneMode mode) { + return new InboundRequest("REQ", "TRAY", project, product, lot, expected, 1, null, Set.of(), mode); + } + + private InboundContext context(List spaces, InboundPolicy policy, List pending) { + return new InboundContext(spaces, policy, pending, (int) spaces.stream().filter(SpaceState::occupied).count()); + } + + private InboundPolicy policy(Set isolated, Set common, + List reservations, int reserve) { + return new InboundPolicy(SchedulingPolicy.ft546Defaults(), isolated, common, reservations, reserve); + } + + private List lanesOfDepths(int... depths) { + List spaces = new ArrayList<>(); + for (int depth : depths) spaces.addAll(emptyLane("D" + depth, depth, "MAIN")); + return spaces; + } + + private List emptyLane(String code, int depth, String zone) { + return emptyLane(code, depth, zone, 1, 6, "1"); + } + + private List emptyLane(String code, int depth, String zone, int floor, int aisle, String row) { + List spaces = new ArrayList<>(); + for (int i = 1; i <= depth; i++) { + spaces.add(space(code, depth, zone, floor, aisle, row, empty(i))); + } + return spaces; + } + + private List lane(String code, int depth, String zone, Slot... slots) { + List spaces = new ArrayList<>(); + for (Slot slot : slots) spaces.add(space(code, depth, zone, 1, 6, "1", slot)); + return spaces; + } + + private List laneWithProduct(String code, int depth, String zone, String project, + String product, String lot, Slot... remainder) { + List slots = new ArrayList<>(); + slots.add(new Slot(1, SpaceStatus.OCCUPIED, project, product, lot, false)); + slots.addAll(List.of(remainder)); + return lane(code, depth, zone, slots.toArray(Slot[]::new)); + } + + private SpaceState single(String id, String zone, SpaceStatus status, String project, + String product, String lot, boolean outbound) { + return new SpaceState(id, zone, id, 1, 1, 1, 6, 1, "1", SpaceRole.STORAGE, + status, outbound, false, status == SpaceStatus.OCCUPIED ? "T-" + id : null, + project, product, lot, Instant.parse("2026-07-01T00:00:00Z"), null, false, null); + } + + private SpaceState withReserved(SpaceState source) { + return new SpaceState(source.spaceId(), source.zoneCode(), source.laneCode(), source.depthOrder(), + source.laneCapacity(), source.floorNo(), source.aisleNo(), source.groupCoding(), source.rowCode(), + source.role(), source.status(), source.outboundTaskActive(), source.inventoryProjectConflict(), + source.trayNo(), source.projectNo(), source.productId(), source.lotNo(), source.inboundAt(), + source.outboundAt(), true, source.rowVersion()); + } + + private SpaceState withRole(SpaceState source, SpaceRole role) { + return new SpaceState(source.spaceId(), source.zoneCode(), source.laneCode(), source.depthOrder(), + source.laneCapacity(), source.floorNo(), source.aisleNo(), source.groupCoding(), source.rowCode(), + role, source.status(), source.outboundTaskActive(), source.inventoryProjectConflict(), + source.trayNo(), source.projectNo(), source.productId(), source.lotNo(), source.inboundAt(), + source.outboundAt(), source.reserved(), source.rowVersion()); + } + + private SpaceState withStatus(SpaceState source, SpaceStatus status) { + return new SpaceState(source.spaceId(), source.zoneCode(), source.laneCode(), source.depthOrder(), + source.laneCapacity(), source.floorNo(), source.aisleNo(), source.groupCoding(), source.rowCode(), + source.role(), status, source.outboundTaskActive(), source.inventoryProjectConflict(), + null, source.projectNo(), source.productId(), source.lotNo(), source.inboundAt(), + source.outboundAt(), source.reserved(), source.rowVersion()); + } + + private SpaceState space(String lane, int depth, String zone, int floor, int aisle, String row, Slot slot) { + return new SpaceState(lane + "-" + slot.depth, zone, lane, slot.depth, depth, floor, aisle, + slot.depth, row, SpaceRole.STORAGE, slot.status, slot.outbound, false, + slot.status == SpaceStatus.OCCUPIED ? lane + "-T" + slot.depth : null, + slot.project, slot.product, slot.lot, Instant.parse("2026-07-01T00:00:00Z"), + null, false, null); + } + + private Slot occupied(int depth, String project) { + return new Slot(depth, SpaceStatus.OCCUPIED, project, "M", "B", false); + } + + private Slot empty(int depth) { + return new Slot(depth, SpaceStatus.EMPTY, null, null, null, false); + } + + private Slot outboundEmpty(int depth) { + return new Slot(depth, SpaceStatus.EMPTY, null, null, null, true); + } + + private record Slot(int depth, SpaceStatus status, String project, String product, String lot, + boolean outbound) { + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/integration/AlgorithmConfigurationTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/integration/AlgorithmConfigurationTest.java new file mode 100644 index 0000000..7b09366 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/integration/AlgorithmConfigurationTest.java @@ -0,0 +1,55 @@ +package com.ruoyi.algorithm.integration; + +import com.ruoyi.algorithm.repository.JdbcWarehouseRepository; +import org.junit.jupiter.api.Test; +import org.springframework.jdbc.datasource.DataSourceTransactionManager; +import org.springframework.transaction.support.TransactionTemplate; + +import javax.sql.DataSource; +import java.lang.reflect.Field; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.Mockito.mock; + +class AlgorithmConfigurationTest { + + @Test + void repositoryUsesTheWmsTransactionManagerBoundToItsDataSource() throws Exception { + DataSource dataSource = mock(DataSource.class); + DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(dataSource); + + Object repository = new AlgorithmConfiguration().algorithmWarehouseRepository( + dataSource, new AlgorithmProperties(), transactionManager); + + Field field = JdbcWarehouseRepository.class.getDeclaredField("transactions"); + field.setAccessible(true); + TransactionTemplate transactions = (TransactionTemplate) field.get(repository); + assertThat(transactions.getTransactionManager()).isSameAs(transactionManager); + } + + @Test + void repositoryRejectsATransactionManagerBoundToAnotherDataSource() { + DataSource algorithmDataSource = mock(DataSource.class); + DataSource otherDataSource = mock(DataSource.class); + DataSourceTransactionManager transactionManager = new DataSourceTransactionManager(otherDataSource); + + assertThatThrownBy(() -> new AlgorithmConfiguration().algorithmWarehouseRepository( + algorithmDataSource, new AlgorithmProperties(), transactionManager)) + .isInstanceOf(IllegalStateException.class) + .hasMessageContaining("same DataSource"); + } + + @Test + void tidyRuntimeDefaultsAreConservativeAndReplayIsDisabled() { + AlgorithmProperties properties = new AlgorithmProperties(); + + assertThat(properties.getTidyAutoScanMs()).isEqualTo(600_000L); + assertThat(properties.getTidyReconcileMs()).isEqualTo(5_000L); + assertThat(properties.getTidyClaimLeaseSeconds()).isEqualTo(60); + assertThat(properties.getTidyManualMaxConcurrency()).isEqualTo(3); + assertThat(properties.getTidyWcsSnapshotUrl()).contains("tidyVehicleSnapshot"); + assertThat(properties.getReplayRunId()).isBlank(); + assertThat(properties.getReplayDatabase()).isBlank(); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/integration/SchedulingRoutingPolicyTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/integration/SchedulingRoutingPolicyTest.java new file mode 100644 index 0000000..508d903 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/integration/SchedulingRoutingPolicyTest.java @@ -0,0 +1,46 @@ +package com.ruoyi.algorithm.integration; + +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class SchedulingRoutingPolicyTest { + + @Test + void legacySkipsAlgorithmAndUsesStoredProcedure() { + SchedulingRoutingPolicy policy = new SchedulingRoutingPolicy(SchedulingMode.LEGACY, false); + + assertThat(policy.runAlgorithm()).isFalse(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.READY)).isTrue(); + assertThat(policy.algorithmOwnsDecision()).isFalse(); + } + + @Test + void shadowCalculatesAlgorithmButKeepsLegacyBusinessWrites() { + SchedulingRoutingPolicy policy = new SchedulingRoutingPolicy(SchedulingMode.SHADOW, false); + + assertThat(policy.runAlgorithm()).isTrue(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.READY)).isTrue(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.WAITING)).isTrue(); + assertThat(policy.algorithmOwnsDecision()).isFalse(); + } + + @Test + void activeNeverFallsBackForWaitingOrBusinessRejection() { + SchedulingRoutingPolicy policy = new SchedulingRoutingPolicy(SchedulingMode.ACTIVE, true); + + assertThat(policy.runAlgorithm()).isTrue(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.READY)).isFalse(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.WAITING)).isFalse(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.REJECTED)).isFalse(); + assertThat(policy.algorithmOwnsDecision()).isTrue(); + } + + @Test + void activeTechnicalFallbackRequiresExplicitOptIn() { + assertThat(new SchedulingRoutingPolicy(SchedulingMode.ACTIVE, false) + .runLegacy(SchedulingDecisionStatus.TECHNICAL_ERROR)).isFalse(); + assertThat(new SchedulingRoutingPolicy(SchedulingMode.ACTIVE, true) + .runLegacy(SchedulingDecisionStatus.TECHNICAL_ERROR)).isTrue(); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/outbound/OutboundPlannerTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/outbound/OutboundPlannerTest.java new file mode 100644 index 0000000..44f38da --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/outbound/OutboundPlannerTest.java @@ -0,0 +1,266 @@ +package com.ruoyi.algorithm.outbound; + +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import org.junit.jupiter.api.Test; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; + +class OutboundPlannerTest { + + private final OutboundPlanner planner = new OutboundPlanner(); + + @Test + void projectIsRequiredWithoutTrayProductIsOptionalAndWholeTrayDefaultsTrue() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("M1", 1, 1, stock(1, "T-M1", "P", "M1", "2026-07-01T00:00:00Z"))); + spaces.addAll(lane("M2", 1, 1, stock(1, "T-M2", "P", "M2", "2026-07-02T00:00:00Z"))); + + OutboundPlan anyProduct = plan(request(null, "P", null, "OFF", null, null), spaces); + OutboundPlan filtered = plan(request(null, "P", "M2", "OFF", null, null), spaces); + OutboundPlan missingProject = plan(request(null, null, "M1", "OFF", null, null), spaces); + + assertThat(anyProduct.assignment().orElseThrow().trayNo()).isEqualTo("T-M1"); + assertThat(anyProduct.assignment().orElseThrow().wholeTray()).isTrue(); + assertThat(filtered.assignment().orElseThrow().trayNo()).isEqualTo("T-M2"); + assertThat(missingProject.error().orElseThrow().code()).isEqualTo(OutboundErrorCode.OUTBOUND_SCOPE_REQUIRED); + } + + @Test + void specifiedTrayIsNeverReplacedAndReportsItsRealFifoRankAndWarning() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("OLD", 1, 1, stock(1, "T-OLD", "P", "M", "2026-07-01T00:00:00Z"))); + spaces.addAll(lane("NEW", 1, 1, stock(1, "T-NEW", "P", "M", "2026-07-02T00:00:00Z"))); + + OutboundPlan result = plan(request("T-NEW", null, null, "STRICT", 0, true), spaces); + + assertThat(result.assignment().orElseThrow().trayNo()).isEqualTo("T-NEW"); + assertThat(result.assignment().orElseThrow().fifo().fifoRank()).isEqualTo(2); + assertThat(result.assignment().orElseThrow().fifo().fifoViolation()).isTrue(); + assertThat(result.assignment().orElseThrow().fifo().warning().orElseThrow().code()) + .isEqualTo("FIFO_OVERRIDDEN_BY_TRAY"); + } + + @Test + void fifoOffUsesActualBlockersThenCapacityModeLaneReleaseFloorAndSpaceId() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 5, 1, + stock(1, "T-DEEP", "P", "M", "2026-07-01T00:00:00Z"), + stock(2, "BLOCK", "X", "X", "2026-07-01T00:00:00Z"), empty(3), empty(4), empty(5))); + spaces.addAll(lane("A-SOLE", 1, 3, stock(1, "T-SOLE", "P", "M", "2026-07-03T00:00:00Z"))); + spaces.addAll(lane("B-NOT-SOLE", 2, 1, + stock(1, "OTHER", "X", "X", "2026-07-02T00:00:00Z"), + stock(2, "T-NEAR", "P", "M", "2026-07-02T00:00:00Z"))); + + OutboundPlan balanced = planner.plan(request(null, "P", "M", "OFF", null, true), + context(spaces, OutboundCapacityMode.BALANCED, Map.of())); + OutboundPlan warning = planner.plan(request(null, "P", "M", "OFF", null, true), + context(spaces, OutboundCapacityMode.WARNING, Map.of())); + + assertThat(balanced.assignment().orElseThrow().trayNo()).isEqualTo("T-NEAR"); + assertThat(warning.assignment().orElseThrow().trayNo()).isEqualTo("T-SOLE"); + assertThat(warning.assignment().orElseThrow().blockerSpaceIds()).isEmpty(); + assertThat(warning.assignment().orElseThrow().laneReleasing()).isTrue(); + } + + @Test + void strictFifoChoosesTheGlobalOldestEvenWhenItIsDeep() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 2, 2, + stock(1, "T-OLD", "P", "M", "2026-07-01T00:00:00Z"), + stock(2, "BLOCK", "X", "X", "2026-07-01T01:00:00Z"))); + spaces.addAll(lane("DIRECT", 1, 1, + stock(1, "T-NEW", "P", "M", "2026-07-03T00:00:00Z"))); + spaces.addAll(buffers(2, 1)); + + OutboundAssignment assignment = plan(request(null, "P", "M", "STRICT", 0, true), spaces) + .assignment().orElseThrow(); + + assertThat(assignment.trayNo()).isEqualTo("T-OLD"); + assertThat(assignment.blockerSpaceIds()).containsExactly("DEEP-2"); + assertThat(assignment.fifo().fifoRank()).isEqualTo(1); + } + + @Test + void flexibleFifoOptimizesOnlyInsideTheOldestToleranceWindow() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("OLD", 2, 1, + stock(1, "T-OLD", "P", "M", "2026-07-01T00:00:00Z"), + stock(2, "BLOCK", "X", "X", "2026-07-01T01:00:00Z"))); + spaces.addAll(lane("WINDOW", 1, 2, + stock(1, "T-WINDOW", "P", "M", "2026-07-01T00:30:00Z"))); + spaces.addAll(lane("LATE", 1, 1, + stock(1, "T-LATE", "P", "M", "2026-07-02T00:00:00Z"))); + spaces.addAll(buffers(1, 1)); + + OutboundAssignment assignment = plan(request(null, "P", "M", "FLEXIBLE", 60, true), spaces) + .assignment().orElseThrow(); + + assertThat(assignment.trayNo()).isEqualTo("T-WINDOW"); + assertThat(assignment.fifo().fifoDeviationMinutes()).isEqualTo(30); + } + + @Test + void missingAndInvalidFifoTimesReturnStructuredErrors() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("VALID", 1, 1, stock(1, "T-VALID", "P", "M", "2026-07-01T00:00:00Z"))); + spaces.addAll(lane("BAD", 1, 1, stock(1, "T-BAD", "P", "M", null))); + + OutboundPlan missing = planner.plan(request(null, "P", "M", "STRICT", 0, true), + context(spaces, OutboundCapacityMode.BALANCED, Map.of())); + OutboundPlan invalid = planner.plan(request(null, "P", "M", "STRICT", 0, true), + context(spaces, OutboundCapacityMode.BALANCED, Map.of("BAD-1", "not-a-time"))); + + assertThat(missing.error().orElseThrow().code()).isEqualTo(OutboundErrorCode.FIFO_DATA_MISSING); + assertThat(missing.error().orElseThrow().details()).containsEntry("spaceIds", List.of("BAD-1")); + assertThat(invalid.error().orElseThrow().code()).isEqualTo(OutboundErrorCode.FIFO_INVALID_TIME); + assertThat(invalid.error().orElseThrow().details()).containsEntry("spaceId", "BAD-1"); + } + + @Test + void insufficientSameFloorRelocationBuffersAlwaysWaitAndCountNoCompletedTasks() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 3, 4, + stock(1, "TARGET", "P", "M", "2026-07-01T00:00:00Z"), + stock(2, "B2", "X", "X", "2026-07-01T00:00:00Z"), + stock(3, "B3", "X", "X", "2026-07-01T00:00:00Z"))); + spaces.addAll(buffers(4, 1)); + + OutboundPlan plan = plan(request("TARGET", null, null, "OFF", null, true), spaces); + + assertThat(plan.status()).isEqualTo(OutboundPlanStatus.WAITING); + assertThat(plan.waiting().orElseThrow().code()).isEqualTo(OutboundWaitingCode.WAITING_RELOCATION_BUFFER); + assertThat(plan.waiting().orElseThrow().required()).isEqualTo(2); + assertThat(plan.waiting().orElseThrow().available()).isEqualTo(1); + assertThat(plan.waiting().orElseThrow().reason()).contains("same-floor relocation buffer"); + assertThat(plan.waiting().orElseThrow().retryable()).isTrue(); + assertThat(plan.taskCountEstimate()).isEqualTo(TaskCountEstimate.zero()); + assertThat(plan.error()).isEmpty(); + } + + @Test + void anActiveSameFloorDeepWorkflowSerializesTheNextOneEvenWhenBuffersRemain() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 2, 4, + stock(1, "TARGET", "P", "M", "2026-07-01T00:00:00Z"), + stock(2, "BLOCK", "X", "X", "2026-07-01T00:00:00Z"))); + spaces.addAll(buffers(4, 4)); + + OutboundPlan plan = planner.plan(request("TARGET", null, null, "OFF", null, true), + new OutboundContext(spaces, rawTimes(spaces), OutboundCapacityMode.BALANCED, Set.of(4))); + + assertThat(plan.status()).isEqualTo(OutboundPlanStatus.WAITING); + assertThat(plan.waiting().orElseThrow().code()).isEqualTo(OutboundWaitingCode.WAITING_RELOCATION_BUFFER); + assertThat(plan.waiting().orElseThrow().reason()).contains("active same-floor deep workflow"); + assertThat(plan.waiting().orElseThrow().required()).isEqualTo(1); + assertThat(plan.waiting().orElseThrow().available()).isEqualTo(4); + assertThat(plan.taskCountEstimate()).isEqualTo(TaskCountEstimate.zero()); + } + + @Test + void deepOutboundBuildsSequentialMoveOutOutboundRestoreWorkflowAndWholeWorkflowLocks() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 3, 2, + stock(1, "TARGET", "P", "M", "2026-07-01T00:00:00Z"), + stock(2, "B2", "X", "X", "2026-07-01T00:00:00Z"), + stock(3, "B3", "X", "X", "2026-07-01T00:00:00Z"))); + spaces.addAll(buffers(2, 2)); + + OutboundPlan plan = plan(request("TARGET", null, null, "OFF", null, true), spaces); + OutboundWorkflow workflow = plan.assignment().orElseThrow().workflow().orElseThrow(); + + assertThat(plan.status()).isEqualTo(OutboundPlanStatus.READY); + assertThat(plan.assignment().orElseThrow().blockerSpaceIds()).containsExactly("DEEP-3", "DEEP-2"); + assertThat(workflow.steps()).extracting(OutboundWorkflowStep::phase) + .containsExactly(OutboundWorkflowPhase.MOVE_OUT, OutboundWorkflowPhase.MOVE_OUT, + OutboundWorkflowPhase.OUTBOUND, OutboundWorkflowPhase.RESTORE, + OutboundWorkflowPhase.RESTORE); + assertThat(workflow.steps()).extracting(OutboundWorkflowStep::dependsOnAssignmentId) + .containsExactly(null, "REQ-MOVE-OUT-01", "REQ-MOVE-OUT-02", "REQ-OUTBOUND-01", "REQ-RESTORE-01"); + assertThat(workflow.steps().get(0).sourceSpaceId()).isEqualTo("DEEP-3"); + assertThat(workflow.steps().get(3).targetSpaceId()).isEqualTo("DEEP-1"); + assertThat(workflow.steps().get(4).targetSpaceId()).isEqualTo("DEEP-2"); + assertThat(workflow.lockedLaneSpaceIds()).containsExactly("DEEP-1", "DEEP-2", "DEEP-3"); + assertThat(workflow.lockedBufferSpaceIds()).containsExactly("BUFFER-2-1", "BUFFER-2-2"); + assertThat(workflow.lockReleaseRule()).isEqualTo("RELEASE_AFTER_FINAL_RESTORE"); + assertThat(plan.taskCountEstimate()).isEqualTo(new TaskCountEstimate(0, 1, 4, 1)); + } + + @Test + void stockNotFoundIsDifferentFromFifoErrorsAndWaiting() { + OutboundPlan plan = plan(request("MISSING", null, null, "STRICT", 0, true), List.of()); + + assertThat(plan.status()).isEqualTo(OutboundPlanStatus.ERROR); + assertThat(plan.error().orElseThrow().code()).isEqualTo(OutboundErrorCode.STOCK_NOT_FOUND); + assertThat(plan.waiting()).isEmpty(); + } + + private OutboundPlan plan(OutboundRequest request, List spaces) { + return planner.plan(request, context(spaces, OutboundCapacityMode.BALANCED, Map.of())); + } + + private OutboundContext context(List spaces, OutboundCapacityMode mode, + Map rawTimeOverrides) { + Map raw = rawTimes(spaces); + raw.putAll(rawTimeOverrides); + return new OutboundContext(spaces, raw, mode); + } + + private Map rawTimes(List spaces) { + Map raw = new HashMap<>(); + for (SpaceState space : spaces) { + if (space.inboundAt() != null) raw.put(space.spaceId(), space.inboundAt().toString()); + } + return raw; + } + + private OutboundRequest request(String tray, String project, String product, String fifoMode, + Integer tolerance, Boolean wholeTray) { + return new OutboundRequest("REQ", tray, project, product, fifoMode, tolerance, 1, wholeTray); + } + + private List buffers(int floor, int count) { + List buffers = new ArrayList<>(); + for (int i = 1; i <= count; i++) { + buffers.add(space("BUFFER-" + floor, 1, floor, i, SpaceRole.RELOCATION_BUFFER, + SpaceStatus.EMPTY, null, null, null, null)); + } + return buffers; + } + + private List lane(String code, int capacity, int floor, Slot... slots) { + List spaces = new ArrayList<>(); + for (Slot slot : slots) { + spaces.add(space(code, capacity, floor, slot.depth(), SpaceRole.STORAGE, slot.status(), + slot.tray(), slot.project(), slot.product(), slot.inboundTime())); + } + return spaces; + } + + private SpaceState space(String lane, int capacity, int floor, int depth, SpaceRole role, + SpaceStatus status, String tray, String project, String product, String inboundTime) { + return new SpaceState(lane + "-" + depth, "MAIN", lane, depth, capacity, floor, 6, depth, + "1", role, status, false, false, tray, project, product, "LOT", + inboundTime == null ? null : Instant.parse(inboundTime), null, false, "rv"); + } + + private Slot stock(int depth, String tray, String project, String product, String inboundTime) { + return new Slot(depth, SpaceStatus.OCCUPIED, tray, project, product, inboundTime); + } + + private Slot empty(int depth) { + return new Slot(depth, SpaceStatus.EMPTY, null, null, null, null); + } + + private record Slot(int depth, SpaceStatus status, String tray, String project, String product, + String inboundTime) { + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositorySqlServerTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositorySqlServerTest.java new file mode 100644 index 0000000..ae761e5 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositorySqlServerTest.java @@ -0,0 +1,32 @@ +package com.ruoyi.algorithm.repository; + +import org.junit.jupiter.api.Test; + +import javax.sql.DataSource; +import java.sql.Connection; +import java.sql.PreparedStatement; + +import static org.mockito.ArgumentMatchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +class JdbcWarehouseRepositorySqlServerTest { + @Test + void incrementalRefreshCallsOnlyDirtyLaneProcedure() throws Exception { + DataSource dataSource = mock(DataSource.class); + Connection connection = mock(Connection.class); + PreparedStatement statement = mock(PreparedStatement.class); + when(dataSource.getConnection()).thenReturn(connection); + when(connection.prepareStatement(anyString())).thenReturn(statement); + when(statement.executeUpdate()).thenReturn(0); + JdbcWarehouseRepository repository = new JdbcWarehouseRepository( + dataSource, RepositoryDialect.sqlServer()); + + repository.refreshChangedLanes("W1"); + + verify(connection).prepareStatement("EXEC alg.usp_refresh_dirty_lanes @warehouse_id=?"); + verify(statement).setString(1, "W1"); + verify(statement).executeUpdate(); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositoryTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositoryTest.java new file mode 100644 index 0000000..91a8572 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositoryTest.java @@ -0,0 +1,594 @@ +package com.ruoyi.algorithm.repository; + +import com.ruoyi.algorithm.inbound.InboundPolicy; +import com.ruoyi.algorithm.inbound.InboundPlanner; +import com.ruoyi.algorithm.inbound.InboundRequest; +import com.ruoyi.algorithm.inbound.BatchLaneMode; +import com.ruoyi.algorithm.outbound.OutboundPlan; +import com.ruoyi.algorithm.outbound.OutboundPlanStatus; +import com.ruoyi.algorithm.outbound.OutboundPlanner; +import com.ruoyi.algorithm.outbound.OutboundRequest; +import com.ruoyi.algorithm.outbound.OutboundWaitingCode; +import com.ruoyi.algorithm.tidy.TidyPlanner; +import com.ruoyi.algorithm.service.WarehouseApplicationService; +import org.h2.tools.RunScript; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.springframework.jdbc.datasource.DriverManagerDataSource; + +import javax.sql.DataSource; +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.sql.Connection; +import java.sql.Statement; +import java.sql.Types; +import java.sql.Timestamp; +import java.util.List; +import java.util.Set; +import java.util.UUID; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatThrownBy; + +class JdbcWarehouseRepositoryTest { + private DataSource dataSource; + private JdbcWarehouseRepository repository; + + @BeforeEach + void setUp() throws Exception { + dataSource = new DriverManagerDataSource( + "jdbc:h2:mem:repo_" + UUID.randomUUID() + ";MODE=MSSQLServer;DB_CLOSE_DELAY=-1", "sa", ""); + try (Connection connection = dataSource.getConnection()) { + RunScript.execute(connection, new InputStreamReader( + getClass().getClassLoader().getResourceAsStream("db/h2/schema.sql"), StandardCharsets.UTF_8)); + RunScript.execute(connection, new InputStreamReader( + getClass().getClassLoader().getResourceAsStream("db/h2/data.sql"), StandardCharsets.UTF_8)); + } + repository = new JdbcWarehouseRepository(dataSource, RepositoryDialect.h2()); + } + + @Test + void pagesCandidateLanesByStableKeyWithoutDuplicatesOrSkippedCodes() throws Exception { + execute("INSERT INTO ALG_LANE_STATE VALUES ('W1','A-LANE',1,0,1,FALSE,FALSE,'',11,CURRENT_TIMESTAMP)"); + execute("INSERT INTO ALG_LANE_STATE VALUES ('W1','B-LANE',1,0,1,FALSE,FALSE,'',12,CURRENT_TIMESTAMP)"); + execute("INSERT INTO ALG_LANE_STATE VALUES ('W1','C-LANE',1,0,1,FALSE,FALSE,'',13,CURRENT_TIMESTAMP)"); + execute("INSERT INTO ALG_LANE_STATE VALUES ('W1','SKIP-PENDING',1,0,1,TRUE,FALSE,'',14,CURRENT_TIMESTAMP)"); + execute("INSERT INTO ALG_LANE_STATE VALUES ('W1','SKIP-GAP',1,0,1,FALSE,TRUE,'',15,CURRENT_TIMESTAMP)"); + + LanePage first = repository.pageCandidateLanes("W1", null, 2); + LanePage second = repository.pageCandidateLanes("W1", first.nextLaneCode(), 2); + + assertThat(first.lanes()).extracting(LaneCandidate::laneCode).containsExactly("A-LANE", "B-LANE"); + assertThat(second.lanes()).extracting(LaneCandidate::laneCode).containsExactly("C-LANE", "DENSE-1"); + assertThat(first.lanes()).allMatch(lane -> lane.version().kind() == VersionToken.Kind.NUMERIC); + } + + @Test + void mapsCompleteDiagnosticSnapshotsWithoutDuplicatingSpaces() throws Exception { + execute("INSERT INTO BAS_STOCK VALUES ('S-OUT-2','OUT-INNER','TRAY-OUT','P-OUT','SKU-OUT','LOT-OUT','2026-01-01 09:00:00',5,0)"); + + List lanes = repository.loadLaneSnapshots("W1", + List.of("OUT-1", "CONFLICT-1", "BUFFER-1", "GAP-1")); + + assertThat(lanes).flatExtracting(LaneSnapshot::spaces).extracting(SpaceSnapshot::spaceId) + .containsExactly("BUFFER-1", "CONFLICT-1", "GAP-INNER", "GAP-OUTER", "OUT-INNER", "OUT-OUTER"); + SpaceSnapshot outbound = space(lanes, "OUT-INNER"); + assertThat(outbound.inventory()).hasSize(2); + assertThat(outbound.state().trayNo()).isEqualTo("TRAY-OUT"); + assertThat(outbound.state().outboundTaskActive()).isTrue(); + assertThat(space(lanes, "BUFFER-1").state().role()).isEqualTo(com.ruoyi.algorithm.model.SpaceRole.RELOCATION_BUFFER); + assertThat(space(lanes, "CONFLICT-1").conflicts()).contains(SpaceConflict.TRAY, SpaceConflict.PROJECT); + assertThat(space(lanes, "CONFLICT-1").state().status()).isEqualTo(com.ruoyi.algorithm.model.SpaceStatus.DISABLED); + assertThat(space(lanes, "GAP-INNER").state().status()).isEqualTo(com.ruoyi.algorithm.model.SpaceStatus.DISABLED); + assertThat(space(lanes, "BUFFER-1").state().aisleNo()).isEqualTo(1); + assertThat(space(lanes, "BUFFER-1").state().rowCode()).isEqualTo("3"); + assertThat(space(lanes, "BUFFER-1").state().zoneCode()).isEqualTo("CACHE"); + assertThat(space(lanes, "OUT-INNER").state().zoneCode()).isEqualTo("FLEX"); + } + + @Test + void statusFourPhysicalOuterPalletIsPreservedAndMakesDeepOutboundWait() throws Exception { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('ALLOC-TARGET','W1','RA','A','Target',7,21,2,'2',''," + + "'TRAY-TARGET','ALLOC-LANE','1')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('ALLOC-OUTER','W1','RA','A','Allocated outer',7,22,2,'4',''," + + "'TRAY-ALLOC','ALLOC-LANE','2')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('ALLOC-BUFFER','W1','RB','E','Floor 2 buffer',8,23,2,'1',''," + + "NULL,'ALLOC-BUFFER','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-ALLOC-TARGET','ALLOC-TARGET','TRAY-TARGET','P-TARGET','SKU','LOT'," + + "'2026-01-01 08:00:00',1,0)"); + execute("INSERT INTO BAS_STOCK VALUES ('S-ALLOC-OUTER','ALLOC-OUTER','TRAY-ALLOC','P-BLOCK','SKU','LOT'," + + "'2026-01-01 09:00:00',1,0)"); + execute("INSERT INTO ALG_SPACE_ROLE (SPACE_ID,ROLE) VALUES ('ALLOC-BUFFER','RELOCATION_BUFFER')"); + rebuildTopology("W1"); + + SpaceSnapshot allocated = space(repository.loadLaneSnapshots("W1", List.of("ALLOC-LANE")), "ALLOC-OUTER"); + OutboundPlan result = new WarehouseApplicationService(repository, new InboundPlanner(), + new OutboundPlanner(), new TidyPlanner(), 100).planOutbound("W1", + new OutboundRequest("ALLOC-REQ", "TRAY-TARGET", null, null, "OFF", 0, 1, true)); + + assertThat(allocated.state().occupied()).isTrue(); + assertThat(allocated.state().trayNo()).isEqualTo("TRAY-ALLOC"); + assertThat(allocated.state().projectNo()).isEqualTo("P-BLOCK"); + assertThat(result.status()).isEqualTo(OutboundPlanStatus.WAITING); + assertThat(result.waiting().orElseThrow().code()).isEqualTo(OutboundWaitingCode.WAITING_CHANNEL); + assertThat(result.waiting().orElseThrow().retryable()).isTrue(); + assertThat(result.waiting().orElseThrow().details()) + .containsEntry("blockingSpaceIds", List.of("ALLOC-OUTER")) + .containsEntry("blockingTrayNos", List.of("TRAY-ALLOC")); + } + + @Test + void statusFourStockWithoutAnyTrayCodeStillBlocksDeepOutbound() throws Exception { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('NO-TRAY-TARGET','W1','RA','A','Target',7,27,2,'2',''," + + "'TRAY-NO-TRAY-TARGET','NO-TRAY-LANE','1')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('NO-TRAY-OUTER','W1','RA','A','Allocated outer',7,28,2,'4',''," + + "NULL,'NO-TRAY-LANE','2')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('NO-TRAY-BUFFER','W1','RB','E','Floor 2 buffer',8,29,2,'1',''," + + "NULL,'NO-TRAY-BUFFER','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-NO-TRAY-TARGET','NO-TRAY-TARGET','TRAY-NO-TRAY-TARGET'," + + "'P-TARGET','SKU','LOT','2026-01-01 08:00:00',1,0)"); + execute("INSERT INTO BAS_STOCK VALUES ('S-NO-TRAY-OUTER','NO-TRAY-OUTER',NULL," + + "'P-BLOCK','SKU','LOT','2026-01-01 09:00:00',1,0)"); + execute("INSERT INTO ALG_SPACE_ROLE (SPACE_ID,ROLE) VALUES ('NO-TRAY-BUFFER','RELOCATION_BUFFER')"); + rebuildTopology("W1"); + + SpaceSnapshot outer = space(repository.loadLaneSnapshots("W1", List.of("NO-TRAY-LANE")), + "NO-TRAY-OUTER"); + OutboundPlan result = new WarehouseApplicationService(repository, new InboundPlanner(), + new OutboundPlanner(), new TidyPlanner(), 100).planOutbound("W1", + new OutboundRequest("NO-TRAY-REQ", "TRAY-NO-TRAY-TARGET", null, null, + "OFF", 0, 1, true)); + + assertThat(outer.state().trayNo()).isNull(); + assertThat(outer.state().occupied()).isTrue(); + assertThat(result.status()).isEqualTo(OutboundPlanStatus.WAITING); + assertThat(result.waiting().orElseThrow().code()).isEqualTo(OutboundWaitingCode.WAITING_CHANNEL); + assertThat(result.waiting().orElseThrow().details()) + .containsEntry("blockingSpaceIds", List.of("NO-TRAY-OUTER")); + } + + @Test + void projectOnlyStatusFourStockWithoutTrayReturnsRetryableWaiting() throws Exception { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('PROJECT-NO-TRAY','W1','RA','A','Allocated source',7,30,2,'4',''," + + "NULL,'PROJECT-NO-TRAY-LANE','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-PROJECT-NO-TRAY','PROJECT-NO-TRAY',NULL," + + "'P-NO-TRAY','SKU','LOT','2026-01-01 09:00:00',1,0)"); + rebuildTopology("W1"); + + OutboundPlan result = new WarehouseApplicationService(repository, new InboundPlanner(), + new OutboundPlanner(), new TidyPlanner(), 100).planOutbound("W1", + new OutboundRequest("PROJECT-NO-TRAY-REQ", null, "P-NO-TRAY", null, + "OFF", 0, 1, true)); + + assertThat(result.status()).isEqualTo(OutboundPlanStatus.WAITING); + assertThat(result.waiting().orElseThrow().code()).isEqualTo(OutboundWaitingCode.WAITING_CHANNEL); + assertThat(result.waiting().orElseThrow().retryable()).isTrue(); + assertThat(result.waiting().orElseThrow().details()) + .containsEntry("sourceSpaceId", "PROJECT-NO-TRAY") + .containsEntry("laneCode", "PROJECT-NO-TRAY-LANE") + .doesNotContainKey("trayNo"); + } + + @Test + void exactCargoSpaceTrayWithoutMatchingStockIsWarehouseScopedAndWaits() throws Exception { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('CARGO-ONLY-W1','W1','RA','A','Allocated source',7,24,2,'4',''," + + "'TRAY-CARGO-ONLY','CARGO-ONLY-LANE','1')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('CARGO-ONLY-W2','W2','RA','A','Other warehouse',7,24,2,'2',''," + + "'TRAY-CARGO-ONLY','CARGO-ONLY-LANE','1')"); + rebuildTopology("W1"); + rebuildTopology("W2"); + + List matches = repository.searchOutboundStock("W1", + OutboundStockSearch.exactTray("TRAY-CARGO-ONLY")); + OutboundPlan result = new WarehouseApplicationService(repository, new InboundPlanner(), + new OutboundPlanner(), new TidyPlanner(), 100).planOutbound("W1", + new OutboundRequest("CARGO-ONLY-REQ", "TRAY-CARGO-ONLY", null, null, + "OFF", 0, 1, true)); + + assertThat(matches).extracting(OutboundStockMatch::spaceId).containsExactly("CARGO-ONLY-W1"); + assertThat(result.status()).isEqualTo(OutboundPlanStatus.WAITING); + assertThat(result.waiting().orElseThrow().code()).isEqualTo(OutboundWaitingCode.WAITING_CHANNEL); + assertThat(result.waiting().orElseThrow().retryable()).isTrue(); + assertThat(result.waiting().orElseThrow().details()) + .containsEntry("sourceSpaceId", "CARGO-ONLY-W1") + .containsEntry("trayNo", "TRAY-CARGO-ONLY"); + } + + @Test + void exactTraySearchKeepsCargoAndInventoryLocationsAmbiguous() throws Exception { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('DUP-CARGO','W1','RA','A','Cargo location',7,25,2,'4',''," + + "'TRAY-DUP','DUP-CARGO-LANE','1')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('DUP-STOCK','W1','RA','A','Stock location',7,26,2,'2',''," + + "NULL,'DUP-STOCK-LANE','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-DUP','DUP-STOCK','TRAY-DUP','P-DUP','SKU','LOT'," + + "'2026-01-01 08:00:00',1,0)"); + rebuildTopology("W1"); + + List matches = repository.searchOutboundStock("W1", + OutboundStockSearch.exactTray("TRAY-DUP")); + OutboundPlan result = new WarehouseApplicationService(repository, new InboundPlanner(), + new OutboundPlanner(), new TidyPlanner(), 100).planOutbound("W1", + new OutboundRequest("DUP-REQ", "TRAY-DUP", null, null, "OFF", 0, 1, true)); + + assertThat(matches).extracting(OutboundStockMatch::spaceId) + .containsExactly("DUP-STOCK", "DUP-CARGO"); + assertThat(result.error().orElseThrow().code()).isEqualTo(com.ruoyi.algorithm.outbound.OutboundErrorCode.AMBIGUOUS_TRAY); + } + + @Test + void derivesStableJavascriptZonesFromTopologyInsteadOfAreaId() throws Exception { + for (int index = 1; index <= 134; index++) { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('Z-" + index + "','WZ','R','AREA-X','Zone',1," + index + + ",1,'1','',NULL,'ZL-" + index + "','1')"); + } + for (int depth = 1; depth <= 5; depth++) { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('MAIN-" + depth + + "','WZ','R','AREA-Y','Main',2," + depth + ",1,'1','',NULL,'MAIN-LANE','" + depth + "')"); + } + rebuildTopology("WZ"); + + List lanes = repository.loadLaneSnapshots("WZ", + List.of("ZL-134", "ZL-54", "ZL-1", "MAIN-LANE")); + + assertThat(space(lanes, "Z-134").state().zoneCode()).isEqualTo("CACHE"); + assertThat(space(lanes, "Z-54").state().zoneCode()).isEqualTo("RESERVE"); + assertThat(space(lanes, "Z-1").state().zoneCode()).isEqualTo("FLEX"); + assertThat(space(lanes, "MAIN-1").state().zoneCode()).isEqualTo("MAIN"); + } + + @Test + void searchesExactTrayOrProjectWithOptionalProduct() { + assertThat(repository.searchOutboundStock("W1", OutboundStockSearch.exactTray("TRAY-OUT"))) + .extracting(OutboundStockMatch::spaceId).containsExactly("OUT-INNER"); + assertThat(repository.searchOutboundStock("W1", OutboundStockSearch.project("P-OUT", null))) + .extracting(OutboundStockMatch::trayNo).containsExactly("TRAY-OUT"); + assertThat(repository.searchOutboundStock("W1", OutboundStockSearch.project("P-OUT", "NOPE"))).isEmpty(); + } + + @Test + void countsOnlySelectableProjectPalletsWithInventoryOrSpaceTrayFallback() throws Exception { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-1','W1','RV','A','Visible',9,10,1,'2','','TRAY-V1','VIS-1','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-V1-A','VIS-1','TRAY-V1','P-VIS','SKU','L','2026-01-01 10:00:00',1,0)"); + execute("INSERT INTO BAS_STOCK VALUES ('S-V1-B','VIS-1','TRAY-V1','P-VIS','SKU','L','2026-01-01 10:01:00',1,0)"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-2','W1','RV','A','Fallback',9,11,1,'2','','TRAY-V2','VIS-2','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-V2','VIS-2',NULL,'P-VIS','SKU','L','2026-01-01 10:02:00',1,0)"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-LOCK','W1','RV','A','Locked',9,12,1,'2','1','TRAY-L','VIS-L','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VL','VIS-LOCK','TRAY-L','P-VIS','SKU','L','2026-01-01 10:03:00',1,0)"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-INVALID','W1','RV','A','Invalid',9,13,1,'2','','TRAY-I','VIS-I','X')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VI','VIS-INVALID','TRAY-I','P-VIS','SKU','L','2026-01-01 10:04:00',1,0)"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-EMPTY','W1','RV','A','Empty mismatch',9,14,1,'1','','TRAY-E','VIS-E','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VE','VIS-EMPTY','TRAY-E','P-VIS','SKU','L','2026-01-01 10:05:00',1,0)"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-RES','W1','RV','A','Reserved',9,15,1,'2','','TRAY-R','VIS-R','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VR','VIS-RES','TRAY-R','P-VIS','SKU','L','2026-01-01 10:06:00',1,0)"); + execute("INSERT INTO ALG_RESERVATION (RESERVATION_ID,WAREHOUSE_ID,LANE_CODE,SPACE_ID,PROJECT_NO,STATUS) VALUES ('" + + UUID.randomUUID() + "','W1','VIS-R','VIS-RES','P-VIS','ACTIVE')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-PEND','W1','RV','A','Pending',9,16,1,'2','','TRAY-P','VIS-P','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VP','VIS-PEND','TRAY-P','P-VIS','SKU','L','2026-01-01 10:07:00',1,0)"); + execute("INSERT INTO MYDO_JOB VALUES ('JOB-VP','TASK-VP','TRAY-P','VIS-PEND',NULL,'W1','3',21,'2026-01-01 11:00:00','')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-GAP-1','W1','RV','A','Gap inner',9,17,1,'1','',NULL,'VIS-G','1')"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-GAP-2','W1','RV','A','Gap outer',9,18,1,'2','','TRAY-G','VIS-G','2')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VG','VIS-GAP-2','TRAY-G','P-VIS','SKU','L','2026-01-01 10:08:00',1,0)"); + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-CONFLICT','W1','RV','A','Conflict',9,19,1,'2','','TRAY-C','VIS-C','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VC1','VIS-CONFLICT','TRAY-C1','P-VIS','SKU','L','2026-01-01 10:09:00',1,0)"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VC2','VIS-CONFLICT','TRAY-C2','P-VIS','SKU','L','2026-01-01 10:10:00',1,0)"); + rebuildTopology("W1"); + + assertThat(repository.countProjectPallets("W1", "P-VIS")).isEqualTo(2); + } + + @Test + void treatsMultipleProductAndLotDetailsAsOneVisibleProjectPallet() throws Exception { + execute("INSERT INTO BAS_CARGO_SPACE VALUES ('VIS-LOT','W1','RV','A','Detailed pallet',9,20,1,'2','','TRAY-LOT','VIS-LOT','1')"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VLOT-1','VIS-LOT','TRAY-LOT','P-LOT','SKU-1','LOT-1','2026-01-01 10:00:00',1,0)"); + execute("INSERT INTO BAS_STOCK VALUES ('S-VLOT-2','VIS-LOT','TRAY-LOT','P-LOT','SKU-2','LOT-2','2026-01-01 10:01:00',1,0)"); + rebuildTopology("W1"); + + SpaceSnapshot snapshot = space(repository.loadLaneSnapshots("W1", List.of("VIS-LOT")), "VIS-LOT"); + assertThat(snapshot.conflicts()).isEmpty(); + assertThat(snapshot.state().trayNo()).isEqualTo("TRAY-LOT"); + assertThat(snapshot.state().projectNo()).isEqualTo("P-LOT"); + assertThat(snapshot.state().productId()).isNull(); + assertThat(snapshot.state().lotNo()).isNull(); + assertThat(repository.countProjectPallets("W1", "P-LOT")).isOne(); + assertThat(repository.searchOutboundStock("W1", OutboundStockSearch.project("P-LOT", "SKU-2"))) + .extracting(OutboundStockMatch::spaceId).containsExactly("VIS-LOT"); + assertThat(repository.searchOutboundStock("W1", OutboundStockSearch.project("P-LOT", "SKU-X"))).isEmpty(); + } + + @Test + void insertsAndReadsCompactDecisionLog() { + String decisionId = UUID.randomUUID().toString(); + DecisionLogEntry inserted = repository.insertDecision(new DecisionLogRecord( + decisionId, "W1", "INBOUND", VersionToken.numeric(7), "READY", "selected AVAILABLE-1")); + + assertThat(repository.findDecision(inserted.decisionId())).contains(inserted); + assertThat(inserted.reason()).doesNotContain("password"); + } + + @Test + void bindsDecisionVersionWithTheDialectColumnType() { + assertThat(JdbcWarehouseRepository.decisionVersionSqlType(RepositoryDialect.sqlServer())) + .isEqualTo(Types.BINARY); + assertThat(JdbcWarehouseRepository.decisionVersionSqlType(RepositoryDialect.h2())) + .isEqualTo(Types.BIGINT); + } + + @Test + void loadsSummaryPoliciesPendingJobsAndSameFloorBuffersWithoutDetailSnapshots() { + WarehouseSummary summary = repository.loadSummary("W1"); + + assertThat(summary.spaceCount()).isEqualTo(12); + assertThat(summary.conflictSpaceCount()).isEqualTo(1); + assertThat(repository.loadPolicy("W1")).isEqualTo(RepositoryPolicy.defaults()); + assertThat(repository.loadPendingOutboundJobs("W1")).extracting(PendingOutboundJob::jobId) + .containsExactly("JOB-OUT-1"); + assertThat(repository.loadRelocationBuffers("W1", java.util.Set.of(1))) + .extracting(SpaceSnapshot::spaceId).containsExactly("BUFFER-1"); + } + + @Test + void projectPolicyOnlyDeniesMixingWhenExplicitlyConfiguredFalse() throws Exception { + execute("INSERT INTO ALG_PROJECT_POLICY (PROJECT_NO,IS_ISOLATED,IS_COMMON,ALLOW_MIXED) " + + "VALUES ('P-DENIED',FALSE,FALSE,FALSE)"); + execute("INSERT INTO ALG_PROJECT_POLICY (PROJECT_NO,IS_ISOLATED,IS_COMMON,ALLOW_MIXED) " + + "VALUES ('P-ALLOWED',FALSE,FALSE,TRUE)"); + + InboundPolicy policy = repository.loadPolicy("W1").inboundPolicy(); + + assertThat(policy.allowsMixed("P-DENIED")).isFalse(); + assertThat(policy.allowsMixed("P-ALLOWED")).isTrue(); + assertThat(policy.allowsMixed("P-UNCONFIGURED")).isTrue(); + } + + @Test + void reservesWithOpaqueVersionAndReturnsStructuredConflictsAndRelease() { + VersionToken version = repository.pageCandidateLanes("W1", "C-LANE", 10).lanes().stream() + .filter(lane -> lane.laneCode().equals("DENSE-1")).findFirst().orElseThrow().version(); + String reservationId = UUID.randomUUID().toString(); + + ReservationResult reserved = repository.tryReserveInbound(new InboundReservation( + reservationId, "W1", "DENSE-1", "DENSE-1", "P-NEW", version)); + ReservationResult stale = repository.tryReserveInbound(new InboundReservation( + UUID.randomUUID().toString(), "W1", "DENSE-1", "DENSE-2", "P-NEW", version)); + ReservationResult nullVersion = repository.tryReserveInbound(new InboundReservation( + UUID.randomUUID().toString(), "W1", "DENSE-1", "DENSE-2", "P-NEW", null)); + VersionToken current = repository.loadLaneSnapshots("W1", List.of("DENSE-1")).get(0).version(); + ReservationResult duplicate = repository.tryReserveInbound(new InboundReservation( + UUID.randomUUID().toString(), "W1", "DENSE-1", "DENSE-1", "P-NEW", current)); + + assertThat(reserved.status()).isEqualTo(ReservationStatus.RESERVED); + assertThat(stale.reasonCode()).isEqualTo("LANE_VERSION_MISMATCH"); + assertThat(nullVersion.reasonCode()).isEqualTo("LANE_VERSION_MISMATCH"); + assertThat(duplicate.reasonCode()).isEqualTo("ACTIVE_RESERVATION_EXISTS"); + assertThat(repository.releaseReservation("W1", reservationId).status()).isEqualTo(ReservationStatus.RELEASED); + assertThat(repository.releaseReservation("W1", reservationId).status()).isEqualTo(ReservationStatus.NOT_FOUND); + } + + @Test + void synchronizationInvalidatesSameCountInventoryAndPolicyChangesAndLiveGuardRejectsStaleToken() throws Exception { + repository.synchronizeReadModel("W1"); + VersionToken inventoryBefore = repository.loadLaneSnapshots("W1", List.of("OUT-1")).get(0).version(); + + execute("UPDATE BAS_STOCK SET SPARE4='P-REPLACED' WHERE STOCK_ID='S-OUT-1'"); + repository.synchronizeReadModel("W1"); + VersionToken inventoryAfter = repository.loadLaneSnapshots("W1", List.of("OUT-1")).get(0).version(); + + execute("INSERT INTO ALG_PROJECT_POLICY (PROJECT_NO,IS_ISOLATED,IS_COMMON,ALLOW_MIXED) " + + "VALUES ('P-SEMANTIC',TRUE,FALSE,FALSE)"); + repository.synchronizeReadModel("W1"); + VersionToken policyAfter = repository.loadLaneSnapshots("W1", List.of("OUT-1")).get(0).version(); + + VersionToken stale = repository.loadLaneSnapshots("W1", List.of("DENSE-1")).get(0).version(); + execute("UPDATE ALG_PROJECT_POLICY SET IS_ISOLATED=FALSE,ALLOW_MIXED=TRUE WHERE PROJECT_NO='P-SEMANTIC'"); + ReservationResult conflict = repository.tryReserveInbound(new InboundReservation( + UUID.randomUUID().toString(), "W1", "DENSE-1", "DENSE-1", "P-NEW", stale)); + + assertThat(inventoryAfter).isNotEqualTo(inventoryBefore); + assertThat(policyAfter).isNotEqualTo(inventoryAfter); + assertThat(conflict.reasonCode()).isEqualTo("LANE_VERSION_MISMATCH"); + } + + @Test + void changedJobRefreshAdvancesOnlyItsResolvedSourceLane() throws Exception { + repository.synchronizeReadModel("W1"); + VersionToken denseBefore = repository.loadLaneSnapshots("W1", List.of("DENSE-1")).get(0).version(); + VersionToken outboundBefore = repository.loadLaneSnapshots("W1", List.of("OUT-1")).get(0).version(); + execute("INSERT INTO MYDO_JOB (JOB_ID,TASK_NO,TRAY_CODE,CARGO_SPACE_ID,TARGET_CARGO_SPACE_ID," + + "WAREHOUSE_ID,STATUS,IN_OR_OUT,CREATE_TIME,FINISH_TIME) VALUES " + + "('JOB-DENSE-OUT','TASK-DENSE-OUT',NULL,'DENSE-1',NULL,'W1','1',21," + + "'2026-07-21 08:00:00','')"); + + repository.refreshChangedLanes("W1"); + + VersionToken denseAfter = repository.loadLaneSnapshots("W1", List.of("DENSE-1")).get(0).version(); + VersionToken outboundAfter = repository.loadLaneSnapshots("W1", List.of("OUT-1")).get(0).version(); + assertThat(denseAfter).isNotEqualTo(denseBefore); + assertThat(outboundAfter).isEqualTo(outboundBefore); + } + + @Test + void incrementalRefreshDoesNotRewriteUnchangedLaneSnapshots() throws Exception { + repository.synchronizeReadModel("W1"); + execute("UPDATE ALG_INVENTORY_ITEM_SNAPSHOT SET SYNCHRONIZED_AT='2000-01-01 00:00:00' " + + "WHERE STOCK_ID='S-CONFLICT-1'"); + executeLiveOnly("UPDATE BAS_STOCK SET SPARE4='P-REFRESHED' WHERE STOCK_ID='S-OUT-1'"); + + repository.refreshChangedLanes("W1"); + + try (Connection connection = dataSource.getConnection(); Statement statement = connection.createStatement()) { + var result = statement.executeQuery("SELECT SYNCHRONIZED_AT FROM ALG_INVENTORY_ITEM_SNAPSHOT " + + "WHERE STOCK_ID='S-CONFLICT-1'"); + result.next(); + assertThat(result.getTimestamp(1)).isEqualTo(Timestamp.valueOf("2000-01-01 00:00:00")); + } + assertThat(repository.searchOutboundStock("W1", OutboundStockSearch.project("P-REFRESHED", null))) + .extracting(OutboundStockMatch::stockId).containsExactly("S-OUT-1"); + } + + @Test + void incrementalRefreshRebuildsTopologyOnlyForStructuralCargoChanges() throws Exception { + repository.synchronizeReadModel("W1"); + executeLiveOnly("UPDATE BAS_CARGO_SPACE SET LOCKED='1' WHERE CARGO_SPACE_ID='AVAILABLE-1'"); + + repository.refreshChangedLanes("W1"); + + assertThat(space(repository.loadLaneSnapshots("W1", List.of("AVAILABLE-1")), "AVAILABLE-1") + .state().status()).isEqualTo(com.ruoyi.algorithm.model.SpaceStatus.DISABLED); + executeLiveOnly("INSERT INTO BAS_CARGO_SPACE (CARGO_SPACE_ID,WAREHOUSE_ID,ROADWAY_ID,CARGO_AREA_ID," + + "CARGO_SPACE_NAME,THE_PLATOON,THE_COLUMN,THE_FLOOR,STATUS,LOCKED,TRAY_CODE," + + "GROUP_CODING_NO,GROUP_CODING) VALUES " + + "('NEW-STRUCTURE-1','W1','R9','A','New structure',9,1,1,'1','',NULL," + + "'NEW-STRUCTURE','1')"); + + repository.refreshChangedLanes("W1"); + + assertThat(repository.loadLaneSnapshots("W1", List.of("NEW-STRUCTURE"))) + .singleElement().satisfies(lane -> assertThat(lane.spaces()) + .extracting(SpaceSnapshot::spaceId).containsExactly("NEW-STRUCTURE-1")); + } + + @Test + void planningRefreshesChangedLiveProjectBeforeSelectingAndReserving() throws Exception { + execute("UPDATE BAS_CARGO_SPACE SET STATUS='2',TRAY_CODE='TRAY-P-SNAPSHOT' " + + "WHERE CARGO_SPACE_ID='DENSE-1'"); + execute("INSERT INTO BAS_STOCK VALUES ('S-P-SNAPSHOT','DENSE-1','TRAY-P-SNAPSHOT'," + + "'P-SNAPSHOT','SKU-P','LOT-P','2026-01-01 08:00:00',1,0)"); + repository.synchronizeReadModel("W1"); + + VersionToken synchronizedVersion = repository.loadLaneSnapshots("W1", List.of("DENSE-1")) + .get(0).version(); + String synchronizedReservation = UUID.randomUUID().toString(); + assertThat(repository.tryReserveInbound(new InboundReservation(synchronizedReservation, "W1", + "DENSE-1", "DENSE-2", "P-SNAPSHOT", synchronizedVersion)).status()) + .isEqualTo(ReservationStatus.RESERVED); + assertThat(repository.releaseReservation("W1", synchronizedReservation).status()) + .isEqualTo(ReservationStatus.RELEASED); + + executeLiveOnly("UPDATE BAS_STOCK SET SPARE4='Q-LIVE' WHERE STOCK_ID='S-P-SNAPSHOT'"); + String rebuildTrigger = UUID.randomUUID().toString(); + execute("INSERT INTO ALG_RESERVATION (RESERVATION_ID,WAREHOUSE_ID,LANE_CODE,SPACE_ID,PROJECT_NO,STATUS) " + + "VALUES ('" + rebuildTrigger + "','W1','DENSE-1','DENSE-2','P-SNAPSHOT','ACTIVE')"); + assertThat(repository.releaseReservation("W1", rebuildTrigger).status()) + .isEqualTo(ReservationStatus.RELEASED); + + WarehouseApplicationService service = new WarehouseApplicationService(repository, new InboundPlanner(), + new OutboundPlanner(), new TidyPlanner(), 100); + var planned = service.planInbound("W1", new InboundRequest("STALE-SNAPSHOT-PLAN", "TRAY-IN", "P-SNAPSHOT", + "SKU-P", "LOT-P", 2, 1, null, Set.of(), BatchLaneMode.OPEN)); + var assignment = planned.plan().assignment().orElseThrow(); + + assertThat(assignment.laneCode()).isEqualTo("AVAILABLE-1"); + assertThat(planned.laneVersion()).isNotNull(); + ReservationResult reserved = repository.tryReserveInbound(new InboundReservation( + UUID.randomUUID().toString(), "W1", assignment.laneCode(), assignment.spaceId(), + "P-SNAPSHOT", planned.laneVersion())); + assertThat(reserved.status()).isEqualTo(ReservationStatus.RESERVED); + } + + @Test + void pendingOutboundConflictPrecedesGenericEligibilityAndIdsAreUuidForBothDialects() throws Exception { + execute("INSERT INTO ALG_LANE_STATE VALUES ('W1','OUT-1',2,1,0,TRUE,FALSE,'',21,CURRENT_TIMESTAMP)"); + String reservationId = UUID.randomUUID().toString(); + + ReservationResult result = repository.tryReserveInbound(new InboundReservation( + reservationId, "W1", "OUT-1", "OUT-OUTER", "P", VersionToken.numeric(21))); + + assertThat(result.reasonCode()).isEqualTo("PENDING_OUTBOUND"); + assertThatThrownBy(() -> repository.tryReserveInbound(new InboundReservation( + "not-a-uuid", "W1", "DENSE-1", "DENSE-1", "P", VersionToken.numeric(7)))) + .isInstanceOf(IllegalArgumentException.class); + } + + @Test + void livePendingJobBlocksReservationWithoutLaneStateRebuild() throws Exception { + VersionToken version = repository.pageCandidateLanes("W1", null, 100).lanes().stream() + .filter(lane -> lane.laneCode().equals("DENSE-1")).findFirst().orElseThrow().version(); + execute("INSERT INTO MYDO_JOB VALUES ('JOB-LIVE','TASK-LIVE',NULL,'DENSE-1',NULL,'W1','3',21," + + "'2026-07-20 10:00:00','')"); + + ReservationResult result = repository.tryReserveInbound(new InboundReservation( + UUID.randomUUID().toString(), "W1", "DENSE-1", "DENSE-1", "P", version)); + + assertThat(result.reasonCode()).isEqualTo("PENDING_OUTBOUND"); + } + + @Test + void deepWorkflowLocksAreOwnedExclusiveAndExcludeTheCurrentRequest() { + assertThat(repository.acquireDeepWorkflowLock("REQ-1", "W1", 1)).isTrue(); + assertThat(repository.acquireDeepWorkflowLock("REQ-1", "W1", 1)).isTrue(); + assertThat(repository.acquireDeepWorkflowLock("REQ-2", "W1", 1)).isFalse(); + + assertThat(repository.loadActiveDeepWorkflowFloors("W1", "REQ-1")).isEmpty(); + assertThat(repository.loadActiveDeepWorkflowFloors("W1", "REQ-2")).containsExactly(1); + assertThat(repository.releaseDeepWorkflowLock("REQ-2", "W1", 1)).isFalse(); + assertThat(repository.releaseDeepWorkflowLock("REQ-1", "W1", 1)).isTrue(); + assertThat(repository.loadActiveDeepWorkflowFloors("W1", null)).isEmpty(); + } + + @Test + void ordinaryOutboundJobsDoNotCreateDeepWorkflowLocks() throws Exception { + execute("DELETE FROM MYDO_JOB"); + execute("INSERT INTO MYDO_JOB VALUES ('JOB-DEEP','TASK-DEEP',NULL,'DENSE-1',NULL,'W1','3',21," + + "'2026-07-20 10:00:00','')"); + + assertThat(repository.loadActiveDeepWorkflowFloors("W1", null)).isEmpty(); + } + + @Test + void dialectConstructionIsFixedAndRepositorySqlHasNoPlannerExpressions() throws Exception { + assertThat(RepositoryDialect.class.getDeclaredConstructors()).allMatch(constructor -> + java.lang.reflect.Modifier.isPrivate(constructor.getModifiers())); + String source = java.nio.file.Files.readString(java.nio.file.Path.of( + "src/main/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepository.java")); + assertThat(source).doesNotContain("capacityScore", "efficiencyScore", "ladderRung", "targetDepth", + "expectedProjectPallets", "ROW_NUMBER", "LANE_TOPOLOGY"); + } + + private SpaceSnapshot space(List lanes, String id) { + return lanes.stream().flatMap(lane -> lane.spaces().stream()) + .filter(space -> space.spaceId().equals(id)).findFirst().orElseThrow(); + } + + private void execute(String sql) throws Exception { + try (Connection connection = dataSource.getConnection(); Statement statement = connection.createStatement()) { + statement.executeUpdate(sql); + if (java.util.regex.Pattern.compile("(?i)\\bBAS_STOCK\\b").matcher(sql).find()) { + statement.executeUpdate("DELETE FROM ALG_SPACE_INVENTORY_SUMMARY"); + statement.executeUpdate("DELETE FROM ALG_INVENTORY_ITEM_SNAPSHOT"); + statement.executeUpdate("INSERT INTO ALG_INVENTORY_ITEM_SNAPSHOT " + + "(WAREHOUSE_ID,STOCK_ID,SPACE_ID,TRAY_CODE,PROJECT_NO,PRODUCT_NO,LOT_NO," + + "INBOUND_TIME_RAW,INBOUND_AT,QUANTITY,OUT_QUANTITY) " + + "SELECT C.WAREHOUSE_ID,S.STOCK_ID,S.CARGO_SPACE_ID,S.TRAY_CODE,S.SPARE4,S.PRODUCT_ID," + + "S.LOT_NO,S.IN_DATE,ALG_TRY_TIMESTAMP(S.IN_DATE),S.QUANTITY,S.OUT_QUANTITY " + + "FROM BAS_STOCK S JOIN BAS_CARGO_SPACE C ON C.CARGO_SPACE_ID=S.CARGO_SPACE_ID"); + statement.executeUpdate("INSERT INTO ALG_SPACE_INVENTORY_SUMMARY " + + "(WAREHOUSE_ID,SPACE_ID,STOCK_DETAIL_COUNT,STOCK_TRAY_COUNT,STOCK_PROJECT_COUNT,STOCK_PRODUCT_COUNT) " + + "SELECT WAREHOUSE_ID,SPACE_ID,COUNT(*),COUNT(DISTINCT NULLIF(TRIM(TRAY_CODE),''))," + + "COUNT(DISTINCT NULLIF(TRIM(PROJECT_NO),'')),COUNT(DISTINCT NULLIF(TRIM(PRODUCT_NO),'')) " + + "FROM ALG_INVENTORY_ITEM_SNAPSHOT GROUP BY WAREHOUSE_ID,SPACE_ID"); + } + } + } + + private void executeLiveOnly(String sql) throws Exception { + try (Connection connection = dataSource.getConnection(); Statement statement = connection.createStatement()) { + statement.executeUpdate(sql); + } + } + + private void rebuildTopology(String warehouseId) throws Exception { + execute("DELETE FROM ALG_SPACE_TOPOLOGY WHERE WAREHOUSE_ID = '" + warehouseId + "'"); + execute("INSERT INTO ALG_SPACE_TOPOLOGY (WAREHOUSE_ID,SPACE_ID,LANE_CODE,LANE_DEPTH,BASE_ZONE) " + + "WITH LANE_TOPOLOGY AS (SELECT WAREHOUSE_ID,GROUP_CODING_NO AS LANE_CODE,COUNT(*) AS LANE_DEPTH," + + "MAX(THE_COLUMN) AS COLUMN_NO,MIN(THE_PLATOON) AS ROW_NO,MIN(THE_FLOOR) AS FLOOR_NO," + + "MIN(CARGO_SPACE_ID) AS STABLE_ID FROM BAS_CARGO_SPACE WHERE WAREHOUSE_ID = '" + warehouseId + + "' GROUP BY WAREHOUSE_ID,GROUP_CODING_NO), RANKED_LANES AS (SELECT LANE_TOPOLOGY.*," + + "CASE WHEN LANE_DEPTH=1 THEN ROW_NUMBER() OVER (PARTITION BY WAREHOUSE_ID ORDER BY " + + "CASE WHEN LANE_DEPTH=1 THEN 0 ELSE 1 END,COLUMN_NO DESC,ROW_NO ASC,FLOOR_NO ASC,STABLE_ID ASC) END " + + "AS SINGLE_DEPTH_RANK FROM LANE_TOPOLOGY) SELECT C.WAREHOUSE_ID,C.CARGO_SPACE_ID,C.GROUP_CODING_NO," + + "R.LANE_DEPTH,CASE WHEN R.LANE_DEPTH=1 AND R.SINGLE_DEPTH_RANK<=80 THEN 'CACHE' " + + "WHEN R.LANE_DEPTH=1 AND R.SINGLE_DEPTH_RANK<=133 THEN 'RESERVE' WHEN R.LANE_DEPTH=5 THEN 'MAIN' " + + "ELSE 'FLEX' END FROM BAS_CARGO_SPACE C JOIN RANKED_LANES R ON R.WAREHOUSE_ID=C.WAREHOUSE_ID " + + "AND R.LANE_CODE=C.GROUP_CODING_NO WHERE C.WAREHOUSE_ID='" + warehouseId + "'"); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositoryWriteGuardTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositoryWriteGuardTest.java new file mode 100644 index 0000000..3c4fa35 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/JdbcWarehouseRepositoryWriteGuardTest.java @@ -0,0 +1,41 @@ +package com.ruoyi.algorithm.repository; + +import org.h2.tools.RunScript; +import org.junit.jupiter.api.Test; +import org.springframework.jdbc.core.JdbcTemplate; +import org.springframework.jdbc.datasource.DriverManagerDataSource; + +import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; +import java.time.Instant; +import java.util.UUID; + +import static org.assertj.core.api.Assertions.assertThat; + +class JdbcWarehouseRepositoryWriteGuardTest { + @Test + void disabledWritesKeepPlanningAuditInMemoryAndRejectAllShadowMutations() throws Exception { + var dataSource = new DriverManagerDataSource( + "jdbc:h2:mem:guard_" + UUID.randomUUID() + ";MODE=MSSQLServer;DB_CLOSE_DELAY=-1", "sa", ""); + try (var connection = dataSource.getConnection()) { + RunScript.execute(connection, new InputStreamReader( + getClass().getClassLoader().getResourceAsStream("db/h2/schema.sql"), StandardCharsets.UTF_8)); + RunScript.execute(connection, new InputStreamReader( + getClass().getClassLoader().getResourceAsStream("db/h2/data.sql"), StandardCharsets.UTF_8)); + } + JdbcWarehouseRepository repository = new JdbcWarehouseRepository(dataSource, RepositoryDialect.h2(), false); + JdbcTemplate jdbc = new JdbcTemplate(dataSource); + int before = jdbc.queryForObject("SELECT COUNT(*) FROM ALG_DECISION_LOG", Integer.class); + + DecisionLogEntry entry = repository.insertDecision(new DecisionLogRecord(UUID.randomUUID().toString(), + "W1", "INBOUND", VersionToken.numeric(7), "READY", "read-only planning")); + + assertThat(entry.createdAt()).isBeforeOrEqualTo(Instant.now()); + assertThat(jdbc.queryForObject("SELECT COUNT(*) FROM ALG_DECISION_LOG", Integer.class)).isEqualTo(before); + assertThat(repository.tryReserveInbound(new InboundReservation(UUID.randomUUID().toString(), "W1", + "DENSE-1", "DENSE-1", "P", VersionToken.numeric(7))).reasonCode()).isEqualTo("WRITES_DISABLED"); + assertThat(repository.releaseReservation("W1", UUID.randomUUID().toString()).reasonCode()).isEqualTo("WRITES_DISABLED"); + assertThat(repository.acquireDeepWorkflowLock("O-1", "W1", 1)).isFalse(); + assertThat(repository.releaseDeepWorkflowLock("O-1", "W1", 1)).isFalse(); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/SqlServerMigrationScriptTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/SqlServerMigrationScriptTest.java new file mode 100644 index 0000000..5289b76 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/repository/SqlServerMigrationScriptTest.java @@ -0,0 +1,200 @@ +package com.ruoyi.algorithm.repository; + +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.nio.charset.StandardCharsets; + +import static org.assertj.core.api.Assertions.assertThat; + +class SqlServerMigrationScriptTest { + @Test + void installDefinesPersistentOutboundWorkflowSchema() throws IOException { + String install = resource("db/sqlserver/install.sql"); + + assertThat(install).contains( + "CREATE TABLE alg.outbound_workflow (", + "CREATE TABLE alg.outbound_workflow_step (", + "CREATE TABLE alg.outbound_workflow_space (", + "CK_alg_outbound_workflow_status", + "CK_alg_outbound_workflow_step_phase", + "CK_alg_outbound_workflow_step_status", + "UX_alg_outbound_workflow_active_request", + "UX_alg_outbound_workflow_step_wms_job", + "UX_alg_outbound_workflow_space_active"); + } + + @Test + void installDefinesDirtyLaneQueueRefreshAndAllMutationSources() throws IOException { + String install = resource("db/sqlserver/install.sql"); + + assertThat(install).contains( + "CREATE TABLE alg.dirty_lane_queue (", + "CREATE PROCEDURE alg.usp_mark_dirty_lane", + "CREATE PROCEDURE alg.usp_refresh_dirty_lanes", + "CREATE TRIGGER dbo.trg_alg_dirty_bas_stock", + "CREATE TRIGGER dbo.trg_alg_dirty_bas_cargo_space", + "CREATE TRIGGER dbo.trg_alg_dirty_mydo_job", + "CREATE TRIGGER alg.trg_alg_dirty_space_role", + "CREATE TRIGGER alg.trg_alg_dirty_project_policy", + "CREATE TRIGGER alg.trg_alg_dirty_warehouse_policy"); + } + + @Test + void installDefinesPersistentTidyRuntimeSchemaAndConstraints() throws IOException { + String install = resource("db/sqlserver/install.sql"); + + assertThat(install).contains( + "CREATE TABLE alg.tidy_mode (", + "CREATE TABLE alg.tidy_lane_queue (", + "CREATE TABLE alg.tidy_workflow (", + "CREATE TABLE alg.tidy_step (", + "CREATE TABLE alg.tidy_space_lock (", + "CREATE TABLE alg.tidy_callback_event (", + "CK_alg_tidy_mode_effective_state", + "CK_alg_tidy_workflow_origin", + "CK_alg_tidy_workflow_status", + "CK_alg_tidy_space_lock_resource_type", + "UX_alg_tidy_space_lock_active", + "UX_alg_tidy_callback_event_key", + "UX_alg_tidy_workflow_active_auto", + "FK_alg_tidy_callback_event_step_workflow"); + } + + @Test + void installDefinesVersionedTidyLaneClaimAndSequenceSynchronization() throws IOException { + String install = resource("db/sqlserver/install.sql"); + + assertThat(install).contains( + "CREATE PROCEDURE alg.usp_claim_tidy_lane", + "@eligible_lane_codes varchar(max) = NULL", + "STRING_SPLIT(@eligible_lane_codes, '','')", + "CREATE PROCEDURE alg.usp_release_tidy_lane", + "CREATE PROCEDURE alg.usp_sync_replay_sequences", + "sp_getapplock", + "CK202607210002"); + } + + @Test + void installCompletesAlgorithmOwnedMoveJobsWithoutChangingTheLegacyProcedure() throws IOException { + String install = resource("db/sqlserver/install.sql"); + + assertThat(install).contains( + "CREATE PROCEDURE alg.usp_complete_move_job", + "in_or_out = ''28''", + "UPDATE dbo.bas_stock", + "INSERT INTO dbo.mydo_job_finish", + "DELETE FROM dbo.mydo_job"); + assertThat(install).doesNotContain("ALTER PROCEDURE dbo.proc_yk_complete"); + } + + @Test + void dirtyLaneRefreshPublishesRebuiltLanesToPersistentTidyQueue() throws IOException { + String install = resource("db/sqlserver/install.sql"); + String procedure = install.substring( + install.indexOf("CREATE PROCEDURE alg.usp_refresh_dirty_lanes"), + install.indexOf("IF OBJECT_ID(N'alg.usp_try_reserve_inbound'")); + + int rebuildLaneState = procedure.lastIndexOf("EXEC alg.usp_rebuild_lane_state"); + int publishTidyLane = procedure.indexOf("MERGE alg.tidy_lane_queue WITH (HOLDLOCK)"); + + assertThat(rebuildLaneState).isGreaterThanOrEqualTo(0); + assertThat(publishTidyLane).isGreaterThan(rebuildLaneState); + assertThat(procedure).contains( + "dirty_version = target.dirty_version + 1", + "queue_status = ''PENDING''"); + } + + @Test + void dirtyLaneRefreshReleasesQueueLocksBeforeReadingWarehouseTablesAndRequeuesFailures() + throws IOException { + String install = resource("db/sqlserver/install.sql"); + String procedure = install.substring( + install.indexOf("CREATE PROCEDURE alg.usp_refresh_dirty_lanes"), + install.indexOf("IF OBJECT_ID(N'alg.usp_try_reserve_inbound'")); + + int claimDelete = procedure.indexOf("DELETE queue"); + int claimCommit = procedure.indexOf("COMMIT TRANSACTION;", claimDelete); + int warehouseRead = procedure.indexOf("FROM dbo.bas_cargo_space", claimDelete); + + assertThat(claimDelete).isGreaterThanOrEqualTo(0); + assertThat(claimCommit).isBetween(claimDelete + 1, warehouseRead - 1); + assertThat(procedure).contains( + "BEGIN TRY", + "BEGIN CATCH", + "MERGE alg.dirty_lane_queue WITH (HOLDLOCK) AS target", + "THROW;"); + } + + @Test + void topologyRebuildExcludesUnconfiguredCargoSpacesAndDiagnosticsReportsThem() + throws IOException { + String install = resource("db/sqlserver/install.sql"); + String diagnostics = resource("db/sqlserver/diagnostics.sql"); + String procedure = install.substring( + install.indexOf("CREATE PROCEDURE alg.usp_rebuild_space_topology"), + install.indexOf("IF OBJECT_ID(N'alg.usp_sync_inventory_snapshot'")); + + assertThat(procedure).contains( + "NULLIF(LTRIM(RTRIM(group_coding_no)), '''') IS NOT NULL", + "TRY_CONVERT(int, group_coding) IS NOT NULL"); + assertThat(diagnostics).contains( + "excluded_from_algorithm_topology_count", + "group_coding_no IS NULL OR LTRIM(RTRIM(group_coding_no)) = ''", + "TRY_CONVERT(int, group_coding) IS NULL"); + } + + @Test + void diagnosticsAndUninstallCoverNewRuntimeObjects() throws IOException { + String diagnostics = resource("db/sqlserver/diagnostics.sql"); + String uninstall = resource("db/sqlserver/uninstall.sql"); + + assertThat(diagnostics).contains( + "FROM alg.dirty_lane_queue", + "FROM alg.outbound_workflow", + "FROM alg.tidy_mode", + "FROM alg.tidy_lane_queue", + "FROM alg.tidy_workflow", + "FROM alg.tidy_space_lock", + "PAUSED_RECOVERY"); + assertThat(uninstall).contains( + "DROP TRIGGER dbo.trg_alg_dirty_bas_stock", + "DROP PROCEDURE alg.usp_refresh_dirty_lanes", + "DROP PROCEDURE alg.usp_claim_tidy_lane", + "DROP PROCEDURE alg.usp_release_tidy_lane", + "DROP PROCEDURE alg.usp_sync_replay_sequences", + "DROP TABLE alg.tidy_callback_event", + "DROP TABLE alg.tidy_space_lock", + "DROP TABLE alg.tidy_step", + "DROP TABLE alg.tidy_workflow", + "DROP TABLE alg.tidy_lane_queue", + "DROP TABLE alg.tidy_mode", + "DROP TABLE alg.outbound_workflow_space", + "DROP TABLE alg.outbound_workflow_step", + "DROP TABLE alg.outbound_workflow", + "DROP TABLE alg.dirty_lane_queue"); + } + + @Test + void repeatedInstallDoesNotDiscardPendingDirtyLanes() throws IOException { + String install = resource("db/sqlserver/install.sql"); + String initialization = install.substring(install.lastIndexOf("IF NOT EXISTS (SELECT 1 FROM alg.space_topology)")); + + assertThat(initialization).contains( + "AND NOT EXISTS (SELECT 1 FROM alg.inventory_item_snapshot)", + "AND NOT EXISTS (SELECT 1 FROM alg.lane_state)"); + assertThat(initialization.indexOf("DELETE FROM alg.dirty_lane_queue")) + .isLessThan(initialization.indexOf("END;")); + assertThat(initialization.substring(initialization.indexOf("END;") + 4)) + .doesNotContain("DELETE FROM alg.dirty_lane_queue"); + } + + private String resource(String name) throws IOException { + try (var stream = getClass().getClassLoader().getResourceAsStream(name)) { + if (stream == null) { + throw new IOException("Missing test resource " + name); + } + return new String(stream.readAllBytes(), StandardCharsets.UTF_8); + } + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/service/WarehouseApplicationServiceTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/service/WarehouseApplicationServiceTest.java new file mode 100644 index 0000000..916c5ff --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/service/WarehouseApplicationServiceTest.java @@ -0,0 +1,568 @@ +package com.ruoyi.algorithm.service; + +import com.ruoyi.algorithm.inbound.BatchLaneMode; +import com.ruoyi.algorithm.inbound.InboundPlanner; +import com.ruoyi.algorithm.inbound.InboundRequest; +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import com.ruoyi.algorithm.outbound.OutboundPlanStatus; +import com.ruoyi.algorithm.outbound.OutboundErrorCode; +import com.ruoyi.algorithm.outbound.OutboundPlanner; +import com.ruoyi.algorithm.outbound.OutboundRequest; +import com.ruoyi.algorithm.tidy.TidyPlanner; +import com.ruoyi.algorithm.repository.DecisionLogEntry; +import com.ruoyi.algorithm.repository.InboundReservation; +import com.ruoyi.algorithm.repository.LaneCandidate; +import com.ruoyi.algorithm.repository.LanePage; +import com.ruoyi.algorithm.repository.LaneSnapshot; +import com.ruoyi.algorithm.repository.OutboundStockMatch; +import com.ruoyi.algorithm.repository.RepositoryPolicy; +import com.ruoyi.algorithm.repository.ReservationResult; +import com.ruoyi.algorithm.repository.SpaceSnapshot; +import com.ruoyi.algorithm.repository.VersionToken; +import com.ruoyi.algorithm.repository.WarehouseRepository; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.time.Instant; +import java.lang.reflect.Method; +import java.nio.file.Files; +import java.nio.file.Path; +import java.util.List; +import java.util.Optional; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +class WarehouseApplicationServiceTest { + private WarehouseRepository repository; + private WarehouseApplicationService service; + + @BeforeEach + void setUp() { + repository = mock(WarehouseRepository.class); + service = new WarehouseApplicationService(repository, new InboundPlanner(), new OutboundPlanner(), + new TidyPlanner(), 100); + when(repository.loadPolicy("W1")).thenReturn(RepositoryPolicy.defaults()); + when(repository.loadSummary("W1")).thenReturn(new com.ruoyi.algorithm.repository.WarehouseSummary( + "W1", 0, 0, 0, 0, 0, 0, 0)); + when(repository.loadPendingOutboundJobs("W1")).thenReturn(List.of()); + when(repository.countProjectPallets(any(), any())).thenReturn(0); + when(repository.loadActiveDeepWorkflowFloors(eq("W1"), any())).thenReturn(Set.of()); + when(repository.insertDecision(any())).thenAnswer(invocation -> { + var value = invocation.getArgument(0, com.ruoyi.algorithm.repository.DecisionLogRecord.class); + return new DecisionLogEntry(value.decisionId(), value.warehouseId(), value.decisionType(), + value.inputVersion(), value.resultCode(), value.reason(), Instant.parse("2026-07-20T00:00:00Z")); + }); + } + + @Test + void repositoryExposesIncrementalLaneRefreshContract() { + assertThat(List.of(WarehouseRepository.class.getMethods()).stream() + .map(Method::getName)) + .contains("refreshChangedLanes"); + } + + @Test + void inboundRefreshesChangedLanesBeforeReadingPlanningState() { + when(repository.pageCandidateLanes("W1", null, 100)).thenReturn(new LanePage(List.of(), null)); + + service.planInbound("W1", inbound("I-REFRESH")); + + org.mockito.InOrder order = org.mockito.Mockito.inOrder(repository); + order.verify(repository).refreshChangedLanes("W1"); + order.verify(repository).loadPolicy("W1"); + } + + @Test + void outboundRefreshesChangedLanesBeforeReadingPlanningState() { + OutboundRequest request = new OutboundRequest("O-REFRESH", null, "P", null, + "OFF", null, 1, true); + when(repository.searchOutboundStock("W1", + com.ruoyi.algorithm.repository.OutboundStockSearch.project("P", null))).thenReturn(List.of()); + + service.planOutbound("W1", request); + + org.mockito.InOrder order = org.mockito.Mockito.inOrder(repository); + order.verify(repository).refreshChangedLanes("W1"); + order.verify(repository).loadPolicy("W1"); + } + + @Test + void inboundDelegatesToPlannerLogsReadyAndNeverReservesDuringPlanning() { + VersionToken version = VersionToken.numeric(7); + LaneSnapshot lane = lane("L1", version, empty("L1", 1, 2), empty("L1", 2, 2)); + when(repository.pageCandidateLanes("W1", null, 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "L1", 2, 0, 2, false, false, version)), null)); + when(repository.loadLaneSnapshots("W1", List.of("L1"))).thenReturn(List.of(lane)); + when(repository.loadSummary("W1")).thenReturn(new com.ruoyi.algorithm.repository.WarehouseSummary( + "W1", 1, 2, 0, 2, 0, 0, 0)); + + InboundPlanningResult result = service.planInbound("W1", inbound("I-READY")); + + assertThat(result.plan().assignment()).isPresent(); + assertThat(result.laneVersion()).isEqualTo(version); + verify(repository, never()).tryReserveInbound(any()); + verify(repository).insertDecision(any()); + } + + @Test + void inboundRejectionRemainsARejection() { + when(repository.pageCandidateLanes("W1", null, 100)).thenReturn(new LanePage(List.of(), null)); + when(repository.loadSummary("W1")).thenReturn(new com.ruoyi.algorithm.repository.WarehouseSummary( + "W1", 0, 0, 0, 0, 0, 0, 0)); + + InboundPlanningResult result = service.planInbound("W1", inbound("I-REJECT")); + + assertThat(result.plan().rejection()).isPresent(); + assertThat(result.laneVersion()).isNull(); + } + + @Test + void inboundUsesBoundedProjectAggregateWhenExpectedSizeIsMissing() { + VersionToken v2 = VersionToken.numeric(2); + VersionToken v5 = VersionToken.numeric(5); + LaneSnapshot shallow = lane("L2", v2, empty("L2", 1, 2), empty("L2", 2, 2)); + LaneSnapshot deep = lane("L5", v5, empty("L5", 1, 5), empty("L5", 2, 5), empty("L5", 3, 5), + empty("L5", 4, 5), empty("L5", 5, 5)); + when(repository.countProjectPallets("W1", "P")).thenReturn(3); + when(repository.loadSummary("W1")).thenReturn(new com.ruoyi.algorithm.repository.WarehouseSummary( + "W1", 2, 7, 3, 7, 0, 0, 0)); + when(repository.pageCandidateLanes("W1", null, 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "L2", 2, 0, 2, false, false, v2), + new LaneCandidate("W1", "L5", 5, 0, 5, false, false, v5)), null)); + when(repository.loadLaneSnapshots("W1", List.of("L2", "L5"))).thenReturn(List.of(shallow, deep)); + InboundRequest request = new InboundRequest("I-SCALE", "T", "P", "SKU", "L", null, + 1, null, Set.of(), BatchLaneMode.OPEN); + + assertThat(service.planInbound("W1", request).plan().assignment().orElseThrow().laneCode()).isEqualTo("L5"); + } + + @Test + void inboundRetainsOnlyBoundedPageWinnersAndAValidLaterPageCandidateWins() throws Exception { + VersionToken firstVersion = VersionToken.numeric(21); + VersionToken laterVersion = VersionToken.numeric(22); + LaneSnapshot first = lane("A-LANE", firstVersion, + emptyAtFloor("A-LANE", 1, 2, 8), emptyAtFloor("A-LANE", 2, 2, 8)); + LaneSnapshot later = lane("Z-LANE", laterVersion, + emptyAtFloor("Z-LANE", 1, 2, 1), emptyAtFloor("Z-LANE", 2, 2, 1)); + when(repository.pageCandidateLanes("W1", null, 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "A-LANE", 2, 0, 2, false, false, firstVersion)), "A-LANE")); + when(repository.pageCandidateLanes("W1", "A-LANE", 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "Z-LANE", 2, 0, 2, false, false, laterVersion)), null)); + when(repository.loadLaneSnapshots("W1", List.of("A-LANE"))).thenReturn(List.of(first)); + when(repository.loadLaneSnapshots("W1", List.of("Z-LANE"))).thenReturn(List.of(later)); + + InboundPlanningResult result = service.planInbound("W1", inbound("I-PAGED")); + + assertThat(result.plan().assignment().orElseThrow().laneCode()).isEqualTo("Z-LANE"); + assertThat(result.laneVersion()).isEqualTo(laterVersion); + verify(repository).loadLaneSnapshots("W1", List.of("A-LANE")); + verify(repository).loadLaneSnapshots("W1", List.of("Z-LANE")); + String source = Files.readString(Path.of( + "src/main/java/com/ruoyi/algorithm/service/WarehouseApplicationService.java")); + int start = source.indexOf("public InboundPlanningResult planInbound"); + int end = source.indexOf("public OutboundPlan planOutbound", start); + String inboundMethod = source.substring(start, end); + assertThat(inboundMethod).contains("startPaged"); + assertThat(inboundMethod).doesNotContain("spaces.addAll", "List spaces = new ArrayList"); + } + + @Test + void inboundRejectsOnlyAfterEveryCandidatePageWasEvaluated() { + VersionToken firstVersion = VersionToken.numeric(31); + VersionToken lastVersion = VersionToken.numeric(32); + LaneSnapshot first = lane("BAD-A", firstVersion, + state("BAD-A", 1, 1, SpaceStatus.DISABLED, null, null, null)); + LaneSnapshot last = lane("BAD-Z", lastVersion, + state("BAD-Z", 1, 1, SpaceStatus.DISABLED, null, null, null)); + when(repository.pageCandidateLanes("W1", null, 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "BAD-A", 1, 0, 1, false, false, firstVersion)), "BAD-A")); + when(repository.pageCandidateLanes("W1", "BAD-A", 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "BAD-Z", 1, 0, 1, false, false, lastVersion)), null)); + when(repository.loadLaneSnapshots("W1", List.of("BAD-A"))).thenReturn(List.of(first)); + when(repository.loadLaneSnapshots("W1", List.of("BAD-Z"))).thenReturn(List.of(last)); + + InboundPlanningResult result = service.planInbound("W1", inbound("I-EXHAUSTIVE")); + + assertThat(result.plan().rejection()).isPresent(); + assertThat(result.laneVersion()).isNull(); + verify(repository).pageCandidateLanes("W1", "BAD-A", 100); + verify(repository).loadLaneSnapshots("W1", List.of("BAD-Z")); + } + + @Test + void resolvedPendingSourceExcludesOnlyItsExactLane() { + VersionToken version = VersionToken.numeric(4); + LaneSnapshot mixed = lane("MIX", version, + occupied("MIX", 1, 2, "T-RES", "RES", "SKU"), empty("MIX", 2, 2)); + LaneSnapshot safe = lane("SAFE", VersionToken.numeric(5), + occupied("SAFE", 1, 2, "T-SAFE", "RES", "SKU"), empty("SAFE", 2, 2)); + when(repository.loadSummary("W1")).thenReturn(new com.ruoyi.algorithm.repository.WarehouseSummary( + "W1", 2, 4, 2, 2, 1, 0, 0)); + when(repository.pageCandidateLanes("W1", null, 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "MIX", 2, 1, 1, false, false, version), + new LaneCandidate("W1", "SAFE", 2, 1, 1, false, false, VersionToken.numeric(5))), null)); + when(repository.loadLaneSnapshots("W1", List.of("MIX", "SAFE"))).thenReturn(List.of(mixed, safe)); + when(repository.loadPendingOutboundJobs("W1")).thenReturn(List.of(new com.ruoyi.algorithm.repository.PendingOutboundJob( + "J", "TASK", null, "RES", "SKU", "MIX-1", "W1", "MIX", "EXPLICIT", "3", 21, "2026"))); + + assertThat(service.planInbound("W1", inbound("I-PENDING")).plan().assignment().orElseThrow().laneCode()) + .isEqualTo("SAFE"); + } + + @Test + void unresolvedPendingProjectScopeDoesNotExcludeUnrelatedLanes() { + VersionToken version = VersionToken.numeric(4); + LaneSnapshot mixed = lane("MIX", version, + occupied("MIX", 1, 2, "T-RES", "RES", "SKU"), empty("MIX", 2, 2)); + when(repository.loadSummary("W1")).thenReturn(new com.ruoyi.algorithm.repository.WarehouseSummary( + "W1", 1, 2, 1, 1, 0, 0, 0)); + when(repository.pageCandidateLanes("W1", null, 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "MIX", 2, 1, 1, false, false, version)), null)); + when(repository.loadLaneSnapshots("W1", List.of("MIX"))).thenReturn(List.of(mixed)); + when(repository.loadPendingOutboundJobs("W1")).thenReturn(List.of(new com.ruoyi.algorithm.repository.PendingOutboundJob( + "J", "TASK", null, "RES", "SKU", null, "W1", null, "UNRESOLVED", "3", 21, "2026"))); + + assertThat(service.planInbound("W1", inbound("I-UNRESOLVED")).plan().assignment()).isPresent(); + } + + @Test + void outboundPreservesWaitingAndErrorStatuses() { + OutboundRequest request = new OutboundRequest("O-WAIT", "T-SOURCE", null, null, + null, null, 1, true); + LaneSnapshot blocked = lane("SRC", VersionToken.numeric(1), + occupied("SRC", 1, 2, "T-SOURCE", "P", "SKU"), + occupied("SRC", 2, 2, "T-BLOCK", "P", "SKU")); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T-SOURCE"))) + .thenReturn(List.of(new OutboundStockMatch("S1", "SRC-1", "SRC", 1, + "T-SOURCE", "P", "SKU", "L", "2026-01-01 00:00:00", + Instant.parse("2026-01-01T00:00:00Z")))); + when(repository.loadLaneSnapshots("W1", List.of("SRC"))).thenReturn(List.of(blocked)); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of()); + + assertThat(service.planOutbound("W1", request).status()).isEqualTo(OutboundPlanStatus.WAITING); + + OutboundRequest missing = new OutboundRequest("O-ERR", "MISSING", null, null, + null, null, 1, true); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("MISSING"))) + .thenReturn(List.of()); + assertThat(service.planOutbound("W1", missing).status()).isEqualTo(OutboundPlanStatus.ERROR); + } + + @Test + void outboundPreservesReadyStatus() { + OutboundRequest request = new OutboundRequest("O-READY", "T-READY", null, null, + null, null, 1, true); + LaneSnapshot source = lane("READY", VersionToken.numeric(2), + occupied("READY", 1, 1, "T-READY", "P", "SKU")); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T-READY"))) + .thenReturn(List.of(new OutboundStockMatch("S2", "READY-1", "READY", 1, + "T-READY", "P", "SKU", "L", "2026-01-01 00:00:00", + Instant.parse("2026-01-01T00:00:00Z")))); + when(repository.loadLaneSnapshots("W1", List.of("READY"))).thenReturn(List.of(source)); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of()); + + assertThat(service.planOutbound("W1", request).status()).isEqualTo(OutboundPlanStatus.READY); + } + + @Test + void outboundDerivesCapacityModeFromWarehouseThresholds() { + OutboundRequest request = new OutboundRequest("O-CAP", "T-CAP", null, null, + null, null, 1, true); + LaneSnapshot source = lane("CAP", VersionToken.numeric(2), + occupied("CAP", 1, 1, "T-CAP", "P", "SKU")); + when(repository.loadSummary("W1")).thenReturn(new com.ruoyi.algorithm.repository.WarehouseSummary( + "W1", 615, 615, 600, 15, 0, 0, 0)); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T-CAP"))) + .thenReturn(List.of(new OutboundStockMatch("S", "CAP-1", "CAP", 1, + "T-CAP", "P", "SKU", "L", "2026-01-01T00:00:00Z", + Instant.parse("2026-01-01T00:00:00Z")))); + when(repository.loadLaneSnapshots("W1", List.of("CAP"))).thenReturn(List.of(source)); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of()); + + assertThat(service.planOutbound("W1", request).assignment().orElseThrow().laneReleasing()).isTrue(); + } + + @Test + void outboundOtherOwnerDeepFloorWaitsEvenWhenBuffersAreSufficient() { + OutboundRequest request = new OutboundRequest("O-LOCK", "T-SOURCE", null, null, + null, null, 1, true); + LaneSnapshot blocked = lane("SRC", VersionToken.numeric(1), + occupied("SRC", 1, 2, "T-SOURCE", "P", "SKU"), + occupied("SRC", 2, 2, "T-BLOCK", "P", "SKU")); + SpaceSnapshot buffer = new SpaceSnapshot(new SpaceState("BUF", "CACHE", "BUF-L", 1, 1, 1, 1, 1, "1", + SpaceRole.RELOCATION_BUFFER, SpaceStatus.EMPTY, false, false, null, null, null, null, + null, null, false, null), List.of(), Set.of(), false, false, null); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T-SOURCE"))) + .thenReturn(List.of(new OutboundStockMatch("S1", "SRC-1", "SRC", 1, + "T-SOURCE", "P", "SKU", "L", "2026-01-01T00:00:00Z", + Instant.parse("2026-01-01T00:00:00Z")))); + when(repository.loadLaneSnapshots("W1", List.of("SRC"))).thenReturn(List.of(blocked)); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of(buffer)); + when(repository.loadActiveDeepWorkflowFloors("W1", "O-LOCK")).thenReturn(Set.of(1)); + + assertThat(service.planOutbound("W1", request).status()).isEqualTo(OutboundPlanStatus.WAITING); + } + + @Test + void outboundSelfOwnedDeepFloorDoesNotWait() { + OutboundRequest request = new OutboundRequest("O-SELF", "T-SOURCE", null, null, + null, null, 1, true); + LaneSnapshot blocked = lane("SRC", VersionToken.numeric(1), + occupied("SRC", 1, 2, "T-SOURCE", "P", "SKU"), + occupied("SRC", 2, 2, "T-BLOCK", "P", "SKU")); + SpaceSnapshot buffer = new SpaceSnapshot(new SpaceState("BUF", "CACHE", "BUF-L", 1, 1, 1, 1, 1, "1", + SpaceRole.RELOCATION_BUFFER, SpaceStatus.EMPTY, false, false, null, null, null, null, + null, null, false, null), List.of(), Set.of(), false, false, null); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T-SOURCE"))) + .thenReturn(List.of(new OutboundStockMatch("S1", "SRC-1", "SRC", 1, + "T-SOURCE", "P", "SKU", "L", "2026-01-01T00:00:00Z", + Instant.parse("2026-01-01T00:00:00Z")))); + when(repository.loadLaneSnapshots("W1", List.of("SRC"))).thenReturn(List.of(blocked)); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of(buffer)); + when(repository.loadActiveDeepWorkflowFloors("W1", "O-SELF")).thenReturn(Set.of()); + + assertThat(service.planOutbound("W1", request).status()).isEqualTo(OutboundPlanStatus.READY); + verify(repository).loadActiveDeepWorkflowFloors("W1", "O-SELF"); + } + + @Test + void outboundMissingScopeRemainsPlannerErrorInsteadOfThrowing() { + OutboundRequest request = new OutboundRequest("O-SCOPE", null, null, null, + null, null, 1, true); + + assertThat(service.planOutbound("W1", request).status()).isEqualTo(OutboundPlanStatus.ERROR); + } + + @Test + void exactTrayFifoLoadsProjectScopeSoRankIsGlobal() { + OutboundRequest request = new OutboundRequest("O-FIFO", "T-NEW", null, null, + "STRICT", 0, 1, true); + OutboundStockMatch selected = new OutboundStockMatch("S-NEW", "NEW-1", "NEW", 1, + "T-NEW", "P", "SKU", "L2", "2026-01-02T00:00:00Z", + Instant.parse("2026-01-02T00:00:00Z")); + OutboundStockMatch oldest = new OutboundStockMatch("S-OLD", "OLD-1", "OLD", 1, + "T-OLD", "P", "SKU", "L1", "2026-01-01T00:00:00Z", + Instant.parse("2026-01-01T00:00:00Z")); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T-NEW"))) + .thenReturn(List.of(selected)); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.project("P", "SKU"))) + .thenReturn(List.of(oldest, selected)); + when(repository.loadLaneSnapshots("W1", List.of("NEW", "OLD"))).thenReturn(List.of( + lane("NEW", VersionToken.numeric(2), occupiedAt("NEW", "T-NEW", "P", "SKU", "2026-01-02T00:00:00Z")), + lane("OLD", VersionToken.numeric(3), occupiedAt("OLD", "T-OLD", "P", "SKU", "2026-01-01T00:00:00Z")))); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of()); + + var plan = service.planOutbound("W1", request); + + assertThat(plan.assignment().orElseThrow().fifo().fifoRank()).isEqualTo(2); + assertThat(plan.assignment().orElseThrow().fifo().fifoViolation()).isTrue(); + } + + @Test + void exactTrayScopeAggregatesNullAndValidDetailsBeforeProjectSearch() { + OutboundRequest request = new OutboundRequest("O-SCOPE-AGG", "T", null, null, + "STRICT", 0, 1, true); + OutboundStockMatch missing = new OutboundStockMatch("S0", "L-1", "L", 1, + "T", null, null, "L", "2026-01-01T00:00:00Z", Instant.parse("2026-01-01T00:00:00Z")); + OutboundStockMatch valid = new OutboundStockMatch("S1", "L-1", "L", 1, + "T", "P", "SKU", "L", "2026-01-01T00:00:00Z", Instant.parse("2026-01-01T00:00:00Z")); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T"))) + .thenReturn(List.of(missing, valid)); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.project("P", "SKU"))) + .thenReturn(List.of(valid)); + when(repository.loadLaneSnapshots("W1", List.of("L"))).thenReturn(List.of(lane("L", VersionToken.numeric(1), + occupiedAt("L", "T", "P", "SKU", "2026-01-01T00:00:00Z")))); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of()); + + assertThat(service.planOutbound("W1", request).status()).isEqualTo(OutboundPlanStatus.READY); + verify(repository).searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.project("P", "SKU")); + } + + @Test + void exactTrayAmbiguousProjectsDoNotInventFifoScope() { + OutboundRequest request = new OutboundRequest("O-AMB", "T", null, null, + "STRICT", 0, 1, true); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T"))) + .thenReturn(List.of( + new OutboundStockMatch("S1", "L-1", "L", 1, "T", "P1", "SKU", "L", "2026-01-01T00:00:00Z", Instant.parse("2026-01-01T00:00:00Z")), + new OutboundStockMatch("S2", "L-1", "L", 1, "T", "P2", "SKU", "L", "2026-01-01T00:00:00Z", Instant.parse("2026-01-01T00:00:00Z")))); + var plan = service.planOutbound("W1", request); + + assertThat(plan.error().orElseThrow().code()).isEqualTo(OutboundErrorCode.AMBIGUOUS_TRAY); + verify(repository, never()).loadLaneSnapshots(any(), any()); + } + + @Test + void exactTrayInMultipleSpacesReturnsExplicitAmbiguityError() { + OutboundRequest request = new OutboundRequest("O-AMB-SPACE", "T", null, null, + null, null, 1, true); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T"))) + .thenReturn(List.of( + new OutboundStockMatch("S1", "L1-1", "L1", 1, "T", "P", "SKU", "L", "2026-01-01T00:00:00Z", Instant.parse("2026-01-01T00:00:00Z")), + new OutboundStockMatch("S2", "L2-1", "L2", 1, "T", "P", "SKU", "L", "2026-01-01T00:00:00Z", Instant.parse("2026-01-01T00:00:00Z")))); + + var plan = service.planOutbound("W1", request); + + assertThat(plan.error().orElseThrow().code()).isEqualTo(OutboundErrorCode.AMBIGUOUS_TRAY); + verify(repository, never()).loadLaneSnapshots(any(), any()); + } + + @Test + void exactTrayWithMultipleProductDetailsPlansTheWholePallet() { + OutboundRequest request = new OutboundRequest("O-AMB-PRODUCT", "T", null, null, + null, null, 1, true); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T"))) + .thenReturn(List.of( + new OutboundStockMatch("S1", "L-1", "L", 1, "T", "P", "SKU-1", "L", "2026-01-01T00:00:00Z", Instant.parse("2026-01-01T00:00:00Z")), + new OutboundStockMatch("S2", "L-1", "L", 1, "T", "P", "SKU-2", "L", "2026-01-01T00:00:00Z", Instant.parse("2026-01-01T00:00:00Z")))); + when(repository.loadLaneSnapshots("W1", List.of("L"))).thenReturn(List.of(lane("L", VersionToken.numeric(1), + occupiedAt("L", "T", "P", null, "2026-01-01T00:00:00Z")))); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of()); + + var plan = service.planOutbound("W1", request); + + assertThat(plan.status()).isEqualTo(OutboundPlanStatus.READY); + assertThat(plan.assignment().orElseThrow().trayNo()).isEqualTo("T"); + } + + @Test + void productFilterNormalizesOnlyRepositoryMatchedPallets() { + OutboundRequest request = new OutboundRequest("O-PRODUCT", null, "P", "SKU-2", + null, null, 1, true); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.project("P", "SKU-2"))) + .thenReturn(List.of(new OutboundStockMatch("S2", "L-1", "L", 1, + "T", "P", "SKU-2", "L2", "2026-01-02T00:00:00Z", + Instant.parse("2026-01-02T00:00:00Z")))); + when(repository.loadLaneSnapshots("W1", List.of("L"))).thenReturn(List.of(lane("L", VersionToken.numeric(1), + occupiedAt("L", "T", "P", null, "2026-01-01T00:00:00Z")))); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of()); + + var plan = service.planOutbound("W1", request); + + assertThat(plan.status()).isEqualTo(OutboundPlanStatus.READY); + assertThat(plan.assignment().orElseThrow().productId()).isEqualTo("SKU-2"); + } + + @Test + void exactMultiProductTrayFifoUsesWholeProjectScope() { + OutboundRequest request = new OutboundRequest("O-MULTI-FIFO", "T-NEW", null, null, + "STRICT", 0, 1, true); + List exact = List.of( + new OutboundStockMatch("S-NEW-1", "NEW-1", "NEW", 1, "T-NEW", "P", "SKU-1", "L1", + "2026-01-02T00:00:00Z", Instant.parse("2026-01-02T00:00:00Z")), + new OutboundStockMatch("S-NEW-2", "NEW-1", "NEW", 1, "T-NEW", "P", "SKU-2", "L2", + "2026-01-02T00:00:00Z", Instant.parse("2026-01-02T00:00:00Z"))); + OutboundStockMatch oldest = new OutboundStockMatch("S-OLD", "OLD-1", "OLD", 1, + "T-OLD", "P", "SKU-3", "L0", "2026-01-01T00:00:00Z", + Instant.parse("2026-01-01T00:00:00Z")); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.exactTray("T-NEW"))) + .thenReturn(exact); + when(repository.searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.project("P", null))) + .thenReturn(List.of(oldest, exact.get(0), exact.get(1))); + when(repository.loadLaneSnapshots("W1", List.of("NEW", "OLD"))).thenReturn(List.of( + lane("NEW", VersionToken.numeric(2), occupiedAt("NEW", "T-NEW", "P", null, "2026-01-02T00:00:00Z")), + lane("OLD", VersionToken.numeric(3), occupiedAt("OLD", "T-OLD", "P", null, "2026-01-01T00:00:00Z")))); + when(repository.loadRelocationBuffers("W1", Set.of(1))).thenReturn(List.of()); + + var plan = service.planOutbound("W1", request); + + assertThat(plan.status()).isEqualTo(OutboundPlanStatus.READY); + assertThat(plan.assignment().orElseThrow().fifo().fifoRank()).isEqualTo(2); + verify(repository).searchOutboundStock("W1", com.ruoyi.algorithm.repository.OutboundStockSearch.project("P", null)); + } + + @Test + void exposesSummaryDiagnosticsAndTidyThroughPlainMethods() { + var summary = new com.ruoyi.algorithm.repository.WarehouseSummary("W1", 0, 0, 0, 0, 0, 0, 0); + when(repository.loadSummary("W1")).thenReturn(summary); + when(repository.pageWarehouseLanes("W1", null, 100)).thenReturn(new LanePage(List.of(), null)); + + assertThat(service.summary("W1")).isEqualTo(summary); + assertThat(service.diagnostics("W1").issues()).isEmpty(); + assertThat(service.planTidy("W1", Instant.parse("2026-07-20T00:00:00Z")).candidates()).isEmpty(); + } + + @Test + void tidyUsesPendingProjectAndProductScope() { + VersionToken version = VersionToken.numeric(1); + LaneSnapshot source = lane("GUEST", version, + occupied("GUEST", 1, 3, "T-R", "R", "SKU-R"), + occupied("GUEST", 2, 3, "T-G", "G", "SKU-G"), empty("GUEST", 3, 3)); + LaneSnapshot target = lane("HOME", version, + occupied("HOME", 1, 3, "T-H", "G", "SKU-G"), empty("HOME", 2, 3), empty("HOME", 3, 3)); + when(repository.pageWarehouseLanes("W1", null, 100)).thenReturn(new LanePage(List.of( + new LaneCandidate("W1", "GUEST", 3, 2, 1, false, false, version), + new LaneCandidate("W1", "HOME", 3, 1, 2, false, false, version)), null)); + when(repository.loadLaneSnapshots("W1", List.of("GUEST", "HOME"))).thenReturn(List.of(source, target)); + when(repository.loadPendingOutboundJobs("W1")).thenReturn(List.of(new com.ruoyi.algorithm.repository.PendingOutboundJob( + "J", "T", null, "G", "SKU-G", null, "W1", null, "UNRESOLVED", "3", 21, "2026"))); + + assertThat(service.planTidy("W1", Instant.parse("2026-07-20T00:00:00Z")).candidates()).isEmpty(); + } + + @Test + void explicitReserveMapsSnapshotConflictToReplanRequired() { + VersionToken version = VersionToken.numeric(9); + LaneSnapshot lane = lane("L1", version, empty("L1", 1, 2), empty("L1", 2, 2)); + InboundPlanningResult planned = new InboundPlanningResult( + new InboundPlanner().plan(inbound("I-RESERVE"), new com.ruoyi.algorithm.inbound.InboundContext( + lane.spaceStates(), RepositoryPolicy.defaults().inboundPolicy(), List.of(), 0)), version); + when(repository.tryReserveInbound(any())).thenReturn(ReservationResult.conflict("LANE_VERSION_MISMATCH", "R1")); + + InboundReservationOutcome outcome = service.reserveInbound("R1", "W1", "P", planned); + + assertThat(outcome.resultCode()).isEqualTo("REPLAN_REQUIRED"); + verify(repository).tryReserveInbound(new InboundReservation("R1", "W1", "L1", "L1-1", "P", version)); + } + + private InboundRequest inbound(String id) { + return new InboundRequest(id, "T-IN", "P", "SKU", "L", 2, 1, null, Set.of(), BatchLaneMode.OPEN); + } + + private LaneSnapshot lane(String code, VersionToken version, SpaceState... spaces) { + return new LaneSnapshot("W1", code, version, List.of(spaces).stream() + .map(space -> new SpaceSnapshot(space, List.of(), Set.of(), space.availableEmpty(), false, null)).toList()); + } + + private SpaceState empty(String lane, int depth, int capacity) { + return state(lane, depth, capacity, SpaceStatus.EMPTY, null, null, null); + } + + private SpaceState emptyAtFloor(String lane, int depth, int capacity, int floor) { + SpaceState value = empty(lane, depth, capacity); + return new SpaceState(value.spaceId(), value.zoneCode(), value.laneCode(), value.depthOrder(), + value.laneCapacity(), floor, value.aisleNo(), value.groupCoding(), value.rowCode(), value.role(), + value.status(), value.outboundTaskActive(), value.inventoryProjectConflict(), value.trayNo(), + value.projectNo(), value.productId(), value.lotNo(), value.inboundAt(), value.outboundAt(), + value.reserved(), value.rowVersion()); + } + + private SpaceState occupied(String lane, int depth, int capacity, String tray, String project, String product) { + return state(lane, depth, capacity, SpaceStatus.OCCUPIED, tray, project, product); + } + + private SpaceState occupiedAt(String lane, String tray, String project, String product, String inboundAt) { + SpaceState value = state(lane, 1, 1, SpaceStatus.OCCUPIED, tray, project, product); + return new SpaceState(value.spaceId(), value.zoneCode(), value.laneCode(), value.depthOrder(), + value.laneCapacity(), value.floorNo(), value.aisleNo(), value.groupCoding(), value.rowCode(), + value.role(), value.status(), value.outboundTaskActive(), value.inventoryProjectConflict(), + value.trayNo(), value.projectNo(), value.productId(), value.lotNo(), Instant.parse(inboundAt), + value.outboundAt(), value.reserved(), value.rowVersion()); + } + + private SpaceState state(String lane, int depth, int capacity, SpaceStatus status, + String tray, String project, String product) { + return new SpaceState(lane + "-" + depth, "A", lane, depth, capacity, 1, 1, depth, "R", + SpaceRole.STORAGE, status, false, false, tray, project, product, "L", + Instant.parse("2026-01-01T00:00:00Z"), null, false, null); + } +} diff --git a/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/tidy/TidyPlannerTest.java b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/tidy/TidyPlannerTest.java new file mode 100644 index 0000000..6890df7 --- /dev/null +++ b/fortucky-algorithm/src/test/java/com/ruoyi/algorithm/tidy/TidyPlannerTest.java @@ -0,0 +1,284 @@ +package com.ruoyi.algorithm.tidy; + +import com.ruoyi.algorithm.model.SpaceRole; +import com.ruoyi.algorithm.model.SpaceState; +import com.ruoyi.algorithm.model.SpaceStatus; +import com.ruoyi.algorithm.policy.SchedulingPolicy; +import org.junit.jupiter.api.Test; + +import java.time.Instant; +import java.util.ArrayList; +import java.util.List; +import java.util.Set; + +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; + +class TidyPlannerTest { + + private final TidyPlanner planner = new TidyPlanner(); + + @Test + void returnsGuestFromOutsideToInsideWithoutMutatingCurrentInventory() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("SHARED", 5, + stock(1, "HOST-1", "HOST", old()), stock(2, "HOST-2", "HOST", old()), + stock(3, "GUEST-3", "GUEST", old()), stock(4, "GUEST-4", "GUEST", old()), empty(5))); + spaces.addAll(lane("OWN", 5, + stock(1, "OWN-1", "GUEST", old()), empty(2), empty(3), empty(4), empty(5))); + + TidyPlan result = plan(spaces, List.of(), null, SchedulingPolicy.ft546Defaults()); + TidyCandidate candidate = result.candidates().stream() + .filter(item -> item.type() == TidyCandidateType.GUEST_RETURN).findFirst().orElseThrow(); + + assertThat(candidate.moves()).containsExactly( + new TidyMove("GUEST-4", "SHARED-4", "OWN-2"), + new TidyMove("GUEST-3", "SHARED-3", "OWN-3")); + assertThat(spaces.stream().filter(space -> space.laneCode().equals("SHARED")) + .map(SpaceState::trayNo)).containsExactly("HOST-1", "HOST-2", "GUEST-3", "GUEST-4", null); + } + + @Test + void pendingTrayProtectsItsWholeSourceLaneFromTidy() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("SHARED", 5, + stock(1, "HOST-1", "HOST", old()), stock(2, "GUEST-2", "GUEST", old()), + empty(3), empty(4), empty(5))); + spaces.addAll(lane("OWN", 5, + stock(1, "OWN-1", "GUEST", old()), empty(2), empty(3), empty(4), empty(5))); + + TidyPlan result = plan(spaces, + List.of(new TidyPendingOutbound(null, null, "HOST-1", null)), null, + SchedulingPolicy.ft546Defaults()); + + assertThat(result.candidates()).noneMatch(candidate -> candidate.type() == TidyCandidateType.GUEST_RETURN); + } + + @Test + void downgradeMergeMovesOutermostFirstAndOnlyUsesStagnantCurrentStock() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 5, + stock(1, "D-1", "P", "2026-07-01T00:00:00Z"), + stock(2, "D-2", "P", "2026-07-01T01:00:00Z"), empty(3), empty(4), empty(5))); + spaces.addAll(lane("SHALLOW", 2, empty(1), empty(2))); + + TidyPlan stale = plan(spaces, List.of(), Instant.parse("2026-07-10T00:00:00Z"), + SchedulingPolicy.ft546Defaults()); + TidyPlan fresh = plan(spaces, List.of(), Instant.parse("2026-07-02T00:00:00Z"), + SchedulingPolicy.ft546Defaults()); + TidyCandidate downgrade = stale.candidates().stream() + .filter(item -> item.type() == TidyCandidateType.DOWNGRADE_MERGE).findFirst().orElseThrow(); + + assertThat(downgrade.moves()).containsExactly( + new TidyMove("D-2", "DEEP-2", "SHALLOW-1"), + new TidyMove("D-1", "DEEP-1", "SHALLOW-2")); + assertThat(downgrade.releasesLaneCode()).contains("DEEP"); + assertThat(fresh.candidates()).noneMatch(item -> item.type() == TidyCandidateType.DOWNGRADE_MERGE); + } + + @Test + void onePalletDowngradePrefersFlexThenCacheSingleDepthWithoutRequiringDepthTwo() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 5, + stock(1, "D-1", "P", old()), empty(2), empty(3), empty(4), empty(5))); + spaces.addAll(lane("CACHE-POOL", 1, "CACHE", empty(1))); + spaces.addAll(lane("FLEX-POOL", 1, "FLEX", empty(1))); + + TidyCandidate downgrade = plan(spaces, List.of(), Instant.parse("2026-07-10T00:00:00Z"), + SchedulingPolicy.ft546Defaults()).candidates().stream() + .filter(item -> item.type() == TidyCandidateType.DOWNGRADE_MERGE).findFirst().orElseThrow(); + + assertThat(downgrade.moves()).containsExactly(new TidyMove("D-1", "DEEP-1", "FLEX-POOL-1")); + assertThat(downgrade.releasesLaneCode()).contains("DEEP"); + } + + @Test + void onePalletDowngradeFallsBackToEmptyDepthTwoWhenNoSinglePoolIsAvailable() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 5, + stock(1, "D-1", "P", old()), empty(2), empty(3), empty(4), empty(5))); + spaces.addAll(lane("DOUBLE", 2, empty(1), empty(2))); + + TidyCandidate downgrade = plan(spaces, List.of(), Instant.parse("2026-07-10T00:00:00Z"), + SchedulingPolicy.ft546Defaults()).candidates().stream() + .filter(item -> item.type() == TidyCandidateType.DOWNGRADE_MERGE).findFirst().orElseThrow(); + + assertThat(downgrade.moves()).containsExactly(new TidyMove("D-1", "DEEP-1", "DOUBLE-1")); + } + + @Test + void consolidatesAccessibleShallowStockIntoADeepProjectLaneAndYieldsToPendingLane() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 5, + stock(1, "D-1", "P", old()), stock(2, "D-2", "P", old()), empty(3), empty(4), empty(5))); + spaces.addAll(lane("SHALLOW", 2, + stock(1, "S-1", "P", old()), stock(2, "S-2", "P", old()))); + + TidyCandidate consolidate = plan(spaces, List.of(), null, SchedulingPolicy.ft546Defaults()) + .candidates().stream() + .filter(item -> item.type() == TidyCandidateType.CONSOLIDATE_INCUBATION).findFirst().orElseThrow(); + + assertThat(consolidate.moves()).containsExactly( + new TidyMove("S-2", "SHALLOW-2", "DEEP-3"), + new TidyMove("S-1", "SHALLOW-1", "DEEP-4")); + assertThat(consolidate.releasesLaneCode()).contains("SHALLOW"); + + TidyPlan yielded = plan(spaces, List.of(new TidyPendingOutbound(null, null, null, "DEEP")), + null, SchedulingPolicy.ft546Defaults()); + assertThat(yielded.candidates()) + .noneMatch(item -> item.type() == TidyCandidateType.CONSOLIDATE_INCUBATION); + } + + @Test + void sortsCandidateTypesAndCapsTheResultAtPolicyMaximum() { + List spaces = new ArrayList<>(); + for (int index = 1; index <= 3; index++) { + spaces.addAll(lane("SHARED-" + index, 2, + stock(1, "H-" + index, "H" + index, old()), + stock(2, "G-" + index, "G" + index, old()))); + spaces.addAll(lane("OWN-" + index, 2, + stock(1, "O-" + index, "G" + index, old()), empty(2))); + } + SchedulingPolicy capped = new SchedulingPolicy(0.55, 0.45, 564, 597, 615, 4, 2, 1); + + TidyPlan result = plan(spaces, List.of(), null, capped); + + assertThat(result.candidates()).hasSize(1); + assertThat(result.candidates().get(0).type()).isEqualTo(TidyCandidateType.GUEST_RETURN); + assertThat(result.diagnostics()).anyMatch(message -> message.contains("1")); + } + + @Test + void laterCandidatesDoNotReuseALaneAlreadyChangedByAnEarlierCandidate() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 5, + stock(1, "D-1", "P", old()), stock(2, "D-2", "P", old()), + empty(3), empty(4), empty(5))); + spaces.addAll(lane("A-EMPTY", 2, empty(1), empty(2))); + spaces.addAll(lane("SHALLOW", 2, + stock(1, "S-1", "P", old()), stock(2, "S-2", "P", old()))); + + TidyPlan result = plan(spaces, List.of(), Instant.parse("2026-07-10T00:00:00Z"), + SchedulingPolicy.ft546Defaults()); + + assertThat(result.candidates()).anyMatch(item -> item.type() == TidyCandidateType.DOWNGRADE_MERGE); + assertThat(result.candidates()).noneMatch(item -> item.type() == TidyCandidateType.CONSOLIDATE_INCUBATION); + } + + @Test + void guestReturnFallsBackToAnEmptyGradedLaneWhenNoResidentLaneExists() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("SHARED", 3, + stock(1, "HOST", "HOST", old()), + stock(2, "G-2", "GUEST", old()), stock(3, "G-3", "GUEST", old()))); + spaces.addAll(lane("EMPTY-2", 2, empty(1), empty(2))); + spaces.addAll(lane("EMPTY-5", 5, empty(1), empty(2), empty(3), empty(4), empty(5))); + + TidyCandidate candidate = plan(spaces, List.of(), null, SchedulingPolicy.ft546Defaults()) + .candidates().stream() + .filter(item -> item.type() == TidyCandidateType.GUEST_RETURN).findFirst().orElseThrow(); + + assertThat(candidate.moves()).containsExactly( + new TidyMove("G-3", "SHARED-3", "EMPTY-5-1"), + new TidyMove("G-2", "SHARED-2", "EMPTY-5-2")); + } + + @Test + void downgradeStalenessUsesNewestProjectStockAcrossTheWholeWarehouse() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("DEEP", 5, + stock(1, "D-1", "P", old()), stock(2, "D-2", "P", old()), + empty(3), empty(4), empty(5))); + spaces.addAll(lane("RECENT", 1, + stock(1, "RECENT-1", "P", "2026-07-09T00:00:00Z"))); + spaces.addAll(lane("EMPTY", 2, empty(1), empty(2))); + + TidyPlan result = plan(spaces, List.of(), Instant.parse("2026-07-10T00:00:00Z"), + SchedulingPolicy.ft546Defaults()); + + assertThat(result.candidates()).noneMatch(item -> item.type() == TidyCandidateType.DOWNGRADE_MERGE); + } + + @Test + void guestReturnTargetLaneIsNotReusedAsAConsolidationSource() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("SHARED", 2, + stock(1, "HOST", "HOST", old()), stock(2, "GUEST", "P", old()))); + spaces.addAll(lane("A-OWN-SHALLOW", 2, + stock(1, "OWN", "P", old()), empty(2))); + spaces.addAll(lane("Z-DEEP", 5, + stock(1, "DEEP-1", "P", old()), empty(2), empty(3), empty(4), empty(5))); + + TidyPlan result = plan(spaces, List.of(), null, SchedulingPolicy.ft546Defaults()); + TidyCandidate guest = result.candidates().stream() + .filter(item -> item.type() == TidyCandidateType.GUEST_RETURN).findFirst().orElseThrow(); + + assertThat(guest.moves()).containsExactly(new TidyMove("GUEST", "SHARED-2", "A-OWN-SHALLOW-2")); + assertThat(result.candidates()).noneMatch(item -> item.type() == TidyCandidateType.CONSOLIDATE_INCUBATION + && item.moves().stream().anyMatch(move -> move.fromSpaceId().startsWith("A-OWN-SHALLOW-"))); + } + + @Test + void commonProjectsAreExcludedFromDowngradeAndConsolidation() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("COMMON-DEEP", 5, + stock(1, "C-D1", "COMMON-X", old()), stock(2, "C-D2", "COMMON-X", old()), + empty(3), empty(4), empty(5))); + spaces.addAll(lane("COMMON-SHALLOW", 2, + stock(1, "C-S1", "COMMON-X", old()), stock(2, "C-S2", "COMMON-X", old()))); + spaces.addAll(lane("EMPTY", 2, empty(1), empty(2))); + + TidyPlan result = planner.plan(new TidyRequest(spaces, List.of(), + Instant.parse("2026-07-10T00:00:00Z"), SchedulingPolicy.ft546Defaults(), Set.of("COMMON-X"))); + + assertThat(result.candidates()).noneMatch(item -> item.type() == TidyCandidateType.DOWNGRADE_MERGE); + assertThat(result.candidates()).noneMatch(item -> item.type() == TidyCandidateType.CONSOLIDATE_INCUBATION); + } + + @Test + void ignoresOccupiedSpaceWithoutProjectWhenBuildingLaneSegments() { + List spaces = new ArrayList<>(); + spaces.addAll(lane("UNKNOWN", 2, + stock(1, "UNKNOWN-1", null, old()), empty(2))); + + assertThatCode(() -> planner.plan(new TidyRequest(spaces, List.of(), null, + SchedulingPolicy.ft546Defaults(), Set.of()))) + .doesNotThrowAnyException(); + } + + private TidyPlan plan(List spaces, List pending, + Instant now, SchedulingPolicy policy) { + return planner.plan(new TidyRequest(spaces, pending, now, policy)); + } + + private List lane(String code, int capacity, Slot... slots) { + return lane(code, capacity, "MAIN", slots); + } + + private List lane(String code, int capacity, String zone, Slot... slots) { + List spaces = new ArrayList<>(); + for (Slot slot : slots) { + spaces.add(new SpaceState(code + "-" + slot.depth(), zone, code, slot.depth(), capacity, + 1, 6, slot.depth(), "1", SpaceRole.STORAGE, slot.status(), false, false, + slot.tray(), slot.project(), "M", "LOT", + slot.inboundTime() == null ? null : Instant.parse(slot.inboundTime()), + null, false, "rv")); + } + return spaces; + } + + private Slot stock(int depth, String tray, String project, String time) { + return new Slot(depth, SpaceStatus.OCCUPIED, tray, project, time); + } + + private Slot empty(int depth) { + return new Slot(depth, SpaceStatus.EMPTY, null, null, null); + } + + private String old() { + return "2026-07-01T00:00:00Z"; + } + + private record Slot(int depth, SpaceStatus status, String tray, String project, String inboundTime) { + } +} diff --git a/fortucky-algorithm/src/test/resources/contracts/js-contract-fixtures.json b/fortucky-algorithm/src/test/resources/contracts/js-contract-fixtures.json new file mode 100644 index 0000000..152cfe2 --- /dev/null +++ b/fortucky-algorithm/src/test/resources/contracts/js-contract-fixtures.json @@ -0,0 +1,55844 @@ +{ + "sourceAlgorithmVersion": "1.2.0", + "sourceSha256": "61fc21daaa46e942b0bca45c71e8a1bab6dc8266cb1084d597c37255c7bfae08", + "fixtures": [ + { + "id": "capacity-inbound", + "kind": "INBOUND", + "policy": { + "capacityWeight": 0.9, + "efficiencyWeight": 0.1 + }, + "request": { + "requestId": "IN-CAPACITY", + "trayNo": "TRAY-CAPACITY", + "projectNo": "P-NEW", + "productId": "M-NEW", + "lotNo": null, + "expectedProjectPallets": null, + "entryFloor": 1, + "targetFloor": null, + "batchLaneMode": "OPEN" + }, + "spaces": [ + { + "spaceId": "020501", + "zoneCode": "FLEX", + "laneCode": "A0201", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030301", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-NEAR", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030401", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030501", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031101", + "zoneCode": "CACHE", + "laneCode": "B0301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040301", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040401", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040501", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041101", + "zoneCode": "CACHE", + "laneCode": "B0401", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050301", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050401", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050501", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051101", + "zoneCode": "CACHE", + "laneCode": "B0501", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060301", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060401", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060501", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061101", + "zoneCode": "CACHE", + "laneCode": "B0601", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070101", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070201", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070301", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070401", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070501", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071101", + "zoneCode": "CACHE", + "laneCode": "B0701", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080101", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080201", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080301", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080401", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080501", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080701", + "zoneCode": "FLEX", + "laneCode": "C0801", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080801", + "zoneCode": "FLEX", + "laneCode": "C0801", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080901", + "zoneCode": "RESERVE", + "laneCode": "D0801", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081101", + "zoneCode": "CACHE", + "laneCode": "B0801", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090101", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090201", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090301", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090401", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090501", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090701", + "zoneCode": "FLEX", + "laneCode": "C0901", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090801", + "zoneCode": "FLEX", + "laneCode": "C0901", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090901", + "zoneCode": "RESERVE", + "laneCode": "D0901", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091101", + "zoneCode": "CACHE", + "laneCode": "B0901", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100101", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100201", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100301", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100401", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100501", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100701", + "zoneCode": "FLEX", + "laneCode": "C1001", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100801", + "zoneCode": "FLEX", + "laneCode": "C1001", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100901", + "zoneCode": "RESERVE", + "laneCode": "D1001", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101101", + "zoneCode": "CACHE", + "laneCode": "B1001", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110101", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110201", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110301", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110401", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110501", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110701", + "zoneCode": "FLEX", + "laneCode": "C1101", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110801", + "zoneCode": "FLEX", + "laneCode": "C1101", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110901", + "zoneCode": "RESERVE", + "laneCode": "D1101", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111101", + "zoneCode": "CACHE", + "laneCode": "B1101", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120101", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120201", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120301", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120401", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120501", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120701", + "zoneCode": "FLEX", + "laneCode": "C1201", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120801", + "zoneCode": "FLEX", + "laneCode": "C1201", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120901", + "zoneCode": "RESERVE", + "laneCode": "D1201", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121101", + "zoneCode": "CACHE", + "laneCode": "B1201", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130101", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130201", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130301", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130401", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130501", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130701", + "zoneCode": "FLEX", + "laneCode": "C1301", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130801", + "zoneCode": "FLEX", + "laneCode": "C1301", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130901", + "zoneCode": "FLEX", + "laneCode": "D1301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131101", + "zoneCode": "RESERVE", + "laneCode": "B1301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140101", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140201", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140301", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140401", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140501", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141101", + "zoneCode": "RESERVE", + "laneCode": "B1401", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020502", + "zoneCode": "FLEX", + "laneCode": "A0202", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030302", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030402", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030502", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031102", + "zoneCode": "CACHE", + "laneCode": "B0302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040302", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040402", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040502", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041102", + "zoneCode": "CACHE", + "laneCode": "B0402", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050302", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050402", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050502", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051102", + "zoneCode": "CACHE", + "laneCode": "B0502", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060302", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060402", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060502", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061102", + "zoneCode": "CACHE", + "laneCode": "B0602", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070102", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070202", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070302", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070402", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070502", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071102", + "zoneCode": "CACHE", + "laneCode": "B0702", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080102", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080202", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080302", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080402", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080502", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080702", + "zoneCode": "FLEX", + "laneCode": "C0802", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080802", + "zoneCode": "FLEX", + "laneCode": "C0802", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080902", + "zoneCode": "RESERVE", + "laneCode": "D0802", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081102", + "zoneCode": "CACHE", + "laneCode": "B0802", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090102", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090202", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090302", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090402", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090502", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090702", + "zoneCode": "FLEX", + "laneCode": "C0902", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090802", + "zoneCode": "FLEX", + "laneCode": "C0902", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090902", + "zoneCode": "RESERVE", + "laneCode": "D0902", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091102", + "zoneCode": "CACHE", + "laneCode": "B0902", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100102", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100202", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100302", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100402", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100502", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100702", + "zoneCode": "FLEX", + "laneCode": "C1002", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100802", + "zoneCode": "FLEX", + "laneCode": "C1002", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100902", + "zoneCode": "RESERVE", + "laneCode": "D1002", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101102", + "zoneCode": "CACHE", + "laneCode": "B1002", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110102", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110202", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110302", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110402", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110502", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110702", + "zoneCode": "FLEX", + "laneCode": "C1102", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110802", + "zoneCode": "FLEX", + "laneCode": "C1102", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110902", + "zoneCode": "RESERVE", + "laneCode": "D1102", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111102", + "zoneCode": "CACHE", + "laneCode": "B1102", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120102", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120202", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120302", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120402", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120502", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120702", + "zoneCode": "FLEX", + "laneCode": "C1202", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120802", + "zoneCode": "FLEX", + "laneCode": "C1202", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120902", + "zoneCode": "RESERVE", + "laneCode": "D1202", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121102", + "zoneCode": "CACHE", + "laneCode": "B1202", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130102", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130202", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130302", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130402", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130502", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130702", + "zoneCode": "FLEX", + "laneCode": "C1302", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130802", + "zoneCode": "FLEX", + "laneCode": "C1302", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130902", + "zoneCode": "FLEX", + "laneCode": "D1302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131102", + "zoneCode": "RESERVE", + "laneCode": "B1302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140102", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140202", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140302", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140402", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140502", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141102", + "zoneCode": "RESERVE", + "laneCode": "B1402", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020503", + "zoneCode": "FLEX", + "laneCode": "A0203", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030303", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030403", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030503", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031103", + "zoneCode": "CACHE", + "laneCode": "B0303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040303", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040403", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040503", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041103", + "zoneCode": "CACHE", + "laneCode": "B0403", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050303", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050403", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050503", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051103", + "zoneCode": "CACHE", + "laneCode": "B0503", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060303", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060403", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060503", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061103", + "zoneCode": "CACHE", + "laneCode": "B0603", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070103", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070203", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070303", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070403", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070503", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071103", + "zoneCode": "CACHE", + "laneCode": "B0703", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080103", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080203", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080303", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080403", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080503", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080703", + "zoneCode": "FLEX", + "laneCode": "C0803", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080803", + "zoneCode": "FLEX", + "laneCode": "C0803", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080903", + "zoneCode": "RESERVE", + "laneCode": "D0803", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081103", + "zoneCode": "CACHE", + "laneCode": "B0803", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090103", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090203", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090303", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090403", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090503", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090703", + "zoneCode": "FLEX", + "laneCode": "C0903", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090803", + "zoneCode": "FLEX", + "laneCode": "C0903", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090903", + "zoneCode": "RESERVE", + "laneCode": "D0903", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091103", + "zoneCode": "CACHE", + "laneCode": "B0903", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100103", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100203", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100303", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100403", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100503", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100703", + "zoneCode": "FLEX", + "laneCode": "C1003", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100803", + "zoneCode": "FLEX", + "laneCode": "C1003", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100903", + "zoneCode": "RESERVE", + "laneCode": "D1003", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101103", + "zoneCode": "CACHE", + "laneCode": "B1003", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110103", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110203", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110303", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110403", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110503", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110703", + "zoneCode": "FLEX", + "laneCode": "C1103", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110803", + "zoneCode": "FLEX", + "laneCode": "C1103", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110903", + "zoneCode": "RESERVE", + "laneCode": "D1103", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111103", + "zoneCode": "CACHE", + "laneCode": "B1103", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120103", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120203", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120303", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120403", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120503", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120703", + "zoneCode": "FLEX", + "laneCode": "C1203", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120803", + "zoneCode": "FLEX", + "laneCode": "C1203", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120903", + "zoneCode": "RESERVE", + "laneCode": "D1203", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121103", + "zoneCode": "CACHE", + "laneCode": "B1203", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130103", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130203", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130303", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130403", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130503", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130703", + "zoneCode": "FLEX", + "laneCode": "C1303", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130803", + "zoneCode": "FLEX", + "laneCode": "C1303", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130903", + "zoneCode": "FLEX", + "laneCode": "D1303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131103", + "zoneCode": "RESERVE", + "laneCode": "B1303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140103", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140203", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140303", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140403", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140503", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141103", + "zoneCode": "RESERVE", + "laneCode": "B1403", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020504", + "zoneCode": "FLEX", + "laneCode": "A0204", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030304", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030404", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030504", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031104", + "zoneCode": "CACHE", + "laneCode": "B0304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040304", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040404", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040504", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041104", + "zoneCode": "CACHE", + "laneCode": "B0404", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050304", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050404", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050504", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051104", + "zoneCode": "CACHE", + "laneCode": "B0504", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060304", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060404", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060504", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061104", + "zoneCode": "CACHE", + "laneCode": "B0604", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070104", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070204", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070304", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070404", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070504", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071104", + "zoneCode": "CACHE", + "laneCode": "B0704", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080104", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080204", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080304", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080404", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080504", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080704", + "zoneCode": "FLEX", + "laneCode": "C0804", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080804", + "zoneCode": "FLEX", + "laneCode": "C0804", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080904", + "zoneCode": "RESERVE", + "laneCode": "D0804", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081104", + "zoneCode": "CACHE", + "laneCode": "B0804", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090104", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090204", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090304", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090404", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090504", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090704", + "zoneCode": "FLEX", + "laneCode": "C0904", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090804", + "zoneCode": "FLEX", + "laneCode": "C0904", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090904", + "zoneCode": "RESERVE", + "laneCode": "D0904", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091104", + "zoneCode": "CACHE", + "laneCode": "B0904", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100104", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100204", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100304", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100404", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100504", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100704", + "zoneCode": "FLEX", + "laneCode": "C1004", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100804", + "zoneCode": "FLEX", + "laneCode": "C1004", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100904", + "zoneCode": "RESERVE", + "laneCode": "D1004", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101104", + "zoneCode": "CACHE", + "laneCode": "B1004", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110104", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110204", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110304", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110404", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110504", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110704", + "zoneCode": "FLEX", + "laneCode": "C1104", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110804", + "zoneCode": "FLEX", + "laneCode": "C1104", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110904", + "zoneCode": "RESERVE", + "laneCode": "D1104", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111104", + "zoneCode": "CACHE", + "laneCode": "B1104", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120104", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120204", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120304", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120404", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120504", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120704", + "zoneCode": "FLEX", + "laneCode": "C1204", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120804", + "zoneCode": "FLEX", + "laneCode": "C1204", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120904", + "zoneCode": "RESERVE", + "laneCode": "D1204", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121104", + "zoneCode": "CACHE", + "laneCode": "B1204", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130104", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130204", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130304", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130404", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130504", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130704", + "zoneCode": "FLEX", + "laneCode": "C1304", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130804", + "zoneCode": "FLEX", + "laneCode": "C1304", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130904", + "zoneCode": "FLEX", + "laneCode": "D1304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131104", + "zoneCode": "RESERVE", + "laneCode": "B1304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140104", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140204", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140304", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140404", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140504", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141104", + "zoneCode": "RESERVE", + "laneCode": "B1404", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020505", + "zoneCode": "FLEX", + "laneCode": "A0205", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030305", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030405", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030505", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031105", + "zoneCode": "CACHE", + "laneCode": "B0305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040305", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040405", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040505", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041105", + "zoneCode": "CACHE", + "laneCode": "B0405", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050305", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050405", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050505", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051105", + "zoneCode": "CACHE", + "laneCode": "B0505", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060305", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060405", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060505", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061105", + "zoneCode": "CACHE", + "laneCode": "B0605", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070105", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070205", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070305", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070405", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070505", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071105", + "zoneCode": "CACHE", + "laneCode": "B0705", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080105", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080205", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080305", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080405", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080505", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080705", + "zoneCode": "FLEX", + "laneCode": "C0805", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080805", + "zoneCode": "FLEX", + "laneCode": "C0805", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080905", + "zoneCode": "RESERVE", + "laneCode": "D0805", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081105", + "zoneCode": "CACHE", + "laneCode": "B0805", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090105", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090205", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090305", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090405", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090505", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090705", + "zoneCode": "FLEX", + "laneCode": "C0905", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090805", + "zoneCode": "FLEX", + "laneCode": "C0905", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090905", + "zoneCode": "RESERVE", + "laneCode": "D0905", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091105", + "zoneCode": "CACHE", + "laneCode": "B0905", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100105", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100205", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100305", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100405", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100505", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100705", + "zoneCode": "FLEX", + "laneCode": "C1005", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100805", + "zoneCode": "FLEX", + "laneCode": "C1005", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100905", + "zoneCode": "RESERVE", + "laneCode": "D1005", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101105", + "zoneCode": "CACHE", + "laneCode": "B1005", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110105", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110205", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110305", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110405", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110505", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110705", + "zoneCode": "FLEX", + "laneCode": "C1105", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110805", + "zoneCode": "FLEX", + "laneCode": "C1105", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110905", + "zoneCode": "RESERVE", + "laneCode": "D1105", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111105", + "zoneCode": "CACHE", + "laneCode": "B1105", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120105", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120205", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120305", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120405", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120505", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120705", + "zoneCode": "FLEX", + "laneCode": "C1205", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120805", + "zoneCode": "FLEX", + "laneCode": "C1205", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120905", + "zoneCode": "RESERVE", + "laneCode": "D1205", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121105", + "zoneCode": "CACHE", + "laneCode": "B1205", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130105", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130205", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130305", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130405", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130505", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130705", + "zoneCode": "FLEX", + "laneCode": "C1305", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130805", + "zoneCode": "FLEX", + "laneCode": "C1305", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130905", + "zoneCode": "FLEX", + "laneCode": "D1305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131105", + "zoneCode": "RESERVE", + "laneCode": "B1305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140105", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140205", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140305", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140405", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140505", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141105", + "zoneCode": "RESERVE", + "laneCode": "B1405", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020506", + "zoneCode": "FLEX", + "laneCode": "A0206", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030306", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030406", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030506", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031106", + "zoneCode": "CACHE", + "laneCode": "B0306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040306", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040406", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040506", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041106", + "zoneCode": "CACHE", + "laneCode": "B0406", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050306", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050406", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050506", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051106", + "zoneCode": "CACHE", + "laneCode": "B0506", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060306", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060406", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060506", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061106", + "zoneCode": "CACHE", + "laneCode": "B0606", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070106", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070206", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070306", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070406", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070506", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071106", + "zoneCode": "CACHE", + "laneCode": "B0706", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080106", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080206", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080306", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080406", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080506", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080706", + "zoneCode": "FLEX", + "laneCode": "C0806", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080806", + "zoneCode": "FLEX", + "laneCode": "C0806", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080906", + "zoneCode": "RESERVE", + "laneCode": "D0806", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081106", + "zoneCode": "CACHE", + "laneCode": "B0806", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090106", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090206", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090306", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090406", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090506", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090706", + "zoneCode": "FLEX", + "laneCode": "C0906", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090806", + "zoneCode": "FLEX", + "laneCode": "C0906", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090906", + "zoneCode": "RESERVE", + "laneCode": "D0906", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091106", + "zoneCode": "CACHE", + "laneCode": "B0906", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100106", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100206", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100306", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100406", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100506", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100706", + "zoneCode": "FLEX", + "laneCode": "C1006", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100806", + "zoneCode": "FLEX", + "laneCode": "C1006", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100906", + "zoneCode": "RESERVE", + "laneCode": "D1006", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101106", + "zoneCode": "CACHE", + "laneCode": "B1006", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110106", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110206", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110306", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110406", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110506", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110706", + "zoneCode": "FLEX", + "laneCode": "C1106", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110806", + "zoneCode": "FLEX", + "laneCode": "C1106", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110906", + "zoneCode": "RESERVE", + "laneCode": "D1106", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111106", + "zoneCode": "CACHE", + "laneCode": "B1106", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120106", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120206", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120306", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120406", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120506", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120706", + "zoneCode": "FLEX", + "laneCode": "C1206", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120806", + "zoneCode": "FLEX", + "laneCode": "C1206", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120906", + "zoneCode": "FLEX", + "laneCode": "D1206", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121106", + "zoneCode": "CACHE", + "laneCode": "B1206", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130106", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130206", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130306", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130406", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130506", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130706", + "zoneCode": "FLEX", + "laneCode": "C1306", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130806", + "zoneCode": "FLEX", + "laneCode": "C1306", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130906", + "zoneCode": "FLEX", + "laneCode": "D1306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131106", + "zoneCode": "RESERVE", + "laneCode": "B1306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140106", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140206", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140306", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140406", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140506", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141106", + "zoneCode": "RESERVE", + "laneCode": "B1406", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020507", + "zoneCode": "FLEX", + "laneCode": "A0207", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030307", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030407", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030507", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031107", + "zoneCode": "CACHE", + "laneCode": "B0307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040307", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040407", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040507", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041107", + "zoneCode": "CACHE", + "laneCode": "B0407", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050307", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050407", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050507", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051107", + "zoneCode": "CACHE", + "laneCode": "B0507", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060307", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060407", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060507", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061107", + "zoneCode": "CACHE", + "laneCode": "B0607", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070107", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070207", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070307", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070407", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070507", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071107", + "zoneCode": "CACHE", + "laneCode": "B0707", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080107", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080207", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080307", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080407", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080507", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080707", + "zoneCode": "FLEX", + "laneCode": "C0807", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080807", + "zoneCode": "FLEX", + "laneCode": "C0807", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080907", + "zoneCode": "RESERVE", + "laneCode": "D0807", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081107", + "zoneCode": "CACHE", + "laneCode": "B0807", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090107", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090207", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090307", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090407", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090507", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090707", + "zoneCode": "FLEX", + "laneCode": "C0907", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090807", + "zoneCode": "FLEX", + "laneCode": "C0907", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090907", + "zoneCode": "RESERVE", + "laneCode": "D0907", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091107", + "zoneCode": "CACHE", + "laneCode": "B0907", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100107", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100207", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100307", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100407", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100507", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100707", + "zoneCode": "FLEX", + "laneCode": "C1007", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100807", + "zoneCode": "FLEX", + "laneCode": "C1007", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100907", + "zoneCode": "RESERVE", + "laneCode": "D1007", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101107", + "zoneCode": "CACHE", + "laneCode": "B1007", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110107", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110207", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110307", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110407", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110507", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110707", + "zoneCode": "FLEX", + "laneCode": "C1107", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110807", + "zoneCode": "FLEX", + "laneCode": "C1107", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110907", + "zoneCode": "RESERVE", + "laneCode": "D1107", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111107", + "zoneCode": "CACHE", + "laneCode": "B1107", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120107", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120207", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120307", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120407", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120507", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120707", + "zoneCode": "FLEX", + "laneCode": "C1207", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120807", + "zoneCode": "FLEX", + "laneCode": "C1207", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120907", + "zoneCode": "FLEX", + "laneCode": "D1207", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121107", + "zoneCode": "CACHE", + "laneCode": "B1207", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130107", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130207", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130307", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130407", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130507", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130707", + "zoneCode": "FLEX", + "laneCode": "C1307", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130807", + "zoneCode": "FLEX", + "laneCode": "C1307", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130907", + "zoneCode": "FLEX", + "laneCode": "D1307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131107", + "zoneCode": "RESERVE", + "laneCode": "B1307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140107", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140207", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140307", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140407", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140507", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141107", + "zoneCode": "RESERVE", + "laneCode": "B1407", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030308", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030408", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030508", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031108", + "zoneCode": "CACHE", + "laneCode": "B0308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040308", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040408", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040508", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041108", + "zoneCode": "CACHE", + "laneCode": "B0408", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050308", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050408", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050508", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051108", + "zoneCode": "CACHE", + "laneCode": "B0508", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060308", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060408", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060508", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061108", + "zoneCode": "CACHE", + "laneCode": "B0608", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070108", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-0", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070208", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-1", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070308", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-2", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070408", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-3", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070508", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071108", + "zoneCode": "CACHE", + "laneCode": "B0708", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080108", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080208", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080308", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080408", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080508", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080708", + "zoneCode": "FLEX", + "laneCode": "C0808", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080808", + "zoneCode": "FLEX", + "laneCode": "C0808", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080908", + "zoneCode": "RESERVE", + "laneCode": "D0808", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081108", + "zoneCode": "CACHE", + "laneCode": "B0808", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090108", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090208", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090308", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090408", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090508", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090708", + "zoneCode": "FLEX", + "laneCode": "C0908", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090808", + "zoneCode": "FLEX", + "laneCode": "C0908", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090908", + "zoneCode": "RESERVE", + "laneCode": "D0908", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091108", + "zoneCode": "CACHE", + "laneCode": "B0908", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100108", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100208", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100308", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100408", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100508", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100708", + "zoneCode": "FLEX", + "laneCode": "C1008", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100808", + "zoneCode": "FLEX", + "laneCode": "C1008", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100908", + "zoneCode": "RESERVE", + "laneCode": "D1008", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101108", + "zoneCode": "CACHE", + "laneCode": "B1008", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110108", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110208", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110308", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110408", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110508", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110708", + "zoneCode": "FLEX", + "laneCode": "C1108", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110808", + "zoneCode": "FLEX", + "laneCode": "C1108", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110908", + "zoneCode": "RESERVE", + "laneCode": "D1108", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111108", + "zoneCode": "CACHE", + "laneCode": "B1108", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120108", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120208", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120308", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120408", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120508", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120708", + "zoneCode": "FLEX", + "laneCode": "C1208", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120808", + "zoneCode": "FLEX", + "laneCode": "C1208", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120908", + "zoneCode": "FLEX", + "laneCode": "D1208", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121108", + "zoneCode": "CACHE", + "laneCode": "B1208", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130108", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130208", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130308", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130408", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130508", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130708", + "zoneCode": "FLEX", + "laneCode": "C1308", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130808", + "zoneCode": "FLEX", + "laneCode": "C1308", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130908", + "zoneCode": "FLEX", + "laneCode": "D1308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131108", + "zoneCode": "RESERVE", + "laneCode": "B1308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140108", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140208", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140308", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140408", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140508", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141108", + "zoneCode": "RESERVE", + "laneCode": "B1408", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + } + ], + "expected": { + "planStatus": "READY", + "taskPlanCount": 1, + "plannedCount": 1, + "rejectedCount": 0, + "executionState": "READY_WITH_ELEVATOR_TOKEN", + "spaceId": "070508", + "laneCode": "A0708", + "ladderRung": "CONTINUE", + "capacityScore": 92.6, + "efficiencyScore": 13.1, + "totalScore": 84.7, + "openedNewLane": false + } + }, + { + "id": "efficiency-inbound", + "kind": "INBOUND", + "policy": { + "capacityWeight": 0.1, + "efficiencyWeight": 0.9 + }, + "request": { + "requestId": "IN-EFFICIENCY", + "trayNo": "TRAY-EFFICIENCY", + "projectNo": "P-NEW", + "productId": "M-NEW", + "lotNo": null, + "expectedProjectPallets": null, + "entryFloor": 1, + "targetFloor": null, + "batchLaneMode": "OPEN" + }, + "spaces": [ + { + "spaceId": "020501", + "zoneCode": "FLEX", + "laneCode": "A0201", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030301", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-NEAR", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030401", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030501", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031101", + "zoneCode": "CACHE", + "laneCode": "B0301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040301", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040401", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040501", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041101", + "zoneCode": "CACHE", + "laneCode": "B0401", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050301", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050401", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050501", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051101", + "zoneCode": "CACHE", + "laneCode": "B0501", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060301", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060401", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060501", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061101", + "zoneCode": "CACHE", + "laneCode": "B0601", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070101", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070201", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070301", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070401", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070501", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071101", + "zoneCode": "CACHE", + "laneCode": "B0701", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080101", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080201", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080301", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080401", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080501", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080701", + "zoneCode": "FLEX", + "laneCode": "C0801", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080801", + "zoneCode": "FLEX", + "laneCode": "C0801", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080901", + "zoneCode": "RESERVE", + "laneCode": "D0801", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081101", + "zoneCode": "CACHE", + "laneCode": "B0801", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090101", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090201", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090301", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090401", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090501", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090701", + "zoneCode": "FLEX", + "laneCode": "C0901", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090801", + "zoneCode": "FLEX", + "laneCode": "C0901", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090901", + "zoneCode": "RESERVE", + "laneCode": "D0901", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091101", + "zoneCode": "CACHE", + "laneCode": "B0901", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100101", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100201", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100301", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100401", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100501", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100701", + "zoneCode": "FLEX", + "laneCode": "C1001", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100801", + "zoneCode": "FLEX", + "laneCode": "C1001", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100901", + "zoneCode": "RESERVE", + "laneCode": "D1001", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101101", + "zoneCode": "CACHE", + "laneCode": "B1001", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110101", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110201", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110301", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110401", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110501", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110701", + "zoneCode": "FLEX", + "laneCode": "C1101", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110801", + "zoneCode": "FLEX", + "laneCode": "C1101", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110901", + "zoneCode": "RESERVE", + "laneCode": "D1101", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111101", + "zoneCode": "CACHE", + "laneCode": "B1101", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120101", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120201", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120301", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120401", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120501", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120701", + "zoneCode": "FLEX", + "laneCode": "C1201", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120801", + "zoneCode": "FLEX", + "laneCode": "C1201", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120901", + "zoneCode": "RESERVE", + "laneCode": "D1201", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121101", + "zoneCode": "CACHE", + "laneCode": "B1201", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130101", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130201", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130301", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130401", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130501", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130701", + "zoneCode": "FLEX", + "laneCode": "C1301", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130801", + "zoneCode": "FLEX", + "laneCode": "C1301", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130901", + "zoneCode": "FLEX", + "laneCode": "D1301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131101", + "zoneCode": "RESERVE", + "laneCode": "B1301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140101", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140201", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140301", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140401", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140501", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141101", + "zoneCode": "RESERVE", + "laneCode": "B1401", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020502", + "zoneCode": "FLEX", + "laneCode": "A0202", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030302", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030402", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030502", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031102", + "zoneCode": "CACHE", + "laneCode": "B0302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040302", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040402", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040502", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041102", + "zoneCode": "CACHE", + "laneCode": "B0402", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050302", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050402", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050502", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051102", + "zoneCode": "CACHE", + "laneCode": "B0502", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060302", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060402", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060502", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061102", + "zoneCode": "CACHE", + "laneCode": "B0602", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070102", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070202", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070302", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070402", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070502", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071102", + "zoneCode": "CACHE", + "laneCode": "B0702", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080102", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080202", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080302", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080402", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080502", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080702", + "zoneCode": "FLEX", + "laneCode": "C0802", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080802", + "zoneCode": "FLEX", + "laneCode": "C0802", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080902", + "zoneCode": "RESERVE", + "laneCode": "D0802", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081102", + "zoneCode": "CACHE", + "laneCode": "B0802", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090102", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090202", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090302", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090402", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090502", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090702", + "zoneCode": "FLEX", + "laneCode": "C0902", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090802", + "zoneCode": "FLEX", + "laneCode": "C0902", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090902", + "zoneCode": "RESERVE", + "laneCode": "D0902", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091102", + "zoneCode": "CACHE", + "laneCode": "B0902", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100102", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100202", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100302", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100402", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100502", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100702", + "zoneCode": "FLEX", + "laneCode": "C1002", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100802", + "zoneCode": "FLEX", + "laneCode": "C1002", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100902", + "zoneCode": "RESERVE", + "laneCode": "D1002", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101102", + "zoneCode": "CACHE", + "laneCode": "B1002", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110102", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110202", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110302", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110402", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110502", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110702", + "zoneCode": "FLEX", + "laneCode": "C1102", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110802", + "zoneCode": "FLEX", + "laneCode": "C1102", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110902", + "zoneCode": "RESERVE", + "laneCode": "D1102", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111102", + "zoneCode": "CACHE", + "laneCode": "B1102", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120102", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120202", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120302", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120402", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120502", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120702", + "zoneCode": "FLEX", + "laneCode": "C1202", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120802", + "zoneCode": "FLEX", + "laneCode": "C1202", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120902", + "zoneCode": "RESERVE", + "laneCode": "D1202", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121102", + "zoneCode": "CACHE", + "laneCode": "B1202", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130102", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130202", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130302", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130402", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130502", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130702", + "zoneCode": "FLEX", + "laneCode": "C1302", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130802", + "zoneCode": "FLEX", + "laneCode": "C1302", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130902", + "zoneCode": "FLEX", + "laneCode": "D1302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131102", + "zoneCode": "RESERVE", + "laneCode": "B1302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140102", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140202", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140302", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140402", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140502", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141102", + "zoneCode": "RESERVE", + "laneCode": "B1402", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020503", + "zoneCode": "FLEX", + "laneCode": "A0203", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030303", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030403", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030503", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031103", + "zoneCode": "CACHE", + "laneCode": "B0303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040303", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040403", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040503", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041103", + "zoneCode": "CACHE", + "laneCode": "B0403", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050303", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050403", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050503", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051103", + "zoneCode": "CACHE", + "laneCode": "B0503", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060303", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060403", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060503", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061103", + "zoneCode": "CACHE", + "laneCode": "B0603", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070103", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070203", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070303", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070403", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070503", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071103", + "zoneCode": "CACHE", + "laneCode": "B0703", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080103", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080203", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080303", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080403", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080503", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080703", + "zoneCode": "FLEX", + "laneCode": "C0803", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080803", + "zoneCode": "FLEX", + "laneCode": "C0803", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080903", + "zoneCode": "RESERVE", + "laneCode": "D0803", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081103", + "zoneCode": "CACHE", + "laneCode": "B0803", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090103", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090203", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090303", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090403", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090503", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090703", + "zoneCode": "FLEX", + "laneCode": "C0903", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090803", + "zoneCode": "FLEX", + "laneCode": "C0903", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090903", + "zoneCode": "RESERVE", + "laneCode": "D0903", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091103", + "zoneCode": "CACHE", + "laneCode": "B0903", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100103", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100203", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100303", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100403", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100503", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100703", + "zoneCode": "FLEX", + "laneCode": "C1003", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100803", + "zoneCode": "FLEX", + "laneCode": "C1003", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100903", + "zoneCode": "RESERVE", + "laneCode": "D1003", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101103", + "zoneCode": "CACHE", + "laneCode": "B1003", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110103", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110203", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110303", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110403", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110503", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110703", + "zoneCode": "FLEX", + "laneCode": "C1103", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110803", + "zoneCode": "FLEX", + "laneCode": "C1103", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110903", + "zoneCode": "RESERVE", + "laneCode": "D1103", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111103", + "zoneCode": "CACHE", + "laneCode": "B1103", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120103", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120203", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120303", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120403", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120503", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120703", + "zoneCode": "FLEX", + "laneCode": "C1203", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120803", + "zoneCode": "FLEX", + "laneCode": "C1203", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120903", + "zoneCode": "RESERVE", + "laneCode": "D1203", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121103", + "zoneCode": "CACHE", + "laneCode": "B1203", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130103", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130203", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130303", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130403", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130503", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130703", + "zoneCode": "FLEX", + "laneCode": "C1303", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130803", + "zoneCode": "FLEX", + "laneCode": "C1303", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130903", + "zoneCode": "FLEX", + "laneCode": "D1303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131103", + "zoneCode": "RESERVE", + "laneCode": "B1303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140103", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140203", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140303", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140403", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140503", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141103", + "zoneCode": "RESERVE", + "laneCode": "B1403", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020504", + "zoneCode": "FLEX", + "laneCode": "A0204", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030304", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030404", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030504", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031104", + "zoneCode": "CACHE", + "laneCode": "B0304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040304", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040404", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040504", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041104", + "zoneCode": "CACHE", + "laneCode": "B0404", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050304", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050404", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050504", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051104", + "zoneCode": "CACHE", + "laneCode": "B0504", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060304", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060404", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060504", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061104", + "zoneCode": "CACHE", + "laneCode": "B0604", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070104", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070204", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070304", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070404", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070504", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071104", + "zoneCode": "CACHE", + "laneCode": "B0704", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080104", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080204", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080304", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080404", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080504", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080704", + "zoneCode": "FLEX", + "laneCode": "C0804", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080804", + "zoneCode": "FLEX", + "laneCode": "C0804", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080904", + "zoneCode": "RESERVE", + "laneCode": "D0804", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081104", + "zoneCode": "CACHE", + "laneCode": "B0804", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090104", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090204", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090304", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090404", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090504", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090704", + "zoneCode": "FLEX", + "laneCode": "C0904", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090804", + "zoneCode": "FLEX", + "laneCode": "C0904", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090904", + "zoneCode": "RESERVE", + "laneCode": "D0904", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091104", + "zoneCode": "CACHE", + "laneCode": "B0904", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100104", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100204", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100304", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100404", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100504", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100704", + "zoneCode": "FLEX", + "laneCode": "C1004", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100804", + "zoneCode": "FLEX", + "laneCode": "C1004", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100904", + "zoneCode": "RESERVE", + "laneCode": "D1004", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101104", + "zoneCode": "CACHE", + "laneCode": "B1004", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110104", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110204", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110304", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110404", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110504", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110704", + "zoneCode": "FLEX", + "laneCode": "C1104", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110804", + "zoneCode": "FLEX", + "laneCode": "C1104", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110904", + "zoneCode": "RESERVE", + "laneCode": "D1104", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111104", + "zoneCode": "CACHE", + "laneCode": "B1104", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120104", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120204", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120304", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120404", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120504", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120704", + "zoneCode": "FLEX", + "laneCode": "C1204", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120804", + "zoneCode": "FLEX", + "laneCode": "C1204", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120904", + "zoneCode": "RESERVE", + "laneCode": "D1204", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121104", + "zoneCode": "CACHE", + "laneCode": "B1204", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130104", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130204", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130304", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130404", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130504", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130704", + "zoneCode": "FLEX", + "laneCode": "C1304", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130804", + "zoneCode": "FLEX", + "laneCode": "C1304", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130904", + "zoneCode": "FLEX", + "laneCode": "D1304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131104", + "zoneCode": "RESERVE", + "laneCode": "B1304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140104", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140204", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140304", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140404", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140504", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141104", + "zoneCode": "RESERVE", + "laneCode": "B1404", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020505", + "zoneCode": "FLEX", + "laneCode": "A0205", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030305", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030405", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030505", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031105", + "zoneCode": "CACHE", + "laneCode": "B0305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040305", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040405", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040505", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041105", + "zoneCode": "CACHE", + "laneCode": "B0405", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050305", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050405", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050505", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051105", + "zoneCode": "CACHE", + "laneCode": "B0505", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060305", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060405", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060505", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061105", + "zoneCode": "CACHE", + "laneCode": "B0605", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070105", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070205", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070305", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070405", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070505", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071105", + "zoneCode": "CACHE", + "laneCode": "B0705", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080105", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080205", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080305", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080405", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080505", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080705", + "zoneCode": "FLEX", + "laneCode": "C0805", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080805", + "zoneCode": "FLEX", + "laneCode": "C0805", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080905", + "zoneCode": "RESERVE", + "laneCode": "D0805", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081105", + "zoneCode": "CACHE", + "laneCode": "B0805", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090105", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090205", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090305", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090405", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090505", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090705", + "zoneCode": "FLEX", + "laneCode": "C0905", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090805", + "zoneCode": "FLEX", + "laneCode": "C0905", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090905", + "zoneCode": "RESERVE", + "laneCode": "D0905", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091105", + "zoneCode": "CACHE", + "laneCode": "B0905", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100105", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100205", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100305", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100405", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100505", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100705", + "zoneCode": "FLEX", + "laneCode": "C1005", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100805", + "zoneCode": "FLEX", + "laneCode": "C1005", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100905", + "zoneCode": "RESERVE", + "laneCode": "D1005", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101105", + "zoneCode": "CACHE", + "laneCode": "B1005", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110105", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110205", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110305", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110405", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110505", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110705", + "zoneCode": "FLEX", + "laneCode": "C1105", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110805", + "zoneCode": "FLEX", + "laneCode": "C1105", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110905", + "zoneCode": "RESERVE", + "laneCode": "D1105", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111105", + "zoneCode": "CACHE", + "laneCode": "B1105", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120105", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120205", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120305", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120405", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120505", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120705", + "zoneCode": "FLEX", + "laneCode": "C1205", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120805", + "zoneCode": "FLEX", + "laneCode": "C1205", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120905", + "zoneCode": "RESERVE", + "laneCode": "D1205", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121105", + "zoneCode": "CACHE", + "laneCode": "B1205", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130105", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130205", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130305", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130405", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130505", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130705", + "zoneCode": "FLEX", + "laneCode": "C1305", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130805", + "zoneCode": "FLEX", + "laneCode": "C1305", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130905", + "zoneCode": "FLEX", + "laneCode": "D1305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131105", + "zoneCode": "RESERVE", + "laneCode": "B1305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140105", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140205", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140305", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140405", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140505", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141105", + "zoneCode": "RESERVE", + "laneCode": "B1405", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020506", + "zoneCode": "FLEX", + "laneCode": "A0206", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030306", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030406", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030506", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031106", + "zoneCode": "CACHE", + "laneCode": "B0306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040306", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040406", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040506", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041106", + "zoneCode": "CACHE", + "laneCode": "B0406", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050306", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050406", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050506", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051106", + "zoneCode": "CACHE", + "laneCode": "B0506", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060306", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060406", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060506", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061106", + "zoneCode": "CACHE", + "laneCode": "B0606", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070106", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070206", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070306", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070406", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070506", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071106", + "zoneCode": "CACHE", + "laneCode": "B0706", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080106", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080206", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080306", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080406", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080506", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080706", + "zoneCode": "FLEX", + "laneCode": "C0806", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080806", + "zoneCode": "FLEX", + "laneCode": "C0806", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080906", + "zoneCode": "RESERVE", + "laneCode": "D0806", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081106", + "zoneCode": "CACHE", + "laneCode": "B0806", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090106", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090206", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090306", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090406", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090506", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090706", + "zoneCode": "FLEX", + "laneCode": "C0906", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090806", + "zoneCode": "FLEX", + "laneCode": "C0906", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090906", + "zoneCode": "RESERVE", + "laneCode": "D0906", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091106", + "zoneCode": "CACHE", + "laneCode": "B0906", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100106", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100206", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100306", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100406", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100506", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100706", + "zoneCode": "FLEX", + "laneCode": "C1006", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100806", + "zoneCode": "FLEX", + "laneCode": "C1006", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100906", + "zoneCode": "RESERVE", + "laneCode": "D1006", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101106", + "zoneCode": "CACHE", + "laneCode": "B1006", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110106", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110206", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110306", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110406", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110506", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110706", + "zoneCode": "FLEX", + "laneCode": "C1106", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110806", + "zoneCode": "FLEX", + "laneCode": "C1106", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110906", + "zoneCode": "RESERVE", + "laneCode": "D1106", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111106", + "zoneCode": "CACHE", + "laneCode": "B1106", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120106", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120206", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120306", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120406", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120506", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120706", + "zoneCode": "FLEX", + "laneCode": "C1206", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120806", + "zoneCode": "FLEX", + "laneCode": "C1206", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120906", + "zoneCode": "FLEX", + "laneCode": "D1206", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121106", + "zoneCode": "CACHE", + "laneCode": "B1206", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130106", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130206", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130306", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130406", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130506", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130706", + "zoneCode": "FLEX", + "laneCode": "C1306", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130806", + "zoneCode": "FLEX", + "laneCode": "C1306", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130906", + "zoneCode": "FLEX", + "laneCode": "D1306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131106", + "zoneCode": "RESERVE", + "laneCode": "B1306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140106", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140206", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140306", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140406", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140506", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141106", + "zoneCode": "RESERVE", + "laneCode": "B1406", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020507", + "zoneCode": "FLEX", + "laneCode": "A0207", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030307", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030407", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030507", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031107", + "zoneCode": "CACHE", + "laneCode": "B0307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040307", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040407", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040507", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041107", + "zoneCode": "CACHE", + "laneCode": "B0407", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050307", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050407", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050507", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051107", + "zoneCode": "CACHE", + "laneCode": "B0507", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060307", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060407", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060507", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061107", + "zoneCode": "CACHE", + "laneCode": "B0607", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070107", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070207", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070307", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070407", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070507", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071107", + "zoneCode": "CACHE", + "laneCode": "B0707", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080107", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080207", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080307", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080407", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080507", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080707", + "zoneCode": "FLEX", + "laneCode": "C0807", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080807", + "zoneCode": "FLEX", + "laneCode": "C0807", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080907", + "zoneCode": "RESERVE", + "laneCode": "D0807", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081107", + "zoneCode": "CACHE", + "laneCode": "B0807", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090107", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090207", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090307", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090407", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090507", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090707", + "zoneCode": "FLEX", + "laneCode": "C0907", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090807", + "zoneCode": "FLEX", + "laneCode": "C0907", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090907", + "zoneCode": "RESERVE", + "laneCode": "D0907", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091107", + "zoneCode": "CACHE", + "laneCode": "B0907", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100107", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100207", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100307", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100407", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100507", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100707", + "zoneCode": "FLEX", + "laneCode": "C1007", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100807", + "zoneCode": "FLEX", + "laneCode": "C1007", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100907", + "zoneCode": "RESERVE", + "laneCode": "D1007", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101107", + "zoneCode": "CACHE", + "laneCode": "B1007", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110107", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110207", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110307", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110407", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110507", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110707", + "zoneCode": "FLEX", + "laneCode": "C1107", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110807", + "zoneCode": "FLEX", + "laneCode": "C1107", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110907", + "zoneCode": "RESERVE", + "laneCode": "D1107", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111107", + "zoneCode": "CACHE", + "laneCode": "B1107", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120107", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120207", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120307", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120407", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120507", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120707", + "zoneCode": "FLEX", + "laneCode": "C1207", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120807", + "zoneCode": "FLEX", + "laneCode": "C1207", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120907", + "zoneCode": "FLEX", + "laneCode": "D1207", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121107", + "zoneCode": "CACHE", + "laneCode": "B1207", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130107", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130207", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130307", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130407", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130507", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130707", + "zoneCode": "FLEX", + "laneCode": "C1307", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130807", + "zoneCode": "FLEX", + "laneCode": "C1307", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130907", + "zoneCode": "FLEX", + "laneCode": "D1307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131107", + "zoneCode": "RESERVE", + "laneCode": "B1307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140107", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140207", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140307", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140407", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140507", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141107", + "zoneCode": "RESERVE", + "laneCode": "B1407", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030308", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030408", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030508", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031108", + "zoneCode": "CACHE", + "laneCode": "B0308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040308", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040408", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040508", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041108", + "zoneCode": "CACHE", + "laneCode": "B0408", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050308", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050408", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050508", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051108", + "zoneCode": "CACHE", + "laneCode": "B0508", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060308", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060408", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060508", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061108", + "zoneCode": "CACHE", + "laneCode": "B0608", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070108", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-0", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070208", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-1", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070308", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-2", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070408", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "OPEN-3", + "projectNo": "P-NEW", + "productId": "M-OLD", + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070508", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071108", + "zoneCode": "CACHE", + "laneCode": "B0708", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080108", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080208", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080308", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080408", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080508", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080708", + "zoneCode": "FLEX", + "laneCode": "C0808", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080808", + "zoneCode": "FLEX", + "laneCode": "C0808", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080908", + "zoneCode": "RESERVE", + "laneCode": "D0808", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081108", + "zoneCode": "CACHE", + "laneCode": "B0808", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090108", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090208", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090308", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090408", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090508", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090708", + "zoneCode": "FLEX", + "laneCode": "C0908", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090808", + "zoneCode": "FLEX", + "laneCode": "C0908", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090908", + "zoneCode": "RESERVE", + "laneCode": "D0908", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091108", + "zoneCode": "CACHE", + "laneCode": "B0908", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100108", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100208", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100308", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100408", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100508", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100708", + "zoneCode": "FLEX", + "laneCode": "C1008", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100808", + "zoneCode": "FLEX", + "laneCode": "C1008", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100908", + "zoneCode": "RESERVE", + "laneCode": "D1008", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101108", + "zoneCode": "CACHE", + "laneCode": "B1008", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110108", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110208", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110308", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110408", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110508", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110708", + "zoneCode": "FLEX", + "laneCode": "C1108", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110808", + "zoneCode": "FLEX", + "laneCode": "C1108", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110908", + "zoneCode": "RESERVE", + "laneCode": "D1108", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111108", + "zoneCode": "CACHE", + "laneCode": "B1108", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120108", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120208", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120308", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120408", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120508", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120708", + "zoneCode": "FLEX", + "laneCode": "C1208", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120808", + "zoneCode": "FLEX", + "laneCode": "C1208", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120908", + "zoneCode": "FLEX", + "laneCode": "D1208", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121108", + "zoneCode": "CACHE", + "laneCode": "B1208", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130108", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130208", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130308", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130408", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130508", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130708", + "zoneCode": "FLEX", + "laneCode": "C1308", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130808", + "zoneCode": "FLEX", + "laneCode": "C1308", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130908", + "zoneCode": "FLEX", + "laneCode": "D1308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131108", + "zoneCode": "RESERVE", + "laneCode": "B1308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140108", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140208", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140308", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140408", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140508", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141108", + "zoneCode": "RESERVE", + "laneCode": "B1408", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + } + ], + "expected": { + "planStatus": "READY", + "taskPlanCount": 1, + "plannedCount": 1, + "rejectedCount": 0, + "executionState": "READY", + "spaceId": "030401", + "laneCode": "A0301", + "ladderRung": "CONTINUE", + "capacityScore": 72.3, + "efficiencyScore": 96.9, + "totalScore": 94.4, + "openedNewLane": false + } + }, + { + "id": "fifo-strict-outbound", + "kind": "OUTBOUND", + "policy": { + "capacityWeight": 0.5, + "efficiencyWeight": 0.5 + }, + "request": { + "requestId": "OUT-FIFO-STRICT", + "trayNo": null, + "projectNo": "P-FIFO-DEMO", + "productId": "M-FIFO-DEMO", + "fifoMode": "STRICT", + "fifoToleranceMinutes": 0, + "exitFloor": 1 + }, + "spaces": [ + { + "spaceId": "020501", + "zoneCode": "FLEX", + "laneCode": "A0201", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030301", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030401", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030501", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031101", + "zoneCode": "CACHE", + "laneCode": "B0301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040301", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040401", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040501", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041101", + "zoneCode": "CACHE", + "laneCode": "B0401", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050301", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050401", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050501", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051101", + "zoneCode": "CACHE", + "laneCode": "B0501", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060301", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060401", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060501", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061101", + "zoneCode": "CACHE", + "laneCode": "B0601", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070101", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070201", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070301", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070401", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070501", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071101", + "zoneCode": "CACHE", + "laneCode": "B0701", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080101", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT-INNER-1", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-02", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "080201", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT-INNER-2", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-02", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "080301", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT-INNER-3", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-02", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "080401", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT-INNER-4", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-02", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "080501", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT", + "projectNo": "P-FIFO-DEMO", + "productId": "M-FIFO-DEMO", + "lotNo": "FIFO-LOT-02", + "inboundAt": "2026-07-01T20:00:00+08:00" + }, + { + "spaceId": "080701", + "zoneCode": "FLEX", + "laneCode": "C0801", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080801", + "zoneCode": "FLEX", + "laneCode": "C0801", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080901", + "zoneCode": "RESERVE", + "laneCode": "D0801", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081101", + "zoneCode": "CACHE", + "laneCode": "B0801", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090101", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090201", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090301", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090401", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090501", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090701", + "zoneCode": "FLEX", + "laneCode": "C0901", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090801", + "zoneCode": "FLEX", + "laneCode": "C0901", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090901", + "zoneCode": "RESERVE", + "laneCode": "D0901", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091101", + "zoneCode": "CACHE", + "laneCode": "B0901", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100101", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100201", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100301", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100401", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100501", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100701", + "zoneCode": "FLEX", + "laneCode": "C1001", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100801", + "zoneCode": "FLEX", + "laneCode": "C1001", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100901", + "zoneCode": "RESERVE", + "laneCode": "D1001", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101101", + "zoneCode": "CACHE", + "laneCode": "B1001", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110101", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110201", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110301", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110401", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110501", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110701", + "zoneCode": "FLEX", + "laneCode": "C1101", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110801", + "zoneCode": "FLEX", + "laneCode": "C1101", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110901", + "zoneCode": "RESERVE", + "laneCode": "D1101", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111101", + "zoneCode": "CACHE", + "laneCode": "B1101", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120101", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120201", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120301", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120401", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120501", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120701", + "zoneCode": "FLEX", + "laneCode": "C1201", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120801", + "zoneCode": "FLEX", + "laneCode": "C1201", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120901", + "zoneCode": "RESERVE", + "laneCode": "D1201", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121101", + "zoneCode": "CACHE", + "laneCode": "B1201", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130101", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130201", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130301", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130401", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130501", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130701", + "zoneCode": "FLEX", + "laneCode": "C1301", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130801", + "zoneCode": "FLEX", + "laneCode": "C1301", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130901", + "zoneCode": "FLEX", + "laneCode": "D1301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131101", + "zoneCode": "RESERVE", + "laneCode": "B1301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140101", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140201", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140301", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140401", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140501", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141101", + "zoneCode": "RESERVE", + "laneCode": "B1401", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020502", + "zoneCode": "FLEX", + "laneCode": "A0202", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030302", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030402", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030502", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031102", + "zoneCode": "CACHE", + "laneCode": "B0302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040302", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040402", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040502", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041102", + "zoneCode": "CACHE", + "laneCode": "B0402", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050302", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050402", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050502", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051102", + "zoneCode": "CACHE", + "laneCode": "B0502", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060302", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060402", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060502", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061102", + "zoneCode": "CACHE", + "laneCode": "B0602", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070102", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070202", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070302", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070402", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070502", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071102", + "zoneCode": "CACHE", + "laneCode": "B0702", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080102", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080202", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080302", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080402", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080502", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080702", + "zoneCode": "FLEX", + "laneCode": "C0802", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080802", + "zoneCode": "FLEX", + "laneCode": "C0802", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080902", + "zoneCode": "RESERVE", + "laneCode": "D0802", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081102", + "zoneCode": "CACHE", + "laneCode": "B0802", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090102", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090202", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090302", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090402", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090502", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090702", + "zoneCode": "FLEX", + "laneCode": "C0902", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090802", + "zoneCode": "FLEX", + "laneCode": "C0902", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090902", + "zoneCode": "RESERVE", + "laneCode": "D0902", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091102", + "zoneCode": "CACHE", + "laneCode": "B0902", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100102", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100202", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100302", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100402", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100502", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100702", + "zoneCode": "FLEX", + "laneCode": "C1002", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100802", + "zoneCode": "FLEX", + "laneCode": "C1002", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100902", + "zoneCode": "RESERVE", + "laneCode": "D1002", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101102", + "zoneCode": "CACHE", + "laneCode": "B1002", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110102", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110202", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110302", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110402", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110502", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110702", + "zoneCode": "FLEX", + "laneCode": "C1102", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110802", + "zoneCode": "FLEX", + "laneCode": "C1102", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110902", + "zoneCode": "RESERVE", + "laneCode": "D1102", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111102", + "zoneCode": "CACHE", + "laneCode": "B1102", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120102", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120202", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120302", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120402", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120502", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120702", + "zoneCode": "FLEX", + "laneCode": "C1202", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120802", + "zoneCode": "FLEX", + "laneCode": "C1202", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120902", + "zoneCode": "RESERVE", + "laneCode": "D1202", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121102", + "zoneCode": "CACHE", + "laneCode": "B1202", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130102", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130202", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130302", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130402", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130502", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130702", + "zoneCode": "FLEX", + "laneCode": "C1302", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130802", + "zoneCode": "FLEX", + "laneCode": "C1302", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130902", + "zoneCode": "FLEX", + "laneCode": "D1302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131102", + "zoneCode": "RESERVE", + "laneCode": "B1302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140102", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140202", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140302", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140402", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140502", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141102", + "zoneCode": "RESERVE", + "laneCode": "B1402", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020503", + "zoneCode": "FLEX", + "laneCode": "A0203", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030303", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030403", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030503", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031103", + "zoneCode": "CACHE", + "laneCode": "B0303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040303", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040403", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040503", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041103", + "zoneCode": "CACHE", + "laneCode": "B0403", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050303", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050403", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050503", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051103", + "zoneCode": "CACHE", + "laneCode": "B0503", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060303", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060403", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060503", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061103", + "zoneCode": "CACHE", + "laneCode": "B0603", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070103", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070203", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070303", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070403", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070503", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071103", + "zoneCode": "CACHE", + "laneCode": "B0703", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080103", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080203", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080303", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080403", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080503", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080703", + "zoneCode": "FLEX", + "laneCode": "C0803", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080803", + "zoneCode": "FLEX", + "laneCode": "C0803", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080903", + "zoneCode": "RESERVE", + "laneCode": "D0803", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081103", + "zoneCode": "CACHE", + "laneCode": "B0803", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090103", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090203", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090303", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090403", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090503", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090703", + "zoneCode": "FLEX", + "laneCode": "C0903", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090803", + "zoneCode": "FLEX", + "laneCode": "C0903", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090903", + "zoneCode": "RESERVE", + "laneCode": "D0903", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091103", + "zoneCode": "CACHE", + "laneCode": "B0903", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100103", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100203", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100303", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100403", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100503", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100703", + "zoneCode": "FLEX", + "laneCode": "C1003", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100803", + "zoneCode": "FLEX", + "laneCode": "C1003", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100903", + "zoneCode": "RESERVE", + "laneCode": "D1003", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101103", + "zoneCode": "CACHE", + "laneCode": "B1003", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110103", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110203", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110303", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110403", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110503", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110703", + "zoneCode": "FLEX", + "laneCode": "C1103", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110803", + "zoneCode": "FLEX", + "laneCode": "C1103", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110903", + "zoneCode": "RESERVE", + "laneCode": "D1103", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111103", + "zoneCode": "CACHE", + "laneCode": "B1103", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120103", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120203", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120303", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120403", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120503", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120703", + "zoneCode": "FLEX", + "laneCode": "C1203", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120803", + "zoneCode": "FLEX", + "laneCode": "C1203", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120903", + "zoneCode": "RESERVE", + "laneCode": "D1203", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121103", + "zoneCode": "CACHE", + "laneCode": "B1203", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130103", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130203", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130303", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130403", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130503", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130703", + "zoneCode": "FLEX", + "laneCode": "C1303", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130803", + "zoneCode": "FLEX", + "laneCode": "C1303", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130903", + "zoneCode": "FLEX", + "laneCode": "D1303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131103", + "zoneCode": "RESERVE", + "laneCode": "B1303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140103", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140203", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140303", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140403", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140503", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141103", + "zoneCode": "RESERVE", + "laneCode": "B1403", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020504", + "zoneCode": "FLEX", + "laneCode": "A0204", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030304", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030404", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030504", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031104", + "zoneCode": "CACHE", + "laneCode": "B0304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040304", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040404", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040504", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041104", + "zoneCode": "CACHE", + "laneCode": "B0404", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050304", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050404", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050504", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051104", + "zoneCode": "CACHE", + "laneCode": "B0504", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060304", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060404", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060504", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061104", + "zoneCode": "CACHE", + "laneCode": "B0604", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070104", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070204", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070304", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070404", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070504", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071104", + "zoneCode": "CACHE", + "laneCode": "B0704", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080104", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080204", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080304", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080404", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080504", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080704", + "zoneCode": "FLEX", + "laneCode": "C0804", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080804", + "zoneCode": "FLEX", + "laneCode": "C0804", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080904", + "zoneCode": "RESERVE", + "laneCode": "D0804", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081104", + "zoneCode": "CACHE", + "laneCode": "B0804", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090104", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090204", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090304", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090404", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090504", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090704", + "zoneCode": "FLEX", + "laneCode": "C0904", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090804", + "zoneCode": "FLEX", + "laneCode": "C0904", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090904", + "zoneCode": "RESERVE", + "laneCode": "D0904", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091104", + "zoneCode": "CACHE", + "laneCode": "B0904", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100104", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100204", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100304", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100404", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100504", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100704", + "zoneCode": "FLEX", + "laneCode": "C1004", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100804", + "zoneCode": "FLEX", + "laneCode": "C1004", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100904", + "zoneCode": "RESERVE", + "laneCode": "D1004", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101104", + "zoneCode": "CACHE", + "laneCode": "B1004", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110104", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110204", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110304", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110404", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110504", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110704", + "zoneCode": "FLEX", + "laneCode": "C1104", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110804", + "zoneCode": "FLEX", + "laneCode": "C1104", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110904", + "zoneCode": "RESERVE", + "laneCode": "D1104", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111104", + "zoneCode": "CACHE", + "laneCode": "B1104", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120104", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120204", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120304", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120404", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120504", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120704", + "zoneCode": "FLEX", + "laneCode": "C1204", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120804", + "zoneCode": "FLEX", + "laneCode": "C1204", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120904", + "zoneCode": "RESERVE", + "laneCode": "D1204", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121104", + "zoneCode": "CACHE", + "laneCode": "B1204", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130104", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130204", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130304", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130404", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130504", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130704", + "zoneCode": "FLEX", + "laneCode": "C1304", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130804", + "zoneCode": "FLEX", + "laneCode": "C1304", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130904", + "zoneCode": "FLEX", + "laneCode": "D1304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131104", + "zoneCode": "RESERVE", + "laneCode": "B1304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140104", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140204", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140304", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140404", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140504", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141104", + "zoneCode": "RESERVE", + "laneCode": "B1404", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020505", + "zoneCode": "FLEX", + "laneCode": "A0205", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030305", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030405", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030505", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031105", + "zoneCode": "CACHE", + "laneCode": "B0305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040305", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040405", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040505", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041105", + "zoneCode": "CACHE", + "laneCode": "B0405", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050305", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050405", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050505", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051105", + "zoneCode": "CACHE", + "laneCode": "B0505", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060305", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060405", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060505", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061105", + "zoneCode": "CACHE", + "laneCode": "B0605", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070105", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070205", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070305", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070405", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070505", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071105", + "zoneCode": "CACHE", + "laneCode": "B0705", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080105", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080205", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080305", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080405", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080505", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080705", + "zoneCode": "FLEX", + "laneCode": "C0805", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080805", + "zoneCode": "FLEX", + "laneCode": "C0805", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080905", + "zoneCode": "RESERVE", + "laneCode": "D0805", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081105", + "zoneCode": "CACHE", + "laneCode": "B0805", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090105", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090205", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090305", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090405", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090505", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090705", + "zoneCode": "FLEX", + "laneCode": "C0905", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090805", + "zoneCode": "FLEX", + "laneCode": "C0905", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090905", + "zoneCode": "RESERVE", + "laneCode": "D0905", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091105", + "zoneCode": "CACHE", + "laneCode": "B0905", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100105", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100205", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100305", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100405", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100505", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100705", + "zoneCode": "FLEX", + "laneCode": "C1005", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100805", + "zoneCode": "FLEX", + "laneCode": "C1005", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100905", + "zoneCode": "RESERVE", + "laneCode": "D1005", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101105", + "zoneCode": "CACHE", + "laneCode": "B1005", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110105", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110205", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110305", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110405", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110505", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110705", + "zoneCode": "FLEX", + "laneCode": "C1105", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110805", + "zoneCode": "FLEX", + "laneCode": "C1105", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110905", + "zoneCode": "RESERVE", + "laneCode": "D1105", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111105", + "zoneCode": "CACHE", + "laneCode": "B1105", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120105", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120205", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120305", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120405", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120505", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120705", + "zoneCode": "FLEX", + "laneCode": "C1205", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120805", + "zoneCode": "FLEX", + "laneCode": "C1205", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120905", + "zoneCode": "RESERVE", + "laneCode": "D1205", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121105", + "zoneCode": "CACHE", + "laneCode": "B1205", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130105", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130205", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130305", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130405", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130505", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130705", + "zoneCode": "FLEX", + "laneCode": "C1305", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130805", + "zoneCode": "FLEX", + "laneCode": "C1305", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130905", + "zoneCode": "FLEX", + "laneCode": "D1305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131105", + "zoneCode": "RESERVE", + "laneCode": "B1305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140105", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140205", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140305", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140405", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140505", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141105", + "zoneCode": "RESERVE", + "laneCode": "B1405", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020506", + "zoneCode": "FLEX", + "laneCode": "A0206", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030306", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030406", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030506", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031106", + "zoneCode": "CACHE", + "laneCode": "B0306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040306", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040406", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040506", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041106", + "zoneCode": "CACHE", + "laneCode": "B0406", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050306", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050406", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050506", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051106", + "zoneCode": "CACHE", + "laneCode": "B0506", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060306", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060406", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060506", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061106", + "zoneCode": "CACHE", + "laneCode": "B0606", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070106", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070206", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070306", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070406", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070506", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071106", + "zoneCode": "CACHE", + "laneCode": "B0706", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080106", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080206", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080306", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080406", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080506", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080706", + "zoneCode": "FLEX", + "laneCode": "C0806", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080806", + "zoneCode": "FLEX", + "laneCode": "C0806", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080906", + "zoneCode": "RESERVE", + "laneCode": "D0806", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081106", + "zoneCode": "CACHE", + "laneCode": "B0806", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090106", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090206", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090306", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090406", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090506", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090706", + "zoneCode": "FLEX", + "laneCode": "C0906", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090806", + "zoneCode": "FLEX", + "laneCode": "C0906", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090906", + "zoneCode": "RESERVE", + "laneCode": "D0906", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091106", + "zoneCode": "CACHE", + "laneCode": "B0906", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100106", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100206", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100306", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100406", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100506", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100706", + "zoneCode": "FLEX", + "laneCode": "C1006", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100806", + "zoneCode": "FLEX", + "laneCode": "C1006", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100906", + "zoneCode": "RESERVE", + "laneCode": "D1006", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101106", + "zoneCode": "CACHE", + "laneCode": "B1006", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110106", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110206", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110306", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110406", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110506", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110706", + "zoneCode": "FLEX", + "laneCode": "C1106", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110806", + "zoneCode": "FLEX", + "laneCode": "C1106", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110906", + "zoneCode": "RESERVE", + "laneCode": "D1106", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111106", + "zoneCode": "CACHE", + "laneCode": "B1106", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120106", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120206", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120306", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120406", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120506", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120706", + "zoneCode": "FLEX", + "laneCode": "C1206", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120806", + "zoneCode": "FLEX", + "laneCode": "C1206", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120906", + "zoneCode": "FLEX", + "laneCode": "D1206", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121106", + "zoneCode": "CACHE", + "laneCode": "B1206", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130106", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130206", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130306", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130406", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130506", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130706", + "zoneCode": "FLEX", + "laneCode": "C1306", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130806", + "zoneCode": "FLEX", + "laneCode": "C1306", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130906", + "zoneCode": "FLEX", + "laneCode": "D1306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131106", + "zoneCode": "RESERVE", + "laneCode": "B1306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140106", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140206", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140306", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140406", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140506", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141106", + "zoneCode": "RESERVE", + "laneCode": "B1406", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020507", + "zoneCode": "FLEX", + "laneCode": "A0207", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030307", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030407", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030507", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031107", + "zoneCode": "CACHE", + "laneCode": "B0307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040307", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040407", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040507", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041107", + "zoneCode": "CACHE", + "laneCode": "B0407", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050307", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050407", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050507", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051107", + "zoneCode": "CACHE", + "laneCode": "B0507", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060307", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060407", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060507", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061107", + "zoneCode": "CACHE", + "laneCode": "B0607", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070107", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-BLOCK-1", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-01", + "inboundAt": "2026-07-01T09:00:00+08:00" + }, + { + "spaceId": "070207", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-BLOCK-2", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-01", + "inboundAt": "2026-07-01T10:00:00+08:00" + }, + { + "spaceId": "070307", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-BLOCK-3", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-01", + "inboundAt": "2026-07-01T11:00:00+08:00" + }, + { + "spaceId": "070407", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-BLOCK-4", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-01", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "070507", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-OLDEST", + "projectNo": "P-FIFO-DEMO", + "productId": "M-FIFO-DEMO", + "lotNo": "FIFO-LOT-01", + "inboundAt": "2026-07-01T08:00:00+08:00" + }, + { + "spaceId": "071107", + "zoneCode": "CACHE", + "laneCode": "B0707", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080107", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080207", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080307", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080407", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080507", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080707", + "zoneCode": "FLEX", + "laneCode": "C0807", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080807", + "zoneCode": "FLEX", + "laneCode": "C0807", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080907", + "zoneCode": "RESERVE", + "laneCode": "D0807", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081107", + "zoneCode": "CACHE", + "laneCode": "B0807", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090107", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090207", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090307", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090407", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090507", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090707", + "zoneCode": "FLEX", + "laneCode": "C0907", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090807", + "zoneCode": "FLEX", + "laneCode": "C0907", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090907", + "zoneCode": "RESERVE", + "laneCode": "D0907", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091107", + "zoneCode": "CACHE", + "laneCode": "B0907", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100107", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100207", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100307", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100407", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100507", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100707", + "zoneCode": "FLEX", + "laneCode": "C1007", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100807", + "zoneCode": "FLEX", + "laneCode": "C1007", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100907", + "zoneCode": "RESERVE", + "laneCode": "D1007", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101107", + "zoneCode": "CACHE", + "laneCode": "B1007", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110107", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110207", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110307", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110407", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110507", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110707", + "zoneCode": "FLEX", + "laneCode": "C1107", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110807", + "zoneCode": "FLEX", + "laneCode": "C1107", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110907", + "zoneCode": "RESERVE", + "laneCode": "D1107", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111107", + "zoneCode": "CACHE", + "laneCode": "B1107", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120107", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120207", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120307", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120407", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120507", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120707", + "zoneCode": "FLEX", + "laneCode": "C1207", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120807", + "zoneCode": "FLEX", + "laneCode": "C1207", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120907", + "zoneCode": "FLEX", + "laneCode": "D1207", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121107", + "zoneCode": "CACHE", + "laneCode": "B1207", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130107", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130207", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130307", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130407", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130507", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130707", + "zoneCode": "FLEX", + "laneCode": "C1307", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130807", + "zoneCode": "FLEX", + "laneCode": "C1307", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130907", + "zoneCode": "FLEX", + "laneCode": "D1307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131107", + "zoneCode": "RESERVE", + "laneCode": "B1307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140107", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140207", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140307", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140407", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140507", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141107", + "zoneCode": "RESERVE", + "laneCode": "B1407", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030308", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030408", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030508", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031108", + "zoneCode": "CACHE", + "laneCode": "B0308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040308", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040408", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040508", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041108", + "zoneCode": "CACHE", + "laneCode": "B0408", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050308", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050408", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050508", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051108", + "zoneCode": "CACHE", + "laneCode": "B0508", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060308", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060408", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060508", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061108", + "zoneCode": "CACHE", + "laneCode": "B0608", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070108", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070208", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070308", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070408", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070508", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071108", + "zoneCode": "CACHE", + "laneCode": "B0708", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080108", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080208", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080308", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080408", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080508", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080708", + "zoneCode": "FLEX", + "laneCode": "C0808", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080808", + "zoneCode": "FLEX", + "laneCode": "C0808", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080908", + "zoneCode": "RESERVE", + "laneCode": "D0808", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081108", + "zoneCode": "CACHE", + "laneCode": "B0808", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090108", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090208", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090308", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090408", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090508", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090708", + "zoneCode": "FLEX", + "laneCode": "C0908", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090808", + "zoneCode": "FLEX", + "laneCode": "C0908", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090908", + "zoneCode": "RESERVE", + "laneCode": "D0908", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091108", + "zoneCode": "CACHE", + "laneCode": "B0908", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100108", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100208", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100308", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100408", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100508", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100708", + "zoneCode": "FLEX", + "laneCode": "C1008", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100808", + "zoneCode": "FLEX", + "laneCode": "C1008", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100908", + "zoneCode": "RESERVE", + "laneCode": "D1008", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101108", + "zoneCode": "CACHE", + "laneCode": "B1008", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110108", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110208", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110308", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110408", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110508", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110708", + "zoneCode": "FLEX", + "laneCode": "C1108", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110808", + "zoneCode": "FLEX", + "laneCode": "C1108", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110908", + "zoneCode": "RESERVE", + "laneCode": "D1108", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111108", + "zoneCode": "CACHE", + "laneCode": "B1108", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120108", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120208", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120308", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120408", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120508", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120708", + "zoneCode": "FLEX", + "laneCode": "C1208", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120808", + "zoneCode": "FLEX", + "laneCode": "C1208", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120908", + "zoneCode": "FLEX", + "laneCode": "D1208", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121108", + "zoneCode": "CACHE", + "laneCode": "B1208", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130108", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130208", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130308", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130408", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130508", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130708", + "zoneCode": "FLEX", + "laneCode": "C1308", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130808", + "zoneCode": "FLEX", + "laneCode": "C1308", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130908", + "zoneCode": "FLEX", + "laneCode": "D1308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131108", + "zoneCode": "RESERVE", + "laneCode": "B1308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140108", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140208", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140308", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140408", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140508", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141108", + "zoneCode": "RESERVE", + "laneCode": "B1408", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + } + ], + "expected": { + "planStatus": "READY", + "taskPlanCount": 1, + "plannedCount": 1, + "rejectedCount": 0, + "executionState": "READY_WITH_ELEVATOR_TOKEN", + "trayNo": "FIFO-OLDEST", + "sourceSpaceId": "070507", + "blockerCount": 0, + "blockerSpaceIds": [], + "blockingTrayNos": [], + "fifoMode": "STRICT", + "fifoRank": 1, + "fifoDeviationMinutes": 0, + "fifoViolation": false, + "capacityScore": 100, + "efficiencyScore": 28, + "totalScore": 100 + } + }, + { + "id": "fifo-flexible-outbound", + "kind": "OUTBOUND", + "policy": { + "capacityWeight": 0.5, + "efficiencyWeight": 0.5 + }, + "request": { + "requestId": "OUT-FIFO-FLEXIBLE", + "trayNo": null, + "projectNo": "P-FIFO-DEMO", + "productId": "M-FIFO-DEMO", + "fifoMode": "FLEXIBLE", + "fifoToleranceMinutes": 1440, + "exitFloor": 1 + }, + "spaces": [ + { + "spaceId": "020501", + "zoneCode": "FLEX", + "laneCode": "A0201", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030301", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030401", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030501", + "zoneCode": "FLEX", + "laneCode": "A0301", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031101", + "zoneCode": "CACHE", + "laneCode": "B0301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040301", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040401", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040501", + "zoneCode": "FLEX", + "laneCode": "A0401", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041101", + "zoneCode": "CACHE", + "laneCode": "B0401", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050301", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050401", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050501", + "zoneCode": "FLEX", + "laneCode": "A0501", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051101", + "zoneCode": "CACHE", + "laneCode": "B0501", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060301", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060401", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060501", + "zoneCode": "FLEX", + "laneCode": "A0601", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061101", + "zoneCode": "CACHE", + "laneCode": "B0601", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070101", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070201", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070301", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070401", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070501", + "zoneCode": "MAIN", + "laneCode": "A0701", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071101", + "zoneCode": "CACHE", + "laneCode": "B0701", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080101", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT-INNER-1", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-02", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "080201", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT-INNER-2", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-02", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "080301", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT-INNER-3", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-02", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "080401", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT-INNER-4", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-02", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "080501", + "zoneCode": "MAIN", + "laneCode": "A0801", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-DIRECT", + "projectNo": "P-FIFO-DEMO", + "productId": "M-FIFO-DEMO", + "lotNo": "FIFO-LOT-02", + "inboundAt": "2026-07-01T20:00:00+08:00" + }, + { + "spaceId": "080701", + "zoneCode": "FLEX", + "laneCode": "C0801", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080801", + "zoneCode": "FLEX", + "laneCode": "C0801", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080901", + "zoneCode": "RESERVE", + "laneCode": "D0801", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081101", + "zoneCode": "CACHE", + "laneCode": "B0801", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090101", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090201", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090301", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090401", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090501", + "zoneCode": "MAIN", + "laneCode": "A0901", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090701", + "zoneCode": "FLEX", + "laneCode": "C0901", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090801", + "zoneCode": "FLEX", + "laneCode": "C0901", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090901", + "zoneCode": "RESERVE", + "laneCode": "D0901", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091101", + "zoneCode": "CACHE", + "laneCode": "B0901", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100101", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100201", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100301", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100401", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100501", + "zoneCode": "MAIN", + "laneCode": "A1001", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100701", + "zoneCode": "FLEX", + "laneCode": "C1001", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100801", + "zoneCode": "FLEX", + "laneCode": "C1001", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100901", + "zoneCode": "RESERVE", + "laneCode": "D1001", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101101", + "zoneCode": "CACHE", + "laneCode": "B1001", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110101", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110201", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110301", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110401", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110501", + "zoneCode": "MAIN", + "laneCode": "A1101", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110701", + "zoneCode": "FLEX", + "laneCode": "C1101", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110801", + "zoneCode": "FLEX", + "laneCode": "C1101", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110901", + "zoneCode": "RESERVE", + "laneCode": "D1101", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111101", + "zoneCode": "CACHE", + "laneCode": "B1101", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120101", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120201", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120301", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120401", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120501", + "zoneCode": "MAIN", + "laneCode": "A1201", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120701", + "zoneCode": "FLEX", + "laneCode": "C1201", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120801", + "zoneCode": "FLEX", + "laneCode": "C1201", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120901", + "zoneCode": "RESERVE", + "laneCode": "D1201", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121101", + "zoneCode": "CACHE", + "laneCode": "B1201", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130101", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130201", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130301", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130401", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130501", + "zoneCode": "MAIN", + "laneCode": "A1301", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130701", + "zoneCode": "FLEX", + "laneCode": "C1301", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130801", + "zoneCode": "FLEX", + "laneCode": "C1301", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 1, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130901", + "zoneCode": "FLEX", + "laneCode": "D1301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131101", + "zoneCode": "RESERVE", + "laneCode": "B1301", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140101", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140201", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140301", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140401", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140501", + "zoneCode": "MAIN", + "laneCode": "A1401", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 1, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141101", + "zoneCode": "RESERVE", + "laneCode": "B1401", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 1, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020502", + "zoneCode": "FLEX", + "laneCode": "A0202", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030302", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030402", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030502", + "zoneCode": "FLEX", + "laneCode": "A0302", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031102", + "zoneCode": "CACHE", + "laneCode": "B0302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040302", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040402", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040502", + "zoneCode": "FLEX", + "laneCode": "A0402", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041102", + "zoneCode": "CACHE", + "laneCode": "B0402", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050302", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050402", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050502", + "zoneCode": "FLEX", + "laneCode": "A0502", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051102", + "zoneCode": "CACHE", + "laneCode": "B0502", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060302", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060402", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060502", + "zoneCode": "FLEX", + "laneCode": "A0602", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061102", + "zoneCode": "CACHE", + "laneCode": "B0602", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070102", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070202", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070302", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070402", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070502", + "zoneCode": "MAIN", + "laneCode": "A0702", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071102", + "zoneCode": "CACHE", + "laneCode": "B0702", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080102", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080202", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080302", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080402", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080502", + "zoneCode": "MAIN", + "laneCode": "A0802", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080702", + "zoneCode": "FLEX", + "laneCode": "C0802", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080802", + "zoneCode": "FLEX", + "laneCode": "C0802", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080902", + "zoneCode": "RESERVE", + "laneCode": "D0802", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081102", + "zoneCode": "CACHE", + "laneCode": "B0802", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090102", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090202", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090302", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090402", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090502", + "zoneCode": "MAIN", + "laneCode": "A0902", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090702", + "zoneCode": "FLEX", + "laneCode": "C0902", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090802", + "zoneCode": "FLEX", + "laneCode": "C0902", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090902", + "zoneCode": "RESERVE", + "laneCode": "D0902", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091102", + "zoneCode": "CACHE", + "laneCode": "B0902", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100102", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100202", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100302", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100402", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100502", + "zoneCode": "MAIN", + "laneCode": "A1002", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100702", + "zoneCode": "FLEX", + "laneCode": "C1002", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100802", + "zoneCode": "FLEX", + "laneCode": "C1002", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100902", + "zoneCode": "RESERVE", + "laneCode": "D1002", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101102", + "zoneCode": "CACHE", + "laneCode": "B1002", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110102", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110202", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110302", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110402", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110502", + "zoneCode": "MAIN", + "laneCode": "A1102", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110702", + "zoneCode": "FLEX", + "laneCode": "C1102", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110802", + "zoneCode": "FLEX", + "laneCode": "C1102", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110902", + "zoneCode": "RESERVE", + "laneCode": "D1102", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111102", + "zoneCode": "CACHE", + "laneCode": "B1102", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120102", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120202", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120302", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120402", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120502", + "zoneCode": "MAIN", + "laneCode": "A1202", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120702", + "zoneCode": "FLEX", + "laneCode": "C1202", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120802", + "zoneCode": "FLEX", + "laneCode": "C1202", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120902", + "zoneCode": "RESERVE", + "laneCode": "D1202", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121102", + "zoneCode": "CACHE", + "laneCode": "B1202", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130102", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130202", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130302", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130402", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130502", + "zoneCode": "MAIN", + "laneCode": "A1302", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130702", + "zoneCode": "FLEX", + "laneCode": "C1302", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130802", + "zoneCode": "FLEX", + "laneCode": "C1302", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 2, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130902", + "zoneCode": "FLEX", + "laneCode": "D1302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131102", + "zoneCode": "RESERVE", + "laneCode": "B1302", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140102", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140202", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140302", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140402", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140502", + "zoneCode": "MAIN", + "laneCode": "A1402", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 2, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141102", + "zoneCode": "RESERVE", + "laneCode": "B1402", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 2, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020503", + "zoneCode": "FLEX", + "laneCode": "A0203", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030303", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030403", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030503", + "zoneCode": "FLEX", + "laneCode": "A0303", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031103", + "zoneCode": "CACHE", + "laneCode": "B0303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040303", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040403", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040503", + "zoneCode": "FLEX", + "laneCode": "A0403", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041103", + "zoneCode": "CACHE", + "laneCode": "B0403", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050303", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050403", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050503", + "zoneCode": "FLEX", + "laneCode": "A0503", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051103", + "zoneCode": "CACHE", + "laneCode": "B0503", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060303", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060403", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060503", + "zoneCode": "FLEX", + "laneCode": "A0603", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061103", + "zoneCode": "CACHE", + "laneCode": "B0603", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070103", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070203", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070303", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070403", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070503", + "zoneCode": "MAIN", + "laneCode": "A0703", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071103", + "zoneCode": "CACHE", + "laneCode": "B0703", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080103", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080203", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080303", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080403", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080503", + "zoneCode": "MAIN", + "laneCode": "A0803", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080703", + "zoneCode": "FLEX", + "laneCode": "C0803", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080803", + "zoneCode": "FLEX", + "laneCode": "C0803", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080903", + "zoneCode": "RESERVE", + "laneCode": "D0803", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081103", + "zoneCode": "CACHE", + "laneCode": "B0803", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090103", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090203", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090303", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090403", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090503", + "zoneCode": "MAIN", + "laneCode": "A0903", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090703", + "zoneCode": "FLEX", + "laneCode": "C0903", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090803", + "zoneCode": "FLEX", + "laneCode": "C0903", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090903", + "zoneCode": "RESERVE", + "laneCode": "D0903", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091103", + "zoneCode": "CACHE", + "laneCode": "B0903", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100103", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100203", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100303", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100403", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100503", + "zoneCode": "MAIN", + "laneCode": "A1003", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100703", + "zoneCode": "FLEX", + "laneCode": "C1003", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100803", + "zoneCode": "FLEX", + "laneCode": "C1003", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100903", + "zoneCode": "RESERVE", + "laneCode": "D1003", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101103", + "zoneCode": "CACHE", + "laneCode": "B1003", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110103", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110203", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110303", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110403", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110503", + "zoneCode": "MAIN", + "laneCode": "A1103", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110703", + "zoneCode": "FLEX", + "laneCode": "C1103", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110803", + "zoneCode": "FLEX", + "laneCode": "C1103", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110903", + "zoneCode": "RESERVE", + "laneCode": "D1103", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111103", + "zoneCode": "CACHE", + "laneCode": "B1103", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120103", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120203", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120303", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120403", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120503", + "zoneCode": "MAIN", + "laneCode": "A1203", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120703", + "zoneCode": "FLEX", + "laneCode": "C1203", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120803", + "zoneCode": "FLEX", + "laneCode": "C1203", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120903", + "zoneCode": "RESERVE", + "laneCode": "D1203", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121103", + "zoneCode": "CACHE", + "laneCode": "B1203", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130103", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130203", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130303", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130403", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130503", + "zoneCode": "MAIN", + "laneCode": "A1303", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130703", + "zoneCode": "FLEX", + "laneCode": "C1303", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130803", + "zoneCode": "FLEX", + "laneCode": "C1303", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 3, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130903", + "zoneCode": "FLEX", + "laneCode": "D1303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131103", + "zoneCode": "RESERVE", + "laneCode": "B1303", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140103", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140203", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140303", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140403", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140503", + "zoneCode": "MAIN", + "laneCode": "A1403", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 3, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141103", + "zoneCode": "RESERVE", + "laneCode": "B1403", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 3, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020504", + "zoneCode": "FLEX", + "laneCode": "A0204", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030304", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030404", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030504", + "zoneCode": "FLEX", + "laneCode": "A0304", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031104", + "zoneCode": "CACHE", + "laneCode": "B0304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040304", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040404", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040504", + "zoneCode": "FLEX", + "laneCode": "A0404", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041104", + "zoneCode": "CACHE", + "laneCode": "B0404", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050304", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050404", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050504", + "zoneCode": "FLEX", + "laneCode": "A0504", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051104", + "zoneCode": "CACHE", + "laneCode": "B0504", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060304", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060404", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060504", + "zoneCode": "FLEX", + "laneCode": "A0604", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061104", + "zoneCode": "CACHE", + "laneCode": "B0604", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070104", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070204", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070304", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070404", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070504", + "zoneCode": "MAIN", + "laneCode": "A0704", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071104", + "zoneCode": "CACHE", + "laneCode": "B0704", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080104", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080204", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080304", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080404", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080504", + "zoneCode": "MAIN", + "laneCode": "A0804", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080704", + "zoneCode": "FLEX", + "laneCode": "C0804", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080804", + "zoneCode": "FLEX", + "laneCode": "C0804", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080904", + "zoneCode": "RESERVE", + "laneCode": "D0804", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081104", + "zoneCode": "CACHE", + "laneCode": "B0804", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090104", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090204", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090304", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090404", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090504", + "zoneCode": "MAIN", + "laneCode": "A0904", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090704", + "zoneCode": "FLEX", + "laneCode": "C0904", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090804", + "zoneCode": "FLEX", + "laneCode": "C0904", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090904", + "zoneCode": "RESERVE", + "laneCode": "D0904", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091104", + "zoneCode": "CACHE", + "laneCode": "B0904", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100104", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100204", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100304", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100404", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100504", + "zoneCode": "MAIN", + "laneCode": "A1004", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100704", + "zoneCode": "FLEX", + "laneCode": "C1004", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100804", + "zoneCode": "FLEX", + "laneCode": "C1004", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100904", + "zoneCode": "RESERVE", + "laneCode": "D1004", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101104", + "zoneCode": "CACHE", + "laneCode": "B1004", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110104", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110204", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110304", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110404", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110504", + "zoneCode": "MAIN", + "laneCode": "A1104", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110704", + "zoneCode": "FLEX", + "laneCode": "C1104", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110804", + "zoneCode": "FLEX", + "laneCode": "C1104", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110904", + "zoneCode": "RESERVE", + "laneCode": "D1104", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111104", + "zoneCode": "CACHE", + "laneCode": "B1104", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120104", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120204", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120304", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120404", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120504", + "zoneCode": "MAIN", + "laneCode": "A1204", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120704", + "zoneCode": "FLEX", + "laneCode": "C1204", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120804", + "zoneCode": "FLEX", + "laneCode": "C1204", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120904", + "zoneCode": "RESERVE", + "laneCode": "D1204", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121104", + "zoneCode": "CACHE", + "laneCode": "B1204", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130104", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130204", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130304", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130404", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130504", + "zoneCode": "MAIN", + "laneCode": "A1304", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130704", + "zoneCode": "FLEX", + "laneCode": "C1304", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130804", + "zoneCode": "FLEX", + "laneCode": "C1304", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 4, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130904", + "zoneCode": "FLEX", + "laneCode": "D1304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131104", + "zoneCode": "RESERVE", + "laneCode": "B1304", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140104", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140204", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140304", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140404", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140504", + "zoneCode": "MAIN", + "laneCode": "A1404", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 4, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141104", + "zoneCode": "RESERVE", + "laneCode": "B1404", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 4, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020505", + "zoneCode": "FLEX", + "laneCode": "A0205", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030305", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030405", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030505", + "zoneCode": "FLEX", + "laneCode": "A0305", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031105", + "zoneCode": "CACHE", + "laneCode": "B0305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040305", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040405", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040505", + "zoneCode": "FLEX", + "laneCode": "A0405", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041105", + "zoneCode": "CACHE", + "laneCode": "B0405", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050305", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050405", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050505", + "zoneCode": "FLEX", + "laneCode": "A0505", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051105", + "zoneCode": "CACHE", + "laneCode": "B0505", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060305", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060405", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060505", + "zoneCode": "FLEX", + "laneCode": "A0605", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061105", + "zoneCode": "CACHE", + "laneCode": "B0605", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070105", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070205", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070305", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070405", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070505", + "zoneCode": "MAIN", + "laneCode": "A0705", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071105", + "zoneCode": "CACHE", + "laneCode": "B0705", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080105", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080205", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080305", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080405", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080505", + "zoneCode": "MAIN", + "laneCode": "A0805", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080705", + "zoneCode": "FLEX", + "laneCode": "C0805", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080805", + "zoneCode": "FLEX", + "laneCode": "C0805", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080905", + "zoneCode": "RESERVE", + "laneCode": "D0805", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081105", + "zoneCode": "CACHE", + "laneCode": "B0805", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090105", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090205", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090305", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090405", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090505", + "zoneCode": "MAIN", + "laneCode": "A0905", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090705", + "zoneCode": "FLEX", + "laneCode": "C0905", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090805", + "zoneCode": "FLEX", + "laneCode": "C0905", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090905", + "zoneCode": "RESERVE", + "laneCode": "D0905", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091105", + "zoneCode": "CACHE", + "laneCode": "B0905", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100105", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100205", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100305", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100405", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100505", + "zoneCode": "MAIN", + "laneCode": "A1005", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100705", + "zoneCode": "FLEX", + "laneCode": "C1005", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100805", + "zoneCode": "FLEX", + "laneCode": "C1005", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100905", + "zoneCode": "RESERVE", + "laneCode": "D1005", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101105", + "zoneCode": "CACHE", + "laneCode": "B1005", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110105", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110205", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110305", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110405", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110505", + "zoneCode": "MAIN", + "laneCode": "A1105", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110705", + "zoneCode": "FLEX", + "laneCode": "C1105", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110805", + "zoneCode": "FLEX", + "laneCode": "C1105", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110905", + "zoneCode": "RESERVE", + "laneCode": "D1105", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111105", + "zoneCode": "CACHE", + "laneCode": "B1105", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120105", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120205", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120305", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120405", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120505", + "zoneCode": "MAIN", + "laneCode": "A1205", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120705", + "zoneCode": "FLEX", + "laneCode": "C1205", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120805", + "zoneCode": "FLEX", + "laneCode": "C1205", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120905", + "zoneCode": "RESERVE", + "laneCode": "D1205", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121105", + "zoneCode": "CACHE", + "laneCode": "B1205", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130105", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130205", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130305", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130405", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130505", + "zoneCode": "MAIN", + "laneCode": "A1305", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130705", + "zoneCode": "FLEX", + "laneCode": "C1305", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130805", + "zoneCode": "FLEX", + "laneCode": "C1305", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 5, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130905", + "zoneCode": "FLEX", + "laneCode": "D1305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131105", + "zoneCode": "RESERVE", + "laneCode": "B1305", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140105", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140205", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140305", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140405", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140505", + "zoneCode": "MAIN", + "laneCode": "A1405", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 5, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141105", + "zoneCode": "RESERVE", + "laneCode": "B1405", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 5, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020506", + "zoneCode": "FLEX", + "laneCode": "A0206", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030306", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030406", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030506", + "zoneCode": "FLEX", + "laneCode": "A0306", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031106", + "zoneCode": "CACHE", + "laneCode": "B0306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040306", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040406", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040506", + "zoneCode": "FLEX", + "laneCode": "A0406", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041106", + "zoneCode": "CACHE", + "laneCode": "B0406", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050306", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050406", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050506", + "zoneCode": "FLEX", + "laneCode": "A0506", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051106", + "zoneCode": "CACHE", + "laneCode": "B0506", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060306", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060406", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060506", + "zoneCode": "FLEX", + "laneCode": "A0606", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061106", + "zoneCode": "CACHE", + "laneCode": "B0606", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070106", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070206", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070306", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070406", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070506", + "zoneCode": "MAIN", + "laneCode": "A0706", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071106", + "zoneCode": "CACHE", + "laneCode": "B0706", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080106", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080206", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080306", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080406", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080506", + "zoneCode": "MAIN", + "laneCode": "A0806", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080706", + "zoneCode": "FLEX", + "laneCode": "C0806", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080806", + "zoneCode": "FLEX", + "laneCode": "C0806", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080906", + "zoneCode": "RESERVE", + "laneCode": "D0806", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081106", + "zoneCode": "CACHE", + "laneCode": "B0806", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090106", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090206", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090306", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090406", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090506", + "zoneCode": "MAIN", + "laneCode": "A0906", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090706", + "zoneCode": "FLEX", + "laneCode": "C0906", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090806", + "zoneCode": "FLEX", + "laneCode": "C0906", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090906", + "zoneCode": "RESERVE", + "laneCode": "D0906", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091106", + "zoneCode": "CACHE", + "laneCode": "B0906", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100106", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100206", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100306", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100406", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100506", + "zoneCode": "MAIN", + "laneCode": "A1006", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100706", + "zoneCode": "FLEX", + "laneCode": "C1006", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100806", + "zoneCode": "FLEX", + "laneCode": "C1006", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100906", + "zoneCode": "RESERVE", + "laneCode": "D1006", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101106", + "zoneCode": "CACHE", + "laneCode": "B1006", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110106", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110206", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110306", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110406", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110506", + "zoneCode": "MAIN", + "laneCode": "A1106", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110706", + "zoneCode": "FLEX", + "laneCode": "C1106", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110806", + "zoneCode": "FLEX", + "laneCode": "C1106", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110906", + "zoneCode": "RESERVE", + "laneCode": "D1106", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111106", + "zoneCode": "CACHE", + "laneCode": "B1106", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120106", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120206", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120306", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120406", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120506", + "zoneCode": "MAIN", + "laneCode": "A1206", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120706", + "zoneCode": "FLEX", + "laneCode": "C1206", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120806", + "zoneCode": "FLEX", + "laneCode": "C1206", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120906", + "zoneCode": "FLEX", + "laneCode": "D1206", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121106", + "zoneCode": "CACHE", + "laneCode": "B1206", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130106", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130206", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130306", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130406", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130506", + "zoneCode": "MAIN", + "laneCode": "A1306", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130706", + "zoneCode": "FLEX", + "laneCode": "C1306", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130806", + "zoneCode": "FLEX", + "laneCode": "C1306", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 6, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130906", + "zoneCode": "FLEX", + "laneCode": "D1306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131106", + "zoneCode": "RESERVE", + "laneCode": "B1306", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140106", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140206", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140306", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140406", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140506", + "zoneCode": "MAIN", + "laneCode": "A1406", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 6, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141106", + "zoneCode": "RESERVE", + "laneCode": "B1406", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 6, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "020507", + "zoneCode": "FLEX", + "laneCode": "A0207", + "depthOrder": 5, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "2", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030307", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030407", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030507", + "zoneCode": "FLEX", + "laneCode": "A0307", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031107", + "zoneCode": "CACHE", + "laneCode": "B0307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040307", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040407", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040507", + "zoneCode": "FLEX", + "laneCode": "A0407", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041107", + "zoneCode": "CACHE", + "laneCode": "B0407", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050307", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050407", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050507", + "zoneCode": "FLEX", + "laneCode": "A0507", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051107", + "zoneCode": "CACHE", + "laneCode": "B0507", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060307", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060407", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060507", + "zoneCode": "FLEX", + "laneCode": "A0607", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061107", + "zoneCode": "CACHE", + "laneCode": "B0607", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070107", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-BLOCK-1", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-01", + "inboundAt": "2026-07-01T09:00:00+08:00" + }, + { + "spaceId": "070207", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-BLOCK-2", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-01", + "inboundAt": "2026-07-01T10:00:00+08:00" + }, + { + "spaceId": "070307", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-BLOCK-3", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-01", + "inboundAt": "2026-07-01T11:00:00+08:00" + }, + { + "spaceId": "070407", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-BLOCK-4", + "projectNo": "P-FIFO-BLOCK", + "productId": "M-FIFO-BLOCK", + "lotNo": "BLOCK-LOT-01", + "inboundAt": "2026-07-01T12:00:00+08:00" + }, + { + "spaceId": "070507", + "zoneCode": "MAIN", + "laneCode": "A0707", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "OCCUPIED", + "outboundTaskActive": false, + "trayNo": "FIFO-OLDEST", + "projectNo": "P-FIFO-DEMO", + "productId": "M-FIFO-DEMO", + "lotNo": "FIFO-LOT-01", + "inboundAt": "2026-07-01T08:00:00+08:00" + }, + { + "spaceId": "071107", + "zoneCode": "CACHE", + "laneCode": "B0707", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080107", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080207", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080307", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080407", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080507", + "zoneCode": "MAIN", + "laneCode": "A0807", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080707", + "zoneCode": "FLEX", + "laneCode": "C0807", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080807", + "zoneCode": "FLEX", + "laneCode": "C0807", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080907", + "zoneCode": "RESERVE", + "laneCode": "D0807", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081107", + "zoneCode": "CACHE", + "laneCode": "B0807", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090107", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090207", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090307", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090407", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090507", + "zoneCode": "MAIN", + "laneCode": "A0907", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090707", + "zoneCode": "FLEX", + "laneCode": "C0907", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090807", + "zoneCode": "FLEX", + "laneCode": "C0907", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090907", + "zoneCode": "RESERVE", + "laneCode": "D0907", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091107", + "zoneCode": "CACHE", + "laneCode": "B0907", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100107", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100207", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100307", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100407", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100507", + "zoneCode": "MAIN", + "laneCode": "A1007", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100707", + "zoneCode": "FLEX", + "laneCode": "C1007", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100807", + "zoneCode": "FLEX", + "laneCode": "C1007", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100907", + "zoneCode": "RESERVE", + "laneCode": "D1007", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101107", + "zoneCode": "CACHE", + "laneCode": "B1007", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110107", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110207", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110307", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110407", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110507", + "zoneCode": "MAIN", + "laneCode": "A1107", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110707", + "zoneCode": "FLEX", + "laneCode": "C1107", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110807", + "zoneCode": "FLEX", + "laneCode": "C1107", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110907", + "zoneCode": "RESERVE", + "laneCode": "D1107", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111107", + "zoneCode": "CACHE", + "laneCode": "B1107", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120107", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120207", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120307", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120407", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120507", + "zoneCode": "MAIN", + "laneCode": "A1207", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120707", + "zoneCode": "FLEX", + "laneCode": "C1207", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120807", + "zoneCode": "FLEX", + "laneCode": "C1207", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120907", + "zoneCode": "FLEX", + "laneCode": "D1207", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121107", + "zoneCode": "CACHE", + "laneCode": "B1207", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130107", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130207", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130307", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130407", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130507", + "zoneCode": "MAIN", + "laneCode": "A1307", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130707", + "zoneCode": "FLEX", + "laneCode": "C1307", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130807", + "zoneCode": "FLEX", + "laneCode": "C1307", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 7, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130907", + "zoneCode": "FLEX", + "laneCode": "D1307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131107", + "zoneCode": "RESERVE", + "laneCode": "B1307", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140107", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140207", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140307", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140407", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140507", + "zoneCode": "MAIN", + "laneCode": "A1407", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 7, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141107", + "zoneCode": "RESERVE", + "laneCode": "B1407", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 7, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030308", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030408", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "030508", + "zoneCode": "FLEX", + "laneCode": "A0308", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "3", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "031108", + "zoneCode": "CACHE", + "laneCode": "B0308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "3", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040308", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040408", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "040508", + "zoneCode": "FLEX", + "laneCode": "A0408", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "4", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "041108", + "zoneCode": "CACHE", + "laneCode": "B0408", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "4", + "isCacheCore": true, + "isReserveCore": false, + "role": "OUTBOUND_CACHE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050308", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050408", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "050508", + "zoneCode": "FLEX", + "laneCode": "A0508", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "051108", + "zoneCode": "CACHE", + "laneCode": "B0508", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "5", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060308", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 1, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060408", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 2, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 2, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "060508", + "zoneCode": "FLEX", + "laneCode": "A0608", + "depthOrder": 3, + "laneCapacity": 3, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 3, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "061108", + "zoneCode": "CACHE", + "laneCode": "B0608", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "6", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070108", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070208", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070308", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070408", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "070508", + "zoneCode": "MAIN", + "laneCode": "A0708", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "071108", + "zoneCode": "CACHE", + "laneCode": "B0708", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "7", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080108", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080208", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080308", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080408", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080508", + "zoneCode": "MAIN", + "laneCode": "A0808", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080708", + "zoneCode": "FLEX", + "laneCode": "C0808", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080808", + "zoneCode": "FLEX", + "laneCode": "C0808", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "080908", + "zoneCode": "RESERVE", + "laneCode": "D0808", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "081108", + "zoneCode": "CACHE", + "laneCode": "B0808", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "8", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090108", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090208", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090308", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090408", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090508", + "zoneCode": "MAIN", + "laneCode": "A0908", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090708", + "zoneCode": "FLEX", + "laneCode": "C0908", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090808", + "zoneCode": "FLEX", + "laneCode": "C0908", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "090908", + "zoneCode": "RESERVE", + "laneCode": "D0908", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "091108", + "zoneCode": "CACHE", + "laneCode": "B0908", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "9", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100108", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100208", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100308", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100408", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100508", + "zoneCode": "MAIN", + "laneCode": "A1008", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100708", + "zoneCode": "FLEX", + "laneCode": "C1008", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100808", + "zoneCode": "FLEX", + "laneCode": "C1008", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "100908", + "zoneCode": "RESERVE", + "laneCode": "D1008", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "101108", + "zoneCode": "CACHE", + "laneCode": "B1008", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "10", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110108", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110208", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110308", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110408", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110508", + "zoneCode": "MAIN", + "laneCode": "A1108", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110708", + "zoneCode": "FLEX", + "laneCode": "C1108", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110808", + "zoneCode": "FLEX", + "laneCode": "C1108", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "110908", + "zoneCode": "RESERVE", + "laneCode": "D1108", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "111108", + "zoneCode": "CACHE", + "laneCode": "B1108", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "11", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120108", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120208", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120308", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120408", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120508", + "zoneCode": "MAIN", + "laneCode": "A1208", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120708", + "zoneCode": "FLEX", + "laneCode": "C1208", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120808", + "zoneCode": "FLEX", + "laneCode": "C1208", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "120908", + "zoneCode": "FLEX", + "laneCode": "D1208", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "121108", + "zoneCode": "CACHE", + "laneCode": "B1208", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "12", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130108", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130208", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130308", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130408", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130508", + "zoneCode": "MAIN", + "laneCode": "A1308", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130708", + "zoneCode": "FLEX", + "laneCode": "C1308", + "depthOrder": 2, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 7, + "groupCoding": 2, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130808", + "zoneCode": "FLEX", + "laneCode": "C1308", + "depthOrder": 1, + "laneCapacity": 2, + "floorNo": 8, + "aisleNo": 8, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "130908", + "zoneCode": "FLEX", + "laneCode": "D1308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 9, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "131108", + "zoneCode": "RESERVE", + "laneCode": "B1308", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "13", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140108", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 1, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 1, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140208", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 2, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 2, + "groupCoding": 2, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140308", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 3, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 3, + "groupCoding": 3, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140408", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 4, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 4, + "groupCoding": 4, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "140508", + "zoneCode": "MAIN", + "laneCode": "A1408", + "depthOrder": 5, + "laneCapacity": 5, + "floorNo": 8, + "aisleNo": 5, + "groupCoding": 5, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": false, + "role": "STORAGE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + }, + { + "spaceId": "141108", + "zoneCode": "RESERVE", + "laneCode": "B1408", + "depthOrder": 1, + "laneCapacity": 1, + "floorNo": 8, + "aisleNo": 11, + "groupCoding": 1, + "rowCode": "14", + "isCacheCore": false, + "isReserveCore": true, + "role": "PROTECTED_CORE", + "status": "EMPTY", + "outboundTaskActive": false, + "trayNo": null, + "projectNo": null, + "productId": null, + "lotNo": null, + "inboundAt": null + } + ], + "expected": { + "planStatus": "READY", + "taskPlanCount": 1, + "plannedCount": 1, + "rejectedCount": 0, + "executionState": "READY", + "trayNo": "FIFO-DIRECT", + "sourceSpaceId": "080501", + "blockerCount": 0, + "blockerSpaceIds": [], + "blockingTrayNos": [], + "fifoMode": "FLEXIBLE", + "fifoRank": 2, + "fifoDeviationMinutes": 720, + "fifoViolation": false, + "capacityScore": 100, + "efficiencyScore": 100, + "totalScore": 100 + } + } + ] +} diff --git a/fortucky-algorithm/src/test/resources/db/h2/data.sql b/fortucky-algorithm/src/test/resources/db/h2/data.sql new file mode 100644 index 0000000..9332d32 --- /dev/null +++ b/fortucky-algorithm/src/test/resources/db/h2/data.sql @@ -0,0 +1,58 @@ +INSERT INTO BAS_CARGO_SPACE (CARGO_SPACE_ID, WAREHOUSE_ID, ROADWAY_ID, CARGO_AREA_ID, CARGO_SPACE_NAME, THE_PLATOON, THE_COLUMN, THE_FLOOR, STATUS, LOCKED, TRAY_CODE, GROUP_CODING_NO, GROUP_CODING) VALUES +('DENSE-1', 'W1', 'R1', 'A', 'Dense inner', 1, 1, 1, '1', '', NULL, 'DENSE-1', '1'), +('DENSE-2', 'W1', 'R1', 'A', 'Dense outer', 1, 2, 1, '1', '', NULL, 'DENSE-1', '2'), +('OUT-INNER', 'W1', 'R2', 'A', 'Outbound inner', 2, 1, 1, '2', '', 'TRAY-OUT', 'OUT-1', '1'), +('OUT-OUTER', 'W1', 'R2', 'A', 'Outbound outer', 2, 2, 1, '1', '', NULL, 'OUT-1', '2'), +('BUFFER-1', 'W1', 'R3', 'E', 'Same floor buffer', 3, 1, 1, '1', '', NULL, 'BUFFER-1', '1'), +('CONFLICT-1', 'W1', 'R4', 'A', 'Conflict space', 4, 1, 1, '2', '', 'TRAY-C1', 'CONFLICT-1', '1'), +('GAP-INNER', 'W1', 'R5', 'C', 'Temporary inner', 5, 1, 1, '5', '', NULL, 'GAP-1', '1'), +('GAP-OUTER', 'W1', 'R5', 'C', 'Temporary outer', 5, 2, 1, '2', '', 'TRAY-GAP', 'GAP-1', '2'), +('LOCKED-1', 'W1', 'R6', 'A', 'Locked', 6, 1, 1, '1', '1', NULL, 'LOCKED-1', '1'), +('INVALID-DEPTH', 'W1', 'R7', 'A', 'Invalid depth', 7, 1, 1, '1', '', NULL, 'INVALID-1', 'X'), +('AVAILABLE-1', 'W1', 'R8', 'A', 'Available inner', 8, 1, 1, '1', '', NULL, 'AVAILABLE-1', '1'), +('AVAILABLE-2', 'W1', 'R8', 'A', 'Available outer', 8, 2, 1, '1', '', NULL, 'AVAILABLE-1', '2'); + +INSERT INTO BAS_STOCK (STOCK_ID, CARGO_SPACE_ID, TRAY_CODE, SPARE4, PRODUCT_ID, LOT_NO, IN_DATE, QUANTITY, OUT_QUANTITY) VALUES +('S-OUT-1', 'OUT-INNER', 'TRAY-OUT', 'P-OUT', 'SKU-OUT', 'LOT-OUT', '2026-01-01 08:00:00', 10, 0), +('S-CONFLICT-1', 'CONFLICT-1', 'TRAY-C1', 'P-ONE', 'SKU-1', 'LOT-1', '2026-01-02 08:00:00', 10, 0), +('S-CONFLICT-2', 'CONFLICT-1', 'TRAY-C2', 'P-TWO', 'SKU-2', 'LOT-2', '2026-01-03 08:00:00', 10, 0), +('S-GAP-1', 'GAP-OUTER', 'TRAY-GAP', 'P-GAP', 'SKU-GAP', 'LOT-GAP', '2026-01-04 08:00:00', 10, 0); + +INSERT INTO ALG_INVENTORY_ITEM_SNAPSHOT ( + WAREHOUSE_ID, STOCK_ID, SPACE_ID, TRAY_CODE, PROJECT_NO, PRODUCT_NO, LOT_NO, + INBOUND_TIME_RAW, INBOUND_AT, QUANTITY, OUT_QUANTITY) +SELECT C.WAREHOUSE_ID, S.STOCK_ID, S.CARGO_SPACE_ID, S.TRAY_CODE, S.SPARE4, S.PRODUCT_ID, + S.LOT_NO, S.IN_DATE, ALG_TRY_TIMESTAMP(S.IN_DATE), S.QUANTITY, S.OUT_QUANTITY +FROM BAS_STOCK S +JOIN BAS_CARGO_SPACE C ON C.CARGO_SPACE_ID = S.CARGO_SPACE_ID; + +INSERT INTO ALG_SPACE_INVENTORY_SUMMARY ( + WAREHOUSE_ID, SPACE_ID, STOCK_DETAIL_COUNT, STOCK_TRAY_COUNT, + STOCK_PROJECT_COUNT, STOCK_PRODUCT_COUNT) +SELECT WAREHOUSE_ID, SPACE_ID, COUNT(*), + COUNT(DISTINCT NULLIF(TRIM(TRAY_CODE), '')), + COUNT(DISTINCT NULLIF(TRIM(PROJECT_NO), '')), + COUNT(DISTINCT NULLIF(TRIM(PRODUCT_NO), '')) +FROM ALG_INVENTORY_ITEM_SNAPSHOT +GROUP BY WAREHOUSE_ID, SPACE_ID; + +INSERT INTO MYDO_JOB (JOB_ID, TASK_NO, TRAY_CODE, CARGO_SPACE_ID, TARGET_CARGO_SPACE_ID, WAREHOUSE_ID, STATUS, IN_OR_OUT, CREATE_TIME, FINISH_TIME) VALUES +('JOB-OUT-1', 'TASK-OUT-1', 'TRAY-OUT', 'OUT-INNER', NULL, 'W1', '3', 21, '2026-01-05 08:00:00', ''), +('JOB-IN-1', 'TASK-IN-1', NULL, NULL, 'DENSE-1', 'W1', '1', 1, '2026-01-05 09:00:00', ''); + +INSERT INTO ALG_SPACE_ROLE (SPACE_ID, ROLE) VALUES ('BUFFER-1', 'RELOCATION_BUFFER'); +INSERT INTO ALG_SPACE_TOPOLOGY (WAREHOUSE_ID, SPACE_ID, LANE_CODE, LANE_DEPTH, BASE_ZONE) VALUES +('W1','DENSE-1','DENSE-1',2,'FLEX'), +('W1','DENSE-2','DENSE-1',2,'FLEX'), +('W1','OUT-INNER','OUT-1',2,'FLEX'), +('W1','OUT-OUTER','OUT-1',2,'FLEX'), +('W1','BUFFER-1','BUFFER-1',1,'CACHE'), +('W1','CONFLICT-1','CONFLICT-1',1,'CACHE'), +('W1','GAP-INNER','GAP-1',2,'FLEX'), +('W1','GAP-OUTER','GAP-1',2,'FLEX'), +('W1','LOCKED-1','LOCKED-1',1,'CACHE'), +('W1','INVALID-DEPTH','INVALID-1',1,'CACHE'), +('W1','AVAILABLE-1','AVAILABLE-1',2,'FLEX'), +('W1','AVAILABLE-2','AVAILABLE-1',2,'FLEX'); +INSERT INTO ALG_LANE_STATE (WAREHOUSE_ID, LANE_CODE, SPACE_COUNT, OCCUPIED_COUNT, AVAILABLE_COUNT, PENDING_OUTBOUND, HAS_GAP, STATE_VERSION) +VALUES ('W1', 'DENSE-1', 2, 0, 1, FALSE, FALSE, 7); diff --git a/fortucky-algorithm/src/test/resources/db/h2/schema.sql b/fortucky-algorithm/src/test/resources/db/h2/schema.sql new file mode 100644 index 0000000..b6d5c99 --- /dev/null +++ b/fortucky-algorithm/src/test/resources/db/h2/schema.sql @@ -0,0 +1,348 @@ +CREATE TABLE BAS_CARGO_SPACE ( + CARGO_SPACE_ID VARCHAR(80) PRIMARY KEY, + WAREHOUSE_ID VARCHAR(80) NOT NULL, + ROADWAY_ID VARCHAR(80), + CARGO_AREA_ID VARCHAR(80), + CARGO_SPACE_NAME VARCHAR(80), + THE_PLATOON INT, + THE_COLUMN INT, + THE_FLOOR INT, + STATUS VARCHAR(5), + LOCKED VARCHAR(5), + TRAY_CODE VARCHAR(255), + GROUP_CODING_NO VARCHAR(80), + GROUP_CODING VARCHAR(80) +); + +CREATE TABLE BAS_STOCK ( + STOCK_ID VARCHAR(32) PRIMARY KEY, + CARGO_SPACE_ID VARCHAR(80), + TRAY_CODE VARCHAR(225), + SPARE4 VARCHAR(255), + PRODUCT_ID VARCHAR(255), + LOT_NO VARCHAR(80), + IN_DATE VARCHAR(80), + QUANTITY DECIMAL(30, 0), + OUT_QUANTITY DECIMAL(30, 0) +); + +CREATE TABLE MYDO_JOB ( + JOB_ID VARCHAR(80) PRIMARY KEY, + TASK_NO VARCHAR(80), + TRAY_CODE VARCHAR(225), + CARGO_SPACE_ID VARCHAR(80), + TARGET_CARGO_SPACE_ID VARCHAR(80), + WAREHOUSE_ID VARCHAR(80), + STATUS VARCHAR(255), + IN_OR_OUT INT, + CREATE_TIME VARCHAR(80), + FINISH_TIME VARCHAR(80) +); + +CREATE TABLE ALG_WAREHOUSE_POLICY ( + WAREHOUSE_ID VARCHAR(80) PRIMARY KEY, + TARGET_FILL_RATE DECIMAL(9, 4), + FIFO_TOLERANCE_HOURS INT, + UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE ALG_PROJECT_POLICY ( + PROJECT_NO VARCHAR(255) PRIMARY KEY, + IS_ISOLATED BOOLEAN NOT NULL DEFAULT FALSE, + IS_COMMON BOOLEAN NOT NULL DEFAULT FALSE, + ALLOW_MIXED BOOLEAN NOT NULL DEFAULT FALSE, + UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE ALG_SPACE_ROLE ( + SPACE_ID VARCHAR(80) PRIMARY KEY, + ROLE VARCHAR(40) NOT NULL, + UPDATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CHECK (ROLE IN ('STORAGE', 'RELOCATION_BUFFER', 'OUTBOUND_BUFFER', 'PROTECTED_CORE')) +); + +CREATE TABLE ALG_SPACE_TOPOLOGY ( + WAREHOUSE_ID VARCHAR(80) NOT NULL, + SPACE_ID VARCHAR(80) PRIMARY KEY, + LANE_CODE VARCHAR(80) NOT NULL, + LANE_DEPTH INT NOT NULL, + BASE_ZONE VARCHAR(20) NOT NULL, + REBUILT_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + CHECK (BASE_ZONE IN ('CACHE', 'RESERVE', 'MAIN', 'FLEX')) +); + +CREATE INDEX ALG_IX_SPACE_TOPOLOGY_WAREHOUSE_LANE ON ALG_SPACE_TOPOLOGY (WAREHOUSE_ID, LANE_CODE); + +CREATE TABLE ALG_INVENTORY_ITEM_SNAPSHOT ( + WAREHOUSE_ID VARCHAR(80) NOT NULL, + STOCK_ID VARCHAR(80) NOT NULL, + SPACE_ID VARCHAR(80) NOT NULL, + TRAY_CODE VARCHAR(255), + PROJECT_NO VARCHAR(255), + PRODUCT_NO VARCHAR(255), + LOT_NO VARCHAR(80), + INBOUND_TIME_RAW VARCHAR(80), + INBOUND_AT TIMESTAMP, + QUANTITY DECIMAL(38, 6), + OUT_QUANTITY DECIMAL(38, 6), + SYNCHRONIZED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (WAREHOUSE_ID, STOCK_ID) +); + +CREATE INDEX ALG_IX_INVENTORY_ITEM_SNAPSHOT_SPACE + ON ALG_INVENTORY_ITEM_SNAPSHOT (WAREHOUSE_ID, SPACE_ID); +CREATE INDEX ALG_IX_INVENTORY_ITEM_SNAPSHOT_TRAY + ON ALG_INVENTORY_ITEM_SNAPSHOT (WAREHOUSE_ID, TRAY_CODE); +CREATE INDEX ALG_IX_INVENTORY_ITEM_SNAPSHOT_PROJECT_PRODUCT + ON ALG_INVENTORY_ITEM_SNAPSHOT (WAREHOUSE_ID, PROJECT_NO, PRODUCT_NO); + +CREATE TABLE ALG_SPACE_INVENTORY_SUMMARY ( + WAREHOUSE_ID VARCHAR(80) NOT NULL, + SPACE_ID VARCHAR(80) NOT NULL, + STOCK_DETAIL_COUNT INT NOT NULL, + STOCK_TRAY_COUNT INT NOT NULL, + STOCK_PROJECT_COUNT INT NOT NULL, + STOCK_PRODUCT_COUNT INT NOT NULL, + SYNCHRONIZED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (WAREHOUSE_ID, SPACE_ID) +); + +CREATE TABLE ALG_LANE_STATE ( + WAREHOUSE_ID VARCHAR(80) NOT NULL, + LANE_CODE VARCHAR(80) NOT NULL, + SPACE_COUNT INT NOT NULL DEFAULT 0, + OCCUPIED_COUNT INT NOT NULL DEFAULT 0, + AVAILABLE_COUNT INT NOT NULL DEFAULT 0, + PENDING_OUTBOUND BOOLEAN NOT NULL DEFAULT FALSE, + HAS_GAP BOOLEAN NOT NULL DEFAULT FALSE, + SEMANTIC_FINGERPRINT VARCHAR(64) NOT NULL DEFAULT '', + STATE_VERSION BIGINT NOT NULL DEFAULT 0, + REBUILT_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (WAREHOUSE_ID, LANE_CODE) +); + +CREATE TABLE ALG_RESERVATION ( + RESERVATION_ID VARCHAR(80) PRIMARY KEY, + WAREHOUSE_ID VARCHAR(80) NOT NULL, + LANE_CODE VARCHAR(80) NOT NULL, + SPACE_ID VARCHAR(80) NOT NULL, + PROJECT_NO VARCHAR(255), + STATUS VARCHAR(20) NOT NULL, + ACTIVE_SPACE_GUARD VARCHAR(200) GENERATED ALWAYS AS (CASE WHEN STATUS = 'ACTIVE' THEN 'A:' || SPACE_ID ELSE 'H:' || RESERVATION_ID END), + CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + RELEASED_AT TIMESTAMP, + CHECK (STATUS IN ('ACTIVE', 'RELEASED', 'EXPIRED')) +); + +CREATE UNIQUE INDEX ALG_UQ_ACTIVE_RESERVATION_SPACE ON ALG_RESERVATION (ACTIVE_SPACE_GUARD); + +CREATE TABLE ALG_DEEP_WORKFLOW_LOCK ( + LOCK_ID VARCHAR(80) PRIMARY KEY, + REQUEST_ID VARCHAR(80) NOT NULL, + WAREHOUSE_ID VARCHAR(80) NOT NULL, + FLOOR_NO INT NOT NULL, + STATUS VARCHAR(20) NOT NULL, + ACTIVE_FLOOR_GUARD VARCHAR(200) GENERATED ALWAYS AS ( + CASE WHEN STATUS = 'ACTIVE' THEN WAREHOUSE_ID || ':' || FLOOR_NO ELSE LOCK_ID END), + CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP, + RELEASED_AT TIMESTAMP, + CHECK (STATUS IN ('ACTIVE', 'RELEASED')) +); + +CREATE UNIQUE INDEX ALG_UQ_ACTIVE_DEEP_WORKFLOW_FLOOR ON ALG_DEEP_WORKFLOW_LOCK (ACTIVE_FLOOR_GUARD); + +CREATE TABLE ALG_DECISION_LOG ( + DECISION_ID VARCHAR(80) PRIMARY KEY, + WAREHOUSE_ID VARCHAR(80), + DECISION_TYPE VARCHAR(40) NOT NULL, + INPUT_VERSION BIGINT, + RESULT_CODE VARCHAR(80), + REASON VARCHAR(2000), + CREATED_AT TIMESTAMP DEFAULT CURRENT_TIMESTAMP +); + +CREATE ALIAS ALG_TRY_TIMESTAMP AS $$ +java.sql.Timestamp algTryTimestamp(String value) { + if (value == null) return null; + try { + java.time.format.DateTimeFormatter formatter = new java.time.format.DateTimeFormatterBuilder() + .appendPattern("uuuu-MM-dd HH:mm:ss") + .optionalStart().appendFraction(java.time.temporal.ChronoField.NANO_OF_SECOND, 0, 9, true).optionalEnd() + .toFormatter().withResolverStyle(java.time.format.ResolverStyle.STRICT); + return java.sql.Timestamp.valueOf(java.time.LocalDateTime.parse(value, formatter)); + } catch (RuntimeException exception) { + return null; + } +} +$$; + +CREATE VIEW ALG_V_INVENTORY_ITEM AS +SELECT + STOCK_ID, SPACE_ID, TRAY_CODE, PROJECT_NO, PRODUCT_NO, LOT_NO, + INBOUND_TIME_RAW, INBOUND_AT, QUANTITY, OUT_QUANTITY +FROM ALG_INVENTORY_ITEM_SNAPSHOT; + +CREATE VIEW ALG_V_ACTIVE_JOB AS +WITH TRAY_CANDIDATES AS ( + SELECT J.JOB_ID, + COUNT(DISTINCT S.SPACE_ID) AS SPACE_COUNT, + MIN(S.SPACE_ID) AS CARGO_SPACE_ID, + COUNT(DISTINCT NULLIF(TRIM(S.PROJECT_NO), '')) AS PROJECT_COUNT, + MIN(NULLIF(TRIM(S.PROJECT_NO), '')) AS PROJECT_NO, + COUNT(DISTINCT NULLIF(TRIM(S.PRODUCT_NO), '')) AS PRODUCT_COUNT, + MIN(NULLIF(TRIM(S.PRODUCT_NO), '')) AS PRODUCT_NO + FROM MYDO_JOB J + JOIN ALG_INVENTORY_ITEM_SNAPSHOT S ON S.WAREHOUSE_ID = J.WAREHOUSE_ID + AND S.TRAY_CODE = NULLIF(TRIM(J.TRAY_CODE), '') + GROUP BY J.JOB_ID +), +RESOLVED_JOBS AS ( + SELECT J.JOB_ID, J.TASK_NO, J.TRAY_CODE, J.TARGET_CARGO_SPACE_ID, J.WAREHOUSE_ID, + J.STATUS, J.IN_OR_OUT, J.CREATE_TIME AS CREATE_TIME_RAW, + COALESCE(SOURCE_SPACE.CARGO_SPACE_ID, + CASE WHEN TRAY_CANDIDATES.SPACE_COUNT = 1 THEN TRAY_CANDIDATES.CARGO_SPACE_ID END) AS SOURCE_SPACE_ID, + CASE WHEN SOURCE_SPACE.CARGO_SPACE_ID IS NOT NULL THEN 'EXPLICIT' + WHEN TRAY_CANDIDATES.SPACE_COUNT = 1 THEN 'TRAY' + WHEN TRAY_CANDIDATES.SPACE_COUNT > 1 THEN 'AMBIGUOUS_TRAY' + ELSE 'UNRESOLVED' END AS SOURCE_RESOLUTION + FROM MYDO_JOB J + LEFT JOIN BAS_CARGO_SPACE SOURCE_SPACE ON SOURCE_SPACE.CARGO_SPACE_ID = NULLIF(TRIM(J.CARGO_SPACE_ID), '') + AND SOURCE_SPACE.WAREHOUSE_ID = J.WAREHOUSE_ID + LEFT JOIN TRAY_CANDIDATES ON TRAY_CANDIDATES.JOB_ID = J.JOB_ID + WHERE J.FINISH_TIME IS NULL OR TRIM(J.FINISH_TIME) = '' +), +SOURCE_SCOPE AS ( + SELECT R.JOB_ID, + COUNT(DISTINCT NULLIF(TRIM(S.PROJECT_NO), '')) AS PROJECT_COUNT, + MIN(NULLIF(TRIM(S.PROJECT_NO), '')) AS PROJECT_NO, + COUNT(DISTINCT NULLIF(TRIM(S.PRODUCT_NO), '')) AS PRODUCT_COUNT, + MIN(NULLIF(TRIM(S.PRODUCT_NO), '')) AS PRODUCT_NO + FROM RESOLVED_JOBS R + JOIN ALG_INVENTORY_ITEM_SNAPSHOT S ON S.WAREHOUSE_ID = R.WAREHOUSE_ID + AND S.SPACE_ID = R.SOURCE_SPACE_ID + GROUP BY R.JOB_ID +) +SELECT R.JOB_ID, R.TASK_NO, R.TRAY_CODE, + CASE WHEN R.SOURCE_SPACE_ID IS NOT NULL + THEN CASE WHEN SOURCE_SCOPE.PROJECT_COUNT = 1 THEN SOURCE_SCOPE.PROJECT_NO END + ELSE CASE WHEN TRAY_CANDIDATES.PROJECT_COUNT = 1 THEN TRAY_CANDIDATES.PROJECT_NO END END AS PROJECT_NO, + CASE WHEN R.SOURCE_SPACE_ID IS NOT NULL + THEN CASE WHEN SOURCE_SCOPE.PRODUCT_COUNT = 1 THEN SOURCE_SCOPE.PRODUCT_NO END + ELSE CASE WHEN TRAY_CANDIDATES.PRODUCT_COUNT = 1 THEN TRAY_CANDIDATES.PRODUCT_NO END END AS PRODUCT_NO, + R.SOURCE_SPACE_ID, R.TARGET_CARGO_SPACE_ID, R.WAREHOUSE_ID, R.STATUS, R.IN_OR_OUT, + R.CREATE_TIME_RAW, RESOLVED_SPACE.GROUP_CODING_NO AS SOURCE_LANE_CODE, R.SOURCE_RESOLUTION +FROM RESOLVED_JOBS R +LEFT JOIN TRAY_CANDIDATES ON TRAY_CANDIDATES.JOB_ID = R.JOB_ID +LEFT JOIN SOURCE_SCOPE ON SOURCE_SCOPE.JOB_ID = R.JOB_ID +LEFT JOIN BAS_CARGO_SPACE RESOLVED_SPACE ON RESOLVED_SPACE.CARGO_SPACE_ID = R.SOURCE_SPACE_ID; + +CREATE VIEW ALG_V_SPACE_STATE AS +WITH OUTBOUND_LANES AS ( + SELECT DISTINCT WAREHOUSE_ID, SOURCE_LANE_CODE AS LANE_CODE + FROM ALG_V_ACTIVE_JOB + WHERE IN_OR_OUT >= 20 AND SOURCE_LANE_CODE IS NOT NULL +), +ACTIVE_RESERVATIONS AS ( + SELECT SPACE_ID, MIN(RESERVATION_ID) AS RESERVATION_ID + FROM ALG_RESERVATION + WHERE STATUS = 'ACTIVE' + GROUP BY SPACE_ID +), +SPACE_DEPTH AS ( + SELECT CARGO_SPACE_ID, WAREHOUSE_ID, GROUP_CODING_NO, STATUS, + CASE WHEN GROUP_CODING REGEXP '^[0-9]+$' THEN CAST(GROUP_CODING AS INT) END AS DEPTH + FROM BAS_CARGO_SPACE +), +LANE_GAPS AS ( + SELECT DISTINCT INNER_SPACE.WAREHOUSE_ID, INNER_SPACE.GROUP_CODING_NO AS LANE_CODE + FROM BAS_CARGO_SPACE INNER_SPACE + JOIN BAS_CARGO_SPACE OUTER_SPACE + ON OUTER_SPACE.WAREHOUSE_ID = INNER_SPACE.WAREHOUSE_ID + AND OUTER_SPACE.GROUP_CODING_NO = INNER_SPACE.GROUP_CODING_NO + AND CASE WHEN OUTER_SPACE.GROUP_CODING REGEXP '^[0-9]+$' THEN CAST(OUTER_SPACE.GROUP_CODING AS INT) END + > CASE WHEN INNER_SPACE.GROUP_CODING REGEXP '^[0-9]+$' THEN CAST(INNER_SPACE.GROUP_CODING AS INT) END + WHERE CASE WHEN INNER_SPACE.GROUP_CODING REGEXP '^[0-9]+$' THEN CAST(INNER_SPACE.GROUP_CODING AS INT) END IS NOT NULL + AND CASE WHEN OUTER_SPACE.GROUP_CODING REGEXP '^[0-9]+$' THEN CAST(OUTER_SPACE.GROUP_CODING AS INT) END IS NOT NULL + AND NULLIF(TRIM(INNER_SPACE.TRAY_CODE), '') IS NULL + AND NOT EXISTS ( + SELECT 1 FROM ALG_INVENTORY_ITEM_SNAPSHOT INNER_STOCK + WHERE INNER_STOCK.WAREHOUSE_ID = INNER_SPACE.WAREHOUSE_ID + AND INNER_STOCK.SPACE_ID = INNER_SPACE.CARGO_SPACE_ID + ) + AND ( + NULLIF(TRIM(OUTER_SPACE.TRAY_CODE), '') IS NOT NULL + OR EXISTS ( + SELECT 1 FROM ALG_INVENTORY_ITEM_SNAPSHOT OUTER_STOCK + WHERE OUTER_STOCK.WAREHOUSE_ID = OUTER_SPACE.WAREHOUSE_ID + AND OUTER_STOCK.SPACE_ID = OUTER_SPACE.CARGO_SPACE_ID + ) + ) +) +SELECT + C.CARGO_SPACE_ID AS SPACE_ID, + C.WAREHOUSE_ID, + C.GROUP_CODING_NO AS LANE_CODE, + C.CARGO_AREA_ID AS AREA_ID, + CASE + WHEN COALESCE(R.ROLE, 'STORAGE') IN ('RELOCATION_BUFFER', 'OUTBOUND_BUFFER') THEN 'CACHE' + WHEN COALESCE(R.ROLE, 'STORAGE') = 'PROTECTED_CORE' THEN 'RESERVE' + ELSE TOPOLOGY.BASE_ZONE + END AS ZONE_CODE, + C.ROADWAY_ID, + C.CARGO_SPACE_NAME AS DISPLAY_NAME, + C.THE_PLATOON AS PLATOON, + C.THE_COLUMN AS COLUMN_NO, + C.THE_FLOOR AS FLOOR_NO, + C.GROUP_CODING AS DEPTH_RAW, + SPACE_DEPTH.DEPTH, + C.STATUS AS SPACE_STATUS, + C.LOCKED, + C.TRAY_CODE AS SPACE_TRAY_CODE, + COALESCE(R.ROLE, 'STORAGE') AS ROLE, + COALESCE(STOCK.STOCK_DETAIL_COUNT, 0) AS STOCK_DETAIL_COUNT, + COALESCE(STOCK.STOCK_TRAY_COUNT, 0) AS STOCK_TRAY_COUNT, + COALESCE(STOCK.STOCK_PROJECT_COUNT, 0) AS STOCK_PROJECT_COUNT, + COALESCE(STOCK.STOCK_PRODUCT_COUNT, 0) AS STOCK_PRODUCT_COUNT, + COALESCE(STOCK.STOCK_TRAY_COUNT, 0) > 1 AS TRAY_CONFLICT, + COALESCE(STOCK.STOCK_PROJECT_COUNT, 0) > 1 AS PROJECT_CONFLICT, + FALSE AS PRODUCT_CONFLICT, + OUTBOUND_LANES.LANE_CODE IS NOT NULL AS PENDING_OUTBOUND, + ACTIVE_RESERVATIONS.RESERVATION_ID, + ACTIVE_RESERVATIONS.RESERVATION_ID IS NOT NULL AS RESERVED, + LANE_GAPS.LANE_CODE IS NOT NULL AS HAS_GAP, + CASE + WHEN C.STATUS IS NULL OR C.STATUS <> '1' THEN FALSE + WHEN NULLIF(TRIM(C.LOCKED), '') IS NOT NULL AND TRIM(C.LOCKED) NOT IN ('0', 'N') THEN FALSE + WHEN NULLIF(TRIM(C.TRAY_CODE), '') IS NOT NULL THEN FALSE + WHEN COALESCE(STOCK.STOCK_DETAIL_COUNT, 0) <> 0 THEN FALSE + WHEN SPACE_DEPTH.DEPTH IS NULL THEN FALSE + WHEN COALESCE(R.ROLE, 'STORAGE') <> 'STORAGE' THEN FALSE + WHEN OUTBOUND_LANES.LANE_CODE IS NOT NULL THEN FALSE + WHEN ACTIVE_RESERVATIONS.RESERVATION_ID IS NOT NULL THEN FALSE + WHEN LANE_GAPS.LANE_CODE IS NOT NULL THEN FALSE + WHEN EXISTS ( + SELECT 1 + FROM BAS_CARGO_SPACE INNER_CANDIDATE + LEFT JOIN ALG_SPACE_INVENTORY_SUMMARY INNER_STOCK + ON INNER_STOCK.WAREHOUSE_ID = INNER_CANDIDATE.WAREHOUSE_ID + AND INNER_STOCK.SPACE_ID = INNER_CANDIDATE.CARGO_SPACE_ID + WHERE INNER_CANDIDATE.WAREHOUSE_ID = C.WAREHOUSE_ID + AND INNER_CANDIDATE.GROUP_CODING_NO = C.GROUP_CODING_NO + AND CASE WHEN INNER_CANDIDATE.GROUP_CODING REGEXP '^[0-9]+$' THEN CAST(INNER_CANDIDATE.GROUP_CODING AS INT) END < SPACE_DEPTH.DEPTH + AND INNER_CANDIDATE.STATUS = '1' + AND NULLIF(TRIM(INNER_CANDIDATE.TRAY_CODE), '') IS NULL + AND INNER_STOCK.SPACE_ID IS NULL + ) THEN FALSE + ELSE TRUE + END AS INBOUND_AVAILABLE +FROM BAS_CARGO_SPACE C +JOIN ALG_SPACE_TOPOLOGY TOPOLOGY ON TOPOLOGY.SPACE_ID = C.CARGO_SPACE_ID +LEFT JOIN SPACE_DEPTH ON SPACE_DEPTH.CARGO_SPACE_ID = C.CARGO_SPACE_ID +LEFT JOIN ALG_SPACE_INVENTORY_SUMMARY STOCK ON STOCK.WAREHOUSE_ID = C.WAREHOUSE_ID + AND STOCK.SPACE_ID = C.CARGO_SPACE_ID +LEFT JOIN ALG_SPACE_ROLE R ON R.SPACE_ID = C.CARGO_SPACE_ID +LEFT JOIN OUTBOUND_LANES ON OUTBOUND_LANES.WAREHOUSE_ID = C.WAREHOUSE_ID + AND OUTBOUND_LANES.LANE_CODE = C.GROUP_CODING_NO +LEFT JOIN ACTIVE_RESERVATIONS ON ACTIVE_RESERVATIONS.SPACE_ID = C.CARGO_SPACE_ID +LEFT JOIN LANE_GAPS ON LANE_GAPS.WAREHOUSE_ID = C.WAREHOUSE_ID + AND LANE_GAPS.LANE_CODE = C.GROUP_CODING_NO; diff --git a/pom.xml b/pom.xml index 796e05e..1e56dd9 100644 --- a/pom.xml +++ b/pom.xml @@ -170,6 +170,13 @@ ${ruoyi.version} + + + com.ruoyi + fortucky-algorithm + ${ruoyi.version} + + com.ruoyi @@ -243,6 +250,7 @@ ruoyi-quartz ruoyi-generator ruoyi-common + fortucky-algorithm pom diff --git a/ruoyi-admin/pom.xml b/ruoyi-admin/pom.xml index c3d5860..89c520f 100644 --- a/ruoyi-admin/pom.xml +++ b/ruoyi-admin/pom.xml @@ -54,6 +54,12 @@ ruoyi-generator + + + com.ruoyi + fortucky-algorithm + + org.springframework.ai spring-ai-starter-model-openai diff --git a/ruoyi-admin/src/test/java/com/ruoyi/algorithm/shadow/ShadowModuleStructureTest.java b/ruoyi-admin/src/test/java/com/ruoyi/algorithm/shadow/ShadowModuleStructureTest.java new file mode 100644 index 0000000..a545d99 --- /dev/null +++ b/ruoyi-admin/src/test/java/com/ruoyi/algorithm/shadow/ShadowModuleStructureTest.java @@ -0,0 +1,21 @@ +package com.ruoyi.algorithm.shadow; + +import com.ruoyi.algorithm.integration.SchedulingDecisionStatus; +import com.ruoyi.algorithm.integration.SchedulingMode; +import com.ruoyi.algorithm.integration.SchedulingRoutingPolicy; +import org.junit.jupiter.api.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +class ShadowModuleStructureTest { + + @Test + void shadowPolicyAlwaysLeavesTheLegacyDecisionPathEnabled() { + SchedulingRoutingPolicy policy = new SchedulingRoutingPolicy(SchedulingMode.SHADOW, false); + + assertThat(policy.algorithmOwnsDecision()).isFalse(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.READY)).isTrue(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.REJECTED)).isTrue(); + assertThat(policy.runLegacy(SchedulingDecisionStatus.TECHNICAL_ERROR)).isTrue(); + } +}