✨ 合并收款认领合规推送,金蝶实际付款后再同步履约

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-11-04 16:44:46 +08:00
47 changed files with 2262 additions and 1038 deletions
@@ -52,68 +52,96 @@ public class KingdeeReceiptFlow extends TenantEntity {
private static final long serialVersionUID = 1L;
/**
* 金蝶认领公告id(A301-2 返回 id,认领推送 A301-3 必填)
* 金蝶认领公告id(历史 A301-2 同步遗留,A301-1 口径不再使用,恒为空)
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long billId;
/**
* 金蝶付款人id(A301-2 公告对应往来单位 id,认领推送 A301-3 用)
* 金蝶付款人id(历史 A301-2 同步遗留,A301-1 口径不再使用,恒为空)
*/
private String payerId;
/**
* 公告认领状态(A301-2 claimstatus:0未认领/1已认领)
* 公告认领状态(历史 A301-2 同步遗留,A301-1 口径不再使用,恒为空)
*/
private String kingdeeClaimStatus;
/**
* 我已认领(A301-2 claimme)
* 我已认领(历史 A301-2 同步遗留,A301-1 口径不再使用,恒为空)
*/
private Boolean claimMe;
/**
* 未认领金额(A301-2 unclaimamount)
* 未匹配收款金额(A301-1 unmatchamountrec,金蝶参考展示,不参与认领额度)
*/
private BigDecimal unclaimedAmount;
private BigDecimal unmatchAmountRec;
/**
* 手续费(A301-2 fee)
* 已匹配收款金额(A301-1 matchamountrec)
*/
private BigDecimal matchAmountRec;
/**
* 已匹配付款金额(A301-1 matchamountpay)
*/
private BigDecimal matchAmountPay;
/**
* 未匹配付款金额(A301-1 unmatchamountpay)
*/
private BigDecimal unmatchAmountPay;
/**
* 已结算金额(A301-1 settleamount)
*/
private BigDecimal settleAmount;
/**
* 未结算金额(A301-1 unsettleamount)
*/
private BigDecimal unsettleAmount;
/**
* 手续费(A301-1 fee)
*/
private BigDecimal fee;
/**
* 收款人(A301-2 recpayee)
* 收款人(A301-1 收款公司名称 org_name)
*/
private String payeeName;
/**
* 收款通知单号(A301-2 billno)
* 收款人(公司).编码(A301-1 org_number)
*/
private String orgNumber;
/**
* 核算组织.编码(A301-1 openorg_number)
*/
private String openOrgNumber;
/**
* 金蝶收款单号(A301-1 billno)
*/
private String receiptNoticeNo;
/**
* 付款人名称(A301-2 recviewpayer)
* 付款人名称(A301-1 payername)
*/
private String payerName;
/**
* 收款金额(A301-2 reamount)
* 收款金额(A301-1 actrecamt)
*/
private BigDecimal receiptAmount;
/**
* 对方单位名称(A301-2 oppunit)
* 对方单位名称(A301-1 付款人名称)
*/
private String counterpartyName;
/**
* 对方银行账号(A301-2 oppbanknumber)
* 对方银行账号(A301-1 付款账户 payeracctbanknum)
*/
private String counterpartyAccount;
/**
* 对方开户行(A301-2 oppbank)
* 对方开户行(A301-1 付款银行 payerbankname)
*/
private String counterpartyBank;
/**
* 摘要(A301-2 description)
* 摘要(A301-1 txt_description)
*/
private String summary;
/**
* 交易日期(A301-2 tradetime)
* 交易日期(A301-1 业务日期 bizdate)
*/
private LocalDateTime transactionTime;
/**
* 明细流水号(A301-2 detailid,回退 tradedetailno / bankdetailno,幂等键)
* 明细流水号(收款单号 billno,幂等键;C104-2 按此定位合规侧收款流水)
*/
private String detailSerialNo;
/**
@@ -125,27 +153,27 @@ public class KingdeeReceiptFlow extends TenantEntity {
*/
private String claimStatus;
/**
* 推送状态(none未推送/pushed已推送/failed推送失败;已推送为终态闸门,不允许二次推送)
* 推送状态(none未推送/pushed已推送/failed推送失败;历史 A301-3 推送遗留,A301-1 口径下恒为 none,仅存量的已推送数据保留展示)
*/
private String pushStatus;
/**
* 最近一次推送失败原因(成功后清空)
* 最近一次推送失败原因(历史 A301-3 推送遗留)
*/
private String pushFailReason;
/**
* 首次推送金蝶成功时间
* 首次推送金蝶成功时间(历史 A301-3 推送遗留)
*/
private LocalDateTime pushedTime;
/**
* 金蝶推送来源单据编码(分摊结算单号下划线拼接,推送时生成落库;分摊不变则重试编码不变,A301-1 回写匹配键)
* 金蝶推送来源单据编码(历史 A301-3 推送遗留,A301-1 口径不再生成)
*/
private String awrpSrcCode;
/**
* 金蝶收款单号(推送响应回填 / A301-1 回写推进)
* 金蝶收款单号(A301-1 同步落库 billno)
*/
private String kingdeeBillNo;
/**
* 金蝶回写状态(none未推送/pushed已推送/approved审核通过/received已收款/failed失败)
* 金蝶单据状态(A301-1 billstatus 映射:none未推送/pushed已推送/approved审核通过/received已收款/failed失败,同步时随单据刷新)
*/
private String kingdeeBillStatus;
/**
@@ -0,0 +1,96 @@
/**
* BladeX Commercial License Agreement
* Copyright (c) 2018-2099, https://bladex.cn. All rights reserved.
* <p>
* Use of this software is governed by the Commercial License Agreement
* obtained after purchasing a license from BladeX.
* <p>
* 1. This software is for development use only under a valid license
* from BladeX.
* <p>
* 2. Redistribution of this software's source code to any third party
* without a commercial license is strictly prohibited.
* <p>
* 3. Licensees may copyright their own code but cannot use segments
* from this software for such purposes. Copyright of this software
* remains with BladeX.
* <p>
* Using this software signifies agreement to this License, and the software
* must not be used for illegal purposes.
* <p>
* THIS SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY. The author is
* not liable for any claims arising from secondary or illegal development.
* <p>
* Author: Chill Zhuang (bladejava@qq.com)
*/
package org.springblade.transport.pojo.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.core.tenant.mp.TenantEntity;
import java.io.Serial;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
* 收款认领合规推送记录实体类
* <p>
* C107-1 认领记录推送结果落库(认领主单 × 合同一条):成功持久化合规侧 fdId 供 C107-3 作废引用,
* 失败落推送标记与原因(仅记标记,不做定时重试)。
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_receipt_claim_hcs_record")
@Schema(description = "收款认领合规推送记录")
public class ReceiptClaimHcsRecord extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 认领主单id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long receiptClaimId;
/**
* 收款流水id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long receiptFlowId;
/**
* 合同id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long contractId;
/**
* 合同编号
*/
private String contractNo;
/**
* 该认领主单分摊到本合同的认领金额
*/
private BigDecimal claimAmount;
/**
* 合规侧认领记录fdId(C107-1 返回,C107-3 作废必填引用)
*/
private String hcsClaimRecordFdId;
/**
* 推送状态(success推送成功/failed推送失败/voided已作废)
*/
private String pushStatus;
/**
* 推送失败原因(成功后清空)
*/
private String failReason;
/**
* 推送成功时间
*/
private LocalDateTime pushedTime;
}