From 3f34143c246030d2a2a6f82bbe36a0b7181b2e53 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期日, 18 八月 2024 17:19:55 +0800
Subject: [PATCH] 出库优化

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   69 +++++++++++++++++++++++++++++-----
 1 files changed, 59 insertions(+), 10 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 5ac75fc..0768566 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -13,7 +13,6 @@
 import com.zy.asrs.entity.param.LocDetlAdjustParam;
 import com.zy.asrs.entity.param.StockOutParam;
 import com.zy.asrs.service.*;
-import com.zy.asrs.utils.OutboundAllocationUtil;
 import com.zy.asrs.utils.Utils;
 import com.zy.common.model.*;
 import com.zy.common.model.enums.IoWorkType;
@@ -28,7 +27,6 @@
 
 import java.util.*;
 import java.util.concurrent.TimeUnit;
-import java.util.stream.Collectors;
 
 /**
  * Created by vincent on 2020/6/11
@@ -165,10 +163,12 @@
         // 鑾峰彇搴撲綅鏄庣粏
         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 (!Cools.isEmpty(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getCount())) {
+                LocDetl one = locDetlService.selectOne(new EntityWrapper<LocDetl>().eq("loc_no",paramLocDetl.getLocNo())
+                        .eq("brand",paramLocDetl.getBrand()).eq("model",paramLocDetl.getModel()));
+//                        selectItem(paramLocDetl.getLocNo(), paramLocDetl.getMatnr(), paramLocDetl.getBatch());
                 if (null != one) locDetlDtos.add(new LocDetlDto(one, paramLocDetl.getCount(), param.getOrderNo()));
-            }
+//            }
         }
         if (!locDetlDtos.isEmpty()) {
             LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetlDtos.get(0).getLocDetl().getLocNo()));
@@ -403,7 +403,48 @@
         LocMast locMast = locMastService.selectById(taskDto.getLocNo());
         // 鑾峰彇璺緞
         int ioType = taskDto.isAll() ? 101 : 103;
-        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+//        StaDesc staDesc = staDescService.queryCrnStnAuto(ioType, locMast.getCrnNo(), staNo.getDevNo());
+        // 鏍规嵁搴撲綅鎺掑彿+鍑哄簱绔欑偣锛岃幏鍙栧嚭搴撴簮绔欑偣
+        int row = Integer.parseInt(locMast.getLocNo().substring(0, 2));
+        int souresStaNo = 0;
+        if (taskDto.getStaNo() < 3000) { // 浜屾ゼ
+            switch (row) {
+                case 1: case 2: case 3:
+                case 4: souresStaNo = 2062; break;
+                case 5: case 6: case 7:
+                case 8: souresStaNo = 2065; break;
+                case 9: case 10: case 11:
+                case 12: souresStaNo = 2068; break;
+                case 13: case 14: case 15:
+                case 16: souresStaNo = 2070; break;
+                case 17: case 18: case 19:
+                case 20: souresStaNo = 2073; break;
+                case 21: case 22: case 23:
+                case 24: souresStaNo = 2076; break;
+                default:
+            }
+        } else { // 涓�妤�
+            switch (row) {
+                case 1: case 2: case 3:
+                case 4: souresStaNo = 3002; break;
+                case 5: case 6: case 7:
+                case 8: souresStaNo = 3003; break;
+                case 9: case 10: case 11:
+                case 12: souresStaNo = 3006; break;
+                case 13: case 14: case 15:
+                case 16: souresStaNo = 3008; break;
+                case 17: case 18: case 19:
+                case 20: souresStaNo = 3009; break;
+                case 21: case 22: case 23:
+                case 24: souresStaNo = 3012; break;
+                default:
+            }
+        }
+
+        if (souresStaNo == 0) {
+            throw new CoolException("婧愮珯鐐硅浆鎹㈠紓甯革細" + row);
+        }
+
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = commonService.getWorkNo(WorkNoType.getWorkNoType(ioType));
         // 鐢熸垚宸ヤ綔妗�
@@ -414,8 +455,8 @@
         wrkMast.setIoType(ioType); // 鍏ュ嚭搴撶姸鎬�
         wrkMast.setIoPri(13D); // 浼樺厛绾э細13
         wrkMast.setCrnNo(locMast.getCrnNo());
-        wrkMast.setSourceStaNo(staDesc.getCrnStn()); // 婧愮珯
-        wrkMast.setStaNo(staDesc.getStnNo()); // 鐩爣绔�
+        wrkMast.setSourceStaNo(souresStaNo); // 婧愮珯
+        wrkMast.setStaNo(taskDto.getStaNo()); // 鐩爣绔�
         wrkMast.setSourceLocNo(taskDto.getLocNo()); // 婧愬簱浣�
         wrkMast.setFullPlt("Y"); // 婊℃澘锛歒
         wrkMast.setPicking("N"); // 鎷f枡
@@ -438,9 +479,17 @@
                 orderDetl = orderDetlService.selectItem(locDto.getOrderNo(), locDto.getMatnr(), null);
             }
             WrkDetl wrkDetl = new WrkDetl();
-            wrkDetl.sync(orderDetl);
+//            wrkDetl.sync(orderDetl);
             wrkDetl.setZpallet(wrkMast.getBarcode());
             wrkDetl.setIoTime(now);
+            wrkDetl.setMatnr(locDto.getMatnr());
+            wrkDetl.setMaktx(locDto.getMaktx());
+            wrkDetl.setWeight(locDto.getWeight()); // 鍑�閲�
+            wrkDetl.setVolume(locDto.getVolume()); // 姣涢噸
+            wrkDetl.setOrigin(locDto.getOrigin()); // 鏈ㄧ鍦ㄦ墭鐩樹綅缃�
+            wrkDetl.setPrice(locDto.getPrice());
+            wrkDetl.setSpecs(locDto.getSpecs());
+            wrkDetl.setModel(locDto.getModel());
             wrkDetl.setWrkNo(workNo);
             wrkDetl.setBatch(locDto.getBatch());
             wrkDetl.setOrderNo(locDto.getOrderNo());
@@ -1247,7 +1296,7 @@
         }
         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("matnr", param.getLocDetls().get(0).getMatnr()));
         if (Cools.isEmpty(locDetls) || locDetls.size()<1){
-            throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛�  鍝佸彿锛�"+param.getLocDetls().get(0).getMatnr());
+            throw new CoolException("寰呬慨鏀瑰晢鍝佹棤搴撳瓨锛屾棤闇�淇敼锛�  瑙勬牸锛�"+param.getLocDetls().get(0).getMatnr());
         }
         try {
             locDetlService.updateMatTurn(param.getLocDetls().get(0).getMatnr(),mat.getMatnr());

--
Gitblit v1.9.1