From d4514d2e1f586ae4cd0fc1ea0609869a96b765fc Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期二, 30 七月 2024 13:47:25 +0800
Subject: [PATCH] pda

---
 src/main/java/com/zy/asrs/controller/OutController.java |   31 +++++++++++++++++++++++++++++++
 1 files changed, 31 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/controller/OutController.java b/src/main/java/com/zy/asrs/controller/OutController.java
index 23fb3a9..c36657a 100644
--- a/src/main/java/com/zy/asrs/controller/OutController.java
+++ b/src/main/java/com/zy/asrs/controller/OutController.java
@@ -1,13 +1,16 @@
 package com.zy.asrs.controller;
 
+import com.baomidou.mybatisplus.mapper.EntityWrapper;
 import com.core.annotations.ManagerAuth;
 import com.core.common.BaseRes;
 import com.core.common.Cools;
 import com.core.common.R;
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.entity.LocDetl;
+import com.zy.asrs.entity.LocMast;
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.asrs.service.*;
+import com.zy.asrs.utils.Utils;
 import com.zy.common.model.LocDto;
 import com.zy.common.model.TaskDto;
 import com.zy.common.web.BaseController;
@@ -61,14 +64,38 @@
 
         Set<String> exist = new HashSet<>();
 
+        // 璁㈠崟鏄庣粏涓瘡涓�鏉$殑鐗╂枡鍦ㄥ簱浣嶆槑缁嗛噷闈㈡壘锛屽簱浣嶆槑缁嗘壘瀵瑰簲搴撲綅鐨勬祬娣变袱涓簱浣嶏紝杩欏氨鏄鍗曟槑缁嗕腑鐗╂枡鑳芥壘鍒扮殑鎵�鏈夊簱瀛樻槑缁�
         for (OrderDetl orderDetl : orderDetls) {
+            // 鍒ゆ柇鍑哄簱鏁伴噺-鍑哄簱瀹屾垚鏁伴噺 鏄惁宸茬粡婊¤冻鏉′欢
             double issued = Optional.of(orderDetl.getAnfme() - orderDetl.getWorkQty()).orElse(0.0D);
             if (issued <= 0.0D) { continue; }
+            // 鏍规嵁鐗╂枡鍜屾壒娆℃煡璇㈠簱浣嶆槑缁嗕腑鍖呭惈鐨勫簱浣嶆槑缁�
             List<LocDetl> locDetls = locDetlService.queryStock(orderDetl.getMatnr(), orderDetl.getBatch(), null, exist);
+            // 涓嶉噸澶嶇殑搴撳瓨鏄庣粏锛屼篃鍖呮嫭涓嶆弧瓒虫潯浠剁殑搴撲綅鏄庣粏
+            Set<LocDetl> list = new LinkedHashSet<>();
             for (LocDetl locDetl : locDetls) {
+                // 鎷垮埌杩欎釜搴撲綅鏄庣粏瀵瑰簲鐨勫簱浣嶅彿鐨勫厛娴呭悗娣变袱涓簱浣嶅彿
+                List<String> groupLoc = Utils.getGroupLocNo(locDetl.getLocNo(), false);
+                for (String loc : groupLoc) {
+                    LocMast locMast = locMastService.selectById(loc);
+                    // 涓嶅湪搴撳垯涓嬩竴娆″惊鐜紝杩欐槸涓轰簡鎶婃祬娣变袱涓簱浣嶇殑鐗╂枡鏄庣粏閮藉彇鍑烘潵锛岀湅鏄笉鏄兘婊¤冻鍏朵粬璁㈠崟涓殑鐗╂枡
+                    if (!locMast.getLocSts().equals("F")) {
+                        continue;
+                    }
+
+                    // 鍦ㄥ簱鍒欐煡璇㈠嚭杩欎釜搴撶殑搴撳瓨鏄庣粏
+                    List<LocDetl> detls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no",loc));
+                    // 杩藉姞鍒版槑缁嗘湯灏�,涓嶉噸澶�
+                    list.addAll(detls);
+                }
+            }
+            // 鐩村埌婊¤冻璁㈠崟鏁伴噺鏉′欢
+            for (LocDetl locDetl : list) {
                 if (issued > 0) {
+                    // 杩樺樊鐨勬暟閲忓鏋滃ぇ浜庤搴撲綅鏄庣粏鏁伴噺鍒欏彇搴撲綅鏄庣粏鏁伴噺
                     LocDto locDto = new LocDto(locDetl.getLocNo(), locDetl.getMatnr(), locDetl.getMaktx(), locDetl.getBatch(), orderDetl.getOrderNo(),
                             issued >= locDetl.getAnfme() ? locDetl.getAnfme() : issued);
+                    // 杩樺樊鐨勬暟閲忓鏋滃ぇ浜庤搴撲綅鏄庣粏鏁伴噺鍒欏彇搴撲綅鏄庣粏鏁伴噺閭e氨鏄嚭搴擄紝鍚﹀垯鎹℃枡鍑哄簱锛屽苟鏌ヨ鍑哄嚭搴撶珯鐐�
                     List<Integer> staNos = staDescService.queryOutStaNosByLocNo(locDetl.getLocNo(), issued >= locDetl.getAnfme() ? 101 : 103);
                     locDto.setStaNos(staNos);
                     locDtos.add(locDto);
@@ -79,6 +106,7 @@
                     break;
                 }
             }
+            // 杩樹笉澶熸爣璁颁负true锛屼笉鑳藉畬鎴愯鍗�
             if (issued > 0) {
                 LocDto locDto = new LocDto(null, orderDetl.getMatnr(), orderDetl.getMaktx(), orderDetl.getBatch(), orderDetl.getOrderNo(), issued);
                 locDto.setLack(Boolean.TRUE);
@@ -112,9 +140,12 @@
         for (LocDto locDto : locDtos) {
             if (locDto.isLack()) { continue; }
             TaskDto taskDto = new TaskDto(locDto.getLocNo(), locDto.getStaNo(), locDto);
+            // 濡傛灉搴撲綅鍜屼綔涓氱珯鐐规湁閲嶅
             if (TaskDto.has(taskDtos, taskDto)) {
+                // 鎵惧埌閲嶅鐨勯偅涓�
                 TaskDto dto = TaskDto.find(taskDtos, taskDto);
                 assert dto != null;
+                // 鎶婇噸澶嶇殑杩藉姞鍒颁换鍔¢噷闈�
                 dto.getLocDtos().addAll(taskDto.getLocDtos());
             } else {
                 taskDtos.add(taskDto);

--
Gitblit v1.9.1