CN115456327A - 基于ymal配置文件的链式指标计算方法、装置、电子设备 - Google Patents
基于ymal配置文件的链式指标计算方法、装置、电子设备 Download PDFInfo
- Publication number
- CN115456327A CN115456327A CN202210910748.XA CN202210910748A CN115456327A CN 115456327 A CN115456327 A CN 115456327A CN 202210910748 A CN202210910748 A CN 202210910748A CN 115456327 A CN115456327 A CN 115456327A
- Authority
- CN
- China
- Prior art keywords
- list
- matching
- subject
- target
- engineering information
- 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.)
- Pending
Links
- 238000004364 calculation method Methods 0.000 title claims abstract description 86
- 238000010276 construction Methods 0.000 claims abstract description 47
- 238000000034 method Methods 0.000 claims abstract description 42
- 238000013507 mapping Methods 0.000 claims description 28
- 238000004891 communication Methods 0.000 claims description 19
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008878 coupling Effects 0.000 abstract description 12
- 238000010168 coupling process Methods 0.000 abstract description 12
- 238000005859 coupling reaction Methods 0.000 abstract description 12
- 238000005516 engineering process Methods 0.000 abstract description 7
- 230000014509 gene expression Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000000926 separation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 230000001915 proofreading effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002093 peripheral effect Effects 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/0639—Performance analysis of employees; Performance analysis of enterprise or organisation operations
- G06Q10/06393—Score-carding, benchmarking or key performance indicator [KPI] analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2468—Fuzzy queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/08—Construction
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Strategic Management (AREA)
- Marketing (AREA)
- Mathematical Physics (AREA)
- Databases & Information Systems (AREA)
- Educational Administration (AREA)
- Development Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Data Mining & Analysis (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Computational Linguistics (AREA)
- Fuzzy Systems (AREA)
- Operations Research (AREA)
- Probability & Statistics with Applications (AREA)
- Automation & Control Theory (AREA)
- Quality & Reliability (AREA)
- Game Theory and Decision Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供了一种基于YMAL配置文件的链式指标计算方法、装置、电子设备,其中,该方法包括:接收建筑项目工程信息;将建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;在确定建筑项目工程信息与预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用目标规则计算建筑项目工程信息中包含的各项指标,得到指标计算结果。通过本申请,解决了相关技术中存在的人工计算耗时长,计算效率低下及错误率高,同时匹配逻辑与实现逻辑硬编码,代码耦合性高,地区上新匹配服务横向扩展性不好的问题。
Description
技术领域
本申请涉及工程建筑造价领域,尤其涉及一种基于YMAL配置文件的链式指标计算方法、装置、电子设备。
背景技术
工程造价人员使用excel计算指标,每个工程的计算需要几天长达一周的时间才能计算完成,并且在人工的计算过程中,可能存在计算错误的情况,需要校对验证;同时由于每个省的计价文件清单的编制依据不同,需要不同的计算服务和清单匹配服务,同一个省份地区也存在多种不同的计价编制依据,造成了需求存在地区特性多样化。
随着用户对指标计算速度要求的提高,单纯的靠pc端计算无法满足客户对计算速度的要求,采用端+云的方式计算指标,由客户端上传基础数据,云端采用计算密集型服务器提供多节点指标匹配计算服务,计算完成后下发至客户端展示指标结果。客户端解析计价工程文件采用多线程的方式解析,提供解析速度。客户端上传数据,采用多线程方式,数据采用先压缩后base64加密后,以json方式上传到后端服务器,减少上传数据包大小,提高上传速度。后端计算服务采用多节点多线程并发进行匹配和计算。
但是相关技术中存在人工计算耗时长,计算效率低下及错误率高,同时匹配逻辑与实现逻辑硬编码,代码耦合性高,地区上新匹配服务横向扩展性不好的问题。
发明内容
本申请提供了一种基于YMAL配置文件的链式指标计算方法、装置、电子设备,以至少解决相关技术中存在人工计算耗时长,计算效率低下及错误率高,同时匹配逻辑与实现逻辑硬编码,代码耦合性高,地区上新匹配服务横向扩展性不好的问题。
根据本申请实施例的一个方面,提供了一种基于YMAL配置文件的链式指标计算方法,该方法包括:
接收建筑项目工程信息;
将所述建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;
在确定所述建筑项目工程信息与所述预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用所述目标规则计算所述建筑项目工程信息中包含的各项指标,得到指标计算结果。
根据本申请实施例的另一个方面,还提供了一种基于YMAL配置文件的链式指标计算装置,该装置包括:
接收模块,用于接收建筑项目工程信息;
第一匹配模块,用于将所述建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;
计算模块,用于在确定所述建筑项目工程信息与所述预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用所述目标规则计算所述建筑项目工程信息中包含的各项指标,得到指标计算结果。
可选地,匹配模块包括:
第一获取单元,用于获取所述建筑项目工程信息中的清单列表内包含的第一关键字、所述预设规则内包含的第二关键字;
第一匹配单元,用于将所述第一关键字与所述第二关键字进行匹配。
可选地,计算模块包括:
第二获取单元,用于获取科目列表,其中,所述科目列表上存储有匹配规则,每个科目表征一种工程材料;
第一得到单元,用于将所述匹配规则与所述预设规则进行匹配,得到每个科目与所述预设规则之间的第一映射关系;
第二得到单元,用于根据所述清单列表与所述预设规则的匹配情况,得到第二映射关系;
第三得到单元,用于根据所述第二映射关系,得到所述清单列表内每个清单所匹配到的科目和所述科目对应的指标。
可选地,该装置还包括:
第一确定模块,用于在所述根据所述第二映射关系,得到所述清单列表内每个清单所匹配到的科目之后,在确定所述清单列表内存在一目标清单匹配上至少两个参考科目的情况下,依据所述参考科目的清单名称和特征关键字确定出唯一的目标科目。
可选地,该装置还包括:
第二匹配模块,用于在所述依据所述参考科目的清单名称和特征关键字确定出唯一的目标科目之后,在依据所述参考科目的清单名称和特征关键字未确定出唯一的所述目标科目的情况下,根据清单的单位名称和单项名称的关键字去匹配到唯一的所述目标科目。
可选地,该装置还包括:
第三匹配模块,用于在所述根据清单的单位名称和单项名称的关键字去匹配到唯一的所述目标科目之后,在根据清单的单位名称和单项名称的关键字未匹配到唯一的所述目标科目的情况下,判断各个科目的优先级,将优先级高于其他科目的目标科目优先匹配。
可选地,该装置还包括:
第一获取模块,用于在所述根据所述第二映射关系,得到所述清单列表内每个清单所匹配到的科目之后,在确定所述清单列表内存在一目标清单未匹配到任一所述科目的情况下,获取所述目标清单上的目标关键字;
第五匹配模块,用于在确定存在一目标科目中的清单的名称、特征关键字包含所述目标关键字或者单位单项名称中包含所述目标关键字,且不包含黑名单的关键字,则将所述目标清单匹配到所述目标科目上。
可选地,该装置还包括:
第二获取模块,用于在所述根据所述第二映射关系,得到所述清单列表内每个清单所匹配到的科目之后,获取每个清单上的工程量和综合合价,并将所述工程量和综合合价累加到匹配到的科目上;
汇总模块,用于将所述各个科目上的所述工程量和综合合价向上汇总到父级科目上。
根据本申请实施例的又一个方面,还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器、通信接口和存储器通过通信总线完成相互间的通信;其中,存储器,用于存储计算机程序;处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行上述任一实施例中的方法步骤。
根据本申请实施例的又一个方面,还提供了一种计算机可读的存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一实施例中的方法步骤。
在本申请实施例中,通过接收建筑项目工程信息;将建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;在确定建筑项目工程信息与预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用目标规则计算建筑项目工程信息中包含的各项指标,得到指标计算结果。由于本申请实施例利用YMAL配置文件实现匹配逻辑与实现逻辑分离,更低的代码耦合性,可读性更强,计算速度快而且可以横向扩展,同时由于YMAL配置文件是可插拔的链式服务,相比较一个服务,开发代码方便,部署服务方便,进而解决了相关技术中存在的人工计算耗时长,计算效率低下及错误率高,同时匹配逻辑与实现逻辑硬编码,代码耦合性高,地区上新匹配服务横向扩展性不好的问题。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本申请实施例的一种可选的基于YMAL配置文件的链式指标计算方法的流程示意图;
图2是根据本申请实施例的一种需求转化提取示意图;
图3是根据本申请实施例的一种针对A地区识别规则的示例性展示;
图4是根据本申请实施例的一种可选的基于YMAL配置文件的系统模块构成图;
图5是根据本申请实施例的一种可选的匹配整体流程示意图;
图6是根据本申请实施例的一种可选的基于YMAL配置文件的链式指标计算装置的结构框图;
图7是根据本申请实施例的一种可选的电子设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
工程造价人员使用excel计算指标,每个工程的计算需要几天长达一周的时间才能计算完成,并且在人工的计算过程中,可能存在计算错误的情况,需要校对验证;同时由于每个省的计价文件清单的编制依据不同,需要不同的计算服务和清单匹配服务,同一个省份地区也存在多种不同的计价编制依据,造成了需求存在地区特性多样化。
相关技术中利用客户端上传数据,采用多线程方式,数据采用先压缩后base64加密后,以json方式上传到后端服务器,后端计算服务采用多节点多线程并发进行匹配和计算的方式计算指标,但是这通常带来人工计算耗时长,计算效率低下及错误率高,同时匹配逻辑与实现逻辑硬编码,代码耦合性高,地区上新匹配服务横向扩展性不好的问题。为了解决上述问题,本申请实施例提出一种基于YMAL配置文件的链式指标计算方法,如图1所示,该方法应用于服务器,可以是云端服务器,该方法包括:
步骤S101,接收建筑项目工程信息;
步骤S102,将建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;
步骤S103,在确定建筑项目工程信息与预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用目标规则计算建筑项目工程信息中包含的各项指标,得到指标计算结果。
可选地,在本申请实施例中,还会涉及到一个终端侧,称为客户端侧,该客户端与服务器之间相互传输和配合,以使得服务器得到指标计算结果。
具体地,步骤1:客户端启动时,发送请求至后端服务器获取用户及默认的所有模板信息,业态信息,口径信息。
步骤2:客户端解析GBQ工程数据文件,先解析结构信息,然后上传数据到服务端。然后解析单位工程信息。
步骤3:客户端多线程解析单位工程GBQ文件,边解析边上传单项数据到服务端。数据进行先压缩后base64加密上传。
步骤4:云端服务解析客户端上传的结构信息和单位工程信息,先base64解密后解压。
步骤5:云端服务解压数据完成后,多线程对10张基础表的数据进行保存操作,先将每张表的数据转成压缩字节码保存到redis缓存中,以项目UUID和单位工程UUID作为key,保存到缓存后,异步保存数据到mysql数据库。
步骤6:用户需要更改数据时,会通过客户端界面输入建筑项目工程信息,包括业态信息,口径信息,同时上传模板信息,之后点击下一步时,将这些信息上传到云端服务器,云端服务器将数据先缓存到redis后异步保存数据到mysql。
步骤7:客户端根据单项工程和模板多线程发起计算请求。
步骤8:云端服务器接收到计算请求后,进行异步计算,包括:
1):根据单项工程UUID查询所包含的所有单位工程,根据单位工程UUID在redis中查询分部分项清单数据、措施项清单数据、费用汇总数据等基础数据,放置到计算上下文中,以备后面模板计算和匹配用。
2):根据模板UUID进行多线程计算(成本指标(含量指标),经济指标,主要工程量指标,主要材料指标)。
3):根据模板类型查询计算服务配置表获取对应的匹配服务和计算服务列表。
步骤9:云端服务器将获得的建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;其中,YMAL配置文件可以将多个预设规则进行分组,得到匹配组,然后匹配组中包含表达式组,然后表达式组内包含表达式,需要说明的是表达式其实是规则表达式,包括前缀匹配规则表达式、模糊匹配规则表达式、完全匹配规则表达式等。
另外,在进行YMAL配置文件中的多个预设规则匹配之前,需要了解到,本申请实施例是采用YMAL文件,按照仿Elasticsearch语法将传统指标计算方法中的原始需求转化提取(如图2所示的需求转化提取示意图,包含了原始需求中匹配分成多个部分转化为组的概念、原始需求中每个部分需要匹配判断转化为组中的匹配表达式、原始需求中部分之间的优先级转化为组间权重概念、原始需求中每个部分中判断表达式优先级转化为表达式优先级、原始需求中每个部分中判断表达式有黑名单转化为表达式间逻辑连接),采用设计模式思想进行规则、计算服务的选择并执行匹配,完成指标计算。
举例说明,如图3所示,图3是针对A地区识别规则。其中,设计方案(如图3的上半部分),然后基于设计方案得到6种预设规则的识别匹配顺序(如图3的下半部分)。
步骤10:云端服务器将建筑项目工程信息与预设规则进行匹配,若预设规则中存在一目标规则与当前客户端输入的建筑项目工程信息的匹配权重大于预设阈值,则利用目标规则计算建筑项目工程信息中包含的各项指标,得到指标计算结果。
步骤11:计算完成,将计算状态及计算结果保存到redis中,并异步保存计算结果到mysql。
步骤12:客户端查询计算状态为完成时,调用查询计算结果接口,服务端返回计算结果。
步骤13:客户端展示各指标计算结果。
另外,如图4所示,图4是根据本申请实施例的一种可选的基于YMAL配置文件的系统模块构成图,具体地,基于YMAL配置文件可插拔的链式指标云计算系统执行两项功能,其中一种功能为将各地区用户、造价站人员、工程咨询公司人员等的工程文件向指标结果展示子系统导入,另一种功能为云端计算匹配服务链节点集群的计算。
然后指标结果展示子系统内包含工程数据解析上传模块、数据基本信息调整模块、造价指标结果展示模块,其中,工程数据解析上传模块用于对接收到的工程文件进行工程数据的解析,同时用户可以利用数据基本信息调整模块进行输入信息的调整,然后造价指标结果展示模块用于接收云端计算匹配服务链节点集群中的计算结果进行结果展示,而在云端计算匹配服务链节点集群中包括多个节点,这样可以通过在横向扩展中,增加云端服务器节点或者服务器配置来适应不断增长的用户群,其中,每个节点包括4个模块,分别是计算服务、匹配服务、YMAL文件管理模块、传输交互模块,其中,YMAL文件管理模块与匹配服务相互配合,得到匹配结果,再输入计算服务,计算服务将计算结果给到传输交互模块,传输交互模块将计算结果传输给造价指标结果展示模块的。
在本申请实施例中,通过接收建筑项目工程信息;将建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;在确定建筑项目工程信息与预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用目标规则计算建筑项目工程信息中包含的各项指标,得到指标计算结果。由于本申请实施例利用YMAL配置文件实现匹配逻辑与实现逻辑分离,更低的代码耦合性,可读性更强,计算速度快而且可以横向扩展,同时由于YMAL配置文件是可插拔的链式服务,相比较一个服务,开发代码方便,部署服务方便,进而解决了相关技术中存在的人工计算耗时长,计算效率低下及错误率高,同时匹配逻辑与实现逻辑硬编码,代码耦合性高,地区上新匹配服务横向扩展性不好的问题。
作为一种可选实施例,将建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配包括:
获取建筑项目工程信息中的清单列表内包含的第一关键字、预设规则内包含的第二关键字;
将第一关键字与第二关键字进行匹配。
可选地,在进行建筑项目工程信息与YMAL配置文件中的多个预设规则匹配过程中,可以通过设置关键字的方式,比如建筑项目工程信息中的清单列表设置关键字:第一关键字,预设规则内设置关键字:第二关键字,然后基于第一关键字与第二关键字进行匹配。
作为一种可选实施例,利用目标规则计算建筑项目工程信息中包含的各项指标包括:
获取科目列表,其中,科目列表上存储有匹配规则,每个科目表征一种工程材料;
将匹配规则与预设规则进行匹配,得到每个科目与预设规则之间的第一映射关系;
根据清单列表与预设规则的匹配情况,得到第二映射关系;
根据第二映射关系,得到清单列表内每个清单所匹配到的科目和科目对应的指标。
可选地,将分部分项清单和措施项清单转为以清单前9位为key,前9位相同的清单集合为value的map。
获取并循环科目列表,其中,科目列表内包含多个科目,每个科目代表一种工程材料,比如混凝土。然后调用匹配方法(异步多线程),获取科目列表上存储的匹配规则,循环预设规则列表,将匹配规则与预设规则进行匹配,得到每个科目与预设规则之间的第一映射关系;根据清单列表与预设规则的匹配情况,得到第二映射关系;根据第二映射关系以及通过map中的key获取清单列列表,然后得到该清单列表内每个清单所匹配到的科目,再基于这些科目确定对应的指标。
作为一种可选实施例,在根据第二映射关系,得到清单列表内每个清单所匹配到的科目之后,方法还包括:
在确定清单列表内存在一目标清单匹配上至少两个参考科目的情况下,依据参考科目的清单名称和特征关键字确定出唯一的目标科目。
在依据参考科目的清单名称和特征关键字未确定出唯一的目标科目的情况下,根据清单的单位名称和单项名称的关键字去匹配到唯一的目标科目。
在根据清单的单位名称和单项名称的关键字未匹配到唯一的目标科目的情况下,判断各个科目的优先级,将优先级高于其他科目的目标科目优先匹配。
可选地,循环清单列表,查看清单列表中的清单是否已经匹配上科目。进一步地,如果已经匹配上科目,说明清单列表内存在一目标清单匹配上至少两个参考科目,则:
A:查看当前匹配上的第一参考科目和已经匹配上的第二参考科目的清单名称和特征关键字,优先匹配到哪个科目上,得到唯一的目标科目,可以得知的是,目标科目一定是第一参考科目或第二参考科目之一。
B:如果在A中不能判断匹配到唯一的目标科目上,则根据清单的单位名称和单项名称的关键字去判断匹配到哪个科目上。
C:如果B中也无法判断唯一的目标科目,则判断各个科目的优先级,优先级高的,比如目标科目,则优先匹配。
如果ABC中对当前科目成立则更改匹配关系,否则不更改。
作为一种可选实施例,在根据第二映射关系,得到清单列表内每个清单所匹配到的科目之后,方法还包括:
在确定清单列表内存在一目标清单未匹配到任一科目的情况下,获取目标清单上的目标关键字;
在确定存在一目标科目中的清单的名称、特征关键字包含目标关键字或者单位单项名称中包含目标关键字,且不包含黑名单的关键字,则将目标清单匹配到目标科目上。
可选地,如果存在在一目标清单未匹配到任一科目,则获取目标清单上的目标关键字,然后查看是否存在一目标科目中的清单的名称、特征关键字包含目标关键字或者单位单项名称中包含目标关键字,且该目标科目还不包含黑名单的关键字,若存在,则将该目标清单匹配到目标科目上,记录清单科目匹配关系。
作为一种可选实施例,在根据第二映射关系,得到清单列表内每个清单所匹配到的科目之后,方法还包括:
获取每个清单上的工程量和综合合价,并将工程量和综合合价累加到匹配到的科目上;
将各个科目上的工程量和综合合价向上汇总到父级科目上。
可选地,匹配完成后,基于匹配关系列表,利用科目编码找到对应的科目对象,然后根据清单UUID找到对应的清单对象,将每个清单上的工程量和综合合价累加到匹配到的科目上。
需要说明的是,整个科目结构可以是以树状图进行展现的,所以,通常是先匹配到树状图的叶子科目,计算好每个叶子科目的综合合价和工程量,然后根据规则配置是否向上汇总,再汇总到父级科目。
根据匹配到的目标规则上的计算公式,计算对应的计算结果,例如单方造价,占造价比例等。
作为一种可选实施例,如图5所示,图5是根据本申请实施例的一种可选的匹配整体流程示意图,该匹配过程适用于上述各个实施例的字段匹配,具体为:
开始;
程序启动加载YMAL模板,解析成对应的实体;
进行数据封装;
获取清单数据;
获取匹配规则;
创建匹配索引;
遍历清单;
遍历匹配组;
将组中规则按权重降序排序;
按字段映射关系从索引中拿取匹配规则列表;
查看匹配规则列表是否为空;
若为空,则循环下一匹配规则;
若不为空,则按剩余匹配规则匹配其他字段,执行循环匹配规则;
判断匹配权重是否小于阈值权重;
若小于,则跳过当前的匹配规则;
若大于,则按匹配规则其他字段匹配,判断匹配后的匹配权重是否大于阈值权重;
若大于阈值权重,则返回当前匹配规则;
获取匹配权重最大的匹配规则;
封装到匹配列表;
返回结果列表;
结束。
若小于阈值权重,则获取清单类型对应其他科目;
封装到未匹配到科目;
返回结果列表;
结束。
需要说明的是,这里的匹配权重可以理解为相似度权重,阈值权重可以理解为是否跳过当前匹配规则的临界值。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM(Read-Only Memory,只读存储器)/RAM(Random Access Memory,随机存取存储器)、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述基于YMAL配置文件的链式指标计算方法的基于YMAL配置文件的链式指标计算装置。图6是根据本申请实施例的一种可选的基于YMAL配置文件的链式指标计算装置的结构框图,如图6所示,该装置可以包括:
接收模块601,用于接收建筑项目工程信息;
第一匹配模块602,用于将建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;
计算模块603,用于在确定建筑项目工程信息与预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用目标规则计算建筑项目工程信息中包含的各项指标,得到指标计算结果。
需要说明的是,该实施例中的接收模块601可以用于执行上述步骤S101,该实施例中的第一匹配模块602可以用于执行上述步骤S102,该实施例中的计算模块603可以用于执行上述步骤S103。
通过上述模块,利用YMAL配置文件实现匹配逻辑与实现逻辑分离,更低的代码耦合性,可读性更强,计算速度快而且可以横向扩展,同时由于YMAL配置文件是可插拔的链式服务,相比较一个服务,开发代码方便,部署服务方便,进而解决了相关技术中存在的人工计算耗时长,计算效率低下及错误率高,同时匹配逻辑与实现逻辑硬编码,代码耦合性高,地区上新匹配服务横向扩展性不好的问题。
作为一种可选的实施例,匹配模块包括:
第一获取单元,用于获取建筑项目工程信息中的清单列表内包含的第一关键字、预设规则内包含的第二关键字;
第一匹配单元,用于将第一关键字与第二关键字进行匹配。
作为一种可选的实施例,计算模块包括:
第二获取单元,用于获取科目列表,其中,科目列表上存储有匹配规则,每个科目表征一种工程材料;
第一得到单元,用于将匹配规则与预设规则进行匹配,得到每个科目与预设规则之间的第一映射关系;
第二得到单元,用于根据清单列表与预设规则的匹配情况,得到第二映射关系;
第三得到单元,用于根据第二映射关系,得到清单列表内每个清单所匹配到的科目和科目对应的指标。
作为一种可选的实施例,该装置还包括:
第一确定模块,用于在根据第二映射关系,得到清单列表内每个清单所匹配到的科目之后,在确定清单列表内存在一目标清单匹配上至少两个参考科目的情况下,依据参考科目的清单名称和特征关键字确定出唯一的目标科目。
作为一种可选的实施例,该装置还包括:
第二匹配模块,用于在依据参考科目的清单名称和特征关键字确定出唯一的目标科目之后,在依据参考科目的清单名称和特征关键字未确定出唯一的目标科目的情况下,根据清单的单位名称和单项名称的关键字去匹配到唯一的目标科目。
作为一种可选的实施例,该装置还包括:
第三匹配模块,用于在根据清单的单位名称和单项名称的关键字去匹配到唯一的目标科目之后,在根据清单的单位名称和单项名称的关键字未匹配到唯一的目标科目的情况下,判断各个科目的优先级,将优先级高于其他科目的目标科目优先匹配。
作为一种可选的实施例,该装置还包括:
第一获取模块,用于在根据第二映射关系,得到清单列表内每个清单所匹配到的科目之后,在确定清单列表内存在一目标清单未匹配到任一科目的情况下,获取目标清单上的目标关键字;
第五匹配模块,用于在确定存在一目标科目中的清单的名称、特征关键字包含目标关键字或者单位单项名称中包含目标关键字,且不包含黑名单的关键字,则将目标清单匹配到目标科目上。
作为一种可选的实施例,该装置还包括:
第二获取模块,用于在根据第二映射关系,得到清单列表内每个清单所匹配到的科目之后,获取每个清单上的工程量和综合合价,并将工程量和综合合价累加到匹配到的科目上;
汇总模块,用于将各个科目上的工程量和综合合价向上汇总到父级科目上。
根据本申请实施例的又一个方面,还提供了一种用于实施上述基于YMAL配置文件的链式指标计算方法的电子设备,该电子设备可以是服务器、终端、或者其组合。
图7是根据本申请实施例的一种可选的电子设备的结构框图,如图7所示,包括处理器701、通信接口702、存储器703和通信总线704,其中,处理器701、通信接口702和存储器703通过通信总线704完成相互间的通信,其中,
存储器703,用于存储计算机程序;
处理器701,用于执行存储器703上所存放的计算机程序时,实现如下步骤:
接收建筑项目工程信息;
将建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;
在确定建筑项目工程信息与预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用目标规则计算建筑项目工程信息中包含的各项指标,得到指标计算结果。
可选地,在本实施例中,上述的通信总线可以是PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线、或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括RAM,也可以包括非易失性存储器(non-volatile memory),例如,至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。
作为一种示例,如图7所示,上述存储器703中可以但不限于包括上述基于YMAL配置文件的链式指标计算装置中的接收模块601、第一匹配模块602、计算模块603。此外,还可以包括但不限于上述基于YMAL配置文件的链式指标计算装置中的其他模块单元,本示例中不再赘述。
上述处理器可以是通用处理器,可以包含但不限于:CPU(Central ProcessingUnit,中央处理器)、NP(Network Processor,网络处理器)等;还可以是DSP(DigitalSignal Processing,数字信号处理器)、ASIC(Application Specific IntegratedCircuit,专用集成电路)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
此外,上述电子设备还包括:显示器,用于显示基于YMAL配置文件的链式指标计算结果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图7所示的结构仅为示意,实施上述基于YMAL配置文件的链式指标计算方法的设备可以是终端设备,该终端设备可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图7其并不对上述电子设备的结构造成限定。例如,终端设备还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示的不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、ROM、RAM、磁盘或光盘等。
根据本申请实施例的又一个方面,还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行基于YMAL配置文件的链式指标计算方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
接收建筑项目工程信息;
将建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;
在确定建筑项目工程信息与预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用目标规则计算建筑项目工程信息中包含的各项指标,得到指标计算结果。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例中对此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、ROM、RAM、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
根据本申请实施例的又一个方面,还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中;计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述任一个实施例中的基于YMAL配置文件的链式指标计算方法步骤。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例基于YMAL配置文件的链式指标计算方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例中所提供的方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种基于YMAL配置文件的链式指标计算方法,其特征在于,所述方法包括:
接收建筑项目工程信息;
将所述建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;
在确定所述建筑项目工程信息与所述预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用所述目标规则计算所述建筑项目工程信息中包含的各项指标,得到指标计算结果。
2.根据权利要求1所述的方法,其特征在于,所述将所述建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配包括:
获取所述建筑项目工程信息中的清单列表内包含的第一关键字、所述预设规则内包含的第二关键字;
将所述第一关键字与所述第二关键字进行匹配。
3.根据权利要求2所述的方法,其特征在于,所述利用所述目标规则计算所述建筑项目工程信息中包含的各项指标包括:
获取科目列表,其中,所述科目列表上存储有匹配规则,每个科目表征一种工程材料;
将所述匹配规则与所述预设规则进行匹配,得到每个科目与所述预设规则之间的第一映射关系;
根据所述清单列表与所述预设规则的匹配情况,得到第二映射关系;
根据所述第二映射关系,得到所述清单列表内每个清单所匹配到的科目和所述科目对应的指标。
4.根据权利要求3所述的方法,其特征在于,在所述根据所述第二映射关系,得到所述清单列表内每个清单所匹配到的科目之后,所述方法还包括:
在确定所述清单列表内存在一目标清单匹配上至少两个参考科目的情况下,依据所述参考科目的清单名称和特征关键字确定出唯一的目标科目。
5.根据权利要求4所述的方法,其特征在于,在所述依据所述参考科目的清单名称和特征关键字确定出唯一的目标科目之后,所述方法还包括:
在依据所述参考科目的清单名称和特征关键字未确定出唯一的所述目标科目的情况下,根据清单的单位名称和单项名称的关键字去匹配到唯一的所述目标科目。
6.根据权利要求5所述的方法,其特征在于,在所述根据清单的单位名称和单项名称的关键字去匹配到唯一的所述目标科目之后,所述方法还包括:
在根据清单的单位名称和单项名称的关键字未匹配到唯一的所述目标科目的情况下,判断各个科目的优先级,将优先级高于其他科目的目标科目优先匹配。
7.根据权利要求3至5任一所述的方法,其特征在于,在所述根据所述第二映射关系,得到所述清单列表内每个清单所匹配到的科目之后,所述方法还包括:
在确定所述清单列表内存在一目标清单未匹配到任一所述科目的情况下,获取所述目标清单上的目标关键字;
在确定存在一目标科目中的清单的名称、特征关键字包含所述目标关键字或者单位单项名称中包含所述目标关键字,且不包含黑名单的关键字,则将所述目标清单匹配到所述目标科目上。
8.根据权利要求3所述的方法,其特征在于,在所述根据所述第二映射关系,得到所述清单列表内每个清单所匹配到的科目之后,所述方法还包括:
获取每个清单上的工程量和综合合价,并将所述工程量和综合合价累加到匹配到的科目上;
将所述各个科目上的所述工程量和综合合价向上汇总到父级科目上。
9.一种基于YMAL配置文件的链式指标计算装置,其特征在于,所述装置包括:
接收模块,用于接收建筑项目工程信息;
第一匹配模块,用于将所述建筑项目工程信息与YMAL配置文件中的多个预设规则进行匹配;
计算模块,用于在确定所述建筑项目工程信息与所述预设规则中存在的目标规则的匹配权重大于预设阈值之后,利用所述目标规则计算所述建筑项目工程信息中包含的各项指标,得到指标计算结果。
10.一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口和所述存储器通过所述通信总线完成相互间的通信,其特征在于,
所述存储器,用于存储计算机程序;
所述处理器,用于通过运行所述存储器上所存储的所述计算机程序来执行权利要求1至8中任一项所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210910748.XA CN115456327A (zh) | 2022-07-29 | 2022-07-29 | 基于ymal配置文件的链式指标计算方法、装置、电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210910748.XA CN115456327A (zh) | 2022-07-29 | 2022-07-29 | 基于ymal配置文件的链式指标计算方法、装置、电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115456327A true CN115456327A (zh) | 2022-12-09 |
Family
ID=84296384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210910748.XA Pending CN115456327A (zh) | 2022-07-29 | 2022-07-29 | 基于ymal配置文件的链式指标计算方法、装置、电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115456327A (zh) |
-
2022
- 2022-07-29 CN CN202210910748.XA patent/CN115456327A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102053992A (zh) | 聚类方法和系统 | |
CN108733317B (zh) | 数据存储方法和装置 | |
CN110704677A (zh) | 一种节目推荐方法、装置、可读存储介质及终端设备 | |
CN102682017B (zh) | 一种信息检索方法和系统 | |
CN112307369A (zh) | 一种短链接处理方法、装置、终端及存储介质 | |
CN110209921B (zh) | 媒体资源的推送方法和装置、以及存储介质和电子装置 | |
CN112351088A (zh) | 一种cdn缓存方法、装置、计算机设备及存储介质 | |
CN114327857A (zh) | 操作数据处理方法、装置、计算机设备和存储介质 | |
CN112380299A (zh) | 关系网络构建方法、装置及存储介质 | |
CN103778188A (zh) | 用于在库文件中查询和/或维护数据的方法和设备 | |
CN111198961A (zh) | 商品搜索方法、装置及服务器 | |
CN112749258A (zh) | 数据搜索的方法和装置、电子设备和存储介质 | |
CN111159515B (zh) | 数据处理方法、装置及电子设备 | |
CN113011886A (zh) | 帐号类型的确定方法和装置及电子设备 | |
CN110737691B (zh) | 用于处理访问行为数据的方法和装置 | |
CN112561636A (zh) | 一种推荐方法、装置、终端设备及介质 | |
CN112650777A (zh) | 数据仓库的制作方法、装置、终端设备及计算机存储介质 | |
CN115456327A (zh) | 基于ymal配置文件的链式指标计算方法、装置、电子设备 | |
CN110888863A (zh) | 一种状态字段优化方法、装置、电子设备及存储介质 | |
CN111367634A (zh) | 信息处理方法、信息处理装置及终端设备 | |
CN114398546A (zh) | 菜品的推荐方法和装置、存储介质、电子装置 | |
CN110928667B (zh) | 一种任务调度方法、装置、电子设备及存储介质 | |
CN111984839A (zh) | 绘制用户画像的方法和装置 | |
CN111311329B (zh) | 标签数据获取方法、装置、设备及可读存储介质 | |
CN111611245B (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 |