基于Spring Boot框架的高职院校科研信息管理平台的开发与研究

2022-04-02 01:25胡世港,田樱
电脑知识与技术 2022年33期
关键词:数字化

胡世港,田樱

摘要:国内高职院校科研处多年以来一直采用传统的人工方式进行科研信息登记和科研绩效核算工作,科研信息仍然以纸质化方式保存,不便于长期存储和快速查询,也不便于科研数据的统计分析工作;科研绩效核算规则异常复杂,人工计算不仅容易出错,而且非常耗时耗力。因此,为了实现科研信息的数字化存储和查询,提高科研工作的信息化管理水平,笔者旨在为湖北职业技术学院开发一套科研信息管理软件,建立科研大数据平台,收集历年学校、各单位、教职工各级、各类科研数据,方便科研数据的查询和统计,支持科研数据采集、分析工作,促进科研信息公开,增强科研绩效信息透明度,推进学校科研工作的精细化管理,大幅提高科研工作效率。

关键词:科研信息管理平台;科研绩效;数字化;Spring Boot

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

文章编号:1009-3044(2022)33-0031-03

1 引言

虽然国家一直在大力推行高职院校信息化建设工作,但是由于建设经费不足等问题,导致各高职院校信息化建设工作推进较为缓慢;另外,高职院校缺少既懂软件开发又懂需求分析的专业教师,导致采购的软件项目上线后,并不能满足用户需求,又得不到及时的维护与升级,成为烂尾工程。另外,科学研究工作在高职院校越来越受到重视,高职院校建设科研管理信息系统,实现学校科研管理工作的信息化成为当前高职院发展的内在需求[1]。

目前湖北省内大部分高职院校还没有开发科研信息管理平台,仍然采用纸质方式归档和保存科研信息,科研信息的数字化管理水平亟待提升,必须搭建一个科研信息大数据平台,才能更好地完成科研信息的统计与分析工作。同时,现有的科研信息化管理仍旧停留在数据收集阶段,数据积累多,而对大数据的利用率极其低下,统计分析功能也比较简单[2]。

2 科研信息管理平台的需求调研

通过前期的需求调研,笔者拟研究和开发的科研信息管理平台,能够满足不同用户的需求,例如:教职工用户登录系统后,可以提交每年度的科研成果,快速查询自己的科研信息,同时可以查看自己的科研账户积分;一级审核员可以查看并初步审核本部门教职工提交的科研成果,审核不合格的,则通知教职工重新提交,审核合格的,相关科研成果会推送给二级审核员;二级审核员作为科研处的工作人员,可以最终审核各部门教职工提交的经过一级审核合格的科研成果,审核不合格,则通知教职工重新提交,审核合格后,系统会根据相应的计分规则核算科研绩效,并给予对应的科研积分。

研究工作从分析高职院校科研管理工作中的难点和痛点入手,深入一线了解科研工作人员以及教职工对软件系统的需求和期望;根据需求分析的具体内容,研究如何使用领域驱动建模技术,建立软件模型,做好软件设计工作,为下一步的软件开发及编码工作打好基础;基于良好的软件设计,开发团队将研究相应的手段和策略,去解决各个功能模块在开发过程中遇到的技术问题。

研究目标是构建强大而灵活的高职院校科研信息管理平台,采集历年各级各类已发表的科研成果,方便科研数据的查询、统计和分析,促进科研信息公开化,增强科研绩效透明度,使科研项目管理工作数字化、流程化、信息化,提高流程化管理质量[3],推进高职院校科研工作的精细化管理。项目开发的重点在于,科研信息管理平台要能够支持12种类型的科研成果的录入工作,并且导入近十年整个学校所有的历史科研成果,从而建立起一个完整的科研大数据平台,依托这个平台,可以根据关键字查询、统计和分析相关科研数据。项目开发的难点在于,科研绩效核算算法的设计与实现。不同类型的科研成果,积分计算方法不同,而且同一种科研成果下还要细分若干种类别,不同类别对应的分值大小不一样。另外,教师科研账户上的积分,每年要重新核算,每一年度的科研绩效积分只能往后使用两年,第三年需要清零。

3 科研信息管理平台的软件设计

3.1 系统架构设计

笔者采用Spring Boot+MyBatis框架改进Web体系结构的执行效率。 传统的使用Spring框架开发的Java EE项目中,存在大量的 XML 配置文件,导致Java EE项目变得越来越笨重,开发和部署效率因为烦琐的配置而降低。Spring Boot框架通过集成大量的几乎可以是零配置、开箱即用的第三方库,大大减少了配置代碼的编写工作,因此可以让开发者更加专注于软件项目的业务逻辑,从而提高开发效率。

3.2 数据库设计

根据《湖北职业技术学院科研工作考核和科研成果奖励办法》对科研成果的类型划分,结合需求分析,笔者在进行数据库设计时,定义了如下表结构:sr_project科研项目表,sr_writing著作表,sr_paper论文表,sr_literature文艺创作表,sr_patent专利表,sr_software软件著作权表,sr_prize获奖成果表, sr_subject课题表,sr_ transform成果转化表,sr_exchange学术交流表,sr_report调研报告表,sr_case案例表。其中,sr_project科研项目表是存放所有科研成果信息,便于计算科研积分,sr_prize获奖成果表可以保存教科研成果奖和学会奖信息。

3.3 系统功能设计

整个系统功能分为五大模块,分别是系统管理、基础设置、科研管理、审核管理和科研统计。系统管理模块包括用户管理、角色管理、部门管理和岗位管理。基础设置模块包括教师管理、职称管理、职位管理和学位管理;科研管理可以录入12种科研成果,分别是著作、论文、文艺创作、专利、软件著作权、教科研成果奖、学会奖、教科研项目、成果转化、学术交流、调研报告和案例;审核管理模块包括审核操作;科研统计模块包括科研成果和科研业绩。

在对外接口设计方面,系统应该能够在校园网内提供接口,将科研处的业务数据库与人事处、财务处等职能部门的数据库相衔接,从而实现数据的共享[4]。

3.4 UI设计

用户角色分为教职工、一级审核员、二级审核员和管理员四种,不同角色登录后看到的操作界面是不同的,其中教职工用户登录成功后即可进行科研成果的录入操作,科研成果录入界面(如图2所示);部门科研管理员和科研处审核员登录后,点击“审核管理”菜单中的“审核操作”子菜单,即可进入科研成果审核界面(如图3所示),分别进行一级和二级审核;管理员登录后,可进行系统管理和基础设置,查看科研统计信息。

4 科研信息管理平台的开发部署

笔者带领的软件开发团队在科研信息管理平台的开发过程中,使用软件工程中的瀑布模型来管理软件开发流程,基于需求分析,根据软件设计,按照模块化的编程思路,使用Java作为编程语言,采用Spring Boot+MyBatis框架,通过git工具完成团队协同开发工作。

对于项目开发的难点内容——科研绩效核算算法,开发团队做了精心的设计和优雅的实现。科研处审核员在对科研成果进行二級审核时,如果审核通过,则执行科研绩效核算算法。算法具体流程为,首先获取参与当前科研成果的所有教师;其次利用循环依次计算每位教师的科研绩效分数,计算科研绩效分数时要考虑当前科研成果中的学校排名和教师排名,以及不同科研成果类型对应的奖励分数;最后将此分数累加到教师当前年度总积分中。限于篇幅,下面仅展示部分核心代码:

public int auditProject(Project project) {

//判断二级审核是否通过,审核通过则开始核算科研绩效

TeacherProject tp = new TeacherProject();

p.setProjectId(project1.getProjectId());

/*获取参与当前科研成果的所有教师*/

List<TeacherProject> teacherProjects = teacherProjectMapper.selectTeacherProjectById(project1.getProjectId());

for (TeacherProject teacherProject : teacherProjects) {

Teacher teacher = teacherMapper.selectTeacherById(teacherProject.getTeacherId());

/*教师排序*/

int rank = Integer.parseInt(teacherProject.getRank() + "");

/*学校单位排序*/

int schoolrank = Integer.parseInt(teacherProject.getSchoolRank() + "");

/*根据不同的科研项目类型对象获取人数*/

Long peopleCount = 0L;

switch (Integer.parseInt(projectTypeId + "")) {

case 1:   /*编著*/

List<Writing> writings = writingService.selectWritingList(writing); break;

peopleCount = writings.get(0).getTotalpeople();

case 3:  /*文艺创作*/

List<Literature> literatures = literatureService.selectLiteratureList(literature);

peopleCount = Long.parseLong(literatures.get(0).getAuthorNumber());  break;

case 4:  /*专利获取人数*/

Patent patent = patentService.selectPatentByProjectId(project1.getProjectId());

peopleCount = patent.getTotalPeople(); break;

case 5:  /*软件著作权*/

List<Software> softwares = softwareServices.selectSoftwareList(software);

peopleCount = softwares.get(0).getTotalPeople(); break;

case 36:

case 37:   /*教科研成果奖、学会奖*/

Prize prize = prizeService.selectPrizeByProjectId(project1.getProjectId());

peopleCount = Long.parseLong(prize.getTotalPeople() + ""); break;

case 79:   /*成果转换*/

peopleCount = transformService.selectTransformList(transform).get(0).getTotalPeople(); break;

case 83:  /*学术交流不考虑人数*/

peopleCount = 1L; break;

case 98:  /*案例*/

srCase = srCaseService.selectSrCaseByProjectId(project1.getProjectId());

peopleCount = srCase.getPersonnelNumber();  break;

case 94:   /*调研报告*/

report = reportService.selectReportByProjectId(project1.getProjectId());

peopleCount = report.getPersonnelNumber();  break;

}

/*根据学校排序、教师排序获取科研绩效分*/

double realscore = SrmsUtil.computeBySchoolRank(schoolrank, rank, score, teacherProjects, peopleCount);

DecimalFormat formater = new DecimalFormat();

teacherProject.setScore(Double.parseDouble(formater.format(realscore)));

teacherProject.setScoreDetails(teacherProjectService.getMathScoreDetails(project.getProjectId(), peopleCount, isUseSchool, parameter, edition, teacherProject));

teacherProjectMapper.updateTeacherProject(teacherProject);

achievementService.insertAndUpdateAchievement(teacher, project1.getProjectYear(), realscore, projectTypeId, false);

}

}

return projectMapper.updateProject(project);

}

在经过严格的软件测试后,开发团队将该软件部署到Linux服务器上,通过nohup命令以jar包方式运行,用户即可通过浏览器访问并使用科研信息管理平台。

5 结束语与展望

在试用期稳定运行的科研信息管理平台,较好地满足了用户的需求,精确地实现了软件设计的目标,解决了两个关键问题,一是该平台可以很好地支持12种类型的科研成果的录入工作,并且导入了近十年学校教职工的历史科研成果,建立了一个方便进行关键字查询、统计和分析的科研大数据平台;二是开发出了科研绩效核算的高效算法,可以准确计算出不同类型的科研成果对应的积分,同时支持对教职工科研账户上的积分进行年度核算,规定当前年度的科研绩效积分有效期为两年,第三年清零该积分。

下一步,笔者将在科研信息管理平台的智能化方向做进一步的研究,利用Python可视化技术绘制图表,更人性化地展示科研数据[5],让管理员可以直观地掌握科研信息的实时动向,为学校领导在科研工作的决策上提供有价值的参考信息。另外,通过交互技术,以消息推送的方式,让教职工可以及时了解自己的科研账户积分,以便提前做好科研工作计划,随时掌控自己的科研绩效信息。

参考文献:

[1] 王松涛,沈宝国,谢中敏.基于工作流的高职院校科研管理信息系统设计[J].现代职业教育,2021(52):136-137.

[2] 董红娟,谢志昆,左薇,等.基于大数据环境的高校科研信息化探索[J].中国管理信息化,2019,22(13):180-183.

[3] 吴长付,付广青,杜平,等.科研项目全流程信息化管理系统的设计与实现[J].江苏农业科学,2019,47(12):338-342.

[4] 廖帅,吕卉,徐旭,等.基于SRM系统高校科研管理协同平台设计[J].电子技术与软件工程,2018(3):178-179.

[5] 贾玥,徐奕卓,李磊.大数据时代下高校科研管理工作的探索[J].赤峰学院学报(自然科學版),2018,34(3):69-70.

【通联编辑:谢媛媛】

猜你喜欢
数字化
数字化:让梦想成为未来
家纺业亟待数字化赋能
论经济学数字化的必要性
高中数学“一对一”数字化学习实践探索
高中数学“一对一”数字化学习实践探索
数字化制胜