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/asrs/service/impl/LocMastServiceImpl.java |   10 +++++
 src/main/resources/mapper/LocMastMapper.xml                    |   26 +++++++++++++
 src/main/java/com/zy/asrs/mapper/LocMastMapper.java            |    5 ++
 src/main/java/com/zy/common/web/WcsController.java             |    2 
 src/main/java/com/zy/asrs/service/LocMastService.java          |    4 ++
 src/main/java/com/zy/common/service/CommonService.java         |   62 ++++++++++++++++++++++++++++--
 6 files changed, 102 insertions(+), 7 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
index 147075a..b20d55e 100644
--- a/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocMastMapper.java
@@ -12,7 +12,6 @@
 @Mapper
 @Repository
 public interface LocMastMapper extends BaseMapper<LocMast> {
-
     LocMast queryFreeLocMast(@Param("row") Integer row, @Param("locType1") Short locType1);
 
     @Select("select loc_no from asr_loc_mast where 1=1 and loc_sts = 'O' and crn_no = #{crnNo}")
@@ -47,4 +46,8 @@
     LocMast selectLocByLocStsPakInO2(@Param("locNos") List<String> locNos);
 
     LocMast selectByBarcode(@Param("zpallet")String zpallet);
+
+    LocMast queryLocToOne(Short locType2);
+
+    LocMast queryLocToTwo(Short locType2);
 }
diff --git a/src/main/java/com/zy/asrs/service/LocMastService.java b/src/main/java/com/zy/asrs/service/LocMastService.java
index 170263e..1bfcb56 100644
--- a/src/main/java/com/zy/asrs/service/LocMastService.java
+++ b/src/main/java/com/zy/asrs/service/LocMastService.java
@@ -52,4 +52,8 @@
     LocMast selectLocByLocStsPakInO(Integer curRow,Integer nearRow,List<String> locNos);
 
     LocMast selectByBarcode(String zpallet);
+
+    LocMast queryLocToOne(Short locType2);
+
+    LocMast queryLocToTwo(Short locType2);
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
index da0787a..62ca66e 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocMastServiceImpl.java
@@ -71,6 +71,16 @@
     }
 
     @Override
+    public LocMast queryLocToOne(Short locType2) {
+        return this.baseMapper.queryLocToOne(locType2);
+    }
+
+    @Override
+    public LocMast queryLocToTwo(Short locType2) {
+        return this.baseMapper.queryLocToTwo(locType2);
+    }
+
+    @Override
     public Boolean checkWhole(List<LocDetl> locDetls) {
         return null;
     }
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index e249b28..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;
@@ -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;
+    }
+
 }
diff --git a/src/main/java/com/zy/common/web/WcsController.java b/src/main/java/com/zy/common/web/WcsController.java
index b81d26b..b525134 100644
--- a/src/main/java/com/zy/common/web/WcsController.java
+++ b/src/main/java/com/zy/common/web/WcsController.java
@@ -118,7 +118,7 @@
         }else if (param.getBarcode().startsWith("8")){
             locTypeDto.setLocType2((short) 8);
         }else {
-            throw new CoolException("鏉$爜瑙勫垯涓嶅瓨鍦�");
+            throw new CoolException("鏉$爜瑙勫垯涓嶅瓨鍦�:"+param.getBarcode());
         }
 
         StartupDto dto = null;
diff --git a/src/main/resources/mapper/LocMastMapper.xml b/src/main/resources/mapper/LocMastMapper.xml
index 9a68082..da60f3c 100644
--- a/src/main/resources/mapper/LocMastMapper.xml
+++ b/src/main/resources/mapper/LocMastMapper.xml
@@ -120,4 +120,30 @@
         SELECT top 1 * FROM [dbo].[asr_loc_mast] WHERE barcode = #{zpallet}
     </select>
 
+    <select id="queryLocToOne" resultMap="BaseResultMap">
+        select top 1 loc_no as locNo,crn_no as crnNo from asr_loc_mast
+        where loc_status = 'O' and row1 in (1,2)
+        <if test="locType2 == 4">
+            and lev1 = 1
+        </if>
+        <if test="locType2 == 5">
+            and lev1 in(2,3)
+        </if>
+        <if test="locType2 == 6">
+            and lev1 in(4,5)
+        </if>
+        order by lev1 asc,bay1 asc
+    </select>
+
+    <select id="queryLocToTwo" resultMap="BaseResultMap">
+        select top 1 loc_no as locNo,crn_no as crnNo from asr_loc_mast
+        where loc_status = 'O' and row1 in (3,4)
+        <if test="locType2 == 7">
+            and lev1 in(1,2)
+        </if>
+        <if test="locType2 == 8">
+            and lev1 in(3,4,5,6)
+        </if>
+        order by lev1 asc,bay1 asc
+    </select>
 </mapper>

--
Gitblit v1.9.1