: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:
+78
@@ -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;
|
||||
}
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
/**
|
||||
* 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.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.springblade.transport.pojo.entity.HcsAttachmentSync;
|
||||
|
||||
/**
|
||||
* HCS 附件转传映射 Mapper
|
||||
*
|
||||
* @author Chill
|
||||
*/
|
||||
@Mapper
|
||||
public interface HcsAttachmentSyncMapper extends BaseMapper<HcsAttachmentSync> {
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
-- blade_hcs_attachment_sync 建表(HCS 附件转传映射,照金蝶附件同步表 blade_kingdee_attachment_sync 设计:
|
||||
-- biz_type+biz_id+attachment_key 唯一,C103-2 转传前查命中即复用合规附件ID,仅落成功记录)
|
||||
SET @ddl_sql = (
|
||||
SELECT IF(COUNT(*) = 0,
|
||||
'CREATE TABLE `blade_hcs_attachment_sync` (
|
||||
`id` bigint NOT NULL COMMENT ''主键'',
|
||||
`tenant_id` varchar(12) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''租户ID'',
|
||||
`biz_type` varchar(32) COLLATE utf8mb4_general_ci NOT NULL COMMENT ''业务单据类型(contract/payment/invoice-application/invoice-receipt)'',
|
||||
`biz_id` bigint NOT NULL COMMENT ''业务单据id'',
|
||||
`attachment_key` varchar(768) COLLATE utf8mb4_general_ci NOT NULL COMMENT ''附件幂等键(url|link|fileUrl|downloadUrl|uid|originalName|name 依次取首个非空)'',
|
||||
`attachment_name` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''附件名称(展示/排查用)'',
|
||||
`fd_id` varchar(64) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT ''合规附件ID(C103-2 返回 fdId)'',
|
||||
`sync_time` datetime DEFAULT NULL COMMENT ''最近转传时间'',
|
||||
`create_user` bigint DEFAULT NULL COMMENT ''创建人'',
|
||||
`create_dept` bigint DEFAULT NULL COMMENT ''创建部门'',
|
||||
`create_time` datetime DEFAULT NULL COMMENT ''创建时间'',
|
||||
`update_user` bigint DEFAULT NULL COMMENT ''修改人'',
|
||||
`update_time` datetime DEFAULT NULL COMMENT ''修改时间'',
|
||||
`status` int DEFAULT NULL COMMENT ''业务状态'',
|
||||
`is_deleted` int DEFAULT 0 COMMENT ''是否已删除'',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_biz_attachment` (`biz_type`,`biz_id`,`attachment_key`(256)),
|
||||
KEY `idx_biz_type_biz_id` (`biz_type`,`biz_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT=''HCS附件转传映射表(C103-2)''',
|
||||
'SELECT 1')
|
||||
FROM information_schema.TABLES
|
||||
WHERE TABLE_SCHEMA = DATABASE()
|
||||
AND TABLE_NAME = 'blade_hcs_attachment_sync'
|
||||
);
|
||||
PREPARE ddl_stmt FROM @ddl_sql;
|
||||
EXECUTE ddl_stmt;
|
||||
DEALLOCATE PREPARE ddl_stmt;
|
||||
Reference in New Issue
Block a user