From dd76858f35bb4fdd76d5976465e9bd96267b0f0b Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期三, 06 五月 2026 09:50:53 +0800
Subject: [PATCH] 初始化

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   84 +++++++++++++++++++++++++++++++++++++++---
 1 files changed, 78 insertions(+), 6 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..40948de 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.*;
@@ -20,11 +21,14 @@
 import com.zy.common.properties.SlaveProperties;
 import com.zy.common.service.CommonService;
 import com.zy.common.web.WcsController;
+import com.zy.system.entity.User;
+import com.zy.system.mapper.UserMapper;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 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 +81,11 @@
     private SlaveProperties slaveProperties;
     @Autowired
     private WaitPakinService waitPakinService;
+    @Resource
+    private BasDevpMapper basDevpMapper;
+
+    @Resource
+    private UserMapper userMapper;
 
     @Override
     @Transactional
@@ -92,7 +101,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,12 +170,52 @@
     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()) {
             if (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
                 LocDetl one = locDetlService.selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
-                if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+                if (null != one) {
+                    if (one.getFrozen() == 1)
+                        throw new CoolException(one.getMatnr() + "銆�" + one.getBatch() + "銆�" + "宸插喕缁�");
+                    locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount()));
+                }
             }
         }
         if (!locDetlDtos.isEmpty()) {
@@ -263,6 +313,8 @@
                 wrkDetl.setAppeUser(userId);
                 wrkDetl.setModiTime(now);
                 wrkDetl.setModiUser(userId);
+                wrkDetl.setSourceStaNo(wrkMast.getSourceStaNo());
+                wrkDetl.setStaNo(wrkMast.getStaNo());
                 if (!wrkDetlService.insert(wrkDetl)) {
                     throw new CoolException("淇濆瓨宸ヤ綔妗f槑缁嗗け璐�");
                 }
@@ -288,13 +340,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 +423,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();
         // 鐢熸垚宸ヤ綔妗�
@@ -446,6 +501,9 @@
                     .eq("stn_no", param.getOutSite())
                     .eq("crn_no", locMast.getCrnNo());
             StaDesc staDesc = staDescService.selectOne(wrapper);
+            if (staDesc == null) {
+                throw new CoolException("璺緞涓嶅瓨鍦�");
+            }
             Integer sourceStaNo = staDesc.getCrnStn();
             if (Cools.isEmpty(sourceStaNo)) {
                 throw new CoolException("妫�绱㈡簮绔欏け璐�");
@@ -589,6 +647,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 +749,9 @@
         if (!wrkMastService.updateById(wrkMast)) {
             throw new CoolException("淇敼宸ヤ綔妗eけ璐�");
         }
+        // 鎵嬪姩瀹屾垚鍚庯紝娓呯┖婧愮珯鐐逛笂鐨勫伐浣滃彿
+        basDevpMapper.updateWorkNoById(wrkMast.getSourceStaNo());
+
     }
 
     @Override
@@ -819,6 +883,14 @@
         if (Cools.isEmpty(wrkMast)){
             throw new CoolException(workNo+"宸ヤ綔妗d笉瀛樺湪");
         }
+
+        User user = userMapper.selectById(userId);
+        if ("user".equals(user.getRolCode())) {
+             if (!(wrkMast.getWrkSts() == 1 || wrkMast.getWrkSts() == 11)) {
+                 throw new CoolException("璇ュ伐浣滅姸鎬佷笉鍙彇娑�");
+             }
+        }
+
         String locNo = ""; // 寰呬慨鏀圭洰鏍囧簱浣�
         String locSts = ""; // 寰呬慨鏀圭洰鏍囧簱浣嶇姸鎬�
         // 鍏ュ簱鍙栨秷锛堜慨鏀圭洰鏍囧簱浣嶏級
@@ -942,7 +1014,7 @@
         if (wrkMast.getIoType() != 10 && wrkMast.getIoType() != 110) {
             // 淇濆瓨宸ヤ綔鏄庣粏妗e巻鍙叉。
             if (!wrkDetlLogService.save(wrkMast.getWrkNo())) {
-//                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
+                throw new CoolException("淇濆瓨宸ヤ綔鏄庣粏鍘嗗彶妗eけ璐�, workNo = " + wrkMast.getWrkNo());
             }
             // 鍒犻櫎宸ヤ綔妗f槑缁�
             boolean wrkDetlRes = wrkDetlService.delete(new EntityWrapper<WrkDetl>().eq("wrk_no", workNo));

--
Gitblit v1.9.1