From 57e7846403cd3c72cc70e17e205c4e0d8b3aa404 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期二, 04 十一月 2025 10:10:53 +0800
Subject: [PATCH] #1

---
 src/main/java/com/zy/common/service/CommonService.java |  100 ++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 76 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 6811548..3950ae3 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -119,7 +119,7 @@
     @Transactional
     public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, LocTypeDto locTypeDto) {
         whsType = Utils.GetWhsType(sourceStaNo);
-        return getLocNo(whsType, staDescId, sourceStaNo, matnr, batch, grade, 0, locTypeDto, 0);
+        return getLocNoToOne(whsType, staDescId, sourceStaNo, matnr, batch, grade, 0, locTypeDto, 0);
     }
 
     /**
@@ -152,15 +152,15 @@
 
         StartupDto startupDto = new StartupDto();
         RowLastno rowLastno = rowLastnoService.selectById(whsType);
-        int sRow = rowLastno.getsRow();
-        int eRow = rowLastno.geteRow();
-        int crnNumber = rowLastno.getCrnQty();
+        int sRow = rowLastno.getsRow(); //璧峰鎺掑彿
+        int eRow = rowLastno.geteRow(); //缁堟鎺掑彿
+        int crnNumber = rowLastno.getCrnQty(); //鍫嗗灈鏈烘暟閲�
 
         if (Cools.isEmpty(rowLastno)) {
             throw new CoolException("鏁版嵁寮傚父锛岃鑱旂郴绠$悊鍛�");
         }
         // ===============>>>> 寮�濮嬫墽琛�
-        curRow = rowLastno.getCurrentRow();
+        curRow = rowLastno.getCurrentRow(); //褰撳墠鎺掑彿
 
         if (!Cools.isEmpty(moveCrnNo) && moveCrnNo != 0) {
             crnNumber = moveCrnNo;
@@ -206,7 +206,7 @@
         }
 
         if (signRule1) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O"));
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O").eq("loc_type2",locTypeDto.getLocType2()));
             for (LocMast locMast1 : locMasts) {
                 if (VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
                     continue;
@@ -260,7 +260,7 @@
 
         // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭 //浜掗�氱増
         if (staDescId == 10) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow));
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").ge("row1", sRow).le("row1", eRow).eq("loc_type2",locTypeDto.getLocType2()));
             if (locMasts.size() > 0) {
                 for (LocMast loc : locMasts) {
                     if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
@@ -318,29 +318,29 @@
         if (Cools.isEmpty(locMast) && crnNo != 0) {
             List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("row1", nearRow).eq("loc_sts", "O").eq("loc_type2",locTypeDto.getLocType2()));
             List<LocMast> locMastList = new ArrayList<>();
-            locMasts.sort(new Comparator<LocMast>() {
-                @Override
-                public int compare(LocMast o1, LocMast o2) {
-                    int b1 = o1.getBay1();
-                    int b2 = o2.getBay1();
-                    if (o1.getBay1() >= 15) {
-                        b1 = Math.abs(15 - o1.getBay1());
-                    }
-                    if (o2.getBay1() >= 15) {
-                        b2 = Math.abs(15 - o2.getBay1());
-                    }
-                    return b2 - b1;
-                }
-            });
+//            locMasts.sort(new Comparator<LocMast>() {
+//                @Override
+//                public int compare(LocMast o1, LocMast o2) {
+//                    int b1 = o1.getBay1();
+//                    int b2 = o2.getBay1();
+//                    if (o1.getBay1() >= 15) {
+//                        b1 = Math.abs(15 - o1.getBay1());
+//                    }
+//                    if (o2.getBay1() >= 15) {
+//                        b2 = Math.abs(15 - o2.getBay1());
+//                    }
+//                    return b2 - b1;
+//                }
+//            });
 
             for (LocMast locMast1 : locMasts) {
                 if (!VersionUtils.locMoveCheckLocTypeComplete(locMast1, locTypeDto)) {
                     continue;
                 }
                 String shallowLoc = Utils.getDeepLoc(slaveProperties, locMast1.getLocNo());
-                LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc).eq("loc_sts", "O"));
-                if (!Cools.isEmpty(locMast2)) {
-                    locMast = locMast2;
+                LocMast locMast2 = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", shallowLoc).eq("loc_sts", "O").eq("loc_type2",locTypeDto.getLocType2()));
+                if (Cools.isEmpty(locMast2)) {
+                    locMast = locMast1;
                     break;
                 }
             }
@@ -377,4 +377,56 @@
         startupDto.setLocNo(locNo);
         return startupDto;
     }
+
+    /*闀囨睙鎭掔珛鍗曚几绔嬪簱閫昏緫*/
+    @Transactional
+    public StartupDto getLocNoToOne(Integer whsType, Integer staDescId, Integer sourceStaNo, String matnr, String batch, String grade, Integer moveCrnNo, LocTypeDto locTypeDto, int times) {
+        //鐩爣搴撲綅
+        LocMast locMast = null;
+            //1鍙峰贩閬� 3绉嶆墭鐩樼被鍨�
+        if (locTypeDto.getLocType2()==4||locTypeDto.getLocType2()==5||locTypeDto.getLocType2()==6){
+            locMast=locMastService.queryLocToOne(locTypeDto.getLocType2());
+        }else if (locTypeDto.getLocType2()==7||locTypeDto.getLocType2()==8){
+            //2鍙峰贩閬� 2绉嶇被鍨嬫墭鐩�
+            locMast=locMastService.queryLocToTwo(locTypeDto.getLocType2());
+        }else {
+            throw new CoolException("涓嶅瓨鍦ㄨ搴撲綅绫诲瀷:"+locTypeDto.getLocType2());
+        }
+        if (locMast == null){
+            throw new CoolException("鍏ュ簱娌℃湁绌哄簱浣�");
+        }
+
+        //鍫嗗灈鏈哄彿
+        Integer crnNo = locMast.getCrnNo();
+
+        //鑾峰彇鐩爣绔�
+        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                .eq("type_no", staDescId)
+                .eq("stn_no", sourceStaNo)
+                .eq("crn_no", crnNo);
+        StaDesc staDesc = staDescService.selectOne(wrapper);
+        if (Cools.isEmpty(staDesc)){
+            log.error("鍏ュ簱璺緞涓嶅瓨鍦�,staDesc={},sourceStaNo={},crnNo={}",1,staDescId,crnNo);
+            throw new CoolException("鍏ュ簱璺緞涓嶅瓨鍦�");
+        }
+
+        //妫�娴嬬洰鏍囩珯
+        BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
+        if (!staNo.getAutoing().equals("Y")){
+            throw new CoolException("鐩爣绔�"+staDesc.getCrnStn()+"涓嶅彲鐢�");
+        }
+
+        //鐢熸垚宸ヤ綔鍙�
+        int workNo = getWorkNo(0);
+
+        //杩斿洖dto
+        StartupDto startupDto =new StartupDto();
+        startupDto.setWorkNo(workNo);
+        startupDto.setLocNo(locMast.getLocNo());
+        startupDto.setStaNo(staNo.getDevNo());
+        startupDto.setCrnNo(crnNo);
+        startupDto.setSourceStaNo(sourceStaNo);
+        return startupDto;
+    }
+
 }

--
Gitblit v1.9.1