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