From a489f1aeefb1cccea10c785a84d3d833b1eef648 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期四, 07 十一月 2024 15:56:25 +0800 Subject: [PATCH] 呼叫agv自动绑定,pda解绑 --- src/main/java/com/zy/common/constant/ApiInterfaceConstant.java | 3 + src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 61 ++++++++++++++++++++++++++++-- src/main/java/com/zy/asrs/controller/MobileController.java | 13 ++++++ src/main/java/com/zy/common/constant/AgvSiteConstant.java | 25 ++++++++++++ src/main/java/com/zy/asrs/service/MobileService.java | 5 ++ 5 files changed, 102 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MobileController.java b/src/main/java/com/zy/asrs/controller/MobileController.java index ab6bfab..7589117 100644 --- a/src/main/java/com/zy/asrs/controller/MobileController.java +++ b/src/main/java/com/zy/asrs/controller/MobileController.java @@ -88,6 +88,19 @@ } + @PostMapping("/agv/unbind") + @ManagerAuth + public R pdaAgvUnbind(@RequestBody Map<String,Object> map){ + + String site = (String) map.get("site"); // 鏆傚瓨浣� + + if (Cools.isEmpty(site)) { + return R.parse("鏆傚瓨浣嶄笉鑳戒负绌�"); + } + + return mobileService.unbind(site); + } + private void getAgvTaskParam(ForwardAGVTaskParam agvTaskCreateParam,String agv,String sta){ List<ForwardAGVTaskParam.PositionCodePaths> agvTaskParamList = Arrays.asList( //璧峰浣� diff --git a/src/main/java/com/zy/asrs/service/MobileService.java b/src/main/java/com/zy/asrs/service/MobileService.java index 6c01385..5483da8 100644 --- a/src/main/java/com/zy/asrs/service/MobileService.java +++ b/src/main/java/com/zy/asrs/service/MobileService.java @@ -20,6 +20,11 @@ R inLocCallAgv(String sta, String inSta); /** + * agv瑙g粦绔欑偣 + */ + R unbind(String site); + + /** * 缁勬墭 */ void comb(CombParam param, Long userId); diff --git a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java index 10bd0c9..37b44bc 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -83,10 +83,10 @@ } // 鍏堢粦瀹� -// boolean flag = bindPodAndBerth(sta); -// if (!flag) { -// return R.parse(inSta + "缁戝畾澶辫触"); -// } + boolean flag = bindPodAndBerth(sta); + if (!flag) { + return R.parse(inSta + "缁戝畾澶辫触"); + } ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam(); forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", "")); @@ -138,6 +138,57 @@ return success ? R.ok("鍛煎彨agv鎴愬姛") : R.parse(message); } + @Override + public R unbind(String site) { + String staMap = AgvSiteConstant.SiteMap.get(site); + if (staMap == null) { + return R.parse("娌℃湁鎵惧埌璇ョ珯鐐圭殑鍏ュ簱鏄犲皠锛�" + site); + } + JSONObject jsonObject = new JSONObject(); + jsonObject.put("reqCode",UUID.randomUUID().toString().replace("-", "")); // 璇锋眰鍞竴鍊� + jsonObject.put("ctnrTyp","2"); // 瀹瑰櫒绫诲瀷2 + jsonObject.put("stgBinCode",staMap); // 浠撲綅缂栧彿锛屾牴鎹浠撶紪鍙疯浆鎹� + jsonObject.put("indBind","0"); // 1缁戝畾锛�0瑙g粦 + + String body = jsonObject.toJSONString(); + String response = ""; + String message = ""; + boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(ApiInterfaceConstant.AGV_IP) + .setPath(ApiInterfaceConstant.AGV_BIND_PATH) + .setJson(body) + .build() + .doPost(); + JSONObject res = JSON.parseObject(response); + message = jsonObject.getString("message"); + if (res.getInteger("code").equals(0)) { + success = true; + } else { + log.error("璋冪敤agv瑙g粦鏆傚瓨浣嶅け璐ワ紒锛侊紒url锛歿}锛況equest锛歿}锛況esponse锛歿}", ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_BIND_PATH, body, response); + } + } catch (Exception e) { + log.error("璋冪敤agv瑙g粦鏆傚瓨浣嶅紓甯�", e); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "璋冪敤agv瑙g粦鏆傚瓨浣�", + ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_BIND_PATH, + null, + "127.0.0.1", + body, + response, + success + ); + } catch (Exception e) { + log.error("", e); + } + } + return success ? R.ok("瑙g粦鎴愬姛") : R.parse(message); + } + private boolean bindPodAndBerth(String sta) { String staMap = AgvSiteConstant.SiteMap.get(sta); if (staMap == null) { @@ -146,7 +197,7 @@ } JSONObject jsonObject = new JSONObject(); jsonObject.put("reqCode",UUID.randomUUID().toString().replace("-", "")); // 璇锋眰鍞竴鍊� - jsonObject.put("crnType","2"); // 瀹瑰櫒绫诲瀷2 + jsonObject.put("ctnrTyp","2"); // 瀹瑰櫒绫诲瀷2 jsonObject.put("stgBinCode",staMap); // 浠撲綅缂栧彿锛屾牴鎹浠撶紪鍙疯浆鎹� jsonObject.put("indBind","1"); // 1缁戝畾锛�0瑙g粦 diff --git a/src/main/java/com/zy/common/constant/AgvSiteConstant.java b/src/main/java/com/zy/common/constant/AgvSiteConstant.java new file mode 100644 index 0000000..c74bc75 --- /dev/null +++ b/src/main/java/com/zy/common/constant/AgvSiteConstant.java @@ -0,0 +1,25 @@ +package com.zy.common.constant; + +import java.util.HashMap; +import java.util.Map; + +/** + * @author pang.jiabao + * @description Agv绔欑偣鍜屼粨浣嶇紪鍙峰搴� + * @createDate 2024/11/7 10:49 + */ +public class AgvSiteConstant { + + public static final Map<String,String> SiteMap = new HashMap<String,String>(){{ + put("a1","700001EE501013");put("a2","700002EE501013");put("a3","700003EE501013");put("a4","700004EE501013"); + put("a5","700005EE501013");put("a6","700006EE501013");put("a7","700007EE501013");put("a8","700008EE501013"); + put("b1","820001EE501013");put("b2","820002EE501013");put("b3","820003EE501013");put("b4","820004EE501013"); + put("b5","820005EE501013");put("b6","820006EE501013"); + put("c1","830001EE501013");put("c2","830002EE501013");put("c3","830003EE501013");put("c4","830004EE501013"); + put("c5","830005EE501013");put("c6","830006EE501013"); + put("1040","800001FF501013");put("1042","800002FF501013"); + put("2010","600001XX501013");put("2012","600002XX501013"); + put("3010","400001GG501013");put("3012","400002GG501013"); + }}; + +} diff --git a/src/main/java/com/zy/common/constant/ApiInterfaceConstant.java b/src/main/java/com/zy/common/constant/ApiInterfaceConstant.java index 595ccd3..e5f0c34 100644 --- a/src/main/java/com/zy/common/constant/ApiInterfaceConstant.java +++ b/src/main/java/com/zy/common/constant/ApiInterfaceConstant.java @@ -13,4 +13,7 @@ // 鍏ュ簱鍛煎彨AGV鍙栬揣 public static final String AGV_CALL_IN_PATH = "/rcms/services/rest/hikRpcService/genAgvSchedulingTask"; + // AGV缁戝畾浠撲綅 + public static final String AGV_BIND_PATH = "/rcms/services/rest/hikRpcService/bindCtnrAndBin"; + } -- Gitblit v1.9.1