From 3fd514d4b802534159518924f3711dc5152732d4 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期二, 20 八月 2024 16:12:10 +0800 Subject: [PATCH] #任务增加缓存队列 --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/controller/OpenController.java | 453 -------------------------------------------------------- 1 files changed, 5 insertions(+), 448 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 ed35e06..4b3d777 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 @@ -64,6 +64,8 @@ private BasConveyorService basConveyorService; @Autowired private BasConveyorStaService basConveyorStaService; + @Autowired + private OpenService openService; @PostMapping("/agvPickupComplete") @@ -275,462 +277,22 @@ log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); return map; } - 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()); - log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); - return map; - } - }catch (Exception e){ - map.put("success", "0"); - map.put("message", "杞彂AGV浠诲姟鍑洪敊"); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); - return map; - } - } - 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); - }catch (Exception e){ - map.put("success", "0"); - map.put("message", "鐢熸垚浠诲姟鍑洪敊"); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); - return map; - }finally { - int code = (int) inTask.get("code"); - if (code == 200){ - map.put("success", "1"); - map.put("message", inTask.get("msg")); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - }else { - map.put("success", "0"); - map.put("message", inTask.get("msg")); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - } - } - } 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())); - createOutTaskParam.setOriginSite("101"); - createOutTaskParam.setDestSite("100"); - createOutTaskParam.setPriority(Integer.valueOf(param.getTrkPrty())); - createOutTaskParam.setEndSite(param.getToPos()); - createOutTaskParam.setZpallet(param.getContNo()); - R outTask = null; - try { - outTask = createOutTask(createOutTaskParam); - }catch (Exception e){ - map.put("success", "0"); - map.put("message", "鐢熸垚浠诲姟鍑洪敊"); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); - return map; - }finally { - int code = (int) outTask.get("code"); - if (code == 200){ - map.put("success", "1"); - map.put("message", outTask.get("msg")); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - }else { - map.put("success", "0"); - map.put("message", outTask.get("msg")); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - } - } - - } 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()); - log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); - return map; - } - }catch (Exception e){ - map.put("success", "0"); - map.put("message", "杞彂AGV浠诲姟鍑洪敊"); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); - return map; - } - - } else { - map.put("success", "0"); - map.put("message", "鏈壘鍒板搴斾换鍔$被鍨�"); - map.put("result", ""); - map.put("requestPK", param.getRequestPK()); - } + map = openService.createWcsTaskCache(param); log.info("杩斿洖mes淇℃伅:"+JSONObject.toJSONString(map)); return map; - } - public static String getWMStoWCSLocNo(String loc){ - String locNo = ""; - int row = Integer.parseInt(loc.substring(6,8)); - int bay = Integer.parseInt(loc.substring(8,10)); - int lev = Integer.parseInt(loc.substring(10,12)); - if (row == 2){ - row = 3; - } - 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 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 = ""; - 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()); - 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 = "SUCCESS"; - }else { - success = jsonObject.get("message").toString(); - } - log.info("杞彂agv浠诲姟锛氳姹備綋:"+JSONObject.toJSONString(requestParam)+",杩斿洖鍊�:"+jsonObject); - }catch (Exception e){ - - } - return success; } //鐢熸垚鍏ュ簱浠诲姟 @PostMapping("/createInTask") public R createInTask(@RequestBody CreateInTaskParam param) { - //鑾峰彇鍏ュ簱浠诲姟绫诲瀷 - TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) - .eq(TaskCtg::getStatus, 1)); - if (taskCtg == null) { - return R.error("浠诲姟绫诲瀷寮傚父"); - } - - Long hostId = 1L;//榛樿涓讳粨搴� - - Loc loc = locService.selectByLocNo(param.getDestLoc()); - if (loc == null) { - return R.error("搴撲綅鍙蜂笉瀛樺湪"); - } - - //鑾峰彇涓ユ牸妯″紡鍙傛暟 - boolean mapStrict = true;//榛樿涓ユ牸妯″紡 - Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); - if (dict != null) { - mapStrict = Boolean.parseBoolean(dict.getValue()); - } - - if (mapStrict && !loc.getLocStsFlag().equals("O")) { - return R.error("搴撲綅鐘舵�佷笉婊¤冻鍏ュ簱鏉′欢"); - } - - Task one = taskService.getOne(new LambdaQueryWrapper<Task>() - .eq(Task::getTaskCtg, taskCtg.getId()) - .eq(Task::getOriginSite, param.getOriginSite()) - .eq(Task::getDestSite, param.getDestSite()) - .eq(Task::getDestLoc, param.getDestLoc())); - if (one != null) { - return R.error("浠诲姟宸插瓨鍦�"); - } - - String destSite = param.getDestSite(); - if (Cools.isEmpty(param.getDestSite())) { - //鐩爣绔欎负绌哄垯浣跨敤WCS绯荤粺鍐呯疆璺緞 - BasConveyorPath path = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>() - .eq(BasConveyorPath::getTypeNo, taskCtg.getId()) - .eq(BasConveyorPath::getHostId, hostId) - .eq(BasConveyorPath::getStnNo, param.getOriginSite())); - if(path == null) { - return R.error("鍐呯疆璺緞涓嶅瓨鍦�"); - } - destSite = String.valueOf(path.getDeviceStn()); - } - - //鍒ゆ柇鍑哄叆搴撴ā寮� - BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>() - .eq(BasConveyorSta::getSiteNo, destSite)); - if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKIN_MODE.id)) { - //涓嶆槸鍏ュ簱妯″紡锛屾娴嬫槸鍚﹀彲鍒囨崲鍏ュ簱 - //鑾峰彇鍑哄簱浠诲姟绫诲瀷 - TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) - .eq(TaskCtg::getStatus, 1)); - if (taskInCtg == null) { - return R.error("浠诲姟绫诲瀷寮傚父"); - } - List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() - .eq(Task::getTaskCtg, taskInCtg.getId())); - if (!tasks.isEmpty()) { - return R.error("褰撳墠瀛樺湪鍑哄簱浠诲姟锛屾棤娉曞垏鎹㈠叆搴撴ā寮�"); - } - - BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo())); - if(basConveyor == null) { - return R.error("杈撻�佺嚎涓嶅瓨鍦�"); - } - - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); - if(devpThread == null) { - return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�"); - } - - boolean result = devpThread.switchWorkMode(Integer.parseInt(destSite), WorkModeType.PAKIN_MODE.id); - if (!result) { - return R.error("妯″紡鍒囨崲澶辫触"); - } - } - - //浼樺厛绾� - Integer priority = 10; - if (param.getPriority() != null) { - priority = param.getPriority(); - } - - Task task = new Task(); - task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); - task.setTaskNo(String.valueOf(Utils.getTaskNo("IN"))); - task.setWmsTaskNo(param.getTaskNo()); - task.setTaskSts(TaskStsType.NEW_INBOUND.sts); - task.setTaskCtg(taskCtg.getId()); - task.setPriority(priority); - task.setOriginSite(param.getOriginSite()); - task.setOriginLoc(null); - task.setDestSite(destSite); - task.setDestLoc(param.getDestLoc()); - task.setZpallet(param.getBarcode()); - task.setIoTime(new Date()); - task.setStartTime(new Date()); - task.setStatus(1); - task.setMemo(""); - task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞� - task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅 - task.setHostId(hostId);//涓存椂鎺у埗鍙厑璁竓ost涓�1 - task.setMemo(param.getEndSite()); - - boolean result = taskService.save(task); - if (!result) { - return R.error("鐢熸垚鍏ュ簱浠诲姟澶辫触锛�"); - } - return R.ok(); + return openService.createInTask(param); } //鐢熸垚鍑哄簱浠诲姟 @PostMapping("/createOutTask") public R createOutTask(@RequestBody CreateOutTaskParam param) { - //鑾峰彇鍑哄簱浠诲姟绫诲瀷 - TaskCtg taskCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) - .eq(TaskCtg::getStatus, 1)); - if (taskCtg == null) { - return R.error("浠诲姟绫诲瀷寮傚父"); - } - - Long hostId = 1L;//榛樿涓讳粨搴� - - Loc loc = locService.selectByLocNo(param.getOriginLoc()); - if (loc == null) { - return R.error("搴撲綅鍙蜂笉瀛樺湪"); - } - - //鑾峰彇涓ユ牸妯″紡鍙傛暟 - boolean mapStrict = true;//榛樿涓ユ牸妯″紡 - Dict dict = dictService.getOne(new LambdaQueryWrapper<Dict>().eq(Dict::getFlag, "shuttleMapStrict")); - if (dict != null) { - mapStrict = Boolean.parseBoolean(dict.getValue()); - } - - if (mapStrict && !loc.getLocStsFlag().equals("F")) { - return R.error("搴撲綅鐘舵�佷笉婊¤冻鍑哄簱鏉′欢"); - } - - Task one = taskService.getOne(new LambdaQueryWrapper<Task>() - .eq(Task::getTaskCtg, taskCtg.getId()) - .eq(Task::getOriginSite, param.getOriginSite()) - .eq(Task::getOriginLoc, param.getOriginLoc()) - .eq(Task::getDestSite, param.getDestSite())); - if (one != null) { - return R.error("浠诲姟宸插瓨鍦�"); - } - - String originSite = param.getOriginSite(); - if (Cools.isEmpty(param.getOriginSite())) { - //浣跨敤WCS绯荤粺鍐呯疆璺緞 - BasConveyorPath path = basConveyorPathService.getOne(new LambdaQueryWrapper<BasConveyorPath>() - .eq(BasConveyorPath::getTypeNo, taskCtg.getId()) - .eq(BasConveyorPath::getHostId, hostId) - .eq(BasConveyorPath::getStnNo, param.getDestSite())); - if(path == null) { - return R.error("鍐呯疆璺緞涓嶅瓨鍦�"); - } - Integer deviceNo = path.getDeviceNo();//鑾峰彇鎻愬崌鏈哄彿 - BasLift basLift = basLiftService.getOne(new LambdaQueryWrapper<BasLift>().eq(BasLift::getLiftNo, deviceNo).eq(BasLift::getHostId, hostId)); - if(basLift == null) { - return R.error("鎻愬崌鏈哄璞′笉瀛樺湪"); - } - List<BasLiftStaDto> staList = JSON.parseArray(basLift.getSta(), BasLiftStaDto.class); - BasLiftStaDto originStaDto = null; - for (BasLiftStaDto sta : staList) { - if (sta.getLev() == Utils.getLev(param.getOriginLoc())) { - originStaDto = sta; - break; - } - } - - if (originStaDto == null) { - return R.error("婧愮珯涓嶅瓨鍦�"); - } - - originSite = String.valueOf(originStaDto.getStaNo()); - } - - //鍒ゆ柇鍑哄叆搴撴ā寮� - BasConveyorSta basConveyorSta = basConveyorStaService.getOne(new LambdaQueryWrapper<BasConveyorSta>() - .eq(BasConveyorSta::getSiteNo, originSite)); - if (!basConveyorSta.getWorkMode().equals((int) WorkModeType.PAKOUT_MODE.id)) { - //涓嶆槸鍑哄簱妯″紡锛屾娴嬫槸鍚﹀彲鍒囨崲鍑哄簱 - //鑾峰彇鍏ュ簱浠诲姟绫诲瀷 - TaskCtg taskInCtg = taskCtgService.getOne(new LambdaQueryWrapper<TaskCtg>() - .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) - .eq(TaskCtg::getStatus, 1)); - if (taskInCtg == null) { - return R.error("浠诲姟绫诲瀷寮傚父"); - } - List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() - .eq(Task::getTaskCtg, taskInCtg.getId())); - if (!tasks.isEmpty()) { - return R.error("褰撳墠瀛樺湪鍏ュ簱浠诲姟锛屾棤娉曞垏鎹㈠嚭搴撴ā寮�"); - } - - BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo())); - if(basConveyor == null) { - return R.error("杈撻�佺嚎涓嶅瓨鍦�"); - } - - DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); - if(devpThread == null) { - return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�"); - } - - boolean result = devpThread.switchWorkMode(Integer.parseInt(originSite), WorkModeType.PAKOUT_MODE.id); - if (!result) { - return R.error("妯″紡鍒囨崲澶辫触"); - } - } - - //浼樺厛绾� - Integer priority = 10; - if (param.getPriority() != null) { - priority = param.getPriority(); - } - - Task task = new Task(); - task.setUuid(String.valueOf(snowflakeIdWorker.nextId())); - task.setTaskNo(String.valueOf(Utils.getTaskNo("OUT"))); - task.setWmsTaskNo(param.getTaskNo()); - task.setTaskSts(TaskStsType.NEW_OUTBOUND.sts); - task.setTaskCtg(taskCtg.getId()); - task.setPriority(priority); - task.setOriginSite(originSite); - task.setOriginLoc(param.getOriginLoc()); - task.setDestSite(param.getDestSite()); - task.setDestLoc(null); - task.setIoTime(new Date()); - task.setStartTime(new Date()); - task.setStatus(1); - task.setMemo(param.getEndSite()); - task.setShuttleNo(null);//绛夊緟涓荤嚎绋嬪垎閰嶅皬杞� - task.setRecordLoc("Y");//璁板綍搴撳瓨淇℃伅 - task.setHostId(hostId);//涓存椂鎺у埗鍙厑璁竓ost涓�1 - task.setZpallet(param.getZpallet()); - - boolean result = taskService.save(task); - if (!result) { - return R.error("鐢熸垚鍑哄簱浠诲姟澶辫触锛�"); - } - return R.ok(); + return openService.createOutTask(param); } //鐢熸垚鎵嬪姩鍙栨斁璐т换鍔� @@ -923,11 +485,6 @@ return R.error("妯″紡鍒囨崲澶辫触"); } return R.ok(); - } - - public static void main(String[] args) { - String wmStoWCSLocNo = getWMStoWCSLocNo("0601KW010101"); - System.out.println(wmStoWCSLocNo); } } -- Gitblit v1.9.1