diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsExeStageSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsExeStageSyncSupport.java index 07ad6d4d..262e547e 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsExeStageSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsExeStageSyncSupport.java @@ -51,7 +51,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.function.UnaryOperator; /** * HCS 履约规则同步支撑组件(C103-9 新版行级同步,设计文档 §5.3,ADR-0002) @@ -130,37 +129,20 @@ public class HcsExeStageSyncSupport { } // 【必填】行级操作:add / update / delete stage.setFdEopExeplanOperateType(row.getRowOp()); - // 【必填】履约类型:传中文字典名(2026-10-17 确认;此前传枚举键,合规侧字典不命中) - stage.setFdPerformType(dictName("履约类型", row.getPerformType(), code -> switch (code) { - case HcsSyncConstant.PERFORM_TYPE_PAYMENT -> "付款"; - case HcsSyncConstant.PERFORM_TYPE_COLLECTION -> "收款"; - default -> null; - })); - // 【必填】款项性质:传中文字典名 - stage.setFdFundNature(dictName("款项性质", row.getFundNature(), code -> switch (code) { - case "prepayment" -> "预付款"; - case HcsSyncConstant.FUND_NATURE_PROGRESS -> "进度款"; - case "acceptance" -> "验收款"; - case "retention" -> "质保金"; - default -> null; - })); + // 【必填】履约类型:payment=付款 / collection=收款 + stage.setFdPerformType(row.getPerformType()); + // 【必填】款项性质:prepayment/progress/acceptance/retention + stage.setFdFundNature(row.getFundNature()); // 【必填】计划金额(元) stage.setFdFundAmount(row.getFundAmount()); // 【必填】资金日期(毫秒时间戳) stage.setFdFundDate(toMillis(row.getFundDate())); - // 【必填】开票规则:传中文字典名 - stage.setFdInvoiceRule(dictName("开票规则", row.getInvoiceRule(), code -> switch (code) { - case "payFirst" -> "先款后票"; - case "invoiceFirst" -> "先票后款"; - default -> null; - })); + // 【必填】开票规则:payFirst=先款后票 / invoiceFirst=先票后款 + stage.setFdInvoiceRule(row.getInvoiceRule()); // 【必填】账期(天) stage.setFdInvoiceCycle(row.getInvoiceCycle()); - // 金额类型:行维护值(空取配置 thirdParty.hcs.exe-stage.fund-type),传中文字典名 - stage.setFdFundType(dictName("金额类型", StringUtil.isBlank(row.getFundType()) ? hcsProperties.getExeStage().getFundType() : row.getFundType(), code -> switch (code) { - case "byAmount" -> "按金额"; - default -> null; - })); + // 金额类型:行维护值,空取配置 thirdParty.hcs.exe-stage.fund-type(默认 byAmount) + stage.setFdFundType(StringUtil.isBlank(row.getFundType()) ? hcsProperties.getExeStage().getFundType() : row.getFundType()); // 是否完成 stage.setFdIsFinish(row.getIsFinish() != null && row.getIsFinish() > 0); // 扩展内容 JSON 字符串:固定 "{}" @@ -171,22 +153,6 @@ public class HcsExeStageSyncSupport { return param; } - /** - * 字典编码 → 合规中文字典名(2026-10-17 确认合规侧按中文命中字典);空值原样传, - * 未命中原值直传并告警(照 HcsProjectSyncSupport#mapSettlementType 惯例) - */ - private String dictName(String fieldLabel, String value, UnaryOperator mapping) { - if (StringUtil.isBlank(value)) { - return value; - } - String name = mapping.apply(value); - if (name == null) { - log.warn("HCS履约规则{}编码[{}]未命中中文字典映射,原值直传", fieldLabel, value); - return value; - } - return name; - } - /** * 回填:fdExeplanId → 合同 hcs_exeplan_id;变更阶段 fdId 按行回填 hcs_stage_fd_id 并清除行级操作标记 *