From 82fab4b76a459973dbe7ead8df26b8540bff0694 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:58:20 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=B7=B2=E6=8E=A8=E9=80=81=E9=87=91?= =?UTF-8?q?=E8=9D=B6=E7=9A=84=E8=AE=A4=E9=A2=86=E4=B8=8D=E5=85=81=E8=AE=B8?= =?UTF-8?q?=E4=BD=9C=E5=BA=9F=E2=80=94=E2=80=94=E5=90=8E=E7=AB=AF=E7=A1=AC?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E6=8B=A6=E6=88=AA=EF=BC=8C=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E5=B8=A6=E5=87=BA=E6=B5=81=E6=B0=B4=E6=8E=A8=E9=80=81=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/springblade/transport/mapper/ReceiptClaimMapper.xml | 1 + .../service/impl/ReceiptClaimRecordServiceImpl.java | 4 ++++ ...推送金蝶重构设计(认领本地化-A301-3定时+手动推送-按流水归集).md | 4 ++-- doc/docs/业务流程/2026-09-28-收款认领流程(业务版).md | 6 ++---- 4 files changed, 9 insertions(+), 6 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceiptClaimMapper.xml b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceiptClaimMapper.xml index 964a58fa..b1337bbe 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceiptClaimMapper.xml +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/mapper/ReceiptClaimMapper.xml @@ -36,6 +36,7 @@ f.summary, f.transaction_time, f.detail_serial_no, + f.push_status, (SELECT GROUP_CONCAT(rcs.formal_settlement_no ORDER BY rcs.id SEPARATOR ',') FROM blade_receipt_claim_settlement rcs WHERE rcs.receipt_claim_id = c.id AND rcs.is_deleted = 0) AS associated_settlement_nos 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 39a1d496..8d0116e6 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 @@ -203,6 +203,10 @@ public class ReceiptClaimRecordServiceImpl extends BaseServiceImpl relations = claimSettlementMapper.selectList( Wrappers.lambdaQuery() diff --git a/doc/docs/业务流程/2026-09-28-收款认领推送金蝶重构设计(认领本地化-A301-3定时+手动推送-按流水归集).md b/doc/docs/业务流程/2026-09-28-收款认领推送金蝶重构设计(认领本地化-A301-3定时+手动推送-按流水归集).md index 2d5b2423..ef4b0bdb 100644 --- a/doc/docs/业务流程/2026-09-28-收款认领推送金蝶重构设计(认领本地化-A301-3定时+手动推送-按流水归集).md +++ b/doc/docs/业务流程/2026-09-28-收款认领推送金蝶重构设计(认领本地化-A301-3定时+手动推送-按流水归集).md @@ -173,7 +173,7 @@ claimed 累计有效认领 == unclaimed_amount(且 > 0) ← 「认领 `voidClaim()` 现有逻辑保留: 1. **累计认领不考虑作废**:作废行 `status=0`,分摊聚合天然排除——与「累计认领不考虑作废的」要求一致,无需改代码;作废后重算流水 `claimed_amount/claim_status`(口径按 §3.2)。 -2. **作废永不触发推送、不生成冲单**:未推送的认领作废 → 纯本地;已推送流水的认领作废 → 不生成本地冲单号,认领记录金蝶信息保留原值,金蝶侧冲销/红冲由人工处置(沿用旧文档原则 5)。作废后即使重认领使等式再次满足,`push_status=pushed` 的终态闸门也阻止二次推送。 +2. **已推送的认领不允许作废**:流水 `push_status=pushed` 时作废直接拦截(后端硬校验 + 前端按钮隐藏),金蝶侧冲销/调整由人工处置;作废仅对未推送流水生效,永不触发推送、不生成冲单(金蝶单号/状态保留原值)。终态闸门继续兜底:即使数据漂移使等式再次满足,`push_status=pushed` 也阻止二次推送。 ### 4.7 重新同步(A301-2 sync 补一处) @@ -248,7 +248,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 重算口径改对照公告未认领金额;**不再生成本地 KDCX 冲单号**(金蝶单号/状态保留原值),作废不触发推送 | +| 作废 | `ReceiptClaimRecordServiceImpl.voidClaim()` | claim_status 重算口径改对照公告未认领金额;**不再生成本地 KDCX 冲单号**(金蝶单号/状态保留原值);**已推送流水(push_status=pushed)作废拦截** | | 同步 | `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 c16d66ba..0c51b815 100644 --- a/doc/docs/业务流程/2026-09-28-收款认领流程(业务版).md +++ b/doc/docs/业务流程/2026-09-28-收款认领流程(业务版).md @@ -89,10 +89,8 @@ ## 五、作废认领 1. 仅认领人本人可作废自己的认领记录;作废后该笔分摊不再计入累计,流水认领状态相应回退(认领完成 → 部分认领/未认领)。 -2. **作废永远不会触发推送**。 -3. 按流水是否已推送区分: - - **未推送**:纯本地生效,无金蝶影响;补认领到认领完成后仍可正常推送; - - **已推送**:不生成本地冲单,金蝶侧的冲销/红冲由人工在金蝶处置,该流水不会被再次自动推送。 +2. **已推送金蝶的认领不允许作废**(按钮不显示,后端拦截)——金蝶侧收款单已生成,冲销/调整由人工在金蝶处置。 +3. **作废永远不会触发推送**:作废仅对未推送流水生效,纯本地生效,无金蝶影响;补认领到认领完成后仍可正常推送。 ---