From 8e01a40be0a7ba61ece12870332b35a1fa3bfcd5 Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期五, 02 一月 2026 10:26:41 +0800
Subject: [PATCH] 1.新增agv状态请求离开 2.修复无法自动生成移库任务

---
 src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java |  489 +++++++++++++++++++++++++++++++++++++++---------------
 1 files changed, 354 insertions(+), 135 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 2347bfc..83f63c0 100644
--- a/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/RcsServiceImpl.java
@@ -4,15 +4,13 @@
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.common.Cools;
-import com.core.common.R;
 import com.zy.asrs.entity.*;
 import com.zy.asrs.enums.RcsRetMethodEnum;
+import com.zy.asrs.service.AgvTaskService;
 import com.zy.asrs.service.RcsService;
-import com.zy.asrs.service.TaskService;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
-import com.zy.core.model.Task;
 import com.zy.core.model.protocol.StaProtocol;
 import com.zy.core.thread.SiemensDevpThread;
 import lombok.extern.slf4j.Slf4j;
@@ -29,12 +27,8 @@
 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.regex.Matcher;
-import java.util.regex.Pattern;
 
 @Slf4j
 @Service
@@ -43,8 +37,11 @@
     @Value("${hik.url}")
     private String HIK_URL;
 
+    @Value("${mes.url}")
+    public String MES_URL;
+
     @Autowired
-    private TaskService taskService;
+    private AgvTaskService agvTaskService;
 
 
     /**
@@ -56,6 +53,7 @@
      */
     @Override
     public RcsReturn reporterTask(RcsReporterTask rcsReporterTask) {
+        log.info("娴峰悍AGV绔欑偣浠诲姟璇锋眰={}", JSONObject.toJSONString(rcsReporterTask));
 
         RcsReturn rcsReturn = new RcsReturn();
 
@@ -71,70 +69,29 @@
         String slotCode = values.getString("slotCode");
         EntityWrapper<AgvTask> wrapper = new EntityWrapper<>();
         wrapper.eq("task_no", robotTaskCode);
-        AgvTask task = taskService.selectOne(wrapper);
-        if(!Cools.isEmpty(task)){
+        AgvTask task = agvTaskService.selectOne(wrapper);
+        if (!Cools.isEmpty(task)) {
             try {
-                // q3,q8=1
-                if ("1".equals(carrierType)) {    //AGV
-
-                    switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
-                        //鏀捐揣鐢宠
-                        case APPLY_PUT: {
+                switch (Objects.requireNonNull(RcsRetMethodEnum.getEnum(method))) {
+                    //鏀捐揣鐢宠
+                    case APPLY_PUT: {
+                        if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
                             Integer sourceStaNo = Integer.valueOf(task.getStaNo());
                             SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                             StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
                             //wcs鍙嶉rcs缁х画鎵ц
                             if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
-                                RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
-                                rcsTaskContinue.setRobotTaskCode(task.getTaskNo());
-                                rcsTaskContinue.setTriggerType("TASK");
-                                rcsTaskContinue.setTriggerCode(task.getTaskNo());
+                                if(task.getTaskType().equals("AGV琛ョ┖鏂欐灦")){
+                                    RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                                    rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                                    rcsTaskContinue.setTriggerType("TASK");
+                                    rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
 
-                                String url =HIK_URL + "api/robot/controller/task/extend/continue";
-                                String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
-                                if (!StringUtils.isEmpty(response) && response.contains("code")){
-                                    RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
-                                    if("200".equals(rcsReturn1.getCode())) {
-                                        //鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
-                                        boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
-                                        log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
-                                        if (result) {
-                                            // 杩斿洖RCS
-                                            rcsReturn.setCode("SUCCESS");
-                                            rcsReturn.setMessage("");
-                                            JSONObject data = new JSONObject();
-                                            data.put("robotTaskCode", robotTaskCode);
-                                            rcsReturn.setData(data);
-                                        }else {
-                                            // 杩斿洖RCS
-                                            rcsReturn.setCode("Err_Internal");
-                                            rcsReturn.setMessage("");
-                                            JSONObject data = new JSONObject();
-                                            data.put("robotTaskCode", robotTaskCode);
-                                            rcsReturn.setData(data);
-                                        }
+                                    String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                                    String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                                    if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                        log.info("鍏佽AGV鏀捐揣鎴愬姛");
                                     }
-                                }
-                            }
-                        }
-                        break;
-
-                        //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
-                        case TASK_END: {
-                            Integer sourceStaNo = Integer.valueOf(task.getStaNo());
-                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
-                            //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
-                            if (staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() ==0) {
-                                staProtocol.setWorkNo((short) 9991);
-                                staProtocol.setStaNo(Short.valueOf(task.getStaNo()));
-                                boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
-                                log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
-                                if(result){
-                                    // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
-                                    task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
-                                    task.setModiTime(new Date());
-                                    taskService.updateById(task);
                                     // 杩斿洖RCS
                                     rcsReturn.setCode("SUCCESS");
                                     rcsReturn.setMessage("");
@@ -142,42 +99,27 @@
                                     data.put("robotTaskCode", robotTaskCode);
                                     rcsReturn.setData(data);
                                 }else {
-                                    // 杩斿洖RCS
-                                    rcsReturn.setCode("Err_Internal");
-                                    rcsReturn.setMessage("");
-                                    JSONObject data = new JSONObject();
-                                    data.put("robotTaskCode", robotTaskCode);
-                                    rcsReturn.setData(data);
-                                }
-                            }
-                        }
-                        break;
-                        //rcs璇锋眰wms鍙栬揣鐢宠
-                        case APPLY_PICK: {
-                            Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
-                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
-                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
-                            //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
-                            if (staProtocol != null && staProtocol.isLoading()
-                                    && staProtocol.isEmptyOutType()
-                                    && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) {
-                                RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
-                                rcsTaskContinue.setRobotTaskCode(task.getTaskNo());
-                                rcsTaskContinue.setTriggerType("TASK");
-                                rcsTaskContinue.setTriggerCode(task.getTaskNo());
-
-                                String url =HIK_URL + "api/robot/controller/task/extend/continue";
-                                String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
-                                if (!StringUtils.isEmpty(response) && response.contains("code")){
-                                    RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
-                                    if("200".equals(rcsReturn1.getCode())) {
+                                    //鍑哄彂PLC绔欑偣鐨勬壂鐮佸櫒鎵爜
+                                    boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(3, staProtocol));
+                                    if (result) {
+                                        log.info("鍏ュ簱绔欑偣={}瑙﹀彂鎵爜鎴愬姛", staProtocol.getSiteId());
                                         // 杩斿洖RCS
                                         rcsReturn.setCode("SUCCESS");
                                         rcsReturn.setMessage("");
                                         JSONObject data = new JSONObject();
                                         data.put("robotTaskCode", robotTaskCode);
                                         rcsReturn.setData(data);
-                                    }else {
+                                        RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                                        rcsTaskContinue.setRobotTaskCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                                        rcsTaskContinue.setTriggerType("TASK");
+                                        rcsTaskContinue.setTriggerCode(task.getTaskNo()+"-"+(task.getCtnType()-1));
+
+                                        String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                                        String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                                        if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                            log.info("鍏佽AGV鏀捐揣鎴愬姛");
+                                        }
+                                    } else {
                                         // 杩斿洖RCS
                                         rcsReturn.setCode("Err_Internal");
                                         rcsReturn.setMessage("");
@@ -187,27 +129,65 @@
                                     }
                                 }
                             }
+                        }else {
+                            TransParent transParent = new TransParent();
+                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setStationId(task.getStaNo());
+                            transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+                            int i = applyInStation(transParent);
+                            if (i == 1) {
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
                         }
-                        break;
-                        //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
-                        case PICK_COMPLETE: {
-                            Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+
+                    }
+                    break;
+
+                    //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑
+                    case TASK_END: {
+                        if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
+                            Integer sourceStaNo = Integer.valueOf(task.getStaNo());
                             SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
                             StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+                            Boolean boo = false;
+                            Short wrkNo = 9991;
                             //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
-                            if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType() && staProtocol.getWorkNo() >0 && staProtocol.getWorkNo() <9990) {
-                                staProtocol.setWorkNo((short) 0);
-                                staProtocol.setStaNo((short) 0);
+                            //琛ョ┖鏂欐灦 --銆媋gv宸茬粡绔嬪簱 --銆嬬粰PLC绔欑偣鍐�9995宸ヤ綔鍙�
+                            if (task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && !staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
+                                boo = true;
+                                wrkNo = 9995;
+                            } else if (!task.getTaskType().equals("AGV琛ョ┖鏂欐灦") && staProtocol != null && staProtocol.isLoading() && staProtocol.isEmptyOutType() && staProtocol.getWorkNo() == 0) {
+                                boo = true;
+                            }
+                            if (boo) {
+                                staProtocol.setWorkNo(wrkNo);//绌烘枡鏋跺埌浣嶄俊鍙风偣
+                                staProtocol.setStaNo(Short.valueOf("0"));
                                 boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
-                                log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}",result,task.getStaNo(),task.getTaskNo());
-                                if(result){
+                                log.info("AGV鏀捐揣瀹屾垚锛岀粰绔欑偣鍐�9991宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
+                                if (result) {
+                                    // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+                                    task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+                                    task.setModiTime(new Date());
+                                    agvTaskService.updateById(task);
                                     // 杩斿洖RCS
                                     rcsReturn.setCode("SUCCESS");
                                     rcsReturn.setMessage("");
                                     JSONObject data = new JSONObject();
                                     data.put("robotTaskCode", robotTaskCode);
                                     rcsReturn.setData(data);
-                                }else {
+                                } else {
                                     // 杩斿洖RCS
                                     rcsReturn.setCode("Err_Internal");
                                     rcsReturn.setMessage("");
@@ -215,16 +195,232 @@
                                     data.put("robotTaskCode", robotTaskCode);
                                     rcsReturn.setData(data);
                                 }
+                            } else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
+                        }else {
+                            // 鏇存柊浠诲姟鐘舵�佺瓑鍐呴儴閫昏緫
+                            task.setWrkSts(304L);   // 301 浠诲姟涓嬪彂銆�302 浠诲姟鎵ц銆�303 浠诲姟涓柇銆�304 浠诲姟缁撴潫
+                            task.setModiTime(new Date());
+                            agvTaskService.updateById(task);
+                            // 杩斿洖RCS
+                            rcsReturn.setCode("SUCCESS");
+                            rcsReturn.setMessage("");
+                            JSONObject data = new JSONObject();
+                            data.put("robotTaskCode", robotTaskCode);
+                            rcsReturn.setData(data);
+                        }
+                    }
+                    break;
+                    //rcs璇锋眰wms鍙栬揣鐢宠
+                    case APPLY_PICK: {
+                        if(task.getSourceStaNo().equals("401")||task.getSourceStaNo().equals("402")||task.getSourceStaNo().equals("307")) {
+                            Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+                            SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                            StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+                            //鍒ゆ柇绔欑偣鏄惁鏈夋枡鏋跺拰鎵樼洏
+                            if (staProtocol != null && (staProtocol.isLoading() || task.getTaskType().equals("AGV绌烘枡鏋跺洖缂撳瓨鍖�"))
+                                    && staProtocol.isEmptyOutType()) {
+                                RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                                rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+                                rcsTaskContinue.setTriggerType("TASK");
+                                rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
 
+                                String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                                String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                                if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                    RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+                                    if ("200".equals(rcsReturn1.getCode())) {
+                                        // 杩斿洖RCS
+                                        rcsReturn.setCode("SUCCESS");
+                                        rcsReturn.setMessage("");
+                                        JSONObject data = new JSONObject();
+                                        data.put("robotTaskCode", robotTaskCode);
+                                        rcsReturn.setData(data);
+                                    } else {
+                                        // 杩斿洖RCS
+                                        rcsReturn.setCode("Err_Internal");
+                                        rcsReturn.setMessage("");
+                                        JSONObject data = new JSONObject();
+                                        data.put("robotTaskCode", robotTaskCode);
+                                        rcsReturn.setData(data);
+                                    }
+                                }
+                            }
+                        }else {
+                            TransParent transParent = new TransParent();
+                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setStationId(task.getStaNo());
+                            transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+                            int i = applyInStation(transParent);
+                            if (i == 1) {
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
                             }
                         }
-                        break;
+                    }
+                    break;
+                    //rcs鍙栬揣瀹屾垚锛屽凡閫�鍑鸿緭閫佺嚎
+                    case PICK_COMPLETE: {
+                        Integer sourceStaNo = Integer.valueOf(task.getSourceStaNo());
+                        SiemensDevpThread siemensDevpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                        StaProtocol staProtocol = siemensDevpThread.getStation().get(sourceStaNo).clone();
+                        //鏀捐揣瀹屾垚 --銆媋gv宸茬粡绂诲紑 --銆嬬粰PLC绔欑偣鍐�9991宸ヤ綔鍙�
+                        if (staProtocol != null && !staProtocol.isLoading() && !staProtocol.isEmptyOutType()) {
+                            staProtocol.setWorkNo((short) 0);
+                            staProtocol.setStaNo((short) 0);
+                            boolean result = MessageQueue.offer(SlaveType.Devp, 1, new com.zy.core.model.Task(2, staProtocol));
+                            log.info("AGV鍙栬揣瀹屾垚锛岀粰绔欑偣鍐�0宸ヤ綔鍙�,涓嬪彂浠诲姟:{},绔欑偣:{},agv浠诲姟鍙�:{}", result, task.getStaNo(), task.getTaskNo());
+                            if (result) {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            } else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
 
-                        default: {
                         }
+                    }
+                    break;
+                    //AGV鍙栬揣绂荤珯璇锋眰
+                    case APPLY_IN_OFF_STATION:{
+                        //濡傛灉鏄珛搴撶珯鐐圭洿鎺ュ厑璁哥绔�
+                        if(task.getSourceStaNo().equals("401")||task.getSourceStaNo().equals("402")||task.getSourceStaNo().equals("307")) {
+                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                            rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+                            rcsTaskContinue.setTriggerType("TASK");
+                            rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+
+                            String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                            String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                            if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+                                if ("200".equals(rcsReturn1.getCode())) {
+                                    // 杩斿洖RCS
+                                    rcsReturn.setCode("SUCCESS");
+                                    rcsReturn.setMessage("");
+                                    JSONObject data = new JSONObject();
+                                    data.put("robotTaskCode", robotTaskCode);
+                                    rcsReturn.setData(data);
+                                } else {
+                                    // 杩斿洖RCS
+                                    rcsReturn.setCode("Err_Internal");
+                                    rcsReturn.setMessage("");
+                                    JSONObject data = new JSONObject();
+                                    data.put("robotTaskCode", robotTaskCode);
+                                    rcsReturn.setData(data);
+                                }
+                            }
+                        }else{
+                            //濡傛灉鏄伐浣嶉渶瑕佸儚mes璇锋眰绂荤珯
+                            TransParent transParent = new TransParent();
+                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setStationId(task.getStaNo());
+                            transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+                            int i = applyOutStation(transParent);
+                            if (i == 1) {
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
+                        }
+                            break;
+                    }
+                    //AGV鏀捐揣绂荤珯璇锋眰
+                    case APPLY_OFF_STATION:{
+                        //濡傛灉鏄珛搴撶珯鐐圭洿鎺ュ厑璁哥绔�
+                        if(task.getStaNo().equals("401")||task.getStaNo().equals("402")||task.getStaNo().equals("307")) {
+                            RcsTaskContinue rcsTaskContinue = new RcsTaskContinue();
+                            rcsTaskContinue.setRobotTaskCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+                            rcsTaskContinue.setTriggerType("TASK");
+                            rcsTaskContinue.setTriggerCode(task.getTaskNo() + "-" + (task.getCtnType() - 1));
+
+                            String url = HIK_URL + "api/robot/controller/task/extend/continue";
+                            String response = sendPost(url, JSONObject.toJSONString(rcsTaskContinue));
+                            if (!StringUtils.isEmpty(response) && response.contains("code")) {
+                                RcsReturn rcsReturn1 = JSONObject.parseObject(response, RcsReturn.class);
+                                if ("200".equals(rcsReturn1.getCode())) {
+                                    // 杩斿洖RCS
+                                    rcsReturn.setCode("SUCCESS");
+                                    rcsReturn.setMessage("");
+                                    JSONObject data = new JSONObject();
+                                    data.put("robotTaskCode", robotTaskCode);
+                                    rcsReturn.setData(data);
+                                } else {
+                                    // 杩斿洖RCS
+                                    rcsReturn.setCode("Err_Internal");
+                                    rcsReturn.setMessage("");
+                                    JSONObject data = new JSONObject();
+                                    data.put("robotTaskCode", robotTaskCode);
+                                    rcsReturn.setData(data);
+                                }
+                            }
+                        }else{
+                            //濡傛灉鏄伐浣嶉渶瑕佸儚mes璇锋眰绂荤珯
+                            TransParent transParent = new TransParent();
+                            transParent.setTaskno(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setTaskname(task.getTaskNo()+"-"+(task.getCtnType()-1));
+                            transParent.setStationId(task.getStaNo());
+                            transParent.setAgvCode("2");//杩炴帴鍣ㄥ簱
+                            int i = applyOutStation(transParent);
+                            if (i == 1) {
+                                rcsReturn.setCode("SUCCESS");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }else {
+                                // 杩斿洖RCS
+                                rcsReturn.setCode("Err_Internal");
+                                rcsReturn.setMessage("");
+                                JSONObject data = new JSONObject();
+                                data.put("robotTaskCode", robotTaskCode);
+                                rcsReturn.setData(data);
+                            }
+                        }
+
                         break;
                     }
+
+                    default: {
+                    }
+                    break;
                 }
+
 
             } catch (Exception e) {
                 log.error("RCS鍙嶉浠诲姟杩涘害澶勭悊寮傚父 - {}", rcsReporterTask, e);
@@ -241,7 +437,7 @@
     /**
      * 鍚戞寚瀹� URL 鍙戦�丳OST鏂规硶鐨勮姹�
      *
-     * @param url 鍙戦�佽姹傜殑 URL
+     * @param url   鍙戦�佽姹傜殑 URL
      * @param param 璇锋眰鍙傛暟锛岃姹傚弬鏁板簲璇ユ槸 name1=value1&name2=value2 鐨勫舰寮忋��
      * @return 鎵�浠h〃杩滅▼璧勬簮鐨勫搷搴旂粨鏋�
      */
@@ -249,8 +445,7 @@
         PrintWriter out = null;
         BufferedReader in = null;
         StringBuilder result = new StringBuilder();
-        try
-        {
+        try {
             log.info("sendPost - {} - {}", url, param);
             URL realUrl = new URL(url);
             URLConnection conn = realUrl.openConnection();
@@ -273,46 +468,70 @@
             out.flush();
             in = new BufferedReader(new InputStreamReader(conn.getInputStream(), StandardCharsets.UTF_8));
             String line;
-            while ((line = in.readLine()) != null)
-            {
+            while ((line = in.readLine()) != null) {
                 result.append(line);
             }
             log.info("recv - {}", result);
-        }
-        catch (ConnectException e)
-        {
+        } catch (ConnectException e) {
             log.error("璋冪敤HttpUtils.sendPost ConnectException, url=" + url + ",param=" + param, e);
-        }
-        catch (SocketTimeoutException e)
-        {
+        } catch (SocketTimeoutException e) {
             log.error("璋冪敤HttpUtils.sendPost SocketTimeoutException, url=" + url + ",param=" + param, e);
-        }
-        catch (IOException e)
-        {
+        } catch (IOException e) {
             log.error("璋冪敤HttpUtils.sendPost IOException, url=" + url + ",param=" + param, e);
-        }
-        catch (Exception e)
-        {
+        } catch (Exception e) {
             log.error("璋冪敤HttpsUtil.sendPost Exception, url=" + url + ",param=" + param, e);
-        }
-        finally
-        {
-            try
-            {
-                if (out != null)
-                {
+        } finally {
+            try {
+                if (out != null) {
                     out.close();
                 }
-                if (in != null)
-                {
+                if (in != null) {
                     in.close();
                 }
-            }
-            catch (IOException ex)
-            {
+            } catch (IOException ex) {
                 log.error("璋冪敤in.close Exception, url=" + url + ",param=" + param, ex);
             }
         }
         return result.toString();
     }
+
+    /**
+     * 鍏ョ珯璇锋眰锛氳浆鍙慉GV->鍏ョ珯璇锋眰->缁橫ES
+     *
+     * @param apply
+     * @return
+     */
+    public int applyInStation(TransParent apply) {
+        String path = "AGVTransportPalletNotice";
+        String url = MES_URL + path;
+        String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+            MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+            if ("1".equals(mesReturn.getSuccess())) {
+                return 1;
+            }
+        }
+
+        return 0;
+    }
+
+    /**
+     * 绂荤珯璇锋眰锛氳浆鍙慉GV->绂荤珯璇锋眰->缁橫ES
+     *
+     * @param apply
+     * @return
+     */
+    public int applyOutStation(TransParent apply) {
+
+        String url = MES_URL + "AGVDepartureRequest";
+        String response = RcsServiceImpl.sendPost(url, JSONObject.toJSONString(apply));
+        if (!StringUtils.isEmpty(response) && response.contains("Success")) {
+            MesReturn mesReturn = JSONObject.parseObject(response, MesReturn.class);
+            if ("1".equals(mesReturn.getSuccess())) {
+                return 1;
+            }
+        }
+
+        return 0;
+    }
 }

--
Gitblit v1.9.1