diff --git a/src/main/java/com/yem/em/utils/SubRelationUtils.java b/src/main/java/com/yem/em/utils/SubRelationUtils.java index 2188b6c6..d0c7ac0e 100644 --- a/src/main/java/com/yem/em/utils/SubRelationUtils.java +++ b/src/main/java/com/yem/em/utils/SubRelationUtils.java @@ -13,10 +13,7 @@ import kd.bos.servicehelper.QueryServiceHelper; import kd.bos.servicehelper.operation.OperationServiceHelper; import java.math.BigDecimal; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.List; +import java.util.*; import java.util.stream.Stream; /** @@ -109,7 +106,7 @@ public class SubRelationUtils { qFilter.and(new QFilter("yem_entryentity.yem_completetime", QCP.less_equals, new Date())); String selectfield = DynamicObjectUtil.getSelectfields("yem_em_replace", false); String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_em_replace", "yem_entryentity", false); - object = QueryServiceHelper.query("yem_em_replace", selectfields, new QFilter[]{qFilter}, "yem_entryentity.yem_completetime DESC"); + object = QueryServiceHelper.query("yem_em_replace", "yem_entryentity.id," + selectfields, new QFilter[]{qFilter}, "yem_entryentity.yem_completetime DESC"); if (object.size() > 0) { object = queryAssemblyreplevel(object, replacement, isComplete, yem_completetime); } @@ -147,12 +144,22 @@ public class SubRelationUtils { String selectfield = DynamicObjectUtil.getSelectfields("yem_em_replace", false); String selectfields = DynamicObjectUtil.getEntrySelectfields(selectfield, "yem_em_replace", "yem_entryentity", false); DynamicObjectCollection yem_em_replace = QueryServiceHelper.query("yem_em_replace", - selectfields, new QFilter[]{qFilter}, "yem_entryentity.yem_completetime DESC"); - if (yem_em_replace.size() > 0) { - for (int j = 0; j < yem_em_replace.size(); j++) { - object.add(yem_em_replace.get(j)); + "yem_entryentity.id," + selectfields, new QFilter[]{qFilter}, "yem_entryentity.yem_completetime DESC"); + if (!yem_em_replace.isEmpty()) { + int count = 0; + Set ids = new HashSet<>(); + for (DynamicObject dynamicObject : object) { + ids.add(dynamicObject.getLong("yem_entryentity.id")); + } + for (DynamicObject dynamicObject : yem_em_replace) { + if (!ids.contains(dynamicObject.getLong("yem_entryentity.id"))) { + object.add(dynamicObject); + count++; + } + } + if (count > 0) { + queryAssemblyreplevel(yem_em_replace, replacement, isComplete, yem_completetime); } - queryAssemblyreplevel(yem_em_replace, replacement, isComplete, yem_completetime); } } return object;