diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/config/BfiProperties.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/config/BfiProperties.java index ecc40f74..f2e38a9d 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/config/BfiProperties.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/config/BfiProperties.java @@ -372,6 +372,14 @@ public class BfiProperties { @Data public static class BillLock { + /** + * 锁定/解锁总开关(thirdParty.bfi.billLock.enabled):推送后锁定 lockBusiData、 + * 金蝶解锁回调 unLockNotifyBusiData、锁定补偿重锁三处共用; + * 默认开启保持既有锁定行为,Nacos 置 false 一键停用 + * (推送后不再锁单、解锁回调只应答不处理、补偿跳过),存量锁记录守卫(不可编辑校验)不受影响 + */ + private boolean enabled = true; + /** * 锁定补偿开关,默认关闭(安全兜底) */ diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/KingdeeBillLockServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/KingdeeBillLockServiceImpl.java index d3982a09..97ee28db 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/KingdeeBillLockServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/KingdeeBillLockServiceImpl.java @@ -73,6 +73,11 @@ public class KingdeeBillLockServiceImpl extends ServiceImpl targetBillNos) { + // 总开关关闭:不落锁记录、不调 lockBusiData,返回 null 不影响推送主流程 + if (!bfiProperties.getBillLock().isEnabled()) { + log.info("金蝶单据锁定总开关关闭,跳过锁定:源单[{}:{}]", sourceBillType, sourceBillNo); + return null; + } if (Func.isEmpty(targetBillNos)) { return null; } @@ -145,6 +150,12 @@ public class KingdeeBillLockServiceImpl extends ServiceImpl failedList = this.list(Wrappers.lambdaQuery() .eq(KingdeeBillLock::getLockStatus, KingdeeLockConstant.STATUS_FAILED) .lt(KingdeeBillLock::getTryCount, KingdeeLockConstant.RETRY_MAX_COUNT)); diff --git a/doc/nacos/third-party-api.yaml b/doc/nacos/third-party-api.yaml index 3dfeb2f3..caa5f604 100644 --- a/doc/nacos/third-party-api.yaml +++ b/doc/nacos/third-party-api.yaml @@ -96,6 +96,8 @@ thirdParty: lockLeaseSeconds: ${BFI_RECEIPT_CLAIM_PUSH_LOCK_LEASE_SECONDS:1800} # 金蝶单据锁定定时补偿 billLock: + # 锁定/解锁总开关(推送后锁定+解锁回调+补偿重锁共用),默认开启保持既有行为 + enabled: ${BFI_BILL_LOCK_ENABLED:true} # 锁定补偿开关,默认关闭(安全兜底) retryEnabled: ${BFI_BILL_LOCK_RETRY_ENABLED:false} # 补偿调度 cron,默认每5分钟(:02 起步,错峰避让其他金蝶任务)