CN113435731B - 一种住房保障动态监管系统 - Google Patents
一种住房保障动态监管系统 Download PDFInfo
- Publication number
- CN113435731B CN113435731B CN202110699251.3A CN202110699251A CN113435731B CN 113435731 B CN113435731 B CN 113435731B CN 202110699251 A CN202110699251 A CN 202110699251A CN 113435731 B CN113435731 B CN 113435731B
- Authority
- CN
- China
- Prior art keywords
- matching
- rule
- matched
- module
- configuration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 claims abstract description 17
- 238000012360 testing method Methods 0.000 claims abstract description 14
- 238000004364 calculation method Methods 0.000 claims description 23
- 238000001914 filtration Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 6
- 230000004931 aggregating effect Effects 0.000 claims description 4
- 230000006872 improvement Effects 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 claims description 2
- 230000001502 supplementing effect Effects 0.000 claims description 2
- 238000012795 verification Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 abstract description 12
- 230000008569 process Effects 0.000 abstract description 9
- 238000012827 research and development Methods 0.000 abstract description 5
- 238000010200 validation analysis Methods 0.000 description 6
- 238000012216 screening Methods 0.000 description 5
- 238000012423 maintenance Methods 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004064 recycling Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06312—Adjustment or analysis of established resource schedule, e.g. resource or task levelling, or dynamic rescheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/90335—Query processing
- G06F16/90344—Query processing by using string matching techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
- G06F16/9038—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/26—Government or public services
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Economics (AREA)
- Tourism & Hospitality (AREA)
- Strategic Management (AREA)
- Educational Administration (AREA)
- Computational Linguistics (AREA)
- General Engineering & Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Development Economics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Quality & Reliability (AREA)
- Operations Research (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种住房保障动态监管系统,包括规则元配置模块、规则及明细配置模块、匹配网络生成模块、规则匹配模块、匹配结果处理模块;所述规则元配置模块对住房保障对象申请表单和数据汇总表单包含的所有属性进行配置管理;所述规则及明细配置模块对规则及明细进行配置;所述匹配网络生成模块对规则及明细配置模块配置的规则及明细进行预编译,预先编译成匹配网络,供匹配执行时使用;所述规则匹配模块通过传入待匹配数据对象,返回匹配流转对象;所述匹配结果处理模块对规则匹配模块得到的匹配流转对象进行处理,得到匹配结果对象。本发明减少了研发、测试人员工作量和成本,提高了系统的通用性、可复用性。
Description
技术领域
本发明涉及住房保障领域,尤其涉及一种住房保障动态监管系统。
背景技术
在市场经济条件下,国家为了保障每个人都有房子住,实施一些特殊的政策措施,帮助单纯依靠市场解决住房有困难的群体。这个政策体系的总称,叫做住房保障制度。为便于各个省市区住房保障中心落实住房保障制度,我司研发了住房保障系统,对保障对象、保障资源、保障方式等进行管理。
在申请成为保障对象的过程中,为识别申请人及家庭是否为满足当地政策的住房有困难群体,设计了两次规则匹配效验,需满足两次规则效验申请通过,才能进入住房保障系统保障对象清单,成为住房保障对象。两次效验,第一次是对申报人录入的个人及家庭基本信息(户籍、年龄、家庭月收入等)进行初次规则匹配效验,第二次是初审后与民政、社保、公积金、公安等部门数据打通,获取申请人个人及家庭的真实情况数据,对汇总后的数据进行规则匹配效验。通常第一次匹配的内容是第二次匹配内容的子集,现有的实现方式为预先根据当地政策预设匹配项及匹配值(市县、区域、对象类型、申请保障方式、家庭类型、户籍、年龄、家庭月收入、人均月收入、存款、家庭人口数、人均住房面积、家庭资产等,具体匹配项依据当地政策)。在规则配置功能中,从所有预设的匹配项中选取匹配项,设置匹配值,组合成匹配规则,如表1所示;
表1
规则编号 | 区域 | 对象类型 | 家庭人口数 | 年龄 | 家庭月收入 |
R1 | A | 个人 | 1 | <30 | <2000 |
R2 | A | 家庭 | 2 | <43 | <1500 |
R3 | B | 家庭 | 3 | >28 | <4000 |
R4 | C | 个人 | 1 | >35 | <1500 |
匹配效验的时候,循环所有的匹配规则,再循环每条规则中的匹配项,取出匹配项和匹配值与申请人数据进行匹配,当申请人数据满足其中某条匹配规则的时候即为匹配通过,返回匹配通过的规则、匹配不通过的规则和其中具体是哪些匹配项不通过。
此种匹配方法,匹配规则和匹配项嵌套循环,每次匹配需匹配计算(匹配项数量X匹配规则条数)次,如有10个匹配项,配置了10条匹配规则,即每次匹配需计算100次,每种预设匹配项的具体匹配计算均为独立硬编,且在进行第一次效验时需判断该匹配项是否可用于第一次效验;因特定市、区的当地住房保障政策唯一,匹配项数量及变化性较小,配置使用的规则条数较少,在仅供某市、区级住保中心使用时勉强可用,但匹配过程缓慢导致用户体验不佳,实施运维过程中遇到住保政策变动,为适应政策,需直接修改匹配项匹配计算硬编代码,增加研发和测试人员工作量,且容易影响系统稳定性;当其他市区住保中心需要使用该住房保障系统时,因各地保障政策存在差异,需对整个规则匹配模块,按当地政策重构;当省住保中心以省级为纬度开展全省住房保障管理业务时,以四川省举例,四川省约有21个市(地级行政区),213个区县,假设仅每个市住保政策存在差异,市下的区县按市级保障政策执行,一个市配置10条匹配规则,以此种匹配方法,总共会有210条匹配规则,假设全省只有10个匹配项(实际因不同地区政策不同,匹配项会存在差异无法统一,且数量更多),一次匹配需计算210X10=2100次,抛开同时申请并发的情况,仅单次匹配计算就对服务器的性能消耗巨大,匹配规则条数和匹配项较多的情况,会导致规则匹配效验请求超时,匹配效验失败。
综上所述,现有匹配计算方法匹配效率低下,实现代码臃肿,通用性、拓展性差,可维护、可复用、可移植性弱。
发明内容
本发明的目的在于克服现有技术的不足,提供一种住房保障动态监管系统。
本发明的目的是通过以下技术方案来实现的:
一种住房保障动态监管系统,包括包括规则元配置模块、规则及明细配置模块、匹配网络生成模块、规则匹配模块、匹配结果处理模块;
所述规则元配置模块:对住房保障对象申请表单和数据汇总表单包含的所有属性进行配置管理,所述配置管理包括匹配步骤、规则元名称、规则元编码、是否绑定字典和字典类型编码;所述规则及明细配置模块:规则为匹配明细的集合,规则配置的内容包括规则编码、规则名称、是否启用和管理主体;匹配明细配置的内容包括规则编码、规则元编码、匹配类型、运算类型、匹配值和是否必验;
所述匹配网络生成模块:对规则及明细配置模块配置的规则及明细进行预编译,预先编译成匹配网络,供匹配执行时使用;
所述规则匹配模块:通过传入待匹配数据对象,返回匹配流转对象;所述匹配流转对象包括匹配步骤、当前步骤匹配通过的规则编码集合、当前步骤匹配不通过的规则编码集合、跳过的步骤对象集合;执行规则匹配先从数据库中取出生成好的当前管理主体的匹配网络JSON字符串,将该JSON字符串解析呈匹配网络节点对象集合并排序;创建匹配流转对象,循环匹配网络节点对象集合,取出当前步骤匹配通过的规则编码集合,作为上一步匹配通过的规则编码集合,从循环的匹配网络节点对象中取出规则元编码和匹配模式集合,通过反射从待匹配数据对象中取出对应的属性值作为待匹配值,循环匹配模式集合,用匹配模式对象中的所属规则编码集合,与上一步匹配通过的规则编码集合取交集,得到可当前参与匹配的规则编码集合;将参与当前节点的匹配规则编码集合根据匹配结果,分别缓存到匹配通过的规则编码集合和匹配不通过的规则编码集合中;待当前节点所有匹配模式循环结束后,从缓存的匹配通过的规则编码集合中去掉在匹配不通过的规则编码集合中存在的规则编码,再将缓存的匹配通过的规则编码集合和匹配不通过的规则编码集合对应覆盖到匹配流转对象中的当前步骤匹配通过的规则编码集合和当前步骤匹配不通过的规则编码集合,再将匹配网络节点对象中的匹配步骤,覆盖到匹配流转对象中的匹配步骤;继续循环匹配网络节点对象,待所有匹配网络节点循环执行完成后,将记录的跳过步骤对象集合存入匹配流转对象中的跳过的步骤对象集合,结束规则匹配,返回匹配流转对象;
所述匹配结果处理模块:对规则匹配模块得到的匹配流转对象进行处理,得到匹配结果对象,所述匹配结果对象包括是否通过、动态表头和动态匹配规则数据;对匹配流转对象进行处理具体为:对匹配流转对象的属性进行判断,确定规则匹配是否通过;取出所有配置的规则元并按步骤排序,添加是否通过、规则编号和规则名称字段组装成动态表头,循环匹配流转对象中的当前步骤匹配通过的规则编码集合和表头,根据表头补全单条规则中的每个规则元数据和匹配情况;然后,处理匹配流转对象中的当前步骤匹配不通过的规则编码集合,将所有处理出来的结果集放到动态匹配规则数据中,返回匹配结果对象。
进一步的,所述匹配步骤的序号为数字,从1开始且不重复,重要性和过滤性越强的规则元匹配步骤配置的越靠前,对匹配性能的提升越高;规则元名称为住保数据接收存储对象属性中文名称;规则元编码为住保数据接收存储对象属性字段名。
进一步的,所述规则编码自动生成且唯一;所述是否启用控制该条规则是否在匹配中使用,所述管理主体为住房保障中心在系统中的标示,不同市或区级的管理主体,在有配置规则的情况下,仅使用从属于自己管理主体下的规则参与匹配,当自己管理主体下没有配置规则时,会使用省级管理主体下的默认规则配置;所述是否必验用于控制该匹配明细是否必须验证,主要针对匹配对象属性存在null的情况,非必验的明细遇到传入的匹配对象对应属性为null时,会跳过该明细,没有值即为不用匹配该明细,必验的明细,没有值则匹配失败;所述标示为管理机构按行政区域层级划分和维护其机构的信息。
进一步的,新增明细时先明确所属规则,默认写入所属规则的编码到明细的规则编码中,从规则元配置结果中选择规则元,绑定字典的规则元,匹配值只能从字典值中选取,未绑定字典的规则元,匹配值手动录入,匹配类型从配置中选择,运算类型根据匹配类型从配置中选择;同一规则下的明细可选择重复的规则元,用于配置不同的匹配类型、运算类型、匹配值和是否必验。
进一步的,所述匹配网络生成模块具体为:
步骤101:取出所有规则元;
步骤102:判断当前管理主体下是否配置规则;若是,取当前管理主体配置规则;若否,取省级管理主体默认配置规则;
步骤103:取与规则元编码匹配的所有规则下配置的明细;对同一规则元编码下的明细去重,并聚合所属规则编码组成匹配模型对象;
步骤104:根据对应规则元信息和匹配步骤组成匹配网络节点对象,返回步骤103直至所有规则元完成循环;
步骤105:得到每个规则元对应的匹配网络节点对象,汇总出按匹配步骤排序的匹配网络节点对象集合,即生成匹配网络;将匹配网络节点对象集合转换为JSON字符串,用管理主体id作为key后缀存入Redis。
进一步的,所述匹配流转对象中记录的是整个执行过程中跳过的步骤,最后一次执行的步骤和到这一步通过的和失败的规则编码集合。
进一步的,所述动态表头和动态匹配规则数据组合成动态列表,提供可视化展示页面,展示匹配结果。
进一步的,所述匹配情况包括跳过、通过和不通过三种情况;如果规则元对应步骤在跳过的步骤对象集合中,为跳过;如果规则元对应的步骤小于最后一次执行的步骤,为通过;如果该规则元对应的步骤等于最后一次执行的步骤,处理通过规则编码集合时为通过,处理未通过规则编码集合时为不通过;如果该规则元对应的步骤大于最后一次执行的步骤,说明没执行到该规则元,默认设置为跳过。
进一步的,所述规则匹配模块还包括验证匹配模式集合中有无匹配模式;无匹配模式,说明该节点没有明细配置,在匹配网络中属于未配置使用节点,跳过该节点,继续下轮循环;有匹配模式,循环匹配模式集合,用匹配模式对象中的所属规则编码集合,与上一步匹配通过的规则编码集合取交集,得到可当前参与匹配的规则编码集合,只有上一步节点匹配通过的规则,才能参与当前节点匹配,之后判断待匹配值是否为null,待匹配值为null时,且匹配模式对象是否必验属性为非必验时,将当前节点步骤和参与当前节点的匹配规则编码集合设置到跳过的步骤对象,存入跳过步骤对象集合,跳过当前匹配模式循环,待匹配值不为null时,根据匹配模式对象中的匹配类型和运算类型选择不同的匹配策略和计算方式,将待匹配值和匹配值进行匹配。
本发明的有益效果:实现匹配项(规则元)、规则、匹配类型和运算类型高度可配置,减少了研发、测试人员工作量和成本;对不同省市区存在的不同住房保障政策,通过规则元动态配置,灵活组合成对应规则的方式实现,提高了系统的通用性、可复用性。将规则配置和匹配从繁琐业务中抽离,从具体的规则中分离,避免了代码硬编,能灵活嵌入有类似需求的其他系统,提高了可移植性;匹配类型和运算类型可配置,方便维护,提高了匹配计算的拓展性;匹配步骤支持动态配置调整,可针对实际情况调整匹配步骤配置,将重要性、过滤性高的先执行,调校优化匹配效率;预编译构造匹配网络,去掉重复的匹配模式,保证相同匹配模式只需要执行一次,按步骤对节点排序,记录并使用节点的执行结果进行网络筛选,使每个节点的执行,都是对后续节点的筛选过滤,大量减少匹配计算次数,提高匹配效率和性能,实现了大量匹配模式集合和大量匹配项集合间高效匹配。
附图说明
图1是本发明的系统原理框图。
图2是匹配网络生成流程图。
图3是规则匹配流程图。
具体实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本实施例中,如图1所示,一种住房保障动态监管系统,包括规则元配置模块、规则及明细配置模块、匹配网络生成模块、规则匹配模块和匹配结果处理模块。
规则元配置模块:配置规则元素(匹配项),对所有可能参与匹配的元素(来源于住保系统保障对象申请表单和数据汇总表单包含的所有属性,即匹配对象)进行配置管理,规则元(Element)配置的内容包含匹配步骤(step)、规则元名称(name)、规则元编码(code)、是否绑定字典(dic)、字典类型编码(dicTypeCode)等,其中匹配步骤(step)为数字,从1开始且不重复,重要性和过滤性越强的规则元匹配步骤配置的越靠前,对匹配性能的提升越高;规则元名称为住保数据接收存储对象属性中文名称;规则元编码为住保数据接收存储对象属性字段名fieldName且唯一;绑定字典的规则元,字典类型编码必填。
规则及明细配置模块:配置规则及该条规则下包含的匹配明细,规则(Rule)为匹配明细的集合,配置的内容有规则编码(code)、规则名称(name)、是否启用(enabled)、管理主体(orgId)等,其中规则编码(code)自动生成且唯一,规则名称(name)为对此条规则的简略描述,是否启用(enabled)控制该条规则是否在匹配中使用,管理主体(orgId)相当于住房保障中心在住保系统中的标示(管理机构,通常按行政区域层级划分和维护其机构信息),各个省市区住保中心在住保系统中都有对应的管理主体,自动获取当前操作配置的管理主体,用于明确该条规则归属,不同市、区级管理主体,在有配置规则的情况下,仅使用从属于自己管理主体下的规则参与匹配,当自己管理主体下没有配置规则时,会使用省级管理主体下的默认规则配置。匹配明细(Rules)配置的内容有规则编码(ruleCode)、规则元编码(elementCode)、匹配类型(dicMatchType)、运算类型(operator)、匹配值(value)、是否必验(must)等,新增明细时先明确所属规则,默认写入所属规则的编码到明细的规则编码中,从规则元配置结果中选择规则元,自动带出该规则元的名称、编码、是否绑定字典及其绑定的字典编码,绑定字典的规则元,匹配值只能从字典值中选取,未绑定字典的规则元,匹配值手动录入,匹配类型从配置中选择,有文本、数值、日期、布尔等,运算类型根据匹配类型从配置中选择,如匹配类型为文本时,运算类型可选择等于、包含,匹配类型为数值时,运算类型可选择大于、大于等于、等于、小于、小于等于,是否必验用于控制该匹配明细是否必须验证,主要针对匹配对象属性存在null的情况,非必验的明细遇到传入的匹配对象对应属性为null时,会跳过该明细,没有值即为不用匹配该明细,必验的明细,没有值为匹配失败。同一规则下的明细可选择重复的规则元,用于配置不同的匹配类型、运算类型、匹配值、是否必验等。
匹配网络生成模块:对配置的规则及明细进行预编译,预先编译成匹配网络,供匹配执行时使用,首先取出所有配置的规则元,对取出规则元集合按匹配步骤排序,循环规则元集合,使用当前管理主体和单次循环中取出的规则元编码,查询该管理主体下所有规则(如果当前管理主体下没找到配置的规则,就取省级管理主体下配置的默认规则)里配置的该规则元编码对应的明细集合,并以匹配值、匹配类型、运算类型、是否必验进行分组,将匹配值、匹配类型、运算类型、是否必验都相同的明细所属的规则编码聚合成规则编码集合,保证同一规制元对应的明细集合中相同匹配模式在匹配网络里只会出现一次,匹配值(matchValue)、匹配类型(matchType)、运算类型(operator)、是否必验(must)再加上所属规则编码集合(ruleCodes)组成了匹配模式对象(Alpha),对规制元对应的明细集合进行分组去重、聚合所属规则编码后,得到规则元对应的匹配模式集合,再对匹配模式集合添加其对应的规则元名称、规则元编码和匹配步骤,得到匹配网络节点对象(Match),包含规则元名称(elementName)、规则元编码(elementCode)、匹配步骤(step)、匹配模式集合(alphas),通过循环规则元集合,得到每个规则元对应的匹配网络节点对象,汇总出按匹配步骤排序匹配网络节点对象集合,即生成匹配网络,将匹配网络节点对象集合转换为JSON字符串,用管理主体id作为key后缀存入Redis,供对应管理主体查询使用。
规则匹配模块:通过传入待匹配的数据对象(fact),返回匹配流转对象(Bate)。待匹配数据对象为Object对象,可传入任意类型对象,要求其属性字段名fieldName,在规则元配置中都能找到对应的规则元编码配置。匹配流转对象包含匹配步骤(step),默认值为0,当前步骤匹配通过的规则编码集合(trueRuleCodes),当前步骤匹配不通过的规则编码集合(falseRuleCode),跳过的步骤对象集合(pass)。跳过的步骤对象(PassRules)包含跳过步骤(step),跳过步骤所属的规则编码集合(ruleCodes)。执行规则匹配,先从Redis取出生成好的当前管理主体的匹配网络JSON字符串,如果Redis中没有,重新触发生成匹配网络。将取出的JSON字符串解析成匹配网络节点对象集合并排序,保证以匹配步骤的顺序排序。创建匹配流转对象,循环匹配网络节点对象集合,在单次循环中,先从匹配流转对象中取出当前步骤匹配通过的规则集合,作为上一步匹配通过的规则编码集合(lastTrueRuleCode)使用,如果上一步没有匹配通过的规则,规则匹配执行结束,退出匹配网络节点对象集合循环,返回匹配流转对象。如果上一步有匹配通过的规则,继续当前循环,从循环的匹配网络节点对象中取出规则元编码,使用该规则元编码作为属性字段名fieldName,通过反射从待匹配数据对象中取出对应的属性值作为待匹配值(factValue),从循环的匹配网络节点对象中取出匹配模式集合,验证匹配模式集合中有无匹配模式,无匹配模式,说明该节点没有明细配置,在匹配网络中属于未配置使用节点,跳过该节点,继续下轮循环;有匹配模式,循环匹配模式集合,用匹配模式对象中的所属规则编码集合,与上一步匹配通过的规则编码集合取交集,得到可当前参与匹配的规则编码集合(currentRuleCodes),只有上一步节点匹配通过的规则,才能参与当前节点匹配,实现每个节点的执行都是在对剩下的未执行节点中的匹配模式做筛选过滤,减少后续匹配计算次数,之后判断待匹配值(factValue)是否为null,待匹配值为null时,且匹配模式对象是否必验属性为非必验时,将当前节点步骤和参与当前节点的匹配规则编码集合设置到跳过的步骤对象(PassRules),存入跳过步骤对象集合(pass),跳过当前匹配模式循环,待匹配值不为null时,根据匹配模式对象中的匹配类型和运算类型选择不同的匹配策略和计算方式,将待匹配值和匹配值进行匹配,将参与当前节点的匹配规则编码集合,根据匹配结果,分别缓存到匹配通过的规则编码集合(trueRuleCodeCache)和匹配不通过的规则编码集合(falseRuleCodeCache)中,待当前节点所有匹配模式循环结束后,从缓存的匹配通过的规则编码集合(trueRuleCodeCache)中去掉在匹配不通过的规则编码集合(falseRuleCodeCache)中存在的规则编码(防止同一节点相同规则编码下的不同匹配模式,出现部分通过,部分不通过的情况),再将缓存的匹配通过的规则编码集合(trueRuleCodeCache)和匹配不通过的规则编码集合(falseRuleCodeCache)对应覆盖到匹配流转对象(Bate)中的当前步骤匹配通过的规则编码集合(trueRuleCodes)和当前步骤匹配不通过的规则编码集合(falseRuleCodes),再将匹配网络节点对象中的匹配步骤,覆盖到匹配流转对象(Bate)中的匹配步骤。继续循环匹配网络节点对象,待所有匹配网络节点循环执行完成后,将记录的跳过步骤对象集合(pass)存入匹配流转对象(Bate)中的跳过的步骤对象集合(pass),结束规则匹配,返回匹配流转对象(Bate),该对象中记录的是整个执行过程中跳过的步骤,最后一次执行的步骤和到这一步通过的和失败的规则编码集合。
匹配结果处理模块:对规则匹配得到的匹配流转对象(Bate)进行处理,得到匹配结果对象(Conclusion),该对象包含是否通过(isPass),动态表头(tips),动态匹配规则数据(data)。对匹配流转对象(Bate)的属性进行判断,匹配步骤(step)为0,说明未匹配任何匹配节点,直接返回异常提示未匹配到规则,匹配步骤(step)大于0,同时当前步骤匹配通过的规则编码集合(trueRuleCodes)为空,得出结论规则匹配不通过,是否通过(isPass)设置为false,反之得出结论规则匹配通过,是否通过(isPass)设置为true。动态表头(tips),动态匹配规则数据(data)一起组合成动态列表,供页面可视化展示,展示匹配结果,取出所有配置的规则元并按步骤排序,添加是否通过,规则编号,规则名称等字段组装成动态表头(tips),循环匹配流转对象(Bate)中的当前步骤匹配通过的规则编码集合(trueRuleCodes)和表头,根据表头补全单条规则中的每个规则元数据和匹配情况,包含跳过、通过、不通过三种情况,如果该规则元对应步骤在跳过的步骤对象集合(pass)中,为跳过,如果该规则元对应的步骤小于最后一次执行的步骤,为通过,如果该规则元对应的步骤等于最后一次执行的步骤,处理通过规则编码集合时为通过,处理未通过规则编码集合时为不通过,如果该规则元对应的步骤大于最后一次执行的步骤,说明没执行到该规则元,默认设置为跳过。同理处理匹配流转对象(Bate)中的当前步骤匹配不通过的规则编码集合(falseRuleCodes),将所有处理出来的结果集放到动态匹配规则数据(data)中,返回匹配结果对象(Conclusion)供页面展示使用。
在本实施例中,假设申请人X,其申请信息为区域A,对象类型个人,家庭人口数1,年龄25,家庭月收入1500。假设住保政策准入规则如表2所示。
表2
按以往方式,要找出匹配的规则或不匹配的规则及不匹配的项,需执行匹配计算36次。使用本系统,首先将所有规则中的匹配项分离,明确步骤,规则元配置为步骤1:区域(region),步骤2:对象类型(type),步骤3:家庭人口数(num),步骤4:年龄(age),步骤5:家庭月收入(income),步骤6:是否低保(basic)。规则及规则明细配置如表2,是否低保为非必验,其他均为必验,然后根据规则元配置和规则及明细生成匹配网络节点数据如表3、表4、表5、表6和表7所示:
表3
表4
表5
表5
表6
表7
对生成的网络节点按匹配步骤排序,按步骤顺序执行匹配,如下:
执行第一个节点(步骤1),申请人X的区域为A,将其与节点1的3种匹配模式进行匹配,匹配计算3次,得出匹配通过节点1的规则有R1,R2,R5,R6,不通过节点1的规则有R3,R4,已执行步骤1;
执行第二个节点(步骤2),申请人X的对象类型为个人,将其与节点2的2种匹配模式进行匹配,可参与匹配的匹配模式的所属规则必须和上一节点匹配通过的规则存在交集,匹配计算2次,得出匹配通过节点2的规则有R1,R5,R6,不通过节点2的规则有R2,已执行步骤2;
执行第三个节点(步骤3),申请人X的家庭人口数为1,将其与节点3的3种匹配模式进行匹配,可参与匹配的匹配模式的所属规则必须和上一节点匹配通过的规则存在交集,匹配计算1次,得出匹配通过节点3的规则有R1,R5,R6,不通过节点3的规则为null,已执行步骤3;
执行第四个节点(步骤4),申请人X的年龄为25,将其与节点4的4种匹配模式进行匹配,可参与匹配的匹配模式的所属规则必须和上一节点匹配通过的规则存在交集,匹配计算2次,得出匹配通过节点4的规则有R1,R5,R6,不通过节点4的规则为null,已执行步骤4;
执行第五个节点(步骤5),申请人X的家庭月收入为1500,将其与节点5的4种匹配模式进行匹配,可参与匹配的匹配模式的所属规则必须和上一节点匹配通过的规则存在交集,匹配计算2次,得出匹配通过节点5的规则有R1,R6,不通过节点5的规则为R5,已执行步骤5;
执行第六个节点(步骤6),申请人X的是否低保信息为空,节点6中的1种匹配模式为非必验,跳过该节点匹配模式,记录跳过信息:步骤6,跳过的规则R6;
执行完所有节点,总共匹配计算10次,输出匹配流转对象Bate,此时Bate中记录的信息为,执行步骤5,通过的规则有R1,R6,不通过的规则有R5,跳过信息为步骤6跳过规则R6。经过匹配结果处理,得出供页面展示数据如,表8所示:
表8
实际页面展示中,可用颜色区分通过(√),不通过(×),(跳过)。
本系统通过动态配置规则元、匹配类型和运算类型,去掉了计算过程代码硬编,解决了不同省市区不同住房保障政策的适配和复用问题,减少了政策变化时,研发和测试人员工作量;使用是否必验配置区分Null值和空字符串,非必验Null值跳过匹配,每次匹配可传入相同对象,自动判断匹配项进行匹配,解决匹配时重复判断区分第一次、第二次的问题;通过预编译生成匹配网络,去掉重复的匹配模式,匹配节点执行的同时对后续节点进行筛选过滤,解决了匹配计算方法匹配效率低下、匹配过程长、资源占用量大、在大量规则计算时超时失败的问题,支持大量匹配项及规则配置使用。
本发明实现匹配项(规则元)、规则、匹配类型和运算类型高度可配置,减少了研发、测试人员工作量和成本。对不同省市区存在的不同住房保障政策,通过规则元动态配置,灵活组合成对应规则的方式实现,提高了系统的通用性、可复用性。将规则配置和匹配从繁琐业务中抽离,从具体的规则中分离,避免了代码硬编,能灵活嵌入有类似需求的其他系统,提高了可移植性。匹配类型和运算类型可配置,方便维护,提高了匹配计算的拓展性;匹配步骤支持动态配置调整,可针对实际情况调整匹配步骤配置,将重要性、过滤性高的先执行,调校优化匹配效率;预编译构造匹配网络,去掉重复的匹配模式,保证相同匹配模式只需要执行一次,按步骤对节点排序,记录并使用节点的执行结果进行网络筛选,使每个节点的执行,都是对后续节点的筛选过滤,大量减少匹配计算次数,提高匹配效率和性能,实现了大量匹配模式集合和大量匹配项集合间高效匹配。
以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护的范围由所附的权利要求书及其等效物界定。
Claims (9)
1.一种住房保障动态监管系统,其特征在于,包括规则元配置模块、规则及明细配置模块、匹配网络生成模块、规则匹配模块、匹配结果处理模块;
所述规则元配置模块:对住房保障对象申请表单和数据汇总表单包含的所有属性进行配置管理,所述配置管理包括匹配步骤、规则元名称、规则元编码、是否绑定字典和字典类型编码;
所述规则及明细配置模块:规则为匹配明细的集合,规则配置的内容包括规则编码、规则名称、是否启用和管理主体;匹配明细配置的内容包括规则编码、规则元编码、匹配类型、运算类型、匹配值和是否必验;
所述匹配网络生成模块:对规则及明细配置模块配置的规则及明细进行预编译,预先编译成匹配网络,供匹配执行时使用;
所述规则匹配模块:通过传入待匹配数据对象,返回匹配流转对象;所述匹配流转对象包括匹配步骤、当前步骤匹配通过的规则编码集合、当前步骤匹配不通过的规则编码集合、跳过的步骤对象集合;执行规则匹配先从数据库中取出生成好的当前管理主体的匹配网络JSON字符串,将该JSON字符串解析呈匹配网络节点对象集合并排序;创建匹配流转对象,循环匹配网络节点对象集合,取出当前步骤匹配通过的规则编码集合,作为上一步匹配通过的规则编码集合,从循环的匹配网络节点对象中取出规则元编码和匹配模式集合,通过反射从待匹配数据对象中取出对应的属性值作为待匹配值,循环匹配模式集合,用匹配模式对象中的所属规则编码集合,与上一步匹配通过的规则编码集合取交集,得到可当前参与匹配的规则编码集合;将参与当前节点的匹配规则编码集合根据匹配结果,分别缓存到匹配通过的规则编码集合和匹配不通过的规则编码集合中;待当前节点所有匹配模式循环结束后,从缓存的匹配通过的规则编码集合中去掉在匹配不通过的规则编码集合中存在的规则编码,再将缓存的匹配通过的规则编码集合和匹配不通过的规则编码集合对应覆盖到匹配流转对象中的当前步骤匹配通过的规则编码集合和当前步骤匹配不通过的规则编码集合,再将匹配网络节点对象中的匹配步骤,覆盖到匹配流转对象中的匹配步骤;继续循环匹配网络节点对象,待所有匹配网络节点循环执行完成后,将记录的跳过步骤对象集合存入匹配流转对象中的跳过的步骤对象集合,结束规则匹配,返回匹配流转对象;
所述匹配结果处理模块:对规则匹配模块得到的匹配流转对象进行处理,得到匹配结果对象,所述匹配结果对象包括是否通过、动态表头和动态匹配规则数据;对匹配流转对象进行处理具体为:对匹配流转对象的属性进行判断,确定规则匹配是否通过;取出所有配置的规则元并按步骤排序,添加是否通过、规则编号和规则名称字段组装成动态表头,循环匹配流转对象中的当前步骤匹配通过的规则编码集合和表头,根据表头补全单条规则中的每个规则元数据和匹配情况;然后,处理匹配流转对象中的当前步骤匹配不通过的规则编码集合,将所有处理出来的结果集放到动态匹配规则数据中,返回匹配结果对象。
2.根据权利要求1所述的一种住房保障动态监管系统,其特征在于,所述匹配步骤的序号为数字,从1开始且不重复,重要性和过滤性越强的规则元匹配步骤配置的越靠前,对匹配性能的提升越高;规则元名称为住保数据接收存储对象属性中文名称;规则元编码为住保数据接收存储对象属性字段名。
3.根据权利要求1所述的一种住房保障动态监管系统,其特征在于,所述规则编码自动生成且唯一;所述是否启用控制该条规则是否在匹配中使用,所述管理主体为住房保障中心在系统中的标示,不同市或区级的管理主体,在有配置规则的情况下,仅使用从属于自己管理主体下的规则参与匹配,当自己管理主体下没有配置规则时,会使用省级管理主体下的默认规则配置;所述是否必验用于控制该匹配明细是否必须验证,主要针对匹配对象属性存在null的情况,非必验的明细遇到传入的匹配对象对应属性为null时,会跳过该明细,没有值即为不用匹配该明细,必验的明细,没有值则匹配失败。
4.根据权利要求1所述的一种住房保障动态监管系统,其特征在于,新增明细时先明确所属规则,默认写入所属规则的编码到明细的规则编码中,从规则元配置结果中选择规则元,绑定字典的规则元,匹配值只能从字典值中选取,未绑定字典的规则元,匹配值手动录入,匹配类型从配置中选择,运算类型根据匹配类型从配置中选择;同一规则下的明细可选择重复的规则元,用于配置不同的匹配类型、运算类型、匹配值和是否必验。
5.根据权利要求1所述的一种住房保障动态监管系统,其特征在于,所述匹配网络生成模块具体为:
步骤101:取出所有规则元;
步骤102:判断当前管理主体下是否配置规则;若是,取当前管理主体配置规则;若否,取省级管理主体默认配置规则;
步骤103:取与规则元编码匹配的所有规则下配置的明细;对同一规则元编码下的明细去重,并聚合所属规则编码组成匹配模型对象;
步骤104:根据对应规则元信息和匹配步骤组成匹配网络节点对象,返回步骤103直至所有规则元完成循环;
步骤105:得到每个规则元对应的匹配网络节点对象,汇总出按匹配步骤排序的匹配网络节点对象集合,即生成匹配网络;将匹配网络节点对象集合转换为JSON字符串,用管理主体id作为key后缀存入Redis。
6.根据权利要求1所述的一种住房保障动态监管系统,其特征在于,所述匹配流转对象中记录的是整个执行过程中跳过的步骤,最后一次执行的步骤和到这一步通过的和失败的规则编码集合。
7.根据权利要求1所述的一种住房保障动态监管系统,其特征在于,所述动态表头和动态匹配规则数据组合成动态列表,提供可视化展示页面,展示匹配结果。
8.根据权利要求1所述的一种住房保障动态监管系统,其特征在于,所述匹配情况包括跳过、通过和不通过三种情况;如果规则元对应步骤在跳过的步骤对象集合中,为跳过;如果规则元对应的步骤小于最后一次执行的步骤,为通过;如果该规则元对应的步骤等于最后一次执行的步骤,处理通过规则编码集合时为通过,处理未通过规则编码集合时为不通过;如果该规则元对应的步骤大于最后一次执行的步骤,说明没执行到该规则元,默认设置为跳过。
9.根据权利要求1所述的一种住房保障动态监管系统,其特征在于,所述规则匹配模块还包括验证匹配模式集合中有无匹配模式;无匹配模式,说明该节点没有明细配置,在匹配网络中属于未配置使用节点,跳过该节点,继续下轮循环;有匹配模式,循环匹配模式集合,用匹配模式对象中的所属规则编码集合,与上一步匹配通过的规则编码集合取交集,得到可当前参与匹配的规则编码集合,只有上一步节点匹配通过的规则,才能参与当前节点匹配,之后判断待匹配值是否为null,待匹配值为null时,且匹配模式对象是否必验属性为非必验时,将当前节点步骤和参与当前节点的匹配规则编码集合设置到跳过的步骤对象,存入跳过步骤对象集合,跳过当前匹配模式循环,待匹配值不为null时,根据匹配模式对象中的匹配类型和运算类型选择不同的匹配策略和计算方式,将待匹配值和匹配值进行匹配。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699251.3A CN113435731B (zh) | 2021-06-23 | 2021-06-23 | 一种住房保障动态监管系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699251.3A CN113435731B (zh) | 2021-06-23 | 2021-06-23 | 一种住房保障动态监管系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113435731A CN113435731A (zh) | 2021-09-24 |
CN113435731B true CN113435731B (zh) | 2022-07-01 |
Family
ID=77753637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110699251.3A Active CN113435731B (zh) | 2021-06-23 | 2021-06-23 | 一种住房保障动态监管系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113435731B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114115967A (zh) * | 2021-11-17 | 2022-03-01 | 南京苏宁电子信息技术有限公司 | 业务数据处理方法、装置、计算机设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618692A (zh) * | 2013-10-28 | 2014-03-05 | 中国航天科工集团第二研究院七〇六所 | 一种构建日志快速匹配的方法 |
CN103761330A (zh) * | 2014-02-10 | 2014-04-30 | 赛特斯信息科技股份有限公司 | 基于模版配置实现互联网信息自动提取的系统及方法 |
CN109191072A (zh) * | 2018-08-22 | 2019-01-11 | 王德生 | 一种住房保障网络监管系统及其监管方法 |
CN110428054A (zh) * | 2019-08-07 | 2019-11-08 | 浪潮云信息技术有限公司 | 基于编译技术的业务规则引擎模式匹配系统及实现方法 |
CN111782262A (zh) * | 2020-06-30 | 2020-10-16 | 平安国际智慧城市科技股份有限公司 | 数据动态发布方法、装置、系统、设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10305798B2 (en) * | 2016-06-21 | 2019-05-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Dynamic lookup optimization for packet classification |
-
2021
- 2021-06-23 CN CN202110699251.3A patent/CN113435731B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103618692A (zh) * | 2013-10-28 | 2014-03-05 | 中国航天科工集团第二研究院七〇六所 | 一种构建日志快速匹配的方法 |
CN103761330A (zh) * | 2014-02-10 | 2014-04-30 | 赛特斯信息科技股份有限公司 | 基于模版配置实现互联网信息自动提取的系统及方法 |
CN109191072A (zh) * | 2018-08-22 | 2019-01-11 | 王德生 | 一种住房保障网络监管系统及其监管方法 |
CN110428054A (zh) * | 2019-08-07 | 2019-11-08 | 浪潮云信息技术有限公司 | 基于编译技术的业务规则引擎模式匹配系统及实现方法 |
CN111782262A (zh) * | 2020-06-30 | 2020-10-16 | 平安国际智慧城市科技股份有限公司 | 数据动态发布方法、装置、系统、设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
GIS与MIS相结合实现社会保障性住房管理信息化;宋跃明;《科技资讯》;20130523(第15期);20-22 * |
省级住房保障管理信息系统的设计与应用;杨永娟;《安徽理工大学学报(自然科学版)》;20150915(第03期);71-76 * |
Also Published As
Publication number | Publication date |
---|---|
CN113435731A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112199366B (zh) | 数据表处理方法、装置及设备 | |
CN104679807B (zh) | 基于图的计算中的数据日志记录 | |
CN111190881A (zh) | 一种数据治理方法和系统 | |
CN106682097A (zh) | 一种处理日志数据的方法和装置 | |
CN109656802B (zh) | 基于高耦合自动匹配技术的测试用例设计系统 | |
CN103473672A (zh) | 企业级数据中心的元数据质量稽核系统、方法及平台 | |
JP2007213592A (ja) | 文字処理装置、方法、プログラムおよび記録媒体 | |
AU2012217093B2 (en) | Method, system and computer program to provide fares detection from rules attributes | |
CN112948429B (zh) | 一种数据报送方法、装置和设备 | |
CN110020063A (zh) | 垂直搜索方法和系统 | |
US20210334292A1 (en) | System and method for reconciliation of data in multiple systems using permutation matching | |
CN106682099A (zh) | 一种数据的存储方法和装置 | |
CN113435731B (zh) | 一种住房保障动态监管系统 | |
CN117033460B (zh) | 一种基于总线矩阵的数据模型自动构建系统及方法 | |
CN114398194A (zh) | 数据收集方法、装置、电子设备及可读存储介质 | |
CN110457332A (zh) | 一种信息处理方法及相关设备 | |
CN107368500A (zh) | 数据抽取方法及系统 | |
CN103455871B (zh) | 资源调度系统及方法 | |
WO2019203693A1 (ru) | Способ проектирования топологии информационного пространства информационно-управляющей системы | |
JP2010072876A (ja) | ルール作成プログラム、ルール作成方法及びルール作成装置 | |
CN113031835A (zh) | 一种菜单数据处理方法及装置 | |
CN113485987A (zh) | 企业信息标签生成方法及装置 | |
CN112163840A (zh) | 工作流的定义方法、实例的跨地域管理方法和设备 | |
CN110837365A (zh) | 一种基于词根表的脚本辅助设计方法及装置 | |
CN116485427B (zh) | 一种面向全球民航客票燃油附加费实时计算的预处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |