电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

寻源服务中台二开指南--扩展插件管理

来源:金蝶云社区作者:金蝶2024-09-2221

寻源服务中台二开指南--扩展插件管理


1. 扩展插件管理

1.1    业务场景简介

在寻源管理中,大部分的核心业务逻辑,都被抽象为扩展插件。通过“扩展插件管理”进行启用/禁用,以实现不同客户的个性化需求。同一插件编码下的扩展插件,将作为一个动态责任链,依次执行,以实现一组相关功能

系统预置了大部分常用的扩展插件,例如:

二开可以增加新的扩展插件,以实现客户个性化需求。


1.2    简要实现方案

步骤

开发内容

备注

1

扩展插件 禁用

系统配置

2

扩展插件 启用

系统配置

3

增加 扩展插件

代码开发

4

注册 扩展插件

应用注册

5

替换 扩展插件

系统配置

 

1.3    详细开发步骤及示例代码

下面以 “竞价完成处理--报价明细的状态” 为例。该扩展插件在竞价结束后,处理报价明细的分录状态,插件注册界面如下:

 


1.3.1  禁用 扩展插件

注意:系统预置的扩展插件,一般不允许禁用,如果需要禁用,请与标准产品研发团队确认后再禁用。

1 直接点击禁用,系统提示:

2 将该扩展插件设置为允许禁用,并保存:

保存后,该插件才可以禁用。


1.3.2  启用 扩展插件

扩展插件启用没有限制,直接点“启用”即可。

 

1.3.3  新增 新的扩展插件

竞价完成处理--报价明细的状态:该编辑插件用于在竞价完成时,更新报价明细的状态

需要实现接口:ISrcVieFinish,代码如下:

/**

 * 竞价完成处理--报价明细的状态

public class SrcVieFinishDetail implements   ISrcVieFinish {

       @Override

       public   void process(PdsVieContext context) {

              //   源单分录id

              Set<Long>   srcEntryIds = new HashSet<>(16);

              //   报价明细id(有效的)

              Set<Long>   validDetailIds = new HashSet<>(16);

              //   获取本轮次报价明细的相关信息

              getQuoteDetails(context,   srcEntryIds, validDetailIds);

              if   (srcEntryIds.size() == 0) {

                     return;

              }

              //   更新报价明细的状态

              updateQuoteDetail(context,   srcEntryIds, validDetailIds);

       }

 

       /**

        * 获取本轮次报价明细的相关信息

        *

        * @param context

        * @param srcEntryIds

        * @param validDetailIds

        */

       protected   void getQuoteDetails(PdsVieContext context, Set<Long> srcEntryIds,   Set<Long> validDetailIds) {

              //   查询条件:寻源项目+议价轮次+竞价轮次

              QFilter   qfilter = new QFilter(SrcCommonConstant.PROJECT, QCP.equals, context.getProjectId()).and(SrcCommonConstant.TURNS,   QCP.equals, context.getTurns()).and(SrcCommonConstant.VIETURNS, QCP.equals,   context.getVieturns());

              //   获取 报价明细并排序:源单分录id+报价时间(倒序)

              DynamicObjectCollection   quoteDetails = QueryServiceHelper.query(SrcMetadataConstant.SRC_VIE_DETAILF7,   SrcCommonConstant.ID + "," + SrcCommonConstant.SRCENTRYID,   qfilter.toArray(), SrcCommonConstant.SRCENTRYID + "," +   SrcCommonConstant.QUOTEDATE + " " + SrcCommonConstant.DESC);

              if   (quoteDetails == null || quoteDetails.size() == 0) {

                     return;

              }

              //   源单分录id分组,并取第一条

              Map<String,   DynamicObject> srcEntryMap =   quoteDetails.stream().collect(Collectors.groupingBy(e ->   e.getString(SrcCommonConstant.SRCENTRYID),   Collectors.collectingAndThen(Collectors.toList(), value ->   value.get(0))));

              //   获取 源单分录id集合

              srcEntryIds.addAll(srcEntryMap.keySet().stream().map(e   -> Long.valueOf(e)).collect(Collectors.toSet()));

              //   获取 报价明细id集合(有效的)

              validDetailIds.addAll(srcEntryMap.entrySet().stream().map(e   -> e.getValue().getLong(SrcCommonConstant.ID)).collect(Collectors.toSet()));

       }

       /**

        * 更新报价明细的状态

        * @param context

        * @param srcEntryIds

        * @param validDetailIds

寻源服务中台二开指南--扩展插件管理

1. 扩展插件管理1.1 业务场景简介在寻源管理中,大部分的核心业务逻辑,都被抽象为扩展插件。通过“扩展插件管理”进行启用/禁用,以...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信