From e28f0020df3b7b7c5fbfc79af99a208d57673401 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 30 三月 2022 15:18:06 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/common/model/OutLocDto.java            |   12 ++++++------
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java |   22 ++++++++++++----------
 src/main/webapp/static/js/pakStore/stockOut.js              |    9 ++-------
 3 files changed, 20 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 6d3a63e..891eab1 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -170,20 +170,22 @@
         Date now = new Date();
         // 鍚堝苟鍚岀被椤�
         Set<String> locNos = new HashSet<>();
-        locDetlDtos.forEach(dto -> locNos.add(dto.getLocDetl().getLocNo()));
         List<OutLocDto> dtos = new ArrayList<>();
-        for (String locNo : locNos) {
-            List<LocDetlDto> list = new ArrayList<>();
-            Iterator<LocDetlDto> iterator = locDetlDtos.iterator();
-            while (iterator.hasNext()) {
-                LocDetlDto dto = iterator.next();
-                if (locNo.equals(dto.getLocDetl().getLocNo())) {
-                    list.add(dto);
-                    iterator.remove();
+        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;
+                    }
                 }
+            } else {
+                locNos.add(locNo);
+                dtos.add(new OutLocDto(locNo, locDetlDto));
             }
-            dtos.add(new OutLocDto(locNo, list));
         }
+
         // 鐢熸垚宸ヤ綔妗�
         for (OutLocDto dto : dtos) {
             // 鍒ゆ柇鍏ュ嚭搴撶被鍨嬶細101.鍏ㄦ澘鍑哄簱 or 103.鎷f枡鍑哄簱
diff --git a/src/main/java/com/zy/common/model/OutLocDto.java b/src/main/java/com/zy/common/model/OutLocDto.java
index 3fc958d..810abac 100644
--- a/src/main/java/com/zy/common/model/OutLocDto.java
+++ b/src/main/java/com/zy/common/model/OutLocDto.java
@@ -8,8 +8,7 @@
 import com.zy.asrs.service.LocDetlService;
 import lombok.Data;
 
-import java.util.Iterator;
-import java.util.List;
+import java.util.*;
 
 /**
  * Created by vincent on 2020/6/17
@@ -19,17 +18,18 @@
 
     private String locNo;
 
-    private List<LocDetlDto> locDetlDtos;
+    private List<LocDetlDto> locDetlDtos = new ArrayList<>();
 
     public OutLocDto() {
     }
 
-    public OutLocDto(String locNo, List<LocDetlDto> locDetlDtos) {
+    public OutLocDto(String locNo, LocDetlDto locDetlDto) {
         this.locNo = locNo;
-        this.locDetlDtos = locDetlDtos;
+        this.locDetlDtos.add(locDetlDto);
     }
 
     public boolean isAll(){
+        List<LocDetlDto> locDetlDtosCp = new ArrayList<>(this.locDetlDtos);
         // 鏌ヨ褰撳墠搴撲綅鍙锋墍鏈夌殑搴撳瓨鏄庣粏
         LocDetlService locDetlService = SpringUtils.getBean(LocDetlService.class);
         List<LocDetl> locDetls = locDetlService.selectList(new EntityWrapper<LocDetl>().eq("loc_no", this.locNo));
@@ -38,7 +38,7 @@
         }
         int sameNumber = 0;
         for (LocDetl locDetl : locDetls) {
-            Iterator<LocDetlDto> iterator = this.locDetlDtos.iterator();
+            Iterator<LocDetlDto> iterator = locDetlDtosCp.iterator();
             while (iterator.hasNext()) {
                 LocDetl next = iterator.next().getLocDetl();
                 if (!next.getMatnr().equals(locDetl.getMatnr())) {
diff --git a/src/main/webapp/static/js/pakStore/stockOut.js b/src/main/webapp/static/js/pakStore/stockOut.js
index f040a92..af9afd9 100644
--- a/src/main/webapp/static/js/pakStore/stockOut.js
+++ b/src/main/webapp/static/js/pakStore/stockOut.js
@@ -64,10 +64,9 @@
 
     // 鐩戝惉澶村伐鍏锋爮浜嬩欢
     table.on('toolbar(chooseData)', function (obj) {
-        var data = locDetlData;
         switch (obj.event) {
             case 'outbound':
-                if (data.length === 0){
+                if (locDetlData.length === 0){
                     layer.msg('璇峰厛鎻愬彇鍟嗗搧搴撳瓨', {icon: 2});
                 } else {
                     var staNo = $("#staNoSelect").val();
@@ -75,13 +74,9 @@
                         layer.msg("璇烽�夋嫨鍑哄簱鍙�", {icon: 2});
                         return;
                     }
-                    var locDetls = [];
-                    data.forEach(function(elem) {
-                        locDetls.push({locNo: elem.locNo, matnr: elem.matnr, batch: elem.batch, count: elem.count});
-                    });
                     let param = {
                         outSite: staNo,
-                        locDetls: locDetls
+                        locDetls: locDetlData
                     }
                     $.ajax({
                         url: baseUrl+"/plate/out/start",

--
Gitblit v1.9.1