Merge branch 'feature/payment-apply-bfi-sync' into feature/hcs-api-p0

# Conflicts:
#	blade-service/blade-transport/src/main/java/org/springblade/transport/mk/MkProcessBizHandlers.java
#	blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ContractManageServiceImpl.java
#	blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceApplicationServiceImpl.java
#	blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/InvoiceReceiptServiceImpl.java
#	blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/PaymentApplicationServiceImpl.java
#	blade-service/blade-transport/src/main/java/org/springblade/transport/task/CustomerKingdeeSyncTask.java
#	blade-service/blade-transport/src/main/java/org/springblade/transport/task/PaymentKingdeeResultTask.java
#	doc/nacos/blade.yaml
#	doc/nacos/third-party-api.yaml
This commit is contained in:
刘泉佳
2026-10-15 04:07:13 +08:00
556 changed files with 35208 additions and 6751 deletions
+10 -1
View File
@@ -161,9 +161,18 @@ thirdParty:
# 金蝶付款结果定时回写(A103-2 付款申请单查询 / A103-4 付款处理查询)
payResult:
# 回写任务开关
syncEnabled: ${BFI_PAY_RESULT_SYNC_ENABLED:false}
syncEnabled: ${BFI_PAY_RESULT_SYNC_ENABLED:true}
# 调度 cron,默认每10分钟
cron: ${BFI_PAY_RESULT_CRON:0 */10 * * * ?}
# 收款认领推送金蝶定时任务(A301-3 收款认领结果推送)
receiptClaimPush:
# 推送任务开关,默认关闭(联调稳定后开启)
syncEnabled: ${BFI_RECEIPT_CLAIM_PUSH_SYNC_ENABLED:false}
# 调度 cron,默认每10分钟
cron: ${BFI_RECEIPT_CLAIM_PUSH_CRON:0 */10 * * * ?}
# single-flight 分布式锁租约秒数,须大于最坏一轮耗时(逐认领人远程查公告+逐条推送),
# 进程异常退出时锁在租约到期后自动释放
lockLeaseSeconds: ${BFI_RECEIPT_CLAIM_PUSH_LOCK_LEASE_SECONDS:1800}
#百度OCR配置,API Key和Secret Key请通过环境变量注入
baidu:
+19 -1
View File
@@ -132,9 +132,18 @@ thirdParty:
# 金蝶付款结果定时回写(A103-2 付款申请单查询 / A103-4 付款处理查询)
payResult:
# 回写任务开关
syncEnabled: ${BFI_PAY_RESULT_SYNC_ENABLED:false}
syncEnabled: ${BFI_PAY_RESULT_SYNC_ENABLED:true}
# 调度 cron,默认每10分钟
cron: ${BFI_PAY_RESULT_CRON:0 */10 * * * ?}
# 收款认领推送金蝶定时任务(A301-3 收款认领结果推送)
receiptClaimPush:
# 推送任务开关,默认关闭(联调稳定后开启)
syncEnabled: ${BFI_RECEIPT_CLAIM_PUSH_SYNC_ENABLED:false}
# 调度 cron,默认每10分钟
cron: ${BFI_RECEIPT_CLAIM_PUSH_CRON:0 */10 * * * ?}
# single-flight 分布式锁租约秒数,须大于最坏一轮耗时(逐认领人远程查公告+逐条推送),
# 进程异常退出时锁在租约到期后自动释放
lockLeaseSeconds: ${BFI_RECEIPT_CLAIM_PUSH_LOCK_LEASE_SECONDS:1800}
#百度OCR配置,API Key和Secret Key请通过环境变量注入
baidu:
@@ -147,6 +156,15 @@ baidu:
request-timeout: 30s
token-refresh-advance: 1m
# 对象存储(blade-file 分片上传 + blade-transport 凭证读写共用)
# endpoint:强烈建议内网 MinIO(http://IP:19000);若只能走网关可填 https://tms-prod.xinghy56.com/oss(代码会自动处理 /oss)
# transform-endpoint:浏览器预签名外网地址
file:
storage:
minio:
# endpoint: http://内网MinIO地址:端口
transform-endpoint: https://tms-prod.xinghy56.com/oss
powerjob:
worker:
server-address: 172.16.203.228:7700
+13
View File
@@ -13,6 +13,9 @@ server:
#spring配置
spring:
codec:
# 运单批量导入等大 JSON / 失败明细导出场景,默认 256KB 会触发网关 500
max-in-memory-size: 20MB
servlet:
multipart:
max-file-size: 500MB
@@ -225,6 +228,9 @@ blade:
- /customer-archive/public/**
- /blade-transport/mk-process/public/**
- /mk-process/public/**
# 金蝶单据解锁回调(unLockNotifyBusiData):金蝶侧无令牌调用,免登免授权
- /blade-transport/kingdee-bfi/**
- /kingdee-bfi/**
- /blade-openapi/openApi/mk/process/commonCallback
- /openApi/mk/process/commonCallback
- /feign/client/businessProcess/getCurrentNodes
@@ -256,6 +262,13 @@ blade:
- method: POST
pattern: /dashboard/submit
expression: "hasAnyRole('administrator', 'admin', 'user')"
# 金蝶单据解锁回调(unLockNotifyBusiData):金蝶侧无令牌调用,免登免授权
- method: POST
pattern: /blade-transport/kingdee-bfi/**
expression: "permitAll()"
- method: POST
pattern: /kingdee-bfi/**
expression: "permitAll()"
# HCS 合同/付款特批结果回传:合规系统经 iPaaS 网关无令牌调用,免登免授权
- method: POST
pattern: /blade-transport/hcs/contractLegal/result
+22
View File
@@ -49,6 +49,28 @@
],
"uri": "lb://blade-system"
},
{
"id": "resource-route",
"order": 0,
"predicates": [
{
"name": "Path",
"args": {
"pattern": "/blade-resource/**"
}
}
],
"filters": [
{
"name": "RewritePath",
"args": {
"regexp": "/blade-resource/(?<segment>.*)",
"replacement": "/$\\{segment}"
}
}
],
"uri": "http://127.0.0.1:8010"
},
{
"id": "example-route",
"order": 0,
+83 -3
View File
@@ -49,6 +49,21 @@ thirdParty:
language: ${BFI_LANGUAGE:zh_CN}
# 数据来源系统编码(推送金蝶公共参数:客商、付款申请等统一使用),默认 WLTMS(运输TMS)
srcSys: ${BFI_SRC_SYS:WLTMS}
# 应付/应收/收票单分录物料映射(A102-2/A302-2/A303-2 共用,未配置使用代码默认值):
# 运输类按项目业务模式映射——国内运输按运单运输方式映射、国际运输映射国际货代服务;
# 装卸大类及手动添加的非运费杂费映射装卸物料
# 注意:Map 的中文 key 必须用 ["中文"] 方括号写法,否则 Spring Boot 绑定失败、服务启动报错
material:
# 国内运输:运单运输方式 -> 金蝶物料编码(公路运输/铁路运输/水路运输/航空运输四种)
domestic:
"[公路运输]": ${BFI_MATERIAL_DOMESTIC_ROAD:XDWL11010001}
"[铁路运输]": ${BFI_MATERIAL_DOMESTIC_RAIL:XDWL11010002}
"[水路运输]": ${BFI_MATERIAL_DOMESTIC_WATER:XDWL11010003}
"[航空运输]": ${BFI_MATERIAL_DOMESTIC_AIR:Item-00001082}
# 国际运输业务模式物料编码(国际货运代理服务)
international: ${BFI_MATERIAL_INTERNATIONAL:Item-00001081}
# 装卸大类、手动添加非运费杂费物料编码(装卸)
loading: ${BFI_MATERIAL_LOADING:XDWL11002004}
# 付款申请推送配置(A103-3 付款申请保存)
payApply:
# 单据类型编码:ap_payapply_BT_S 采购付款申请、ap_payapply_oth_BT_S 其他付款申请
@@ -61,9 +76,74 @@ thirdParty:
# 金蝶付款结果定时回写(A103-2 付款申请单查询 / A103-4 付款处理查询)
payResult:
# 回写任务开关
syncEnabled: ${BFI_PAY_RESULT_SYNC_ENABLED:false}
# 调度 cron,默认每10分钟
cron: ${BFI_PAY_RESULT_CRON:0 */10 * * * ?}
syncEnabled: ${BFI_PAY_RESULT_SYNC_ENABLED:true}
# 调度 cron,默认每10分钟(:01 起步,错峰避让其他金蝶任务)
cron: ${BFI_PAY_RESULT_CRON:0 1/10 * * * ?}
# 金蝶收票单结果定时回写(A801-3 异常回收/指定补偿/单号补登)
receivedInvoiceResult:
# 回写任务开关,默认关闭(联调稳定后开启)
syncEnabled: ${BFI_RECEIVED_INVOICE_RESULT_SYNC_ENABLED:false}
# 调度 cron,默认每10分钟(:08 起步,错峰避让其他金蝶任务)
cron: ${BFI_RECEIVED_INVOICE_RESULT_CRON:0 8/10 * * * ?}
# 收款认领推送金蝶定时任务(A301-3 收款认领结果推送)
receiptClaimPush:
# 推送任务开关,默认关闭(联调稳定后开启)
syncEnabled: ${BFI_RECEIPT_CLAIM_PUSH_SYNC_ENABLED:false}
# 调度 cron,默认每10分钟(:04 起步,错峰避让其他金蝶任务)
cron: ${BFI_RECEIPT_CLAIM_PUSH_CRON:0 4/10 * * * ?}
# single-flight 分布式锁租约秒数,须大于最坏一轮耗时(逐认领人远程查公告+逐条推送),
# 进程异常退出时锁在租约到期后自动释放
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 起步,错峰避让其他金蝶任务)
retryCron: ${BFI_BILL_LOCK_RETRY_CRON:0 2/5 * * * ?}
# 收款认领公告查询配置(A301-2)
claimAnnounce:
# 查询时间窗口(月数)
months: ${BFI_CLAIM_ANNOUNCE_MONTHS:6}
# 认领人:配置后公告查询固定使用该值,不再按当前登录用户姓名查询
claimusers: ${BFI_CLAIM_ANNOUNCE_CLAIMUSERS:}
# 金蝶全票池发票定时同步(A801-1 窗口拉取+镜像 upsert,选票统一查本地)
invoiceReceipt:
# 同步任务开关,默认关闭(上线先手动 POST /invoice-receipt/sync-invoice-pool 跑一次全窗口铺底)
syncEnabled: ${BFI_INVOICE_RECEIPT_SYNC_ENABLED:false}
# 调度 cron,默认每30分钟(:16 起步,错峰避让其他金蝶任务)
cron: ${BFI_INVOICE_RECEIPT_CRON:0 16/30 * * * ?}
# 增量窗口天数(按票池更新时间滚动)
incrementDays: ${BFI_INVOICE_RECEIPT_INCREMENT_DAYS:30}
# 同步发票种类白名单(逗号分隔票易通编码,如 26,27 数电普票/专票),为空不限制
invoiceTypes: ${BFI_INVOICE_RECEIPT_INVOICE_TYPES:26,27}
# 补偿绑定单轮限量(未绑定登记按发票号码精确补查条数上限)
compensateLimit: ${BFI_INVOICE_RECEIPT_COMPENSATE_LIMIT:200}
# single-flight 分布式锁租约秒数,须大于最坏一轮耗时;进程异常退出时锁在租约到期后自动释放
lockLeaseSeconds: ${BFI_INVOICE_RECEIPT_LOCK_LEASE_SECONDS:1800}
# 审批通过自动同步金蝶(事件触发:结算单A102-2/A302-2、付款申请A103-1/A103-3、开票申请A303-1、收票A303-2+A302-6)
autoSync:
# 结算单审批后自动推送开关
settlement: ${BFI_AUTO_SYNC_SETTLEMENT:false}
# 付款申请审批后自动推送开关
payment: ${BFI_AUTO_SYNC_PAYMENT:false}
# 开票申请审批后自动推送开关
invoiceApply: ${BFI_AUTO_SYNC_INVOICE_APPLY:false}
# 收票登记审批后自动推送开关
receipt: ${BFI_AUTO_SYNC_RECEIPT:false}
# failed 单据定时重推开关(仅重推生成失败,不扫 unsynced 存量)
retryEnabled: ${BFI_AUTO_SYNC_RETRY_ENABLED:false}
# 重推调度 cron,默认每10分钟(:05 起步,错峰避让其他金蝶任务)
retryCron: ${BFI_AUTO_SYNC_RETRY_CRON:0 5/10 * * * ?}
# 客商金蝶数据定时同步(A902-1 复查 / A902-2 推送)
customer:
# 同步任务开关,默认关闭
syncEnabled: ${BFI_CUSTOMER_SYNC_ENABLED:false}
# 同步调度 cron,默认每天 02:00 执行
cron: ${BFI_CUSTOMER_SYNC_CRON:0 0 2 * * ?}
# 同步 single-flight 锁租约秒数,须大于最坏一轮耗时(复查 + 批量推送 + 停用联动)
lockLeaseSeconds: ${BFI_CUSTOMER_SYNC_LOCK_LEASE_SECONDS:1800}
# 合同合规系统
hcs:
# Mock 开关(true 时 IHcsClient 走本地 JSON 桩 F:/home/tms/mock/hcs/{方法名}.json,联调前自测用,生产必须 false;改配置需重启,改桩文件即时生效)