From 29aa7746640d7d0c0f01f3e0d3f23ef3250086a7 Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期五, 13 六月 2025 16:50:39 +0800 Subject: [PATCH] 数据为空的校验补充 --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java | 85 ++++++++---------------------------------- 1 files changed, 17 insertions(+), 68 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 9dd818d..2fdaf0b 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 @@ -4,6 +4,7 @@ import com.zy.acs.common.utils.RedisSupport; import com.zy.acs.framework.common.Cools; import com.zy.acs.framework.common.R; +import com.zy.acs.manager.core.constant.AgvAreaDispatcher; 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; @@ -50,10 +51,8 @@ }}; private List<String> CONVEYOR_PICK_CODE_DATA_CACHE = new ArrayList<String>(){{ - add("00000246"); + add("00000146"); }}; - - private Map<String, JobType> agvJobMap = new ConcurrentHashMap<>(); @Autowired private AgvService agvService; @@ -89,9 +88,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; } @@ -130,40 +129,6 @@ log.info( "{}寮�濮嬩綔涓氭紨绀�...", agvNo); CoreCache.AGV_MOCK_STEP_CACHE.put(agvId, CodeStepDto.build(destinationCodeData, jobType)); - 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; - } } } @@ -235,30 +200,14 @@ Code startCode = codeService.getCacheById(agvDetail.getRecentCode()); - Set<String> notInCodeSet = new HashSet<>(); - notInCodeSet.add("00000301"); - notInCodeSet.add("00000302"); - notInCodeSet.add("00000303"); - notInCodeSet.add("00000351"); - notInCodeSet.add("00000353"); - notInCodeSet.add("00000401"); - notInCodeSet.add("00000402"); + List<String> codeList = AgvAreaDispatcher.AGV_AREA.get(agvNo); + List<String> disableCodeList = AgvAreaDispatcher.AGV_DISABLE_AREA.get(agvNo); + if (!Cools.isEmpty(codeList)) { + Collections.shuffle(codeList); + } - notInCodeSet.add("00000311"); - notInCodeSet.add("00000312"); - notInCodeSet.add("00000313"); - notInCodeSet.add("00000361"); - notInCodeSet.add("00000363"); - notInCodeSet.add("00000411"); - notInCodeSet.add("00000412"); - - notInCodeSet.add("00000046"); - notInCodeSet.add("00000047"); - - Collections.shuffle(CODE_DATA_CACHE); - - for (String endCodeData : CODE_DATA_CACHE) { - if (notInCodeSet.contains(endCodeData)) { continue; } + for (String endCodeData : codeList) { + if (disableCodeList.contains(endCodeData)) { continue; } Code endCode = codeService.getCacheByData(endCodeData); // valid lane @@ -273,7 +222,7 @@ } } - return CODE_DATA_CACHE.stream().findFirst().orElse(null); + return codeList.stream().findFirst().orElse(null); } // --------------------------------------------------------------------------- @@ -293,10 +242,10 @@ Runnable patrolTask = () -> { try { -// executePatrolLogic(agvNo); - executeUShapeConveyor(agvNo); + executePatrolLogic(agvNo); +// executeUShapeConveyor(agvNo); } catch (Exception e) { - log.error("鎵цAGV{}璺戝簱浠诲姟鏃跺彂鐢熷紓甯�: {}", agvNo, e.getMessage()); + log.error("鎵цAGV{}璺戝簱浠诲姟鏃跺彂鐢熷紓甯�", agvNo, e); } }; @@ -320,8 +269,8 @@ AGV_PATROL_MAP.remove(agvNo); CoreCache.AGV_BACKPACK_USED_CACHE.remove(agvId); CoreCache.AGV_MOCK_STEP_CACHE.remove(agvId); - this.agvJobMap.remove(agvNo); - log.info("宸插仠姝GV " + agvNo + " 鐨勮窇搴撲换鍔°��"); + 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