From c2b1e270776ee9381fc652a37f63841fd8bd8752 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=88=98=E6=B3=89=E4=BD=B3?= <1107186916@qq.com> Date: Tue, 20 Oct 2026 17:49:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=90=88=E5=90=8C=E7=89=B9=E6=89=B9?= =?UTF-8?q?=E7=BB=93=E6=9E=9C=E5=9B=9E=E4=BC=A0=E6=9D=A5=E6=BA=90=E7=B3=BB?= =?UTF-8?q?=E7=BB=9F=E6=A0=87=E8=AF=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hcs/HcsContractSpecSyncSupport.java | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSpecSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSpecSyncSupport.java index f14c7565..c9476416 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSpecSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSpecSyncSupport.java @@ -25,16 +25,17 @@ */ package org.springblade.transport.support.hcs; +import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springblade.core.log.exception.ServiceException; import org.springblade.core.tool.utils.StringUtil; +import org.springblade.hcs.config.HcsProperties; import org.springblade.hcs.dto.HcsContractDetailQueryDTO; import org.springblade.hcs.dto.HcsContractDetailVO; import org.springblade.hcs.dto.HcsContractLegalResultDTO; -import org.springblade.hcs.dto.HcsLegalResultDTO; import org.springblade.hcs.dto.HcsResult; import org.springblade.hcs.feign.IHcsClient; import org.springblade.transport.constant.HcsSyncConstant; @@ -44,8 +45,8 @@ import org.springblade.transport.pojo.entity.ContractManage; import org.springblade.transport.pojo.entity.HcsContractCheckLog; import org.springframework.stereotype.Component; -import java.time.LocalDateTime; import java.time.LocalDate; +import java.time.LocalDateTime; import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashMap; @@ -60,7 +61,7 @@ import java.util.Map; * 集团审批结果经合规 contractLegal/result 接口推送 TMS(替代未建设的 B103),或定时 C103-4 查询兜底联动 → * approved 恢复流程,rejected 联动合同审批驳回。 *

- * 结果推送报文 {contractType, contractCode, requestId, success, reason, kingdeeId, sourceSystem=WCCK},原文留痕 blade_hcs_check_log。 + * 结果推送报文 {contractType, contractCode, requestId, success, reason, kingdeeId, sourceSystem=},原文留痕 blade_hcs_check_log。 * * @author Chill */ @@ -79,11 +80,6 @@ public class HcsContractSpecSyncSupport { */ private static final String LEGAL_STATUS_INVALID = "approvalinvalid"; - /** - * 合同特批结果回传来源系统标识(合规方接口文档约定固定传 WCCK) - */ - private static final String LEGAL_CALLBACK_SRC_SYSTEM = "WCCK"; - /** * 结果推送原文留痕最大长度(blade_hcs_check_log.msg 为 varchar(512)) */ @@ -92,6 +88,7 @@ public class HcsContractSpecSyncSupport { private final IHcsClient hcsClient; private final ContractManageMapper contractManageMapper; private final HcsContractCheckLogMapper hcsContractCheckLogMapper; + private final HcsProperties hcsProperties; /** * 特批结果定时查询兜底(合规推送 contractLegal/result 未达/未配置时的补偿,2026-10-13): @@ -171,16 +168,16 @@ public class HcsContractSpecSyncSupport { /** * 合同特批结果接收处理(合规 contractLegal/result 推送,2026-10-13 按合规方最新字段表修正报文结构): - * 特批完成后合规侧同步金蝶并回调,报文 {contractType, contractCode, requestId, success, reason, kingdeeId, sourceSystem=WCCK}; - * sourceSystem 须为 WCCK(不符抛"来源系统标识错误"异常);contractCode=TMS 合同编号定位(requestId 仅请求头回显不可定位); + * 特批完成后合规侧同步金蝶并回调,报文 {contractType, contractCode, requestId, success, reason, kingdeeId, sourceSystem=}; + * sourceSystem 须为 (不符抛"来源系统标识错误"异常);contractCode=TMS 合同编号定位(requestId 仅请求头回显不可定位); * success=true 联动恢复"审批通过"(金蝶合同ID回填 kingdee_id);success=false 联动合同审批驳回走重新提交闭环(reason 随原文留痕) * * @param param 合规推送报文 * @return 处理结果描述 */ public String handleLegalResult(HcsContractLegalResultDTO param) { - // 来源系统校验:仅接受合规方约定的 WCCK,防伪造回传 - if (!LEGAL_CALLBACK_SRC_SYSTEM.equalsIgnoreCase(param == null ? null : param.getSourceSystem())) { + // 来源系统校验:仅接受合规方约定的 ,防伪造回传 + if (!StrUtil.equalsIgnoreCase(param == null ? null : param.getSourceSystem(), hcsProperties.getSrcSystem())) { log.warn("合同特批结果推送来源系统标识错误:sourceSystem={}", param == null ? null : param.getSourceSystem()); throw new ServiceException("来源系统标识错误"); }