From 550266dfc2c0e2a46398673b9c87c92638585118 Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Thu, 31 Jul 2025 10:59:16 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=E6=8E=A8=E9=80=81BIP=E7=94=B5=E5=AD=90=E5=9B=9E?= =?UTF-8?q?=E5=8D=95=E6=95=B4=E4=BD=93=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20=E6=97=B6=E9=97=B4=EF=BC=9A2025-07-31=2010=EF=BC=9A57=20?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=82=B9=E6=B1=9F=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../shkd/sys/sys/mservice/ApiService.java | 4 -- .../sys/plugin/form/ApiMappingBillPlugin.java | 69 ++++++++++++++++++- .../sys/sys/plugin/task/PushTaskPlugin.java | 21 ++++-- 3 files changed, 83 insertions(+), 11 deletions(-) diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java index 34c20c5..f5f6084 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/mservice/ApiService.java @@ -345,10 +345,6 @@ public class ApiService { jsonObject = JSON.parseObject(saveResponseBody); code = jsonObject.getString("code"); if ("200".equals(code)) { - dynamic.set("shkd_pushstatus", "已推送"); - dynamic.set("shkd_businessname", "共享系统"); - dynamicObjects.add(dynamic); - logger.info("电子回单查询 → BIP推送接口 → 成功\n成功单据编号:{}\n成功请求体:{}\n推送成功接口返回数据:{}", dynamic.getString("billno"), saveRequestBody, saveResponseBody); 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 f0e7df0..55eebcb 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 @@ -202,7 +202,9 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin { // logger.info("获取符合推送条件的单据:{}", dynamicObject.getString("billno")); String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); if (result.contains("成功")) { - SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0])); + dynamicObject.set("shkd_pushstatus", "已推送"); + dynamicObject.set("shkd_businessname", "共享系统"); + SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); } else { this.getView().showTipNotification("推送失败:" + dynamicObject.getString("billno")); } @@ -210,6 +212,71 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin { } } + // 补偿方案(推送BIP电子回单) + if ("shkd_bipreceiptall".equals(itemKey)) { + List dynamicObjectList = new ArrayList<>(); + // 获取多选基础资料银行类别(推送银行类别) + ArrayList bankTypeArray = new ArrayList<>(); + DynamicObjectCollection bankTypeArr = dataEntity.getDynamicObjectCollection("shkd_banktype"); + for (DynamicObject bankTypeData : bankTypeArr) { + DynamicObject bankType = bankTypeData.getDynamicObject("fbasedataid");//银行类别基础资料数据包 + if (bankType != null) { + String bankTypeName = bankType.getString("name");//银行类别名称 + bankTypeArray.add(bankTypeName); + } + } + + // 获取多选基础资料业务单元(推送组织) + ArrayList orgArray = new ArrayList<>(); + DynamicObjectCollection orgArr = dataEntity.getDynamicObjectCollection("shkd_orgs"); + for (DynamicObject orgData : orgArr) { + orgArray.add(orgData.getLong("fbasedataid_Id")); + } + + // 获取推送开始时间 + Date shkdStartdate = dataEntity.getDate("shkd_startdate"); + + DynamicObject[] elecreceiptArays = BusinessDataServiceHelper.load("bei_elecreceipt", + "id,billno,shkd_pushstatus,fileserverurl,bizdate,oppbank,oppbankname,description," + + "company,oppbanknumber,oppunit,detaildatetime,accountbank,amount,use,debitamount," + + "creditamount,detailid,uploadfilename,shkd_businessnumber,shkd_businessid,shkd_businessname," + + "filepath,receiptno,ismatch" + , new QFilter("bizdate", QCP.large_equals, shkdStartdate) + .and("ismatch", QCP.equals, "1") + .and("shkd_pushstatus", QCP.not_equals, "已推送") + .and("company", QCP.in, orgArray).toArray()); + + if (elecreceiptArays == null || elecreceiptArays.length == 0) { + this.getView().showTipNotification("未查询到符合条件的单据"); + } else { + for (DynamicObject dynamicObject : elecreceiptArays) { + //开户银行(银行账户) + DynamicObject accountbank = dynamicObject.getDynamicObject("accountbank"); + + //开户行(合作金融机构) + DynamicObject bank = accountbank.getDynamicObject("bank"); + + String bank_number = bank.getString("number"); + DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,bank_cate", new QFilter("number", QCP.equals, bank_number).toArray()); + + //银行类别 + DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate"); + + String bank_name = bank_cate.getString("name"); + + if (bankTypeArray.contains(bank_name)) { + // logger.info("获取符合推送条件的单据:{}", dynamicObject.getString("billno")); + String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); + if (result.contains("成功")) { + dynamicObject.set("shkd_pushstatus", "已推送"); + dynamicObject.set("shkd_businessname", "共享系统"); + SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); + } + } + } + } + } + // 补偿推送星空电子回单 // 补偿方案(推送BIP电子回单) if ("shkd_compensatexk".equals(itemKey)) { diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java index 8a195fb..9be642b 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java @@ -185,6 +185,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { bankTypeArray.add(bankTypeName); } } + logger.info("回单推送BIP银行类别:{}", bankTypeArray); // 获取多选基础资料业务单元(推送组织) ArrayList orgArray = new ArrayList<>(); @@ -192,6 +193,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { for (DynamicObject orgData : orgArr) { orgArray.add(orgData.getLong("fbasedataid_Id")); } + logger.info("回单推送BIP组织:{}", orgArray); // 获取推送开始时间 Date shkdStartdate = ApiMapping.getDate("shkd_startdate"); @@ -205,6 +207,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { .and("ismatch", QCP.equals, "1") .and("shkd_pushstatus", QCP.not_equals, "已推送") .and("company", QCP.in, orgArray).toArray()); + logger.info("符合推送条件数据有:{}条", elecreceiptArays.length); Arrays.stream(elecreceiptArays).forEach(dynamicObject -> { //开户银行(银行账户) DynamicObject accountbank = dynamicObject.getDynamicObject("accountbank"); @@ -219,12 +222,18 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate"); String bank_name = bank_cate.getString("name"); + logger.info("回单:{},银行类别:{}", dynamicObject.getString("billno"), bank_name); if (bankTypeArray.contains(bank_name)) { - ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); + String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); + if (result.contains("成功")) { + dynamicObject.set("shkd_pushstatus", "已推送"); + dynamicObject.set("shkd_businessname", "共享系统"); + SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); + logger.info("电子回单推送BIP成功,单据编码:" + dynamicObject.getString("billno")); + } } }); - SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0])); break; /** * 推送星空电子回单 @@ -293,7 +302,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { List receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName()); if (receiptNos.isEmpty()) { logger.info("付款单:{},无回单", dynamicObject.getString("billno")); - }else { + } else { Map receiptResult = new HashMap<>(); // 获取回单 getReceipt(receiptNos.get(0), receiptResult); @@ -332,7 +341,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { List receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName()); if (receiptNos.isEmpty()) { logger.info("收款单:{},无匹配回单", dynamicObject.getString("billno")); - }else { + } else { Map receiptResult = new HashMap<>(); // 获取回单 getReceipt(receiptNos.get(0), receiptResult); @@ -368,7 +377,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { List receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName()); if (receiptNos.isEmpty()) { logger.info("上划处理:{},无匹配回单", dynamicObject.getString("billno")); - }else { + } else { Map receiptResult = new HashMap<>(); // 获取回单 getReceipt(receiptNos.get(0), receiptResult); @@ -405,7 +414,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { List receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName()); if (receiptNos.isEmpty()) { logger.info("下拨处理:{},无匹配回单", dynamicObject.getString("billno")); - }else { + } else { Map receiptResult = new HashMap<>(); // 获取回单 getReceipt(receiptNos.get(0), receiptResult); From 0f4aeb3b82e7943c831930ac7ee57df4a8249ea1 Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Thu, 31 Jul 2025 11:03:09 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=E6=8E=A8=E9=80=81BIP=E7=94=B5=E5=AD=90=E5=9B=9E?= =?UTF-8?q?=E5=8D=95=E6=95=B4=E4=BD=93=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20=E6=97=B6=E9=97=B4=EF=BC=9A2025-07-31=2010=EF=BC=9A57=20?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=82=B9=E6=B1=9F=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/shkd/sys/sys/plugin/form/ApiMappingBillPlugin.java | 2 ++ 1 file changed, 2 insertions(+) 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 55eebcb..016f0d7 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 @@ -249,6 +249,7 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin { if (elecreceiptArays == null || elecreceiptArays.length == 0) { this.getView().showTipNotification("未查询到符合条件的单据"); } else { + logger.info("获取符合推送条件的单据:{}条", elecreceiptArays.length); for (DynamicObject dynamicObject : elecreceiptArays) { //开户银行(银行账户) DynamicObject accountbank = dynamicObject.getDynamicObject("accountbank"); @@ -271,6 +272,7 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin { dynamicObject.set("shkd_pushstatus", "已推送"); dynamicObject.set("shkd_businessname", "共享系统"); SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); + logger.info("电子回单推送BIP成功,单据编码:" + dynamicObject.getString("billno")); } } } From d4d17935a9af096e50b390214ce8ff66defa8e74 Mon Sep 17 00:00:00 2001 From: zoujiangtao Date: Thu, 31 Jul 2025 16:57:12 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E5=86=85=E5=AE=B9?= =?UTF-8?q?=EF=BC=9A=E6=8E=A8=E9=80=81BIP=E7=94=B5=E5=AD=90=E5=9B=9E?= =?UTF-8?q?=E5=8D=95=E6=95=B4=E4=BD=93=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= =?UTF-8?q?=20=E6=97=B6=E9=97=B4=EF=BC=9A2025-07-31=2016=EF=BC=9A57=20?= =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BA=BA=EF=BC=9A=E9=82=B9=E6=B1=9F=E6=B6=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../sys/plugin/form/ApiMappingBillPlugin.java | 38 +++++++++++------- .../sys/sys/plugin/task/PushTaskPlugin.java | 40 ++++++++++++------- 2 files changed, 49 insertions(+), 29 deletions(-) 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 016f0d7..cdd32c1 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 @@ -259,20 +259,30 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin { String bank_number = bank.getString("number"); DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,bank_cate", new QFilter("number", QCP.equals, bank_number).toArray()); - - //银行类别 - DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate"); - - String bank_name = bank_cate.getString("name"); - - if (bankTypeArray.contains(bank_name)) { - // logger.info("获取符合推送条件的单据:{}", dynamicObject.getString("billno")); - String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); - if (result.contains("成功")) { - dynamicObject.set("shkd_pushstatus", "已推送"); - dynamicObject.set("shkd_businessname", "共享系统"); - SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); - logger.info("电子回单推送BIP成功,单据编码:" + dynamicObject.getString("billno")); + if (bd_finorginfo == null || bd_finorginfo.length == 0) { + logger.info("回单:{},合作金融机构为空,不推送!", dynamicObject.getString("billno")); + } else { + //银行类别 + DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate"); + if (bank_cate == null) { + logger.info("回单:{},银行类别为空,不推送!", dynamicObject.getString("billno")); + }else { + Object bank_name = bank_cate.get("name"); + if (bank_name == null || "".equals(bank_name.toString())) { + logger.info("回单:{},银行类别为空,不推送!", dynamicObject.getString("billno")); + }else { + logger.info("回单:{},银行类别:{}", dynamicObject.getString("billno"), bank_name); + if (bankTypeArray.contains(bank_name.toString())) { + // logger.info("获取符合推送条件的单据:{}", dynamicObject.getString("billno")); + String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); + if (result.contains("成功")) { + dynamicObject.set("shkd_pushstatus", "已推送"); + dynamicObject.set("shkd_businessname", "共享系统"); + SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); + logger.info("电子回单推送BIP成功,单据编码:" + dynamicObject.getString("billno")); + } + } + } } } } diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java index 9be642b..56f98f6 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/task/PushTaskPlugin.java @@ -208,7 +208,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { .and("shkd_pushstatus", QCP.not_equals, "已推送") .and("company", QCP.in, orgArray).toArray()); logger.info("符合推送条件数据有:{}条", elecreceiptArays.length); - Arrays.stream(elecreceiptArays).forEach(dynamicObject -> { + for (DynamicObject dynamicObject : elecreceiptArays) { //开户银行(银行账户) DynamicObject accountbank = dynamicObject.getDynamicObject("accountbank"); @@ -218,22 +218,32 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { String bank_number = bank.getString("number"); DynamicObject[] bd_finorginfo = BusinessDataServiceHelper.load("bd_finorginfo", "id,number,bank_cate", new QFilter("number", QCP.equals, bank_number).toArray()); - //银行类别 - DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate"); - - String bank_name = bank_cate.getString("name"); - logger.info("回单:{},银行类别:{}", dynamicObject.getString("billno"), bank_name); - - if (bankTypeArray.contains(bank_name)) { - String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); - if (result.contains("成功")) { - dynamicObject.set("shkd_pushstatus", "已推送"); - dynamicObject.set("shkd_businessname", "共享系统"); - SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); - logger.info("电子回单推送BIP成功,单据编码:" + dynamicObject.getString("billno")); + if (bd_finorginfo == null || bd_finorginfo.length == 0) { + logger.info("回单:{},合作金融机构为空,不推送!", dynamicObject.getString("billno")); + } else { + //银行类别 + DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate"); + if (bank_cate == null) { + logger.info("回单:{},银行类别为空,不推送!", dynamicObject.getString("billno")); + }else{ + Object bank_name = bank_cate.get("name"); + if (bank_name == null) { + logger.info("回单:{},银行类别为空,不推送!", dynamicObject.getString("billno")); + }else { + logger.info("回单:{},银行类别:{}", dynamicObject.getString("billno"), bank_name); + if (bankTypeArray.contains(bank_name.toString())) { + String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); + if (result.contains("成功")) { + dynamicObject.set("shkd_pushstatus", "已推送"); + dynamicObject.set("shkd_businessname", "共享系统"); + SaveServiceHelper.save(new DynamicObject[]{dynamicObject}); + logger.info("电子回单推送BIP成功,单据编码:" + dynamicObject.getString("billno")); + } + } + } } } - }); + } break; /** * 推送星空电子回单