寻源二开指南--数据校验管理

1. 数据校验管理
1.1 业务场景简介
在寻源管理中,大部分的核心校验逻辑,都被抽象为数据校验插件。通过“数据校验管理”进行启用/禁用,以实现不同客户的个性化校验需求。同一单据+同一操作下的数据校验插件,将作为一个动态责任链,依次执行,以实现一组相关校验功能。
系统预置了大部分常用的数据校验插件,例如:

…
二开可以增加新的数据校验插件,以实现客户个性化校验需求。
1.2 简要实现方案
步骤 | 开发内容 | 备注 |
1 | 数据校验插件 禁用 | 系统配置 |
2 | 数据校验插件 启用 | 系统配置 |
3 | 增加 数据校验插件 | 代码开发 |
4 | 注册 通用校验插件 | 应用注册 |
5 | 注册 数据校验插件 | 应用注册 |
| 6 | 替换 数据校验插件 | 系统配置 |
1.3 详细开发步骤及示例代码
下面以 “投标单--撤标--项目是否已开标 校验” 为例。该数据校验在投标单撤标(即反审核)时,校验如果该寻源项目已开标,则不允许反审核,插件注册界面如下:

1.3.1 禁用 数据校验插件
注意:系统预置的扩展插件,一般不允许禁用,如果需要禁用,请与标准产品研发团队确认后再禁用。
1 直接点击禁用,系统提示:

2 将该数据校验插件设置为允许禁用,并保存:

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

1.3.2 启用 数据校验插件
数据校验插件的启用没有限制,直接点“启用”即可。

1.3.3 新增 新的数据校验插件
该数据校验在投标单撤标(即反审核)时,校验如果该寻源项目已开标,则不允许反审核。
需要实现接口:ISrcValidator,代码如下:
/** * 投标单--反审核--已开标 校验 * * @author rd_fumin_huang * */ public class TndTenderBillBidOpenValidator implements ISrcValidator { private static final long serialVersionUID = 1L;
@Override public void validate(SrcValidatorData validatorData) { long projectId = validatorData.getBillObj().getDynamicObject(SrcCommonConstant.PROJECT).getLong(BillAssistConstant.ID); // 项目相同 QFilter qFilter = new QFilter(SrcCommonConstant.ID, QCP.equals, projectId); // 已开标 qFilter.and(SrcCommonConstant.OPENSTATUS, QCP.large_than, "1");
if (QueryServiceHelper.exists(SrcMetadataConstant.SRC_PROJECT, qFilter.toArray())) { validatorData.setSucced(false); validatorData.setMessage(ResManager.loadKDStrin |
寻源二开指南--数据校验管理
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



