From 4b0fec6fd68a7f6ac0f5b226cf11b3e71cbe68e1 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期二, 12 一月 2021 20:12:29 +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/WorkServiceImpl.java    |    4 ++--
 src/main/java/com/zy/asrs/service/impl/LocDetlServiceImpl.java |    5 ++---
 src/main/java/com/zy/common/service/CommonService.java         |   24 +++++++++++++++---------
 5 files changed, 23 insertions(+), 17 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 b8f8ccd..a9ed532 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..6a0d9f6 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,7 @@
     }
 
     @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/WorkServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
index 0bc3496..3576bef 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -73,7 +73,7 @@
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
         List<String> matNos = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatNo).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos, locTypeDto);
+        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matNos, locTypeDto, 0);
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
@@ -256,7 +256,7 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto);
+        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto, 0);
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
diff --git a/src/main/java/com/zy/common/service/CommonService.java b/src/main/java/com/zy/common/service/CommonService.java
index 926760a..69348e0 100644
--- a/src/main/java/com/zy/common/service/CommonService.java
+++ b/src/main/java/com/zy/common/service/CommonService.java
@@ -11,6 +11,7 @@
 import com.zy.common.model.Shelves;
 import com.zy.common.model.StartupDto;
 import com.zy.common.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;
@@ -21,6 +22,7 @@
  * 璐ф灦鏍稿績鍔熻兘
  * Created by vincent on 2020/6/11
  */
+@Slf4j
 @Service
 public class CommonService {
 
@@ -91,7 +93,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);
@@ -128,7 +130,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;
@@ -146,7 +148,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())) {
@@ -227,6 +229,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)) {
@@ -241,15 +246,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