From 7a1e5afac83d9ab5be57ecbf5e1da9f6593c637e Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 03 四月 2024 15:23:17 +0800
Subject: [PATCH] 手动出入库作业修改

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 54 insertions(+), 4 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 f31fec3..22cdb82 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.BasDevpMapper;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
@@ -25,6 +26,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;
@@ -77,6 +79,8 @@
     private SlaveProperties slaveProperties;
     @Autowired
     private WaitPakinService waitPakinService;
+    @Resource
+    private BasDevpMapper basDevpMapper;
 
     @Override
     @Transactional
@@ -92,7 +96,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(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs.get(0), batchs.get(0), null,locTypeDto);
+//        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs.get(0), batchs.get(0), null,locTypeDto);
+        StartupDto dto = commonService.getLocNo(sourceStaNo,locTypeDto, 1);
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
@@ -160,6 +165,42 @@
     public void startupFullTakeStore(StockOutParam param, Long userId) {
         // 鐩爣绔欑偣鐘舵�佹娴�
         BasDevp staNo = basDevpService.checkSiteStatus(param.getOutSite());
+        // 鑾峰彇鎵�鏈夊簱浣嶅彿闆嗗悎
+        List<String> locNos = param.getLocDetls().stream().map(StockOutParam.LocDetl::getLocNo).distinct().collect(Collectors.toList());
+        // 娴呭簱浣嶆爣璇�
+        boolean sign = false;
+        // 鎻愮ず淇℃伅
+        String tips = "";
+
+        /*
+          鍒ゆ柇濡傛灉鏄繁搴撲綅锛屽搴旂殑娴呭簱浣嶄笉涓虹┖鍒欎笉鑳藉嚭
+         */
+        for (String locNo : locNos) {
+            if (sign) {
+                break;
+            }
+            List<String> groupOuterLoc = Utils.getGroupOuterLocNo(locNo);
+            if (!Cools.isEmpty(groupOuterLoc)) {
+                for (String outerLoc : groupOuterLoc) {
+                    if (locNos.contains(outerLoc)) {
+                        continue;
+                    }
+                    LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", outerLoc));
+                    if (locMast != null) {
+                        if (!locMast.getLocSts().equals("O") && !locMast.getLocSts().equals("R")) {
+                            sign = true;
+                            tips = "搴撲綅鍙凤細" + locNo + " 娴呭簱浣嶆湁闈炵┖搴撲綅锛�";
+                            break;
+                        }
+                    }
+                }
+            }
+        }
+
+        if (sign) {
+            throw new CoolException("鍑哄簱澶辫触锛�" + tips);
+        }
+
         // 鑾峰彇搴撲綅鏄庣粏
         List<LocDetlDto> locDetlDtos = new ArrayList<>();
         for (StockOutParam.LocDetl paramLocDetl : param.getLocDetls()) {
@@ -288,13 +329,14 @@
         Date now = new Date();
         List<LocDto> locDtos = taskDto.getLocDtos();
         for (LocDto locDto : locDtos) {
+            // 浠诲姟鐨勫簱浣嶅彿涓嶆槸杩欐潯鏄庣粏鐨勫簱浣嶅彿骞朵笖浠诲姟鐨勭洰鏍囩珯鐐逛笉鏄繖鏉℃槑缁嗙殑鐩爣绔欑偣
             if (!taskDto.getLocNo().equals(locDto.getLocNo()) && !taskDto.getStaNo().equals(locDto.getStaNo())) {
                 throw new CoolException("璁㈠崟鍑哄簱寮傚父锛岃鑱旂郴绠$悊鍛�");
             }
         }
         // 鑾峰彇搴撲綅
         LocMast locMast = locMastService.selectById(taskDto.getLocNo());
-        // 鑾峰彇璺緞
+        // 鑾峰彇璺緞锛屾牴鎹鍑哄簱浠诲姟鐨勭墿鏂欐槑缁嗗垽鏂搴撲綅鏄叏鏉垮嚭搴� 杩樻槸鎹℃枡鍑哄簱
         int ioType = taskDto.isAll() ? 101 : 103;
         StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
         // 鐢熸垚宸ヤ綔鍙�
@@ -370,9 +412,11 @@
     public String emptyPlateIn(Integer devpNo, Long userId) {
         // 婧愮珯鐐圭姸鎬佹娴�
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
-        // 妫�绱㈠簱浣�
+        // 妫�绱㈠绐�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto);
+//        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null,null,null, locTypeDto);
+        // 鎼滅储搴撲綅
+        StartupDto dto = commonService.getLocNo(sourceStaNo,locTypeDto,10);
         int workNo = dto.getWorkNo();
         Date now = new Date();
         // 鐢熸垚宸ヤ綔妗�
@@ -589,6 +633,9 @@
         if (Cools.isEmpty(loc)){
             throw new CoolException("鏈壘鍒板簱浣�");
         }
+        if (loc.getLocNo().equals("N")){
+            throw new CoolException("N.璁惧鍗犵敤(绂佹鏇存敼)");
+        }
         if (!loc.getLocSts().equals("O") || (!sourceLoc.getLocSts().equals("F") && !sourceLoc.getLocSts().equals("D"))){
             throw new CoolException("搴撲綅鐘舵�佸凡鏀瑰彉");
         }
@@ -688,6 +735,9 @@
         if (!wrkMastService.updateById(wrkMast)) {
             throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
         }
+        // 鎵嬪姩瀹屾垚鍚庯紝娓呯┖婧愮珯鐐逛笂鐨勫伐浣滃彿
+        basDevpMapper.updateWorkNoById(wrkMast.getSourceStaNo());
+
     }
 
     @Override

--
Gitblit v1.9.1