From 2dc1627c3dacb5baad5059b27a8bcd7d3f7a98c4 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 12 一月 2021 20:14:48 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/mapper/LocDetlMapper.java            |    5 +++--
 src/main/java/com/zy/asrs/service/LocDetlService.java          |    2 +-
 src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java    |    4 ++--
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    4 ++--
 src/main/java/com/zy/common/service/CommonService.java         |   24 +++++++++++++++---------
 5 files changed, 23 insertions(+), 16 deletions(-)

diff --git a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
index 77a8a07..b646905 100644
--- a/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
+++ b/src/main/java/com/zy/asrs/mapper/LocDetlMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.mapper.BaseMapper;
 import com.zy.asrs.entity.LocDetl;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
 import org.apache.ibatis.annotations.Select;
 import org.apache.ibatis.annotations.Update;
 import org.springframework.stereotype.Repository;
@@ -24,7 +25,7 @@
     @Update("update asr_loc_detl set loc_no = #{newLocNo}, modi_time=getDate() where loc_no = #{oldLocNo}")
     int updateLocNo(String newLocNo, String oldLocNo);
 
-    @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC")
-    List<String> selectSameDetlToday(String matnr);
+    @Select("SELECT ld.loc_no FROM asr_loc_detl ld LEFT JOIN asr_loc_mast lm ON ld.loc_no = lm.loc_no WHERE (1 = 1 AND ld.matnr = #{matnr} AND (lm.row1 > #{start} AND lm.row1 < #{end})  AND lm.loc_sts = 'F' AND DateDiff(dd, lm.modi_time, getdate()) = 0) ORDER BY lm.modi_time ASC")
+    List<String> selectSameDetlToday(@Param("matnr") String matnr, @Param("start") Integer start, @Param("end") Integer end);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/LocDetlService.java b/src/main/java/com/zy/asrs/service/LocDetlService.java
index 94be71a..737a98c 100644
--- a/src/main/java/com/zy/asrs/service/LocDetlService.java
+++ b/src/main/java/com/zy/asrs/service/LocDetlService.java
@@ -22,6 +22,6 @@
      * @param matnr 鐗╂枡鍙�
      * @return locNo 搴撲綅鍙�
      */
-    List<String> getSameDetlToday(String matnr);
+    List<String> getSameDetlToday(String matnr, Integer start, Integer end);
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
index ddb1d0a..57f3645 100644
--- a/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java
@@ -36,8 +36,8 @@
     }
 
     @Override
-    public List<String> getSameDetlToday(String matnr) {
-        return this.baseMapper.selectSameDetlToday(matnr);
+    public List<String> getSameDetlToday(String matnr, Integer start, Integer end) {
+        return this.baseMapper.selectSameDetlToday(matnr, start, end);
     }
 
 }
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 2f6c7bd..28556f8 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -134,7 +134,7 @@
                         // 妫�绱㈠簱浣�
                         LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
                         List<String> matNos = waitPakins.stream().map(WaitPakin::getMatnr).distinct().collect(Collectors.toList());
-                        StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos, locTypeDto);
+                        StartupDto startupDto = commonService.getLocNo(1, 1, inSta.getStaNo(), matNos, locTypeDto, 0);
                         // 宸ヤ綔鍙�
                         int workNo = startupDto.getWorkNo();
                         // 鎻掑叆宸ヤ綔鏄庣粏妗�
@@ -873,7 +873,7 @@
                         && staProtocol.isEmptyMk() && staProtocol.getWorkNo() == 0 && staProtocol.isPakMk()) {
                     // 妫�绱㈠簱浣�
                     LocTypeDto locTypeDto = new LocTypeDto(staProtocol);
-                    StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null, locTypeDto);
+                    StartupDto startupDto = commonService.getLocNo(1, 10, emptyInSta.getStaNo(), null, locTypeDto, 0);
                     // 宸ヤ綔鍙�
                     int workNo = startupDto.getWorkNo();
 
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 8269923..c0f2f95 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -12,6 +12,7 @@
 import com.zy.common.model.Shelves;
 import com.zy.common.model.StartupDto;
 import com.zy.core.properties.SlaveProperties;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
@@ -22,6 +23,7 @@
  * 璐ф灦鏍稿績鍔熻兘
  * Created by vincent on 2020/6/11
  */
+@Slf4j
 @Service
 public class CommonService {
 
@@ -92,7 +94,7 @@
      * @return locNo 妫�绱㈠埌鐨勫簱浣嶅彿
      */
     @Transactional
-    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto) {
+    public StartupDto getLocNo(Integer whsType, Integer staDescId, Integer sourceStaNo, List<String> matNos, LocTypeDto locTypeDto, int times) {
         StartupDto startupDto = new StartupDto();
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = getWorkNo(0);
@@ -129,7 +131,7 @@
 
         // 闈犺繎鎽嗘斁瑙勫垯 --- 鍚屽ぉ鍚岃鏍肩墿鏂�
         if (!Cools.isEmpty(matNos)) {
-            List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0));
+            List<String> locNos = locDetlService.getSameDetlToday(matNos.get(0), sRow, eRow);
             for (String locNo : locNos) {
                 if (Utils.isShallowLoc(slaveProperties, locNo)) {
                     continue;
@@ -147,7 +149,7 @@
 
         // 闈犺繎鎽嗘斁瑙勫垯 --- 绌烘墭
         if (staDescId == 10) {
-            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D"));
+            List<LocMast> locMasts = locMastService.selectList(new EntityWrapper<LocMast>().eq("loc_sts", "D").gt("row1", sRow).lt("row1", eRow));
             if (locMasts.size() > 0) {
                 for (LocMast loc : locMasts) {
                     if (Utils.isShallowLoc(slaveProperties, loc.getLocNo())) {
@@ -228,6 +230,9 @@
         BasDevp staNo = basDevpService.selectById(staDesc.getCrnStn());
         int inQty = staNo.getInQty()==null?0:staNo.getInQty();
         if (staNo.getAutoing().equals("Y") && inQty<2) {
+            // 鏇存柊搴撲綅鎺掑彿
+            rowLastno.setCurrentRow(curRow);
+            rowLastnoService.updateById(rowLastno);
             // 鏌ユ壘搴撲綅
             if (locMast == null) {
                 if (Utils.isShallowLoc(slaveProperties, curRow)) {
@@ -242,15 +247,16 @@
                 // 杞昏揣鐗╂壘杞诲簱浣嶄负绌烘椂锛屽彲浠ュ幓鎵鹃噸搴撲綅浠�
                 if (locTypeDto.getLocType1() == 1) {
                     locTypeDto.setLocType1((short) 2);
-                    return getLocNo(null, staDescId, sourceStaNo, matNos, locTypeDto);
+                    return getLocNo(null, staDescId, sourceStaNo, matNos, locTypeDto, times);
                 }
-                throw new CoolException("娌℃湁绌哄簱浣�");
+                if (times >= rowCount) {
+                    log.error("娌℃湁绌哄簱浣�");
+                    throw new CoolException("娌℃湁绌哄簱浣�");
+                }
+                times = times + 1;
+                return getLocNo(1, staDescId, sourceStaNo, matNos, locTypeDto, times);
             }
             String locNo = locMast.getLocNo();
-
-            // 鏇存柊搴撲綅鎺掑彿
-            rowLastno.setCurrentRow(curRow);
-            rowLastnoService.updateById(rowLastno);
 
             // 杩斿洖dto
             startupDto.setCrnNo(crnNo);

--
Gitblit v1.9.1