From d8415a9733082b783e89b75ffef51dd725829a6e Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期日, 07 七月 2024 16:04:01 +0800
Subject: [PATCH] #agv对接完成

---
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/AgvTaskParam.java       |   40 +++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/utils/HttpHandler.java              |   80 +++++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java |    2 
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/AgvTaskCreateParam.java |   39 ++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java                 |  100 ++++++++++++
 zy-asrs-common/src/main/java/com/zy/asrs/common/utils/OKHttpUtil.java               |  101 ++++++++++++
 zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java       |  116 +++++++++++++
 7 files changed, 464 insertions(+), 14 deletions(-)

diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/HttpHandler.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/HttpHandler.java
index 4f05b6e..95ccf7c 100644
--- a/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/HttpHandler.java
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/HttpHandler.java
@@ -2,7 +2,12 @@
 
 import okhttp3.*;
 
+import javax.net.ssl.*;
 import java.io.IOException;
+import java.security.KeyStore;
+import java.security.SecureRandom;
+import java.security.cert.X509Certificate;
+import java.util.Arrays;
 import java.util.Map;
 import java.util.Optional;
 import java.util.concurrent.TimeUnit;
@@ -124,11 +129,14 @@
      * @return the HttpHandler instance
      */
     private OkHttpClient getClient(Integer timeout, TimeUnit timeUnit){
-        return new OkHttpClient
-                .Builder()
-                .connectTimeout(timeout, timeUnit)
-                .readTimeout(timeout, timeUnit)
-                .build();
+//        return new OkHttpClient
+//                .Builder()
+//                .sslSocketFactory(getSSLSocketFactory(),getX509TrustManager())
+//                .hostnameVerifier(getHostnameVerifier())
+//                .connectTimeout(timeout, timeUnit)
+//                .readTimeout(timeout, timeUnit)
+//                .build();
+        return OKHttpUtil.getInstance();
     }
 
     /**
@@ -208,5 +216,67 @@
         }
 
     }
+    /**
+     * description 蹇界暐https璇佷功楠岃瘉
+     */
+    private static HostnameVerifier getHostnameVerifier() {
+        HostnameVerifier hostnameVerifier = new HostnameVerifier() {
+            @Override
+            public boolean verify(String s, SSLSession sslSession) {
+                return true;
+            }
+        };
+        return hostnameVerifier;
+    }
+
+    /**
+     * description 蹇界暐https璇佷功楠岃瘉
+     */
+    private static SSLSocketFactory getSSLSocketFactory() {
+        try {
+            SSLContext sslContext = SSLContext.getInstance("SSL");
+            sslContext.init(null, getTrustManager(), new SecureRandom());
+            return sslContext.getSocketFactory();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static X509TrustManager getX509TrustManager() {
+        X509TrustManager trustManager = null;
+        try {
+            TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+            trustManagerFactory.init((KeyStore) null);
+            TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
+            if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
+                throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));
+            }
+            trustManager = (X509TrustManager) trustManagers[0];
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return trustManager;
+    }
+
+    private static TrustManager[] getTrustManager() {
+        TrustManager[] trustAllCerts = new TrustManager[]{
+                new X509TrustManager() {
+                    @Override
+                    public void checkClientTrusted(X509Certificate[] chain, String authType) {
+                    }
+
+                    @Override
+                    public void checkServerTrusted(X509Certificate[] chain, String authType) {
+                    }
+
+                    @Override
+                    public X509Certificate[] getAcceptedIssuers() {
+                        return new X509Certificate[]{};
+                    }
+                }
+        };
+        return trustAllCerts;
+    }
 
 }
diff --git a/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/OKHttpUtil.java b/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/OKHttpUtil.java
new file mode 100644
index 0000000..ef14a7b
--- /dev/null
+++ b/zy-asrs-common/src/main/java/com/zy/asrs/common/utils/OKHttpUtil.java
@@ -0,0 +1,101 @@
+package com.zy.asrs.common.utils;
+
+
+import okhttp3.ConnectionPool;
+import okhttp3.OkHttpClient;
+
+import java.net.Proxy;
+import java.security.KeyStore;
+import java.security.SecureRandom;
+import java.security.cert.X509Certificate;
+import java.util.Arrays;
+import java.util.concurrent.TimeUnit;
+import javax.net.ssl.*;
+
+public class OKHttpUtil {
+    private static OkHttpClient okHttpClient;
+    public static ConnectionPool connectionPool = new ConnectionPool(10, 5, TimeUnit.MINUTES);
+
+    public static OkHttpClient getInstance() {
+        if (okHttpClient == null) { //鍔犲悓姝ュ畨鍏�
+            synchronized (OkHttpClient.class) {
+                if (okHttpClient == null) { //okhttp鍙互缂撳瓨鏁版嵁....鎸囧畾缂撳瓨璺緞
+                    okHttpClient = new OkHttpClient.Builder()//鏋勫缓鍣�
+                            .proxy(Proxy.NO_PROXY) //鏉ュ睆钄界郴缁熶唬鐞�
+                            .connectionPool(connectionPool)
+                            .sslSocketFactory(getSSLSocketFactory(),  getX509TrustManager())
+                            .hostnameVerifier(getHostnameVerifier())
+                            .connectTimeout(10, TimeUnit.SECONDS)//杩炴帴瓒呮椂
+                            .writeTimeout(600, TimeUnit.SECONDS)//鍐欏叆瓒呮椂
+                            .readTimeout(600, TimeUnit.SECONDS)//璇诲彇瓒呮椂
+                            .build();
+                    okHttpClient.dispatcher().setMaxRequestsPerHost(200);
+                    okHttpClient.dispatcher().setMaxRequests(200);
+                }
+            }
+        }
+        return okHttpClient;
+    }
+
+    /**
+     * description 蹇界暐https璇佷功楠岃瘉
+     */
+    private static HostnameVerifier getHostnameVerifier() {
+        HostnameVerifier hostnameVerifier = new HostnameVerifier() {
+            @Override
+            public boolean verify(String s, SSLSession sslSession) {
+                return true;
+            }
+        };
+        return hostnameVerifier;
+    }
+    /**
+     * description 蹇界暐https璇佷功楠岃瘉
+     */
+    private static SSLSocketFactory getSSLSocketFactory() {
+        try {
+            SSLContext sslContext = SSLContext.getInstance("SSL");
+            sslContext.init(null, getTrustManager(), new SecureRandom());
+            return sslContext.getSocketFactory();
+        } catch (Exception e) {
+            throw new RuntimeException(e);
+        }
+    }
+
+    private static X509TrustManager getX509TrustManager() {
+        X509TrustManager trustManager = null;
+        try {
+            TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
+            trustManagerFactory.init((KeyStore) null);
+            TrustManager[] trustManagers = trustManagerFactory.getTrustManagers();
+            if (trustManagers.length != 1 || !(trustManagers[0] instanceof X509TrustManager)) {
+                throw new IllegalStateException("Unexpected default trust managers:" + Arrays.toString(trustManagers));
+            }
+            trustManager = (X509TrustManager) trustManagers[0];
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+
+        return trustManager;
+    }
+
+    private static TrustManager[] getTrustManager() {
+        TrustManager[] trustAllCerts = new TrustManager[]{
+                new X509TrustManager() {
+                    @Override
+                    public void checkClientTrusted(X509Certificate[] chain, String authType) {
+                    }
+
+                    @Override
+                    public void checkServerTrusted(X509Certificate[] chain, String authType) {
+                    }
+
+                    @Override
+                    public X509Certificate[] getAcceptedIssuers() {
+                        return new X509Certificate[]{};
+                    }
+                }
+        };
+        return trustAllCerts;
+    }
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
index 970bd2c..9aa18b1 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java
@@ -1,7 +1,9 @@
 package com.zy.asrs.wcs.core.controller;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.utils.HttpHandler;
 import com.zy.asrs.framework.common.Cools;
 import com.zy.asrs.framework.common.R;
 import com.zy.asrs.framework.common.SnowflakeIdWorker;
@@ -24,11 +26,10 @@
 import com.zy.asrs.wcs.system.controller.BaseController;
 import com.zy.asrs.wcs.system.entity.Dict;
 import com.zy.asrs.wcs.system.service.DictService;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import java.util.*;
 
@@ -40,6 +41,7 @@
 @RequestMapping("/openapi")
 public class OpenController extends BaseController {
 
+    private static final Logger log = LoggerFactory.getLogger(OpenController.class);
     @Autowired
     private SnowflakeIdWorker snowflakeIdWorker;
     @Autowired
@@ -62,6 +64,29 @@
     private BasConveyorStaService basConveyorStaService;
 
 
+    @PostMapping("/agvPickupComplete")
+    public Map<String, Object> agvPickupComplete(@RequestBody AgvTaskParam agvTaskParam) {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("code","0");
+        map.put("message","鎴愬姛");
+        map.put("reqCode", "");
+        log.info("agv璇锋眰鍙栬揣瀹屾垚锛寃ms浠诲姟鍙�:"+JSON.toJSONString(agvTaskParam));
+        return map;
+
+    }
+
+    @PostMapping("/agvTaskComplete")
+    public Map<String, Object> agvTaskComplete(@RequestBody AgvTaskParam agvTaskParam) {
+        HashMap<String, Object> map = new HashMap<>();
+        map.put("code","0");
+        map.put("message","鎴愬姛");
+        map.put("reqCode", "");
+        log.info("agv璇锋眰浠诲姟瀹屾垚锛寃ms浠诲姟鍙�:"+JSON.toJSONString(agvTaskParam));
+        return map;
+    }
+
+
+    //鍙栨秷wcs浠诲姟
     @PostMapping("/cancelWcsTask")
     public HashMap<String,Object> cancelWcsTask(@RequestBody CreateWcsTaskParam param){
         HashMap<String, Object> map = new HashMap<>();
@@ -154,6 +179,20 @@
         ArrayList<String> outlist = new ArrayList<>();
         outlist.add("2");outlist.add("9");
         if (inlist.contains(param.getTrkType())){
+            try {
+                AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
+                getInRequestParam(agvTaskCreateParam,param);
+                boolean httpRequest = doHttpRequest(agvTaskCreateParam, "172.18.16.248:443", "/rcs/rtas/api/robot/controller/task/submit");
+                if (!httpRequest){
+                    map.put("success", "0");
+                    map.put("message", "杞彂AGV浠诲姟鍑洪敊");
+                    map.put("result", "");
+                    map.put("requestPK", param.getRequestPK());
+                    return map;
+                }
+            }catch (Exception e){
+
+            }
             CreateInTaskParam createInTaskParam = new CreateInTaskParam();
             createInTaskParam.setTaskNo(param.getRequestPK());
             createInTaskParam.setDestLoc(getWMStoWCSLocNo(param.getToPos()));
@@ -184,12 +223,31 @@
                 }
             }
         } else if (outlist.contains(param.getTrkType())) {
+//            try {
+//                AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
+//                getOutRequestParam(agvTaskCreateParam,param);
+//                boolean httpRequest = doHttpRequest(agvTaskCreateParam, "172.18.16.94:8001", "/api/robot/controller/task/submit");
+//                if (!httpRequest){
+//                    map.put("success", "0");
+//                    map.put("message", "杞彂AGV浠诲姟鍑洪敊");
+//                    map.put("result", "");
+//                    map.put("requestPK", param.getRequestPK());
+//                    return map;
+//                }
+//            }catch (Exception e){
+//                map.put("success", "0");
+//                map.put("message", "杞彂AGV浠诲姟鍑洪敊");
+//                map.put("result", "");
+//                map.put("requestPK", param.getRequestPK());
+//                return map;
+//            }
             CreateOutTaskParam createOutTaskParam = new CreateOutTaskParam();
             createOutTaskParam.setTaskNo(param.getRequestPK());
             createOutTaskParam.setOriginLoc(getWMStoWCSLocNo(param.getFrmPos()));
             createOutTaskParam.setOriginSite("101");
             createOutTaskParam.setDestSite("100");
             createOutTaskParam.setPriority(Integer.valueOf(param.getTrkPrty()));
+            createOutTaskParam.setEndSite(param.getToPos());
             R outTask = null;
             try {
                 outTask = createOutTask(createOutTaskParam);
@@ -229,6 +287,54 @@
         int lev = Integer.parseInt(loc.substring(10,12));
         locNo = row +"-"+bay+"-"+lev;
         return locNo;
+    }
+    private void getInRequestParam(AgvTaskCreateParam agvTaskCreateParam,CreateWcsTaskParam param){
+        List<AgvTaskCreateParam.AgvTaskParam> agvTaskParamList = Arrays.asList(
+                //璧峰浣�
+                new AgvTaskCreateParam.AgvTaskParam("SITE",param.getFrmPos(),0,1),
+                //鐩爣浣�
+                new AgvTaskCreateParam.AgvTaskParam("SITE","06YZ0001",1,1)
+        );
+        List<AgvTaskCreateParam.carrierInfoParam> carrierInfoParam = Arrays.asList(
+                //璧峰浣�
+                new AgvTaskCreateParam.carrierInfoParam()
+
+        );
+        agvTaskCreateParam.setTaskType("F01");
+        agvTaskCreateParam.setInitPriority(param.getTrkPrty());
+        agvTaskCreateParam.setRobotTaskCode(param.getRequestPK());
+        agvTaskCreateParam.setTargetRoute(agvTaskParamList);
+        agvTaskCreateParam.setCarrierInfo(carrierInfoParam);
+
+    }
+    private boolean doHttpRequest(AgvTaskCreateParam requestParam, String url, String path){
+        String response = "";
+        boolean success = false;
+        Map<String, Object> map = new HashMap<>();
+        map.put("Content-Type", "application/json;charset=UTF-8");
+        map.put("X-lr-request-id", requestParam.getRobotTaskCode());
+        map.put("X-lr-version", 4.1);
+        map.put("X-lr-trace-id", "{{$guid}}");
+        try {
+            response = new HttpHandler.Builder()
+                    .setHeaders(map)
+                    .setUri(url)
+                    .setHttps(true)
+                    .setPath(path)
+                    .setJson(JSONObject.toJSONString(requestParam))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+
+            String code = jsonObject.get("code").toString();
+            if(code.equals("SUCCESS")){
+                success = true;
+            }
+            log.info("杞彂agv浠诲姟锛氳姹備綋:"+JSONObject.toJSONString(requestParam)+",杩斿洖鍊�:"+jsonObject);
+        }catch (Exception e){
+
+        }
+        return success;
     }
 
     //鐢熸垚鍏ュ簱浠诲姟
@@ -472,7 +578,7 @@
         task.setIoTime(new Date());
         task.setStartTime(new Date());
         task.setStatus(1);
-        task.setMemo("");
+        task.setMemo(param.getEndSite());
         task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞�
         task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅
         task.setHostId(hostId);//涓存椂鎺у埗鍙厑璁竓ost涓�1
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/AgvTaskCreateParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/AgvTaskCreateParam.java
new file mode 100644
index 0000000..fc35f1f
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/AgvTaskCreateParam.java
@@ -0,0 +1,39 @@
+package com.zy.asrs.wcs.core.domain.param;
+
+import lombok.Data;
+
+import java.lang.reflect.Array;
+import java.util.List;
+
+@Data
+public class AgvTaskCreateParam {
+    private String robotTaskCode;
+    private String taskType;
+    private String initPriority;
+    private List<AgvTaskParam> targetRoute;
+    private List<carrierInfoParam> carrierInfo;
+
+
+    @Data
+    public static class AgvTaskParam {
+        private String type;
+        private String code;
+        private Integer seq;
+        private Integer autoStart;
+
+
+        public AgvTaskParam(String type, String code, Integer seq, Integer autoStart) {
+            this.type = type;
+            this.code = code;
+            this.seq = seq;
+            this.autoStart = autoStart;
+        }
+    }
+    @Data
+    public static class carrierInfoParam{
+        private String carrierType = "2";
+        private String carrierCode = "2";
+    }
+}
+
+
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/AgvTaskParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/AgvTaskParam.java
new file mode 100644
index 0000000..0795f77
--- /dev/null
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/AgvTaskParam.java
@@ -0,0 +1,40 @@
+package com.zy.asrs.wcs.core.domain.param;
+
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+public class AgvTaskParam {
+    private String robotTaskCode;
+    private String singleRobotCode;
+    private Integer currentSeq;
+    private extras extra;
+
+    @Data
+    public static class extras{
+        private String async;
+        private valuess values;
+    }
+    @Data
+    public static class valuess{
+        private String slotName;
+        private String carrierCategory;
+        private String method;
+        private String carrierCode;
+        private Integer x;
+        private String carrierType;
+        private Integer y;
+        private String slotCategory;
+        private String mapCode;
+        private Integer pileCount;
+        private String slotCode;
+        private String orgCode;
+        private String amrCategory;
+        private String amrType;
+        private String amrCode;
+        private String carrierDir;
+    }
+
+
+}
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java
index 886e3ad..b1223a4 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/domain/param/CreateOutTaskParam.java
@@ -19,5 +19,7 @@
 
     //浼樺厛绾�
     private Integer priority;
+    //agv鏀捐揣绔�
+    private String endSite;
 
 }
diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
index 88b3a52..489497e 100644
--- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
+++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/timer/TaskTimer.java
@@ -1,7 +1,11 @@
 package com.zy.asrs.wcs.core.timer;
 
 import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.utils.HttpHandler;
+import com.zy.asrs.wcs.core.domain.param.AgvTaskCreateParam;
+import com.zy.asrs.wcs.core.domain.param.CreateWcsTaskParam;
 import com.zy.asrs.wcs.core.entity.*;
 import com.zy.asrs.wcs.core.model.enums.LocStsType;
 import com.zy.asrs.wcs.core.model.enums.TaskStsType;
@@ -12,9 +16,7 @@
 import org.springframework.stereotype.Component;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
 
 @Slf4j
 @Component
@@ -30,13 +32,103 @@
     private MotionLogService motionLogService;
     @Autowired
     private LocService locService;
+    @Autowired
+    private BasConveyorStaService basConveyorStaService;
+
+    @Scheduled(cron = "0/1 * * * * ? ")
+    @Transactional
+    public synchronized void sendOutTaskToAgv() {
+        ArrayList<Long> taskSts = new ArrayList<>();
+        taskSts.add(TaskStsType.COMPLETE_OUTBOUND.sts);
+
+        BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>().eq(BasConveyorSta::getSiteNo, 100));
+        if (basConveyorSta == null) {
+            return;
+        }
+        if (basConveyorSta.getWorkMode() != 2){
+            return;
+        }
+        if (basConveyorSta.getTaskNo() == 0){
+            return;
+        }
+        if (!basConveyorSta.getAutoing().equals("Y") || !basConveyorSta.getLoading().equals("Y")) {
+            return;
+        }
+
+        List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>()
+                .eq(Task::getStatus, 1)
+                .in(Task::getTaskSts, taskSts));
+        for (Task task : tasks) {
+            if (task.getTaskNo().equals(basConveyorSta.getTaskNo().toString())) {
+                AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam();
+                getOutRequestParam(agvTaskCreateParam,task);
+                boolean httpRequest = doHttpRequest(agvTaskCreateParam, "172.18.16.248:443", "/rcs/rtas/api/robot/controller/task/submit");
+                if (httpRequest){
+                    task.setTaskSts(1000L);
+                    taskService.updateById(task);
+                }else {
+                    log.error("鍑哄簱浠诲姟鎺ㄩ�乺gv澶辫触"+task.getWmsTaskNo());
+                }
+            }
+        }
+    }
+
+    private void getOutRequestParam(AgvTaskCreateParam agvTaskCreateParam, Task param){
+        List<AgvTaskCreateParam.AgvTaskParam> agvTaskParamList = Arrays.asList(
+                //璧峰浣�
+                new AgvTaskCreateParam.AgvTaskParam("SITE","06YZ0001",0,1),
+                //鐩爣浣�
+                new AgvTaskCreateParam.AgvTaskParam("SITE",param.getMemo(),1,1)
+        );
+        List<AgvTaskCreateParam.carrierInfoParam> carrierInfoParam = Arrays.asList(
+                //璧峰浣�
+                new AgvTaskCreateParam.carrierInfoParam()
+
+        );
+        agvTaskCreateParam.setTaskType("F01");
+        agvTaskCreateParam.setInitPriority(param.getPriority().toString());
+        agvTaskCreateParam.setRobotTaskCode(param.getWmsTaskNo());
+        agvTaskCreateParam.setTargetRoute(agvTaskParamList);
+        agvTaskCreateParam.setCarrierInfo(carrierInfoParam);
+
+    }
+
+    private boolean doHttpRequest(AgvTaskCreateParam requestParam, String url, String path){
+        String response = "";
+        boolean success = false;
+        Map<String, Object> map = new HashMap<>();
+        map.put("Content-Type", "application/json;charset=UTF-8");
+        map.put("X-lr-request-id", requestParam.getRobotTaskCode());
+        map.put("X-lr-version", 4.1);
+        map.put("X-lr-trace-id", "{{$guid}}");
+        try {
+            response = new HttpHandler.Builder()
+                    .setHeaders(map)
+                    .setUri(url)
+                    .setHttps(true)
+                    .setPath(path)
+                    .setJson(JSONObject.toJSONString(requestParam))
+                    .build()
+                    .doPost();
+            JSONObject jsonObject = JSON.parseObject(response);
+
+            String code = jsonObject.get("code").toString();
+            if(code.equals("SUCCESS")){
+                success = true;
+            }
+
+        }catch (Exception e){
+
+        }
+        return success;
+    }
 
     @Scheduled(cron = "0/1 * * * * ? ")
     @Transactional
     public synchronized void clearCompletedTask() {
         ArrayList<Long> taskSts = new ArrayList<>();
         taskSts.add(TaskStsType.COMPLETE_INBOUND.sts);
-        taskSts.add(TaskStsType.COMPLETE_OUTBOUND.sts);
+//        taskSts.add(TaskStsType.COMPLETE_OUTBOUND.sts);
         taskSts.add(TaskStsType.COMPLETE_CHARGE.sts);
         taskSts.add(TaskStsType.COMPLETE_MOVE.sts);
         taskSts.add(TaskStsType.COMPLETE_MANUAL.sts);

--
Gitblit v1.9.1