diff --git a/servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java b/servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java index 1277282..2dee505 100644 --- a/servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java +++ b/servo/src/main/java/com/galaxis/rcs/amr/AmrAgvItem.java @@ -27,7 +27,7 @@ import java.util.concurrent.BlockingQueue; import java.util.concurrent.locks.LockSupport; @Slf4j -public abstract class AmrAgvItem extends ExecutorItem { +public abstract class AmrAgvItem extends ExecutorItem { private static final int BLOCKING_QUEUE_CAPACITY = 100; private static final Redis redis = RedisAdmin.getRedis(); @@ -596,6 +596,10 @@ public abstract class AmrAgvItem extends ExecutorItem { } else { deviceTask.goodsSlotHeight = 1; } + if (sequence.getUnloadHeight() > 0d) { + deviceTask.goodsSlotHeight = (int) Math.round(sequence.getLoadHeight() * 1000); + log.info("option.loadHeight = {}", deviceTask.goodsSlotHeight); + } if (linkStore != null) { for (Map store : linkStore) { if (store.get("item").equals(plan.getTargetId()) && store.get("level").equals(plan.getTargetLevel()) && store.get("bay").equals(plan.getTargetBay()) && store.get("cell").equals(plan.getTargetCell())) { @@ -660,6 +664,10 @@ public abstract class AmrAgvItem extends ExecutorItem { } else { deviceTask.goodsSlotHeight = 1; } + if (sequence.getUnloadHeight() > 0d) { + deviceTask.goodsSlotHeight = (int) Math.round(sequence.getUnloadHeight() * 1000); + log.info("option.unloadHeight = {}", deviceTask.goodsSlotHeight); + } if (linkStore != null) { for (Map store : linkStore) { if (store.get("item").equals(plan.getTargetId()) && store.get("level").equals(plan.getTargetLevel()) && store.get("bay").equals(plan.getTargetBay()) && store.get("cell").equals(plan.getTargetCell())) { diff --git a/servo/src/main/java/com/galaxis/rcs/plan/PlanTaskSequence.java b/servo/src/main/java/com/galaxis/rcs/plan/PlanTaskSequence.java index c6180b7..c2b12fd 100644 --- a/servo/src/main/java/com/galaxis/rcs/plan/PlanTaskSequence.java +++ b/servo/src/main/java/com/galaxis/rcs/plan/PlanTaskSequence.java @@ -12,6 +12,7 @@ import com.yvan.logisticsModel.ExecutorItem; import com.yvan.logisticsModel.LogisticsRuntime; import com.yvan.logisticsModel.LogisticsRuntimeService; import lombok.extern.slf4j.Slf4j; +import org.clever.core.Conv; import org.clever.core.id.SnowFlake; import org.clever.core.json.JsonWrapper; @@ -39,6 +40,7 @@ public class PlanTaskSequence { public BasLocationVo unloadBasLocationVo; public BasLocationVo executorVo; public int carryQty; + public Map option; public PlanTaskSequence(String executorId, LogisticsRuntime logisticsRuntime, RcsTaskBiz bizTask, String createBy) { this.executorId = executorId; @@ -65,7 +67,7 @@ public class PlanTaskSequence { return planTask; } - public ExecutorItem getAgv(){ + public ExecutorItem getAgv() { return this.logisticsRuntime.executorItemMap.get(this.executorId); } @@ -209,6 +211,20 @@ public class PlanTaskSequence { return this.taskList.size(); } + public double getLoadHeight() { + if (this.option == null || this.option.get("loadHeight") == null) { + return 0d; + } + return Conv.asDouble(this.option.get("loadHeight")); + } + + public double getUnloadHeight() { + if (this.option == null || this.option.get("unloadHeight") == null) { + return 0d; + } + return Conv.asDouble(this.option.get("unloadHeight")); + } + public int completedCount() { int count = 0; for (RcsTaskPlan task : taskList) { diff --git a/servo/src/main/java/com/yvan/workbench/controller/RcsController.java b/servo/src/main/java/com/yvan/workbench/controller/RcsController.java index 41327db..d98e8ff 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/RcsController.java +++ b/servo/src/main/java/com/yvan/workbench/controller/RcsController.java @@ -224,6 +224,7 @@ public class RcsController { ps.planSequence.unloadBasLocationVo = new BasLocationVo(unloadBasLocation); ps.planSequence.carryLpn = lpn; ps.planSequence.carryQty = 1; + ps.planSequence.option = ps.option; ps.runtime.pathPlannerMap.get(ps.agv.getT()) .planCarryTask(ps.planSequence, ps.fromItem.getId(), ps.fromDirection, carryTask); @@ -289,6 +290,7 @@ public class RcsController { ps.planSequence.unloadBasLocationVo = new BasLocationVo(unloadBasLocation); ps.planSequence.carryLpn = lpn; ps.planSequence.carryQty = 1; + ps.planSequence.option = ps.option; ps.runtime.pathPlannerMap.get(ps.agv.getT()) .planUnloadTask(ps.planSequence, ps.fromItem.getId(), ps.fromDirection, unloadTask); @@ -353,6 +355,7 @@ public class RcsController { ps.planSequence.unloadBasLocationVo = null; ps.planSequence.carryLpn = lpn; ps.planSequence.carryQty = 1; + ps.planSequence.option = ps.option; ps.runtime.pathPlannerMap.get(ps.agv.getT()) .planLoadTask(ps.planSequence, ps.fromItem.getId(), ps.fromDirection, loadTask);