diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSyncSupport.java index 28465d7c..c527c9b6 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSyncSupport.java @@ -74,7 +74,7 @@ import java.util.Objects; * HCS 合同同步支撑组件(C103-1 发起 / C103-11 更新,设计文档 §5.2) *

* 扫描任务按序执行:⓪ 特批挂起门禁 → ① 客商风险校验(可配开关,仅留痕,高风险不再阻断)→ - * ② 附件转传(v4 挂载点 fdFieldJson.attachment,随 C103-1 挂载)→ ③ C103-3 判重(§9-U4 查询能力联调确认)→ + * ② 附件转传(挂载点为与 fdFieldJson 同级的顶层 attachment,随 C103-1 挂载)→ ③ C103-3 判重(§9-U4 查询能力联调确认)→ * ④ C103-1 起草 / 变更单 C103-11 更新(§9-U5 定位方式待联调)→ ⑤ 履约计划 C103-9 行级同步({@link HcsExeStageSyncSupport}, * 仅依赖 hcs_fd_id,先于特批挂起执行,失败补偿不被特批门禁阻塞)→ ⑥ 高风险/黑名单挂起"特批审核" * (外部客商管控:报文随 fdSepcailContract=true 在合规侧走特批,{@link HcsContractSpecSyncSupport} 接收结果)。 @@ -129,7 +129,7 @@ public class HcsContractSyncSupport { if (hcsProperties.getContract().isRequireRiskCheck()) { risky = checkRelativeRisk(contractManage); } - // ② 附件转传(v4 已明确挂载点:C103-1 fdFieldJson.attachment,转传取得合规附件引用后随发起报文挂载) + // ② 附件转传(v4 已明确挂载点:C103-1 顶层 attachment,与 fdFieldJson 同级,转传取得合规附件引用后随发起报文挂载) List attachmentRefs = transferAttachmentsIfEnabled(contractManage); // ③④ 首推判重后起草(C103-1);已有合规ID(变更单)走更新(C103-11) String resultMessage; @@ -307,7 +307,7 @@ public class HcsContractSyncSupport { /** * 组装 C103-1/C103-11 入参(字段标注照 §3.4 规范,映射表见设计文档 §5.2); - * attachmentRefs 新建传合规附件引用列表(fdId+fdEntityKey,必填,无附件传空列表),更新传 null 不挂载 + * attachmentRefs 新建传合规附件引用列表(顶层 attachment,fdId+fdEntityKey,必填,无附件传空列表),更新传 null 不挂载 */ private HcsContractDraftDTO buildDraftParam(ContractManage contractManage, List attachmentRefs, boolean risky) { HcsContractDraftDTO param = new HcsContractDraftDTO(); @@ -325,11 +325,11 @@ public class HcsContractSyncSupport { fieldJson.setXformFields(buildXformFields(contractManage, risky)); // 相对方(签署方):甲方/乙方,编号按名称反查 CustomerArchive(§9-U6) fieldJson.setSigner(buildSigners(contractManage)); - // 【必填】附件数据:C103-1 必填(无附件传空列表),fdEntityKey=特批 eopCdraftSpecial/用印 eopCdraftSign/其他 eopCdraftOther, + // 【必填】附件数据:与 fdFieldJson 同级的顶层 attachment,C103-1 必填(无附件传空列表),fdEntityKey=特批 eopCdraftSpecial/用印 eopCdraftSign/其他 eopCdraftOther, // fdBindType=ADD;更新不挂载(传 null) if (attachmentRefs != null) { - fieldJson.setAttachment(new ArrayList<>(attachmentRefs)); - for (HcsAttachmentRefDTO attachment : fieldJson.getAttachment()) { + param.setAttachment(new ArrayList<>(attachmentRefs)); + for (HcsAttachmentRefDTO attachment : param.getAttachment()) { // 【必填】操作类型:ADD 新增 attachment.setFdBindType("ADD"); } @@ -449,7 +449,7 @@ public class HcsContractSyncSupport { /** * 附件转传(可配开关):合同主文件 approved=true(挂 eopCdraftSign)+ 其它附件(挂 eopCdraftOther), - * 返回合规附件引用列表(挂载 C103-1 fdFieldJson.attachment) + * 返回合规附件引用列表(挂载 C103-1 顶层 attachment,与 fdFieldJson 同级) */ private List transferAttachmentsIfEnabled(ContractManage contractManage) { if (!hcsProperties.getAttachment().isTransferEnabled()) { diff --git a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsContractDraftDTO.java b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsContractDraftDTO.java index d105f8ba..56717899 100644 --- a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsContractDraftDTO.java +++ b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsContractDraftDTO.java @@ -31,6 +31,7 @@ import lombok.Data; import java.io.Serial; import java.io.Serializable; +import java.util.List; /** * 合同合规系统(HCS)C103-1 合同发起入参(C103-11 合同更新入参结构相同,复用本 DTO) @@ -67,4 +68,8 @@ public class HcsContractDraftDTO implements Serializable { * 合同字段(模板字段 + 签署方) */ private HcsContractFieldJsonDTO fdFieldJson; + /** + * 附件数据(与 fdFieldJson 同级;C103-1 必填,无附件传空列表,C103-11 更新不传;fdEntityKey 普通附件枚举待合规方给出,暂不传) + */ + private List attachment; } diff --git a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsContractFieldJsonDTO.java b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsContractFieldJsonDTO.java index 718c39b4..addf81ae 100644 --- a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsContractFieldJsonDTO.java +++ b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsContractFieldJsonDTO.java @@ -36,7 +36,7 @@ import java.util.List; /** * 合同合规系统(HCS)C103-1 合同发起 fdFieldJson 节点(C103-1 新建 / C103-11 更新共用) *

- * v4 文档已定义 attachment 附件挂载(fdId/fdBindType 必填,fdEntityKey 仅给出特批附件枚举 eopCdraftSpecial)。 + * 附件挂载在顶层报文 attachment(与 fdFieldJson 同级),见 HcsContractDraftDTO。 * * @author Chill */ @@ -54,8 +54,4 @@ public class HcsContractFieldJsonDTO implements Serializable { * 签署方(相对方)列表 */ private List signer; - /** - * 附件数据(C103-1 必填,C103-11 更新不传;fdEntityKey 普通附件枚举待合规方给出,暂不传) - */ - private List attachment; }