diff --git a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PaymentProcessingListPlugin.java b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PaymentProcessingListPlugin.java index 5b36fb1..4ff5681 100644 --- a/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PaymentProcessingListPlugin.java +++ b/sys/shkd-sys-sys/src/main/java/shkd/sys/sys/plugin/list/PaymentProcessingListPlugin.java @@ -45,7 +45,6 @@ public class PaymentProcessingListPlugin extends AbstractListPlugin implements P ListSelectedRowCollection selectedRows = list.getSelectedRows(); if ("hitback".equals(operateKey)) { - logger.info("进入打回操作 → hitback"); if (selectedRows.isEmpty()) { this.getView().showTipNotification("请选择一条数据"); return; @@ -57,6 +56,8 @@ public class PaymentProcessingListPlugin extends AbstractListPlugin implements P Object primaryKeyValue = listSelectedRow.getPrimaryKeyValue(); DynamicObject dynamicObject = BusinessDataServiceHelper.loadSingle(primaryKeyValue, "cas_paybill"); DynamicObject loadSingle = BusinessDataServiceHelper.loadSingle(dynamicObject.getDynamicObjectType().getName(), "id,billno,name,billstatus,shkd_businessname", new QFilter("id", QCP.equals, dynamicObject.getPkValue()).toArray()); + String billno = loadSingle.getString("billno"); + logger.info("进入打回操作 → hitback\nbillno:{}", billno); Object businessname = loadSingle.get("shkd_businessname"); String billstatus = loadSingle.getString("billstatus"); if (businessname != null) { @@ -79,7 +80,12 @@ public class PaymentProcessingListPlugin extends AbstractListPlugin implements P if (pushResult.contains("成功")) { SaveServiceHelper.save(dynamicObjects.toArray(new DynamicObject[0])); } else { - this.getView().showTipNotification("打回失败,失败原因:调用BIP打回接口失败"); + String returnResults = extractMessageFromResult(pushResult); + if (!returnResults.isEmpty()) { + this.getView().showTipNotification("打回失败,失败原因:BIP单据" + returnResults); + } else { + this.getView().showTipNotification("打回失败,请找业务老师处理"); + } return; } } @@ -90,24 +96,41 @@ public class PaymentProcessingListPlugin extends AbstractListPlugin implements P operation = OperationServiceHelper.executeOperate("unaudit", "cas_paybill", new DynamicObject[]{dynamicObject}, OperateOption.create()); } else { this.getView().showTipNotification("单据不为已提交或已审核状态,无法打回"); + logger.info("单据:{}打回失败,失败原因:单据不为已提交或已审核状态", billno); return; } List allErrorOrValidateInfo = operation.getAllErrorOrValidateInfo(); if (!allErrorOrValidateInfo.isEmpty()) { this.getView().showTipNotification("打回失败,失败原因:撤销(反审核)操作失败 → " + allErrorOrValidateInfo.get(0).getMessage()); + logger.info("单据:{}打回失败,失败原因:撤销(反审核)操作失败 → " + allErrorOrValidateInfo.get(0).getMessage()); return; } else { this.getView().showSuccessNotification("打回成功"); + logger.info("单据:{}打回成功", billno); list.refresh(); } } else { this.getView().showTipNotification("来源系统为(BIP或星空)且单据状态为(提交或审核)才允许打回"); + logger.info("单据:{}打回失败,失败原因:来源系统为(BIP或星空)且单据状态为(提交或审核)才允许打回", billno); return; } } else { this.getView().showTipNotification("来源系统为(BIP或星空)且单据状态为(提交或审核)才允许打回"); + logger.info("单据:{}打回失败,失败原因:来源系统为(BIP或星空)且单据状态为(提交或审核)才允许打回", billno); } } } } + + private String extractMessageFromResult(String result) { + // 查找 "返回信息:" 后面的部分 + String keyword = "返回信息:"; + int startIndex = result.indexOf(keyword); + + if (startIndex != -1) { + // 提取 "返回信息:" 后面的消息部分 + return result.substring(startIndex + keyword.length()); + } + return ""; // 如果没有找到,则返回空字符串 + } } \ No newline at end of file