diff --git a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/KingdeeReceiptFlow.java b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/KingdeeReceiptFlow.java index 94ad3281..36db378e 100644 --- a/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/KingdeeReceiptFlow.java +++ b/blade-service-api/blade-transport-api/src/main/java/org/springblade/transport/pojo/entity/KingdeeReceiptFlow.java @@ -71,7 +71,7 @@ public class KingdeeReceiptFlow extends TenantEntity { /** * 未匹配收款金额(A301-1 unmatchamountrec,认领上限口径) */ - private BigDecimal unclaimedAmount; + private BigDecimal unmatchAmountRec; /** * 已匹配收款金额(A301-1 matchamountrec) */ 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 15d509ff..60b7cfb2 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 @@ -301,7 +301,7 @@ public class ReceiptClaimRecordServiceImpl extends BaseServiceImpl "处理失败"; default -> "未推送"; }); - // 剩余可认领金额 = 可认领上限 − 累计认领金额(上限取公告未认领与收款金额较小值) - BigDecimal unclaimedAmount = money(entity.getUnclaimedAmount()); + // 剩余可认领金额 = 可认领上限 − 累计认领金额(上限取未匹配收款金额与收款金额较小值) + BigDecimal unmatchAmountRec = money(entity.getUnmatchAmountRec()); BigDecimal receiptAmount = money(entity.getReceiptAmount()); - BigDecimal claimCeiling = unclaimedAmount; - if (receiptAmount.compareTo(BigDecimal.ZERO) > 0 && unclaimedAmount.compareTo(BigDecimal.ZERO) > 0) { - claimCeiling = unclaimedAmount.min(receiptAmount); + BigDecimal claimCeiling = unmatchAmountRec; + if (receiptAmount.compareTo(BigDecimal.ZERO) > 0 && unmatchAmountRec.compareTo(BigDecimal.ZERO) > 0) { + claimCeiling = unmatchAmountRec.min(receiptAmount); } BigDecimal claimedAmount = money(entity.getClaimedAmount()); vo.setRemainingAmount(claimCeiling.subtract(claimedAmount).max(BigDecimal.ZERO)); diff --git a/doc/docs/业务流程/2026-10-29-收款流水菜单改造(数据源A301-2改A301-1-认领只登记本地并推送合规C107-1与C107-3作废同步).md b/doc/docs/业务流程/2026-10-29-收款流水菜单改造(数据源A301-2改A301-1-认领只登记本地并推送合规C107-1与C107-3作废同步).md index 954e0da2..6898382a 100644 --- a/doc/docs/业务流程/2026-10-29-收款流水菜单改造(数据源A301-2改A301-1-认领只登记本地并推送合规C107-1与C107-3作废同步).md +++ b/doc/docs/业务流程/2026-10-29-收款流水菜单改造(数据源A301-2改A301-1-认领只登记本地并推送合规C107-1与C107-3作废同步).md @@ -75,7 +75,7 @@ A301-1 收款单查询(业务日期窗口取 `thirdParty.bfi.recBillSync.days` | kingdee_bill_status | `billstatus` 映射 | A/B已提交→pushed、C已审核→approved、D已收款→received、其余(含G退单)→failed | | detail_serial_no | 主单 `billno` | 明细流水号=收款单号,**幂等键**;主单粒度,一张收款单一条流水,不展开流水分录 | | receipt_amount | 主单 `actrecamt` | 收款金额(金蝶收款金额口径) | -| unclaimed_amount | `unmatchamountrec` | 未匹配收款金额(认领上限口径) | +| unmatch_amount_rec | `unmatchamountrec` | 未匹配收款金额(认领上限口径;原列名 unclaimed_amount 已改名) | | match_amount_rec | `matchamountrec` | 已匹配收款金额 | | match_amount_pay | `matchamountpay` | 已匹配付款金额 | | unmatch_amount_pay | `unmatchamountpay` | 未匹配付款金额 | diff --git a/doc/sql/transport/lqj/20261029/03_blade_kingdee_receipt_flow_unmatch_amount_rec_rename_20261029.sql b/doc/sql/transport/lqj/20261029/03_blade_kingdee_receipt_flow_unmatch_amount_rec_rename_20261029.sql new file mode 100644 index 00000000..23ba1916 --- /dev/null +++ b/doc/sql/transport/lqj/20261029/03_blade_kingdee_receipt_flow_unmatch_amount_rec_rename_20261029.sql @@ -0,0 +1,15 @@ +-- 收款流水表未匹配收款金额列改名:unclaimed_amount(A301-2 公告未认领金额遗留列名) +-- → unmatch_amount_rec(与 A301-1 字段口径及其他匹配金额列命名统一) + +SET @ddl_sql = ( + SELECT IF(COUNT(*) = 1, + 'ALTER TABLE `blade_kingdee_receipt_flow` RENAME COLUMN `unclaimed_amount` TO `unmatch_amount_rec`', + 'SELECT 1') + FROM information_schema.COLUMNS + WHERE TABLE_SCHEMA = DATABASE() + AND TABLE_NAME = 'blade_kingdee_receipt_flow' + AND COLUMN_NAME = 'unclaimed_amount' +); +PREPARE ddl_stmt FROM @ddl_sql; +EXECUTE ddl_stmt; +DEALLOCATE PREPARE ddl_stmt;