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 |   55 ++++++++++++++++++++++++++++++++++++++++++++++++-------
 1 files changed, 48 insertions(+), 7 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 03acb2b..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,8 @@
 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;
 import com.zy.asrs.utils.Utils;
@@ -26,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 +88,9 @@
     @Autowired
     private ManLocDetlService manLocDetlService;
 
+    @Resource
+    private LocMastMapper locMastMapper;
+
     @Override
     @Transactional
     public String startupFullPutStore(FullStoreParam param, Long userId) {
@@ -99,7 +105,8 @@
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
         List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
 //        List<String> batchs = param.getList().stream().map(FullStoreParam.MatCodeStore::getBatch).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), matnrs.get(0), null, null,locTypeDto);
+        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo(matnrs.get(0));
+        StartupDto dto = commonService.getLocNo(1, param.getDevpNo(), findLocNoAttributeVo,locTypeDto);
         if (Cools.isEmpty(dto)){
             throw new CoolException("鏌ヨ搴撲綅澶辫触锛侊紒==銆媠tartupFullPutStore ==銆� commonService.getLocNo");
         }
@@ -179,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.鍑哄簱
@@ -412,11 +425,11 @@
             if (locDto.getAnfme()==null || locDto.getAnfme() <= 0.0D) { continue; }
 //            OrderDetl orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
             OrderDetl orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), locDto.getBatch());
-            if (orderDetl == null) {
-//                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
-                orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null);
-
-            }
+//            if (orderDetl == null) {
+////                orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
+//                orderDetl = OrderInAndOutUtil.selectItem(Boolean.FALSE, locDto.getOrderNo(), locDto.getMatnr(), null);
+//
+//            }
             WrkDetl wrkDetl = new WrkDetl();
             wrkDetl.sync(orderDetl);
             wrkDetl.setZpallet(wrkMast.getBarcode());
@@ -461,7 +474,9 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto dto = commonService.getLocNo( 10, devpNo, null,null,null, locTypeDto);
+        FindLocNoAttributeVo findLocNoAttributeVo = new FindLocNoAttributeVo();
+
+        StartupDto dto = commonService.getLocNo( 10, devpNo, findLocNoAttributeVo, locTypeDto);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -518,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);
@@ -654,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.鐩樼偣鍑哄簱
@@ -678,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