From 336efdb5ec30cbe014e2aa974c867c4f81a21cbc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E8=B4=B5=E5=BC=BA?= Date: Fri, 29 Aug 2025 08:49:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=8D=E5=86=99SAP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fi/plugin/task/BeiIntelpayBillTask.java | 27 +++++++++-------- .../fi/plugin/task/BeiIntelrecBillTask.java | 29 +++++++++++-------- 2 files changed, 32 insertions(+), 24 deletions(-) diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelpayBillTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelpayBillTask.java index 7ec1f6f..87912b0 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelpayBillTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelpayBillTask.java @@ -46,18 +46,21 @@ public class BeiIntelpayBillTask extends AbstractTask implements Plugin { // 用于批量保存 List toSaveList = new ArrayList<>(); for (DynamicObject beiIntelPay : beiIntelPays) { - String number = beiIntelPay.getString("recedbillentry.e_recedbillnumber"); - if (number!=null && !"".equals(number)){ - String billType = beiIntelPay.getString("recedbillentry.e_recedbilltype"); - // 下查关联单据 - DynamicObject relevancyBill = BusinessDataServiceHelper.loadSingle(billType, new QFilter[]{new QFilter("billno", QCP.equals, number)}); - if (relevancyBill != null) { - // 尝试从不同类型的关联单据中获取凭证号 - String credentialNum = findCredentialNum(relevancyBill, billType); - logger.info(beiIntelPay.getString("billno")+"查询到 " + number + "关联到SAP号:"+credentialNum); - if (StringUtils.isNotEmpty(credentialNum)) { - beiIntelPay.set("shjh_credentialnums", credentialNum); - toSaveList.add(beiIntelPay); + DynamicObjectCollection entry = beiIntelPay.getDynamicObjectCollection("recedbillentry"); + if (entry.size()!=0){ + String number = entry.get(0).getString("e_recedbillnumber"); + if (number!=null && !"".equals(number)){ + String billType = entry.get(0).getString("e_recedbilltype"); + // 下查关联单据 + DynamicObject relevancyBill = BusinessDataServiceHelper.loadSingle(billType, new QFilter[]{new QFilter("billno", QCP.equals, number)}); + if (relevancyBill != null) { + // 尝试从不同类型的关联单据中获取凭证号 + String credentialNum = findCredentialNum(relevancyBill, billType); + logger.info(beiIntelPay.getString("billno")+"查询到 " + number + "关联到SAP号:"+credentialNum); + if (StringUtils.isNotEmpty(credentialNum)) { + beiIntelPay.set("shjh_credentialnums", credentialNum); + toSaveList.add(beiIntelPay); + } } } } diff --git a/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelrecBillTask.java b/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelrecBillTask.java index fffa4c7..aae8b6d 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelrecBillTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelrecBillTask.java @@ -2,6 +2,7 @@ package shjh.jhzj7.fi.fi.plugin.task; import kd.bos.context.RequestContext; import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.exception.KDException; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; @@ -45,21 +46,25 @@ public class BeiIntelrecBillTask extends AbstractTask implements Plugin { // 用于批量保存 List toSaveList = new ArrayList<>(); for (DynamicObject beiIntelRec : beiIntelRecs) { - String number = beiIntelRec.getString("recedbillentry.e_recedbillnumber"); - if (number!=null && !"".equals(number)){ - String billType = beiIntelRec.getString("recedbillentry.e_recedbilltype"); - // 下查关联单据 - DynamicObject relevancyBill = BusinessDataServiceHelper.loadSingle(billType, new QFilter[]{new QFilter("billno", QCP.equals, number)}); - if (relevancyBill != null) { - // 尝试从不同类型的关联单据中获取凭证号 - String credentialNum = findCredentialNum(relevancyBill, billType); - logger.info(beiIntelRec.getString("billno")+"查询到 " + number + "关联到SAP号:"+credentialNum); - if (StringUtils.isNotEmpty(credentialNum)) { - beiIntelRec.set("shjh_credentialnums", credentialNum); - toSaveList.add(beiIntelRec); + DynamicObjectCollection entry = beiIntelRec.getDynamicObjectCollection("recedbillentry"); + if (entry.size()!=0){ + String number = entry.get(0).getString("e_recedbillnumber"); + if (number!=null && !"".equals(number)){ + String billType = entry.get(0).getString("e_recedbilltype"); + // 下查关联单据 + DynamicObject relevancyBill = BusinessDataServiceHelper.loadSingle(billType, new QFilter[]{new QFilter("billno", QCP.equals, number)}); + if (relevancyBill != null) { + // 尝试从不同类型的关联单据中获取凭证号 + String credentialNum = findCredentialNum(relevancyBill, billType); + logger.info(beiIntelRec.getString("billno")+"查询到 " + number + "关联到SAP号:"+credentialNum); + if (StringUtils.isNotEmpty(credentialNum)) { + beiIntelRec.set("shjh_credentialnums", credentialNum); + toSaveList.add(beiIntelRec); + } } } } + } // 批量保存 if (!toSaveList.isEmpty()) {