自动发起议价--自定义采购清单过滤条件

1. 自动发起议价-自定义过滤条件
1.1 业务场景简介
在定标时,往往需要多轮议价,发起议价的方式有两种,一种是手工添加议价单,另外一种是自动发起议价。自动发起议价时,需要设置好采购清单的过滤条件,系统根据过滤条件,自动创建议价单。


步骤 | 开发内容 | 备注 |
1 | 设置通用过滤条件 | 应用配置 |
2 | 设置动态过滤条件 | 应用配置 |
3 | 开发插件过滤条件 | 代码开发 |
1.3 详细开发步骤及示例代码
下面以标准产品的“自动议价方案” 为例。
1.3.1 设置通用过滤条件
1、找到 自动议价方案:

2、设置 通用过滤条件
通用过滤条件是对“待过滤业务的对象—采购清单F7”进行简单的、固定条件的过滤。
如:1)业务状态=已开标;2)分批定标否=否
1.3.2 设置动态过滤条件
动态过滤条件:“待过滤业务的对象—采购清单F7” 与 “值业务对象”进行动态匹配。根据值业务对象的数据,匹配“待过滤业务的对象”的记录。目前,这里暂时不需要设置。

1.3.3 插件扩展过滤
对于复杂的过滤条件,一般难于通过配置实现,可以写插件来获取过滤条件。
可以注册多个过滤条件插件,过滤条件是and关系,数据则取交集。

插件需要实现标准接口:IExtFilterPlugin
示例代码如下:
/** * 自动议价--议价标的过滤--按议价规则(预中标供应商/前几名供应商/投标供应商) * * @author rd_fumin_huang * */ public class SrcNegotiateFilterByRule implements IExtFilterPlugin<ExtFilterContext> { private static final long serialVersionUID = 1L;
@Override public Map<String, Object> getQFilter(ExtFilterContext context) { return getQFilterMap(getQFilterByNegRule(context), null); }
/** * 按比价设置的议价规则(范围) 获取过滤条件 * * @param context * @return */ private QFilter getQFilterByNegRule(ExtFilterContext context) { long projectId = PdsCommonUtils.object2Long(context.getParamMap().get(SrcCommonConstant.PROJECTID)); QFilter compareFilter = new QFilter(SrcCommonConstant.ID, QCP.equals, projectId); DynamicObject compareConfig = QueryServiceHelper.queryOne(SrcMetadataConstant.SRC_COMPARE_CONFIG, SrcCommonConstant.NEGOTIATERULE + "," + SrcCommonConstant.TOPSUPPLIER, compareFilter.toArray()); if (null == compareConfig) { return null;
|
自动发起议价--自定义采购清单过滤条件
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



