From 5317a45f64ae948e7351cce8ccf06ed88ffe4eeb Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 20 十月 2025 10:30:03 +0800
Subject: [PATCH] 新增AGV拣料回库或者移动

---
 src/main/java/com/zy/asrs/controller/MobileController.java |   91 +++++++++++++++++++++++++++------------------
 1 files changed, 54 insertions(+), 37 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java
index 75264dd..d73bd84 100644
--- a/src/main/java/com/zy/asrs/controller/MobileController.java
+++ b/src/main/java/com/zy/asrs/controller/MobileController.java
@@ -32,6 +32,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import javax.xml.crypto.Data;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
@@ -347,15 +348,36 @@
      * @return
      */
     @RequestMapping("/AGVSite")
-    public R AGVSite(@RequestParam(required = false) String locNo){
+    public R AGVSite(@RequestParam(required = false) String locNo,@RequestParam(required = false) String barcode){
         HashMap<Integer,String> map=new HashMap<>();
-        map.put(100,"100-鍏ュ簱鍙�");
-        map.put(1000,"1000-琛ョ┖鏉垮彛");
-        map.put(2001,"2001-鍑哄簱鍙�1");
-        map.put(2002,"2002-鍑哄簱鍙�2");
-        map.put(3001,"3001-浣滀笟鍙�1");
-        map.put(3002,"3002-浣滀笟鍙�2");
-        map.remove(Integer.parseInt(locNo));
+        if(!Cools.isEmpty(barcode)){
+            WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("barcode", barcode));
+            if(!Cools.isEmpty(wrkMast)){
+                if (!Cools.isEmpty(wrkMast.getInvWh())&&wrkMast.getWrkNo().equals("Y")&&(wrkMast.getIoType()==103||wrkMast.getIoType()==107)){
+                    map.put(100,"100-鍏ュ簱鍙�");
+                }else {
+                    return R.error("璇蜂笅鏋跺悗鍐嶆搷浣渁gv");
+                }
+            }else {
+                map.put(100,"100-鍏ュ簱鍙�");
+                map.put(1001,"1000-琛ョ┖鏉垮彛");
+                map.put(2001,"2001-鍑哄簱鍙�1");
+                map.put(2002,"2002-鍑哄簱鍙�2");
+                map.put(3001,"3001-浣滀笟鍙�1");
+                map.put(3002,"3002-浣滀笟鍙�2");
+                map.put(4001,"4001-涓嶅悎鏍�");
+                map.remove(Integer.parseInt(locNo));
+            }
+        }else {
+            map.put(100,"100-鍏ュ簱鍙�");
+            map.put(1001,"1000-琛ョ┖鏉垮彛");
+            map.put(2001,"2001-鍑哄簱鍙�1");
+            map.put(2002,"2002-鍑哄簱鍙�2");
+            map.put(3001,"3001-浣滀笟鍙�1");
+            map.put(3002,"3002-浣滀笟鍙�2");
+            map.put(4001,"4001-涓嶅悎鏍�");
+            map.remove(Integer.parseInt(locNo));
+        }
         return R.ok(map);
     }
 
@@ -368,37 +390,28 @@
     @RequestMapping("/AGVMove")
     public R AGVMove(@RequestParam(required = false) String sourceStaNo
     ,@RequestParam(required = false) String staNo){
-        RCSParam rcsParam = new RCSParam();
         LocalDateTime now = LocalDateTime.now();
-        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy骞碝M鏈坉d鏃� HH:mm:ss");
+        String noww=new Date().getTime()+"";
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
         String formattedDate = now.format(formatter); // 鏍煎紡鍖栨棩鏈熸椂闂�
-        //缃戠粶娴佹按鍙�
-        rcsParam.setReqId(now.toString());
-        //搴旂敤鏍囪瘑
-        rcsParam.setClientId("WMS");
-        //閫氱煡鏃堕棿
-        rcsParam.setReqTime(formattedDate);
-        RCSParam.DataBody dataBody=new RCSParam.DataBody();
-        //浠诲姟鍙�
-        dataBody.setId(formattedDate);
 
-        List<RCSParam.TaskBody> taskBodyList=new ArrayList<>();
-        RCSParam.TaskBody taskBody=new RCSParam.TaskBody();
-        //鍙栬揣绫诲瀷
-        taskBody.setType("load");
-        taskBody.setStation(sourceStaNo);
-        taskBodyList.add(taskBody);
+        LinkedHashMap<String,Object> rcsParam=new LinkedHashMap<>();
+        rcsParam.put("task_id",noww);
+        rcsParam.put("start_location",sourceStaNo);
+        rcsParam.put("start_site_level",1);
+        rcsParam.put("start_command",1);
+        rcsParam.put("target_location",staNo);
+        rcsParam.put("target_site_level",1);
+        rcsParam.put("target_command",2);
+        rcsParam.put("priority",1);
+        rcsParam.put("robot_type",3);//杞� 杈� 绫� 鍨� 0:XC 1:XCD 2:XP_T 3:XP_L
+        rcsParam.put("MoverID","XS1");
 
-        RCSParam.TaskBody taskBody1=new RCSParam.TaskBody();
-        //鏀捐揣绫诲瀷
-        taskBody1.setType("unload");
-        taskBody1.setStation(staNo);
-        taskBodyList.add(taskBody1);
-
-        dataBody.setTasks(taskBodyList);
-        rcsParam.setData(dataBody);
+        LinkedHashMap<String,Object> map=new LinkedHashMap<>();
+        map.put("data",rcsParam);
         String response ="";
         Boolean bool =false;
+        String msg = "";
 
         try {
             log.info("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍={}", rcsParam);
@@ -406,12 +419,16 @@
                     // .setHeaders(headParam)
                     .setUri(url)
                     .setPath(attrcs)
-                    .setJson(JSON.toJSONString(rcsParam))
+                    .setJson(JSON.toJSONString(map))
                     .build()
                     .doPost();
             JSONObject jsonObject = JSON.parseObject(response);
-            if(jsonObject.getBoolean("IsSuccess")){
+            JSONObject data = jsonObject.getJSONObject("data");
+            JSONObject errInfo = jsonObject.getJSONObject("err_info");
+            if(data.getInteger("result")==0){
                 bool = true;
+            }else{
+                msg=errInfo.getString("err_msg");
             }
         } catch (Exception e) {
             log.error("wms娲惧彂鎼繍浠诲姟缁橝GV鎼繍澶辫触杩斿洖鍊�={}", response);
@@ -420,7 +437,7 @@
                     , url + attrcs
                     , null
                     , "127.0.0.1"
-                    , JSON.toJSONString(rcsParam)
+                    , JSON.toJSONString(map)
                     , response
                     , bool
             );
@@ -428,7 +445,7 @@
         if(bool){
             return R.ok();
         }else {
-            return R.error("涓嬪彂浠诲姟澶辫触");
+            return R.error(msg);
         }
 
     }

--
Gitblit v1.9.1