From 1365b4833632f2d1c5fb346cd700e2e998010db6 Mon Sep 17 00:00:00 2001 From: zyx <zyx123456> Date: 星期三, 27 三月 2024 17:02:01 +0800 Subject: [PATCH] 回调任务更新 --- src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java | 2 src/main/java/com/zy/asrs/entity/param/AgvTaskCallBackParam.java | 38 ++------- src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java | 8 +- src/main/java/com/zy/asrs/controller/AgvOpenController.java | 135 ++++----------------------------- src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java | 8 + src/main/java/com/zy/common/web/WcsController.java | 4 src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java | 3 src/main/java/com/zy/asrs/service/AgvBasDevpService.java | 3 8 files changed, 48 insertions(+), 153 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/AgvOpenController.java b/src/main/java/com/zy/asrs/controller/AgvOpenController.java index ca81a11..18346cb 100644 --- a/src/main/java/com/zy/asrs/controller/AgvOpenController.java +++ b/src/main/java/com/zy/asrs/controller/AgvOpenController.java @@ -72,22 +72,22 @@ //save api log (appkey 鍚庣画娣诲姞) AppAuthUtil.auth("",param, request); - int wrkNo = Integer.parseInt(param.getTaskCode()); + int wrkNo = Integer.parseInt(param.getReqCode()); if(wrkNo < 0){ wrkNo = -wrkNo; } AgvWrkMast agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("wrk_no", wrkNo)); if(Cools.isEmpty(agvWrkMast)){ - agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",param.getContainerCode())); + agvWrkMast = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("barcode",param.getPodCode())); if (Cools.isEmpty(agvWrkMast)){ return R.error("浠诲姟缂栧彿閿欒"); } } - AgvTask agvTask = AgvTask.valueOf(param.getEventType()); + AgvTask agvTask = AgvTask.valueOf(param.getMethod()); Class<AgvTask> clz = AgvTask.class; try { - Method method = clz.getDeclaredMethod(param.getStatus(), AgvWrkMast.class, AgvTaskCallBackParam.class); + Method method = clz.getDeclaredMethod("success", AgvWrkMast.class, AgvTaskCallBackParam.class); method.invoke(agvTask,agvWrkMast,param); } catch (NoSuchMethodException e) { return R.error("浠诲姟鐘舵�乻tatus鍙傛暟鏈夎"); @@ -114,14 +114,12 @@ /** * 涓婃姤浠诲姟鐘舵�� */ - task{ + end{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负205.宸ヤ綔瀹屾垚 agvWrkMast.setWrkSts(205L); - if(param.getLocationCode().contains("@")){ - agvWrkMast.setLocNo(param.getLocationCode()); - } + //agvWrkMast.setLocNo(param.getLocationCode()); agvWrkMastService.updateById(agvWrkMast); //agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),205); @@ -129,83 +127,47 @@ //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱 if(agvWrkMast.getIoType() == 101 || agvWrkMast.getIoType() == 103 || agvWrkMast.getIoType() == 107){ //淇敼鍑哄簱绔欑偣鐘舵�� - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); } //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱 if(agvWrkMast.getIoType() == 110){ - agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getLocNo(),"F",agvWrkMast.getBarcode(),agvWrkMast.getWhsType().shortValue()); } - } - - public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - } }, /** * 涓婃姤浠诲姟鍒嗛厤缁欐満鍣ㄤ汉 */ - task_allocated{ + start{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } - public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } }, /** * 涓婃姤鍙栫鐘舵�� */ - tote_load{ + outbin{ @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",""); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(agvWrkMast.getSourceLocNo(),"O","",null); } //淇敼AGV宸ヤ綔妗g殑宸ヤ綔鐘舵�佷负203.RCS鏀捐揣涓� agvWrkMastService.updateWrkStsByWrkNo(agvWrkMast.getWrkNo(),203); - - } - public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } }, /** * 涓婃姤鏀剧鐘舵�� */ - tote_unload{ + cancel{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { //淇敼宸ヤ綔妗g姸鎬佷负204.鏀捐揣瀹屾垚 @@ -216,81 +178,22 @@ } - public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } }, - robot_reach{ + apply{ @Transactional public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - }, - weight{ - @Transactional - public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - }, - rfid{ - @Transactional - public void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { - - } - - public void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param) { } }; //浠诲姟鐘舵�佷负鎴愬姛 public abstract void success(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); - //浠诲姟鐘舵�佷负澶辫触 - public abstract void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); - //浠诲姟鐘舵�佷负鍙栨秷 - public abstract void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); - //浠诲姟鐘舵�佷负鎸傝捣 - public abstract void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); +// //浠诲姟鐘舵�佷负澶辫触 +// public abstract void fail(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); +// //浠诲姟鐘舵�佷负鍙栨秷 +// public abstract void cancel(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); +// //浠诲姟鐘舵�佷负鎸傝捣 +// public abstract void suspend(AgvWrkMast agvWrkMast, AgvTaskCallBackParam param); @Setter AgvBasDevpService agvBasDevpService; diff --git a/src/main/java/com/zy/asrs/entity/param/AgvTaskCallBackParam.java b/src/main/java/com/zy/asrs/entity/param/AgvTaskCallBackParam.java index 70507b9..4943f7d 100644 --- a/src/main/java/com/zy/asrs/entity/param/AgvTaskCallBackParam.java +++ b/src/main/java/com/zy/asrs/entity/param/AgvTaskCallBackParam.java @@ -3,45 +3,27 @@ import lombok.Data; import java.io.Serializable; -import java.util.List; @Data public class AgvTaskCallBackParam implements Serializable { private static final long serialVersionUID = 1L; - //涓氬姟浠诲姟鍙� - private String taskCode; - - //涓婃姤浜嬩欢绫诲瀷 - private String eventType; + //璇锋眰缂栧彿 + private String reqCode; //浠诲姟鐘舵�� - private String status; + private String method; - //鏈哄櫒浜虹紪鐮� + //AGV缂栧彿 private String robotCode; - //瀹瑰櫒缂栫爜 - private String containerCode; + //璐ф灦缂栧彿 + private String podCode; - //宸ヤ綔浣嶇紪鐮� - private String locationCode; + //褰撳墠浣嶇疆缂栧彿 + private String currentPositionCode; - //宸ヤ綔绔欑紪鐮� - private String stationCode; + //宸ヤ綔浣� + private String wbCode; - //鎻忚堪淇℃伅锛屾弿杩板紓甯稿師鍥�/鎸傝捣鍘熷洜绛� - private String message; - - //搴撲綅鏄惁鏈夊鍣紝鐩樼偣浠诲姟鎵嶄細杩斿洖璇ュ�� - private boolean isLocationHasContainer; - - //鑳岀瘬灞傚彿锛屼粠 0 灞傚紑濮嬶紝浠庝笅寰�涓婄紪鍙枫��64 琛ㄧず鏀惧湪浜嗚揣鍙変笂 - private int trayLevel; - - //閲嶉噺锛屽崟浣嶄负 g锛屼粎闄愪簬閲嶉噺鐩樼偣 - private int weight; - - //rfid 鐩樼偣淇℃伅锛屼粎闄愪簬 rfid 鐩樼偣 - private List<String> rfidInfo; } diff --git a/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java b/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java index 660e611..f2aee4b 100644 --- a/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java +++ b/src/main/java/com/zy/asrs/mapper/AgvBasDevpMapper.java @@ -24,6 +24,9 @@ @Select("select station_code from agv_bas_devp where cache_shelves = 'N' and in_enable = 'Y' group by station_code") List<String> selectCacheShelvesStationCodeByFloor(@Param("floor") int floor); + @Select("select dev_no from agv_bas_devp where loc_type1 = #{locType}") + List<String> selectCacheShelvesStationCodeByLocType(@Param("locType") Short locType); + @Select("SELECT\n" + "\tbas.dev_no,\n" + "\tCOUNT ( mast.loc_no ) AS num \n" + diff --git a/src/main/java/com/zy/asrs/service/AgvBasDevpService.java b/src/main/java/com/zy/asrs/service/AgvBasDevpService.java index a4aea20..a55f78e 100644 --- a/src/main/java/com/zy/asrs/service/AgvBasDevpService.java +++ b/src/main/java/com/zy/asrs/service/AgvBasDevpService.java @@ -12,7 +12,7 @@ public void initBasDevp(); - public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode); + public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode, Short containerType); public Map<String, Object> getAgvBasDevpDtoByStationCode(String stationCode); @@ -25,6 +25,7 @@ List<AgvBasDevp> getBasDevpByNoCacheShelves(); List<String> selectCacheShelvesStationCodeByFloor(int floor); + List<String> selectCacheShelvesStationCodeByLocType(short locType); public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode); diff --git a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java index 28ed908..0a2aceb 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvBasDevpServiceImpl.java @@ -84,11 +84,12 @@ return agvBasDevp; } - public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode){ + public void updateLocStsAndBarcodeByDevNo(String devNo, String locSts, String barcode, Short containerType){ AgvBasDevp agvBasDevp = this.selectById(devNo); agvBasDevp.setLocSts(locSts); agvBasDevp.setBarcode(barcode); + agvBasDevp.setLocType2(containerType); this.updateById(agvBasDevp); } @@ -263,6 +264,11 @@ return this.baseMapper.selectCacheShelvesStationCodeByFloor(floor); } + @Override + public List<String> selectCacheShelvesStationCodeByLocType(short locType) { + return this.baseMapper.selectCacheShelvesStationCodeByLocType(locType); + } + public List<Map<String,Object>> selectDevNoAndNumBystationCode(String stationCode){ return this.baseMapper.selectDevNoAndNumBystationCode(stationCode); } diff --git a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java index 400261b..40fc577 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvLocDetlServiceImpl.java @@ -93,7 +93,7 @@ //褰撳墠搴撲綅鎵�澶勬ゼ灞� int floor = Integer.parseInt(agvLocDetl.getLocNo().split("@")[1]); //locDto.setAgvStaNos(queryAgvStaNosByFloor(floor)); - locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByFloor(floor)); + locDto.setAgvStaNos(agvBasDevpService.selectCacheShelvesStationCodeByLocType(agvLocMast.getLocType1())); locDtoList.add(locDto); issued -= anfme; diff --git a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java index feacc9d..97265c2 100644 --- a/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/AgvWorkServiceImpl.java @@ -548,11 +548,11 @@ //鍑哄簱浠诲姟 101.鍑哄簱 || 103.鎷f枡鍑哄簱 || 107.鐩樼偣鍑哄簱 if(wrkMast.getIoType() == 101 || wrkMast.getIoType() == 103 || wrkMast.getIoType() == 107){ //淇敼鍑哄簱绔欑偣鐘舵�� - agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); } //鍑哄簱浠诲姟 110.绌烘澘鍑哄簱 if(wrkMast.getIoType() == 110){ - agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(wrkMast.getLocNo(),"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); } } @@ -575,7 +575,7 @@ //鐩爣搴撲綅 String locNo = wrkMast.getLocNo(); agvLocMastService.updateLocStsByLocNo(locNo,"O","",null); - agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode()); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"F",wrkMast.getBarcode(),wrkMast.getWhsType().shortValue()); //鍑哄簱鍙栨秷 }else { @@ -585,7 +585,7 @@ String devNo = wrkMast.getLocNo(); agvLocMastService.updateLocStsByLocNo(locNo,"F",wrkMast.getBarcode(),(short)getContainerTypeByloc(locNo)); if(devNo.contains("@")){ - agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O",""); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(devNo,"O","",null); } } diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java index fc8ca3a..e820586 100644 --- a/src/main/java/com/zy/common/web/WcsController.java +++ b/src/main/java/com/zy/common/web/WcsController.java @@ -595,7 +595,7 @@ //鎷f枡銆佺洏鐐瑰畬鎴愪换鍔� if(!Cools.isEmpty(agvWrkMast) && (agvWrkMast.getIoType() == 103 || agvWrkMast.getIoType() == 107) && agvWrkMast.getWrkSts() == 205){ //缁戝畾绔欑偣 - agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode,agvWrkMast.getWhsType().shortValue()); //鐢熸垚鎷f枡銆佺洏鐐瑰啀鍏ュ簱浠诲姟 List<AgvWrkMast> agvWrkMastList = new ArrayList<>(); @@ -610,7 +610,7 @@ //鍏ュ簱浠诲姟 if (!Cools.isEmpty(agvWaitPakinService.selectByContainerCode(containerCode))){ //缁戝畾绔欑偣 - agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode); + agvBasDevpService.updateLocStsAndBarcodeByDevNo(param.getDevNo(),"F",containerCode,agvWrkMast.getWhsType().shortValue()); //鐢熸垚宸ヤ綔妗� List<AgvBasDevp> agvBasDevpList = agvBasDevpService.selectList(new EntityWrapper<AgvBasDevp>().eq("dev_no", param.getDevNo())); agvWorkService.createWaitPainWrkMastStart(agvBasDevpList, null, true); -- Gitblit v1.9.1