From 10778ff6207c31641187acb487d4b67c0de59b24 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期一, 02 二月 2026 10:38:51 +0800
Subject: [PATCH] agv增加一个新单号防重复  ,增加一个手动呼叫agv

---
 src/main/java/com/zy/asrs/task/handler/AgvHandler.java |   37 ++++++++++++++++++++++++++++++-------
 1 files changed, 30 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/AgvHandler.java b/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
index d475681..65b194a 100644
--- a/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AgvHandler.java
@@ -21,6 +21,7 @@
 import com.zy.asrs.entity.WrkMastLog;
 import com.zy.common.constant.ApiInterfaceConstant;
 import com.zy.common.properties.AgvProperties;
+import com.zy.common.utils.AgvUtils;
 import com.zy.common.utils.HttpHandler;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -669,14 +670,26 @@
         return result;
     }
 
+
     /**
      * 鏋勯�犺姹傚唴瀹癸紙浠欏伐M4鏍煎紡锛�
      */
     public String getRequest(Task task, String nameSpace) {
         JSONObject object = new JSONObject();
-        // taskId浣跨敤宸ヤ綔鍙凤紙wrk_no锛夛紝鏍煎紡锛歍 + 宸ヤ綔鍙�
-        // 濡傛灉宸ヤ綔鍙蜂负绌猴紝鍒欎娇鐢ㄤ换鍔D浣滀负澶囬��
-        String taskIdValue = (task.getWrkNo() != null) ? "T" + task.getWrkNo() : "T" + task.getId();
+        // taskId浣跨敤agvWrkNo瀛楁锛屽鏋滀负绌哄垯鐢熸垚鏂扮殑agvWrkNo
+        String taskIdValue = task.getAgvWrkNo();
+        if (taskIdValue == null || taskIdValue.isEmpty()) {
+            // 濡傛灉agvWrkNo涓虹┖锛岀敓鎴愭柊鐨刟gvWrkNo
+            if (task.getWrkNo() != null) {
+                taskIdValue = AgvUtils.generateAgvWrkNo(task.getWrkNo());
+                // 鏇存柊浠诲姟鐨刟gvWrkNo瀛楁
+                task.setAgvWrkNo(taskIdValue);
+                taskService.updateById(task);
+            } else {
+                // 濡傛灉宸ヤ綔鍙蜂篃涓虹┖锛屼娇鐢ㄤ换鍔D浣滀负澶囬�夛紙鍚戝悗鍏煎锛�
+                taskIdValue = "T" + task.getId();
+            }
+        }
         object.put("taskId", taskIdValue);
         // fromBin浣跨敤婧愬簱浣嶇紪鍙凤紙sourceLocNo锛夛紝濡傛灉涓虹┖鍒欎娇鐢ㄦ簮绔欑偣缂栧彿锛坰ourceStaNo锛変綔涓哄閫�
         String fromBin = task.getSourceLocNo();
@@ -1042,8 +1055,12 @@
             // todo 璁$畻agv鐩爣鏆傚瓨浣�
             int endSite = 2004;
 
+            // 鐢熸垚AGV宸ヤ綔鍙�
+            String agvWrkNo = AgvUtils.generateAgvWrkNo(wrkMast.getWrkNo());
+            
             // 鎻掑叆agv浠诲姟
             Task task = new Task(wrkMast.getWrkNo(), 7L, wrkMast.getIoType(), String.valueOf(wrkMast.getStaNo()), String.valueOf(endSite), null, wrkMast.getBarcode());
+            task.setAgvWrkNo(agvWrkNo); // 璁剧疆AGV宸ヤ綔鍙�
             taskService.insert(task);
             // 鏇存柊浠诲姟妗gv鎼繍鏍囪瘑
             wrkMast.setCallAgv(2);
@@ -1102,10 +1119,16 @@
 
         // 鏋勯�犲彇娑堜换鍔¤姹�
         JSONObject cancelRequest = new JSONObject();
-        // taskId浣跨敤宸ヤ綔鍙凤紙wrk_no锛夛紝鏍煎紡锛歍 + 宸ヤ綔鍙�
-        // 濡傛灉宸ヤ綔鍙蜂负绌猴紝鍒欎娇鐢ㄤ换鍔D浣滀负澶囬��
-        String taskIdValue = (task.getWrkNo() != null) ? "T" + task.getWrkNo() : "T" + task.getId();
-        cancelRequest.put("taskId", taskIdValue);
+        // taskId浣跨敤agvWrkNo瀛楁锛屽鏋滀负绌哄垯浣跨敤宸ヤ綔鍙锋垨浠诲姟ID浣滀负澶囬��
+        String taskIdValue = task.getAgvWrkNo();
+        if (taskIdValue == null || taskIdValue.isEmpty()) {
+            if (task.getWrkNo() != null) {
+                taskIdValue = AgvUtils.generateAgvWrkNo(task.getWrkNo());
+            } else {
+                taskIdValue = "T" + task.getId();
+            }
+        }
+        cancelRequest.put("taskId", task.getAgvWrkNo());
         cancelRequest.put("kind", kind);
         String body = cancelRequest.toJSONString();
 

--
Gitblit v1.9.1