自动发起议价--自定义采购清单过滤条件
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; } // 议价规则:1-预中标供应商/2-前几名供应商/3-投标供应商, 默认 3 String negotiateRule = PdsCommonUtils.object2String(compareConfig.get(SrcCommonConstant.NEGOTIATERULE), SrcCommonConstant.NEGOTIATERULE_TENDER); // 前几名供应商 int topSupplier = compareConfig.getInt(SrcCommonConstant.TOPSUPPLIER); // 可参与份额分配的定标结果 Set<String> resultSet = PdsParameterUtils.getResultValueSet(); QFilter qfilter = null; // 议价规则--拟中标供应商 switch (negotiateRule) { case SrcCommonConstant.NEGOTIATERULE_WIN: qfilter = new QFilter(SrcCommonConstant.SYSRESULT, QCP.in, resultSet); break; case SrcCommonConstant.NEGOTIATERULE_TOP: qfilter = new QFilter(SrcCommonConstant.RANK, QCP.less_equals, topSupplier); break; default: break; } return qfilter; } } |
1.4 参考开发工作量(人/天)
步骤 | 开发内容 | 估计开发人天 |
1 | 设置通用过滤条件 |
0.5~1.0
|
2 | 设置动态过滤条件 | |
3 | 开发插件过滤条件 |
合计:约0.5~1.0开发人天。
自动发起议价--自定义采购清单过滤条件
本文2024-09-22 23:57:59发表“云星瀚知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-xinghan-136418.html