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/controller/OpenController.java |  116 +++++++++++++++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 111 insertions(+), 5 deletions(-)

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

--
Gitblit v1.9.1