From d5c06a9e5bc44564cc1d31cb82ec29640c4f2cbb Mon Sep 17 00:00:00 2001 From: vincentlu <t1341870251@gmail.com> Date: 星期二, 21 一月 2025 14:25:01 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java | 47 ++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 42 insertions(+), 5 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java index 102a266..9a7a5b7 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/fake/AgvSimulatorTask.java @@ -6,6 +6,7 @@ import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.manager.core.cache.CoreCache; import com.zy.acs.manager.core.domain.CodeStepDto; +import com.zy.acs.manager.core.domain.type.JobType; import com.zy.acs.manager.core.scheduler.MapDataWsScheduler; import com.zy.acs.manager.core.service.MainService; import com.zy.acs.manager.core.service.MapService; @@ -14,10 +15,7 @@ import com.zy.acs.manager.manager.entity.Code; import com.zy.acs.manager.manager.enums.ActionStsType; import com.zy.acs.manager.manager.enums.ActionTypeType; -import com.zy.acs.manager.manager.service.ActionService; -import com.zy.acs.manager.manager.service.AgvDetailService; -import com.zy.acs.manager.manager.service.CodeService; -import com.zy.acs.manager.manager.service.JamService; +import com.zy.acs.manager.manager.service.*; import lombok.extern.slf4j.Slf4j; import java.util.List; @@ -31,6 +29,7 @@ private final Agv agv; private final AgvDetailService agvDetailService; + private final AgvModelService agvModelService; private final ActionService actionService; private final CodeService codeService; private final MapService mapService; @@ -46,6 +45,7 @@ Agv agv , RedisSupport redis , AgvDetailService agvDetailService + , AgvModelService agvModelService , ActionService actionService , CodeService codeService , MapService mapService @@ -56,6 +56,7 @@ this.agv = agv; this.redis = redis; this.agvDetailService = agvDetailService; + this.agvModelService = agvModelService; this.actionService = actionService; this.codeService = codeService; this.mapService = mapService; @@ -145,12 +146,48 @@ } private void finishActionList(String qrCode) { + Long agvId = this.agv.getId(); + String agvNo = this.agv.getUuid(); // 1.show effect - CodeStepDto codeStepDto = CoreCache.AGV_MOCK_STEP_CACHE.get(this.agv.getId()); + CodeStepDto codeStepDto = CoreCache.AGV_MOCK_STEP_CACHE.get(agvId); if (null != codeStepDto && qrCode.equals(codeStepDto.getCodeData())) { // Code currentCode = agvDetailService.getCurrentCode(this.agv.getId()); try { Thread.sleep(codeStepDto.getJobType().waitTime); } catch (InterruptedException ignore) {} CoreCache.AGV_MOCK_STEP_CACHE.remove(this.agv.getId()); + + JobType jobType = CoreCache.AGV_MOCK_JOB_CACHE.get(this.agv.getUuid()); + switch (jobType) { + case LOC_PICK: + Integer usedSlotsByLocPick = CoreCache.AGV_BACKPACK_USED_CACHE.get(agvId); + usedSlotsByLocPick++; + CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, usedSlotsByLocPick); + + if (Objects.equals(agvModelService.getByAgvId(agvId).getBackpack(), usedSlotsByLocPick)) { + CoreCache.AGV_MOCK_JOB_CACHE.put(agvNo, JobType.CONVEYOR_DROP); + } + break; + case CONVEYOR_DROP: + CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, 0); + + CoreCache.AGV_MOCK_JOB_CACHE.put(agvNo, JobType.CONVEYOR_PICK); + break; + case CONVEYOR_PICK: + CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, agvModelService.getByAgvId(agvId).getBackpack()); + + CoreCache.AGV_MOCK_JOB_CACHE.put(agvNo, JobType.LOCK_DROP); + break; + case LOCK_DROP: + Integer usedSlotsByLocDrop = CoreCache.AGV_BACKPACK_USED_CACHE.get(agvId); + usedSlotsByLocDrop--; + CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, usedSlotsByLocDrop); + + if (usedSlotsByLocDrop == 0) { + CoreCache.AGV_MOCK_JOB_CACHE.put(agvNo, JobType.LOC_PICK); + } + break; + default: + break; + } } // 2.complete data -- Gitblit v1.9.1