From 77ab0bff6c81109f2b8f8353d08e625abbcc4b8b Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期五, 30 八月 2024 10:56:45 +0800 Subject: [PATCH] #缓存队列bug fixed --- zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/OpenServiceImpl.java | 165 ++++++++++++++++++++++++++++++++---------------------- 1 files changed, 98 insertions(+), 67 deletions(-) diff --git a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/OpenServiceImpl.java b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/OpenServiceImpl.java index 3dd8255..970c736 100644 --- a/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/OpenServiceImpl.java +++ b/zy-asrs-wcs/src/main/java/com/zy/asrs/wcs/core/service/impl/OpenServiceImpl.java @@ -7,6 +7,7 @@ import com.zy.asrs.framework.common.Cools; import com.zy.asrs.framework.common.R; import com.zy.asrs.framework.common.SnowflakeIdWorker; +import com.zy.asrs.framework.exception.CoolException; import com.zy.asrs.wcs.core.domain.dto.BasLiftStaDto; import com.zy.asrs.wcs.core.domain.param.AgvTaskCreateParam; import com.zy.asrs.wcs.core.domain.param.CreateInTaskParam; @@ -26,6 +27,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.*; @@ -56,20 +58,21 @@ @Override + @Transactional public R createInTask(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("浠诲姟绫诲瀷寮傚父"); + throw new CoolException("浠诲姟绫诲瀷寮傚父"); } Long hostId = 1L;//榛樿涓讳粨搴� Loc loc = locService.selectByLocNo(param.getDestLoc()); if (loc == null) { - return R.error("搴撲綅鍙蜂笉瀛樺湪"); + throw new CoolException("搴撲綅鍙蜂笉瀛樺湪"); } //鑾峰彇涓ユ牸妯″紡鍙傛暟 @@ -80,7 +83,7 @@ } if (mapStrict && !loc.getLocStsFlag().equals("O")) { - return R.error("搴撲綅鐘舵�佷笉婊¤冻鍏ュ簱鏉′欢"); + throw new CoolException("搴撲綅鐘舵�佷笉婊¤冻鍏ュ簱鏉′欢"); } Task one = taskService.getOne(new LambdaQueryWrapper<Task>() @@ -89,7 +92,7 @@ .eq(Task::getDestSite, param.getDestSite()) .eq(Task::getDestLoc, param.getDestLoc())); if (one != null) { - return R.error("浠诲姟宸插瓨鍦�"); + throw new CoolException("浠诲姟宸插瓨鍦�"); } String destSite = param.getDestSite(); @@ -100,7 +103,7 @@ .eq(BasConveyorPath::getHostId, hostId) .eq(BasConveyorPath::getStnNo, param.getOriginSite())); if(path == null) { - return R.error("鍐呯疆璺緞涓嶅瓨鍦�"); + throw new CoolException("鍐呯疆璺緞涓嶅瓨鍦�"); } destSite = String.valueOf(path.getDeviceStn()); } @@ -115,27 +118,27 @@ .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.OUT)) .eq(TaskCtg::getStatus, 1)); if (taskInCtg == null) { - return R.error("浠诲姟绫诲瀷寮傚父"); + throw new CoolException("浠诲姟绫诲瀷寮傚父"); } List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() .eq(Task::getTaskCtg, taskInCtg.getId())); if (!tasks.isEmpty()) { - return R.error("褰撳墠瀛樺湪鍑哄簱浠诲姟锛屾棤娉曞垏鎹㈠叆搴撴ā寮�"); + throw new CoolException("褰撳墠瀛樺湪鍑哄簱浠诲姟锛屾棤娉曞垏鎹㈠叆搴撴ā寮�"); } BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo())); if(basConveyor == null) { - return R.error("杈撻�佺嚎涓嶅瓨鍦�"); + throw new CoolException("杈撻�佺嚎涓嶅瓨鍦�"); } DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); if(devpThread == null) { - return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�"); + throw new CoolException("杈撻�佺嚎绾跨▼涓嶅瓨鍦�"); } boolean result = devpThread.switchWorkMode(Integer.parseInt(destSite), WorkModeType.PAKIN_MODE.id); if (!result) { - return R.error("妯″紡鍒囨崲澶辫触"); + throw new CoolException("妯″紡鍒囨崲澶辫触"); } } @@ -168,26 +171,27 @@ boolean result = taskService.save(task); if (!result) { - return R.error("鐢熸垚鍏ュ簱浠诲姟澶辫触锛�"); + throw new CoolException("鐢熸垚鍏ュ簱浠诲姟澶辫触锛�"); } return R.ok(); } @Override + @Transactional public R createOutTask(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("浠诲姟绫诲瀷寮傚父"); + throw new CoolException("浠诲姟绫诲瀷寮傚父"); } Long hostId = 1L;//榛樿涓讳粨搴� Loc loc = locService.selectByLocNo(param.getOriginLoc()); if (loc == null) { - return R.error("搴撲綅鍙蜂笉瀛樺湪"); + throw new CoolException("搴撲綅鍙蜂笉瀛樺湪"); } //鑾峰彇涓ユ牸妯″紡鍙傛暟 @@ -198,7 +202,7 @@ } if (mapStrict && !loc.getLocStsFlag().equals("F")) { - return R.error("搴撲綅鐘舵�佷笉婊¤冻鍑哄簱鏉′欢"); + throw new CoolException("搴撲綅鐘舵�佷笉婊¤冻鍑哄簱鏉′欢"); } Task one = taskService.getOne(new LambdaQueryWrapper<Task>() @@ -207,7 +211,7 @@ .eq(Task::getOriginLoc, param.getOriginLoc()) .eq(Task::getDestSite, param.getDestSite())); if (one != null) { - return R.error("浠诲姟宸插瓨鍦�"); + throw new CoolException("浠诲姟宸插瓨鍦�"); } String originSite = param.getOriginSite(); @@ -218,12 +222,12 @@ .eq(BasConveyorPath::getHostId, hostId) .eq(BasConveyorPath::getStnNo, param.getDestSite())); if(path == null) { - return R.error("鍐呯疆璺緞涓嶅瓨鍦�"); + throw new CoolException("鍐呯疆璺緞涓嶅瓨鍦�"); } 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("鎻愬崌鏈哄璞′笉瀛樺湪"); + throw new CoolException("鎻愬崌鏈哄璞′笉瀛樺湪"); } List<BasLiftStaDto> staList = JSON.parseArray(basLift.getSta(), BasLiftStaDto.class); BasLiftStaDto originStaDto = null; @@ -235,7 +239,7 @@ } if (originStaDto == null) { - return R.error("婧愮珯涓嶅瓨鍦�"); + throw new CoolException("婧愮珯涓嶅瓨鍦�"); } originSite = String.valueOf(originStaDto.getStaNo()); @@ -251,27 +255,27 @@ .eq(TaskCtg::getFlag, String.valueOf(TaskCtgType.IN)) .eq(TaskCtg::getStatus, 1)); if (taskInCtg == null) { - return R.error("浠诲姟绫诲瀷寮傚父"); + throw new CoolException("浠诲姟绫诲瀷寮傚父"); } List<Task> tasks = taskService.list(new LambdaQueryWrapper<Task>() .eq(Task::getTaskCtg, taskInCtg.getId())); if (!tasks.isEmpty()) { - return R.error("褰撳墠瀛樺湪鍏ュ簱浠诲姟锛屾棤娉曞垏鎹㈠嚭搴撴ā寮�"); + throw new CoolException("褰撳墠瀛樺湪鍏ュ簱浠诲姟锛屾棤娉曞垏鎹㈠嚭搴撴ā寮�"); } BasConveyor basConveyor = basConveyorService.getOne(new LambdaQueryWrapper<BasConveyor>().eq(BasConveyor::getConveyorNo, basConveyorSta.getConveyorNo())); if(basConveyor == null) { - return R.error("杈撻�佺嚎涓嶅瓨鍦�"); + throw new CoolException("杈撻�佺嚎涓嶅瓨鍦�"); } DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Conveyor, basConveyor.getDeviceId().intValue()); if(devpThread == null) { - return R.error("杈撻�佺嚎绾跨▼涓嶅瓨鍦�"); + throw new CoolException("杈撻�佺嚎绾跨▼涓嶅瓨鍦�"); } boolean result = devpThread.switchWorkMode(Integer.parseInt(originSite), WorkModeType.PAKOUT_MODE.id); if (!result) { - return R.error("妯″紡鍒囨崲澶辫触"); + throw new CoolException("妯″紡鍒囨崲澶辫触"); } } @@ -303,39 +307,18 @@ boolean result = taskService.save(task); if (!result) { - return R.error("鐢熸垚鍑哄簱浠诲姟澶辫触锛�"); + throw new CoolException("鐢熸垚鍑哄簱浠诲姟澶辫触锛�"); } return R.ok(); } @Override + @Transactional public HashMap<String, Object> executeWcsTaskCache(CreateWcsTaskParam param) { HashMap<String, Object> map = new HashMap<>(); 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()); @@ -347,26 +330,49 @@ R inTask = null; try { inTask = this.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()); + + 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; + } + } + }else { map.put("success", "0"); map.put("message", inTask.get("msg")); map.put("result", ""); map.put("requestPK", param.getRequestPK()); } + }catch (Exception e){ + map.put("success", "0"); + map.put("message", e.getMessage()); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + log.info("杩斿洖mes淇℃伅:" + JSONObject.toJSONString(map)); + return map; } } else if (param.getFrmPos().substring(0,6).equals(loc) && param.getToPos().substring(0,4).equals(sta)) { CreateOutTaskParam createOutTaskParam = new CreateOutTaskParam(); @@ -380,6 +386,44 @@ R outTask = null; try { outTask = this.createOutTask(createOutTaskParam); + + 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()); + + 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; + } + } + + }else { + map.put("success", "0"); + map.put("message", outTask.get("msg")); + map.put("result", ""); + map.put("requestPK", param.getRequestPK()); + } + }catch (Exception e){ map.put("success", "0"); map.put("message", "鐢熸垚浠诲姟鍑洪敊"); @@ -387,19 +431,6 @@ 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)) { -- Gitblit v1.9.1