From 2170edf1ba597d50dcf4ca82afa718a946a2278b Mon Sep 17 00:00:00 2001 From: vincentlu <t1341870251@gmail.com> Date: 星期一, 24 二月 2025 14:52:13 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java | 96 ++++++++++++++++++++++------------------------- 1 files changed, 45 insertions(+), 51 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java index b52ae15..13d4a97 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java @@ -5,7 +5,12 @@ import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.R; import com.zy.acs.manager.core.cache.CoreCache; -import com.zy.acs.manager.manager.entity.*; +import com.zy.acs.manager.core.domain.CodeStepDto; +import com.zy.acs.manager.core.domain.type.JobType; +import com.zy.acs.manager.manager.entity.Agv; +import com.zy.acs.manager.manager.entity.AgvDetail; +import com.zy.acs.manager.manager.entity.Code; +import com.zy.acs.manager.manager.entity.Travel; import com.zy.acs.manager.manager.enums.StatusType; import com.zy.acs.manager.manager.enums.TaskTypeType; import com.zy.acs.manager.manager.enums.TravelStateType; @@ -45,17 +50,8 @@ }}; private List<String> CONVEYOR_PICK_CODE_DATA_CACHE = new ArrayList<String>(){{ - add("00000246"); + add("00000146"); }}; - - private Map<String, JobType> agvJobMap = new ConcurrentHashMap<>(); - public enum JobType { - CONVEYOR_PICK, - CONVEYOR_DROP, - LOC_PICK, - LOCK_DROP, - ; - } @Autowired private AgvService agvService; @@ -91,9 +87,9 @@ return; } - JobType jobType = this.agvJobMap.get(agvNo); + JobType jobType = CoreCache.AGV_MOCK_JOB_CACHE.get(agvNo); if (null == jobType) { - this.agvJobMap.put(agvNo, JobType.LOC_PICK); + CoreCache.AGV_MOCK_JOB_CACHE.put(agvNo, JobType.LOC_PICK); CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, 0); jobType = JobType.LOC_PICK; } @@ -101,6 +97,7 @@ String destinationCodeData = null; switch (jobType) { case LOC_PICK: + // 5, 4, 3, 2, 1 int locPickRemaining = agvService.getBackpackRemainingCapacity(agvId); if (0 < locPickRemaining) { destinationCodeData = this.getLocCode(agvNo, null); @@ -113,8 +110,9 @@ destinationCodeData = this.getConveyorPickCode(agvNo); break; case LOCK_DROP: + // 0, 1, 2, 3, 4 int locDropRemaining = agvService.getBackpackRemainingCapacity(agvId); - if (0 < locDropRemaining) { + if (locDropRemaining < agvModelService.getByAgvId(agvId).getBackpack()) { destinationCodeData = this.getLocCode(agvNo, null); } break; @@ -128,40 +126,8 @@ if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) { log.info( "{}寮�濮嬩綔涓氭紨绀�...", agvNo); - switch (jobType) { - case LOC_PICK: - Integer usedSlotsByLocPick = CoreCache.AGV_BACKPACK_USED_CACHE.get(agvId); - usedSlotsByLocPick++; - if (Objects.equals(agvModelService.getByAgvId(agvId).getBackpack(), usedSlotsByLocPick)) { - this.agvJobMap.put(agvNo, JobType.CONVEYOR_DROP); - } else { - CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, usedSlotsByLocPick); - } - break; - case CONVEYOR_DROP: - CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, 0); - - this.agvJobMap.put(agvNo, JobType.CONVEYOR_PICK); - break; - case CONVEYOR_PICK: - CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, agvModelService.getByAgvId(agvId).getBackpack()); - - this.agvJobMap.put(agvNo, JobType.LOCK_DROP); - break; - case LOCK_DROP: - Integer usedSlotsByLocDrop = CoreCache.AGV_BACKPACK_USED_CACHE.get(agvId); - usedSlotsByLocDrop--; - - if (usedSlotsByLocDrop == 0) { - this.agvJobMap.put(agvNo, JobType.LOC_PICK); - } else { - CoreCache.AGV_BACKPACK_USED_CACHE.put(agvId, usedSlotsByLocDrop); - } - break; - default: - break; - } + CoreCache.AGV_MOCK_STEP_CACHE.put(agvId, CodeStepDto.build(destinationCodeData, jobType)); } } @@ -253,6 +219,33 @@ notInCodeSet.add("00000046"); notInCodeSet.add("00000047"); + notInCodeSet.add("00000270"); + notInCodeSet.add("00000265"); + notInCodeSet.add("00000229"); + notInCodeSet.add("00000188"); + notInCodeSet.add("00000133"); + notInCodeSet.add("00000134"); + notInCodeSet.add("00000279"); + notInCodeSet.add("00000278"); + notInCodeSet.add("00000266"); + notInCodeSet.add("00000267"); + notInCodeSet.add("00000268"); + notInCodeSet.add("00000269"); + notInCodeSet.add("00000271"); + notInCodeSet.add("00000272"); + notInCodeSet.add("00000273"); + notInCodeSet.add("00000274"); + notInCodeSet.add("00000275"); + notInCodeSet.add("00000276"); + notInCodeSet.add("00000277"); + notInCodeSet.add("00000285"); + notInCodeSet.add("00000286"); + notInCodeSet.add("00000280"); + notInCodeSet.add("00000281"); + notInCodeSet.add("00000282"); + notInCodeSet.add("00000283"); + notInCodeSet.add("00000284"); + Collections.shuffle(CODE_DATA_CACHE); for (String endCodeData : CODE_DATA_CACHE) { @@ -291,8 +284,8 @@ Runnable patrolTask = () -> { try { -// executePatrolLogic(agvNo); - executeUShapeConveyor(agvNo); + executePatrolLogic(agvNo); +// executeUShapeConveyor(agvNo); } catch (Exception e) { log.error("鎵цAGV{}璺戝簱浠诲姟鏃跺彂鐢熷紓甯�: {}", agvNo, e.getMessage()); } @@ -317,8 +310,9 @@ if (cancelled) { AGV_PATROL_MAP.remove(agvNo); CoreCache.AGV_BACKPACK_USED_CACHE.remove(agvId); - this.agvJobMap.remove(agvNo); - log.info("宸插仠姝GV " + agvNo + " 鐨勮窇搴撲换鍔°��"); + CoreCache.AGV_MOCK_STEP_CACHE.remove(agvId); + CoreCache.AGV_MOCK_JOB_CACHE.remove(agvNo); + log.info("宸插仠姝GV {} 鐨勮窇搴撲换鍔°��", agvNo); return R.ok("宸插仠姝GV " + agvNo + " 鐨勮窇搴撲换鍔°��"); } else { log.error("鏈兘鎴愬姛鍋滄AGV " + agvNo + " 鐨勮窇搴撲换鍔°��"); -- Gitblit v1.9.1