From 7c36a39a0a2abf561d6c529f4918323f2c44945c Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 26 二月 2025 08:58:26 +0800
Subject: [PATCH] agv站点修改

---
 src/main/java/com/zy/common/service/CommonService.java |  203 +++++++++++++++++++++-----------------------------
 1 files changed, 86 insertions(+), 117 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 47d85bf..c6031f3 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -418,13 +418,13 @@
                             locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
                                     .eq("loc_no", shallowLoc).eq("loc_sts", "F").eq("whs_type",rowLastnoType.getType().longValue()));
                             if (!Cools.isEmpty(locMast2)) {
-                                locMast = locMast2;
+                                locMast = locMast1;
                                 break;
                             } else {
                                 locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>()
                                         .eq("loc_no", shallowLoc).eq("loc_sts", "D").eq("whs_type",rowLastnoType.getType().longValue()));
                                 if (!Cools.isEmpty(locMast2)) {
-                                    locMast = locMast2;
+                                    locMast = locMast1;
                                     break;
                                 }
                             }
@@ -534,66 +534,6 @@
             throw new CoolException("鏃犲彲鐢ㄥ簱浣�");
         }
 
-
-        // 鐩镐技宸ヤ綔妗f --- 鍚屽ぉ鍚岃鏍肩墿鏂�
-        if (!Cools.isEmpty(matnr) && (staDescId == 1 || staDescId == 11 || staDescId == 111) ) {
-            //鏌ヨ鐩镐技宸ヤ綔妗f
-            List<WrkMast> wrkMasts = wrkMastService.selectWrkMastWrkDetlMatnrBatch(staDescId, matnr, batch,grade, crnNo);
-            int nearbay = 0;    //鐩镐技宸ヤ綔妗f 鐩爣搴撲綅鍒�
-            int nearlev = 0;    //鐩镐技宸ヤ綔妗f 鐩爣搴撲綅灞�
-            for (WrkMast wrkMast:wrkMasts){
-                LocMast locMastWrk = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", wrkMast.getLocNo()));
-                List<LocMast> locMasts = new ArrayList<>();
-                if (locMastWrk.getBay1() >=1 && locMastWrk.getBay1()<=2){
-                    locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                            .eq("gro1", locMastWrk.getGro1())
-                            .eq("crn_no", 7)
-                            .eq("loc_type1",locTypeDto.getLocType1())
-                            .orderBy("bay1", true));
-                }else if (locMastWrk.getBay1() >=4 && locMastWrk.getBay1()<=12){
-                    locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                            .eq("gro1", locMastWrk.getGro1())
-                            .eq("crn_no", 7)
-                            .eq("loc_type1",locTypeDto.getLocType1())
-                            .orderBy("bay1", false));
-                }else {
-                    locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                            .eq("gro1", locMastWrk.getGro1())
-                            .eq("crn_no", 7)
-                            .eq("loc_type1",locTypeDto.getLocType1())
-                            .orderBy("bay1", true));
-                }
-                if (Cools.isEmpty(locMasts)) {
-                    continue;
-                }
-                for (LocMast locMastGro1 : locMasts) {
-                    if (mixture){ //娣锋枡鍙厑璁告斁 7 12 14
-                        if (locMastGro1.getBay1() != 7 && locMastGro1.getBay1() != 12 && locMastGro1.getBay1() != 14){
-                            continue;
-                        }
-                    }else { //涓嶆贩鏂欎笉鍏佽鏀� 7 12 14
-                        if (locMastGro1.getBay1() == 7 || locMastGro1.getBay1() == 12 || locMastGro1.getBay1() == 14){
-                            continue;
-                        }
-                    }
-
-                    if (locMastGro1.getBay1() == 2){ //wcs闂闄愬埗
-                        continue;
-                    }
-                    if (locMastGro1.getLocSts().equals("P") || locMastGro1.getLocSts().equals("Q")) {
-                        break;
-                    }
-                    if (locMastGro1.getLocSts().equals("O")){
-                        locMast = locMastGro1;
-                        break;
-                    }
-                }
-
-
-            }
-
-        }
-
         Wrapper<StaDesc> wrapper = null;
         StaDesc staDesc = null;
         BasDevp staNo = null;
@@ -628,12 +568,64 @@
 
         // 1.鎸夎鍒欐煡鎵惧簱浣�
         if (Cools.isEmpty(locMast) && crnNo != 0) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
-                    .eq("bay1", nearRow)
-                    .eq("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
-                    .eq("crn_no",7)
-                    .eq("loc_type1",locTypeDto.getLocType1())
-                    .orderBy("lev1",true).orderBy("row1",false));//鏈�娴呭簱浣�
+            List<LocMast> locMasts = new ArrayList<>();
+            int floor = 0;
+            if (locTypeDto.getLev1() == null){
+                if (locTypeDto.getLocType1() == 1){
+                    int F1count = locMastService.selectCount(new EntityWrapper<LocMast>()
+                            .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
+                            .eq("crn_no", 7)
+                            .eq("loc_type1", locTypeDto.getLocType1())
+                            .eq("lev1", 1));
+                    if (F1count <= 10) {
+                        int F2count = locMastService.selectCount(new EntityWrapper<LocMast>()
+                                .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
+                                .eq("crn_no", 7)
+                                .eq("loc_type1", locTypeDto.getLocType1())
+                                .eq("lev1", 2));
+                        if (F2count <= 10) {
+                            throw new CoolException("搴撲綅涓嶈冻");
+                        }else {
+                            floor = 2;
+                        }
+                    }else {
+                        floor = 1;
+                    }
+
+                }else if (locTypeDto.getLocType1() == 2){
+                    int F3count = locMastService.selectCount(new EntityWrapper<LocMast>()
+                            .in("loc_sts", "O").eq("whs_type", rowLastnoType.getType().longValue())
+                            .eq("crn_no", 7)
+                            .eq("loc_type1", locTypeDto.getLocType1())
+                            .eq("lev1", 3));
+                    if (F3count <= 10) {
+                        throw new CoolException("搴撲綅涓嶈冻");
+                    }
+                    floor = 3;
+                }else {
+                    throw new CoolException("搴撲綅楂樺害鏁版嵁寮傚父");
+                }
+            }
+
+            if (locTypeDto.getLev1() != null){
+                locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("bay1", nearRow)
+                        .in("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
+                        .eq("crn_no",7)
+                        .eq("loc_type1",locTypeDto.getLocType1())
+                        .eq("lev1",locTypeDto.getLev1()).orderBy("row1",false));//鏈�娴呭簱浣�
+            }else {
+                if (floor == 0){
+                    throw new CoolException("搴撲綅宸叉弧");
+                }
+                locMasts = locMastService.selectList(new EntityWrapper<LocMast>()
+                        .eq("bay1", nearRow)
+                        .in("loc_sts", "O").eq("whs_type",rowLastnoType.getType().longValue())
+                        .eq("crn_no",7)
+                        .eq("loc_type1",locTypeDto.getLocType1())
+                        .eq("lev1",floor).orderBy("row1",false));//鏈�娴呭簱浣�
+            }
+
 
             for (LocMast locMast1 : locMasts) {
                 if (locMast != null){
@@ -642,56 +634,33 @@
                 if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
                     continue;
                 }
-                if (Utils.BooleanWhsTypeStaIoType(rowLastno)){
-                    //鑾峰彇鐩爣搴撲綅鎵�鍦ㄥ贩閬撴渶娣辩┖搴撲綅
-//                    LocMast locMast2 = locMastService.selectLocByLocStsPakInO(curRow,nearRow,locMast1,rowLastnoType.getType().longValue());
-//                    if (!Cools.isEmpty(locMast2) && locMast2.getBay1()==curRow) {
-//                        locMast = locMast2;
-//                        break;
-//                    }
-                    List<LocMast> locMasts1 = null;
-                    if (curRow < nearRow){
-                        locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>()
-                                .eq("gro1", locMast1.getGro1())
-                                .eq("crn_no",7)
-                                .eq("loc_type1",locTypeDto.getLocType1())
-                                .orderBy("bay1",true));
-                        if(locMast1.getBay1()>= 4 && locMast1.getBay1()<=12){
-                            locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>()
-                                    .eq("gro1", locMast1.getGro1())
-                                    .eq("crn_no",7)
-                                    .eq("loc_type1",locTypeDto.getLocType1())
-                                    .orderBy("bay1",false));
-                        }
-                    }else {
-                        locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>()
-                                .eq("gro1", locMast1.getGro1())
-                                .eq("crn_no",7)
-                                .eq("loc_type1",locTypeDto.getLocType1())
-                                .orderBy("bay1",false));
-                    }
-                    if (Cools.isEmpty(locMasts1)) {
-                        continue;
-                    }
-                    for (LocMast locMastGro1 : locMasts1) {
-                        if (locMastGro1.getLocSts().equals("F")){
-                            LocDetl locDetl = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_No", locMastGro1.getLocNo()));
-                            if (!locDetl.getMatnr().equals(matnr) || !locDetl.getBatch().equals(batch)){
-                                break;
-                            }
-                        }
-                        if (locMastGro1.getLocSts().equals("P") || locMastGro1.getLocSts().equals("Q") || locMastGro1.getLocSts().equals("R")) {
-                            break;
-                        }
-                        if (locMastGro1.getLocSts().equals("O")){
-                            locMast = locMastGro1;
-                            break;
-                        }
-                    }
-
-
-
+                List<LocMast> locMasts1 = null;
+                if (nearRow == 2 || nearRow ==7 || nearRow == 12){
+                    locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>()
+                            .eq("gro1", locMast1.getGro1())
+                            .eq("crn_no",7)
+                            .eq("loc_type1",locTypeDto.getLocType1())
+                            .orderBy("bay1",true));
+                }else {
+                    locMasts1 = locMastService.selectList(new EntityWrapper<LocMast>()
+                            .eq("gro1", locMast1.getGro1())
+                            .eq("crn_no",7)
+                            .eq("loc_type1",locTypeDto.getLocType1())
+                            .orderBy("bay1",false));
                 }
+                if (Cools.isEmpty(locMasts1)) {
+                    continue;
+                }
+                for (LocMast locMastGro1 : locMasts1) {
+                    if (locMastGro1.getLocSts().equals("P") || locMastGro1.getLocSts().equals("Q") || locMastGro1.getLocSts().equals("R") || locMastGro1.getLocSts().equals("X")) {
+                        break;
+                    }
+                    if (locMastGro1.getLocSts().equals("O")){
+                        locMast = locMastGro1;
+                        break;
+                    }
+                }
+
             }
         }
 

--
Gitblit v1.9.1