:fix: HCS合同推送结算类型改传中文字典名并合同份数空值默认1

This commit is contained in:
刘泉佳
2026-10-17 11:48:26 +08:00
parent 127e8a5cb6
commit 5159bcd125
2 changed files with 13 additions and 15 deletions
@@ -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 = "不结算";
// ==================== 结算模式枚举值 ==================== // ==================== 结算模式枚举值 ====================
@@ -357,7 +357,8 @@ public class HcsContractSyncSupport {
// 币种:TMS 结算币种经 currency-name-mapping 映射(默认 RMB→人民币,照金蝶惯例) // 币种:TMS 结算币种经 currency-name-mapping 映射(默认 RMB→人民币,照金蝶惯例)
// fields.add(field(HcsContractFieldConstant.FIELD_FD_CURRENCY_ID, "币种", mapCurrencyName(contractManage.getSettlementCurrency()))); // fields.add(field(HcsContractFieldConstant.FIELD_FD_CURRENCY_ID, "币种", mapCurrencyName(contractManage.getSettlementCurrency())));
fields.add(field(HcsContractFieldConstant.FIELD_CURRENCY, "币种", mapCurrencyName(contractManage.getSettlementCurrency()))); fields.add(field(HcsContractFieldConstant.FIELD_CURRENCY, "币种", mapCurrencyName(contractManage.getSettlementCurrency())));
// 合同结算类型:按合同类别固定规则——承运商合同=付款,客户合同=收款(2026-10-12 确认) // 合同结算类型:按合同类别固定规则——承运商合同=付款,客户合同=收款
// 传中文字典名(2026-10-17 确认;此前传枚举键 collection+fdIsSystem 合规侧未命中字典落为"不结算")
String settlementType = null; String settlementType = null;
if ("承运商合同".equals(contractManage.getContractCategory())) { if ("承运商合同".equals(contractManage.getContractCategory())) {
settlementType = HcsContractFieldConstant.SETTLEMENT_TYPE_PAYMENT; settlementType = HcsContractFieldConstant.SETTLEMENT_TYPE_PAYMENT;
@@ -365,10 +366,7 @@ public class HcsContractSyncSupport {
settlementType = HcsContractFieldConstant.SETTLEMENT_TYPE_COLLECTION; settlementType = HcsContractFieldConstant.SETTLEMENT_TYPE_COLLECTION;
} }
if (StringUtil.isNotBlank(settlementType)) { if (StringUtil.isNotBlank(settlementType)) {
HcsXformFieldDTO settlementField = field(HcsContractFieldConstant.FIELD_FD_SETTLEMENT_TYPE, "合同结算类型", settlementType); fields.add(field(HcsContractFieldConstant.FIELD_FD_SETTLEMENT_TYPE, "合同结算类型", settlementType));
// 字典类字段需带 fdIsSystem=true(合规侧按系统字典值解析,2026-10-14 联调确认)
settlementField.setFdIsSystem("true");
fields.add(settlementField);
} else { } else {
log.warn("HCS合同结算类型无法确定:contractCategory=[{}] 非承运商合同/客户合同,fdSettlementType 不传", contractManage.getContractCategory()); log.warn("HCS合同结算类型无法确定:contractCategory=[{}] 非承运商合同/客户合同,fdSettlementType 不传", contractManage.getContractCategory());
} }
@@ -405,8 +403,8 @@ public class HcsContractSyncSupport {
} else { } else {
log.warn("HCS合同状态映射缺失:approvalStatus=[{}] 不在 contract.status-mapping,CONTRACT_STATUS 不传(§9-U3)", contractManage.getApprovalStatus()); log.warn("HCS合同状态映射缺失:approvalStatus=[{}] 不在 contract.status-mapping,CONTRACT_STATUS 不传(§9-U3)", contractManage.getApprovalStatus());
} }
// 【必填】合同份数:copyCount(v4 字段表 fdServings=Integer,数值传值) // 【必填】合同份数:copyCount(v4 字段表 fdServings=Integer,数值传值;空值默认 1)
fields.add(field(HcsContractFieldConstant.FIELD_FD_SERVINGS, "合同份数", contractManage.getCopyCount())); fields.add(field(HcsContractFieldConstant.FIELD_FD_SERVINGS, "合同份数", contractManage.getCopyCount() == null ? 1 : contractManage.getCopyCount()));
// 合同说明:remark(选填) // 合同说明:remark(选填)
fields.add(field(HcsContractFieldConstant.FIELD_FD_DESC, "合同说明", contractManage.getRemark())); fields.add(field(HcsContractFieldConstant.FIELD_FD_DESC, "合同说明", contractManage.getRemark()));
// 关联项目(选填,对象传值):合同所选项目对应合同系统项目ID(blade_project_apply.hcs_fd_id,C102-1 立项同步回填), // 关联项目(选填,对象传值):合同所选项目对应合同系统项目ID(blade_project_apply.hcs_fd_id,C102-1 立项同步回填),