From 2a6e27f1c0064690d6fc6ab137d64c02fc0742da Mon Sep 17 00:00:00 2001 From: zhang <zc857179121@qq.com> Date: 星期一, 16 六月 2025 16:16:09 +0800 Subject: [PATCH] 1 --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 7 ++++--- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java | 2 +- zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java | 4 ++-- zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java | 8 +++++--- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java | 4 ++-- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/PatrolService.java | 4 ++-- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java | 2 +- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java | 2 +- zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java | 23 +++++++++++++++++++---- 9 files changed, 37 insertions(+), 19 deletions(-) diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java index 8f6a78e..dc9d4dc 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/HandlerController.java @@ -134,10 +134,12 @@ log.info(agv.getUuid() + "鍙稟GV涓嶅彲鐢紝宸茬粡瀛樺湪杩涜涓殑浠诲姟..."); return R.error(); } - if (!agvService.judgeEnable(agv.getId())) { + // zhangc 鍦ㄧ敤鎴锋墜鍔ㄦ帶鍒舵椂锛岄渶瑕佺敤鎴蜂富瑙傚垽鏂紝鎵�浠ュ皬杞﹀彧瑕侀珮浜庝綆鐢甸噺闃堝�煎氨鍙互鎵嬪姩鎺у埗锛屾墍浠ユ敞閲� + if (!agvService.judgeEnable(agv.getId(),true,true)) { log.info(agv.getUuid() + "鍙稟GV涓嶅彲鐢紝浠诲姟鏃犳硶璁$畻..."); return R.error(); } + // generate Loc oriLoc = null; @@ -157,13 +159,13 @@ if (null == endCode) { return R.error(); } - if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null)) { + if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), endCode.getData(), null, true)) { return R.error(); } break; case TO_CHARGE: case TO_STANDBY: - if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null)) { + if (!mainLockWrapService.buildMinorTask(agv.getId(), param.getTaskMode(), null, null, true)) { return R.error(); } break; diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java index d5b5c73..b8ff15e 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/scheduler/MaintainScheduler.java @@ -81,7 +81,7 @@ continue; } - mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_CHARGE, null, null); + mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_CHARGE, null, null,false); } } } @@ -144,7 +144,7 @@ } // } - mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null); + mainLockWrapService.buildMinorTask(agv.getId(), TaskTypeType.TO_STANDBY, null, null,false); } } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java index 7204350..3d3b55c 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/AllocateService.java @@ -82,7 +82,7 @@ continue; } // 2. in idle status - if (!agvService.judgeEnable(agv.getId(), true)) { + if (!agvService.judgeEnable(agv.getId(), true,false)) { continue; } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java index 0021542..108e789 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainLockWrapService.java @@ -46,7 +46,7 @@ } } - public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam) { + public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam, Boolean force) { boolean lockAcquired = false; try { if (!(lockAcquired = this.lock.tryLock(LOCK_TIMEOUT, TimeUnit.SECONDS))) { @@ -54,7 +54,7 @@ } // log.info("buildMinorTask AGV[{}] lock time: {}", agv.getUuid(), System.currentTimeMillis()); - return mainService.buildMinorTask(agvId, taskType, destination, jam); + return mainService.buildMinorTask(agvId, taskType, destination, jam,force); } catch (Exception e) { log.error("MainLockWrapService.buildMinorTask[task]", e); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java index dbf5fd2..8f9d1bf 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java @@ -288,7 +288,7 @@ try { // valid ----------------------------------------------- Agv agv = agvService.getById(agvId); - if (!agvService.judgeEnable(agv.getId(), false)) { + if (!agvService.judgeEnable(agv.getId(), false, false)) { return; } if (!Cools.isEmpty(taskService.selectInSts(agvId, TaskStsType.ASSIGN, TaskStsType.PROGRESS))) { @@ -529,13 +529,14 @@ /** * 鍏呯數 鍥炲緟鏈轰綅浠诲姟 + * zc 鏂板浜嗘槸鍚﹀己鍒讹紝寮哄埗璇存槑鐢辩敤鎴峰彂璧凤紝灏忚溅鍦ㄨ秴杩囦綆鐢甸噺灏卞彲浠ュ仛绉诲姩鍏呯數鍘诲緟鏈轰綅 */ @Transactional(propagation = Propagation.REQUIRES_NEW) // although there is a Transactional here that the lock is isolated, but we can't join the caller's Transactional - public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam) { + public boolean buildMinorTask(Long agvId, TaskTypeType taskType, String destination, Jam jam,boolean force) { if (Cools.isEmpty(agvId, taskType)) { return false; } try { String agvNo = agvService.getAgvNo(agvId); - if (!agvService.judgeEnable(agvId)) { + if (!agvService.judgeEnable(agvId,false, force)) { return false; } if (!Cools.isEmpty(taskService.selectInSts(agvId, TaskStsType.ASSIGN, TaskStsType.PROGRESS))) { 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 2fdaf0b..86fb4cc 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 @@ -125,7 +125,7 @@ return; } - if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) { + if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null,false)) { log.info( "{}寮�濮嬩綔涓氭紨绀�...", agvNo); CoreCache.AGV_MOCK_STEP_CACHE.put(agvId, CodeStepDto.build(destinationCodeData, jobType)); @@ -180,7 +180,7 @@ if (Cools.isEmpty(destinationCodeData)) { return; } - if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null)) { + if (mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, destinationCodeData, null,false)) { log.info( "{}寮�濮嬭蛋琛屾紨绀�...", agvNo); } } diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java index 775f301..6e9066e 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/TrafficService.java @@ -601,7 +601,7 @@ } else { - return mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, endCodeData, jam); + return mainLockWrapService.buildMinorTask(agvId, TaskTypeType.MOVE, endCodeData, jam, false); } return true; diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java index 989a4e0..6b7e72f 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/AgvService.java @@ -28,7 +28,7 @@ Boolean judgeEnable(Long agvId); - Boolean judgeEnable(Long agvId, Boolean withBattery); + Boolean judgeEnable(Long agvId, Boolean withBattery, Boolean force); Boolean judgeOnline(Long agvId); diff --git a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java index 1a08ec2..e153887 100644 --- a/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java +++ b/zy-acs-manager/src/main/java/com/zy/acs/manager/manager/service/impl/AgvServiceImpl.java @@ -106,11 +106,18 @@ @Override public Boolean judgeEnable(Long agvId) { - return this.judgeEnable(agvId, false); + return this.judgeEnable(agvId, false,false); } + /** + * 鍒ゆ柇AGV鏄惁鍙敤 + * @param agvId + * @param isLowBattery 浣庣數閲忓垽鏂� + * @param force 鏄惁寮哄埗鎿嶄綔 + * @return + */ @Override - public Boolean judgeEnable(Long agvId, Boolean isLowBattery) { + public Boolean judgeEnable(Long agvId, Boolean isLowBattery, Boolean force) { String agvNo = this.getAgvNo(agvId); AgvModel agvModel = agvModelService.getByAgvId(agvId); if (0 < segmentService.count(new LambdaQueryWrapper<Segment>() @@ -137,8 +144,14 @@ return false; } if (agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) { - if (agvDetail.getVol() < agvModel.getQuaBattery()) { - return false; + if (force){ + if (agvDetail.getVol() < agvModel.getLowBattery()) { + return false; + } + }else { + if (agvDetail.getVol() < agvModel.getQuaBattery()) { + return false; + } } } if (!agvDetail.getAgvStatus().equals(AgvStatusType.CHARGE)) { @@ -163,6 +176,8 @@ return true; } + + @Override public Boolean judgeOnline(Long agvId) { Agv agv = this.getById(agvId); -- Gitblit v1.9.1