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