diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/XkPayBillApiSavePlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/XkPayBillApiSavePlugin.java index a1d652a..6b1e5ab 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/XkPayBillApiSavePlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/api/XkPayBillApiSavePlugin.java @@ -289,6 +289,15 @@ public class XkPayBillApiSavePlugin implements ApiSavePlugin { map.put(fieldName1, objects[0].getPkValue()); //收款人编码 } + + // 收款账号 + String payeebanknum = map.get("payeebanknum").toString(); + Map shkd_reebankorg = new HashMap<>(); + shkd_reebankorg.put("bankaccountnumber", payeebanknum); + map.put("shkd_reebankorg_bankaccountnumber", shkd_reebankorg); + DynamicObject[] payeebanknumObj = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number,issetbankinterface", new QFilter("number", QCP.equals, payeebanknum).toArray()); + // 收款账户ID + map.put("payeeacctbank", payeebanknumObj[0].getPkValue()); } else if ("cas_paybill_syn_BT_S".equals(billtype_number) && "XK".equals(shkd_businessname)) {// 星空传的同名转账 logger.info("单据类型 → 同名转账,推送系统 → XK"); @@ -361,12 +370,21 @@ public class XkPayBillApiSavePlugin implements ApiSavePlugin { number.put("number", map.get("payeenumber")); map.put("shkd_org", number); - DynamicObject[] objects = BusinessDataServiceHelper.load("bos_org", "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber")).toArray()); + DynamicObject[] objects = BusinessDataServiceHelper.load("bos_org", "id,number,name,", new QFilter("number", QCP.equals, map.get("payeenumber")).toArray()); if (objects.length > 0) { logger.info("收款人查询长度 → " + objects.length); // 收款人ID map.put(fieldName1, objects[0].getPkValue()); } + + // 收款账号 + String payeebanknum = map.get("payeebanknum").toString(); + Map shkd_reebankorg = new HashMap<>(); + shkd_reebankorg.put("bankaccountnumber", payeebanknum); + map.put("shkd_reebankorg_bankaccountnumber", shkd_reebankorg); + DynamicObject[] payeebanknumObj = BusinessDataServiceHelper.load("am_accountbank", "id,bank,bank.number,issetbankinterface", new QFilter("number", QCP.equals, payeebanknum).toArray()); + // 收款账户ID + map.put("payeeacctbank", payeebanknumObj[0].getPkValue()); } } logger.info("最终处理 → 调用接口参数:{}", reqData); diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java index 1040e40..43976b9 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java @@ -430,6 +430,48 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin { } } } + + // 反写星空编码 + if ("shkd_writebacknumber".equals(itemKey)) { + // 推送单据类型 + String billMark = dataEntity.getDynamicObject("shkd_sourcebill").getString("number"); + + // 推送单据编码 + String shkdSourcenumber = dataEntity.getString("shkd_sourcenumber"); + + // 查询单据对象 + DynamicObject dynamicObject = null; + + if ("cas_paybill".equals(billMark)) { + dynamicObject = BusinessDataServiceHelper.loadSingle(billMark, "id,billno,name,shkd_businessnumber,shkd_xkfilestatus", + new QFilter("billno", QCP.equals, shkdSourcenumber).toArray());// 表单id(付款处理 → 付款单:AP_PAYBILL) + } else if ("cas_recbill".equals(billMark)) { + dynamicObject = BusinessDataServiceHelper.loadSingle(billMark, "id,billno,name,shkd_businessnumber,shkd_xkfilestatus", + new QFilter("billno", QCP.equals, shkdSourcenumber).toArray());// 表单id(收款处理 → 收款单:AR_RECEIVEBILL) + } else if ("fca_transupbill".equals(billMark)) { + dynamicObject = BusinessDataServiceHelper.loadSingle(billMark, "id,billno,name,shkd_pushxknumber,shkd_xkfilestatus", + new QFilter("billno", QCP.equals, shkdSourcenumber).toArray());// 表单id(上划处理 → 收款单:AR_RECEIVEBILL) + } else if ("fca_transdownbil".equals(billMark)) { + dynamicObject = BusinessDataServiceHelper.loadSingle(billMark, "id,billno,name,shkd_pushxknumber,shkd_xkfilestatus", + new QFilter("billno", QCP.equals, shkdSourcenumber).toArray());// 表单id(下拨处理 → 付款单:AP_PAYBILL) + } + + HashMap resultMap = getSKPushXKBill(dataEntity, billMark, dynamicObject.getString("billno")); + if ((Boolean) resultMap.get("result")) { + String billNumber = resultMap.get("billNumber").toString(); + if ("cas_paybill".equals(billMark)) { + dynamicObject.set("shkd_businessnumber", billNumber); + } else if ("cas_recbill".equals(billMark)) { + dynamicObject.set("shkd_businessnumber", billNumber); + } else if ("fca_transupbill".equals(billMark)) { + dynamicObject.set("shkd_pushxknumber", billNumber); + } else if ("fca_transdownbil".equals(billMark)) { + dynamicObject.set("shkd_pushxknumber", billNumber); + } + SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); + } + + } } private void parseJson(Object obj, int level, String parentKey) {