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..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 @@ -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,83 @@ 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 { + logger.info("获取符合推送条件的单据:{}条", elecreceiptArays.length); + 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()); + 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")); + } + } + } + } + } + } + } + } + // 补偿推送星空电子回单 // 补偿方案(推送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..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 @@ -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,7 +207,8 @@ public class PushTaskPlugin extends AbstractTask implements Plugin { .and("ismatch", QCP.equals, "1") .and("shkd_pushstatus", QCP.not_equals, "已推送") .and("company", QCP.in, orgArray).toArray()); - Arrays.stream(elecreceiptArays).forEach(dynamicObject -> { + logger.info("符合推送条件数据有:{}条", elecreceiptArays.length); + for (DynamicObject dynamicObject : elecreceiptArays) { //开户银行(银行账户) DynamicObject accountbank = dynamicObject.getDynamicObject("accountbank"); @@ -215,16 +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"); - - if (bankTypeArray.contains(bank_name)) { - ApiService.paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); + 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")); + } + } + } + } } - }); - SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0])); + } break; /** * 推送星空电子回单 @@ -293,7 +312,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 +351,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 +387,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 +424,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);