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