:feat: HCS附件转传映射落库,Redis缓存判重改为blade_hcs_attachment_sync持久化表

- 新增 HcsAttachmentSync 实体与 Mapper(biz_type+biz_id+attachment_key 唯一,照金蝶附件同步表设计,仅落成功记录)
- HcsAttachmentSupport 移除 BladeRedis 依赖,transferOne 查表命中即复用合规附件ID,未命中上传后落行
- transferAttachments/transferContractAttachments 增加 bizType/bizId 入参,六个调用点(合同主附件/特批说明/特批付款/履约记录/开票登记/收票单)传入业务上下文
- HcsSyncConstant 删除 ATTACHMENT_CACHE_KEY_PREFIX/ATTACHMENT_CACHE_TTL_DAYS 缓存常量
- 新增建表脚本 blade_hcs_attachment_sync_20261012.sql,技术设计文档 §6 映射缓存表述同步更新
This commit is contained in:
刘泉佳
2026-10-12 16:51:04 +08:00
parent b8d93bc921
commit 9e4b8a6d58
3 changed files with 149 additions and 0 deletions
@@ -0,0 +1,78 @@
/**
* 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.time.LocalDateTime;
/**
* HCS 附件转传映射实体类(C103-2 转传取得合规附件ID,单附件行级,照金蝶附件同步表设计)
* <p>
* 仅落成功记录:HCS 转传任一附件失败即抛异常整单重试(失败原因落单据 hcs_sync_msg),故无失败态字段。
*
* @author Chill
*/
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("blade_hcs_attachment_sync")
@Schema(description = "HCS附件转传映射")
public class HcsAttachmentSync extends TenantEntity {
@Serial
private static final long serialVersionUID = 1L;
/**
* 业务单据类型(contract/payment/invoice-application/invoice-receipt)
*/
private String bizType;
/**
* 业务单据id
*/
@JsonSerialize(using = ToStringSerializer.class)
private Long bizId;
/**
* 附件幂等键(url|link|fileUrl|downloadUrl|uid|originalName|name 依次取首个非空)
*/
private String attachmentKey;
/**
* 附件名称(展示/排查用)
*/
private String attachmentName;
/**
* 合规附件ID(C103-2 返回 fdId)
*/
private String fdId;
/**
* 最近转传时间
*/
private LocalDateTime syncTime;
}