diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/constant/HcsContractFieldConstant.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/constant/HcsContractFieldConstant.java index 16de0d85..798c77d1 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/constant/HcsContractFieldConstant.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/constant/HcsContractFieldConstant.java @@ -180,24 +180,24 @@ public final class HcsContractFieldConstant { // ==================== 结算类型枚举值 ==================== /** - * 合同结算类型取值:付款(fdSettlementType,承运商合同固定取此值) + * 合同结算类型取值:付款(fdSettlementType,承运商合同固定取此值;合规系统字典中文名,2026-10-17 确认) */ - public static final String SETTLEMENT_TYPE_PAYMENT = "payment"; + public static final String SETTLEMENT_TYPE_PAYMENT = "付款"; /** - * 合同结算类型取值:收支双向(fdSettlementType) + * 合同结算类型取值:收支双向(fdSettlementType,合规系统字典中文名) */ - public static final String SETTLEMENT_TYPE_PAYMENT_COLLECTION = "payment_collection"; + public static final String SETTLEMENT_TYPE_PAYMENT_COLLECTION = "收支双向"; /** - * 合同结算类型取值:收款(fdSettlementType,客户合同固定取此值) + * 合同结算类型取值:收款(fdSettlementType,客户合同固定取此值;合规系统字典中文名) */ - public static final String SETTLEMENT_TYPE_COLLECTION = "collection"; + public static final String SETTLEMENT_TYPE_COLLECTION = "收款"; /** - * 合同结算类型取值:不结算(fdSettlementType) + * 合同结算类型取值:不结算(fdSettlementType,合规系统字典中文名) */ - public static final String SETTLEMENT_TYPE_NONE = "none"; + public static final String SETTLEMENT_TYPE_NONE = "不结算"; // ==================== 结算模式枚举值 ==================== diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSyncSupport.java index 008ad3ca..28465d7c 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsContractSyncSupport.java @@ -357,7 +357,8 @@ public class HcsContractSyncSupport { // 币种:TMS 结算币种经 currency-name-mapping 映射(默认 RMB→人民币,照金蝶惯例) // fields.add(field(HcsContractFieldConstant.FIELD_FD_CURRENCY_ID, "币种", mapCurrencyName(contractManage.getSettlementCurrency()))); fields.add(field(HcsContractFieldConstant.FIELD_CURRENCY, "币种", mapCurrencyName(contractManage.getSettlementCurrency()))); - // 合同结算类型:按合同类别固定规则——承运商合同=付款,客户合同=收款(2026-10-12 确认) + // 合同结算类型:按合同类别固定规则——承运商合同=付款,客户合同=收款 + // 传中文字典名(2026-10-17 确认;此前传枚举键 collection+fdIsSystem 合规侧未命中字典落为"不结算") String settlementType = null; if ("承运商合同".equals(contractManage.getContractCategory())) { settlementType = HcsContractFieldConstant.SETTLEMENT_TYPE_PAYMENT; @@ -365,10 +366,7 @@ public class HcsContractSyncSupport { settlementType = HcsContractFieldConstant.SETTLEMENT_TYPE_COLLECTION; } if (StringUtil.isNotBlank(settlementType)) { - HcsXformFieldDTO settlementField = field(HcsContractFieldConstant.FIELD_FD_SETTLEMENT_TYPE, "合同结算类型", settlementType); - // 字典类字段需带 fdIsSystem=true(合规侧按系统字典值解析,2026-10-14 联调确认) - settlementField.setFdIsSystem("true"); - fields.add(settlementField); + fields.add(field(HcsContractFieldConstant.FIELD_FD_SETTLEMENT_TYPE, "合同结算类型", settlementType)); } else { log.warn("HCS合同结算类型无法确定:contractCategory=[{}] 非承运商合同/客户合同,fdSettlementType 不传", contractManage.getContractCategory()); } @@ -405,8 +403,8 @@ public class HcsContractSyncSupport { } else { log.warn("HCS合同状态映射缺失:approvalStatus=[{}] 不在 contract.status-mapping,CONTRACT_STATUS 不传(§9-U3)", contractManage.getApprovalStatus()); } - // 【必填】合同份数:copyCount(v4 字段表 fdServings=Integer,数值传值) - fields.add(field(HcsContractFieldConstant.FIELD_FD_SERVINGS, "合同份数", contractManage.getCopyCount())); + // 【必填】合同份数:copyCount(v4 字段表 fdServings=Integer,数值传值;空值默认 1) + fields.add(field(HcsContractFieldConstant.FIELD_FD_SERVINGS, "合同份数", contractManage.getCopyCount() == null ? 1 : contractManage.getCopyCount())); // 合同说明:remark(选填) fields.add(field(HcsContractFieldConstant.FIELD_FD_DESC, "合同说明", contractManage.getRemark())); // 关联项目(选填,对象传值):合同所选项目对应合同系统项目ID(blade_project_apply.hcs_fd_id,C102-1 立项同步回填),