System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及数据查询,具体涉及一种员工报表数据查询方法、系统、设备及存储介质。
技术介绍
1、人力资源管理平台用户有大量的员工报表数据查询的诉求,需要将员工的全字段(系统预置字段+用户自定义字段)都要在报表中呈现,且要求能够自定义筛选条件,列表展现指定的列,可以做到报表数据自定义配置。传统做法是将一个员工的数据以json大文本格式存储在mysql数据库中,每次报表查询的时候,需要将所有的员工数据查询到系统内存中,在内存过滤筛选且分页后给客户呈现。这样会有几个问题:(1)无论是否是用户需要的员工和列都要加载的内存中,内存开销较大,容易内存溢出;(2)数据库请求压力较大;(3)接口响应较慢,用户体验较差。
技术实现思路
1、为此,本专利技术提供一种员工报表数据查询方法、系统、设备及存储介质,以解决现有员工报表数据查询方法存在的内存开销大,数据库请求压力大,数据响应慢的问题。
2、为了实现上述目的,本专利技术提供如下技术方案:
3、根据本专利技术实施例的第一方面,提出一种员工报表数据查询方法,所述方法包括:
4、将每个员工的报表数据以单独json文档的数据格式存储在mongodb数据库,其中每条员工报表数据均包含多个字段的数据;
5、根据用户查询请求生成查询语句,在mongodb数据库中执行所述查询语句,获取目标员工以及目标字段的数据并导入内存;
6、将查询到的目标员工以及目标字段的数据分别作为报表的行和列信息并进行报表渲染,
7、进一步的,将每个员工的报表数据以单独json文档的数据格式存储在mongodb数据库,具体包括:
8、将mysql数据库中存储的员工数据同步至mongodb数据库,其中mysql数据库中员工数据以json大文本格式存储,将json大文本数据转换为mongodb的json文档格式。
9、进一步的,每条员工报表数据均包含多个字段的数据,具体包括:
10、所述字段包括字母形式的系统预置字段以及uuid形式的用户自定义字段。
11、进一步的,所述员工报表数据包括基础信息、岗位信息、教育经历、培训经历、证书、联系人、自定义字段值,所述岗位信息包括合同记录。
12、进一步的,根据用户查询请求生成查询语句,在mongodb数据库中执行所述查询语句,获取目标员工以及目标字段的数据并导入内存,具体包括:
13、通过mongodb分页指令加载指定页码数据到内存,以及基于用户请求头部分的字段参数加载指定字段的数据到内存。
14、进一步的,通过mongodb分页指令加载指定页码数据到内存,具体包括:
15、使用skip()和limit()方法实现加载指定页码数据,其中skip()用于跳过指定数量的文档,limit()用于限制返回的文档数量。
16、进一步的,基于用户请求头部分的字段参数加载指定字段的数据到内存,具体包括:
17、将员工相关唯一标识信息以及请求的字段参数作为查询条件进行查询,获取指定字段的数据,并使用sort()方法对查询结果进行排序。
18、根据本专利技术实施例的第二方面,提出一种员工报表数据查询系统,所述系统包括:
19、数据存储模块,用于将每个员工的报表数据以单独json文档的数据格式存储在mongodb数据库,其中每条员工报表数据均包含多个字段的数据;
20、数据查询模块,用于根据用户查询请求生成查询语句,在mongodb数据库中执行所述查询语句,获取目标员工以及目标字段的数据并导入内存;
21、报表生成模块,用于将查询到的目标员工以及目标字段的数据分别作为报表的行和列信息并进行报表渲染,生成员工报表。
22、根据本专利技术实施例的第三方面,提出一种电子设备,所述设备包括:处理器和存储器;
23、所述存储器用于存储一个或多个程序指令;
24、所述处理器,用于运行一个或多个程序指令,用以执行如上任一项所述的一种员工报表数据查询方法的步骤。
25、根据本专利技术实施例的第四方面,提出一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一项所述一种员工报表数据查询方法的步骤。
26、本专利技术提出一种员工报表数据查询方法、系统、设备及存储介质,将每个员工的报表数据以单独json文档的数据格式存储在mongodb数据库,其中每条员工报表数据均包含多个字段的数据;根据用户查询请求生成查询语句,在mongodb数据库中执行所述查询语句,获取目标员工以及目标字段的数据并导入内存;将查询到的目标员工以及目标字段的数据分别作为报表的行和列信息并进行报表渲染,生成员工报表。本专利技术基于mongodb天然支持非关系数据存储和查询的优点,再基于元数据定义,只加载指定页码和指定列的数据到内存,相比于传统先将所有员工和所有列数据先加载至内存再进行筛选的方法,有效减少返回行数和列数,减少内存开销和数据库请求压力,能够灵活的呈现用户所需的员工报表,性能强劲。
本文档来自技高网...【技术保护点】
1.一种员工报表数据查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,将每个员工的报表数据以单独json文档的数据格式存储在MongoDB数据库,具体包括:
3.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,每条员工报表数据均包含多个字段的数据,具体包括:
4.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,所述员工报表数据包括基础信息、岗位信息、教育经历、培训经历、证书、联系人、自定义字段值,所述岗位信息包括合同记录。
5.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,根据用户查询请求生成查询语句,在MongoDB数据库中执行所述查询语句,获取目标员工以及目标字段的数据并导入内存,具体包括:
6.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,通过MongoDB分页指令加载指定页码数据到内存,具体包括:
7.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,基于用户请求头部分的字段参数加载指定字段的数据到内
8.一种员工报表数据查询系统,其特征在于,所述系统包括:
9.一种电子设备,其特征在于,所述设备包括:处理器和存储器;
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述一种员工报表数据查询方法的步骤。
...【技术特征摘要】
1.一种员工报表数据查询方法,其特征在于,所述方法包括:
2.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,将每个员工的报表数据以单独json文档的数据格式存储在mongodb数据库,具体包括:
3.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,每条员工报表数据均包含多个字段的数据,具体包括:
4.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,所述员工报表数据包括基础信息、岗位信息、教育经历、培训经历、证书、联系人、自定义字段值,所述岗位信息包括合同记录。
5.根据权利要求1所述的一种员工报表数据查询方法,其特征在于,根据用户查询请求生成查询语句,在mongodb数据库中执行所述...
【专利技术属性】
技术研发人员:常兴龙,韩亚,马超,雷鸣,
申请(专利权)人:企家有道网络技术北京有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。