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..919b333f 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 @@ -124,6 +124,10 @@ public class HcsProperties { * 收票单(C109)配置 */ private ReceiptBill receiptBill = new ReceiptBill(); + /** + * 收款认领链(C103-9 更新履约计划 + C107-1 认领记录 + C108-1 履约流水)配置 + */ + private Claim claim = new Claim(); /** * 附件转传(C103-2)配置 */ @@ -322,6 +326,14 @@ public class HcsProperties { private String xformId = ""; } + @Data + public static class Claim { + /** + * 收款认领链同步开关(金蝶认领推送 A301-3 成功后推 C103-9/C107-1/C108-1,默认关) + */ + private boolean syncEnabled = false; + } + @Data public static class Attachment { /** diff --git a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsCollectionFlowVO.java b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsCollectionFlowVO.java new file mode 100644 index 00000000..ebc3af2a --- /dev/null +++ b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsCollectionFlowVO.java @@ -0,0 +1,74 @@ +/** + * BladeX Commercial License Agreement + * Copyright (c) 2018-2099, https://bladex.cn. All rights reserved. + *

+ * Use of this software is governed by the Commercial License Agreement + * obtained after purchasing a license from BladeX. + *

+ * 1. This software is for development use only under a valid license + * from BladeX. + *

+ * 2. Redistribution of this software's source code to any third party + * is strictly prohibited. + *

+ * 3. Licensees may copyright their own code but cannot use segments + * from this software for their own commercial purposes. + *

+ * Using this software signifies agreement to this license agreement and terms of use, + * and you expressly agree to be bound by the terms of use of this software. + *

+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED + * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + *

+ * Author: Chill Zhuang (bladejava@qq.com) + */ +package org.springblade.hcs.dto; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.Data; + +import java.io.Serial; +import java.io.Serializable; +import java.math.BigDecimal; + +/** + * 合同合规系统(HCS)C104-2 收款流水分页行(认领记录推送前按明细流水号定位合规侧收款流水ID) + *

+ * 合规侧收款流水由合规自 ERP 侧同步(fdDataSource 默认 erp),TMS 以明细流水号(fdDetailSerialNumber) + * 精确匹配取 fdId,供 C107-1 认领记录的 fdCollectionFlow.fdId 引用。 + * + * @author Chill + */ +@Data +@JsonInclude(JsonInclude.Include.NON_NULL) +@JsonIgnoreProperties(ignoreUnknown = true) +public class HcsCollectionFlowVO implements Serializable { + @Serial + private static final long serialVersionUID = 1L; + /** + * 合规收款流水ID(C107-1 fdCollectionFlow.fdId 引用) + */ + private String fdId; + /** + * 认领公告 + */ + private String fdClaimNotice; + /** + * 明细流水号(与 TMS blade_kingdee_receipt_flow.detail_serial_no 同源) + */ + private String fdDetailSerialNumber; + /** + * 收款金额 + */ + private BigDecimal fdCollectionAmount; + /** + * 认领状态:0=未认领,1=部分认领,2=认领完成 + */ + private Integer fdClaimStatus; + /** + * 已认领金额 + */ + private BigDecimal fdClaimedAmount; +} diff --git a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsPerfRecordPropsDTO.java b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsPerfRecordPropsDTO.java index 20fcbcf3..2ba5302f 100644 --- a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsPerfRecordPropsDTO.java +++ b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/dto/HcsPerfRecordPropsDTO.java @@ -92,6 +92,16 @@ public class HcsPerfRecordPropsDTO implements Serializable { */ @JsonProperty("fd_id") private String fdId; + /** + * 履约计划id(关联履约阶段 hcs_stage_fd_id,接口必填,HCS 只认自己的阶段ID) + */ + @JsonProperty("fd_plan_id") + private String fdPlanId; + /** + * 金蝶单据号(溯源用) + */ + @JsonProperty("fd_jd_doc_no") + private String fdJdDocNo; /** * 合同ID(HCS 合同ID) */ diff --git a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/feign/IHcsClient.java b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/feign/IHcsClient.java index a119b917..916c36f0 100644 --- a/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/feign/IHcsClient.java +++ b/blade-third-party-api/blade-hcs-api/src/main/java/org/springblade/hcs/feign/IHcsClient.java @@ -31,6 +31,7 @@ import org.springblade.hcs.dto.HcsAttachmentDownloadDTO; import org.springblade.hcs.dto.HcsAttachmentVO; import org.springblade.hcs.dto.HcsCategoryVO; import org.springblade.hcs.dto.HcsClaimRecordAddDTO; +import org.springblade.hcs.dto.HcsCollectionFlowVO; import org.springblade.hcs.dto.HcsContractDetailQueryDTO; import org.springblade.hcs.dto.HcsContractDetailVO; import org.springblade.hcs.dto.HcsContractDraftDTO; @@ -107,6 +108,7 @@ public interface IHcsClient { String INVOICE_REG_ADD_URL = "${thirdParty.hcs.invoiceRegAddUrl:/openapi/eop-data/eopDataInvoiceRegistrationOpen/add}"; String INVOICE_REG_UPDATE_URL = "${thirdParty.hcs.invoiceRegUpdateUrl:/openapi/eop-data/eopDataInvoiceRegistrationOpen/update}"; String CLAIM_RECORD_ADD_URL = "${thirdParty.hcs.claimRecordAddUrl:/openapi/eop-data/eopDataCollectionFlowClaimRecordOpen/add}"; + String COLLECTION_FLOW_LIST_URL = "${thirdParty.hcs.collectionFlowListUrl:/openapi/eop-data/eopDataCollectionFlowOpen/list}"; /** * C102-1 项目立项新建 @@ -338,4 +340,13 @@ public interface IHcsClient { */ @PostMapping(CLAIM_RECORD_ADD_URL) HcsResult claimRecordAdd(@RequestBody HcsClaimRecordAddDTO param); + + /** + * C104-2 查询收款流水列表(认领记录推送前按明细流水号定位合规侧收款流水ID) + * + * @param param 分页查询参数(conditions.fdDetailSerialNumber 按明细流水号精确查询) + * @return 收款流水分页数据 + */ + @PostMapping(COLLECTION_FLOW_LIST_URL) + HcsResult> collectionFlowList(@RequestBody HcsPageQueryDTO param); }