当前位置: 首页 > news >正文

长沙网站建设招聘在线图片编辑器源码

长沙网站建设招聘,在线图片编辑器源码,论职能网站建设,梅州市住房和城乡建设局官网网站#xff08;二#xff09;基于业务需求动态生成 DRL 规则文件#xff1a;事实与动作定义详解 在现代业务规则管理系统中#xff0c;灵活高效地生成和管理规则至关重要。通过上一部分的DRT 规则模板#xff08;请参考#xff1a;#xff08;一#xff09;基于业务需求动…二基于业务需求动态生成 DRL 规则文件事实与动作定义详解 在现代业务规则管理系统中灵活高效地生成和管理规则至关重要。通过上一部分的DRT 规则模板请参考一基于业务需求动态生成 DRT 规则模板事实与动作定义详解结合业务上的动作定义和事实定义自动生成 DRLDrools Rule Language规则文件可以根据业务需求自定义和调整规则从而提高业务的灵活性和响应速度。本文将详细介绍如何根据业务需求动态生成 DRL 规则文件并结合示例界面图和代码进行说明。 图示示例说明 下图数据是根据事实定义和动作定义自动初始化数据业务人员可自行定义主要包含了规则信息和规则设置两个部分 规则信息包括规则名称、规则分类、规则标识以及是否启用的设置。规则设置是否启用左边部分是事实数据右边部分是动作数据每一行是一条规则。 生成 DRL 规则文件的代码 以下代码演示了如何根据业务需求动态生成 DRL 规则文件。代码通过读取 JSON 格式的规则定义过滤和转换数据然后使用 Drools 提供的 ObjectDataCompiler 来生成 DRL 文件。 代码详解 import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.stream.Collectors; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import com.fasterxml.jackson.core.type.TypeReference; import org.drools.template.ObjectDataCompiler;/*** DroolsRuleUtil 类用于根据业务需求动态生成 DRL 规则文件。*/ public class DroolsRuleUtil {/*** 生成 DRL 规则文件。** param saveReSetPVO 保存规则设置的对象* return 生成的 DRL 规则字符串*/public static String generateDroolsDrl(SaveReSetPVO saveReSetPVO) {// 检查规则启用标志、规则定义详情和 DRT 模板是否有效if (Objects.equals(saveReSetPVO.getEnableFlag(), ConstantsRe.YES) StringUtils.isNotBlank(saveReSetPVO.getDefineDetail()) StringUtils.isNotBlank(saveReSetPVO.getDrtRuleTemplate())) {// 将 JSON 格式的规则定义转换为 ListMapString, ObjectListMapString, Object dataList JacksonUtil.json2bean(saveReSetPVO.getDefineDetail(),new TypeReferenceListMapString, Object() {});// 过滤出启用的规则dataList dataList.stream().filter(e - Objects.equals(ConvertUtil.createInteger(e.get(enable_flag)), ConstantsRe.YES)).collect(Collectors.toList());if (CollectionUtils.isNotEmpty(dataList)) {// 将空值转换为 nullfor (MapString, Object map : dataList) {for (Map.EntryString, Object entry : map.entrySet()) {if (StringUtils.isBlank(ConvertUtil.createString(entry.getValue()))) {map.replace(entry.getKey(), null);}}}// 将 DRT 模板字符串转换为输入流InputStream inputStream new ByteArrayInputStream(saveReSetPVO.getDrtRuleTemplate().getBytes());// 使用 ObjectDataCompiler 根据模板和数据生成 DRL 规则文件return new ObjectDataCompiler().compile(dataList, inputStream);} else {// 如果数据列表为空返回 nullreturn null;}}// 如果启用标志、规则定义详情或 DRT 模板无效返回 nullreturn null;} }代码解析 检查规则启用标志和内容有效性 首先检查 saveReSetPVO 对象的 enableFlag 是否为启用状态并确保 defineDetail 和 drtRuleTemplate 不为空。 转换和过滤规则定义数据 使用 JacksonUtil.json2bean 将 JSON 格式的规则定义转换为 ListMapString, Object。通过 stream 和 filter 方法过滤出 enable_flag 为启用状态的规则。 处理空值 遍历规则列表将所有空值转换为字符串 null以避免生成规则时出现空值错误。 生成 DRL 规则文件 将 DRT 模板字符串转换为输入流使用 Drools 提供的 ObjectDataCompiler 根据模板和数据生成 DRL 规则文件。 业务规则配置示例 根据图示的规则编辑界面以下是生成的 DRL 规则文件示例 package org.drools import com.xinyuan.re.utils.DateUtils declare SuppliersNumberFactPVOpurchaseMethod: StringprojectStage: StringsuppliersNumber: Integer end declare SubmitTaskVerifyMessagestate: inttext: String endrule re_openbid_supplier_count_0when $suppliers_number_fact_p_v_o : SuppliersNumberFactPVO((00380002,00380024,00380020,00380003 null || purchaseMethod memberOf 00380002,00380024,00380020,00380003) (1 null || projectStage 1 ) (3 null || suppliersNumber 3));$submit_task_verify_message : SubmitTaskVerifyMessage();then $submit_task_verify_message.setState(2);$submit_task_verify_message.setText(招标的项目投标人数量少于3个不得开标); endrule re_openbid_supplier_count_1when $suppliers_number_fact_p_v_o : SuppliersNumberFactPVO((00380002,00380003,00380020,00380024 null || purchaseMethod memberOf 00380002,00380003,00380020,00380024) (2 null || projectStage 2 ) (3 null || suppliersNumber 3));$submit_task_verify_message : SubmitTaskVerifyMessage();then $submit_task_verify_message.setState(2);$submit_task_verify_message.setText(资审阶段的项目申请人数量少于3个不得开启); end 结论 通过以上代码和示例我们可以根据业务需求动态生成 DRL 规则文件。动态生成的 DRL 文件可以根据不同的业务场景进行定制化提升了业务规则配置的灵活性和效率。 下一步可以进一步完善规则引擎闭环包括基于 DRT 规则模板动态配置生成 DRL 规则文件以及基于业务需求动态调用 DRL 规则文件。通过这些步骤可以实现更加灵活和高效的业务规则管理系统。
http://www.zqtcl.cn/news/981218/

相关文章:

  • 网站建设完不管了自己怎么接手wordpress个人主页
  • 具有品牌的网站建设霞浦建设局网站
  • 推荐个网站免费的wordpress force ssl
  • app网站搭建做英文网站的心得
  • 东莞企业网站制作推广运营多样化的网站建设公司
  • 深圳做网站那里好提交网址给百度
  • 泰州企业建站系统中企动力科技做什么的
  • 唐山公司网站建设 中企动力唐山宽带动态ip如何做网站访问
  • 个人商城网站怎么做电商网站及企业微信订烟
  • 温州市网站优化广告平面设计教程
  • 南通制作网站的有哪些公司吗sae 部署wordpress
  • 友情链接对网站的影响wordpress admin init
  • 渭南网站开发做网红用哪个网站
  • 湖北建设网站wordpress 翻页电子书
  • 网站设计命名规范厦门建站比较好的公司
  • 用vs2010做网站登入前端培训费用大概多少郑州
  • 网站建设后的效果评估杭州网站制作公司
  • 3网站建设公司影楼修图用什么软件
  • 手机网站的内容模块多用户商城开源左
  • 库尔勒网站建站宝盒合作
  • 五河网站建设哪家好wordpress获取文章作者
  • 怎么修改网站内容wordpress ajax接口
  • 绵阳市城乡建设和规划局网站重庆网站建设公司有哪些
  • 宿迁网站建设公司排名展厅设计企业
  • 做家具定制的设计网站开阿里巴巴网站建设流程
  • 站长统计软件广州免费核酸在哪里做
  • 做soho一定要做网站吗在百度网站备案查询上显示未备案是什么意思
  • 移动公司营销网站设计html旅游网站模板
  • 专业生产车间设计图纸网站ui设计师证
  • 如何建网站教程视频10种网络营销方法