diff --git a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsSpecPaySyncSupport.java b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsSpecPaySyncSupport.java index a9fdcfa9..6f4de144 100644 --- a/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsSpecPaySyncSupport.java +++ b/blade-service/blade-transport/src/main/java/org/springblade/transport/support/hcs/HcsSpecPaySyncSupport.java @@ -118,6 +118,8 @@ public class HcsSpecPaySyncSupport { param.setFdId(payment.getHcsSpecFdId()); // 【必填】操作人登录名:付款申请创建人登录名(§9-U2) param.setFdLoginName(operatorLoginName); + // 【必填】流程模板ID:公司流程模板(spec-pay.template-mapping 按租户配置,环境/公司相关) + param.setFdTemplateId(requireTemplateId(payment)); HcsSpecPayFormDataDTO formData = new HcsSpecPayFormDataDTO(); HcsSpecPayPropsDTO props = new HcsSpecPayPropsDTO(); // 【必填】合同:传合规合同ID(blade_contract_manage.hcs_fd_id,非名称) @@ -202,6 +204,17 @@ public class HcsSpecPaySyncSupport { return result.getData().getData().getFdId(); } + /** + * 付款特批流程模板ID(fdTemplateId 必填,spec-pay.template-id,每个环境/公司不同) + */ + private String requireTemplateId(PaymentApplication payment) { + String templateId = hcsProperties.getSpecPay().getTemplateId(); + if (StringUtil.isBlank(templateId)) { + throw new HcsException("C106 特批推送失败,未配置付款特批流程模板ID(thirdParty.hcs.spec-pay.template-id)"); + } + return templateId; + } + /** * 合规合同ID(fd_contract_name 必填,合同未推送时失败提示) */ diff --git a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/config/HcsProperties.java b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/config/HcsProperties.java index 5e0ca285..dc2b4b2a 100644 --- a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/config/HcsProperties.java +++ b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/config/HcsProperties.java @@ -284,6 +284,10 @@ public class HcsProperties { * 付款类型字典值(fd_payment_type,§9-U3 待联调后配置) */ private String paymentType = ""; + /** + * 付款特批流程模板ID(fdTemplateId,每个环境/公司不同,按环境在 Nacos 维护) + */ + private String templateId = ""; } @Data diff --git a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsSpecPaySaveDTO.java b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsSpecPaySaveDTO.java index a184785d..993f57f2 100644 --- a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsSpecPaySaveDTO.java +++ b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsSpecPaySaveDTO.java @@ -55,6 +55,10 @@ public class HcsSpecPaySaveDTO implements Serializable { * 操作人登录名(必填) */ private String fdLoginName; + /** + * 流程模板ID(公司流程模板ID,发起必填;每个环境/公司不同,经 Nacos spec-pay.template-mapping 配置) + */ + private String fdTemplateId; /** * 特批表单数据 */ diff --git a/doc/nacos/blade-dev.yaml b/doc/nacos/blade-dev.yaml index cb27d2df..745bff6e 100644 --- a/doc/nacos/blade-dev.yaml +++ b/doc/nacos/blade-dev.yaml @@ -311,6 +311,8 @@ thirdParty: payment-purpose: ${HCS_SPEC_PAY_PAYMENT_PURPOSE:2001} payment-nature: ${HCS_SPEC_PAY_PAYMENT_NATURE:1} payment-type: ${HCS_SPEC_PAY_PAYMENT_TYPE:1} + # 付款特批流程模板ID(fdTemplateId,每个环境/公司模板不同,WLTMS 示例值,按环境维护) + template-id: ${HCS_SPEC_PAY_TEMPLATE_ID:1k5hp8mu5w9dwajnhw1g78dm3pd4a1r11aw0} # 开票登记(C111) invoice: # TMS 发票类型 -> HCS 发票类型字典值(§9-U3 待联调后配置) diff --git a/doc/nacos/third-party-api.yaml b/doc/nacos/third-party-api.yaml index 8ca005cc..7d46eb22 100644 --- a/doc/nacos/third-party-api.yaml +++ b/doc/nacos/third-party-api.yaml @@ -232,6 +232,8 @@ thirdParty: payment-purpose: ${HCS_SPEC_PAY_PAYMENT_PURPOSE:} payment-nature: ${HCS_SPEC_PAY_PAYMENT_NATURE:} payment-type: ${HCS_SPEC_PAY_PAYMENT_TYPE:} + # 付款特批流程模板ID(fdTemplateId,每个环境/公司模板不同,按环境维护) + template-id: ${HCS_SPEC_PAY_TEMPLATE_ID:1k5hp8mu5w9dwajnhw1g78dm3pd4a1r11aw0} # 开票登记(C111) invoice: # TMS 发票类型 -> HCS 发票类型字典值(§9-U3 待联调后配置)