最近因为公司在薪资制度方面的改革,导致现行薪资系统也遇到很大的变动。故思考了一下关于薪资系统模块化的问题。
如果需要将一个系统模块化,我认为其功能必须具有通用性,就是说这个功能必须适应现行的普遍需求。那么,具体到薪资也就是要求这个模块化后的系统必须能够满足现在正规企业,或者说再强大点儿,能够满足现行的基本所有企业的薪酬计算要求。
那么这里面就涉及到几个问题:
第一,薪酬组成规则。薪酬组成决定薪资的计算规则。如何设计薪酬组成,才能使薪酬计算达到通用。
第二,计算公式的实现方法。这是薪酬计算的核心部分。如果实现计算,才能保证计算方法的变更与系统代码相互独立,以实现系统的强大扩展及兼容性。
第三,计算规则的存储。
对于第一个问题,我觉得应当统一薪酬组成,所有薪酬组成部分都视为最后薪资的一个组件,即SalaryComponent。这样,系统只需要去识别现在系统中实现的SalaryComponent,利用SalaryComponent自己的计算公式得出各自的结果,最后再进行一个累加和(当然也可以是其他更复杂的处理,只不过我觉得既然已经封装了,那么最后在封装的时候就考虑好这些处理),便能得到我们需要的薪酬。
第二个问题,计算公式的实现。在对第一问题的处理中,提到了一个SalaryComponent自己的计算公式,我们的第二个问题实际上主要针对的便是这个问题。如何通过计算公式的通用性来达到我们SalaryComponent的通用。简单的举一个例子来说,比如有一个叫“福利工资”的SalaryComponent他以前的计算公式不适用了,现在需要另用一套计算公式,但公司又不想重新开发一系统,只要业务人员改变一些设置原来的系统又能继续跑了。另外,变化比较大的情况下,公司上市了,员工的整套薪酬制度都要重新规划,但又不想换系统,因为一套人力系统从需求调研到最终的上使用一般都需要9个月以上的时间。这段期间公司如果还用以前的系统的或者直接不用系统的话肯定会弄得一团糟。
所以,我觉得在第二个问题的解决上,可以实现计算方法
DIY化,即让管理员自己设置计算公式。整个“DIY”界面就像一个强大的计算器(这个肯定比一般的计算器要强大,因为它还得实现各种复杂的函数功能,比如分段函数,递归函数,循环函数等等)。那么,这种计算就必须要一个强大的函数计算库来支持,就像Java.util.Math一样,只不过这里需要实现的比这个更具体,逻辑更接近业务。这里,我们可以有一个Arithmetic接口,统一所有的薪资计算。Arithmetic.calculate()实现所有的计算功能;一个Function虚拟基类,储存计算需要的环境,如参数。每一个具体的计算函数类需要继承Function,并实现Arithmetic接口。每一个计算类都应该在页面上找到对应的表示,并且通过管理员的赋值实现不同的实例化。
对于管理员设计的计算方法的存储成为这个薪资计算的最后一道工序。前面我们提到我们是通过SalaryComponent调用自己的计算公式来实现计算。最后对SalaryComponent再进行Operate,那么我们进行存储的时候第一级便是SalaryComponent及SalaryComponent之间的Operate,第二级是Function及Function之间的Operator。
这样系统在每次进行薪酬计算的时候首先进行运算组装。然后再进行计算。
但我觉得在最后的调用过程中还会涉及到一个性能瓶颈问题,如果,我们可以将存储的计算固化,也就是直接形成一个计算公式,在新计算形成之前不做改变。这样就可以大大的提交性能问题了,因为它减少了N次查询。当然用池化管理也可以解决这个问题。但这个可控性实在是不强。
分享到:
相关推荐
系统设计章节深入讨论了工资管理模块的设计原则,功能模块的划分,以及环境配置。数据库设计是核心部分,包括概念设计、逻辑设计和物理设计,确保数据的结构化和高效访问。此外,代码设计和界面设计也至关重要,良好...
PB工资管理系统设计是一个基于PowerBuilder 9.0的项目,主要目标是开发一套能够有效管理企业员工工资的软件系统。这个系统设计适用于毕业设计,它涵盖了文献综述和开题报告两个重要阶段,旨在深入研究工资管理系统的...
企业工资管理系统是一款专门为企事业单位设计的用于自动化管理员工薪资发放、计算、调整及记录的软件系统。本方案详细阐述了该系统的开发背景、设计原则、技术选型以及具体功能实现。 第一章 绪论中,首先介绍了...
系统设计遵循结构化设计方法,职工信息以文件形式存储,通过简单的字符界面与用户交互。主函数作为系统入口,负责流程控制;显示函数展示职工信息;录入函数允许用户输入新的信息;查询函数支持按特定条件查找信息;...
《人事考勤管理系统设计》是一份详尽的文档,旨在阐述如何构建一个人事考勤管理的信息化解决方案。本文档深入探讨了系统的需求、设计、数据库规划以及功能模块的实现,以满足现代企业对人力资源管理的需求。 首先,...
【人事工资管理系统设计与实现】 本系统是一款专用于管理企业员工工资的软件,采用Microsoft Visual Foxpro 6.0作为开发工具,具有高效稳定的特点。系统的核心功能包括工资信息的录入、查询、编辑以及工资发放的...
【VB小型企业工资管理系统设计】是一项针对中小型企业薪资管理需求而开发的应用程序,它结合了Visual Basic(VB)编程语言的易用性和数据库管理功能,为企业的工资计算、发放及统计提供了一体化的解决方案。...
《人事管理系统设计与实现》是一篇关于计算机科学与技术专业的毕业论文,由曹家旭同学在2013年完成,指导教师为刘娟助教。这篇论文详细探讨了如何设计和实现一个人事管理系统,利用现代计算机技术提升企业人事管理的...
【软件工程】工资管理系统方案是针对企业或组织内部人力资源管理中的薪资发放环节而设计的一套系统,旨在提高薪酬计算的效率、准确性和自动化程度。该系统通常包括多个功能模块,涵盖了从员工信息管理、薪酬计算、...
同时,会讨论到系统的架构设计,如采用MFC(Microsoft Foundation Classes)框架进行开发,以及可能采用的模块化设计,比如员工管理模块、工资计算模块、报表生成模块等。 在实现过程中,论文可能深入讲解了VC++...
整个设计涵盖了VF6.0(Visual FoxPro 6.0)的项目管理、数据库设计、表单设计、菜单设计、SQL语言应用等多个方面,提供了一个实际的工资管理解决方案,对于学习数据库应用和企业信息管理系统开发具有参考价值。
总的来说,VB工资管理系统利用VB强大的编程能力,结合实际业务需求,构建了一套完整的薪资管理解决方案。通过深入理解和实践,不仅能提升开发者的技术水平,也能为企业带来高效、精准的工资管理体验。
《VB工资管理系统设计与实现》是一项基于Visual Basic (VB) 的毕业设计项目,它涵盖了数据库管理、用户界面设计以及程序逻辑构建等多个IT领域的关键知识点。在这个系统中,开发者利用VB的强大功能来创建一个高效、...
系统设计应确保在整个公司范围内易于使用,以实现各部门间的协同工作。 **二、项目可行性研究** 1. **技术方面** 系统作为一个大型MIS系统,虽然在组织结构上有一定复杂性,但核心仍为数据库应用,涉及基本的添加...
方案涵盖了从项目背景、可行性研究到系统模块设计、硬件需求、数据库设计等多个关键环节。 一、项目开发背景 该项目的开发背景是为了提升公司内部管理效率,通过构建一个全面的内部管理系统,使得公司在各个部门...
《工资管理系统概要设计说明书》是对企业内部薪资管理流程进行数字化改造的重要文档,旨在提供一套高效、准确且易于操作的系统设计方案。以下是对该文档各部分的详细解读: 1. 引言 - **编写目的**:这部分阐述了...
6. **答辩准备**:在答辩环节,学生需要对系统进行演示,并准备好回答关于系统设计、功能实现、技术选择等方面的问题。答辩的成功与否,很大程度上取决于学生对项目的理解和掌握程度。 7. **实际应用与未来展望**:...
下面将详细讨论系统的设计方案和涉及的关键知识点。 1. **数据结构与结构体**: 系统中,教师的工资信息被定义为一个结构体`TEACTHERSALARY`,包含以下字段:编号`code`、姓名`name`、基本工资`basic`、扣款`...