From 08b4403ec8d6b69528d161cfcad80b5d64dea76c Mon Sep 17 00:00:00 2001
From: Administrator <876263681@qq.com>
Date: 星期三, 02 七月 2025 15:12:43 +0800
Subject: [PATCH] #优化库位检索

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |  111 +++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 102 insertions(+), 9 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 9123f37..3d64d92 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -8,10 +8,7 @@
 import com.core.common.SnowflakeIdWorker;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.*;
-import com.zy.asrs.entity.param.EmptyPlateOutParam;
-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.entity.param.*;
 import com.zy.asrs.service.*;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
@@ -377,7 +374,7 @@
         wrkMast.setSourceStaNo(dto.getSourceStaNo());
         wrkMast.setStaNo(dto.getStaNo());
         wrkMast.setLocNo(dto.getLocNo());
-        wrkMast.setFullPlt("N"); // 婊℃澘
+        wrkMast.setFullPlt(sourceStaNo.getFronting()); // 婊℃澘
         wrkMast.setPicking("N"); // 鎷f枡
         wrkMast.setExitMk("N"); // 閫�鍑�
         wrkMast.setEmptyMk("Y"); // 绌烘澘
@@ -421,8 +418,15 @@
             throw new CoolException("绔欑偣涓嶅瓨鍦�");
         }
         for (String locNo : param.getLocNos()) {
-            // 鑾峰彇宸ヤ綔鍙�
-            int workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+            int workNo=9992;
+//            if(param.getOutSite()==114||param.getOutSite()==103){
+//                // 鑾峰彇宸ヤ綔鍙�
+//                workNo = commonService.getWorkNo(WorkNoType.OTHER.type);
+//            }else {
+//                // 鑾峰彇宸ヤ綔鍙�
+//                workNo = commonService.getWorkNo(WorkNoType.PAKOUT.type);
+//            }
+
             // 鑾峰彇搴撲綅
             LocMast locMast = locMastService.selectById(locNo);
             if (Cools.isEmpty(locMast)) {
@@ -450,7 +454,7 @@
             wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
-            wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+            wrkMast.setFullPlt(locMast.getFullPlt()); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
             wrkMast.setExitMk("N"); // 閫�鍑�
             wrkMast.setEmptyMk("Y"); // 绌烘澘
@@ -512,7 +516,7 @@
             wrkMast.setStaNo(param.getOutSite()); // 鐩爣绔�
             wrkMast.setCrnNo(locMast.getCrnNo());
             wrkMast.setSourceLocNo(locNo); // 婧愬簱浣�
-            wrkMast.setFullPlt("N"); // 婊℃澘锛歒
+            wrkMast.setFullPlt(locMast.getFullPlt()); // 婊℃澘锛歒
             wrkMast.setPicking("N"); // 鎷f枡
             wrkMast.setExitMk("N"); // 閫�鍑�
             wrkMast.setEmptyMk("Y"); // 绌烘澘
@@ -643,6 +647,87 @@
 
     @Override
     @Transactional
+    public void locCombOut(ReplenishmentParam param, Long userId) {
+        // 鍙傛暟闈炵┖鍒ゆ柇
+        if (Cools.isEmpty(param.getDevpNo(), param.getList())) {
+            throw new CoolException(BaseRes.PARAM);
+        }
+        //鍒ゆ柇搴撲綅鍙枫�佸簱浣嶇姸鎬�
+        LocMast locMast;
+        if (Cools.isEmpty(param.getLocNo())){
+            throw new CoolException("骞舵澘鍑哄簱搴撲綅鍙傛暟閿欒");
+        }else {
+            locMast = locMastService.selectById(param.getLocNo());
+            if(!Cools.isEmpty(locMast)){
+                if (!locMast.getLocSts().equals("F")){
+                    throw new CoolException("骞舵澘搴撲綅闈炲湪搴撶姸鎬�");
+                }
+            }else{
+                throw new CoolException("搴撳瓨涓簱浣嶅彿涓嶅瓨鍦�");
+            }
+        }
+        // 婧愮珯鐐圭姸鎬佹娴�
+//        BasDevp sourceStaNo = basDevpService.checkSiteStatus(param.getDevpNo(), true);
+        // 鐢熸垚宸ヤ綔鍙�
+        int workNo = commonService.getWorkNo(DEFAULT_WORK_NO_TYPE);
+        // 鑾峰彇璺緞
+        Wrapper<StaDesc> wrapper = new EntityWrapper<StaDesc>()
+                .eq("type_no", 104)
+                .eq("stn_no", param.getDevpNo())
+                .eq("crn_no", locMast.getCrnNo());
+        StaDesc staDesc = staDescService.selectOne(wrapper);
+        if (Cools.isEmpty(staDesc)) {
+            throw new CoolException("鍑哄簱璺緞涓嶅瓨鍦�");
+        }
+        // 鐢熸垚宸ヤ綔妗�
+        WrkMast wrkMast = new WrkMast();
+        wrkMast.setWrkNo(workNo);
+        wrkMast.setIoTime(new Date());
+        wrkMast.setWrkSts(11L); // 宸ヤ綔鐘舵�侊細鐢熸垚鍏ュ簱ID
+        wrkMast.setIoType(104); // 鍏ュ嚭搴撶姸鎬侊細1.鍏ュ簱
+        wrkMast.setIoPri(13D); // 浼樺厛绾э細10
+        wrkMast.setCrnNo(locMast.getCrnNo());
+        wrkMast.setSourceStaNo(staDesc.getCrnStn());
+        wrkMast.setStaNo(param.getDevpNo());
+        wrkMast.setSourceLocNo(param.getLocNo());
+        wrkMast.setBarcode(locMast.getBarcode()); // 鎵樼洏鐮�
+        wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
+        wrkMast.setPicking("N"); // 鎷f枡
+        wrkMast.setExitMk("N"); // 閫�鍑�
+        wrkMast.setEmptyMk("N"); // 绌烘澘
+        wrkMast.setLinkMis("N");
+        wrkMast.setCtnType(locMast.getCtnType()); // 瀹瑰櫒绫诲瀷
+        // 鎿嶄綔浜哄憳鏁版嵁
+        wrkMast.setAppeUser(userId);
+        wrkMast.setAppeTime(new Date());
+        wrkMast.setModiUser(userId);
+        wrkMast.setModiTime(new Date());
+        boolean res = wrkMastService.insert(wrkMast);
+        if (!res) {
+            throw new CoolException("淇濆瓨宸ヤ綔妗eけ璐�");
+        }
+        // 鐢熸垚宸ヤ綔妗f槑缁�
+        List<MatCodeCountDto> matDtos = new ArrayList<>();
+        param.getList().forEach(elem -> {
+            matDtos.add(new MatCodeCountDto(elem.getMatnr(), elem.getBatch(), elem.getCount()));
+        });
+        wrkDetlService.createWorkDetail2(workNo, matDtos, locMast.getBarcode(), userId);
+        // 鏇存柊搴撲綅鐘舵��
+//        LocMast locMast = locMastService.selectById(dto.getLocNo());
+        if (locMast.getLocSts().equals("F")){
+            locMast.setLocSts("P"); // P.骞舵澘鍑哄簱棰勭害
+            locMast.setModiUser(userId);
+            locMast.setModiTime(new Date());
+            if (!locMastService.updateById(locMast)){
+                throw new CoolException("鏀瑰彉搴撲綅鐘舵�佸け璐�");
+            }
+        } else {
+            throw new CoolException(locMast.getLocNo()+"鐩爣搴撲綅宸茶鍗犵敤");
+        }
+    }
+
+    @Override
+    @Transactional
     public void completeWrkMast(String workNo, Long userId) {
         WrkMast wrkMast = wrkMastService.selectById(workNo);
         if (Cools.isEmpty(wrkMast)){
@@ -684,6 +769,13 @@
 
         Date now = new Date();
         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", param.getLocNo()));
+
+        String zpallet = "";
+        for (LocDetl locDetl : locDetls) {
+            if (!Cools.isEmpty(locDetl.getZpallet())) {
+                zpallet = locDetl.getZpallet();
+            }
+        }
 
         List<LocDetlAdjustParam.LocDetlAdjust> list = param.getList();
 
@@ -748,6 +840,7 @@
             Mat mat = matService.selectByMatnr(adjust.getMatnr());
             LocDetl locDetl = new LocDetl();
             locDetl.sync(mat);
+            locDetl.setZpallet(zpallet);
             locDetl.setBatch(adjust.getBatch());
             locDetl.setLocNo(locMast.getLocNo());
             locDetl.setAnfme(adjust.getCount()); // 鏁伴噺

--
Gitblit v1.9.1