数据生成装置和方法.pdf

上传人:00****42 文档编号:1037514 上传时间:2018-03-27 格式:PDF 页数:15 大小:400.61KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110284515.5

申请日:

2011.09.22

公开号:

CN102354317A

公开日:

2012.02.15

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/30申请公布日:20120215|||实质审查的生效IPC(主分类):G06F 17/30申请日:20110922|||公开

IPC分类号:

G06F17/30; G06Q10/00(2012.01)I

主分类号:

G06F17/30

申请人:

用友软件股份有限公司

发明人:

玄令涛; 周春星; 杜垚; 岁行; 徐宏伟

地址:

100094 北京市海淀区北清路68号用友软件园

优先权:

专利代理机构:

北京友联知识产权代理事务所(普通合伙) 11343

代理人:

尚志峰;汪海屏

PDF下载: PDF下载
内容摘要

本发明提供了一种数据生成装置,包括:查询条件设置模块,对查询条件进行设置;获取模块,根据所设置的查询条件,从数据库中获取员工信息和辅助信息;处理模块,将员工信息和辅助信息存储至中间表,中间表存储于数据库中;生成模块,根据中间表生成数据的数值。相应地,本发明还提供了一种数据生成方法。通过本发明提供的技术方案,可以改善数据处理过程,提高数据处理效率,降低数据计算系统的复杂性。

权利要求书

1: 一种数据生成装置, 其特征在于, 包括 : 查询条件设置模块, 对查询条件进行设置 ; 获取模块, 根据所设置的所述查询条件, 从数据库中获取员工信息和辅助信息 ; 处理模块, 将所述员工信息和所述辅助信息存储至中间表, 所述中间表存储于所述数 据库中 ; 生成模块, 根据所述中间表生成所述数据的数值。
2: 根据权利要求 1 所述的数据生成装置, 其特征在于, 所述辅助信息包括计税信息, 所 述计税信息包括计税方式、 税率表、 已扣税基数和 / 或已扣税 ; 以及 所述数据包括 : 员工工资。
3: 根据权利要求 2 所述的数据生成装置, 其特征在于, 所述辅助信息还包括 : 业务变 量, 所述业务变量包括年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数 ; 所述数据生成装置还包括 : 设定模块, 设定数据生成规则, 所述生成模块根据所述数据 生成规则生成所述数据的数值 ; 数值获取模块, 在所述数据生成规则中包含所述业务变量时, 利用预设的业务变量获 取规则获取所述业务变量的数值, 并存储在所述中间表中。
4: 根据权利要求 1 至 3 中任一项所述的数据生成装置, 其特征在于, 还包括 : 注册模 块, 用于所述用户的注册, 生成与所述用户唯一对应的用户 ID, 使所述用户利用所述用户 ID 登录所述数据生成装置时, 获取与所述用户 ID 对应的数据权限, 并在所述数据权限下进 行操作。
5: 根据权利要求 1 至 3 中任一项所述的数据生成装置, 其特征在于, 还包括 : 删除模 块, 在生成所述数据的数值后, 删除所述中间表中的所述员工信息和所述辅助信息。
6: 一种数据生成方法, 其特征在于, 包括 : 步骤 202, 设置查询条件, 将根据所述查询条件从数据库中获取的员工信息和辅助信息 存储至中间表, 所述中间表存储于所述数据库中, 以及根据所述中间表生成所述数据的数值。
7: 根据权利要求 6 所述的数据生成方法, 其特征在于, 所述辅助信息包括计税信息, 所 述计税信息包括计税方式、 税率表、 已扣税基数和 / 或已扣税 ; 以及 所述数据包括 : 员工工资。
8: 根据权利要求 7 所述的数据生成方法, 其特征在于, 所述辅助信息还包括 : 业务变 量, 所述业务变量包括年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数 ; 在所述步骤 202 之前还包括 : 设定数据生成规则, 在所述数据生成规则中包含所述业 务变量时, 利用预设的业务变量获取规则, 获取所述业务变量的数值, 并存储在所述中间表 中; 以及 所述步骤 202 具体包括 : 根据所述中间表, 并通过所述数据生成规则生成所述数据的 数值。
9: 根据权利要求 6 或 8 所述的数据生成方法, 其特征在于, 在所述步骤 202 之前, 还包 括: 使用与所述用户唯一对应的用户 ID 进行登录, 获取与所述用户 ID 对应的数据权限, 并 在所述数据权限下进行所述步骤 202 的操作。
10: 根据权利要求 6 所述的数据生成方法, 其特征在于, 在所述步骤 202 之后, 还包括删 除所述中间表中的所述员工信息和所述辅助信息。

说明书


数据生成装置和方法

    【技术领域】
     本发明涉及数据生成技术, 具体而言, 涉及数据生成装置和方法。背景技术 原有的工资计算, 需要将自然语言转换为工资计算语言, 然后按照工资计算语言 转换为结构化查询语言 (Structure Query Language, 简称 SQL 语言 ), 最后将 SQL 语言在 数据库中执行 . 这种计算方式存在以下不足 : (1) 工资计算语言转换为结构化查询语言, 这 一转换过程比较复杂, 导致工资计算系统臃肿, 难以维护 ; (2) 要考虑工资专员的数据权限 以及业务规则所涉及的人员范围, 导致转换后的 SQL 语句执行效率不高, 客户难以接受。
     因此, 需要一种新的数据生成技术, 可以改善数据处理过程, 提高数据处理效率, 降低数据计算系统的复杂性。
     发明内容
     本发明正是基于上述问题, 提出了一种新的数据生成技术, 可以改善数据处理过 程, 提高数据处理效率, 降低数据计算系统的复杂性。
     有鉴于此, 本发明提出了一种数据生成装置, 包括 : 查询条件设置模块, 对查询条 件进行设置 ; 获取模块, 根据所设置的所述查询条件, 从数据库中获取员工信息和辅助信 息; 处理模块, 将所述员工信息和所述辅助信息存储至中间表, 所述中间表存储于所述数据 库中 ; 生成模块, 根据所述中间表生成所述数据的数值。在该技术方案中, 通过将生成需要 得到的数据的数值的过程分为多个步骤, 首先将生成过程中可能用到的信息生成一个中间 表, 则最终生成所需数据的数值时, 不必实时获取或是在数据库中的大量信息中进行查询, 而是直接利用数据量明显小于数据库的中间表, 从而改善了生成过程, 提高生成效率。
     在上述技术方案中, 优选地, 所述辅助信息包括计税信息, 所述计税信息包括计税 方式、 税率表、 已扣税基数和 / 或已扣税 ; 以及所述数据包括 : 员工工资。在该技术方案中, 上述装置可以用于生成员工的工资, 这里生成过程中所需要用到的员工信息及税务方面的 信息等可以事先生成中间表, 以便优化生成过程。当然, 应该理解为并不仅限于生成 “员工 工资” 的数值, 凡是需要利用到中间信息的数据生成过程, 均应可以采用本发明提供的技术 方案。
     在上述技术方案中, 优选地, 所述辅助信息还包括 : 业务变量, 所述业务变量包括 年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数 ; 所述数据生成装置还包括 : 设定模块, 设定数据生成规则, 所述生成模块根据所述数据生成规则生成所述数据的数值 ; 数值获取模块, 在所述数据生成规则中包含所述业务变量时, 利用预设的业务变量获取规 则获取所述业务变量的数值, 并存储在所述中间表中。在该技术方案中, 可以对数据的数 值的生成设定对应的规则, 这里的规则可能是生成该数值的语言、 条件等, 比如 “工龄小于 5 年的员工补贴是工资的 5%” , 而这个规则中, “工龄” 可能是一个业务变量, 则需要获取对应 , 这时并不满足上述规则, 而应该属于其它规则如 “工龄大于 5 的 “工龄” 的数值, 比如为 “8”年且小于 10 年的员工补贴是工资的 10%” 。
     在上述技术方案中, 优选地, 还包括 : 注册模块, 用于所述用户的注册, 生成与所述 用户唯一对应的用户 ID, 使所述用户利用所述用户 ID 登录所述数据生成装置时, 获取与所 述用户 ID 对应的数据权限, 并在所述数据权限下进行操作。在该技术方案中, 每个操作用 户需要事先注册, 并获取与之对应的唯一的 ID, 该 ID 用于在操作前进行登录, 并在登录获 取与之对应的操作权限, 比如员工 A 只能对 “财务部的正式员工” 进行操作, 而不是 “财务 部” 的员工和 “财务部的临时员工” 等则不具有操作权限。权限的设置, 有利于管理上的便 捷。
     在上述技术方案中, 优选地, 还包括 : 删除模块, 在生成所述数据的数值后, 删除所 述中间表中的所述员工信息和所述辅助信息。在该技术方案中, 在完成数据的数值的生成 后, 可以将中间表中的数据删除, 因为中间表只是中间数据, 并不是人们希望关注的数据 ; 同时, 将中间数据的删除, 但对于中间表并不进行删除, 而是将空白的列表存储于数据库 中, 一方面节省空间, 另一方面便于以后的再次利用。
     根据本发明的又一方面, 还提出了一种数据生成方法, 包括 : 步骤 202, 设置查询 条件, 将根据所述查询条件从数据库中获取的员工信息和辅助信息存储至中间表, 所述中 间表存储于所述数据库中, 以及根据所述中间表生成所述数据的数值。 在该技术方案中, 通 过将生成需要得到的数据的过程分为多个步骤, 首先将生成过程中可能用到的信息生成一 个中间表, 则最终生成所需数据的数值时, 不必实时获取或是在数据库中的大量信息中进 行查询, 而是直接利用数据量明显小于数据库的中间表, 从而改善了生成过程, 提高生成效 率。 在上述技术方案中, 优选地, 所述辅助信息包括计税信息, 所述计税信息包括计税 方式、 税率表、 已扣税基数和 / 或已扣税 ; 以及所述数据包括 : 员工工资。在该技术方案中, 上述装置可以用于生成员工的工资, 这里生成过程中所需要用到的员工信息及税务方面的 信息等可以事先生成中间表, 以便优化生成过程。当然, 应该理解为并不仅限于生成 “员工 工资” 的数值, 凡是需要利用到中间信息的数据生成过程, 均应可以采用本发明提供的技术 方案。
     在上述技术方案中, 优选地, 所述辅助信息还包括 : 业务变量, 所述业务变量包括 年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数 ; 在所述步骤 202 之前还包 括: 设定数据生成规则, 在所述数据生成规则中包含所述业务变量时, 利用预设的业务变量 获取规则, 获取所述业务变量的数值, 并存储在所述中间表中 ; 以及所述步骤 202 具体包 括: 根据所述中间表, 并通过所述数据生成规则生成所述数据的数值。在该技术方案中, 可 以对数据的生成设定对应的规则, 这里的条件可能是生成数据的语言、 条件等, 比如 “工龄 小于 5 年的员工补贴是工资的 5%” , 而这个规则中, “工龄” 可能是一个业务变量, 则需要获 取对应的 “工龄” 的数值, 比如为 “8” , 这时并不满足上述规则, 而应该属于其它规则如 “工 龄大于 5 年且小于 10 年的员工补贴是工资的 10%” 。
     在上述技术方案中, 优选地, 在所述步骤 202 之前, 还包括 : 使用与所述用户唯一 对应的用户 ID 进行登录, 获取与所述用户 ID 对应的数据权限, 并在所述数据权限下进行所 述步骤 202 的操作。在该技术方案中, 每个操作用户需要事先注册, 并获取与之对应的唯一 的 ID, 该 ID 用于在操作前进行登录, 并在登录获取与之对应的操作权限, 比如员工 A 只能
     对 “财务部的正式员工” 进行操作, 而不是 “财务部” 的员工和 “财务部的临时员工” 等则不 具有操作权限。权限的设置, 有利于管理上的便捷。
     在上述技术方案中, 优选地, 在所述步骤 202 之后, 还包括删除所述中间表中的所 述员工信息和所述辅助信息。在该技术方案中, 在完成数据的数值的生成后, 可以将中间 表中的数据删除, 因为中间表只是中间数据, 并不是人们希望关注的数据 ; 同时, 将中间数 据的删除, 但对于中间表并不进行删除, 而是将空白的列表存储于数据库中, 一方面节省空 间, 另一方面便于以后的再次利用。
     通过以上技术方案, 可以改善数据处理过程, 提高数据处理效率, 降低数据计算系 统的复杂性。 附图说明
     图 1 示出了根据本发明的实施例的数据生成装置的框图 ;
     图 2 示出了根据本发明的实施例的数据生成方法的流程图 ;
     图 3 示出了根据本发明的实施例的生成数据的示意流程图 ; 以及
     图 4 示出了根据本发明的实施例的生成数据的具体流程图。 具体实施方式
     为了能够更清楚地理解本发明的上述目的、 特征和优点, 下面结合附图和具体实 施方式对本发明进行进一步的详细描述。
     在下面的描述中阐述了很多具体细节以便于充分理解本发明, 但是, 本发明还可 以采用其他不同于在此描述的其他方式来实施, 因此, 本发明并不限于下面公开的具体实 施例的限制。
     图 1 示出了根据本发明的实施例的数据生成装置的框图。
     如图 1 所示, 根据本发明的实施例的数据生成装置 100 包括 : 查询条件设置模块 102, 对查询条件进行设置 ; 获取模块 104, 根据所设置的查询条件, 从数据库中获取员工信 息和辅助信息 ; 处理模块 106, 将员工信息和辅助信息存储至中间表, 中间表存储于数据库 中; 生成模块 108, 根据中间表生成数据的数值 ; 设定模块 110, 设定数据生成规则, 生成模 块 108 根据数据生成规则生成数据的数值 ; 数值获取模块 112, 在数据生成规则中包含业务 变量时, 利用预设的业务变量获取规则获取业务变量的数值, 并存储在中间表中 ; 注册模块 114, 用于用户的注册, 生成与用户唯一对应的用户 ID, 使用户利用用户 ID 登录数据生成装 置 100 时, 获取与用户 ID 对应的数据权限, 并在数据权限下进行操作 ; 删除模块 116, 在生 成数据的数值后, 删除中间表中的员工信息和辅助信息。 在该技术方案中, 通过将生成需要 得到的数据的数值的过程分为多个步骤, 首先将生成过程中可能用到的信息生成一个中间 表, 则最终生成所需数据的数值时, 不必实时获取或是在数据库中的大量信息中进行查询, 而是直接利用数据量明显小于数据库的中间表, 从而改善了生成过程, 提高生成效率。
     在上述技术方案中, 辅助信息包括计税信息, 计税信息包括计税方式、 税率表、 已 扣税基数和 / 或已扣税 ; 以及数据包括 : 员工工资。在该技术方案中, 上述装置 100 可以用 于生成员工的工资, 这里生成过程中所需要用到的员工信息及税务方面的信息等可以事先 生成中间表, 以便优化生成过程。当然, 应该理解为并不仅限于生成 “员工工资” 的数值, 凡是需要利用到中间信息的数据生成过程, 均应可以采用本发明提供的技术方案。
     在上述技术方案中, 辅助信息还包括 : 业务变量, 业务变量包括年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数。在该技术方案中, 可以对数据的数值的生成 设定对应的规则, 这里的规则可能是生成该数值的语言、 条件等, 比如 “工龄小于 5 年的员 工补贴是工资的 5%” , 而这个规则中, “工龄” 可能是一个业务变量, 则需要获取对应的 “工 龄” 的数值, 比如为 “8” , 这时并不满足上述规则, 而应该属于其它规则如 “工龄大于 5 年且 小于 10 年的员工补贴是工资的 10%” 。
     在该技术方案中, 每个操作用户需要事先注册, 并获取与之对应的唯一的 ID, 该 ID 用于在操作前进行登录, 并在登录获取与之对应的操作权限, 比如员工 A 只能对 “财务部 的正式员工” 进行操作, 而不是 “财务部” 的员工和 “财务部的临时员工” 等则不具有操作权 限。权限的设置, 有利于管理上的便捷。
     在该技术方案中, 在完成数据的数值的生成后, 可以将中间表中的数据删除, 因为 中间表只是中间数据, 并不是人们希望关注的数据 ; 同时, 将中间数据的删除, 但对于中间 表并不进行删除, 而是将空白的列表存储于数据库中, 一方面节省空间, 另一方面便于以后 的再次利用。 图 2 示出了根据本发明的实施例的数据生成方法的流程图。
     如图 2 所示, 根据本发明的实施例的数据生成方法包括 : 步骤 202, 设置查询条件, 将根据查询条件从数据库中获取的员工信息和辅助信息存储至中间表, 中间表存储于所述 数据库中, 以及根据中间表生成数据的数值。 在该技术方案中, 通过将生成需要得到的数据 的过程分为多个步骤, 首先将生成过程中可能用到的信息生成一个中间表, 则最终生成所 需数据的数值时, 不必实时获取或是在数据库中的大量信息中进行查询, 而是直接利用数 据量明显小于数据库的中间表, 从而改善了生成过程, 提高生成效率。
     在上述技术方案中, 辅助信息包括计税信息, 所述计税信息包括计税方式、 税率 表、 已扣税基数和 / 或已扣税 ; 以及数据包括 : 员工工资。 在该技术方案中, 上述装置可以用 于生成员工的工资, 这里生成过程中所需要用到的员工信息及税务方面的信息等可以事先 生成中间表, 以便优化生成过程。当然, 应该理解为并不仅限于生成 “员工工资” 的数值, 凡 是需要利用到中间信息的数据生成过程, 均应可以采用本发明提供的技术方案。
     在上述技术方案中, 辅助信息还包括 : 业务变量, 业务变量包括年龄、 工龄、 司龄、 工资期间日历天数和 / 或工资期间工作天数 ; 在步骤 202 之前还包括 : 设定数据生成规则, 在数据生成规则中包含业务变量时, 利用预设的业务变量获取规则, 获取业务变量的数值, 并存储在中间表中 ; 以及步骤 202 具体包括 : 根据中间表, 并通过数据生成规则生成数据的 数值。 在该技术方案中, 可以对数据的生成设定对应的规则, 这里的规则可能是生成数据的 语言、 条件等, 比如 “工龄小于 5 年的员工补贴是工资的 5%” , 而这个规则中, “工龄” 可能是 一个业务变量, 则需要获取对应的 “工龄” 的数值, 比如为 “8” , 这时并不满足上述规则, 而应 该属于其它规则如 “工龄大于 5 年且小于 10 年的员工补贴是工资的 10%” 。
     在上述技术方案中, 在步骤 202 之前, 还包括 : 使用与用户唯一对应的用户 ID 进行 登录, 获取与用户 ID 对应的数据权限, 并在数据权限下进行步骤 202 的操作。在该技术方 案中, 每个操作用户需要事先注册, 并获取与之对应的唯一的 ID, 该 ID 用于在操作前进行 登录, 并在登录获取与之对应的操作权限, 比如员工 A 只能对 “财务部的正式员工” 进行操
     作, 而不是 “财务部” 的员工和 “财务部的临时员工” 等则不具有操作权限。权限的设置, 有 利于管理上的便捷。
     在上述技术方案中, 在步骤 202 之后, 还包括删除中间表中的员工信息和辅助信 息。在该技术方案中, 在完成数据的数值的生成后, 可以将中间表中的数据删除, 因为中间 表只是中间数据, 并不是人们希望关注的数据 ; 同时, 将中间数据的删除, 但对于中间表并 不进行删除, 而是将空白的列表存储于数据库中, 一方面节省空间, 另一方面便于以后的再 次利用。
     图 3 示出了根据本发明的实施例的生成数据的示意流程图。
     如图 3 所示, 是利用上述技术方案进行员工工资计算的过程, 步骤如下 :
     步骤 302, 在计算之前, 将预备的信息存储至中间表, 从而利用中间表这一 “缓存” 类型的列表, 使后续的数据如工资的数值的生成更为快捷, 也有利于降低对硬件设备的要 求;
     步骤 304, 计算时, 利用之间生成的中间表对工资语言进行解析, 并执行生成对应 的数据如工资的数值 ;
     步骤 306, 在计算完成后, 删除中间表中的数据, 并将空白的中间表存储于数据库 中。 对于图 3 中的步骤, 下面结合图 4 进行具体的说明。
     图 4 示出了根据本发明的实施例的生成数据的具体流程图。
     如图 4 所示, 具体步骤如下 :
     步骤 402, 根据用户的数据权限查询需要计算工资的员工, 这里是指进行相关的数 据生成的操作用户, 需要事先注册得到与该用户身份唯一对应的用户 ID, 而用户进行操作 前, 需要先用该 ID 登录, 并取得相应的操作权限, 比如用户 A 所属角色是 “普通业务人员” , 该角色的数据权限是 :
     部门权限 : 只能计算 “财务部” 与 “人力资源部” 的员工 ;
     员工类别权限 : 只能计算 “正式员工” 的工资。
     步骤 404, 在前一步骤中, 用户使用对应的 ID 登录并取得相应权限的前提下, 将本 次参与计算的员工信息存储至中间表, 比如员工名称、 所属部门等信息 ;
     步骤 406, 更新员工的计税信息到中间表, 这里对于员工工资的计算, 需要进行相 应的税务计算, 当然, 对于其他情况下的其他数据生成, 也可能是其他的辅助信息, 并不限 于这一种 ;
     步骤 408, 判断工资项目语言中是否含有业务变量, 这里的业务变量是指 “年龄” 、 “工龄” 、 “司龄” ( 在本公司的工作年限 )、 “工资期间日历天数” 、 “工资期间工作天数” 等, 对 于这些信息, 可以事先进行计算后, 存储至到中间表中, 则后续步骤中可以直接使用, 提高 计算效率。 而对于工资项目语言, 是指在生成数据如计算工资时, 需要将文字等转换为机器 语言, 如在一个具体的实施例中, 工资项目的 “补贴” 的业务描述是 :
     “如果工龄>= 10 那么补贴是基本工资 *15% ;
     如果工龄>= 5 并且工龄< 10, 那么补贴是基本工资 *10% ;
     如果工龄< 5 那么补贴是基本工资 *5%。 ”
     需要按照表 1 进行转换 :
     7102354317 A CN 102354326
     业务描述 工龄 补贴 基本工资 如果 那么 并且说明书机器语言 workage wage.allowance wage.basesalary if then &&6/9 页是
     =表1
     那么根据表 1, 就可以得到相应的工资计算语言 :
     if workage >= 10, then wage.allowance = wage.basesalary*15% ;
     if workage > = 5 && workage < 10 then wage.allowance = wage. basesalary*10% ;
     if workage < 5, then wage.allowance = wage.basesalary*5%,
     判断上述语言中是否包含业务变量, 如不包含, 则直接进入步骤 412, 如包含, 则进 入步骤 410 ;
     步骤 410, 计算出相关业务变量的结果值并更新至中间表, 提前将业务变量或是其 他可以事先进行计算的数值计算出来, 并存储在中间表中, 从而在后续对工资语言的解析 和计算, 具有节省时间、 优化过程的优点 ;
     步骤 412, 解析工资语言并执行, 得到用户想要得到的数据如工资的数值, 即每个 员工应得到的工资数目。
     步骤 414, 删除中间表数据, 当然, 这一步骤并不是必须的, 而是一方面, 中间表中 的数据往往不是人们所关心的重要的数据, 因此可以删除, 另一方面, 中间表中的数据的删 除, 可以节省数据库或是其他存储装置的空间, 便于存储其他更为重要的数据或文件。
     对于上述步骤中对于中间表的利用, 可以通过下面的数据语言之间的对比来进行 说明 :
     首先是不使用中间表时的 SQL 语言 :
     // 工龄>= 10 的员工
     update wage set wage.allowance = wage.basesalary*15%
     where/* 添 加 工 龄 > = 10 的 限 制 */(extract(year from to_date( ′ 当 前 系 统 日 期 ′, ′ yyyy-mm-dd ′ ))-extract(year from to_date( ′ 参 加 工 作 日 期′,′ yyyy-mm-dd′ ))) >= 10/* 添 加 部 门 权 限 限 制 */and wage.deptid in(select distinct power. resource_data_id from sm_power_deptdoc power where power.pk_role in(select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ ))
     /* 添加人员类别权限限制 */and wage.psnclid in((select distinct power. resource_data_id from sm_power_psncl power where power.pk_role in (select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ )))
     //10 >工龄>= 5 的员工
     update wage set wage.allowance = wage.basesalary*10%
     where/* 添 加 10 > 工 龄 > = 5 的 限 制 */(extract(year from to_date( ′ 当 前 系 统 日 期 ′, ′ yyyy-mm-dd ′ ))-extract(year from to_date( ′ 参 加 工 作 日 期′,′ yyyy-mm-dd′ ))) >= 5
     and(extract(year from to_date( ′ 当 前 系 统 日 期 ′, ′ yyyy-mm-dd ′ ))-extract(year from to_date( ′ 参 加 工 作 日 期′,′ yyyy-mm-dd′ ))) < 10
     /* 添 加 部 门 权 限 限 制 */and wage.deptid in((select distinct power. resource_data_id from sm_power_deptdoc power where power.pk_rolein(select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ ))
     /* 添加人员类别权限限制 */and wage.psnclid in((select distinct power. resource_data_id from sm_power_psncl power where power.pk_role in(select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ )))
     // 工龄< 5 的员工
     update wage set wage.allowance = wage.basesalary*5%
     where/* 工 龄 < 5 的 限 制 */(extract(year from to_date( ′ 当 前 系 统 日 期 ′, ′ yyyy-mm-dd ′ ))-extract(year from to_date( ′ 参 加 工 作 日 期′,′ yyyy-mm-dd′ ))) < 5
     /* 添 加 部 门 权 限 限 制 */and wage.deptid in((select distinct power. resource_data_id from sm_power_deptdoc power where power.pk_role in(select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ ))
     /* 添加人员类别权限限制 */and wage.psnclid in((select distinct power. resource_data_id from sm_power_psncl power where power.pk_role in (select pk_ role from sm_user_role where sm_user_role.cuserid =′当前用户 pk′ )))
     注: wage——工资数据存放表
     sm_user——用户表
     sm_user_role——用户角色关系表
     sm_power_deptdoc——部门权限表
     sm_power_psncl——人员类别权限表
     而在使用了中间表后, 相应的 SQL 语言则相对简化了很多 :
     // 工龄>= 10 的员工
     update wage set wage.allowance = wage.basesalary*15%where wage.pk_psn in(select midname.pk_psn from midname where midname. workage >= 10)
     //10 >工龄>= 5 的员工
     update wage set wage.allowance = wage.basesalary*10%
     where wage.pk_psn in(select midname.pk_psn from midname where midname. workage >= 5 and midname.workage < 10)
     // 工龄< 5 的员工
     update wage set wage.allowance = wage.basesalary*5%
     where wage.pk_psn in(select midname.pk_psn from midname where midname. workage < 5)
     通过上述 SQL 语言的对比, 可见该转换使用了中间表, 存在以下优点 :
     每个员工的工龄都提前计算出来, 可以直接使用。不必重复添加工龄的 SQL 片段 ;
     中间表存储了本次算薪的所有员工, 就框定了本次算薪的数据权限, 所以不再添 加数据权限的限制 ;
     转换后的 SQL 就使用到 2 个表 ( 表 1 与中间表 ), 所以转换过程简单, 转换后的 SQL 语句也很简单 ;
     中间表中数据量小, 仅仅记录本次计算所关心的员工记录。所以 SQL 执行效率特别高。 因此, 有了计算数据准备阶段, 工资计算过程得到明显的优化, 主要体现在以下几 个方面 :
     SQL 语句的数据权限约束简化了 : 系统只需要关联中间表就可以表达数据权限约 束, 如果没有中间表, 则需要拼写负责的 SQL 语句, 关联多个数据表 ( 一般包括权限表, 用户 表等 ) ;
     提高计算效率 : 首先 SQL 语句简化, 关联表减少, 直接提高了 SQL 语句的计算效率 ; 除此以外, 中间表还记录了许多可以重复使用的中间计算结果, 比如 : 年龄、 工龄、 司龄、 计 税方式等 ; 最重要的一点中间表中数据量小, 仅仅记录本次计算所关心的员工记录, 所以执 行效率高 ;
     降低工资计算公式的解析难度, 降低了工资计算系统的复杂度 : 例如 : 工龄是工 资计算常用的信息项。如果没有中间表, 工龄表现为一个复杂的 SQL 片段, 如果有中间表, 工龄就表现为中间表中的一个字段, 从而降低了公式解析的难度。
     此外, 还可以通过下面的表 2 中, 是实际测试的结果, 可供参考 :
     表2
     由表 2 可见, 在使用了本发明提供的计算方案后, 在数据生成的效率上提升了 80%以上, 有效缩短了生成时间。
     以上结合附图详细说明了本发明的技术方案, 考虑到现有技术下的数据如工资生 成过程中, 结构化查询语言转换过程复杂, 导致工资计算系统臃肿, 难以维护, 且转换后的 SQL 语句执行效率不高, 因此, 通过本发明提供的技术方案, 可以改善数据处理过程, 提高数 据处理效率, 降低数据计算系统的复杂性。
     以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修 改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。
    

数据生成装置和方法.pdf_第1页
第1页 / 共15页
数据生成装置和方法.pdf_第2页
第2页 / 共15页
数据生成装置和方法.pdf_第3页
第3页 / 共15页
点击查看更多>>
资源描述

《数据生成装置和方法.pdf》由会员分享,可在线阅读,更多相关《数据生成装置和方法.pdf(15页珍藏版)》请在专利查询网上搜索。

1、10申请公布号CN102354317A43申请公布日20120215CN102354317ACN102354317A21申请号201110284515522申请日20110922G06F17/30200601G06Q10/0020120171申请人用友软件股份有限公司地址100094北京市海淀区北清路68号用友软件园72发明人玄令涛周春星杜垚岁行徐宏伟74专利代理机构北京友联知识产权代理事务所普通合伙11343代理人尚志峰汪海屏54发明名称数据生成装置和方法57摘要本发明提供了一种数据生成装置,包括查询条件设置模块,对查询条件进行设置;获取模块,根据所设置的查询条件,从数据库中获取员工信息和辅。

2、助信息;处理模块,将员工信息和辅助信息存储至中间表,中间表存储于数据库中;生成模块,根据中间表生成数据的数值。相应地,本发明还提供了一种数据生成方法。通过本发明提供的技术方案,可以改善数据处理过程,提高数据处理效率,降低数据计算系统的复杂性。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书1页说明书9页附图4页CN102354326A1/1页21一种数据生成装置,其特征在于,包括查询条件设置模块,对查询条件进行设置;获取模块,根据所设置的所述查询条件,从数据库中获取员工信息和辅助信息;处理模块,将所述员工信息和所述辅助信息存储至中间表,所述中间表存储于所述数据库中;生成。

3、模块,根据所述中间表生成所述数据的数值。2根据权利要求1所述的数据生成装置,其特征在于,所述辅助信息包括计税信息,所述计税信息包括计税方式、税率表、已扣税基数和/或已扣税;以及所述数据包括员工工资。3根据权利要求2所述的数据生成装置,其特征在于,所述辅助信息还包括业务变量,所述业务变量包括年龄、工龄、司龄、工资期间日历天数和/或工资期间工作天数;所述数据生成装置还包括设定模块,设定数据生成规则,所述生成模块根据所述数据生成规则生成所述数据的数值;数值获取模块,在所述数据生成规则中包含所述业务变量时,利用预设的业务变量获取规则获取所述业务变量的数值,并存储在所述中间表中。4根据权利要求1至3中任。

4、一项所述的数据生成装置,其特征在于,还包括注册模块,用于所述用户的注册,生成与所述用户唯一对应的用户ID,使所述用户利用所述用户ID登录所述数据生成装置时,获取与所述用户ID对应的数据权限,并在所述数据权限下进行操作。5根据权利要求1至3中任一项所述的数据生成装置,其特征在于,还包括删除模块,在生成所述数据的数值后,删除所述中间表中的所述员工信息和所述辅助信息。6一种数据生成方法,其特征在于,包括步骤202,设置查询条件,将根据所述查询条件从数据库中获取的员工信息和辅助信息存储至中间表,所述中间表存储于所述数据库中,以及根据所述中间表生成所述数据的数值。7根据权利要求6所述的数据生成方法,其特。

5、征在于,所述辅助信息包括计税信息,所述计税信息包括计税方式、税率表、已扣税基数和/或已扣税;以及所述数据包括员工工资。8根据权利要求7所述的数据生成方法,其特征在于,所述辅助信息还包括业务变量,所述业务变量包括年龄、工龄、司龄、工资期间日历天数和/或工资期间工作天数;在所述步骤202之前还包括设定数据生成规则,在所述数据生成规则中包含所述业务变量时,利用预设的业务变量获取规则,获取所述业务变量的数值,并存储在所述中间表中;以及所述步骤202具体包括根据所述中间表,并通过所述数据生成规则生成所述数据的数值。9根据权利要求6或8所述的数据生成方法,其特征在于,在所述步骤202之前,还包括使用与所述。

6、用户唯一对应的用户ID进行登录,获取与所述用户ID对应的数据权限,并在所述数据权限下进行所述步骤202的操作。10根据权利要求6所述的数据生成方法,其特征在于,在所述步骤202之后,还包括删除所述中间表中的所述员工信息和所述辅助信息。权利要求书CN102354317ACN102354326A1/9页3数据生成装置和方法技术领域0001本发明涉及数据生成技术,具体而言,涉及数据生成装置和方法。背景技术0002原有的工资计算,需要将自然语言转换为工资计算语言,然后按照工资计算语言转换为结构化查询语言STRUCTUREQUERYLANGUAGE,简称SQL语言,最后将SQL语言在数据库中执行这种计算。

7、方式存在以下不足1工资计算语言转换为结构化查询语言,这一转换过程比较复杂,导致工资计算系统臃肿,难以维护;2要考虑工资专员的数据权限以及业务规则所涉及的人员范围,导致转换后的SQL语句执行效率不高,客户难以接受。0003因此,需要一种新的数据生成技术,可以改善数据处理过程,提高数据处理效率,降低数据计算系统的复杂性。发明内容0004本发明正是基于上述问题,提出了一种新的数据生成技术,可以改善数据处理过程,提高数据处理效率,降低数据计算系统的复杂性。0005有鉴于此,本发明提出了一种数据生成装置,包括查询条件设置模块,对查询条件进行设置;获取模块,根据所设置的所述查询条件,从数据库中获取员工信息。

8、和辅助信息;处理模块,将所述员工信息和所述辅助信息存储至中间表,所述中间表存储于所述数据库中;生成模块,根据所述中间表生成所述数据的数值。在该技术方案中,通过将生成需要得到的数据的数值的过程分为多个步骤,首先将生成过程中可能用到的信息生成一个中间表,则最终生成所需数据的数值时,不必实时获取或是在数据库中的大量信息中进行查询,而是直接利用数据量明显小于数据库的中间表,从而改善了生成过程,提高生成效率。0006在上述技术方案中,优选地,所述辅助信息包括计税信息,所述计税信息包括计税方式、税率表、已扣税基数和/或已扣税;以及所述数据包括员工工资。在该技术方案中,上述装置可以用于生成员工的工资,这里生。

9、成过程中所需要用到的员工信息及税务方面的信息等可以事先生成中间表,以便优化生成过程。当然,应该理解为并不仅限于生成“员工工资”的数值,凡是需要利用到中间信息的数据生成过程,均应可以采用本发明提供的技术方案。0007在上述技术方案中,优选地,所述辅助信息还包括业务变量,所述业务变量包括年龄、工龄、司龄、工资期间日历天数和/或工资期间工作天数;所述数据生成装置还包括设定模块,设定数据生成规则,所述生成模块根据所述数据生成规则生成所述数据的数值;数值获取模块,在所述数据生成规则中包含所述业务变量时,利用预设的业务变量获取规则获取所述业务变量的数值,并存储在所述中间表中。在该技术方案中,可以对数据的数。

10、值的生成设定对应的规则,这里的规则可能是生成该数值的语言、条件等,比如“工龄小于5年的员工补贴是工资的5”,而这个规则中,“工龄”可能是一个业务变量,则需要获取对应的“工龄”的数值,比如为“8”,这时并不满足上述规则,而应该属于其它规则如“工龄大于5说明书CN102354317ACN102354326A2/9页4年且小于10年的员工补贴是工资的10”。0008在上述技术方案中,优选地,还包括注册模块,用于所述用户的注册,生成与所述用户唯一对应的用户ID,使所述用户利用所述用户ID登录所述数据生成装置时,获取与所述用户ID对应的数据权限,并在所述数据权限下进行操作。在该技术方案中,每个操作用户需。

11、要事先注册,并获取与之对应的唯一的ID,该ID用于在操作前进行登录,并在登录获取与之对应的操作权限,比如员工A只能对“财务部的正式员工”进行操作,而不是“财务部”的员工和“财务部的临时员工”等则不具有操作权限。权限的设置,有利于管理上的便捷。0009在上述技术方案中,优选地,还包括删除模块,在生成所述数据的数值后,删除所述中间表中的所述员工信息和所述辅助信息。在该技术方案中,在完成数据的数值的生成后,可以将中间表中的数据删除,因为中间表只是中间数据,并不是人们希望关注的数据;同时,将中间数据的删除,但对于中间表并不进行删除,而是将空白的列表存储于数据库中,一方面节省空间,另一方面便于以后的再次。

12、利用。0010根据本发明的又一方面,还提出了一种数据生成方法,包括步骤202,设置查询条件,将根据所述查询条件从数据库中获取的员工信息和辅助信息存储至中间表,所述中间表存储于所述数据库中,以及根据所述中间表生成所述数据的数值。在该技术方案中,通过将生成需要得到的数据的过程分为多个步骤,首先将生成过程中可能用到的信息生成一个中间表,则最终生成所需数据的数值时,不必实时获取或是在数据库中的大量信息中进行查询,而是直接利用数据量明显小于数据库的中间表,从而改善了生成过程,提高生成效率。0011在上述技术方案中,优选地,所述辅助信息包括计税信息,所述计税信息包括计税方式、税率表、已扣税基数和/或已扣税。

13、;以及所述数据包括员工工资。在该技术方案中,上述装置可以用于生成员工的工资,这里生成过程中所需要用到的员工信息及税务方面的信息等可以事先生成中间表,以便优化生成过程。当然,应该理解为并不仅限于生成“员工工资”的数值,凡是需要利用到中间信息的数据生成过程,均应可以采用本发明提供的技术方案。0012在上述技术方案中,优选地,所述辅助信息还包括业务变量,所述业务变量包括年龄、工龄、司龄、工资期间日历天数和/或工资期间工作天数;在所述步骤202之前还包括设定数据生成规则,在所述数据生成规则中包含所述业务变量时,利用预设的业务变量获取规则,获取所述业务变量的数值,并存储在所述中间表中;以及所述步骤202。

14、具体包括根据所述中间表,并通过所述数据生成规则生成所述数据的数值。在该技术方案中,可以对数据的生成设定对应的规则,这里的条件可能是生成数据的语言、条件等,比如“工龄小于5年的员工补贴是工资的5”,而这个规则中,“工龄”可能是一个业务变量,则需要获取对应的“工龄”的数值,比如为“8”,这时并不满足上述规则,而应该属于其它规则如“工龄大于5年且小于10年的员工补贴是工资的10”。0013在上述技术方案中,优选地,在所述步骤202之前,还包括使用与所述用户唯一对应的用户ID进行登录,获取与所述用户ID对应的数据权限,并在所述数据权限下进行所述步骤202的操作。在该技术方案中,每个操作用户需要事先注册。

15、,并获取与之对应的唯一的ID,该ID用于在操作前进行登录,并在登录获取与之对应的操作权限,比如员工A只能说明书CN102354317ACN102354326A3/9页5对“财务部的正式员工”进行操作,而不是“财务部”的员工和“财务部的临时员工”等则不具有操作权限。权限的设置,有利于管理上的便捷。0014在上述技术方案中,优选地,在所述步骤202之后,还包括删除所述中间表中的所述员工信息和所述辅助信息。在该技术方案中,在完成数据的数值的生成后,可以将中间表中的数据删除,因为中间表只是中间数据,并不是人们希望关注的数据;同时,将中间数据的删除,但对于中间表并不进行删除,而是将空白的列表存储于数据库。

16、中,一方面节省空间,另一方面便于以后的再次利用。0015通过以上技术方案,可以改善数据处理过程,提高数据处理效率,降低数据计算系统的复杂性。附图说明0016图1示出了根据本发明的实施例的数据生成装置的框图;0017图2示出了根据本发明的实施例的数据生成方法的流程图;0018图3示出了根据本发明的实施例的生成数据的示意流程图;以及0019图4示出了根据本发明的实施例的生成数据的具体流程图。具体实施方式0020为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。0021在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用。

17、其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。0022图1示出了根据本发明的实施例的数据生成装置的框图。0023如图1所示,根据本发明的实施例的数据生成装置100包括查询条件设置模块102,对查询条件进行设置;获取模块104,根据所设置的查询条件,从数据库中获取员工信息和辅助信息;处理模块106,将员工信息和辅助信息存储至中间表,中间表存储于数据库中;生成模块108,根据中间表生成数据的数值;设定模块110,设定数据生成规则,生成模块108根据数据生成规则生成数据的数值;数值获取模块112,在数据生成规则中包含业务变量时,利用预设的业务变量获取规则获取业务。

18、变量的数值,并存储在中间表中;注册模块114,用于用户的注册,生成与用户唯一对应的用户ID,使用户利用用户ID登录数据生成装置100时,获取与用户ID对应的数据权限,并在数据权限下进行操作;删除模块116,在生成数据的数值后,删除中间表中的员工信息和辅助信息。在该技术方案中,通过将生成需要得到的数据的数值的过程分为多个步骤,首先将生成过程中可能用到的信息生成一个中间表,则最终生成所需数据的数值时,不必实时获取或是在数据库中的大量信息中进行查询,而是直接利用数据量明显小于数据库的中间表,从而改善了生成过程,提高生成效率。0024在上述技术方案中,辅助信息包括计税信息,计税信息包括计税方式、税率表。

19、、已扣税基数和/或已扣税;以及数据包括员工工资。在该技术方案中,上述装置100可以用于生成员工的工资,这里生成过程中所需要用到的员工信息及税务方面的信息等可以事先生成中间表,以便优化生成过程。当然,应该理解为并不仅限于生成“员工工资”的数值,凡说明书CN102354317ACN102354326A4/9页6是需要利用到中间信息的数据生成过程,均应可以采用本发明提供的技术方案。0025在上述技术方案中,辅助信息还包括业务变量,业务变量包括年龄、工龄、司龄、工资期间日历天数和/或工资期间工作天数。在该技术方案中,可以对数据的数值的生成设定对应的规则,这里的规则可能是生成该数值的语言、条件等,比如“。

20、工龄小于5年的员工补贴是工资的5”,而这个规则中,“工龄”可能是一个业务变量,则需要获取对应的“工龄”的数值,比如为“8”,这时并不满足上述规则,而应该属于其它规则如“工龄大于5年且小于10年的员工补贴是工资的10”。0026在该技术方案中,每个操作用户需要事先注册,并获取与之对应的唯一的ID,该ID用于在操作前进行登录,并在登录获取与之对应的操作权限,比如员工A只能对“财务部的正式员工”进行操作,而不是“财务部”的员工和“财务部的临时员工”等则不具有操作权限。权限的设置,有利于管理上的便捷。0027在该技术方案中,在完成数据的数值的生成后,可以将中间表中的数据删除,因为中间表只是中间数据,并。

21、不是人们希望关注的数据;同时,将中间数据的删除,但对于中间表并不进行删除,而是将空白的列表存储于数据库中,一方面节省空间,另一方面便于以后的再次利用。0028图2示出了根据本发明的实施例的数据生成方法的流程图。0029如图2所示,根据本发明的实施例的数据生成方法包括步骤202,设置查询条件,将根据查询条件从数据库中获取的员工信息和辅助信息存储至中间表,中间表存储于所述数据库中,以及根据中间表生成数据的数值。在该技术方案中,通过将生成需要得到的数据的过程分为多个步骤,首先将生成过程中可能用到的信息生成一个中间表,则最终生成所需数据的数值时,不必实时获取或是在数据库中的大量信息中进行查询,而是直接。

22、利用数据量明显小于数据库的中间表,从而改善了生成过程,提高生成效率。0030在上述技术方案中,辅助信息包括计税信息,所述计税信息包括计税方式、税率表、已扣税基数和/或已扣税;以及数据包括员工工资。在该技术方案中,上述装置可以用于生成员工的工资,这里生成过程中所需要用到的员工信息及税务方面的信息等可以事先生成中间表,以便优化生成过程。当然,应该理解为并不仅限于生成“员工工资”的数值,凡是需要利用到中间信息的数据生成过程,均应可以采用本发明提供的技术方案。0031在上述技术方案中,辅助信息还包括业务变量,业务变量包括年龄、工龄、司龄、工资期间日历天数和/或工资期间工作天数;在步骤202之前还包括设。

23、定数据生成规则,在数据生成规则中包含业务变量时,利用预设的业务变量获取规则,获取业务变量的数值,并存储在中间表中;以及步骤202具体包括根据中间表,并通过数据生成规则生成数据的数值。在该技术方案中,可以对数据的生成设定对应的规则,这里的规则可能是生成数据的语言、条件等,比如“工龄小于5年的员工补贴是工资的5”,而这个规则中,“工龄”可能是一个业务变量,则需要获取对应的“工龄”的数值,比如为“8”,这时并不满足上述规则,而应该属于其它规则如“工龄大于5年且小于10年的员工补贴是工资的10”。0032在上述技术方案中,在步骤202之前,还包括使用与用户唯一对应的用户ID进行登录,获取与用户ID对应。

24、的数据权限,并在数据权限下进行步骤202的操作。在该技术方案中,每个操作用户需要事先注册,并获取与之对应的唯一的ID,该ID用于在操作前进行登录,并在登录获取与之对应的操作权限,比如员工A只能对“财务部的正式员工”进行操说明书CN102354317ACN102354326A5/9页7作,而不是“财务部”的员工和“财务部的临时员工”等则不具有操作权限。权限的设置,有利于管理上的便捷。0033在上述技术方案中,在步骤202之后,还包括删除中间表中的员工信息和辅助信息。在该技术方案中,在完成数据的数值的生成后,可以将中间表中的数据删除,因为中间表只是中间数据,并不是人们希望关注的数据;同时,将中间数。

25、据的删除,但对于中间表并不进行删除,而是将空白的列表存储于数据库中,一方面节省空间,另一方面便于以后的再次利用。0034图3示出了根据本发明的实施例的生成数据的示意流程图。0035如图3所示,是利用上述技术方案进行员工工资计算的过程,步骤如下0036步骤302,在计算之前,将预备的信息存储至中间表,从而利用中间表这一“缓存”类型的列表,使后续的数据如工资的数值的生成更为快捷,也有利于降低对硬件设备的要求;0037步骤304,计算时,利用之间生成的中间表对工资语言进行解析,并执行生成对应的数据如工资的数值;0038步骤306,在计算完成后,删除中间表中的数据,并将空白的中间表存储于数据库中。00。

26、39对于图3中的步骤,下面结合图4进行具体的说明。0040图4示出了根据本发明的实施例的生成数据的具体流程图。0041如图4所示,具体步骤如下0042步骤402,根据用户的数据权限查询需要计算工资的员工,这里是指进行相关的数据生成的操作用户,需要事先注册得到与该用户身份唯一对应的用户ID,而用户进行操作前,需要先用该ID登录,并取得相应的操作权限,比如用户A所属角色是“普通业务人员”,该角色的数据权限是0043部门权限只能计算“财务部”与“人力资源部”的员工;0044员工类别权限只能计算“正式员工”的工资。0045步骤404,在前一步骤中,用户使用对应的ID登录并取得相应权限的前提下,将本次参。

27、与计算的员工信息存储至中间表,比如员工名称、所属部门等信息;0046步骤406,更新员工的计税信息到中间表,这里对于员工工资的计算,需要进行相应的税务计算,当然,对于其他情况下的其他数据生成,也可能是其他的辅助信息,并不限于这一种;0047步骤408,判断工资项目语言中是否含有业务变量,这里的业务变量是指“年龄”、“工龄”、“司龄”在本公司的工作年限、“工资期间日历天数”、“工资期间工作天数”等,对于这些信息,可以事先进行计算后,存储至到中间表中,则后续步骤中可以直接使用,提高计算效率。而对于工资项目语言,是指在生成数据如计算工资时,需要将文字等转换为机器语言,如在一个具体的实施例中,工资项目。

28、的“补贴”的业务描述是0048“如果工龄10那么补贴是基本工资15;0049如果工龄5并且工龄10,那么补贴是基本工资10;0050如果工龄5那么补贴是基本工资5。”0051需要按照表1进行转换说明书CN102354317ACN102354326A6/9页80052业务描述机器语言工龄WORKAGE补贴WAGEALLOWANCE基本工资WAGEBASESALARY如果IF那么THEN并且是0053表10054那么根据表1,就可以得到相应的工资计算语言0055IFWORKAGE10,THENWAGEALLOWANCEWAGEBASESALARY15;0056IFWORKAGE5WORKAGE10。

29、THENWAGEALLOWANCEWAGEBASESALARY10;0057IFWORKAGE5,THENWAGEALLOWANCEWAGEBASESALARY5,0058判断上述语言中是否包含业务变量,如不包含,则直接进入步骤412,如包含,则进入步骤410;0059步骤410,计算出相关业务变量的结果值并更新至中间表,提前将业务变量或是其他可以事先进行计算的数值计算出来,并存储在中间表中,从而在后续对工资语言的解析和计算,具有节省时间、优化过程的优点;0060步骤412,解析工资语言并执行,得到用户想要得到的数据如工资的数值,即每个员工应得到的工资数目。0061步骤414,删除中间表数据,。

30、当然,这一步骤并不是必须的,而是一方面,中间表中的数据往往不是人们所关心的重要的数据,因此可以删除,另一方面,中间表中的数据的删除,可以节省数据库或是其他存储装置的空间,便于存储其他更为重要的数据或文件。0062对于上述步骤中对于中间表的利用,可以通过下面的数据语言之间的对比来进行说明0063首先是不使用中间表时的SQL语言0064/工龄10的员工0065UPDATEWAGESETWAGEALLOWANCEWAGEBASESALARY150066WHERE/添加工龄10的限制/EXTRACTYEARFROMTO_DATE当前系统日期,YYYYMMDDEXTRACTYEARFROMTO_DATE。

31、参加工作日期,YYYYMMDD10说明书CN102354317ACN102354326A7/9页90067/添加部门权限限制/ANDWAGEDEPTIDINSELECTDISTINCTPOWERRESOURCE_DATA_IDFROMSM_POWER_DEPTDOCPOWERWHEREPOWERPK_ROLEINSELECTPK_ROLEFROMSM_USER_ROLEWHERESM_USER_ROLECUSERID当前用户PK0068/添加人员类别权限限制/ANDWAGEPSNCLIDINSELECTDISTINCTPOWERRESOURCE_DATA_IDFROMSM_POWER_PSNC。

32、LPOWERWHEREPOWERPK_ROLEINSELECTPK_ROLEFROMSM_USER_ROLEWHERESM_USER_ROLECUSERID当前用户PK0069/10工龄5的员工0070UPDATEWAGESETWAGEALLOWANCEWAGEBASESALARY100071WHERE/添加10工龄5的限制/EXTRACTYEARFROMTO_DATE当前系统日期,YYYYMMDDEXTRACTYEARFROMTO_DATE参加工作日期,YYYYMMDD50072ANDEXTRACTYEARFROMTO_DATE当前系统日期,YYYYMMDDEXTRACTYEARFROMTO。

33、_DATE参加工作日期,YYYYMMDD100073/添加部门权限限制/ANDWAGEDEPTIDINSELECTDISTINCTPOWERRESOURCE_DATA_IDFROMSM_POWER_DEPTDOCPOWERWHEREPOWERPK_ROLEINSELECTPK_ROLEFROMSM_USER_ROLEWHERESM_USER_ROLECUSERID当前用户PK0074/添加人员类别权限限制/ANDWAGEPSNCLIDINSELECTDISTINCTPOWERRESOURCE_DATA_IDFROMSM_POWER_PSNCLPOWERWHEREPOWERPK_ROLEINSE。

34、LECTPK_ROLEFROMSM_USER_ROLEWHERESM_USER_ROLECUSERID当前用户PK0075/工龄5的员工0076UPDATEWAGESETWAGEALLOWANCEWAGEBASESALARY50077WHERE/工龄5的限制/EXTRACTYEARFROMTO_DATE当前系统日期,YYYYMMDDEXTRACTYEARFROMTO_DATE参加工作日期,YYYYMMDD50078/添加部门权限限制/ANDWAGEDEPTIDINSELECTDISTINCTPOWERRESOURCE_DATA_IDFROMSM_POWER_DEPTDOCPOWERWHEREP。

35、OWERPK_ROLEINSELECTPK_ROLEFROMSM_USER_ROLEWHERESM_USER_ROLECUSERID当前用户PK0079/添加人员类别权限限制/ANDWAGEPSNCLIDINSELECTDISTINCTPOWERRESOURCE_DATA_IDFROMSM_POWER_PSNCLPOWERWHEREPOWERPK_ROLEINSELECTPK_ROLEFROMSM_USER_ROLEWHERESM_USER_ROLECUSERID当前用户PK0080注WAGE工资数据存放表0081SM_USER用户表0082SM_USER_ROLE用户角色关系表0083SM_。

36、POWER_DEPTDOC部门权限表0084SM_POWER_PSNCL人员类别权限表0085而在使用了中间表后,相应的SQL语言则相对简化了很多0086/工龄10的员工0087UPDATEWAGESETWAGEALLOWANCEWAGEBASESALARY15说明书CN102354317ACN102354326A8/9页100088WHEREWAGEPK_PSNINSELECTMIDNAMEPK_PSNFROMMIDNAMEWHEREMIDNAMEWORKAGE100089/10工龄5的员工0090UPDATEWAGESETWAGEALLOWANCEWAGEBASESALARY100091W。

37、HEREWAGEPK_PSNINSELECTMIDNAMEPK_PSNFROMMIDNAMEWHEREMIDNAMEWORKAGE5ANDMIDNAMEWORKAGE100092/工龄5的员工0093UPDATEWAGESETWAGEALLOWANCEWAGEBASESALARY50094WHEREWAGEPK_PSNINSELECTMIDNAMEPK_PSNFROMMIDNAMEWHEREMIDNAMEWORKAGE50095通过上述SQL语言的对比,可见该转换使用了中间表,存在以下优点0096每个员工的工龄都提前计算出来,可以直接使用。不必重复添加工龄的SQL片段;0097中间表存储了本次。

38、算薪的所有员工,就框定了本次算薪的数据权限,所以不再添加数据权限的限制;0098转换后的SQL就使用到2个表表1与中间表,所以转换过程简单,转换后的SQL语句也很简单;0099中间表中数据量小,仅仅记录本次计算所关心的员工记录。所以SQL执行效率特别高。0100因此,有了计算数据准备阶段,工资计算过程得到明显的优化,主要体现在以下几个方面0101SQL语句的数据权限约束简化了系统只需要关联中间表就可以表达数据权限约束,如果没有中间表,则需要拼写负责的SQL语句,关联多个数据表一般包括权限表,用户表等;0102提高计算效率首先SQL语句简化,关联表减少,直接提高了SQL语句的计算效率;除此以外,。

39、中间表还记录了许多可以重复使用的中间计算结果,比如年龄、工龄、司龄、计税方式等;最重要的一点中间表中数据量小,仅仅记录本次计算所关心的员工记录,所以执行效率高;0103降低工资计算公式的解析难度,降低了工资计算系统的复杂度例如工龄是工资计算常用的信息项。如果没有中间表,工龄表现为一个复杂的SQL片段,如果有中间表,工龄就表现为中间表中的一个字段,从而降低了公式解析的难度。0104此外,还可以通过下面的表2中,是实际测试的结果,可供参考0105说明书CN102354317ACN102354326A9/9页110106表20107由表2可见,在使用了本发明提供的计算方案后,在数据生成的效率上提升了。

40、80以上,有效缩短了生成时间。0108以上结合附图详细说明了本发明的技术方案,考虑到现有技术下的数据如工资生成过程中,结构化查询语言转换过程复杂,导致工资计算系统臃肿,难以维护,且转换后的SQL语句执行效率不高,因此,通过本发明提供的技术方案,可以改善数据处理过程,提高数据处理效率,降低数据计算系统的复杂性。0109以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。说明书CN102354317ACN102354326A1/4页12图1说明书附图CN102354317ACN102354326A2/4页13图2说明书附图CN102354317ACN102354326A3/4页14图3说明书附图CN102354317ACN102354326A4/4页15图4说明书附图CN102354317A。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1