From 701542ac0a90cf0e3a0a81ec2bb8066b5de68e75 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 11:21:17 +0800
Subject: [PATCH] 更新为正式部署许可证

---
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java |  131 ++++++++++++++++++++++++++++++++++++-------
 1 files changed, 109 insertions(+), 22 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 e77e4a2..85db2cb 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -5,13 +5,16 @@
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
 import com.zy.asrs.entity.*;
+import com.zy.asrs.entity.mes.MesReturn;
 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;
 import com.zy.asrs.mapper.BlockStationMapper;
 import com.zy.asrs.mapper.BlockTaskMapper;
 import com.zy.asrs.service.*;
+import com.zy.asrs.task.core.ReturnT;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
@@ -26,10 +29,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;
 
@@ -51,6 +51,8 @@
     private String inOk;
     @Value("${mes.defaultUserId}")
     public long defaultUserId;
+    @Value("${mes.url}")
+    private String url;
 
 
     @Resource
@@ -232,11 +234,7 @@
         if (!StringUtils.isEmpty(response) && response.contains("code")){
             RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
             if("SUCCESS".equals(rcsReturn.getCode())||"200".equals(rcsReturn.getCode())) {
-                JSONObject data = rcsReturn.getData();
-                String robotTaskCode = data.getString("RobotTaskCode");
-                if (robotTaskCode.equals(rcsTaskSubmit.getRobotTaskCode())){
-                    return 1;
-                }
+                return 1;
             }
         }
 
@@ -253,10 +251,11 @@
     public int continueTask(Object rcsTaskContinue, int rcsFactory){
 
         String url = rcsFactory == 2 ? HX_URL+inOk :HIK_URL + "api/robot/controller/task/extend/continue";
+
         String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
         if (!StringUtils.isEmpty(response) && response.contains("code")){
             RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
-            if("200".equals(rcsReturn.getCode())) {
+            if("SUCCESS".equals(rcsReturn.getCode())||"200".equals(rcsReturn.getCode())) {
                 return 1;
             }
         }
@@ -264,6 +263,20 @@
         return 0;
     }
 
+    public int applyIn(JSONObject rcsTaskContinue, int rcsFactory){
+
+        String url = rcsFactory == 2 ? HX_URL+"eqpt/notify/traffic" :HIK_URL + "api/robot/controller/task/extend/continue";
+
+        String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+        if (!StringUtils.isEmpty(response) && response.contains("code")){
+            RcsReturn rcsReturn = JSONObject.parseObject(response, RcsReturn.class);
+            if("SUCCESS".equals(rcsReturn.getCode())||"200".equals(rcsReturn.getCode())) {
+                return 1;
+            }
+        }
+
+        return 0;
+    }
     /**
      * 2.1.4浠诲姟鍙栨秷鎺ュ彛
      *
@@ -324,9 +337,13 @@
     public RcsReturn reporterTask(RcsReporterTask rcsReporterTask) {
 
         RcsReturn rcsReturn = new RcsReturn();
-
-        String robotTaskCode = rcsReporterTask.getRobotTaskCode();
         String singleRobotCode = rcsReporterTask.getSingleRobotCode();
+        // 淇敼鍚庣殑閫昏緫锛氭湁"-"鍒欏幓鎺夋渶鍚庝竴涓�"-"鍙婂悗闈㈠唴瀹癸紝娌℃湁鍒欎繚鎸佸師鏍�
+        String robotTaskCode = rcsReporterTask.getRobotTaskCode();
+        if (robotTaskCode.contains("-")) {
+            robotTaskCode = robotTaskCode.substring(0, robotTaskCode.lastIndexOf("-"));
+        }
+
         //鍗庢檽AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
         if(Cools.isEmpty(rcsReporterTask.getExtra())){
             if(Cools.isEmpty(rcsReporterTask.getMethod())){
@@ -363,11 +380,33 @@
                             rcsReturn.setData(data);
                             return rcsReturn;
                         }
-                        // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
-                        task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-                        task.setModiTime(new Date());
-                        task.setModiUser(defaultUserId);
-                        taskService.updateById(task);
+                        HashMap<String,Object> map = new HashMap<>();
+                        map.put("taskno", task.getTaskNo());
+                        map.put("agvFactory", "2");
+                        String mesUrl = url+"AGVArrivalCompletedFit";
+                        String response = RcsServiceImpl.sendPost(mesUrl, JSONObject.toJSONString(map));
+                        if (!StringUtils.isEmpty(response) && response.contains("Success")){
+                            MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+                            if("1".equals(mesReturn.getSuccess())) {
+                                task.setWrkSts(305L);//浠诲姟鐘舵�佷粠304--銆�305
+                                task.setModiTime(new Date());
+                                taskService.updateById(task);
+                            }else {
+                                rcsReturn.setCode("Err_RobotCodeNotMatch");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                                return rcsReturn;
+                            }
+                        }else {
+                            rcsReturn.setCode("Err_RobotCodeNotMatch");
+                            rcsReturn.setMessage("");
+                            JSONObject data = new JSONObject();
+                            data.put("robotTaskCode", robotTaskCode);
+                            rcsReturn.setData(data);
+                            return rcsReturn;
+                        }
                     } break;
                     case "APPLY_IN_STATION":
                     case "APPLY_OFF_STATION":
@@ -378,6 +417,7 @@
                         apply.setAgvCode(singleRobotCode);
                         String transType = memo.getString("TransType");
                         apply.setTransType(transType);
+                        apply.setAgvFactory(1);
                         apply.setProductLineId(memo.getString("ProductLineId"));
                         apply.setStationId(task.getSourceStaNo());
                         //agv鍏ョ珯鐢宠
@@ -445,7 +485,7 @@
             String slotCode = values.getString("slotCode");
             try {
                 // q3,q8=1
-                if ("1".equals(carrierType)) {    //AGV
+
                     EntityWrapper<Task> wrapper = new EntityWrapper<>();
                     wrapper.eq("task_no", robotTaskCode);
                     Task task = taskService.selectOne(wrapper);
@@ -561,7 +601,7 @@
                         }
                         break;
                     }
-                }
+
                 // 杩斿洖RCS
                 rcsReturn.setCode("SUCCESS");
                 rcsReturn.setMessage("");
@@ -658,11 +698,13 @@
      * @return
      */
     public RcsReturn hxApplyInLine(TransParent apply) {
-
         RcsReturn rcsReturn = new RcsReturn();
-
         String robotTaskCode = apply.getTaskno();
         String singleRobotCode = apply.getAgvCode();
+        apply.setAgvCode("1");
+        apply.setAgvFactory(2);
+        String fullEmptyEnex = apply.getFullEmptyEnex();
+        int allowInOrOut = 0;
         //鍗庢檽AGV鐢宠
             if(Cools.isEmpty(apply.getMethod())){
                 log.error("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖锛�");
@@ -702,10 +744,55 @@
             data.put("robotTaskCode", robotTaskCode);
             rcsReturn.setData(data);
             //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
-
         return rcsReturn;
     }
 
+
+    public RcsReturn hxOutStation(TransParent param) {
+        RcsReturn rcsReturn = new RcsReturn();
+        String robotTaskCode = param.getTaskno();
+        if (Cools.isEmpty(param.getMethod())) {
+            log.error("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖锛�");
+            rcsReturn.setCode("Err_Internal");
+            rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖");
+            JSONObject data = new JSONObject();
+            data.put("robotTaskCode", robotTaskCode);
+            rcsReturn.setData(data);
+        } else {
+            String method = param.getMethod();
+            param.setStationId(param.getAreaNo());
+            param.setAgvCode("1");
+            if (method.equals("APPLY_OUT_STATION")) {
+                if (mesService.outStation(param) == 1) {
+                    // 杩斿洖RCS
+                    rcsReturn.setCode("SUCCESS");
+                    rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�佹垚鍔�");
+                    JSONObject data = new JSONObject();
+                    data.put("robotTaskCode", robotTaskCode);
+                    rcsReturn.setData(data);
+                    return rcsReturn;
+                }
+            }else if (method.equals("APPLY_IN_STATION")) {
+                if (mesService.applyInStation(param) == 1) {
+                    // 杩斿洖RCS
+                    rcsReturn.setCode("SUCCESS");
+                    rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�佹垚鍔�");
+                    JSONObject data = new JSONObject();
+                    data.put("robotTaskCode", robotTaskCode);
+                    rcsReturn.setData(data);
+                    return rcsReturn;
+                }
+            }
+        }
+        log.error("鍗庢檽AGV涓婃姤鐘舵�佸け璐ワ紒");
+        rcsReturn.setCode("Err_Internal");
+        rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�丮ethod澶辫触");
+        JSONObject data = new JSONObject();
+        data.put("robotTaskCode", robotTaskCode);
+        rcsReturn.setData(data);
+
+        return rcsReturn;
+    }
     // endregion
 
     // region httpUtil

--
Gitblit v1.9.1