寻源二开指南--缴费管理--整体架构及接口调用

1. 缴费管理--整体架构及接口调用
1.1 业务场景简介
寻源过程中,涉及到投标保证金、标书费、履约保证金等费用的管理。标准产品提供了整体管理框架、核心主数据和各种标准操作,二开可以调用接口进行特殊处理,如自动缴费等。
1.2 简要实现方案
步骤 | 开发内容 | 备注 |
1 | 收费管理整体架构 | |
2 | 收费管理接口调用 |
1.3 收费管理整体架构和接口调用
1.3.1 整体架构
1、整体架构:包括5个主数据:收费明细记录、投标保证金余额、履约保证金余额、投标保证金汇总信息、履约保证金汇总信息。在收费管理审核/反审核,收费处理,余额调整,定标单审核/反审核,寻源项目变更时,对这5个主数据的影响。

2、投标保证金、履约保证金的余额计算
项目完成后,如果供应商不再参与,可以将保证金退回。如果继续参与下一轮投标,则可以将剩余金额结转到保证金余额,或转履约保证金。下图显示各种操作对余额的影响。

3、投标保证金、履约保证金的汇总计算
标准产品也提供了投标保证金、履约保证金的累积数据,下图显示各种操作对汇总信息的影响。
4、寻源收费管理主要类图

1.3.2 接口调用
接口调用包括两种基本类型的处理:更新状态和余额调整。
业务处理1、更新状态
更新状态 dataMap 参数:
// 1 操作类型--必须(confirm 确认 reject 拒绝 return 退还 transfer 结余 carryover 转履约金) dataMap.put("opkey", "");
// 2 费用明细分录id--必须 dataMap.put("entryid", 0); // 3 处理人id--必须 dataMap.put(BillAssistConstant.CFM, 0); // 4 处理时间--必须 dataMap.put(BillAssistConstant.CFM_DATE, DATA); // 5 处理意见--必须 dataMap.put(BillAssistConstant.CFM_OPINION, ""); // 6 退还金额--必须(根据操作类型) dataMap.put(SrcCommonConstant.RETURNAMOUNT, 0); // 7 结余金额--必须(根据操作类型) dataMap.put(SrcCommonConstant.TRANSFERAMOUNT, 0); // 8 转履约金额--必须(根据操作类型) dataMap.put(SrcCommonConstant.CARRYOVERAMOUNT, 0); // 9 履约保证金类型--必须,默认"2" dataMap.put(SrcCommonConstant.SURPLUSTYPE,"2"); |
业务处理2、余额调整
余额调整 dataMap 参数:
// 1 保证金类型--必须,默认"1" dataMap.put(SrcCommonConstant.SURPLUSTYPE,"1"); // 2 供应商类型--必须,默认 "bd_supplier" dataMap.put(SrcCommonConstant.SUPPLIERTYPE, "bd_supplier"); // 3 供应商id--必须 dataMap.put(SrcCommonConstant.SUPPLIER, 0); // 4 采购组织id--必须 dataMap.put(SrcCommonConstant.ORG, 0); // 5 创建组织id--必须 dataMap.put(BillAssistConstant.CREATE_ORG, 0); // 6 项目id--非必须 dataMap.put(SrcCommonConstant.SOURCE, 0); // 7 收费项id--非必须 dataMap.put(SrcCommonConstant.FEEITEM, 0); // 8 币别id--必须 dataMap.put(SrcCommonConstant.CURRENCY, 0); // 9 调整后余额--必须 dataMap.put(SrcCommonConstant.SURPLUSAMOUNT, 0); // 10 摘要--必须 dataMap.put(BillAssistConstant.REMARK, ""); // 11 创建人id--必须 dataMap.put(BillAssistConstant.CREATOR, RequestContext.get().getUserId()); // 12 创建时间--必须 dataMap.put(BillAssistConstant.CREATE_TIME, TimeServiceHelper.now()); |
接口调用方式一、通过工具类进行调用

接口调用方式二、通过微服务接口进行调用
微服务接口:更新状态 Map<String, Object> result = DispatchServiceHelper.invokeBizService("scm", "src", "SrcFeeManageService", "updatePaymentStatus",dataMap)
微服务接口:调整状态 Map<String, Object> result = DispatchServiceHelper.invokeBizService("scm", "src", "SrcFeeManageService", "adjustPaymentStatus",dataMap) |
1.4 供应商自动缴费示例
下面以供应商缴费、提交、确认的后台处理为例,实现供应商自动缴费,代码如下:
/** * 自动提交并确认 */ public void autoSubmitAndConfirm() { // 数据map Map<String, Object> dataMap = new HashMap<>(16); // 1 构建基本信息 // 1.1 处理人id--必须 dataMap.put(BillAssistConstant.CFM, RequestContext.get().getCurrUserId()); // 1.2 处理时间--必须 dataMap.put(BillAssistConstant.CFM_DATE, TimeServiceHelper.now()); // 1.3 处理意见--必须 dataMap.put(BillAssistConstant.CFM_OPINION, "自动缴费测试");// 根据实际数据设置
// 2 构建项目信息 DynamicObject billObj = this.getModel().getDataEntity(); // 2.1 寻源项目id,必须 data |
寻源二开指南--缴费管理--整体架构及接口调用
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



