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 79bac9f..85ff893 100644 --- a/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelpayBillTask.java +++ b/main/java/shjh/jhzj7/fi/fi/plugin/task/BeiIntelpayBillTask.java @@ -9,6 +9,7 @@ import kd.bos.orm.query.QFilter; import kd.bos.schedule.executor.AbstractTask; import kd.bos.servicehelper.BusinessDataServiceHelper; import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.util.StringUtils; import kd.sdk.plugin.Plugin; import java.math.BigDecimal; @@ -27,9 +28,9 @@ public class BeiIntelpayBillTask extends AbstractTask implements Plugin { UPDATE T_CAS_PaymentBill SET shjh_credentialnum = 'cs001' where fbillno = 'PV-202503-000162'; */ QFilter q1 = new QFilter("debitamount",QCP.large_than, BigDecimal.ZERO); - QFilter q2 = new QFilter("shjh_credentialnum", QCP.equals, ""); - DynamicObject[] beiIntelpays = BusinessDataServiceHelper.load("bei_intelpay", "id,billno,shjh_credentialnum,recedbillentry," + - "recedbillentry.e_recedbillnumber", new QFilter[]{q1, q2}); + QFilter q2 = new QFilter("shjh_credentialnums", QCP.equals, ""); + DynamicObject[] beiIntelpays = BusinessDataServiceHelper.load("bei_intelpay", "id," + + "billno,shjh_credentialnums,recedbillentry,recedbillentry.e_recedbillnumber", new QFilter[]{q1, q2}); for (DynamicObject beiIntelpay : beiIntelpays) { //接收单据信息:recedbillentry DynamicObjectCollection recedbillentry = beiIntelpay.getDynamicObjectCollection("recedbillentry"); @@ -40,10 +41,13 @@ public class BeiIntelpayBillTask extends AbstractTask implements Plugin { if (null != recedbillnumber && !recedbillnumber.isEmpty()) { //获取付款单 QFilter q3 = new QFilter("billno", QCP.equals, recedbillnumber);//单据编号 - DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", new QFilter[]{q3}); + DynamicObject paybill = BusinessDataServiceHelper.loadSingle("cas_paybill", + "id,shjh_credentialnum", new QFilter[]{q3}); if (null != paybill) { - beiIntelpay.set("shjh_credentialnums",paybill.getString("shjh_credentialnum"));//SAP应付凭证单号 - SaveServiceHelper.save(new DynamicObject[]{beiIntelpay}); + if (StringUtils.isNotEmpty(paybill.getString("shjh_credentialnum"))) { + beiIntelpay.set("shjh_credentialnums",paybill.getString("shjh_credentialnum"));//SAP付款凭证号 + SaveServiceHelper.save(new DynamicObject[]{beiIntelpay}); + } } } } diff --git a/main/java/shjh/jhzj7/fi/fi/webapi/VouchernumControler.java b/main/java/shjh/jhzj7/fi/fi/webapi/VouchernumControler.java index ab89e39..d8141e1 100644 --- a/main/java/shjh/jhzj7/fi/fi/webapi/VouchernumControler.java +++ b/main/java/shjh/jhzj7/fi/fi/webapi/VouchernumControler.java @@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSONObject; import com.drew.lang.annotations.NotNull; import kd.bos.api.client.ApiResult; import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; import kd.bos.logging.Log; import kd.bos.logging.LogFactory; import kd.bos.openapi.common.custom.annotation.ApiController; @@ -91,12 +92,15 @@ public class VouchernumControler { SaveServiceHelper.save(new DynamicObject[]{bankjournal}); } //同步更新交易明细查询(bei_transdetail)__被动 主动参考操作代码BeiIntelpayBillTask - String sourcebillnumber = paybill.getString("sourcebillnumber");//源单编码:交易明细查询单号(bei_transdetail) - QFilter q4 = new QFilter("billno", QCP.equals, sourcebillnumber); - DynamicObject beiIntelpay = BusinessDataServiceHelper.loadSingle("bei_transdetail", q4.toArray()); - if (null != beiIntelpay) { - beiIntelpay.set("shjh_credentialnums",voucherNum); - SaveServiceHelper.save(new DynamicObject[]{beiIntelpay}); + DynamicObjectCollection bankcheckentity = paybill.getDynamicObjectCollection("bankcheckentity"); + for (DynamicObject dynamicObject : bankcheckentity) { + String o = dynamicObject.getString("edetailbillno"); + DynamicObject beiIntelpay = BusinessDataServiceHelper.loadSingle("bei_transdetail", new QFilter( + "billno", QCP.equals, o).toArray()); + if (null != beiIntelpay) { + beiIntelpay.set("shjh_credentialnums",voucherNum); + SaveServiceHelper.save(new DynamicObject[]{beiIntelpay}); + } } paybill.set("shjh_credentialnum",voucherNum);//SAP付款凭证号