From c8b2b701a37e4448d57ed98df7fc46b3553c6883 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, 29 Sep 2026 11:15:57 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BD=9C=E5=BA=9F=E8=AE=A4=E9=A2=86?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E7=94=9F=E6=88=90=E6=9C=AC=E5=9C=B0KDCX?= =?UTF-8?q?=E5=86=B2=E5=8D=95=E2=80=94=E2=80=94=E9=87=91=E8=9D=B6=E5=8D=95?= =?UTF-8?q?=E5=8F=B7/=E7=8A=B6=E6=80=81=E4=BF=9D=E7=95=99=E5=8E=9F?= =?UTF-8?q?=E5=80=BC=EF=BC=8C=E6=8E=A5=E5=8F=A3=E6=94=B9=E6=97=A0=E8=BF=94?= =?UTF-8?q?=E5=9B=9E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ReceiptClaimRecordController.java | 5 +++-- .../service/IReceiptClaimRecordService.java | 2 +- .../impl/ReceiptClaimRecordServiceImpl.java | 16 ++++------------ ...¶重构设计(认领本地化-A301-3定时+手动推送-按流水归集).md | 4 ++-- .../2026-09-28-收款认领流程(业务版).md | 2 +- 5 files changed, 11 insertions(+), 18 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ReceiptClaimRecordController.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ReceiptClaimRecordController.java index 9bd4310a..3db05ad5 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ReceiptClaimRecordController.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/controller/ReceiptClaimRecordController.java @@ -84,8 +84,9 @@ public class ReceiptClaimRecordController extends BladeController { @PostMapping("/void") @ApiOperationSupport(order = 4) @Operation(summary = "作废认领记录并生成金蝶认领冲单") - public R voidClaim(@RequestParam Long id) { - return R.data(receiptClaimRecordService.voidClaim(id)); + public R voidClaim(@RequestParam Long id) { + receiptClaimRecordService.voidClaim(id); + return R.success("作废成功"); } @PostMapping("/query-kingdee-result") diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IReceiptClaimRecordService.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IReceiptClaimRecordService.java index 1dd6f04f..efd68227 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IReceiptClaimRecordService.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/IReceiptClaimRecordService.java @@ -45,7 +45,7 @@ public interface IReceiptClaimRecordService extends BaseService { void updateAttachments(ReceiptClaimAttachmentsRequest request); - String voidClaim(Long id); + void voidClaim(Long id); /** * A301-1 收款单查询回写认领结果:按来源单据编码匹配金蝶收款单,推进金蝶单据状态 diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ReceiptClaimRecordServiceImpl.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ReceiptClaimRecordServiceImpl.java index e1b2623e..94520982 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ReceiptClaimRecordServiceImpl.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/service/impl/ReceiptClaimRecordServiceImpl.java @@ -184,7 +184,7 @@ public class ReceiptClaimRecordServiceImpl extends BaseServiceImpllambdaQuery() .eq(ReceiptClaim::getId, id) .eq(ReceiptClaim::getClaimerId, AuthUtil.getUserId()) @@ -252,10 +252,9 @@ public class ReceiptClaimRecordServiceImpl extends BaseServiceImpl 0) ← 「认领 `voidClaim()` 现有逻辑保留: 1. **累计认领不考虑作废**:作废行 `status=0`,分摊聚合天然排除——与「累计认领不考虑作废的」要求一致,无需改代码;作废后重算流水 `claimed_amount/claim_status`(口径按 §3.2)。 -2. **作废永不触发推送**:未推送的认领作废 → 纯本地;已推送流水的认领作废 → 本地 KDCX 冲单号 + 金蝶人工处置(沿用旧文档原则 5)。作废后即使重认领使等式再次满足,`push_status=pushed` 的终态闸门也阻止二次推送。 +2. **作废永不触发推送、不生成冲单**:未推送的认领作废 → 纯本地;已推送流水的认领作废 → 不生成本地冲单号,认领记录金蝶信息保留原值,金蝶侧冲销/红冲由人工处置(沿用旧文档原则 5)。作废后即使重认领使等式再次满足,`push_status=pushed` 的终态闸门也阻止二次推送。 ### 4.7 重新同步(A301-2 sync 补一处) @@ -247,7 +247,7 @@ claimed 累计有效认领 == unclaimed_amount(且 > 0) ← 「认领 | 推送报文 | `buildClaimPushDTO` | billid=流水.bill_id;**单条分录**:e_receivableamt=全部未推送金额(累计有效认领),seq/e_corebillno=第一张结算单id;awrp_src_code=分摊结算单号下划线拼接 | | 手动接口 | `ReceiptFlowController.pushKingdee`(`POST /receipt-flow/push-kingdee`) | 成功返回金蝶收款单号,失败 R.fail(原因);按钮权限 `receipt_flow_push` | | 回写 | `ReceiptClaimRecordServiceImpl.refreshKingdeeResult()` | 轮询对象改流水(push_status=pushed 且回写状态 pushed/approved),按流水 awrp_src_code 匹配,级联刷新认领主单冗余字段 | -| 作废 | `ReceiptClaimRecordServiceImpl.voidClaim()` | claim_status 重算口径改对照公告未认领金额(其余不变,作废不触发推送) | +| 作废 | `ReceiptClaimRecordServiceImpl.voidClaim()` | claim_status 重算口径改对照公告未认领金额;**不再生成本地 KDCX 冲单号**(金蝶单号/状态保留原值),作废不触发推送 | | 同步 | `ReceiptFlowServiceImpl.sync()` + 共享 `queryClaimAnnounces` | unclaimed_amount 刷新后按新口径重算 claim_status;公告查询方法供 sync/手动推送/定时任务共用 | | 常量 | `KingdeeBfiConstant` | 新增 RECEIPT_CLAIM_PUSH_NONE/PUSHED/FAILED、RECEIPT_CLAIM_BILL_NONE | | 实体/VO | `KingdeeReceiptFlow`(推送域6字段)、`ReceiptClaim`(删 awrpSrcCode)、`ReceiptClaimMapper.xml`(删列)、`ReceiptFlowVO/Wrapper`(pushStatusName/kingdeeBillStatusName、剩余可认领改公告口径)、`ReceiptClaimPushResult`(新增 DTO) | — | diff --git a/doc/docs/业务流程/2026-09-28-收款认领流程(业务版).md b/doc/docs/业务流程/2026-09-28-收款认领流程(业务版).md index 4889aaf6..c16d66ba 100644 --- a/doc/docs/业务流程/2026-09-28-收款认领流程(业务版).md +++ b/doc/docs/业务流程/2026-09-28-收款认领流程(业务版).md @@ -92,7 +92,7 @@ 2. **作废永远不会触发推送**。 3. 按流水是否已推送区分: - **未推送**:纯本地生效,无金蝶影响;补认领到认领完成后仍可正常推送; - - **已推送**:本地生成冲单号留痕,金蝶侧冲销/红冲由人工在金蝶处置,该流水不会被再次自动推送。 + - **已推送**:不生成本地冲单,金蝶侧的冲销/红冲由人工在金蝶处置,该流水不会被再次自动推送。 ---