From aa3476e8ff45d168f0bb9376ed3a114610a65f12 Mon Sep 17 00:00:00 2001 From: zhangc <zc@123> Date: 星期三, 25 十二月 2024 08:39:12 +0800 Subject: [PATCH] 添加工厂判断逻辑及优化库位查找 --- src/main/java/com/zy/asrs/controller/AgvOpenController.java | 126 +++++++++++++++++++++++++++++++---------- 1 files changed, 94 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java index 538b55c..66ecba6 100644 --- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java +++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java @@ -6,7 +6,10 @@ import com.core.annotations.AppAuth; import com.core.common.Cools; import com.core.common.R; +import com.zy.asrs.entity.AgvBasDevp; +import com.zy.asrs.entity.AgvLocMast; import com.zy.asrs.entity.AgvWrkMast; +import com.zy.asrs.entity.WrkMastExecute; import com.zy.asrs.entity.param.AgvTaskCallBackParam; import com.zy.asrs.service.*; import com.zy.asrs.utils.AppAuthUtil; @@ -25,6 +28,7 @@ import javax.servlet.http.HttpServletRequest; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; +import java.util.Date; import java.util.EnumSet; import java.util.Map; @@ -53,23 +57,21 @@ AgvWrkMastService agvWrkMastService; @Autowired ApiLogService apiLogService; + @Autowired + private WrkMastExecuteService wrkMastExecuteService; + @Autowired + private AgvBasDevpService agvBasDevpService; @PostMapping("/task/event/status") @AppAuth(memo = "ESS浠诲姟鍥炶皟") public R taskEventStaus(@RequestBody AgvTaskCallBackParam param, HttpServletRequest request){ - apiLogService.save( - "ESS浠诲姟鍥炶皟", - "/phyzwms/agv/task/event/status", - null, - null, - JSON.toJSONString(JSONObject.toJSONString(param)), - null, - true - ); + //save api log (appkey 鍚庣画娣诲姞) + + R r = new R(0, "鎴愬姛"); AppAuthUtil.auth("",param, request); int wrkNo = Integer.parseInt(param.getTaskCode()); @@ -80,36 +82,83 @@ if(Cools.isEmpty(agvWrkMast)){ agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",param.getPodCode())); if (Cools.isEmpty(agvWrkMast)){ - return R.error("浠诲姟缂栧彿閿欒"); + r = R.error("浠诲姟缂栧彿閿欒"); + logPost(param,JSONObject.toJSONString(r),false); + return r; } } + if (agvWrkMast.getIoType().equals(121)){ + try{ + if (agvWrkMast.getWrkSts().equals(12L)){ + WrkMastExecute wrkMastExecute = wrkMastExecuteService.selectOne(new EntityWrapper<WrkMastExecute>().eq("wrk_no", wrkNo)); + if (Cools.isEmpty(wrkMastExecute) || wrkMastExecute.getWrkSts()!=1){ + r = R.error("浠诲姟鐘舵�乄rkSts鍙傛暟鏈夎,WrkSts:"+wrkMastExecute.getWrkSts$()); + logPost(param,"浠诲姟鐘舵�乄rkSts鍙傛暟鏈夎,WrkSts:"+wrkMastExecute.getWrkSts$()+JSONObject.toJSONString(r),false); + return r; + } else { + wrkMastExecute.setWrkSts(wrkMastExecute.getWrkStsCode()); + wrkMastExecuteService.updateById(wrkMastExecute); + } + }else { + r = R.error("浠诲姟寮傚父"); + logPost(param,JSONObject.toJSONString(r),false); - if(agvWrkMast.getWrkSts() >= 205){ - return R.error("褰撳墠浠诲姟宸插畬鎴�"); - } + return r; + } + }catch (Exception e){ + r = R.error(""+e.getMessage()); + logPost(param,JSONObject.toJSONString(r),false); + return r; + } + }else { + if(agvWrkMast.getWrkSts() >= 205){ + r = R.error("褰撳墠浠诲姟宸插畬鎴�"); + logPost(param,JSONObject.toJSONString(r),false); + return r; + } - AgvTask agvTask = AgvTask.valueOf(param.getMethod()); - Class<AgvTask> clz = AgvTask.class; - try { - Method method = clz.getDeclaredMethod("success", AgvWrkMast.class, AgvTaskCallBackParam.class); - method.invoke(agvTask,agvWrkMast,param); - } catch (NoSuchMethodException e) { - return R.error("浠诲姟鐘舵�乻tatus鍙傛暟鏈夎"); - } catch (InvocationTargetException e) { - log.error(e.getMessage()); - return R.error(); - } catch (IllegalAccessException e) { - log.error(e.getMessage()); - return R.error(); + AgvTask agvTask = AgvTask.valueOf(param.getMethod()); + Class<AgvTask> clz = AgvTask.class; + try { + Method method = clz.getDeclaredMethod("success", AgvWrkMast.class, AgvTaskCallBackParam.class); + method.invoke(agvTask,agvWrkMast,param); + } catch (NoSuchMethodException e) { + r = R.error("浠诲姟鐘舵�乻tatus鍙傛暟鏈夎"); + logPost(param,JSONObject.toJSONString(r),false); + return r; + } catch (InvocationTargetException e) { + log.error(e.getMessage()); + r = R.error(""+e.getMessage()); + logPost(param,JSONObject.toJSONString(r),false); + return r; + } catch (IllegalAccessException e) { + log.error(e.getMessage()); + r = R.error(""+e.getMessage()); + logPost(param,JSONObject.toJSONString(r),false); + return r; + } } - return R.ok(); + logPost(param,JSONObject.toJSONString(r),true); + return r; } @PostMapping("/conveyor/loadContainerFinish ") - @AppAuth(memo = "鍙栧鍣ㄥ畬鎴愰�氱煡") + @AppAuth(memo = "鍙栬揣鏋跺畬鎴愰�氱煡") public R loadContainerFinish(@RequestBody Map<String,Object> params){ return R.ok(); + } + + private void logPost( AgvTaskCallBackParam param,String response,boolean success){ + apiLogService.save( + "ESS浠诲姟鍥炶皟", + "/phyzwms/agv/task/event/status", + null, + null, + JSON.toJSONString(JSONObject.toJSONString(param)), + response, + success + ); } } @@ -134,6 +183,7 @@ agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); agvWrkMast.setWrkSts(206L); } + agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); } }, @@ -145,6 +195,7 @@ public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.浠诲姟寮�濮� agvWrkMast.setWrkSts(203L); + agvWrkMast.setModiTime(new Date()); agvWrkMastService.updateById(agvWrkMast); } }, @@ -155,11 +206,22 @@ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - //鍏ュ簱浠诲姟 || 鎷f枡鍏ュ簱浠诲姟 ||鐩樼偣鍐嶅叆搴� ||绌烘澘鍏ュ簱 - if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){ - //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜 - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null); + switch(agvWrkMast.getIoType()) { + //鍏ュ簱浠诲姟 + case 1: + // 绌烘澘鍏ュ簱 + case 10: + // 鎷f枡鍏ュ簱浠诲姟 + case 53: + // 鐩樼偣鍐嶅叆搴� + case 57: + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null); + break; } + //if(agvWrkMast.getIoType() == 1 || agvWrkMast.getIoType() == 53 || agvWrkMast.getIoType() == 57 || agvWrkMast.getIoType() == 10){ + // //淇敼婧愮珯鐐圭姸鎬佷负O.绌猴紝浠ュ強瑙g粦鎵樼洏鏉$爜 + // agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null); + //} //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.RCS鏀捐揣涓� agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),204); -- Gitblit v1.9.1