: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→人民币,照金蝶惯例)
// 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 立项同步回填),