fix: 项目立项HCS推送结算类型由字典文本映射为HCS编码(1/2/3)
This commit is contained in:
+24
-4
@@ -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 查询能力联调确认)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user