From b6681bc12173c1179d0185805ba461211472ac18 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期日, 04 一月 2026 09:31:16 +0800
Subject: [PATCH] 1.完善出库任务呼叫agv 2.完善agv任务下发 3.等等

---
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java |  274 +++++++++++++++++++++++++++---------------------------
 1 files changed, 138 insertions(+), 136 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..e3fa69b 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -233,7 +233,7 @@
             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");
+                String robotTaskCode = data.getString("robotTaskCode");
                 if (robotTaskCode.equals(rcsTaskSubmit.getRobotTaskCode())){
                     return 1;
                 }
@@ -256,7 +256,7 @@
         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;
             }
         }
@@ -327,6 +327,8 @@
 
         String robotTaskCode = rcsReporterTask.getRobotTaskCode();
         String singleRobotCode = rcsReporterTask.getSingleRobotCode();
+        String[] split = robotTaskCode.split("-");
+        robotTaskCode = split[0];
         //鍗庢檽AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
         if(Cools.isEmpty(rcsReporterTask.getExtra())){
             if(Cools.isEmpty(rcsReporterTask.getMethod())){
@@ -445,41 +447,41 @@
             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);
-                    if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
-                        rcsReturn.setCode("Err_RobotCodeNotMatch");
-                        rcsReturn.setMessage("");
-                        JSONObject data = new JSONObject();
-                        data.put("robotTaskCode", robotTaskCode);
-                        rcsReturn.setData(data);
-                        return rcsReturn;
-                    }
-                    JSONObject memo = JSONObject.parseObject(task.getMemo());
 
-                    switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
-                        case TASK_START: {
-                            task.setWrkSts(302L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-                            task.setModiTime(new Date());
-                            task.setModiUser(defaultUserId);
-                            taskService.updateById(task);
-                        }
-                        break;
-                        case TASK_OUT_BIN: {
-                            // TODO锛氱珛搴撳嚭搴撲竴鎵橈紝AGV寮�濮嬭繍杈撳悗锛岀粰MES鍙戦�佸嚭搴撳畬鎴愶紙涓�鎵樺彂涓�娆★級
+                EntityWrapper<Task> wrapper = new EntityWrapper<>();
+                wrapper.eq("task_no", robotTaskCode);
+                Task task = taskService.selectOne(wrapper);
+                if (task == null || !task.getTaskNo().equals(robotTaskCode)) {
+                    rcsReturn.setCode("Err_RobotCodeNotMatch");
+                    rcsReturn.setMessage("");
+                    JSONObject data = new JSONObject();
+                    data.put("robotTaskCode", robotTaskCode);
+                    rcsReturn.setData(data);
+                    return rcsReturn;
+                }
+                JSONObject memo = JSONObject.parseObject(task.getMemo());
+
+                switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
+                    case TASK_START: {
+                        task.setWrkSts(302L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+                        task.setModiTime(new Date());
+                        task.setModiUser(defaultUserId);
+                        taskService.updateById(task);
+                    }
+                    break;
+                    case TASK_OUT_BIN: {
+                        // TODO锛氱珛搴撳嚭搴撲竴鎵橈紝AGV寮�濮嬭繍杈撳悗锛岀粰MES鍙戦�佸嚭搴撳畬鎴愶紙涓�鎵樺彂涓�娆★級
 //                        JSONObject taskMemo = JSONObject.parseObject(task.getMemo());
 //                        mesService.outFeedbackByTuo(taskMemo.getString("OrderNo"), task);
-                        }
-                        break;
-                        case TASK_END: {
-                            // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
-                            task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-                            task.setModiTime(new Date());
-                            task.setModiUser(defaultUserId);
-                            taskService.updateById(task);
-                            // 浠诲姟瀹屾垚
+                    }
+                    break;
+                    case TASK_END: {
+                        // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+                        task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+                        task.setModiTime(new Date());
+                        task.setModiUser(defaultUserId);
+                        taskService.updateById(task);
+                        // 浠诲姟瀹屾垚
 //                        mesService.reporterTask(rcsReporterTask);
 
 //                    EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
@@ -494,74 +496,74 @@
 //                    taskService.completeWrkMast();
 //                    taskDetlService.
 
-                        }
-                        break;
-                        case APPLY_IN_STATION:
-                        case APPLY_OFF_STATION:
-                        case ARRIVE_OFF_STATION: {
-                            TransParent apply = new TransParent();
-                            apply.setTaskno(robotTaskCode);
-                            apply.setTaskname(memo.getString("taskName"));
-                            apply.setAgvCode(singleRobotCode);
-                            String transType = memo.getString("TransType");
-                            apply.setTransType(transType);
-                            apply.setProductLineId(memo.getString("ProductLineId"));
-                            if (transType.equals("02") || transType.equals("04") || transType.equals("06")) {
-                                apply.setStationId(task.getSourceStaNo());
-                            } else {
-                                apply.setStationId(task.getStaNo());
-                            }
-
-                            if (RcsRetMethodEnum.APPLY_IN_STATION.getCode().equals(method)) {
-                                mesService.applyInStation(apply);
-                            } else if (RcsRetMethodEnum.APPLY_OFF_STATION.getCode().equals(method)) {
-                                mesService.applyOutStation(apply);
-                            } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
-                                mesService.outStation(apply);
-                            }
-                        }
-                        break;
-                        case ARRIVE_ON_STATION: {
-                            // TODO: 濡傛灉浜х嚎鏄繍杈撹捣鐐癸紝鍒欎笉鍙戦�佸埌绔欏畬鎴愶紝鏆傛椂璋冭瘯浣跨敤lG锛屾湭瀹炵幇鍒ゆ柇
-                            if (rcsReporterTask.getCurrentSeq() == 0 && task.getSourceStaNo().startsWith("LG")) {
-                                break;
-                            }
-
-                            EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
-                            wapper2.eq("wrk_no", task.getWrkNo())
-                                    .eq("matnr", memo.getString("Itemno"))
-                                    .eq("order_no", memo.getString("OrderNo"));
-                            TaskDetl taskDetl = taskDetlService.selectOne(wapper2);
-                            TransArrivalStation arrivalStation = new TransArrivalStation();
-                            arrivalStation.setTaskno(robotTaskCode);
-                            arrivalStation.setTaskname(memo.getString("taskName"));
-                            arrivalStation.setTuoPanId(taskDetl.getZpallet());  // memo.getString("TuoPanId")
-                            arrivalStation.setProductLineId(memo.getString("ProductLineId"));
-                            String transType = memo.getString("TransType");
-                            arrivalStation.setDaotype(transType);
-                            if (transType.equals("02") || transType.equals("04") || transType.equals("06")) {
-                                arrivalStation.setStationID(task.getSourceStaNo());
-                            } else {
-                                arrivalStation.setStationID(task.getStaNo());
-                            }
-                            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);
-                            mesService.arriveOnStation(arrivalStation);
-                        }
-                        break;
-                        default: {
-                        }
-                        break;
                     }
+                    break;
+                    case APPLY_IN_STATION:
+                    case APPLY_OFF_STATION:
+                    case ARRIVE_OFF_STATION: {
+                        TransParent apply = new TransParent();
+                        apply.setTaskno(robotTaskCode);
+                        apply.setTaskname(memo.getString("taskName"));
+                        apply.setAgvCode(singleRobotCode);
+                        String transType = memo.getString("TransType");
+                        apply.setTransType(transType);
+                        apply.setProductLineId(memo.getString("ProductLineId"));
+                        if (transType.equals("02") || transType.equals("04") || transType.equals("06")) {
+                            apply.setStationId(task.getSourceStaNo());
+                        } else {
+                            apply.setStationId(task.getStaNo());
+                        }
+
+                        if (RcsRetMethodEnum.APPLY_IN_STATION.getCode().equals(method)) {
+                            mesService.applyInStation(apply);
+                        } else if (RcsRetMethodEnum.APPLY_OFF_STATION.getCode().equals(method)) {
+                            mesService.applyOutStation(apply);
+                        } else if (RcsRetMethodEnum.ARRIVE_OFF_STATION.getCode().equals(method)) {
+                            mesService.outStation(apply);
+                        }
+                    }
+                    break;
+                    case ARRIVE_ON_STATION: {
+                        // TODO: 濡傛灉浜х嚎鏄繍杈撹捣鐐癸紝鍒欎笉鍙戦�佸埌绔欏畬鎴愶紝鏆傛椂璋冭瘯浣跨敤lG锛屾湭瀹炵幇鍒ゆ柇
+                        if (rcsReporterTask.getCurrentSeq() == 0 && task.getSourceStaNo().startsWith("LG")) {
+                            break;
+                        }
+
+                        EntityWrapper<TaskDetl> wapper2 = new EntityWrapper<>();
+                        wapper2.eq("wrk_no", task.getWrkNo())
+                                .eq("matnr", memo.getString("Itemno"))
+                                .eq("order_no", memo.getString("OrderNo"));
+                        TaskDetl taskDetl = taskDetlService.selectOne(wapper2);
+                        TransArrivalStation arrivalStation = new TransArrivalStation();
+                        arrivalStation.setTaskno(robotTaskCode);
+                        arrivalStation.setTaskname(memo.getString("taskName"));
+                        arrivalStation.setTuoPanId(taskDetl.getZpallet());  // memo.getString("TuoPanId")
+                        arrivalStation.setProductLineId(memo.getString("ProductLineId"));
+                        String transType = memo.getString("TransType");
+                        arrivalStation.setDaotype(transType);
+                        if (transType.equals("02") || transType.equals("04") || transType.equals("06")) {
+                            arrivalStation.setStationID(task.getSourceStaNo());
+                        } else {
+                            arrivalStation.setStationID(task.getStaNo());
+                        }
+                        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);
+                        mesService.arriveOnStation(arrivalStation);
+                    }
+                    break;
+                    default: {
+                    }
+                    break;
                 }
+
                 // 杩斿洖RCS
                 rcsReturn.setCode("SUCCESS");
                 rcsReturn.setMessage("");
@@ -664,44 +666,44 @@
         String robotTaskCode = apply.getTaskno();
         String singleRobotCode = apply.getAgvCode();
         //鍗庢檽AGV鐢宠
-            if(Cools.isEmpty(apply.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 {
-                EntityWrapper<Task> wrapper = new EntityWrapper<>();
-                wrapper.eq("task_no", robotTaskCode);
-                Task task = taskService.selectOne(wrapper);
-                String method = apply.getMethod();
-                JSONObject memo = Cools.isEmpty(task) ? null : JSONObject.parseObject(task.getMemo());
-                switch (method) {
-                    case "APPLY_IN_STATION":
-                    case "APPLY_OFF_STATION":
-                    case "ARRIVE_OFF_STATION": {
-                        //agv鍏ョ珯鐢宠
-                        if ("APPLY_IN_STATION".equals(method)) {
-                            mesService.applyInStation(apply);
-                            //agv绂荤珯璇锋眰
-                        } else if ("APPLY_OFF_STATION".equals(method)) {
-                            mesService.applyOutStation(apply);
-                            //agv绂荤珯瀹屾垚
-                        } else {
-                            mesService.outStation(apply);
-                        }
-                    } break;
-                    default: {} break;
-                }
-            }
-            // 杩斿洖RCS
-            rcsReturn.setCode("SUCCESS");
-            rcsReturn.setMessage("");
+        if(Cools.isEmpty(apply.getMethod())){
+            log.error("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖锛�");
+            rcsReturn.setCode("Err_Internal");
+            rcsReturn.setMessage("鍗庢檽AGV涓婃姤鐘舵�丮ethod涓虹┖");
             JSONObject data = new JSONObject();
             data.put("robotTaskCode", robotTaskCode);
             rcsReturn.setData(data);
-            //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
+        }else {
+            EntityWrapper<Task> wrapper = new EntityWrapper<>();
+            wrapper.eq("task_no", robotTaskCode);
+            Task task = taskService.selectOne(wrapper);
+            String method = apply.getMethod();
+            JSONObject memo = Cools.isEmpty(task) ? null : JSONObject.parseObject(task.getMemo());
+            switch (method) {
+                case "APPLY_IN_STATION":
+                case "APPLY_OFF_STATION":
+                case "ARRIVE_OFF_STATION": {
+                    //agv鍏ョ珯鐢宠
+                    if ("APPLY_IN_STATION".equals(method)) {
+                        mesService.applyInStation(apply);
+                        //agv绂荤珯璇锋眰
+                    } else if ("APPLY_OFF_STATION".equals(method)) {
+                        mesService.applyOutStation(apply);
+                        //agv绂荤珯瀹屾垚
+                    } else {
+                        mesService.outStation(apply);
+                    }
+                } break;
+                default: {} break;
+            }
+        }
+        // 杩斿洖RCS
+        rcsReturn.setCode("SUCCESS");
+        rcsReturn.setMessage("");
+        JSONObject data = new JSONObject();
+        data.put("robotTaskCode", robotTaskCode);
+        rcsReturn.setData(data);
+        //娴峰悍AGV鐘舵�佸弽棣堬紝鍙婄敵璇�
 
         return rcsReturn;
     }
@@ -749,7 +751,7 @@
             {
                 result.append(line);
             }
-            log.info("recv - {}", result);
+            log.info("rec - {}", result);
         }
         catch (ConnectException e)
         {

--
Gitblit v1.9.1