高校数字化编外人员管理系统设计

2024-06-26 11:25胡易
电脑知识与技术 2024年13期
关键词:程序设计信息化

胡易

摘要:在当今信息技术迅猛发展的时代背景下,文章紧密结合高校编外人员的人事管理工作,深入分析了高校自主开发编外人员管理系统的可行性。文章以RuoYi-Vue(一种基于SpringBoot和Vue的前后端分离的Java快速开发框架)为项目脚手架,从编外人员的管理需求分析、数据库架构设计以及功能实现等关键环节出发,详细展示了一种经济高效的编外人员管理系统开发路径。希望通过这一系统,能够辅助高校编外人员管理实现信息化、智能化的转型。

关键词:编外人员管理;信息化;程序设计

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2024)13-0051-04 开放科学(资源服务)标识码(OSID) :

1 高校编外人事系统现状

人事工作作为高校行政管理工作中的重要一环,涉及大量的统计、汇总工作。传统的工作模式依赖人工,存在效率不高和数据容易出错的问题。随着信息时代的到来,高校人事工作也转换了新模式,引入了相应的人事系统。在提升办事效率的同时,数据的准确性也得到了保障。但是早期的人事系统往往只关注编内人员信息的维护和统计,不涉及编外人员部分[1]。对于高校而言,尤其是高职院校,对现有系统的采购和升级往往伴随着巨额的经济投入。即便面临部分功能缺失的问题,短期内也难以实现新功能的增补。科技进步的步伐虽快,却常因资金等限制在高校中难以得到有效应用,这一现象无疑令人遗憾。这也导致高校中的编外人员往往未能被纳入信息化系统的覆盖范围,从而在信息管理的进程中处于边缘地位。而编外人员信息化管理又是高校人员身份信息化数据治理的大势所趋[2]。所以如何找到经济可行的方案将编外人员进行信息化管理,已成为当前亟待解决的问题。

2 自主设计开发系统的可能性

在传统的人事系统设计中,B/S架构的WEB开发模式被广泛采用。用户无须安装专门的客户端,仅通过浏览器即可进行业务操作,因此设计开发工作主要集中在服务器端。过去,大多数系统基于Microsoft公司的ASP(Active Server Pages) 技术[3] 或Sun 公司的J2EE(Java 2 Platform Enterprise Edition) 架构[4]进行开发,但这些技术存在开发周期长、需要众多开发人员的缺点。对于普通高校,特别是高职院校而言,具备相关专业知识的教师数量和精力都难以支撑如此大规模的系统设计开发。从技术发展的角度看,上述两种技术已逐渐显得过时。近年来,随着Java平台上Spring Boot这类快速应用开发框架的兴起,服务器端程序开发的效率得到了显著提升。国内开发者更是基于服务端Spring Boot框架,结合前端技术如Vue或React,整合出了诸如RuoYi、JEECG BOOT等完整的快速开发脚手架,进一步降低了B/S架构的WEB开发难度。这使得即使在预算有限的情况下,具备相关专业知识的教师也能通过短暂学习,针对学校自身需求开发出一套符合业务要求的编外人员信息系统。对学校而言,采用这种方案有两大优点。一是与原来的ASP技术相比,Spring Boot开发的项目不再局限于Mi?crosoft Windows平台,可以运行在开源的Linux服务器上,从而降低了服务器成本。二是诸如RuoYi、JEECG BOOT等均为开源项目(其中RuoYi遵循MIT 协议,JEECG BOOT遵循Apache-2.0协议),基于此进行开发无须担心授权费用等问题。

3 编外人员管理系统技术选型

在技术的选型上,依托开源项目进行开发,在人力资源投入和资金成本方面均展现出显著优势。但不同的开源协议具有不同的条款和限制,从后续开发的限制程度、搭配数据库是否开源等角度考虑,此处选择了更为合适的基于MIT协议的RuoYi-Vue(一个基于SpringBoot+Vue 前后端分离的Java 快速开发框架),后文简称RuoYi-Vue。RuoYi-Vue对应的前端框架为Vue和Element UI,后端则基于Spring Boot。服务器上,可以选择开源的MySQL社区版数据库作为数据源,并选用开源的Redis(Key-Value 数据库)来配合MySQL进行数据缓存。采用这一技术体系组合,是基于以下几个方面的优势考虑。首先,在成本效益方面,开源软件显著降低了购买商业软件许可证的成本。其次,在灵活性方面,它允许根据不断变化的业务需求进行个性化定制,而不必受制于商业软件提供商的产品规划。在维护性方面,众多开源项目享有活跃的社区支持,确保了软件能够定期更新,及时修复缺陷并优化性能,从而避免了商业软件供应商撤出市场后可能出现的维护真空问题。最后,在安全性和透明度方面,开源软件的源代码公开性有助于更迅速地识别和修复安全漏洞。

4 编外人员管理系统需求分析

编外人员管理系统作为人事系统的一个特殊分支(或子集),涵盖了人事管理系统所必备的四大功能:用户管理、角色管理、机构(部门)管理以及日志记录。同时,针对编外人员的特性,系统还应关注以下几个功能:1) 人员基本信息展示:详细展示姓名、身份证号、性别、政治面貌、学历、职称与技能等级、用工方式、是否为退休返聘、本单位工作年限等关键个人信息。2) 岗位信息管理:记录岗位分类、所在部门以及从事的具体岗位。3) 合同管理功能:管理合同的签订情况,包括历次合同的起始与结束日期,以便于随时查阅合同执行与续签情况。4) 收入管理功能:精确记录基本工资、绩效工资等收入信息,为薪酬管理提供清晰的数据支持。5) 条件化查询与数据导出:系统提供针对上述四个方面的灵活查询和数据导出功能,以便于快速检索和分析人员信息,从而提升管理效率。

5 编外人员管理系统功能设计

根据以上需求,系统设计分为两大模块:1) 通用管理系统模块。2) 针对编外人员管理业务的专用模块(查询和导出模块嵌入到编外管理系统专用模块中),如图1所示。其中通用管理系统模块,RuoYi-Vue快速开发平台中代码已经实现。

5.1 人员信息功能设计

在提取需求分析中的信息时,除了涵盖基本的人员信息,如姓名、身份证号、性别、政治面貌、出生日期、民族、籍贯、职称与技能等级,以及用工方式、是否退休返聘、在本单位的工作年限外,还应将个人对应的岗位信息整合其中,以便于进行综合展示。因此,设计时应包含展示个人对应的岗位分类、岗位分类下的专项以及具体从事的岗位。同样地,社保的缴纳状态、公积金的缴纳状态、工资资金来源等与个人紧密相关的信息也应在人员信息中一并展示。对于新建的人员,应赋予其登录权限,并分配查看和修改自己相关信息的角色权限。基于上述要求,最终数据库中人员信息表的建表语句如下:

CREATE TABLE `sys_people` (

`people_id` bigint NOT NULL AUTO_INCREMENT COMMENT ′人员ID′,

`user_id` bigint DEFAULT NULL COMMENT ′用户ID(和登录用户对应)′,

`login_name` varchar(30) DEFAULT NULL COMMENT ′登录名-用于创建账号的时候使用′,

`dept_id` bigint DEFAULT NULL COMMENT ′部门id′,

`identification_number` varchar(18) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT ′00′ COMMENT ′身份证号′,

`user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT ′′COMMENT ′用户姓名(创建时同步填充到user 昵称中)′,

`gender` char(1) DEFAULT NULL COMMENT ′用户性别(0男 1女 2未知)′,

`political_status` varchar(100) CHARACTER SETutf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ′政治面貌′,

`degree` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ′学历′,

`birthday` date DEFAULT NULL COMMENT ′ 生日′,

`ethnic` varchar(30) DEFAULT NULL COMMENT ′ 民族′,

`origin` varchar(50) DEFAULT NULL COMMENT ′ 籍贯′,

`title` varchar(30) DEFAULT NULL COMMENT ′职称或技能等级′,

`hire_method` varchar(50) DEFAULT NULL COMMENT ′用工方式′,

`retired` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ′是否退休返聘(Y表示是,N表示否)′,

`position_kind` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ′岗位分类′,

`position` varchar(30) DEFAULT NULL COMMENT ′岗位分类专项′,

`work_detail` varchar(30) DEFAULT NULL COMMENT ′具体从事岗位′,

`social_security` char(1) DEFAULT NULL COMMENT ′是否缴纳社保(Y表示是,N表示否)′,

`housing_provident_fund` char(1) DEFAULT NULL COMMENT ′是否缴纳住房公积金(Y表示是,N表示否)′,

`source` varchar(30) DEFAULT NULL COMMENT ′ 资金来源′,

`start_work_time` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ′参加工作时间′,

`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ′备注′,

`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT ′′COMMENT ′创建者′,

`create_time` datetime DEFAULT NULL COMMENT ′创建时间′,

`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT ′′COMMENT ′更新者′,

`update_time` datetime DEFAULT NULL COMMENT ′更新时间′,

`del_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT ′0′ COMMENT ′删除标志(0代表存在 2代表删除)′,

PRIMARY KEY (`people_id`) USING BTREE

) ENGINE=InnoDB AUTO_INCREMENT=115 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT=′人员信息表′;

其中的login_name字段对应到系统内置用户信息表(RuoYi-Vue的sys_user表)中的user_name字段,而人员信息的真实姓名user_name字段对应到用户信息表nick_name字段。这样设计是为了考虑教师存在重名的情况,但是登录名user_name不能重复,所以分开设置。而dept_id 表示的部门id 和用户信息表dept_id意义一样,这样方便在新建人员的过程中能够建立用户、赋予预置角色。同时,该表并没有和用户信息表建立外键关联,主要是为了保持结构的简化和未来的可扩展性,并且避免了级联操作带来的性能问题。表里的del_flag字段用来进行软删除,对于删除人员,为了防止以后要恢复,设置为通过del_flag来标记删除,而不对数据库进行真实删除操作。对应删除功能的MyBatis的语句为:

通过这样的表结构设计,在充分利用系统已有的用户信息的同时,人员信息模块能相对实现低耦合。

5.2 合同信息功能设计

合同的关注点主要在于签订的次数和时段,因此,数据库设计人员在设计合同表时应当包括以下几个字段:合同id、合同开始时间、合同结束时间以及合同类型。此外,由于合同与人员之间存在多对一的关系,所以合同表中还应包含人员id字段。为了与上面人员信息设计的思路保持一致,并为了方便数据的恢复,人员合同表依旧使用删除标志来实现“软删除”。因此建表语句如下:

CREATE TABLE `business_contract` (

`contract_id` bigint NOT NULL AUTO_INCREMENT COMMENT ′合同id′,

`people_id` bigint NOT NULL COMMENT ′ 人员id′,

`start_time` date NOT NULL COMMENT ′合同开始时间′,

`end_time` date DEFAULT NULL COMMENT ′合同结束时间′,

`contract_type` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ′合同类型′,

`delete_flag` char(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT ′删除标志′,

PRIMARY KEY (`contract_id`)

) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT=′人员合同表′;

对于合同而言,合同结束时间肯定小于合同开始时间,所以在前端可以加入函数验证,防止填写错误导致数据问题。验证函数为:

delete_flag 字段和前面人员信息表的del_flag 字段设计一致,就不赘述了。

5.3 收入信息功能设计

收入功能的设计需要考虑两个方面:一是每月个人的工资情况,二是每月的收入汇总。而这两方面依据参考文献[5]中的工资结构、设置薪级、岗位工资、薪级工资、基础性绩效、奖励性绩效以及它们的合计(作为收入合计)等字段。同时考虑业务上的需求,对收入数据提供锁定字段salary_lock,实现锁定功能。在工资发放后可对数据进行锁定,保证数据不再被修改。人员收入表的建表语句如下:

CREATE TABLE `business_salary` (

`id` bigint NOT NULL AUTO_INCREMENT COMMENT ′薪水id′,

`peopleId` bigint NOT NULL COMMENT ′人员id′,

`level` int NOT NULL COMMENT ′当前薪级′,

`foundational_performance` int NOT NULL COMMENT ′基础性绩效′,

`reward_subsidy` decimal(7, 2) NOT NULL COMMENT ′奖励性绩效′,

`position_salary` int NOT NULL COMMENT ′岗位工资′,

`salary_grade` int NOT NULL COMMENT ′薪级工资′,

`total_salary` decimal(9,2) NOT NULL COMMENT ′ 收入合计′,

`salary_date` date NOT NULL COMMENT ′工资发放日期′,

`salary_lock` int NOT NULL COMMENT ′工资是否锁定′,

`salary_sumid` int NOT NULL COMMENT ′对应人员汇总表id′,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT=′人员收入表′; 对应的人员收入汇总表建表语句如下:

CREATE TABLE `business_salary_sum` (

`salary_sum_id` bigint NOT NULL AUTO_INCREMENT COMMENT ′收入汇总表id′,

`foundational_performance_sum` int NOT NULL COMMENT ′基础性绩效汇总′,

`reward_subsidy_sum` decimal(7, 2) NOT NULL COMMENT ′奖励性绩效汇总′,

`position_salary_sum` int NOT NULL COMMENT ′ 岗位工资汇总′,

`salary_grade_sum` int NOT NULL COMMENT ′薪级工资汇总′,

`total_salary` decimal(10,2) NOT NULL COMMENT′收入合计汇总′,

`salary_date` date NOT NULL COMMENT ′工资发放日期′,

`salary_lock` int NOT NULL COMMENT ′工资是否锁定,1表示锁定,0表示未锁定′,

PRIMARY KEY (`salary_sum_id`)

) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT=′人员收入汇总表′;

这样设计中,针对同一月份的同类型数据,人员收入表中个人数据项之和将直接对应人员收入汇总表中的相应数据值。因为专门设定了锁定字段,在对数据的修改和删除时,应该检验数据是否为锁定状态。如为锁定,则拒绝修改、删除。在实现service层代码中加入工资锁定状态的判断代码如下:

鉴于人员收入汇总表与人员收入表之间存在数值上的累加关系,对人员收入表的每一次数据增加、删除或修改操作,都必须相应地同步更新汇总表,以保持数据的一致性和准确性。

6 结束语

随着计算机技术的不断进步,如今B/S 架构的WEB开发难度已大为降低,众多开源项目的涌现进一步提升了开发效率。这使得普通高校,甚至实力相对较弱的高职院校,也能依靠自身设计并开发出一套满足自身业务需求的编外人员管理系统。本系统的设计旨在满足基本工作场景需求的同时,提升工作效率,减少统计工作中的错误。此外,它还节约了人事部门的人力物力,为推进智慧化校园建设贡献力量。

参考文献:

[1] 岳建人. H公立高校编外教职工管理问题及对策研究[D].郑州:华北水利水电大学,2021.

[2] 叶宁. 高校人员身份信息化数据治理策略研究[J]. 信息记录材料,2023,24(10):16-19.

[3] 吕睿光. 高校人事管理系统的设计与实现[D]. 长春:吉林大学,2013.

[4] 张计龙,张成洪,张凯,等. 基于改进MVC的高校人事管理系统[J]. 计算机工程,2004,30(8):191-194.

[5] 张畅. 地方普通高校机关行政人员绩效工资分配改进研究[D]. 昆明:云南大学,2021.

【通联编辑:代影】

基金项目:2023 年云南体育运动职业技术学院校级科研项目“高校数字化编外人员管理系统设计——以云南体育运动职业技术学院为例”(项目编号:YNTZ2023014)

猜你喜欢
程序设计信息化
月“睹”教育信息化
月“睹”教育信息化
幼儿教育信息化策略初探
基于Visual Studio Code的C语言程序设计实践教学探索
从细节入手,谈PLC程序设计技巧
“云会计”在中小企业会计信息化中的应用分析
高职高专院校C语言程序设计教学改革探索
OBE理念下基于Greenfoot的Java程序设计课程教学改革
PLC梯形图程序设计技巧及应用
三级甲等公立医院绩效考核程序设计