提交内容:推送BIP电子回单整体代码优化

时间:2025-07-31 10:57
提交人:邹江涛
This commit is contained in:
zoujiangtao 2025-07-31 10:59:16 +08:00
parent b6e3f7f8cb
commit 550266dfc2
3 changed files with 83 additions and 11 deletions

View File

@ -345,10 +345,6 @@ public class ApiService {
jsonObject = JSON.parseObject(saveResponseBody); jsonObject = JSON.parseObject(saveResponseBody);
code = jsonObject.getString("code"); code = jsonObject.getString("code");
if ("200".equals(code)) { if ("200".equals(code)) {
dynamic.set("shkd_pushstatus", "已推送");
dynamic.set("shkd_businessname", "共享系统");
dynamicObjects.add(dynamic);
logger.info("电子回单查询 → BIP推送接口 → 成功\n成功单据编号{}\n成功请求体{}\n推送成功接口返回数据{}", logger.info("电子回单查询 → BIP推送接口 → 成功\n成功单据编号{}\n成功请求体{}\n推送成功接口返回数据{}",
dynamic.getString("billno"), saveRequestBody, saveResponseBody); dynamic.getString("billno"), saveRequestBody, saveResponseBody);

View File

@ -202,7 +202,9 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
// logger.info("获取符合推送条件的单据:{}", dynamicObject.getString("billno")); // logger.info("获取符合推送条件的单据:{}", dynamicObject.getString("billno"));
String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null); String result = paymentSlipsJson(dynamicObject, "BIP", dynamicObjectList, null);
if (result.contains("成功")) { if (result.contains("成功")) {
SaveServiceHelper.save(dynamicObjectList.toArray(new DynamicObject[0])); dynamicObject.set("shkd_pushstatus", "已推送");
dynamicObject.set("shkd_businessname", "共享系统");
SaveServiceHelper.save(new DynamicObject[]{dynamicObject});
} else { } else {
this.getView().showTipNotification("推送失败:" + dynamicObject.getString("billno")); this.getView().showTipNotification("推送失败:" + dynamicObject.getString("billno"));
} }
@ -210,6 +212,71 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
} }
} }
// 补偿方案推送BIP电子回单
if ("shkd_bipreceiptall".equals(itemKey)) {
List<DynamicObject> dynamicObjectList = new ArrayList<>();
// 获取多选基础资料银行类别推送银行类别
ArrayList<String> 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<Long> 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电子回单 // 补偿方案推送BIP电子回单
if ("shkd_compensatexk".equals(itemKey)) { if ("shkd_compensatexk".equals(itemKey)) {

View File

@ -185,6 +185,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
bankTypeArray.add(bankTypeName); bankTypeArray.add(bankTypeName);
} }
} }
logger.info("回单推送BIP银行类别{}", bankTypeArray);
// 获取多选基础资料业务单元推送组织 // 获取多选基础资料业务单元推送组织
ArrayList<Long> orgArray = new ArrayList<>(); ArrayList<Long> orgArray = new ArrayList<>();
@ -192,6 +193,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
for (DynamicObject orgData : orgArr) { for (DynamicObject orgData : orgArr) {
orgArray.add(orgData.getLong("fbasedataid_Id")); orgArray.add(orgData.getLong("fbasedataid_Id"));
} }
logger.info("回单推送BIP组织{}", orgArray);
// 获取推送开始时间 // 获取推送开始时间
Date shkdStartdate = ApiMapping.getDate("shkd_startdate"); Date shkdStartdate = ApiMapping.getDate("shkd_startdate");
@ -205,6 +207,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
.and("ismatch", QCP.equals, "1") .and("ismatch", QCP.equals, "1")
.and("shkd_pushstatus", QCP.not_equals, "已推送") .and("shkd_pushstatus", QCP.not_equals, "已推送")
.and("company", QCP.in, orgArray).toArray()); .and("company", QCP.in, orgArray).toArray());
logger.info("符合推送条件数据有:{}条", elecreceiptArays.length);
Arrays.stream(elecreceiptArays).forEach(dynamicObject -> { Arrays.stream(elecreceiptArays).forEach(dynamicObject -> {
//开户银行银行账户 //开户银行银行账户
DynamicObject accountbank = dynamicObject.getDynamicObject("accountbank"); 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"); DynamicObject bank_cate = bd_finorginfo[0].getDynamicObject("bank_cate");
String bank_name = bank_cate.getString("name"); String bank_name = bank_cate.getString("name");
logger.info("回单:{},银行类别:{}", dynamicObject.getString("billno"), bank_name);
if (bankTypeArray.contains(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; break;
/** /**
* 推送星空电子回单 * 推送星空电子回单
@ -293,7 +302,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName()); List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName());
if (receiptNos.isEmpty()) { if (receiptNos.isEmpty()) {
logger.info("付款单:{},无回单", dynamicObject.getString("billno")); logger.info("付款单:{},无回单", dynamicObject.getString("billno"));
}else { } else {
Map<String, Object> receiptResult = new HashMap<>(); Map<String, Object> receiptResult = new HashMap<>();
// 获取回单 // 获取回单
getReceipt(receiptNos.get(0), receiptResult); getReceipt(receiptNos.get(0), receiptResult);
@ -332,7 +341,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName()); List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName());
if (receiptNos.isEmpty()) { if (receiptNos.isEmpty()) {
logger.info("收款单:{},无匹配回单", dynamicObject.getString("billno")); logger.info("收款单:{},无匹配回单", dynamicObject.getString("billno"));
}else { } else {
Map<String, Object> receiptResult = new HashMap<>(); Map<String, Object> receiptResult = new HashMap<>();
// 获取回单 // 获取回单
getReceipt(receiptNos.get(0), receiptResult); getReceipt(receiptNos.get(0), receiptResult);
@ -368,7 +377,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName()); List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName());
if (receiptNos.isEmpty()) { if (receiptNos.isEmpty()) {
logger.info("上划处理:{},无匹配回单", dynamicObject.getString("billno")); logger.info("上划处理:{},无匹配回单", dynamicObject.getString("billno"));
}else { } else {
Map<String, Object> receiptResult = new HashMap<>(); Map<String, Object> receiptResult = new HashMap<>();
// 获取回单 // 获取回单
getReceipt(receiptNos.get(0), receiptResult); getReceipt(receiptNos.get(0), receiptResult);
@ -405,7 +414,7 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName()); List<String> receiptNos = HandLinkBillHelper.getReceiptNoByDetails(dynamicObject, dynamicObject.getDataEntityType().getName());
if (receiptNos.isEmpty()) { if (receiptNos.isEmpty()) {
logger.info("下拨处理:{},无匹配回单", dynamicObject.getString("billno")); logger.info("下拨处理:{},无匹配回单", dynamicObject.getString("billno"));
}else { } else {
Map<String, Object> receiptResult = new HashMap<>(); Map<String, Object> receiptResult = new HashMap<>();
// 获取回单 // 获取回单
getReceipt(receiptNos.get(0), receiptResult); getReceipt(receiptNos.get(0), receiptResult);