From c08202795b7ca5bfd403ee6e4582a0ba562b58b6 Mon Sep 17 00:00:00 2001 From: zzs Date: Tue, 24 Dec 2024 14:27:42 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E7=94=9F=E6=88=90=E6=9B=BF=E6=8D=A2?= =?UTF-8?q?=E5=85=B3=E7=B3=BB=EF=BC=8C=E6=9B=B4=E6=96=B0=E5=B7=B2=E6=9C=89?= =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E5=85=B3=E7=B3=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../GenerateReplaceRelationshipTaskEdit.java | 92 ++++++++++++------- 1 file changed, 60 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/yem/em/task/GenerateReplaceRelationshipTaskEdit.java b/src/main/java/com/yem/em/task/GenerateReplaceRelationshipTaskEdit.java index 8a4aee7a..c1363273 100644 --- a/src/main/java/com/yem/em/task/GenerateReplaceRelationshipTaskEdit.java +++ b/src/main/java/com/yem/em/task/GenerateReplaceRelationshipTaskEdit.java @@ -122,39 +122,41 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask { Map successMap = new HashMap<>(); DynamicObject bomChange = createBOMChange(plmObj, enabled); DynamicObjectCollection entry = bomChange.getDynamicObjectCollection("yem_entryentity"); - String selectfields = DynamicObjectUtil.getSelectfields("yem_em_replace"); - selectfields = DynamicObjectUtil.getEntrySelectfields(selectfields, "yem_em_replace", "yem_entryentity"); - if (!entry.isEmpty()) { - DynamicObject replace = null; - String billno = plmObj.getString("billno"); - String gybg_no = plmObj.getString("yem_gybg_no"); - if (entry.size() == 1) { - logger.info("生成替换关系:PLM单号:{}, PLM工艺变更单号:{},父项编码:{}", billno, gybg_no, entry.get(0).getString("yem_parentno")); - logger.info("生成_当前替换关系:{}", entry.get(0).getString("yem_replace")); - replace = AtlasUtils.Addreplace(bomChange, entry.get(0), null, "yem_em_replace", "add", "PLM"); - successMap.put(entry.get(0).getLong("id"), bomChange); - } else { - for (DynamicObject entryObject : entry) { - int idx = entry.indexOf(entryObject); - if (idx == 0) { - QFilter qFilter = new QFilter("status", "=", "C"); - qFilter.and("number", "=", bomChange.getString("number")); - DynamicObject[] load = BusinessDataServiceHelper.load("yem_em_replace", selectfields, qFilter.toArray()); - if (load.length == 1) { - replace = load[0]; - replace = AtlasUtils.Addreplace(bomChange, entry.get(0), replace, "yem_em_replace", "update", "PLM"); - } else { - replace = AtlasUtils.Addreplace(bomChange, entry.get(0), null, "yem_em_replace", "add", "PLM"); - } - continue; - }; - logger.info("更新替换关系:PLM单号:{}, PLM工艺变更单号:{},父项编码:{}", billno, gybg_no, entryObject.getString("yem_parentno")); - logger.info("更新_替换关系:{}", entryObject.getString("yem_replace")); - replace = AtlasUtils.Addreplace(bomChange, entry.get(0), replace, "yem_em_replace", "update", "PLM"); - successMap.put(entryObject.getLong("id"), bomChange); - } - } + + for (DynamicObject entryObject : entry) { + useExistReplace(bomChange, entryObject, successMap); } +// if (!entry.isEmpty()) { +// DynamicObject replace = null; +// String billno = plmObj.getString("billno"); +// String gybg_no = plmObj.getString("yem_gybg_no"); +// if (entry.size() == 1) { +// logger.info("生成替换关系:PLM单号:{}, PLM工艺变更单号:{},父项编码:{}", billno, gybg_no, entry.get(0).getString("yem_parentno")); +// logger.info("生成_当前替换关系:{}", entry.get(0).getString("yem_replace")); +// replace = AtlasUtils.Addreplace(bomChange, entry.get(0), null, "yem_em_replace", "add", "PLM"); +// successMap.put(entry.get(0).getLong("id"), bomChange); +// } else { +// for (DynamicObject entryObject : entry) { +// int idx = entry.indexOf(entryObject); +// if (idx == 0) { +// QFilter qFilter = new QFilter("status", "=", "C"); +// qFilter.and("number", "=", entryObject.getString("yem_parentno")); +// DynamicObject[] load = BusinessDataServiceHelper.load("yem_em_replace", selectfields, qFilter.toArray()); +// if (load.length == 1) { +// replace = load[0]; +// replace = AtlasUtils.Addreplace(bomChange, entry.get(0), replace, "yem_em_replace", "update", "PLM"); +// } else { +// replace = AtlasUtils.Addreplace(bomChange, entry.get(0), null, "yem_em_replace", "add", "PLM"); +// } +// continue; +// }; +// logger.info("更新替换关系:PLM单号:{}, PLM工艺变更单号:{},父项编码:{}", billno, gybg_no, entryObject.getString("yem_parentno")); +// logger.info("更新_替换关系:{}", entryObject.getString("yem_replace")); +// replace = AtlasUtils.Addreplace(bomChange, entry.get(0), replace, "yem_em_replace", "update", "PLM"); +// successMap.put(entryObject.getLong("id"), bomChange); +// } +// } +// } List list = new ArrayList<>(); for (Map.Entry mapEntry : successMap.entrySet()) { Long bomChangeEntryId = mapEntry.getKey(); @@ -188,6 +190,31 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask { syncImage(plmObj, list); } + /** + * 查询已存在的替换关系 + * + * @param bomChange + * @param bomChangeEntry + * @param successMap + * @return + */ + private void useExistReplace(DynamicObject bomChange, DynamicObject bomChangeEntry, Map successMap) { + QFilter qFilter = new QFilter("status", "=", "C"); + qFilter.and("number", "=", bomChangeEntry.getString("yem_parentno")); + DynamicObject[] load = BusinessDataServiceHelper.load("yem_em_replace", "id, billno", qFilter.toArray()); + if (load.length > 0) { + DynamicObject replace = load[0]; + replace = BusinessDataServiceHelper.loadSingle(replace.getPkValue(), replace.getDataEntityType().getName()); + logger.info("使用已有替换关系:{}", replace.getString("number")); + AtlasUtils.Addreplace(bomChange, bomChangeEntry, replace, "yem_em_replace", "update", "PLM"); + successMap.put(bomChangeEntry.getLong("id"), bomChange); + } else { + logger.info("创建新的替换关系:{}", bomChangeEntry.getString("yem_parentno")); + AtlasUtils.Addreplace(bomChange, bomChangeEntry, null, "yem_em_replace", "add", "PLM"); + successMap.put(bomChangeEntry.getLong("id"), bomChange); + } + } + /** * 根据PLM创建BOM,用于生成替换关系 * @@ -334,6 +361,7 @@ public class GenerateReplaceRelationshipTaskEdit extends AbstractTask { * 查询匹配的 总成图册明细 * PLM:变更后父项编码 - 总成图册明细.编码 * PLM:变更后子项编码 - 替换关系:ABC 替换编码,E(删除):不匹配,D(新增)替换前编码 + * * @return */ private DynamicObject queryMatchAssemblyAtlasDetails(DynamicObject plmObj, DynamicObject d) {