From d1c8851434d354aeefb622272fb229291c383cd2 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期二, 29 七月 2025 15:39:54 +0800 Subject: [PATCH] #2期 --- src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 112 insertions(+), 0 deletions(-) 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 f81a2ea..caac500 100644 --- a/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MobileServiceImpl.java @@ -8,6 +8,7 @@ import com.core.exception.CoolException; import com.zy.asrs.entity.*; import com.zy.asrs.entity.param.*; +import com.zy.asrs.entity.vo.AgvSiteListVo; import com.zy.asrs.mapper.BasDevpMapper; import com.zy.asrs.mapper.ManLocDetlMapper; import com.zy.asrs.service.*; @@ -83,6 +84,8 @@ @Resource private BasDevpMapper basDevpMapper; + @Autowired + private AgvSiteService agvSiteService; @Override public R inLocCallAgv(String sta, String inSta) { @@ -222,6 +225,58 @@ } } return success ? R.ok("瑙g粦鎴愬姛") : R.parse(message); + } + + public boolean sendAgvTask(String org,String tar){ + + ForwardAGVTaskParam forwardAGVTaskParam = new ForwardAGVTaskParam(); + forwardAGVTaskParam.setReqCode(UUID.randomUUID().toString().replace("-", "")); + forwardAGVTaskParam.setClientCode("IWMS"); + forwardAGVTaskParam.setTaskTyp("GT3"); + forwardAGVTaskParam.setCtnrTyp("2"); + forwardAGVTaskParam.setPriority("1"); + List<ForwardAGVTaskParam.PositionCodePaths> positionCodePathsList = new ArrayList<>(); + positionCodePathsList.add(new ForwardAGVTaskParam.PositionCodePaths(org, "05")); + positionCodePathsList.add(new ForwardAGVTaskParam.PositionCodePaths(tar, "05")); + forwardAGVTaskParam.setPositionCodePath(positionCodePathsList); + + String body = JSON.toJSONString(forwardAGVTaskParam); + String response = ""; + String message = ""; + boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(ApiInterfaceConstant.AGV_IP) + .setPath(ApiInterfaceConstant.AGV_CALL_IN_PATH) + .setJson(body) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + if (jsonObject.getInteger("code").equals(0)) { + success = true; + } else { + + log.error("鍛煎彨agv澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_CALL_IN_PATH, body, response); + } + } catch (Exception e) { + log.error("鍏ュ簱鍛煎彨agv寮傚父", e); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鍏ュ簱鍛煎彨agv", + ApiInterfaceConstant.AGV_IP + ApiInterfaceConstant.AGV_CALL_IN_PATH, + null, + "127.0.0.1", + body, + response, + success + ); + } catch (Exception e) { + log.error("", e); + } + } + return success; } private boolean bindPodAndBerth(String sta) { @@ -1223,6 +1278,63 @@ } + @Override + public R siteList() { + List<AgvSite> agvSites = agvSiteService.selectList(new EntityWrapper<AgvSite>().eq("status", 1)); + ArrayList<AgvSiteListVo> agvSiteListVos = new ArrayList<>(); + for (AgvSite agvSite : agvSites) { + AgvSiteListVo agvSiteListVo = new AgvSiteListVo(); + agvSiteListVo.setAgvSite(agvSite); + if (Cools.isEmpty(agvSite.getWorkNo())){ + continue; + } + WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", agvSite.getWorkNo())); + if (null == wrkMast){ + continue; + } + List<WrkDetl> wrkDetls = wrkDetlService.selectList(new EntityWrapper<WrkDetl>().eq("wrk_no", agvSite.getWorkNo())); + agvSiteListVo.setWrkDetls(wrkDetls); + agvSiteListVos.add(agvSiteListVo); + } + return R.ok(agvSiteListVos); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public R lineCall(Map<String, Object> map) { + String orgSite = map.get("orgSite").toString(); + String tarSite = map.get("tarSite").toString(); + if (Cools.isEmpty(orgSite) || Cools.isEmpty(tarSite)) { + return R.error("鏁版嵁涓虹┖"); + } + AgvSite orgAgvSite = agvSiteService.selectOne(new EntityWrapper<AgvSite>().eq("name", orgSite)); + + AgvSite tarAgvSite = agvSiteService.selectOne(new EntityWrapper<AgvSite>().eq("name", tarSite)); + if (Cools.isEmpty(orgAgvSite) || Cools.isEmpty(tarAgvSite)) { + return R.error("绔欑偣鏁版嵁閿欒"); + } + + //鏇存柊tar绔欑偣鐘舵�� + tarAgvSite.setWorkNo(orgAgvSite.getWorkNo()); + tarAgvSite.setStatus(2); + if (!agvSiteService.updateById(tarAgvSite)){ + throw new CoolException("鍙枡绔欐洿鏂板け璐�"); + } + //鏇存柊org绔欑偣鐘舵�� + orgAgvSite.setStatus(2); + if (!agvSiteService.updateById(orgAgvSite)){ + throw new CoolException("婧愮珯鏇存柊澶辫触"); + } + + //鍛煎彨agv +// boolean success = sendAgvTask(orgSite, tarSite); +// if (!success){ +// throw new CoolException("鍛煎彨agv澶辫触"); +// } + + return R.ok(); + } + public void uploadErp(InventoryErpParam param){ String response = ""; boolean success = false; -- Gitblit v1.9.1