From 6cfcb307f01b9550b6cd67321f2c1db345b4da19 Mon Sep 17 00:00:00 2001
From: zhangc <zc@123>
Date: 星期一, 13 一月 2025 16:07:21 +0800
Subject: [PATCH] 优化自动移库逻辑及调拨信息上报

---
 src/main/java/com/zy/common/service/AgvCommonService.java   |    6 
 src/main/java/com/zy/asrs/task/AutoMoveScheduler.java       |   30 +++---
 src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java |  232 +++++++++++++++++++++++-----------------------
 3 files changed, 134 insertions(+), 134 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
index 74828c9..2941e89 100644
--- a/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
+++ b/src/main/java/com/zy/asrs/task/AutoMoveScheduler.java
@@ -44,21 +44,21 @@
 
     // 璋冩嫧鍑哄簱
 //    @Scheduled(cron = "0/2 * * * * ? ")
-    private void execute(){
-        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
-                new EntityWrapper<AgvLocMast>()
-                        .isNotNull("loc_type")
-                        .ne("loc_type", "")
-                        .eq("floor", 1)
-                        .eq("loc_sts","F"));
-        if (agvLocMasts.isEmpty()) {
-            return;
-        }
-        for (AgvLocMast agvLocMast : agvLocMasts) {
-            ReturnT<String> returnT = autoMoveHandler.start(agvLocMast);
-        }
-
-    }
+//    private void execute(){
+//        List<AgvLocMast> agvLocMasts = agvLocMastService.selectList(
+//                new EntityWrapper<AgvLocMast>()
+//                        .isNotNull("loc_type")
+//                        .ne("loc_type", "")
+//                        .eq("floor", 1)
+//                        .eq("loc_sts","F"));
+//        if (agvLocMasts.isEmpty()) {
+//            return;
+//        }
+//        for (AgvLocMast agvLocMast : agvLocMasts) {
+//            ReturnT<String> returnT = autoMoveHandler.start(agvLocMast);
+//        }
+//
+//    }
 
     /**
      * 鑷姩璋冩嫧浠诲姟锛屼粠1妤艰皟鎷ㄥ埌2妤硷紝3妤�
diff --git a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
index 0dbdc53..036acb0 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoMoveHandler.java
@@ -35,15 +35,15 @@
     @Autowired
     AgvBasDevpService agvBasDevpService;
 
-    public ReturnT<String> start(AgvLocMast agvLocMast) {
-        // locType 1. 鑷姩锛� 2. 鎵嬪姩
-        if (agvLocMast.getLocType().equals("1")) {
-            return doAutoMove(agvLocMast);
-        } else if (agvLocMast.getLocType().equals("2")) {
-            return doHandMove(agvLocMast);
-        }
-        return SUCCESS;
-    }
+//    public ReturnT<String> start(AgvLocMast agvLocMast) {
+//        // locType 1. 鑷姩锛� 2. 鎵嬪姩
+//        if (agvLocMast.getLocType().equals("1")) {
+//            return doAutoMove(agvLocMast);
+//        } else if (agvLocMast.getLocType().equals("2")) {
+//            return doHandMove(agvLocMast);
+//        }
+//        return SUCCESS;
+//    }
 
     public ReturnT<String> start2(AgvWrkMast agvWrkMast) {
         // locType 1. 鑷姩锛� 2. 鎵嬪姩
@@ -62,66 +62,66 @@
         return SUCCESS;
     }
     //鏍规嵁搴撲綅鐨刲octype鍊煎彂閫佷换鍔�--寮冪敤
-    private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
-        Date now = new Date();
-        //鏌ヨ宸ヤ綔妗�
-        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
-        if(!Cools.isEmpty(agvWrkMast)){
-            throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
-        }
-        //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-        AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3(),false,true);
-        //鐢熸垚宸ヤ綔妗�
-        AgvWrkMast mast = new AgvWrkMast();
-        //宸ヤ綔鐘舵��
-        mast.setWrkSts(201L);
-        //鍏ュ嚭搴撶被鍨�
-        mast.setIoType(108);
-        mast.setIoTime(now);
-        //浼樺厛绾�
-        mast.setIoPri(300.0);
-        //婧愮珯鐐�
-        mast.setSourceLocNo(agvLocMast.getLocNo());
-        //鐩爣绔欑偣
-        mast.setLocNo(LocMast.getLocNo());
-        //璐ф灦缂栫爜
-        mast.setBarcode(agvLocMast.getBarcode());
-        //璐ф灦绫诲瀷
-        mast.setWhsType(30);
-
-        mast.setAppeUser(9527L);
-        mast.setAppeTime(now);
-        mast.setModiUser(9527L);
-        mast.setModiTime(now);
-        mast.setLogErrMemo("doAutoMove");
-        if (!agvWrkMastService.insertByIncrease(mast)) {
-            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-        }
-
-        AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
-        //鐢熸垚宸ヤ綔妗f槑缁�
-        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
-        agvLocDetls.forEach(agvLocDetl -> {
-            AgvWrkDetl wrkDetl = new AgvWrkDetl();
-            wrkDetl.setWrkNo(mast1.getWrkNo());
-            wrkDetl.sync(agvLocDetl);
-            wrkDetl.setSpecs("1-" + agvLocMast.getLocType3());
-            wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
-            wrkDetl.setIoTime(now);
-            wrkDetl.setAppeUser(9527L);
-            wrkDetl.setAppeTime(now);
-            wrkDetl.setModiUser(9527L);
-            wrkDetl.setModiTime(now);
-            if (!agvWrkDetlService.insert(wrkDetl)) {
-                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
-            }
-        });
-        //鏇存柊鐩爣搴撲綅鐘舵��
-        updateAgvLocMast(agvLocMast,"R");
-        updateAgvLocMast(LocMast,"S");
-
-        return SUCCESS;
-    }
+//    private ReturnT<String> doAutoMove(AgvLocMast agvLocMast) {
+//        Date now = new Date();
+//        //鏌ヨ宸ヤ綔妗�
+//        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+//        if(!Cools.isEmpty(agvWrkMast)){
+//            throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+//        }
+//        //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+//        AgvLocMast LocMast = agvCommonService.getLocNo(3,agvLocMast.getLocType3(),false,true);
+//        //鐢熸垚宸ヤ綔妗�
+//        AgvWrkMast mast = new AgvWrkMast();
+//        //宸ヤ綔鐘舵��
+//        mast.setWrkSts(201L);
+//        //鍏ュ嚭搴撶被鍨�
+//        mast.setIoType(108);
+//        mast.setIoTime(now);
+//        //浼樺厛绾�
+//        mast.setIoPri(300.0);
+//        //婧愮珯鐐�
+//        mast.setSourceLocNo(agvLocMast.getLocNo());
+//        //鐩爣绔欑偣
+//        mast.setLocNo(LocMast.getLocNo());
+//        //璐ф灦缂栫爜
+//        mast.setBarcode(agvLocMast.getBarcode());
+//        //璐ф灦绫诲瀷
+//        mast.setWhsType(30);
+//
+//        mast.setAppeUser(9527L);
+//        mast.setAppeTime(now);
+//        mast.setModiUser(9527L);
+//        mast.setModiTime(now);
+//        mast.setLogErrMemo("doAutoMove");
+//        if (!agvWrkMastService.insertByIncrease(mast)) {
+//            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+//        }
+//
+//        AgvWrkMast mast1 = agvWrkMastService.selectOne(new EntityWrapper<AgvWrkMast>().eq("loc_no", LocMast.getLocNo()).eq("source_loc_no",agvLocMast.getLocNo()));
+//        //鐢熸垚宸ヤ綔妗f槑缁�
+//        List<AgvLocDetl> agvLocDetls = agvLocDetlService.selectList(new EntityWrapper<AgvLocDetl>().eq("loc_no", agvLocMast.getLocNo()));
+//        agvLocDetls.forEach(agvLocDetl -> {
+//            AgvWrkDetl wrkDetl = new AgvWrkDetl();
+//            wrkDetl.setWrkNo(mast1.getWrkNo());
+//            wrkDetl.sync(agvLocDetl);
+//            wrkDetl.setSpecs("1-" + agvLocMast.getLocType3());
+//            wrkDetl.setSuppCode(agvLocDetl.getSuppCode());
+//            wrkDetl.setIoTime(now);
+//            wrkDetl.setAppeUser(9527L);
+//            wrkDetl.setAppeTime(now);
+//            wrkDetl.setModiUser(9527L);
+//            wrkDetl.setModiTime(now);
+//            if (!agvWrkDetlService.insert(wrkDetl)) {
+//                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏澶辫触");
+//            }
+//        });
+//        //鏇存柊鐩爣搴撲綅鐘舵��
+//        updateAgvLocMast(agvLocMast,"R");
+//        updateAgvLocMast(LocMast,"S");
+//
+//        return SUCCESS;
+//    }
 
     private ReturnT<String> doHandMove(AgvLocMast agvLocMast) {
         Date now = new Date();
@@ -189,7 +189,7 @@
     private ReturnT<String> doAutoMove2(AgvWrkMast agvWrkMast) {
         Date now = new Date();
         //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-        AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true);
+        AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,true,null);
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("鏆傛棤搴撲綅");
         }
@@ -213,7 +213,7 @@
     private ReturnT<String> doAutoMove3(AgvWrkMast agvWrkMast) {
         Date now = new Date();
         //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-        AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false);
+        AgvLocMast locMast = agvCommonService.getLocNo(3,agvWrkMast.getCrnNo(),false,false,null);
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("鏆傛棤搴撲綅");
         }
@@ -320,7 +320,7 @@
         Date now = new Date();
         AgvBasDevp agvBasDevp = agvBasDevpService.selectByDevNo(agvWrkMast.getSourceLocNo());
         //妫�绱㈢┖闂叉帴椹充綅锛岄�夋嫨鍚堥�傜殑鎺ラ┏浣�
-        AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true);
+        AgvLocMast locMast = agvCommonService.getLocNo(3, 1,true,true,null);
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("1妤兼殏鏃犵┖搴撲綅");
         }
@@ -339,47 +339,47 @@
         return SUCCESS;
     }
 
-    public ReturnT<String> autoEmptyBack2(AgvLocMast agvLocMast) {
-        Date now = new Date();
-        //鏌ヨ宸ヤ綔妗�
-        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
-        if(!Cools.isEmpty(agvWrkMast)){
-            throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
-        }
-        //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-        AgvLocMast LocMast = agvCommonService.getLocNo(3,1,true,true);
-        //鐢熸垚宸ヤ綔妗�
-        AgvWrkMast mast = new AgvWrkMast();
-        //宸ヤ綔鐘舵��
-        mast.setWrkSts(201L);
-        //鍏ュ嚭搴撶被鍨�
-        mast.setIoType(109);
-        mast.setIoTime(now);
-        //浼樺厛绾�
-        mast.setIoPri(300.0);
-        //婧愮珯鐐�
-        mast.setSourceLocNo(agvLocMast.getLocNo());
-        //鐩爣绔欑偣
-        mast.setLocNo(LocMast.getLocNo());
-        //璐ф灦缂栫爜
-        mast.setBarcode(agvLocMast.getBarcode());
-        //璐ф灦绫诲瀷
-        mast.setWhsType(30);
-
-        mast.setAppeUser(9527L);
-        mast.setAppeTime(now);
-        mast.setModiUser(9527L);
-        mast.setModiTime(now);
-        mast.setLogErrMemo("autoEmptyBack2");
-        if (!agvWrkMastService.insertByIncrease(mast)) {
-            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
-        }
-
-        //鏇存柊鐩爣搴撲綅鐘舵��
-        updateAgvLocMast(agvLocMast,"R");
-        updateAgvLocMast(LocMast,"S");
-        return SUCCESS;
-    }
+//    public ReturnT<String> autoEmptyBack2(AgvLocMast agvLocMast) {
+//        Date now = new Date();
+//        //鏌ヨ宸ヤ綔妗�
+//        AgvWrkMast agvWrkMast = agvWrkMastService.selectByContainerCode(agvLocMast.getBarcode());
+//        if(!Cools.isEmpty(agvWrkMast)){
+//            throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
+//        }
+//        //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
+//        AgvLocMast LocMast = agvCommonService.getLocNo(3,1,true,true);
+//        //鐢熸垚宸ヤ綔妗�
+//        AgvWrkMast mast = new AgvWrkMast();
+//        //宸ヤ綔鐘舵��
+//        mast.setWrkSts(201L);
+//        //鍏ュ嚭搴撶被鍨�
+//        mast.setIoType(109);
+//        mast.setIoTime(now);
+//        //浼樺厛绾�
+//        mast.setIoPri(300.0);
+//        //婧愮珯鐐�
+//        mast.setSourceLocNo(agvLocMast.getLocNo());
+//        //鐩爣绔欑偣
+//        mast.setLocNo(LocMast.getLocNo());
+//        //璐ф灦缂栫爜
+//        mast.setBarcode(agvLocMast.getBarcode());
+//        //璐ф灦绫诲瀷
+//        mast.setWhsType(30);
+//
+//        mast.setAppeUser(9527L);
+//        mast.setAppeTime(now);
+//        mast.setModiUser(9527L);
+//        mast.setModiTime(now);
+//        mast.setLogErrMemo("autoEmptyBack2");
+//        if (!agvWrkMastService.insertByIncrease(mast)) {
+//            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+//        }
+//
+//        //鏇存柊鐩爣搴撲綅鐘舵��
+//        updateAgvLocMast(agvLocMast,"R");
+//        updateAgvLocMast(LocMast,"S");
+//        return SUCCESS;
+//    }
 
     public ReturnT<String> autoEmptyBack4(AgvLocMast agvLocMast) {
         Date now = new Date();
@@ -410,7 +410,7 @@
             ioType = 109;
         } else {
             //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-            locMast = agvCommonService.getLocNo(3,1,true,true);
+            locMast = agvCommonService.getLocNo(3,1,true,true,null);
             locNo = locMast.getLocNo();
             wrkSts = 201L;
             ioType = 109;
@@ -485,7 +485,7 @@
             //鍏ュ嚭搴撶被鍨�
             mast.setIoType(109);
             //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-            AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true);
+            AgvLocMast locMast = agvCommonService.getLocNo(3,1,true,true,null);
             mast.setLocNo(locMast.getLocNo());
             updateAgvLocMast(locMast,"S");
         } else {
@@ -559,7 +559,7 @@
             throw new CoolException("褰撳墠"+agvLocMast.getBarcode()+"璐ф灦鐮佸凡鍦ㄥ伐浣滄。涓�");
         }
         //妫�绱㈠簱浣嶏紝閫夋嫨鍚堥�傜殑搴撲綅
-        AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false);
+        AgvLocMast LocMast = agvCommonService.getLocNo(3,1,false,false,null);
         if (LocMast.getLev1() != 2) {
             throw new CoolException("鐩爣妤煎眰涓嶆槸鍚稿浜屾ゼ");
         }
diff --git a/src/main/java/com/zy/common/service/AgvCommonService.java b/src/main/java/com/zy/common/service/AgvCommonService.java
index 7af4f56..5be7c9a 100644
--- a/src/main/java/com/zy/common/service/AgvCommonService.java
+++ b/src/main/java/com/zy/common/service/AgvCommonService.java
@@ -120,12 +120,12 @@
             // 寮�濮嬫煡鎵惧簱浣� ==============================>>
             // 鍥涙湡椤圭洰锛氶渶瑕佹敼鏌ユ壘搴撲綅閫昏緫
             // 绠卞3鍏ュ簱
-            if (type == 3) {
+            if (type == 3 && factory != null) {
                 //浼樺厛鍏ュ簱鍚稿1妤硷紝鍦�2妤�
-                locMast = locUtils.getLocNoRuleByFactory(type,isEmpty ,factory);
+                locMast = locUtils.getLocNoRuleByFactory(type, isEmpty, factory);
             } else if (type == 6) {
                 //鍗婃垚鍝佺澹冲叆搴擄紝鍏ュ埌鍚稿2妤肩殑370涓簱浣嶉噷
-                locMast = locUtils.getLocNoRuleByFloor(type, floor, isEmpty,2);
+                locMast = locUtils.getLocNoRuleByFloor(type, floor, isEmpty, 2);
             } else {
                 //涓嶅姩杩欎釜閫昏緫
                 locMast = getLocNoRule(type, floor, isEmpty, isCurrLev);

--
Gitblit v1.9.1