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