From e38cf917b19b91bf6c8f07c70fb7bb391e1e80c0 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 18 十二月 2024 13:10:44 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   37 +++++++++++++++++++++++++++++++++++++
 1 files changed, 37 insertions(+), 0 deletions(-)

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 2ae5d58..294a624 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -12,6 +12,7 @@
 import com.zy.asrs.entity.param.FullStoreParam;
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
+import com.zy.asrs.mapper.LocMastMapper;
 import com.zy.asrs.entity.result.FindLocNoAttributeVo;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.OrderInAndOutUtil;
@@ -27,6 +28,7 @@
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.annotation.Resource;
 import java.util.*;
 import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
@@ -85,6 +87,9 @@
 
     @Autowired
     private ManLocDetlService manLocDetlService;
+
+    @Resource
+    private LocMastMapper locMastMapper;
 
     @Override
     @Transactional
@@ -181,6 +186,12 @@
             }
         }
         if (!locDetlDtos.isEmpty()) {
+            // 搴撲綅鍙烽泦鍚�
+            List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
+            String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList);
+            if (firstFrozenLocNo != null) {
+                throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+            }
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F") || locMast.getLocSts().equals("D") ){
                 // 鍚姩鍑哄簱寮�濮� 101.鍑哄簱
@@ -522,6 +533,13 @@
         if (Cools.isEmpty(param.getOutSite())) {
             throw new CoolException("绔欑偣涓嶅瓨鍦�");
         }
+
+        // 搴撲綅鍐荤粨涓嶈兘鍑哄簱
+        String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(param.getLocNos());
+        if (firstFrozenLocNo != null) {
+            throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+        }
+
         for (String locNo : param.getLocNos()) {
             // 鑾峰彇宸ヤ綔鍙�
             int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
@@ -658,6 +676,12 @@
             }
         }
         if (!locDetlDtos.isEmpty()) {
+            // 搴撲綅鍙烽泦鍚�
+            List<String> locNoList = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
+            String firstFrozenLocNo = locMastMapper.findFirstFrozenLocNo(locNoList);
+            if (firstFrozenLocNo != null) {
+                throw new CoolException(firstFrozenLocNo + "搴撲綅宸茶鍐荤粨!");
+            }
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
             if (locMast.getLocSts().equals("F")){
                 // 鍚姩鍑哄簱寮�濮� 107.鐩樼偣鍑哄簱
@@ -682,6 +706,19 @@
         if (Cools.isEmpty(loc)){
             throw new CoolException("鏈壘鍒板簱浣�");
         }
+        // 鍒ゆ柇搴撲綅鏄惁鍐荤粨
+        String sourceLocFrozen = locMastMapper.findFirstFrozenLocNo(Arrays.asList(sourceLoc.getLocNo(),loc.getLocNo()));
+        if (sourceLocFrozen != null) {
+            throw new CoolException(sourceLocFrozen + "搴撲綅宸茶鍐荤粨!");
+        }
+
+        // 鍒ゆ柇搴撳瓨鏄惁鍐荤粨
+        Optional<LocDetl> first = locDetls.stream().filter(locDetl -> locDetl.getFrozen() == 1).findFirst();
+        if (first.isPresent()) {
+            LocDetl locDetl = first.get();
+            throw new CoolException(locDetl.getLocNo() + "," + locDetl.getMatnr() + "," + locDetl.getBatch() + "搴撳瓨鏄庣粏宸茶鍐荤粨!");
+        }
+
         if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
             throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉");
         }

--
Gitblit v1.9.1