From 7a68bbe9a032df8c54b2263be097002e01383bce Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期三, 23 十月 2024 13:58:26 +0800 Subject: [PATCH] # --- zy-acs-manager/src/main/java/com/zy/acs/manager/core/service/MainService.java | 53 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 31 insertions(+), 22 deletions(-) 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 6ac9ad2..21feeaa 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 @@ -93,11 +93,15 @@ @SuppressWarnings("all") @Transactional - public void generateBusAndTask(OpenBusSubmitParam busSubmitParam, String memo) { + public Bus generateBusAndTask(OpenBusSubmitParam busSubmitParam, String memo) { + String errorMsg = busService.checkoutValid(busSubmitParam); + if (!Cools.isEmpty(errorMsg)) { + throw new BusinessException(errorMsg); + } String batch = busSubmitParam.getBatch(); List<TaskDto> taskDtoList = busSubmitParam.getTaskList(); if (Cools.isEmpty(taskDtoList)) { - throw new BusinessException("taskDtoList 涓嶈兘涓虹┖"); + throw new BusinessException("taskList can't be empty!"); } // 浼樺厛绾ф帓搴� @@ -110,13 +114,13 @@ Date now = new Date(); Bus bus = new Bus(); bus.setUuid(String.valueOf(snowflakeIdWorker.nextId()).substring(3)); - bus.setSeqNum(batch); + bus.setBusNo(batch); bus.setStartTime(now); bus.setBusSts(BusStsType.RECEIVE.val()); bus.setMemo(memo); if (!busService.save(bus)) { - throw new BusinessException("浠诲姟淇濆瓨澶辫触"); + throw new BusinessException("Internal Server Error!"); } // 淇濆瓨浠诲姟 @@ -124,7 +128,7 @@ task.setBusId(bus.getId()); task.setTaskSts(TaskStsType.INIT.val()); if (!taskService.save(task)) { - throw new BusinessException(task.getSeqNum() + "浠诲姟淇濆瓨澶辫触"); + throw new BusinessException("seqNum:" + task.getSeqNum() + " failed to save!"); } // 淇敼搴撲綅鐘舵�� @@ -136,44 +140,44 @@ case LOC_TO_LOC: oriLoc = locService.getById(task.getOriLoc()); if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) { - throw new BusinessException("oriLoc锛�" + task.getOriLoc$() + " 涓嶆槸鍦ㄥ簱鐘舵��"); + throw new BusinessException("oriLoc锛�" + task.getOriLoc$() + " is not in STOCK status"); } oriLoc.setLocSts(LocStsType.PAKOUT.val()); oriLoc.setUpdateTime(now); if (!locService.updateById(oriLoc)) { - throw new BusinessException("oriLoc锛�" + task.getOriLoc$() + " 淇敼搴撲綅鐘舵�佸け璐�"); + throw new BusinessException("oriLoc锛�" + task.getOriLoc$() + " failed to update"); } destLoc = locService.getById(task.getDestLoc()); if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) { - throw new BusinessException("destLoc锛�" + task.getDestLoc$() + " 涓嶆槸绌洪棽鐘舵��"); + throw new BusinessException("destLoc锛�" + task.getDestLoc$() + " is not in IDLE status"); } destLoc.setLocSts(LocStsType.PAKIN.val()); destLoc.setUpdateTime(now); if (!locService.updateById(destLoc)) { - throw new BusinessException("destLoc锛�" + task.getDestLoc$() + " 淇敼搴撲綅鐘舵�佸け璐�"); + throw new BusinessException("destLoc锛�" + task.getDestLoc$() + " failed to update"); } break; case LOC_TO_STA: oriLoc = locService.getById(task.getOriLoc()); if (!oriLoc.getLocSts().equals(LocStsType.STOCK.val())) { - throw new BusinessException("oriLoc锛�" + task.getOriLoc$() + " 涓嶆槸鍦ㄥ簱鐘舵��"); + throw new BusinessException("oriLoc锛�" + task.getOriLoc$() + " is not in STOCK status"); } oriLoc.setLocSts(LocStsType.PAKOUT.val()); oriLoc.setUpdateTime(now); if (!locService.updateById(oriLoc)) { - throw new BusinessException("oriLoc锛�" + task.getOriLoc$() + " 淇敼搴撲綅鐘舵�佸け璐�"); + throw new BusinessException("oriLoc锛�" + task.getOriLoc$() + " failed to update"); } break; case STA_TO_LOC: destLoc = locService.getById(task.getDestLoc()); if (!destLoc.getLocSts().equals(LocStsType.IDLE.val())) { - throw new BusinessException("destLoc锛�" + task.getDestLoc$() + " 涓嶆槸绌洪棽鐘舵��"); + throw new BusinessException("destLoc锛�" + task.getDestLoc$() + " is not in IDLE status"); } destLoc.setLocSts(LocStsType.PAKIN.val()); destLoc.setUpdateTime(now); if (!locService.updateById(destLoc)) { - throw new BusinessException("destLoc锛�" + task.getDestLoc$() + " 淇敼搴撲綅鐘舵�佸け璐�"); + throw new BusinessException("destLoc锛�" + task.getDestLoc$() + " failed to update"); } break; case STA_TO_STA: @@ -183,7 +187,7 @@ } } - + return bus; } /** @@ -203,7 +207,7 @@ bus.setBusSts(BusStsType.PROGRESS.val()); bus.setUpdateTime(now); if (!busService.updateById(bus)) { - log.error("Bus [{}] 鏇存柊澶辫触 锛侊紒锛�", bus.getUuid()); + log.error("Bus [{}] failed to Update 锛侊紒锛�", bus.getUuid()); } return; } @@ -213,7 +217,7 @@ for (Task task : taskList) { Agv agv = missionAssignService.execute(task, taskAllot, taskIds); if (null == agv) { - log.warn("{}浠诲姟寮傚父锛屾棤娉曟绱㈢┖闂睞gv...", task.getSeqNum()); + log.warn("Task[{}] has an issue锛� because it failed to checkout agv which is idle...", task.getSeqNum()); continue; } @@ -223,7 +227,7 @@ task.setIoTime(now); task.setUpdateTime(now); if (!taskService.updateById(task)) { - throw new BusinessException(task.getSeqNum() + "浠诲姟鏇存柊澶辫触"); + throw new BusinessException("seqNum: " + task.getSeqNum() + " failed to update"); } if (taskAllot.containsKey(agv.getUuid())) { @@ -255,7 +259,7 @@ throw new CoolException("generate [task] action fail, cause can not acquire lock ..."); } Date now = new Date(); - final String sameGroupXy = configService.getVal( "sameGroupXy"); + final String sameGroupXy = configService.getVal( "sameGroupXy", String.class); Agv agv = agvService.getById(agvId); if (!agvService.judgeEnable(agv.getId(), agvDetail -> agvDetail.getVol() > agv.getChargeLine())) { @@ -281,8 +285,9 @@ return 0; } }); - if (taskList.size() > agv.getStage()) { - taskList = taskList.subList(0, agv.getStage()); + Integer backpack = agvService.getBackpack(agv); + if (taskList.size() > backpack) { + taskList = taskList.subList(0, backpack); } /** @@ -349,7 +354,7 @@ } - if (backpackLev > agv.getStage()) { + if (backpackLev > backpack) { throw new BusinessException("瑙f瀽Task澶辫触,AGV鑳岀瘬宸叉弧......"); } @@ -590,7 +595,7 @@ try { if (Cools.isEmpty(agvId, segmentList)) { return; } Date now = new Date(); - JSONObject storeDirection = JSON.parseObject(configService.getVal("storeDirection")); + JSONObject storeDirection = configService.getVal("storeDirection", JSONObject.class); Agv agv = agvService.getById(agvId); if (!agvService.judgeEnable(agv.getId())) { throw new CoolException("AGV[" + agv.getUuid() + "]褰撳墠涓嶅彲鐢�..."); @@ -994,6 +999,7 @@ } for (Action action : actionList) { action.setActionSts(ActionStsType.ISSUED.val()); + action.setStartTime(now); action.setUpdateTime(now); if (!actionService.updateById(action)) { throw new BusinessException(action.getPriority() + " - " + action.getName() + "鍔ㄤ綔鏇存柊澶辫触"); @@ -1143,6 +1149,7 @@ if (null != action) { action.setActionSts(ActionStsType.FINISH.val()); + action.setEndTime(now); action.setUpdateTime(now); if (!actionService.updateById(action)) { log.error("Action [{}] 鏇存柊澶辫触 锛侊紒锛�", action.getPriority() + " - " + action.getName()); @@ -1175,6 +1182,7 @@ ); if (null != action) { action.setActionSts(ActionStsType.FINISH.val()); + action.setEndTime(now); action.setUpdateTime(now); if (!actionService.updateById(action)) { log.error("Action [{}] 鏇存柊澶辫触 锛侊紒锛�", action.getPriority() + " - " + action.getName()); @@ -1249,6 +1257,7 @@ ); for (Action action : actionList) { action.setActionSts(ActionStsType.FINISH.val()); + action.setEndTime(now); action.setUpdateTime(now); if (!actionService.updateById(action)) { log.error("Action [{}] 鏇存柊澶辫触 锛侊紒锛�", action.getPriority() + " - " + action.getName()); -- Gitblit v1.9.1