朱書(shū)彪 鄒小慧
摘要:為了解決兒童體測(cè)數(shù)據(jù)難以統(tǒng)計(jì)處理的問(wèn)題,研究了一種基于B/S架構(gòu)的兒童體測(cè)數(shù)據(jù)分析系統(tǒng)。采用了SpringBoot、Mybatis、LayUI等主流Web開(kāi)發(fā)技術(shù),實(shí)現(xiàn)了幼兒園、小學(xué)、初中三個(gè)階段的兒童體測(cè)數(shù)據(jù)分析功能。依據(jù)國(guó)家標(biāo)準(zhǔn)對(duì)兒童的體測(cè)數(shù)據(jù)進(jìn)行自動(dòng)化分析,并生成相應(yīng)的電子報(bào)告和PDF報(bào)告。系統(tǒng)在設(shè)計(jì)上綜合考慮多方面因素,為學(xué)校和培訓(xùn)機(jī)構(gòu)提供了體測(cè)報(bào)表管理、體測(cè)數(shù)據(jù)錄入分析、體測(cè)報(bào)告管理、報(bào)告?zhèn)€性化設(shè)計(jì)、電子版報(bào)告查詢等實(shí)用性的功能。
關(guān)鍵詞:SpringBoot;LayUI;B/S架構(gòu);兒童體測(cè);數(shù)據(jù)分析
中圖分類(lèi)號(hào):TP311? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2022)17-0041-03
1引言
我國(guó)教育在發(fā)展過(guò)程中,始終強(qiáng)調(diào)素質(zhì)教育的重要性,高舉“德智體美勞”全面發(fā)展的大旗,破除應(yīng)試教育的壁壘?!笆奈濉币?guī)劃中提出體育在五育中占據(jù)重要地位,體育的發(fā)展關(guān)乎人類(lèi)的可持續(xù)健康發(fā)展[1]。但是在當(dāng)下,我國(guó)大部分學(xué)校的體育教育并非為了學(xué)生強(qiáng)身健體、更不是培養(yǎng)學(xué)生的體育興趣,而是為了讓學(xué)生能夠在中考體育中獲得更高的分?jǐn)?shù)。有研究表明,中考體育確實(shí)在一定程度上提高了學(xué)生的身體素質(zhì),但是沒(méi)有達(dá)到培養(yǎng)學(xué)生終身體育的目的,大多數(shù)學(xué)生在考試結(jié)束后就將體育拋棄[2]。
近年來(lái),在國(guó)家政策的引導(dǎo)下,越來(lái)越多的學(xué)校逐漸重視學(xué)生體育素質(zhì)的提升,但體測(cè)工作十分煩瑣,僅僅依靠于人工統(tǒng)計(jì)分析,不僅耗時(shí)長(zhǎng),并且容易發(fā)生錯(cuò)誤,也很難給到老師和學(xué)生反饋建議[3]。因此設(shè)計(jì)開(kāi)發(fā)一個(gè)兒童體測(cè)數(shù)據(jù)分析系統(tǒng)具有很大的必要性。本文主要研究?jī)和w測(cè)數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā),嚴(yán)格按照國(guó)家相關(guān)標(biāo)準(zhǔn)——《國(guó)民體質(zhì)測(cè)定標(biāo)準(zhǔn)手冊(cè)(幼兒部分)》《國(guó)家學(xué)生體質(zhì)健康標(biāo)準(zhǔn)(2014 年修訂)》對(duì)兒童的體測(cè)數(shù)據(jù)進(jìn)行分析評(píng)測(cè),不僅可以幫助學(xué)校、培訓(xùn)機(jī)構(gòu)等體測(cè)組織者完成兒童的體測(cè)數(shù)據(jù)統(tǒng)計(jì)分析,還可以給學(xué)生、家長(zhǎng)、老師相應(yīng)的反饋報(bào)告,使得體測(cè)工作能夠順利進(jìn)行。
2 系統(tǒng)總體設(shè)計(jì)
2.1 系統(tǒng)用戶群體分析
在項(xiàng)目開(kāi)發(fā)之前對(duì)用戶群體進(jìn)行分析是至關(guān)重要的一個(gè)步驟,了解系統(tǒng)使用者的需求有利于后期產(chǎn)品的普及[4]。在本系統(tǒng)中,使用者主要包括系統(tǒng)管理運(yùn)營(yíng)人員、幼兒園和中小學(xué)負(fù)責(zé)體測(cè)的教師、兒童體育培訓(xùn)機(jī)構(gòu)的機(jī)構(gòu)老師以及學(xué)生家長(zhǎng)。針對(duì)不同的用戶群體,將系統(tǒng)分為了三個(gè)不同的端口,為系統(tǒng)運(yùn)營(yíng)人員建設(shè)管理員端,功能強(qiáng)大,可以對(duì)系統(tǒng)情況、用戶信息、體測(cè)數(shù)據(jù)等內(nèi)容進(jìn)行統(tǒng)一的管理;為學(xué)校、培訓(xùn)機(jī)構(gòu)的體測(cè)教師分別學(xué)校端和場(chǎng)館端,界面美觀、操作方便,可以根據(jù)需求對(duì)PDF報(bào)告進(jìn)行個(gè)性化設(shè)計(jì);為家長(zhǎng)和學(xué)生提供家長(zhǎng)端,考慮到App開(kāi)發(fā)成本大、使用成本高的弊端,家長(zhǎng)端采用公眾號(hào)平臺(tái),為家長(zhǎng)提供查詢報(bào)告的功能。
2.2 系統(tǒng)架構(gòu)設(shè)計(jì)
本系統(tǒng)采用當(dāng)下流行的SpringBoot、MyBatis、LayUI、SpringSecurity等框架進(jìn)行項(xiàng)目代碼的開(kāi)發(fā),使用MySQL數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)的存儲(chǔ),使用七牛云CDN存儲(chǔ)系統(tǒng)圖片文件。項(xiàng)目的系統(tǒng)架構(gòu)圖如圖1所示:
2.3 系統(tǒng)主要功能
體測(cè)老師在線下為學(xué)生進(jìn)行測(cè)試,統(tǒng)計(jì)學(xué)生體測(cè)數(shù)據(jù),通過(guò)系統(tǒng)進(jìn)行數(shù)據(jù)導(dǎo)入,系統(tǒng)可以自動(dòng)根據(jù)國(guó)家規(guī)定的體測(cè)標(biāo)準(zhǔn)對(duì)數(shù)據(jù)進(jìn)行智能化分析,為學(xué)生生成體測(cè)報(bào)告,報(bào)告分為PDF版和電子版,體測(cè)老師可以在學(xué)校端、場(chǎng)館端管理學(xué)生的體測(cè)數(shù)據(jù)以及體測(cè)報(bào)告;家長(zhǎng)可以通過(guò)關(guān)注公眾號(hào)查詢學(xué)生的電子版報(bào)告;管理員可以對(duì)系統(tǒng)中所有的體測(cè)數(shù)據(jù)、學(xué)校/場(chǎng)館信息等內(nèi)容進(jìn)行管理。系統(tǒng)主要實(shí)現(xiàn)了以下功能:
1)系統(tǒng)用戶管理。
2)體測(cè)標(biāo)準(zhǔn)管理。
3)體測(cè)報(bào)表管理。
4)體測(cè)數(shù)據(jù)錄入分析。
5)體測(cè)報(bào)告管理。
6)報(bào)告?zhèn)€性化設(shè)計(jì)。
7)電子版報(bào)告查詢。
3 系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)
根據(jù)前期的需求分析,綜合考慮系統(tǒng)安全等各方面因素,系統(tǒng)設(shè)計(jì)了59張表,例如:體測(cè)標(biāo)準(zhǔn)表、體測(cè)數(shù)據(jù)表、體測(cè)項(xiàng)目表、用戶表等。該系統(tǒng)數(shù)據(jù)庫(kù)設(shè)計(jì)嚴(yán)格遵循第三范式設(shè)計(jì)原則,另外,考慮到物理外鍵的維護(hù)成本較高,所以本系統(tǒng)采用了目前較為成熟的邏輯外鍵,將一張表的主鍵作為字段設(shè)置到與其相關(guān)聯(lián)的表中,以此來(lái)映射兩張表之間的關(guān)系[5]。數(shù)據(jù)庫(kù)部分表結(jié)構(gòu)如圖2、圖3所示。
4.1數(shù)據(jù)管理分析
本系統(tǒng)支持幼兒階段(3~6歲)、小學(xué)、初中三個(gè)階段的數(shù)據(jù)分析,管理員預(yù)先將三個(gè)階段的體測(cè)項(xiàng)目、評(píng)分標(biāo)準(zhǔn)錄入至數(shù)據(jù)庫(kù)中。體測(cè)老師通過(guò)學(xué)校端/場(chǎng)館端可以將學(xué)生的體測(cè)數(shù)據(jù)導(dǎo)入系統(tǒng)中,系統(tǒng)可以自動(dòng)根據(jù)不同的學(xué)段匹配相關(guān)標(biāo)準(zhǔn),并給出對(duì)應(yīng)的分?jǐn)?shù),考慮到數(shù)據(jù)分析效率的問(wèn)題,本系統(tǒng)采用了多線程技術(shù),設(shè)計(jì)了優(yōu)質(zhì)的算法,提高了系統(tǒng)的運(yùn)行效率。為了滿足錄入時(shí)的不同需求,系統(tǒng)支持頁(yè)面表單數(shù)據(jù)提交、Excel批量導(dǎo)入兩種方式,不論是使用哪種方式,都提供了數(shù)據(jù)格式校驗(yàn)功能,避免了因數(shù)據(jù)格式不正確導(dǎo)致導(dǎo)入失敗的問(wèn)題。同時(shí),為了方便機(jī)構(gòu)和學(xué)校對(duì)數(shù)據(jù)的管理,系統(tǒng)支持標(biāo)簽功能,可以將體測(cè)數(shù)據(jù)分門(mén)別類(lèi)進(jìn)行管理。
客戶端通過(guò)HTTP協(xié)議將體測(cè)數(shù)據(jù)傳輸?shù)椒?wù)器端,服務(wù)器接收到數(shù)據(jù)后,采用多線程技術(shù)對(duì)每一條數(shù)據(jù)進(jìn)行分析,分析過(guò)程中需要將各數(shù)據(jù)項(xiàng)與相匹配的標(biāo)準(zhǔn)進(jìn)行比較,生成得分、評(píng)語(yǔ)、個(gè)人排名以及班級(jí)整體數(shù)據(jù)報(bào)告。數(shù)據(jù)管理分析部分代碼如下所示:
@PostMapping("/hallImport")
public AjaxResulthallImport(@RequestBodyRequestHallImportVorequestHallImportVo) {
hallDataService.hallImport(requestHallImportVo);
return AjaxResult.success();
}
@PostMapping("/importByExcel")
public AjaxResultimportByExcel(@RequestParam("file") MultipartFilemultipartFile,
@RequestParam(name = "tagName",required = false) String tagName) throws IOException {
hallDataService.importByExcel(multipartFile,tagName);
return AjaxResult.success("導(dǎo)入成功");
}
4.2 PDF報(bào)告生成
PDF報(bào)告生成功能在本系統(tǒng)中至關(guān)重要,在項(xiàng)目開(kāi)發(fā)前期,我們嘗試了多種生成PDF的方法,均不能達(dá)到預(yù)期的效果,例如使用Freemarker模板設(shè)計(jì)報(bào)告樣式,在通過(guò)Java語(yǔ)言調(diào)用打印PDF、使用ITEXT生成PDF等。最終,經(jīng)過(guò)嚴(yán)格的實(shí)驗(yàn),我們選擇了phantomjs,一個(gè)基于webkit的JavaScript API。它不僅是個(gè)隱形的瀏覽器,提供了諸如CSS選擇器、支持Web標(biāo)準(zhǔn)、DOM操作、JSON、HTML5、Canvas、SVG等,同時(shí)也提供了處理文件I/O的操作,從而可以向操作系統(tǒng)讀寫(xiě)文件等[5]?;趐hantomjs的強(qiáng)大功能,我們?yōu)椴煌A段的兒童分別設(shè)計(jì)了HTML報(bào)告模板,使用Java語(yǔ)言調(diào)用phantomjs,并且將分析的數(shù)據(jù)作為參數(shù)傳遞給HTML報(bào)告模板,HTML報(bào)告模板加載到數(shù)據(jù)后,phantomjs可以將當(dāng)前網(wǎng)頁(yè)轉(zhuǎn)成PDF格式,保存在服務(wù)器中,至此就完成了PDF報(bào)告的生成功能。PDF報(bào)告生成部分代碼如下所示:
try {
link = "phantomjs --debug=yes /root/PhantomJS/outputPDF.js " + path + uuid + hallGrformEntity.getStudentName() +".pdf\"file:///root/PhantomJS/bb/index3.html?" + URLEncoder.encode(link, "UTF-8") + "\"";
} catch (UnsupportedEncodingException e) {
log.error("UnsupportedEncodingException in link" + e);
}
link = link.replaceAll("%3D", "=");
link = link.replaceAll("%26", "&");
log.info(link);
Runtime run = Runtime.getRuntime();
String[] cmdA = {"/bin/sh", "-c", link};
int status = 0;
try {
Process pro = run.exec(cmdA);
status = pro.waitFor();
} catch (Exception e) {
log.info("phantomJs執(zhí)行出錯(cuò)了" + e);
return false;
}
4.3 電子報(bào)告查詢
電子報(bào)告查詢功能主要是為了方便家長(zhǎng)了解孩子的體測(cè)情況,電子版報(bào)告分為簡(jiǎn)版、詳版,同時(shí)為三個(gè)不同的學(xué)段設(shè)置了不同的樣式,在界面設(shè)計(jì)上符合了學(xué)生的年齡特征。家長(zhǎng)關(guān)注公眾號(hào)后,可以點(diǎn)擊進(jìn)入體測(cè)報(bào)告查詢?nèi)肟冢缓筝斎胧謾C(jī)號(hào)/11位編號(hào)即可查詢到孩子所有的體測(cè)報(bào)告信息。電子版報(bào)告查詢功能主要代碼如下所示:
public R queryByUuid(@RequestParam("uuid") String uuid) {
Map
TestDataEntitytiCeData = testDataService.queryByUuid(uuid);
if (ObjectUtils.isEmpty(tiCeData)){
throw new RRException("數(shù)據(jù)不存在");
}
TestGrformEntitytestGrformEntity = testGrformService.queryByUuid(uuid);
result.put("uuid", tiCeData.getUuid());
result.put("school", testGrformEntity.getSchoolName());
......(為result設(shè)置參數(shù))
return R.ok().put("result", result);
}
5系統(tǒng)效果展示
完成系統(tǒng)開(kāi)發(fā)后,將系統(tǒng)部署至阿里云服務(wù)器,并申請(qǐng)了域名,為全國(guó)200余家體育場(chǎng)館/學(xué)校提供了體測(cè)數(shù)據(jù)分析服務(wù)。目前系統(tǒng)還在不斷更新迭代,在未來(lái)還將提供高中、大學(xué)等學(xué)段的體測(cè)數(shù)據(jù)分析功能。系統(tǒng)部分運(yùn)行界面如圖4~圖8所示。
6 結(jié)束語(yǔ)
通過(guò)本系統(tǒng)的研究與應(yīng)用,為中小學(xué)幼兒園以及各大體育場(chǎng)館提供了技術(shù)上的幫助,有效解決了當(dāng)下體測(cè)數(shù)據(jù)難以統(tǒng)計(jì)、處理等問(wèn)題。為了保證系統(tǒng)后期的運(yùn)行與維護(hù),最終采用了阿里云服務(wù)器進(jìn)行項(xiàng)目的部署,同時(shí)還利用Jenkins+Gitee進(jìn)行持續(xù)集成,有助于系統(tǒng)的后期更新。項(xiàng)目上線后,首先在江西省南昌市試運(yùn)行,主要對(duì)象為南昌市各大幼兒園,試運(yùn)行結(jié)束后,我們根據(jù)實(shí)際用戶的意見(jiàn)對(duì)系統(tǒng)進(jìn)行了改進(jìn),例如,新增家長(zhǎng)分享報(bào)告功能、擴(kuò)充報(bào)告主題等功能。目前,系統(tǒng)使用者已經(jīng)超過(guò)100家單位,真實(shí)體測(cè)數(shù)據(jù)近2萬(wàn)條。下一步,我們將根據(jù)前期客戶的實(shí)際體驗(yàn),對(duì)系統(tǒng)進(jìn)行進(jìn)一步的升級(jí),提升客戶的使用效率,更加注重體驗(yàn)感,對(duì)報(bào)告的樣式進(jìn)行設(shè)計(jì),符合不同年齡段學(xué)生的特征。
參考文獻(xiàn):
[1] 李曉玥,曹林,趙旺,等.基于學(xué)生體測(cè)大數(shù)據(jù)的健康智能評(píng)價(jià)方法[J].辦公自動(dòng)化,2021,26(18):38-41.
[2] 胡娟.學(xué)生體質(zhì)健康標(biāo)準(zhǔn)數(shù)據(jù)管理系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].科技展望,2015,25(32):252-254.
[3] 鹿耀輝.中學(xué)生體測(cè)對(duì)學(xué)生鍛煉習(xí)慣的影響[J].體育風(fēng)尚,2021(8):265-266.
[4] 朱銳勛,黃亮,岳正江.基于Spring Boot的辦學(xué)質(zhì)量評(píng)估系統(tǒng)設(shè)計(jì)[J].信息技術(shù)與信息化,2022(3):134-137.
[5] ZuQingWebDriver自動(dòng)化測(cè)試工具(3)—PhantomJS的使用[EB/OL].[2021-06-20].https://www.cnblogs.com/zuqing/p/7298 266.html.
收稿日期:2022-03-16
作者簡(jiǎn)介:朱書(shū)彪(1998—),男,江西贛州人,信息系統(tǒng)項(xiàng)目管理師,助教,學(xué)士,主要研究方向?yàn)槠髽I(yè)信息化建設(shè);鄒小慧(1996—),女,廣西賀州人,學(xué)士,主要研究方向?yàn)檐浖到y(tǒng)建設(shè)。