From 17cc04b7efd0a19d84012bc01a616636e7b75e9a 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, 13 Oct 2026 15:19:29 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E9=A1=B9=E7=9B=AE=E7=AB=8B=E9=A1=B9HCS?= =?UTF-8?q?=E6=8E=A8=E9=80=81=E7=BB=93=E7=AE=97=E7=B1=BB=E5=9E=8B=E7=94=B1?= =?UTF-8?q?=E5=AD=97=E5=85=B8=E6=96=87=E6=9C=AC=E6=98=A0=E5=B0=84=E4=B8=BA?= =?UTF-8?q?HCS=E7=BC=96=E7=A0=81(1/2/3)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../support/hcs/HcsProjectSyncSupport.java | 28 ++++++++++++++++--- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsProjectSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsProjectSyncSupport.java index 6a645871..45f8b7de 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsProjectSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsProjectSyncSupport.java @@ -190,10 +190,10 @@ public class HcsProjectSyncSupport { // 可用单位列表:与创建单位一致(同走 creator-unit 配置)(废弃) // props.setFdAvailUnits(List.of(creatorUnit)); - // 结算类型:TMS settlementMode 原值(字典映射待联调,§9-U3) - props.setFdSettlementType(projectApply.getSettlementMode()); - // 计划保证金:TMS fundDemand(万元)× 10000 转 HCS 元(变更映射曾名"履约保证金",语义联调确认) - props.setFdProPlanDeposit(toYuan(projectApply.getFundDemand())); + // 结算类型:TMS settle_method 字典文本映射 HCS 编码(1=先款后票,2=先票后款,3=先款后票+先票后款(同时存在)) + props.setFdSettlementType(mapSettlementType(projectApply.getSettlementMode())); + // 计划保证金:TMS fundDemand 与 HCS fd_pro_plan_deposit 单位同为万元,直传不换算(接口说明 §5.1) + props.setFdProPlanDeposit(projectApply.getFundDemand()); // 是否自营项目:一期固定 "2"。是|1, 否|2 props.setFdIsSelfPro("2"); // TODO 待确认:项目收入目标 fd_pro_income_goal,TMS 无直接对应字段,一期不传(§5.1) @@ -211,6 +211,26 @@ public class HcsProjectSyncSupport { return formData; } + /** + * 结算方式字典文本映射 HCS 编码:先款后票=1、先票后款=2、先款后票+先票后款(同时存在)=3;未匹配时原值直传并告警 + */ + private String mapSettlementType(String settlementMode) { + if (StringUtil.isBlank(settlementMode)) { + return null; + } + String code = switch (settlementMode.trim()) { + case "先款后票" -> "1"; + case "先票后款" -> "2"; + case "先款后票+先票后款(同时存在)" -> "3"; + default -> null; + }; + if (code == null) { + log.warn("HCS项目立项结算类型未匹配编码,原值直传:settlementMode=[{}]", settlementMode); + return settlementMode; + } + return code; + } + /** * C102-3 项目立项查询判重(conditions={"fd_num": projectCode},§9-U4 查询能力联调确认) */