From c0bc2548715c8506bc69c5b6625e0810264b9fb6 Mon Sep 17 00:00:00 2001
From: dubin <bindu_bean@163.com>
Date: 星期五, 17 十月 2025 15:24:25 +0800
Subject: [PATCH] 联调
---
src/main/java/com/zy/asrs/utils/MatCompareUtils.java | 62 ++++++++++++++++++++++++++-----
1 files changed, 52 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/asrs/utils/MatCompareUtils.java b/src/main/java/com/zy/asrs/utils/MatCompareUtils.java
index 69a0fc0..192f4af 100644
--- a/src/main/java/com/zy/asrs/utils/MatCompareUtils.java
+++ b/src/main/java/com/zy/asrs/utils/MatCompareUtils.java
@@ -1,10 +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;
/**
* 鐢ㄦ埛鐗╂枡淇℃伅姣斿锛屽垽鏂槸鍚︿负鍚屼竴鐗╂枡
@@ -13,7 +19,7 @@
private static final Logger log = LoggerFactory.getLogger(MatCompareUtils.class);
- private static final String[] sameFields = {"matnr", "batch", "outOrderNo", "luHao", "packing", "sPgNO", "proType"};
+ private static final String[] sameFields = {"matnr", "batch", "outOrderNo", "luHao", "packing", "sPgNO", "proType","color"};
public static boolean compare(Object object1, Object object2) {
@@ -23,12 +29,42 @@
for (String fieldName : sameFields) {
Object fieldValue1 = getFieldValue(object1, fieldName);
Object fieldValue2 = getFieldValue(object2, fieldName);
- if (isSame(fieldValue1, fieldValue2)) {
- log.info("瀛楁{}淇℃伅涓�鑷达紝{}-{}", fieldName, fieldValue1, fieldValue2);
+ if (!isSame(fieldValue1, fieldValue2)) {
+ log.info("瀛楁{}淇℃伅涓嶄竴鑷达紝{}_{}-{}_{}", fieldName, object1.getClass(), fieldValue1, object2.getClass(), fieldValue2);
return false;
}
}
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) {
@@ -46,15 +82,21 @@
Field field = null;
try {
field = aClass.getDeclaredField(fieldName);
- } catch (NoSuchFieldException e) {
- throw new RuntimeException(e);
- }
- field.setAccessible(true); // 璁剧疆涓哄彲璁块棶
- try {
+ // 璁剧疆涓哄彲璁块棶
+ field.setAccessible(true);
return field.get(object);
- } catch (IllegalAccessException e) {
- throw new RuntimeException(e);
+ } catch (NoSuchFieldException | IllegalAccessException e) {
+ log.error("瀛楁{}缂哄け,瀵硅薄{}", fieldName, object);
+ return null;
}
}
+ public static void main(String[] args) {
+ LocDto locDto = new LocDto();
+ locDto.setMatnr("123");
+ OrderDetl orderDetl = new OrderDetl();
+ orderDetl.setMatnr("123");
+ System.out.println(compare(locDto, orderDetl));
+ }
+
}
--
Gitblit v1.9.1