From 259e38eb55c12b501427702d551d4de61182406c Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期六, 13 十二月 2025 15:03:12 +0800
Subject: [PATCH] 接口对接功能完善

---
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java |   93 +++++++++++++++++++++++++++++++---------------
 1 files changed, 62 insertions(+), 31 deletions(-)

diff --git a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
index 4ffaa27..d743466 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -1,10 +1,12 @@
 package com.zy.asrs.service.impl;
 
 import com.alibaba.excel.util.StringUtils;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.entity.mes.TransArrivalStation;
+import com.zy.asrs.entity.mes.TransInOutStationAllow;
 import com.zy.asrs.entity.mes.TransParent;
 import com.zy.asrs.entity.rcs.*;
 import com.zy.asrs.enums.RcsRetMethodEnum;
@@ -25,10 +27,7 @@
 import java.net.URL;
 import java.net.URLConnection;
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Objects;
+import java.util.*;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
@@ -55,7 +54,7 @@
     @Resource
     private BlockTaskMapper blockTaskMapper;
     @Resource
-    private TaskDetlServiceImpl taskDetlService;
+    private TaskDetlService taskDetlService;
     @Resource
     private WrkMastService wrkMastService;
 
@@ -172,7 +171,7 @@
      * @param rcsFactory 1 娴峰悍锛�2 鍗庢檽锛�
      * @return
      */
-    public int submitTask(RcsTaskSubmit rcsTaskSubmit, int rcsFactory){
+    public RcsReturn submitTask(RcsTaskSubmit rcsTaskSubmit, int rcsFactory){
 
 //        String response = "";
 //        boolean success = false;
@@ -218,22 +217,46 @@
 //            }
 //        }
 //        return success ? 1 : 0;
+        RcsReturn rcsReturn = new RcsReturn();
+        boolean success = false;
+        String url = rcsFactory == 2 ? HX_URL : HIK_URL + "api/robot/controller/task/submit";
+        String response = "";
+        try {
+            response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
+            if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
+                if ("SUCCESS".equals(rcsReturn.getCode())) {
+            // 妯℃嫙杩斿洖
+//            rcsReturn.setCode("SUCCESS");
+//            JSONObject jsonObject = new JSONObject();
+//            jsonObject.put("robotTaskCode",4);
+//            rcsReturn.setData(jsonObject);
+                    success = true;
 
-        String url = rcsFactory == 2 ? HX_URL :HIK_URL + "api/robot/controller/task/submit";
-        String response = sendPost(url, JSONObject.toJSONString(rcsTaskSubmit));
-
-        if (!StringUtils.isEmpty(response) && response.contains("code")){
-            RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
-            if("SUCCESS".equals(rcsReturn.getCode())) {
-                JSONObject data = rcsReturn.getData();
-                String robotTaskCode = data.getString("robotTaskCode");
-                if (robotTaskCode.equals(rcsTaskSubmit.getRobotTaskCode())){
-                    return 1;
+                    log.info("鍛煎彨agv鎼繍鎴愬姛锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
+                } else {
+                    log.error("鍛煎彨agv鎼繍澶辫触锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", url, JSON.toJSONString(rcsTaskSubmit), response);
                 }
             }
+        } catch (Exception e) {
+            log.error("鍛煎彨agv鎼繍寮傚父", e);
+        } finally {
+            try {
+                // 淇濆瓨鎺ュ彛鏃ュ織
+                apiLogService.save(
+                        "鍛煎彨agv鎼繍",
+                        url,
+                        null,
+                        "127.0.0.1",
+                        JSON.toJSONString(rcsTaskSubmit),
+                        response,
+                        success
+                );
+            } catch (Exception e) {
+                log.error("鍛煎彨agv鎼繍淇濆瓨鎺ュ彛鏃ュ織寮傚父", e);
+            }
         }
-
-        return 0;
+        return rcsReturn;
     }
 
     /**
@@ -333,7 +356,7 @@
 
         try {
             // q3,q8=1
-            if ("1".equals(carrierType)) {    //AGV
+//            if ("1".equals(carrierType)) {    //AGV
                 EntityWrapper<Task> wrapper = new EntityWrapper<>();
                 wrapper.eq("task_no", robotTaskCode);
                 Task task = taskService.selectOne(wrapper);
@@ -403,13 +426,20 @@
                             mesService.applyOutStation(apply);
                         } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
                             mesService.outStation(apply);
+                            // agv缁х画鎵ц
+
+                            TransInOutStationAllow inOutStationAllow = new TransInOutStationAllow();
+                            inOutStationAllow.setTaskno(robotTaskCode);
+                            inOutStationAllow.setStatus("Y");
+                            inOutStationAllow.setAgvCode("agv001");
+                            mesService.allowOutStation(inOutStationAllow);
                         }
                     } break;
                     case ARRIVE_ON_STATION: {
                         // TODO: 濡傛灉浜х嚎鏄繍杈撹捣鐐癸紝鍒欎笉鍙戦�佸埌绔欏畬鎴愶紝鏆傛椂璋冭瘯浣跨敤lG锛屾湭瀹炵幇鍒ゆ柇
-                        if (rcsReporterTask.getCurrentSeq() == 0 && task.getSourceStaNo().startsWith("LG")) {
-                            break;
-                        }
+//                        if (rcsReporterTask.getCurrentSeq() == 0 && task.getSourceStaNo().startsWith("LG") || task.getSourceStaNo().startsWith("LL")) {
+//                            break;
+//                        }
 
                         EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
                         wapper2.eq("wrk_no", task.getWrkNo())
@@ -419,7 +449,7 @@
                         TransArrivalStation arrivalStation = new TransArrivalStation();
                         arrivalStation.setTaskno(robotTaskCode);
                         arrivalStation.setTaskname(memo.getString("taskName"));
-                        arrivalStation.setTuoPanId(taskDetl.getZpallet());  // memo.getString("TuoPanId")
+                        arrivalStation.setTuoPanId(taskDetl == null ? "":taskDetl.getZpallet());  // memo.getString("TuoPanId")
                         arrivalStation.setProductLineId(memo.getString("ProductLineId"));
                         String transType = memo.getString("TransType");
                         arrivalStation.setDaotype(transType);
@@ -431,18 +461,19 @@
                         arrivalStation.setOrderNo(memo.getString("OrderNo"));
                         arrivalStation.setAgvCode(singleRobotCode);
                         arrivalStation.setItemno(memo.getString("Itemno"));
-                        String memo2 = taskDetl.getMemo();
-                        List<String> itemBarCode = new ArrayList<>();
-                        Matcher matcher = Pattern.compile("\"([^\"]*)\"").matcher(memo2);
-                        while (matcher.find()) {
-                            itemBarCode.add(matcher.group(1));
-                        }
-                        arrivalStation.setItemBarcode(itemBarCode);
+                        String memo2 = taskDetl == null ? "":taskDetl.getMemo();
+                        String[] array = memo2.split(",");
+//                        List<String> itemBarCode = new ArrayList<>();
+//                        Matcher matcher = Pattern.compile("\"([^\"]*)\"").matcher(memo2);
+//                        while (matcher.find()) {
+//                            itemBarCode.add(matcher.group(1));
+//                        }
+                        arrivalStation.setItemBarcode(Arrays.asList(array));
                         mesService.arriveOnStation(arrivalStation);
                     } break;
                     default: {} break;
                 }
-            }
+//            }
 //            else if ("CTU".equals(carrierType)) { //CTU
 //                EntityWrapper<WrkMast> wrapper = new EntityWrapper<>();
 //                wrapper.eq("task_no", robotTaskCode);

--
Gitblit v1.9.1