From 1de5f5e75398f8da0ebd3c63d389b8d960a60858 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 09 七月 2024 22:19:13 +0800 Subject: [PATCH] #对接完成 --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java | 189 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 152 insertions(+), 37 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 9aa18b1..53a9308 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 @@ -26,11 +26,13 @@ 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.apache.poi.ss.formula.functions.T; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.text.SimpleDateFormat; import java.util.*; /** @@ -66,6 +68,11 @@ @PostMapping("/agvPickupComplete") public Map<String, Object> agvPickupComplete(@RequestBody AgvTaskParam agvTaskParam) { + HashMap<String, String> mesMap = new HashMap<>(); + mesMap.put("taskNo", agvTaskParam.getRobotTaskCode()); + mesMap.put("contNo",agvTaskParam.getExtra().getValues().getCarrierCode()); + boolean returnTask3 = toMesHttpRequest(mesMap, "172.18.231.126", "/api/wcs/wcsTaskInfo", "3",agvTaskParam.getExtra().getValues().getSlotName()); + HashMap<String, Object> map = new HashMap<>(); map.put("code","0"); map.put("message","鎴愬姛"); @@ -77,12 +84,87 @@ @PostMapping("/agvTaskComplete") public Map<String, Object> agvTaskComplete(@RequestBody AgvTaskParam agvTaskParam) { + log.info("agv璇锋眰浠诲姟瀹屾垚锛寃ms浠诲姟鍙�:"+JSON.toJSONString(agvTaskParam)); HashMap<String, Object> map = new HashMap<>(); + Task task = taskService.getOne(new LambdaQueryWrapper<Task>().eq(Task::getWmsTaskNo, agvTaskParam.getRobotTaskCode())); + if (!Cools.isEmpty(task)){ + if (agvTaskParam.getExtra().getValues().getSlotName().equals("06YZ0001")){ + Device device = deviceService.getOne(new LambdaQueryWrapper<Device>() + .eq(Device::getDeviceType, DeviceCtgType.CONVEYOR.val()) + .eq(Device::getStatus, 1) + .eq(Device::getDeviceNo, 1)); + if (device == null) { + map.put("code","1"); + map.put("message","澶辫触锛岃澶囦笉瀛樺湪"); + map.put("reqCode", ""); + return map; + } + + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, device.getId().intValue()); + if (devpThread == null) { + map.put("code","1"); + map.put("message","澶辫触锛岃緭閫佺嚎涓嶅湪绾�"); + map.put("reqCode", ""); + return map; + } + boolean result = devpThread.writeWorkSta(100, Short.parseShort("9999"), (short) 101); + if (!result) { + map.put("code","1"); + map.put("message","澶辫触锛岃緭閫佺嚎鍛戒护涓嬪彂澶辫触"); + map.put("reqCode", ""); + return map; + } + }else { + if (task.getTaskSts() == 1000 || task.getMemo().equals(agvTaskParam.getExtra().getValues().getSlotName())){ + task.setTaskSts(1001L); + taskService.updateById(task); + } + } + }else { + HashMap<String, String> mesMap = new HashMap<>(); + mesMap.put("taskNo", agvTaskParam.getRobotTaskCode()); + mesMap.put("contNo",agvTaskParam.getExtra().getValues().getCarrierCode()); + boolean returnTask4 = toMesHttpRequest(mesMap, "172.18.231.126", "/api/wcs/wcsTaskInfo", "4",agvTaskParam.getExtra().getValues().getSlotName()); + } + map.put("code","0"); map.put("message","鎴愬姛"); map.put("reqCode", ""); - log.info("agv璇锋眰浠诲姟瀹屾垚锛寃ms浠诲姟鍙�:"+JSON.toJSONString(agvTaskParam)); return map; + } + + private boolean toMesHttpRequest(Map<String,String> map, String url, String path, String code,String location){ + Date now = new Date(); + long time = now.getTime()/1000; + ReturnWcsTaskStatisParam returnWcsTaskStatisParam = new ReturnWcsTaskStatisParam(); + returnWcsTaskStatisParam.setRequestPK(map.get("taskNo")); + returnWcsTaskStatisParam.setTrkId(map.get("taskNo")); + returnWcsTaskStatisParam.setContNo(map.get("contNo")); + returnWcsTaskStatisParam.setCode(code); + returnWcsTaskStatisParam.setOperator("wcs"); + returnWcsTaskStatisParam.setOperationTime(time); + returnWcsTaskStatisParam.setTrkType("01"); + returnWcsTaskStatisParam.setCurPos(location); + String response = ""; + boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(url) + .setPath(path) + .setJson(JSONObject.toJSONString(returnWcsTaskStatisParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + + String code1 = jsonObject.get("success").toString(); + log.info("涓婃姤mes鎺ュ彛璇锋眰浣�:"+JSON.toJSONString(returnWcsTaskStatisParam) +",杩斿洖鍊�:"+jsonObject.toJSONString()); + if(code1.equals("1")){ + success = true; + } + }catch (Exception e){ + return success; + } + return success; } @@ -148,8 +230,9 @@ //mes涓嬪彂浠诲姟 - @PostMapping("/createWcsTaskParam") + @PostMapping("/createWcsTask") public HashMap<String,Object> createWcsTask(@RequestBody CreateWcsTaskParam param){ + log.info("mes浠诲姟涓嬪彂锛岃姹備綋:"+JSONObject.toJSONString(param)); HashMap<String, Object> map = new HashMap<>(); if (Cools.isEmpty(param)){ map.put("success", "0"); @@ -174,31 +257,37 @@ map.put("requestPK", param.getRequestPK()); return map; } - ArrayList<String> inlist = new ArrayList<>(); - inlist.add("1");inlist.add("8"); - 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){ + String sta = "06YZ"; + String loc = "0601KW"; + if (param.getFrmPos().substring(0,4).equals(sta) && param.getToPos().substring(0,6).equals(loc)){ + if (!param.getFrmPos().equals("06YZ0001")){ + try { + AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); + getInRequestParam(agvTaskCreateParam,param); + String httpRequest = doHttpRequest(agvTaskCreateParam, "172.18.16.248:443", "/rcs/rtas/api/robot/controller/task/submit"); + if (!httpRequest.equals("SUCCESS")){ + map.put("success", "0"); + map.put("message", httpRequest); + 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; } - }catch (Exception e){ - } + CreateInTaskParam createInTaskParam = new CreateInTaskParam(); createInTaskParam.setTaskNo(param.getRequestPK()); createInTaskParam.setDestLoc(getWMStoWCSLocNo(param.getToPos())); createInTaskParam.setOriginSite("100"); createInTaskParam.setBarcode(param.getContNo()); createInTaskParam.setPriority(Integer.valueOf(param.getTrkPrty())); + createInTaskParam.setEndSite(param.getToPos()); R inTask = null; try { inTask = createInTask(createInTaskParam); @@ -222,25 +311,7 @@ map.put("requestPK", param.getRequestPK()); } } - } 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; -// } + } else if (param.getFrmPos().substring(0,6).equals(loc) && param.getToPos().substring(0,4).equals(sta)) { CreateOutTaskParam createOutTaskParam = new CreateOutTaskParam(); createOutTaskParam.setTaskNo(param.getRequestPK()); createOutTaskParam.setOriginLoc(getWMStoWCSLocNo(param.getFrmPos())); @@ -248,6 +319,7 @@ createOutTaskParam.setDestSite("100"); createOutTaskParam.setPriority(Integer.valueOf(param.getTrkPrty())); createOutTaskParam.setEndSite(param.getToPos()); + createOutTaskParam.setZpallet(param.getContNo()); R outTask = null; try { outTask = createOutTask(createOutTaskParam); @@ -272,7 +344,27 @@ } } - }else { + } else if (param.getFrmPos().substring(0,4).equals(sta) && param.getToPos().substring(0,4).equals(sta)) { + try { + AgvTaskCreateParam agvTaskCreateParam = new AgvTaskCreateParam(); + getTransmitRequestParam(agvTaskCreateParam,param); + String httpRequest = doHttpRequest(agvTaskCreateParam, "172.18.16.248:443", "/rcs/rtas/api/robot/controller/task/submit"); + if (!httpRequest.equals("SUCCESS")){ + map.put("success", "0"); + map.put("message", httpRequest); + 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; + } + + } else { map.put("success", "0"); map.put("message", "鏈壘鍒板搴斾换鍔$被鍨�"); map.put("result", ""); @@ -307,9 +399,28 @@ agvTaskCreateParam.setCarrierInfo(carrierInfoParam); } - private boolean doHttpRequest(AgvTaskCreateParam requestParam, String url, String path){ + private void getTransmitRequestParam(AgvTaskCreateParam agvTaskCreateParam,CreateWcsTaskParam param){ + List<AgvTaskCreateParam.AgvTaskParam> agvTaskParamList = Arrays.asList( + //璧峰浣� + new AgvTaskCreateParam.AgvTaskParam("SITE",param.getFrmPos(),0,1), + //鐩爣浣� + new AgvTaskCreateParam.AgvTaskParam("SITE",param.getToPos(),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 String doHttpRequest(AgvTaskCreateParam requestParam, String url, String path){ String response = ""; - boolean success = false; + String success = "error"; Map<String, Object> map = new HashMap<>(); map.put("Content-Type", "application/json;charset=UTF-8"); map.put("X-lr-request-id", requestParam.getRobotTaskCode()); @@ -328,7 +439,9 @@ String code = jsonObject.get("code").toString(); if(code.equals("SUCCESS")){ - success = true; + success = "SUCCESS"; + }else { + success = jsonObject.get("message").toString(); } log.info("杞彂agv浠诲姟锛氳姹備綋:"+JSONObject.toJSONString(requestParam)+",杩斿洖鍊�:"+jsonObject); }catch (Exception e){ @@ -447,6 +560,7 @@ task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞� task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅 task.setHostId(hostId);//涓存椂鎺у埗鍙厑璁竓ost涓�1 + task.setMemo(param.getEndSite()); boolean result = taskService.save(task); if (!result) { @@ -582,6 +696,7 @@ task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞� task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅 task.setHostId(hostId);//涓存椂鎺у埗鍙厑璁竓ost涓�1 + task.setZpallet(param.getZpallet()); boolean result = taskService.save(task); if (!result) { -- Gitblit v1.9.1