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("来源系统标识错误"); }