From f72b0dc0ae80fee81a7a678deb0e3d97f89a0e1b Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期三, 21 八月 2024 09:23:46 +0800
Subject: [PATCH] #优化

---
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   77 +++++++++++++++++++++++++++-----------
 1 files changed, 54 insertions(+), 23 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 9380c83..79f152d 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -94,7 +94,7 @@
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
         List<String> matnrs = param.getList().stream().map(FullStoreParam.MatCodeStore::getMatnr).distinct().collect(Collectors.toList());
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto);
+        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 1, param.getDevpNo(), matnrs, locTypeDto,0);
         // 鐢熸垚宸ヤ綔鍙�
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
@@ -167,17 +167,25 @@
         for(StockOutParam.LocDetl one : param.getLocDetls()){
             locs.add(one.getLocNo());
         }
-        boolean sign = true;
-        for (StockOutParam.LocDetl locDetl : param.getLocDetls()) {
-            LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
-            //鑾峰彇鍚屼竴搴撲綅缁勭殑澶栦晶搴撲綅鍙�
-            List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo());
-            if (locMast.getLocType2().equals((short)3)){
-                groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locDetl.getLocNo());
-            }
 
+        List<StockOutParam.LocDetl> stockOutParamLocDetlSort = Utils.getStockOutParamLocDetlSort(param.getLocDetls());
+        boolean sign = true;
+        List<String> locNoWeighting = new ArrayList<>();
+        for (StockOutParam.LocDetl locDetl : stockOutParamLocDetlSort) {
+            if (Cools.isEmpty(locNoWeighting)){
+                locNoWeighting.add(locDetl.getLocNo());
+            }else {
+                if (!Utils.getLocNoWeighting(locNoWeighting,locDetl.getLocNo())){
+                    locNoWeighting.add(locDetl.getLocNo());
+                    sign = true;
+                }
+            }
             if (sign){
-                if (locMast.getLocType2().equals((short)3)) {
+                LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", locDetl.getLocNo()));
+                //鑾峰彇鍚屼竴搴撲綅缁勭殑澶栦晶搴撲綅鍙�
+                List<String> groupOuterSingleLoc = Utils.getGroupOuterSingleLoc(locDetl.getLocNo());
+                if (locMast.getLocType2().equals((short)3)){
+                    groupOuterSingleLoc = Utils.getGroupOuterSingleLocLowFrequency(locDetl.getLocNo());
                     sign = false;
                 }
                 for (String locNo : groupOuterSingleLoc) {
@@ -470,21 +478,44 @@
         Date now = new Date();
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
+        ArrayList<String> locNos2 = new ArrayList<String>();
         List<OutLocDto> dtos = new ArrayList<>();
         for (LocDetlDto locDetlDto : locDetlDtos) {
             String locNo = locDetlDto.getLocDetl().getLocNo();
-            if (locNos.contains(locNo)) {
-                for (OutLocDto dto : dtos) {
-                    if (dto.getLocNo().equals(locNo)) {
-                        dto.getLocDetlDtos().add(locDetlDto);
-                        break;
+            locNos2.add(locNo);
+            //if (locNos.contains(locNo)) {
+                //for (OutLocDto dto : dtos) {
+                //    if (dto.getLocNo().equals(locNo)) {
+                //        dto.getLocDetlDtos().add(locDetlDto);
+                //        break;
+                //    }
+                //}
+            //} else {
+                //locNos.add(locNo);
+
+                //dtos.add(new OutLocDto(locNo, locDetlDto));
+            //}
+        }
+        List<String> innermostSideLoc = Utils.getInnermostSideLoc(locNos2, true);
+        System.out.println(innermostSideLoc);
+        for (LocDetlDto locDetlDto : locDetlDtos) {
+            String locNo = locDetlDto.getLocDetl().getLocNo();
+            if(innermostSideLoc.contains(locNo)) {
+                if (locNos.contains(locNo)) {
+                    for (OutLocDto dto : dtos) {
+                        if (dto.getLocNo().equals(locNo)) {
+                            dto.getLocDetlDtos().add(locDetlDto);
+                            break;
+                        }
                     }
+                } else {
+                    locNos.add(locNo);
+                    dtos.add(new OutLocDto(locNo, locDetlDto));
                 }
-            } else {
-                locNos.add(locNo);
-                dtos.add(new OutLocDto(locNo, locDetlDto));
+                //dtos.add(new OutLocDto(locNo,locDetlDto));
             }
         }
+
         Integer ioType = null;
         List<String> excludeLocNos = dtos.stream().map(OutLocDto::getLocNo).distinct().collect(Collectors.toList());
         // 鐢熸垚宸ヤ綔妗�
@@ -815,7 +846,7 @@
                         }
                         WaitPakin waitPakin = new WaitPakin();
                         waitPakin.sync(mat);
-                        waitPakin.setBatch("");
+                        //waitPakin.setBatch("");
                         waitPakin.setZpallet(locDetl.getZpallet());   // 鎵樼洏鐮�
                         waitPakin.setIoStatus("N");     // 鍏ュ嚭鐘舵��
                         waitPakin.setAnfme(locDetl.getAnfme());  // 鏁伴噺
@@ -1193,7 +1224,7 @@
         BasDevp sourceStaNo = basDevpService.checkSiteStatus(devpNo, true);
         // 妫�绱㈠簱浣�
         LocTypeDto locTypeDto = new LocTypeDto(sourceStaNo);
-        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto);
+        StartupDto dto = commonService.getLocNo(DEFAULT_ROW_NO_TYPE, 10, devpNo, null, locTypeDto,0);
         int workNo = dto.getWorkNo();
         // 鐢熸垚宸ヤ綔妗�
         WrkMast wrkMast = new WrkMast();
@@ -1504,6 +1535,7 @@
                     AdjDetl adjDetl = new AdjDetl();
                     adjDetl.setLocNo(locDetl.getLocNo());
                     adjDetl.setMatnr(locDetl.getMatnr());
+                    adjDetl.setSpecs(locDetl.getSpecs());
                     adjDetl.setBatch(locDetl.getBatch());
                     adjDetl.setOriQty(locDetl.getAnfme());
                     adjDetl.setAdjQty(adjust.getCount());
@@ -1655,7 +1687,7 @@
         for (WrkDetl wrkDetl : wrkDetls) {
             if (!Cools.isEmpty(wrkDetl.getOrderNo())){
                 String[] orderNos = GetOrderNo(wrkDetl.getOrderNo());
-                if (!Cools.isEmpty(orderNos)){
+                if (!Cools.isEmpty(orderNos) && orderNos.length!=0){
                     String[] anfmes = GetAnfme(wrkDetl.getOrderNo());
                     int i = 0;
                     for (String orderNo : orderNos) {
@@ -1729,8 +1761,7 @@
         if (!wrkMastRes || !locMastRes) {
             throw new CoolException("淇濆瓨鏁版嵁澶辫触");
         }
-        WaitPakin waitPakin = waitPakinService.selectOne(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
-        waitPakinService.delete(new EntityWrapper<>(waitPakin));
+        waitPakinService.delete(new EntityWrapper<WaitPakin>().eq("zpallet", wrkMast.getBarcode()));
     }
 
     @Override

--
Gitblit v1.9.1