From 707d414c0e6a8baff3ce7affec820f0fc1a13c19 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期二, 24 二月 2026 09:06:04 +0800
Subject: [PATCH] no message

---
 src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java |  123 +++++++++++++++++++++++++++-------------
 1 files changed, 83 insertions(+), 40 deletions(-)

diff --git a/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java b/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
index 6aea860..8557e74 100644
--- a/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
+++ b/src/main/java/com/zy/asrs/task/handler/AutoLocMoveHandler.java
@@ -10,7 +10,9 @@
 import com.zy.asrs.service.WorkService;
 import com.zy.asrs.task.AbstractHandler;
 import com.zy.asrs.task.core.ReturnT;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.StartupDto;
+import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -20,6 +22,7 @@
 
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 
 
 /**
@@ -37,51 +40,91 @@
     @Autowired
     private WorkService workService;
 
+    @Autowired
+    private SlaveProperties slaveProperties;
+
     @Transactional(isolation = Isolation.REPEATABLE_READ)
     public ReturnT<String> start(Integer crnNo, Integer ioType) {
         try {
-//            //11  绌挎绉诲崟杈�
-//            if (ioType==11){
-//                for (int bay = 1;bay < 27;bay++){
-//                    for (int lev = 1 ; lev <6 ; lev++){
-//                        List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay,lev,crnNo);
-//                        if (!Cools.isEmpty(locMasts) && locMasts.size()<4){
-//                            for (LocMast locMast:locMasts){
+            //11  绌挎绉诲崟杈�
+            if (ioType == 11) {
+                for (int bay = 2; bay < 141; bay++) {
+                    for (int lev = 1; lev < 22; lev++) {
+                        List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay, lev, crnNo);
+                        if (!Cools.isEmpty(locMasts) && locMasts.size() < 4) {
+                            for (LocMast locMast : locMasts) {
+                                if (Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) {
+                                    String shallowLoc = Utils.getShallowLoc(slaveProperties, locMast.getLocNo());
+                                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc));
+                                    if (!Objects.isNull(locNo)) {
+                                        StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 109 : 126, 1, null, null);
+                                        workService.locMove(locNo.getLocNo(), startupDto.getLocNo(), 9527L);
+                                        break;
+                                    }
+                                }
+
+                                StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 109 : 126, 1, null, null);
+                                workService.locMove(locMast.getLocNo(), startupDto.getLocNo(), 9527L);
+                                break;
+                            }
+                            return SUCCESS;
+                        }
+                    }
+                }
+            } else if (ioType == 12) {
+                for (int bay = 2; bay < 61; bay++) {
+                    for (int lev = 1; lev < 7; lev++) {
+                        List<LocMast> locMasts = locMastService.selectLocMastShuttleMoveUnilateral(bay, lev, crnNo );
+                        if (!Cools.isEmpty(locMasts) && locMasts.size() < 4) {
+                            for (LocMast locMast : locMasts) {
+//                                if (Utils.isDeepLoc(slaveProperties, locMast.getLocNo())) {
+//                                    String shallowLoc = Utils.getShallowLoc(slaveProperties, locMast.getLocNo());
+//                                    LocMast locNo = locMastService.selectOne(new EntityWrapper<LocMast>()
+//                                            .eq("crn_no", crnNo)
+//                                            .eq("loc_no", shallowLoc));
+//                                    if (!Objects.isNull(locNo)) {
+//                                        StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 205 : 215, 3, null, null);
+//                                        workService.locMove(locNo.getLocNo(), startupDto.getLocNo(), 9527L);
+//                                        break;
+//                                    }
+//                                }
+
 //                                LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no", locMast.getLocNo()));
-////                                StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null);
+//                                StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 6 : 5, ioType, crnNo == 1 ? 917 : 918, locDetl.getMatnr(), locDetl.getBatch(),locDetl.getBrand(), null);
 //                                FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
-//
-//                                StartupDto startupDto = commonService.getLocNo( ioType, crnNo == 1 ? 917 : 918, sourceStaNo.getDevNo(), findLocNoAttributeVo, null);
-//                                workService.locMove(locMast.getLocNo(), startupDto.getLocNo(),9527L);
-//                            }
-//                            return SUCCESS;
-//                        }
-//                    }
-//                }
-//            }else {//11  鍗曡竟绉荤┛姊�
-//                List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111   鍗曡竟绉荤┛姊�
-//                for (Map<String, Object> map : list) {
-//                    String matnr = map.getOrDefault("matnr","").toString();//鐗╂枡鍙�
-//                    String batch = map.getOrDefault("batch","").toString();//鎵瑰彿
-//                    String grade = map.getOrDefault("brand","").toString();//绛夌骇
-//                    int count = Integer.parseInt(map.get("count").toString());//鍗曡竟搴撴暟閲�
-//                    if (count < 4) {
-//                        continue;
-//                    }
-//
-//                    List<LocDetl> locDetlList = locDetlService.selectLocDetlUnilateralMoveShuttle(matnr, batch, grade, crnNo);
-//                    for (LocDetl locDetl : locDetlList) {
-////                        StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null);
-//                        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
-//
-//                        StartupDto startupDto = commonService.getLocNo( ioType, crnNo == 1 ? 901 : 932, sourceStaNo.getDevNo(), findLocNoAttributeVo, null);
-//                        workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L);
-//                    }
-//                }
-//                return SUCCESS;
-//            }
-        }catch (Exception e){
-            log.error("鑷姩绉诲簱鍑洪敊,鍫嗗灈鏈哄彿{}锛屽伐浣滅被鍨媨}",crnNo,ioType);
+                                StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 205 : 215, 3, null, null);
+                                workService.locMove(locMast.getLocNo(), startupDto.getLocNo(), 9527L);
+                                break;
+                            }
+                            return SUCCESS;
+                        }
+                    }
+                }
+
+            }else {//11  鍗曡竟绉荤┛姊�
+                List<Map<String, Object>> list = locDetlService.selectLocDetlUnilateralMoveShuttleMap(crnNo);//111   鍗曡竟绉荤┛姊�
+                for (Map<String, Object> map : list) {
+                    String matnr = map.getOrDefault("matnr", "").toString();//鐗╂枡鍙�
+                    String batch = map.getOrDefault("batch", "").toString();//鎵瑰彿
+                    String grade = map.getOrDefault("brand", "").toString();//绛夌骇
+                    int count = Integer.parseInt(map.get("count").toString());//鍗曡竟搴撴暟閲�
+                    if (count < 4) {
+                        continue;
+                    }
+
+                    List<LocDetl> locDetlList = locDetlService.selectLocDetlUnilateralMoveShuttle(matnr, batch, grade, crnNo);
+                    for (LocDetl locDetl : locDetlList) {
+//                        StartupDto startupDto = commonService.getLocNo(crnNo == 1 ? 4 : 3, ioType, crnNo == 1 ? 901 : 932, locDetl.getMatnr(), locDetl.getBatch(), locDetl.getBrand(), null);
+                        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(locDetl);
+
+                        StartupDto startupDto = commonService.getLocNo(ioType, crnNo == 1 ? 901 : 932, null, findLocNoAttributeVo, null);
+                        workService.locMove(locDetl.getLocNo(), startupDto.getLocNo(), 9527L);
+                    }
+                }
+                return SUCCESS;
+            }
+        } catch (Exception e) {
+            log.error("鑷姩绉诲簱鍑洪敊,鍫嗗灈鏈哄彿{}锛屽伐浣滅被鍨媨}", crnNo, ioType);
         }
         return SUCCESS;
     }

--
Gitblit v1.9.1