parent
92fceb9317
commit
8337b23375
|
@ -205,7 +205,7 @@ public class ApiService {
|
||||||
dynamic.set("shkd_businessnumber", data.getString("code"));
|
dynamic.set("shkd_businessnumber", data.getString("code"));
|
||||||
dynamic.set("shkd_businessid", data.getString("id"));
|
dynamic.set("shkd_businessid", data.getString("id"));
|
||||||
dynamic.set("shkd_businessname", "BIP");
|
dynamic.set("shkd_businessname", "BIP");
|
||||||
dynamic.set("shkd_pushstatus", "已推送");
|
dynamic.set("shkd_pushstatus", "已结算");
|
||||||
dynamicObjects.add(dynamic);
|
dynamicObjects.add(dynamic);
|
||||||
|
|
||||||
submitUrl = objects[0].getString("shkd_submiturl");
|
submitUrl = objects[0].getString("shkd_submiturl");
|
||||||
|
@ -233,6 +233,13 @@ public class ApiService {
|
||||||
code = jsonObject.getString("code");
|
code = jsonObject.getString("code");
|
||||||
if ("200".equals(code)) {
|
if ("200".equals(code)) {
|
||||||
dynamic.set("billstatus", "A");
|
dynamic.set("billstatus", "A");
|
||||||
|
|
||||||
|
if ("TF、NC、OF".contains(objects[0].getString("bankpaystatus"))) {
|
||||||
|
dynamic.set("shkd_pushstatus", "结算失败");
|
||||||
|
} else if ("TS".equals(objects[0].getString("bankpaystatus"))){
|
||||||
|
dynamic.set("shkd_pushstatus", "已结算");
|
||||||
|
}
|
||||||
|
|
||||||
dynamicObjects.add(dynamic);
|
dynamicObjects.add(dynamic);
|
||||||
logger.info("付款处理(支付结果) → BIP推送接口 → 成功\n成功单据编号:{}\n推送成功接口返回数据:{}", dynamic.getString("billno"), saveResponseBody);
|
logger.info("付款处理(支付结果) → BIP推送接口 → 成功\n成功单据编号:{}\n推送成功接口返回数据:{}", dynamic.getString("billno"), saveResponseBody);
|
||||||
result = "推送 → 付款处理(支付结果) → 成功";
|
result = "推送 → 付款处理(支付结果) → 成功";
|
||||||
|
@ -400,6 +407,18 @@ public class ApiService {
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
// 格式化Date对象为字符串
|
// 格式化Date对象为字符串
|
||||||
value = sdf.format(bizdate);
|
value = sdf.format(bizdate);
|
||||||
|
} else if ("bankpaystatus".equals(parts[0])) {
|
||||||
|
String bankpaystatus = billObject.getString(parts[0]);
|
||||||
|
switch (bankpaystatus) {
|
||||||
|
case "TS":
|
||||||
|
value = "3";
|
||||||
|
break;
|
||||||
|
case "TF":
|
||||||
|
case "NC":
|
||||||
|
case "OF":
|
||||||
|
value = "4";
|
||||||
|
break;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
value = billObject.get(parts[0]);
|
value = billObject.get(parts[0]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -118,7 +118,18 @@ public class PayBillApiSavePlugin implements ApiSavePlugin {
|
||||||
map.put(fieldName2, payeebank);
|
map.put(fieldName2, payeebank);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
String billstatus = map.get("billstatus").toString();
|
||||||
|
if ("C".equals(billstatus)) {
|
||||||
|
map.put("shkd_pushstatus", "未结算");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ("D".equals(billstatus)) {
|
||||||
|
map.put("shkd_pushstatus", "已结算");
|
||||||
|
}
|
||||||
|
|
||||||
logger.info("最终处理 → 调用接口参数:{}", reqData);
|
logger.info("最终处理 → 调用接口参数:{}", reqData);
|
||||||
|
|
||||||
}
|
}
|
||||||
return reqData;
|
return reqData;
|
||||||
}
|
}
|
||||||
|
|
|
@ -112,11 +112,13 @@ public class ApiMappingBillPlugin extends AbstractFormPlugin implements Plugin {
|
||||||
|
|
||||||
if ("shkd_testapi".equals(itemKey)) {
|
if ("shkd_testapi".equals(itemKey)) {
|
||||||
String result = ApiService.paymentSlipsJson(billObject, "BIP", dynamicObjects);
|
String result = ApiService.paymentSlipsJson(billObject, "BIP", dynamicObjects);
|
||||||
|
SaveServiceHelper.save(dynamicObjects.toArray(new DynamicObject[0]));
|
||||||
this.getView().showTipNotification("返回结果:" + result);
|
this.getView().showTipNotification("返回结果:" + result);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ("shkd_hitback".equals(itemKey)) {
|
if ("shkd_hitback".equals(itemKey)) {
|
||||||
String result = ApiService.paymentSlipsJson(billObject, "BIPNO", dynamicObjects);
|
String result = ApiService.paymentSlipsJson(billObject, "BIPNO", dynamicObjects);
|
||||||
|
SaveServiceHelper.save(dynamicObjects.toArray(new DynamicObject[0]));
|
||||||
this.getView().showTipNotification("返回结果:" + result);
|
this.getView().showTipNotification("返回结果:" + result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,43 @@
|
||||||
|
package shkd.sys.sys.plugin.form;
|
||||||
|
|
||||||
|
import kd.bos.bill.AbstractBillPlugIn;
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.form.control.Toolbar;
|
||||||
|
import kd.bos.form.control.events.ItemClickEvent;
|
||||||
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
import shkd.sys.sys.mservice.ApiService;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.EventObject;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 单据界面插件
|
||||||
|
*/
|
||||||
|
public class PaymentProcessingBillPlugin extends AbstractBillPlugIn implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void registerListener(EventObject e) {
|
||||||
|
Toolbar tbmain = this.getView().getControl("tbmain");
|
||||||
|
tbmain.addItemClickListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void itemClick(ItemClickEvent evt) {
|
||||||
|
String itemKey = evt.getItemKey();
|
||||||
|
if ("shkd_hitback".equals(itemKey)) {
|
||||||
|
DynamicObject dataEntity = this.getModel().getDataEntity(true);
|
||||||
|
String bankpaystatus = dataEntity.getString("bankpaystatus");
|
||||||
|
if ("TF、NC、OF".contains(bankpaystatus)) {
|
||||||
|
List<DynamicObject> dynamicObjects = new ArrayList<>();
|
||||||
|
String result = ApiService.paymentSlipsJson(dataEntity, "BIPNO", dynamicObjects);
|
||||||
|
if (result.contains("成功")) {
|
||||||
|
SaveServiceHelper.save(dynamicObjects.toArray(new DynamicObject[0]));
|
||||||
|
this.getView().showSuccessNotification("打回成功");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
this.getView().showErrorNotification("打回失败,请确认银行支付状态");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,46 @@
|
||||||
|
package shkd.sys.sys.plugin.list;
|
||||||
|
|
||||||
|
import kd.bos.dataentity.entity.DynamicObject;
|
||||||
|
import kd.bos.entity.datamodel.ListSelectedRow;
|
||||||
|
import kd.bos.entity.datamodel.ListSelectedRowCollection;
|
||||||
|
import kd.bos.form.control.events.ItemClickEvent;
|
||||||
|
import kd.bos.list.BillList;
|
||||||
|
import kd.bos.list.plugin.AbstractListPlugin;
|
||||||
|
import kd.bos.orm.query.QCP;
|
||||||
|
import kd.bos.orm.query.QFilter;
|
||||||
|
import kd.bos.servicehelper.BusinessDataServiceHelper;
|
||||||
|
import kd.sdk.plugin.Plugin;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 标准单据列表插件
|
||||||
|
*/
|
||||||
|
public class PaymentProcessingListPlugin extends AbstractListPlugin implements Plugin {
|
||||||
|
@Override
|
||||||
|
public void itemClick(ItemClickEvent evt) {
|
||||||
|
String itemKey = evt.getItemKey();
|
||||||
|
if ("shkd_hitback".equals(itemKey)) {
|
||||||
|
List<String> billnos = new ArrayList<>();
|
||||||
|
//获取列表
|
||||||
|
BillList list = this.getControl("billlistap");
|
||||||
|
//获取列表选中的行数据
|
||||||
|
ListSelectedRowCollection selectedRows = list.getSelectedRows();
|
||||||
|
|
||||||
|
if (selectedRows.isEmpty()) this.getView().showTipNotification("请至少选择一条数据");
|
||||||
|
if (selectedRows.size() > 1000) this.getView().showTipNotification("请至少选择一条数据");
|
||||||
|
|
||||||
|
for (ListSelectedRow listSelectedRow : selectedRows) {
|
||||||
|
billnos.add(listSelectedRow.getBillNo());
|
||||||
|
}
|
||||||
|
|
||||||
|
/* DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
|
||||||
|
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||||
|
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||||
|
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||||
|
, new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送")
|
||||||
|
.and("billstatus", QCP.equals, "D").toArray());*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -53,13 +53,18 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
List<DynamicObject> dynamicObjectList = new ArrayList<>();
|
List<DynamicObject> dynamicObjectList = new ArrayList<>();
|
||||||
if (billMark != null) {
|
if (billMark != null) {
|
||||||
switch (billMark.toString()) {
|
switch (billMark.toString()) {
|
||||||
|
//已结算、未结算、结算失败、未推送
|
||||||
|
|
||||||
// 付款处理
|
// 付款处理
|
||||||
case "cas_paybill":
|
case "cas_paybill":
|
||||||
DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
|
DynamicObject[] objects1 = BusinessDataServiceHelper.load("cas_paybill",
|
||||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||||
, new QFilter("bizdate", QCP.large_equals, date).and("shkd_pushstatus", QCP.not_equals, "已推送")
|
, new QFilter("bizdate", QCP.large_equals, date)
|
||||||
|
.and("shkd_pushstatus", QCP.not_equals, "已结算")
|
||||||
|
.and("shkd_pushstatus", QCP.not_equals, "未结算")
|
||||||
|
.and("shkd_pushstatus", QCP.not_equals, "结算失败")
|
||||||
.and("billstatus", QCP.equals, "D").toArray());
|
.and("billstatus", QCP.equals, "D").toArray());
|
||||||
dynamicObjects = Arrays.asList(objects1);
|
dynamicObjects = Arrays.asList(objects1);
|
||||||
dynamicObjects.forEach(dynamicObject -> {
|
dynamicObjects.forEach(dynamicObject -> {
|
||||||
|
@ -87,14 +92,24 @@ public class PushTaskPlugin extends AbstractTask implements Plugin {
|
||||||
dynamicObjects = Arrays.asList(objects3);
|
dynamicObjects = Arrays.asList(objects3);
|
||||||
billName = "银行收付处理";
|
billName = "银行收付处理";
|
||||||
break;
|
break;
|
||||||
// 支付失败(付款处理支付结果定时推送)
|
// 支付结果推送(付款处理支付结果定时推送)
|
||||||
case "cas_paybill_result":
|
case "cas_paybill_result":
|
||||||
DynamicObject[] objects4 = BusinessDataServiceHelper.load("cas_paybill",
|
DynamicObject[] objects4 = BusinessDataServiceHelper.load("cas_paybill",
|
||||||
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||||
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||||
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||||
, new QFilter("bizdate", QCP.large_equals, date).and("bankpaystatus", QCP.in, new String[]{"TF", "NC", "OF"}).toArray());
|
, new QFilter("bizdate", QCP.large_equals, date)
|
||||||
|
.and("bankpaystatus", QCP.in, new String[]{"TS", "TF", "NC", "OF"})
|
||||||
|
.and("shkd_pushstatus", QCP.equals, "未结算").toArray());
|
||||||
|
|
||||||
|
DynamicObject[] objects5 = BusinessDataServiceHelper.load("cas_paybill",
|
||||||
|
"id,billno,actpayamt,entry,entry.e_expenseitem,entry.e_remark,settletype,payeebanknum," +
|
||||||
|
"payeetype,payeenumber,payeracctbank,payeebank,payeebankname,paymenttype,org,bizdate,description," +
|
||||||
|
"shkd_pushstatus,shkd_businessnumber,shkd_businessid,shkd_businessname,billstatus,bankpaystatus"
|
||||||
|
, new QFilter("bankpaystatus", QCP.equals, "TS")
|
||||||
|
.and("shkd_pushstatus", QCP.equals, "结算失败").toArray());
|
||||||
dynamicObjects = Arrays.asList(objects4);
|
dynamicObjects = Arrays.asList(objects4);
|
||||||
|
dynamicObjects.addAll(Arrays.asList(objects5));
|
||||||
dynamicObjects.forEach(dynamicObject -> {
|
dynamicObjects.forEach(dynamicObject -> {
|
||||||
ApiService.paymentSlipsJson(dynamicObject, "BIPNO", dynamicObjectList);
|
ApiService.paymentSlipsJson(dynamicObject, "BIPNO", dynamicObjectList);
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue