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 b5c24b1..39e46b1 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 @@ -130,6 +130,72 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin { String result = pushBillAttachment(dataEntity); this.getView().showTipNotification("返回结果:" + result); } + + // 补偿方案(推送BIP电子回单) + if ("shkd_compensatebip".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) + .and("billno", QCP.equals, dataEntity.getString("shkd_sourcenumber")).toArray()); + + if (elecreceiptArays == null || elecreceiptArays.length == 0) { + this.getView().showTipNotification("未查询到符合条件的单据"); + } else { + DynamicObject dynamicObject = elecreceiptArays[0]; + //开户银行(银行账户) + 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)) { + this.getView().showTipNotification("获取符合推送条件的单据:" + dynamicObject.getString("billno")); +// logger.info("获取符合推送条件的单据:{}", dynamicObject.getString("billno")); + String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); + if (result.contains("成功")) { + SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0])); + } else { + this.getView().showTipNotification("推送失败:" + dynamicObject.getString("billno")); + } + } + } + } } private void parseJson(Object obj, int level, String parentKey) {