From 2d0c4a4b26bc53b0f4345cf925176a2498d290a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Tue, 3 Nov 2026 20:14:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E4=BB=98=E6=AC=BE?= =?UTF-8?q?=E7=89=B9=E6=89=B9=E8=B5=B0=E5=90=88=E5=90=8C=E5=90=88=E8=A7=84?= =?UTF-8?q?=E5=BC=80=E5=85=B3=EF=BC=88=E9=BB=98=E8=AE=A4=E5=85=B3=E9=97=AD?= =?UTF-8?q?=EF=BC=8C=E7=89=B9=E6=89=B9=E9=99=84=E4=BB=B6=E5=BF=85=E4=BC=A0?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E4=BF=9D=E7=95=99=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit thirdParty.hcs.spec-pay.enabled=false(默认)时:付款申请审批通过后不再发起 C106-3/4、不挂起特批审核、金蝶推送门禁放行;提交时高风险/黑名单 C101-1 风险校验与特批附件必传逻辑保留。同步 doc/nacos 配置样例与本地 Nacos。 --- .../transport/controller/PaymentApplicationController.java | 2 +- .../transport/listener/KingdeeApprovalSyncListener.java | 7 +++++-- .../service/impl/PaymentApplicationServiceImpl.java | 7 +++++-- .../transport/support/hcs/HcsImmediatePushSupport.java | 7 +++++++ .../transport/support/hcs/HcsPaymentSyncSupport.java | 5 +++-- .../java/org/springblade/hcs/config/HcsProperties.java | 7 +++++++ doc/nacos/blade-dev.yaml | 2 ++ doc/nacos/third-party-api.yaml | 2 ++ 8 files changed, 32 insertions(+), 7 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/PaymentApplicationController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/PaymentApplicationController.java index 56bc27de..f2003c5f 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/PaymentApplicationController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/PaymentApplicationController.java @@ -114,7 +114,7 @@ public class PaymentApplicationController extends BladeController { } PaymentApplication payment = paymentApplicationService.getById(id); String specStatus = payment == null ? null : payment.getHcsSpecStatus(); - if (HcsSyncConstant.SPEC_STATUS_NEED.equals(specStatus)) { + if (hcsImmediatePushSupport.isSpecPayEnabled() && HcsSyncConstant.SPEC_STATUS_NEED.equals(specStatus)) { return R.success("审批通过,付款特批待发起,可在详情页重推合规"); } if (Arrays.asList(HcsSyncConstant.SPEC_STATUS_PUSHING, HcsSyncConstant.SPEC_STATUS_PROCESSING).contains(specStatus)) { diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/listener/KingdeeApprovalSyncListener.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/listener/KingdeeApprovalSyncListener.java index 4657465c..491f5a36 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/listener/KingdeeApprovalSyncListener.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/listener/KingdeeApprovalSyncListener.java @@ -24,6 +24,7 @@ import lombok.extern.slf4j.Slf4j; import org.springblade.core.tool.api.R; import org.springblade.transport.config.BfiProperties; import org.springblade.transport.constant.HcsSyncConstant; +import org.springblade.hcs.config.HcsProperties; import org.springblade.transport.event.KingdeeBillApprovedEvent; import org.springblade.transport.pojo.entity.PaymentApplication; import org.springblade.transport.service.IFormalSettlementService; @@ -65,6 +66,7 @@ public class KingdeeApprovalSyncListener { private final IInvoiceApplicationService invoiceApplicationService; private final IInvoiceReceiptService invoiceReceiptService; private final BfiProperties bfiProperties; + private final HcsProperties hcsProperties; /** 当前审批请求线程的自动推送失败原因,供 Controller 取走提示前端(见类注释线程说明) */ private static final ThreadLocal SYNC_FAILURE = new ThreadLocal<>(); @@ -183,9 +185,10 @@ public class KingdeeApprovalSyncListener { return; } // 付款特批未完成(高风险/黑名单/额度超额)时金蝶必然拒推:跳过而非置失败, - // 特批通过后由 HcsPaymentSyncSupport 重新发布本事件自动补推 + // 特批通过后由 HcsPaymentSyncSupport 重新发布本事件自动补推; + // 特批不走合同系统(spec-pay.enabled=false)时不跳过 PaymentApplication payment = paymentApplicationService.getById(id); - if (payment != null && payment.getHcsSpecStatus() != null + if (hcsProperties.getSpecPay().isEnabled() && payment != null && payment.getHcsSpecStatus() != null && List.of(HcsSyncConstant.SPEC_STATUS_NEED, HcsSyncConstant.SPEC_STATUS_PUSHING, HcsSyncConstant.SPEC_STATUS_PROCESSING).contains(payment.getHcsSpecStatus())) { log.info("付款申请[{}]审批通过自动同步金蝶跳过(付款特批未完成):hcsSpecStatus={}", id, payment.getHcsSpecStatus()); diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java index 41448c11..e9d56acf 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java @@ -51,6 +51,7 @@ import org.springblade.thirdparty.bfi.util.BfiUtil; import org.springblade.transport.config.BfiProperties; import org.springblade.transport.constant.KingdeeAttachmentConstant; import org.springblade.transport.constant.HcsSyncConstant; +import org.springblade.hcs.config.HcsProperties; import org.springblade.transport.constant.KingdeeBfiConstant; import org.springblade.transport.constant.KingdeeLockConstant; import org.springblade.transport.constant.TransportBusiConstant; @@ -187,6 +188,7 @@ public class PaymentApplicationServiceImpl extends BaseServiceImpl