From ef6aa6144ed04a8f1ee243df619de94df700d98f Mon Sep 17 00:00:00 2001
From: zhangchao <zc857179121@qq.com>
Date: 星期六, 23 十一月 2024 09:52:42 +0800
Subject: [PATCH] 库位利用率接口

---
 src/main/java/com/zy/asrs/utils/MatCompareUtils.java |   34 ++++++++++++++++++++++++++++++++++
 1 files changed, 34 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/asrs/utils/MatCompareUtils.java b/src/main/java/com/zy/asrs/utils/MatCompareUtils.java
index 947f84f..192f4af 100644
--- a/src/main/java/com/zy/asrs/utils/MatCompareUtils.java
+++ b/src/main/java/com/zy/asrs/utils/MatCompareUtils.java
@@ -1,12 +1,16 @@
 package com.zy.asrs.utils;
 
 import com.core.common.Cools;
+import com.zy.asrs.entity.LocDetl;
 import com.zy.asrs.entity.OrderDetl;
 import com.zy.common.model.LocDto;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Objects;
 
 /**
  * 鐢ㄦ埛鐗╂枡淇℃伅姣斿锛屽垽鏂槸鍚︿负鍚屼竴鐗╂枡
@@ -33,6 +37,36 @@
         return true;
     }
 
+    /**
+     * 姣旇緝涓や釜闆嗗悎鐨勭被鐨勫睘鎬э紝鐩稿悓鍒欐姷娑堬紝鏈�鍚庡垽鏂袱涓泦鍚堟槸鍚﹀畬鍏ㄦ姷娑�
+     */
+    public static boolean compareAndCheckCancellation(List<LocDetl> list1, List<OrderDetl> list2) {
+        if (list1.size() != list2.size()) {
+            return false; // If lists are not of the same size, cancellation is not possible
+        }
+
+        List<OrderDetl> remainingList2 = new ArrayList<>(list2);
+
+        // Compare and cancel out elements
+        for (LocDetl p1 : list1) {
+            boolean cancelled = false;
+            for (OrderDetl p2 : remainingList2) {
+                if (Objects.equals(p1.getMatnr(),p2.getMatnr()) && Objects.equals(p1.getBatch(),p2.getBatch()) && Objects.equals(p1.getOutOrderNo(),p2.getOutOrderNo()) &&
+                        Objects.equals(p1.getLuHao(),p2.getLuHao()) && Objects.equals(p1.getPacking(),p2.getPacking()) && Objects.equals(p1.getSPgNO(),p2.getSPgNO()) &&
+                        Objects.equals(p1.getProType(),p2.getProType()) && Objects.equals(p1.getColor(),p2.getColor())) {
+                    remainingList2.remove(p2);
+                    cancelled = true;
+                    break;
+                }
+            }
+            if (!cancelled) {
+                return false; // If any element in list1 cannot be cancelled, return false
+            }
+        }
+
+        return remainingList2.isEmpty(); // Return true if all elements in list1 were cancelled out
+    }
+
     private static boolean isSame(Object fieldValue1, Object fieldValue2) {
         if (Cools.isEmpty(fieldValue1)) {
             fieldValue1 = "";

--
Gitblit v1.9.1