From 429082daa99524dde4dcfbd80d1d0f6d027b117f Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期六, 02 四月 2022 10:37:03 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java |   28 ++++++++++++++++++++++++++++
 src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java    |    2 ++
 2 files changed, 30 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java b/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java
index 065f774..fda07cf 100644
--- a/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java
+++ b/src/main/java/com/zy/asrs/entity/param/LocDetlAdjustParam.java
@@ -1,7 +1,9 @@
 package com.zy.asrs.entity.param;
 
+import com.core.common.Cools;
 import lombok.Data;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -28,6 +30,32 @@
         // 鍙樻洿鏁伴噺
         private Double count;
 
+        public LocDetlAdjust(String matnr, String batch, Double count) {
+            this.matnr = matnr;
+            this.batch = batch;
+            this.count = count;
+        }
+    }
+
+    public void integrate() {
+        if (Cools.isEmpty(list)) {
+            return;
+        }
+        List<LocDetlAdjust> copyList = new ArrayList<>();
+        for (LocDetlAdjust adjust : list) {
+            boolean exit = false;
+            for (LocDetlAdjust copy : copyList) {
+                if (adjust.getMatnr().equals(copy.getMatnr()) && Cools.eq(adjust.getBatch(), copy.getBatch())) {
+                    copy.setCount(copy.getCount() + adjust.getCount());
+                    exit = true;
+                    break;
+                }
+            }
+            if (!exit) {
+                copyList.add(new LocDetlAdjustParam.LocDetlAdjust(adjust.getMatnr(), adjust.getBatch(), adjust.getCount()));
+            }
+        }
+        list = copyList;
     }
 
 
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 ec01caa..b051cbf 100644
--- a/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/WorkServiceImpl.java
@@ -580,6 +580,7 @@
     @Override
     @Transactional
     public void adjustLocDetl(LocDetlAdjustParam param, Long userId) {
+        param.integrate();
         LocMast locMast = locMastService.selectById(param.getLocNo());
         if (Cools.isEmpty(locMast)) {
             throw new CoolException("搴撲綅涓嶅瓨鍦�");
@@ -654,6 +655,7 @@
             Mat mat = matService.selectByMatnr(adjust.getMatnr());
             LocDetl locDetl = new LocDetl();
             locDetl.sync(mat);
+            locDetl.setBatch(adjust.getBatch());
             locDetl.setLocNo(locMast.getLocNo());
             locDetl.setAnfme(adjust.getCount()); // 鏁伴噺
             locDetl.setModiUser(userId); // 鎿嶄綔浜哄憳淇℃伅

--
Gitblit v1.9.1