向蘭宣
摘要:學(xué)生信息采集平臺基于B/S架構(gòu),采用ThinkPHP 5.1版本PHP開發(fā)框架,利用WarmpServer 3.1集成開發(fā)環(huán)境在Windows Server2016服務(wù)下搭建Web服務(wù)器,平臺中前端主要利用BootStrap和JQuery框架,后端采用PHP開發(fā)語言,以MySQL作為系統(tǒng)數(shù)據(jù)庫進(jìn)行ThinkPHP 5.1下的MVC設(shè)計開發(fā)。平臺具備基礎(chǔ)信息從教務(wù)系統(tǒng)同步和利用PHPExcel實現(xiàn)Excel格式數(shù)據(jù)的導(dǎo)入導(dǎo)出功能,能按業(yè)務(wù)流程自動生成采集的基礎(chǔ)資料。核心模塊包含數(shù)據(jù)同步、數(shù)據(jù)采集、數(shù)據(jù)審核、數(shù)據(jù)統(tǒng)計、用戶及權(quán)限管理等模塊。圍繞學(xué)生信息的采集的流程,結(jié)合各個功能模塊,實現(xiàn)學(xué)生信息采集的高度信息化。
關(guān)鍵詞:同步;采集;MVC
中圖分類號:TP311? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號:1009-3044(2020)32-0093-03
Abstract: Based on B/S architecture, the student information collection platform adopts ThinkPHP 5.1 PHP development framework and warmpserver 3.1 integrated development environment to build a web server under the service of Windows Server 2016. The front end of the platform mainly uses bootstrap and jQuery framework, the back end uses PHP development language and MySQL as the system database to design and develop MVC under ThinkPHP 5.1. The platform has the functions of synchronization of basic information from the orthodox educational administration system and import and export of Excel format data with PHPExcel, and can automatically generate the collected basic data according to the business process. The core modules include data synchronization, data collection, data audit, data statistics, user and authority management. Around the collection process of student information, combined with various functional modules, to achieve a high degree of information-based student collection.
Key words: synchronization; collection; MVC
1 問題的提出
學(xué)生信息采集主要是在入學(xué)時完成的,首先是學(xué)生在報到時完成學(xué)生的核心基本信息填寫,主要用于新生基本信息的一個紙質(zhì)存檔。而對例如教務(wù)處所需要的分班情況,學(xué)生處所需要的是否建檔立卡貧困家庭、是否常住農(nóng)村等信息,招生就業(yè)處所需要生源地等信息,后勤服務(wù)中心所需要的宿舍就住情況,保衛(wèi)處所需要的家庭詳細(xì)住址等信息是在后面逐漸完善,主要用于學(xué)生信息電子數(shù)據(jù)存檔,方便各個部門按需調(diào)用。收集學(xué)生信息的過程是各個輔導(dǎo)員或者各個班級為單位制作成Excel電子文檔,然后再將各個Excel合并過程中,在這個過程中,有的是輔導(dǎo)員制作的,有的是班委制作的,然后再進(jìn)行匯總的,這樣就導(dǎo)致匯總的數(shù)據(jù)出現(xiàn)錯列,數(shù)據(jù)不完整等錯誤。在各部門所需要數(shù)據(jù)時就會發(fā)現(xiàn)整個數(shù)據(jù)表信息不能用,又重新統(tǒng)計需要的數(shù)據(jù),這樣就造成學(xué)生、輔導(dǎo)員、二級教學(xué)單位反復(fù)統(tǒng)計類似格式的數(shù)據(jù)。大大降低了各個部門的辦事效率,在學(xué)生中也存在一定的負(fù)面影響。
2 解決辦法
利用ThinkPHP5.1+MySQL+WarmpServer 3.1等技術(shù)或平臺開發(fā)學(xué)生信息采集平臺。通過學(xué)生信息采集平臺完成學(xué)生所有數(shù)據(jù)信息的準(zhǔn)確、完整的采集。并在整個采集過程中,輔導(dǎo)員、二級教學(xué)單位、教務(wù)處隨時了解數(shù)據(jù)填寫的進(jìn)度。整個采集過程實現(xiàn)流程化、自動化、網(wǎng)絡(luò)化,可生成學(xué)生數(shù)據(jù)的各種統(tǒng)計報表或圖表,并實現(xiàn)根據(jù)指定字段導(dǎo)出數(shù)據(jù),滿足各個部門基礎(chǔ)數(shù)據(jù)的需求,大大提升了工作效率。
3 學(xué)生信息采集平臺的設(shè)計
3.1 基本數(shù)據(jù)的準(zhǔn)備
學(xué)生信息采集平臺所有基本數(shù)據(jù)從教務(wù)系統(tǒng)中同步或?qū)隕xcel格式文件。為了保證數(shù)據(jù)的一致性、準(zhǔn)確性和實時性,平臺所使用的學(xué)生基本信息、學(xué)院信息、專業(yè)信息、班級信息、教師信息直接從教務(wù)系統(tǒng)中同步。而對教務(wù)系統(tǒng)中沒有涉及的相關(guān)數(shù)據(jù)表利用PHPExcel框架實現(xiàn)Excel數(shù)據(jù)格式文件的導(dǎo)入。
數(shù)據(jù)的同步主要通過訪問教務(wù)系統(tǒng)提供的數(shù)據(jù)庫視圖形成的數(shù)據(jù)接口完成。由于教務(wù)系統(tǒng)所使用的Oracel數(shù)據(jù)庫,訪問其數(shù)據(jù)接口時必須安裝Oracel提供的客戶端訪問工具,并配置系統(tǒng)環(huán)境變量才可以正常訪問。ThinkPHP5.1下數(shù)據(jù)庫配置的核心代碼[1]如下:
// Query類,由于涉及到數(shù)據(jù)庫安全,以下配置具體參數(shù)為虛擬參數(shù)值
'query'? ? ? ? ? ?=> '\\think\\db\\Query',
'db_config1'? ? ? => [
// 設(shè)置數(shù)據(jù)庫類型為oracle
'type'? ? ? ? ? ? => '\think\oracle\Connection',
// 安裝Oracle數(shù)據(jù)庫服務(wù)器地址
'hostname'? ? ? ? => '192.168.1.1',
// Oracle數(shù)據(jù)庫名
'database'? ? ? ? => 'dbname',
// 訪問Oracle數(shù)據(jù)庫的用戶名
'username'? ? ? ? => 'yhm',
// 訪問Oracle數(shù)據(jù)庫的密碼
'password'? ? ? ? => 'mm',
// 訪問Oracle數(shù)據(jù)庫的端口
'hostport'? ? ? ? => '1521',
完成數(shù)據(jù)庫配置后,再在控制器中編制代碼完成數(shù)據(jù)的同步。具體實現(xiàn)同步時,主要是在前臺利用Ajax技術(shù)將相關(guān)業(yè)務(wù)需求提供給后臺控制器并在前臺無刷新的展示控制器處理后返回的同步結(jié)果。例如在專業(yè)信息同步中,單擊同步專業(yè)按鈕,可得到圖1專業(yè)同步信息展示所示內(nèi)容,讓用戶更好的知道數(shù)據(jù)同步的情況。
數(shù)據(jù)導(dǎo)入采用PHPExcel框架,再在公共函數(shù)中創(chuàng)建了基于Excel文件參數(shù)的導(dǎo)入類文件,主要通過PHPExcel讀取參數(shù)中Excel文件對象單元格的內(nèi)容,并將其存在數(shù)組中,最后通過批量插入的方式,將數(shù)組中的內(nèi)容添加到數(shù)據(jù)庫中,完成數(shù)據(jù)的導(dǎo)入。
3.2 信息采集模塊設(shè)計
信息采集模塊主要功能是學(xué)生完成監(jiān)護(hù)人姓名、身份證件號等非高考報名信息的填報。在模塊中學(xué)生的考生號、學(xué)號、姓名、性別、民族、身份證號、所屬專業(yè)、所屬二級學(xué)院等基本信息是不用學(xué)生填報的,直接實時同步教務(wù)系統(tǒng)學(xué)生基本信息并在本地數(shù)據(jù)庫中已存放,學(xué)生登錄時相關(guān)數(shù)據(jù)直接展示且不允許學(xué)生修改的??紤]到學(xué)生用戶訪問采集平臺方式以移動媒體(手機(jī)或平板)為主,該模塊制作時考慮了這一特點,利用BootStrap框架制作登錄界面。采集監(jiān)護(hù)人信息如圖2信息采集填報頁面所示。
在采集模塊中,學(xué)生錄入好各項基本信息后,單擊提交按鈕,完成信息的填報。為了減少服務(wù)器壓力,錄入的數(shù)據(jù)采集信息在前端通過JS驗證,驗證成功后再提交到后臺完成信息的填報。其核心代碼[3]為:
$arrtbsj=array();
$arrtbyx=array();
$arryxsh=db("xsxxtb")->distinct(true)->field("yxsh")->order("yxsh desc")->select();
foreach ($arryxsh as $key => $vo) {
$yxmc=$vo['yxsh'];
$tbjs=db("xsxxtb")->where("emailadd","not null")->where("yxsh",$yxmc)->count();
$wtbjs=db("xsxxtb")->where("emailadd","null")->where("yxsh",$yxmc)->count();
$tbzj=db("xsxxtb")->where("yxsh",$yxmc)->count();
$arrtbsj['tb']=$tbjs;
$arrtbsj['wtb']=$wtbjs;
$arrtbsj['tbzj']=$tbzj;
$arrtbyx[$yxmc]=$arrtbsj;
}
$tbs=db("xsxxtb")->where("emailadd","not null")->count();
$wtbs=db("xsxxtb")->where("emailadd","null")->count();
$tbzs=db("xsxxtb")->count();
3.3 采集數(shù)據(jù)的審核
學(xué)生填報數(shù)據(jù)后,學(xué)生所屬的輔導(dǎo)員則可能看到學(xué)生填報的具體信息,針對填報的信息,輔導(dǎo)員完成一個初步的審核,輔導(dǎo)員審核通過后,則由學(xué)生所在二級學(xué)院復(fù)審,最后由相關(guān)職能部門完成審核。整個流程均在平臺中完成,各個環(huán)節(jié)的負(fù)責(zé)人在能聯(lián)網(wǎng)的地方就能處理,加快了數(shù)據(jù)處理的時效,減少了學(xué)生和輔導(dǎo)員找領(lǐng)導(dǎo)簽字環(huán)節(jié),極大地提高了工作效率,也更好地服務(wù)了學(xué)生。
在代碼實現(xiàn)環(huán)節(jié),由于流程較為固定和簡單,沒有引入專業(yè)流程管理,只是利用權(quán)限劃分來模擬的流程的審核,也就是更改數(shù)據(jù)的一個狀態(tài)是0或1來完成數(shù)據(jù)審核。這只是一個簡單的更新或刪除操作,在這就不再贅述了。
3.4 數(shù)據(jù)查詢統(tǒng)計
在采集平臺中,對數(shù)據(jù)的采集進(jìn)度,相應(yīng)權(quán)限的用戶均可實時了解進(jìn)度,并可通過ECharts庫[2]生成的圖表進(jìn)行展示。
以統(tǒng)計全校全日制在校數(shù)統(tǒng)計為例來說。實現(xiàn)時主要是通過從教務(wù)系統(tǒng)和本地數(shù)據(jù)庫進(jìn)行一個數(shù)據(jù)實時同步,在實時同步時將數(shù)據(jù)進(jìn)行一個整理,然后將相應(yīng)數(shù)據(jù)利用Ajax返回到前端視圖層中,并結(jié)合在前端視圖層的配置的ECharts參數(shù)以形成具體圖表展示。全校全日制在校數(shù)統(tǒng)計圖如圖3所示。
4 程序運(yùn)行結(jié)果
在2019年2月進(jìn)行了第一次試運(yùn)行,順利完成了2016級、2017級和2018級共計8564名學(xué)生信息的補(bǔ)錄數(shù)據(jù)的收集,所有數(shù)據(jù)完全符合既定規(guī)則,所有數(shù)據(jù)采集平臺中直接導(dǎo)出,一次性成功導(dǎo)入學(xué)信網(wǎng),準(zhǔn)確高效地完成了省教育廳布置的任務(wù)。對未完成數(shù)據(jù)信息補(bǔ)錄的學(xué)生也形成了相關(guān)的數(shù)據(jù)報表,并將未完成的數(shù)據(jù)信息補(bǔ)錄的學(xué)生信息發(fā)到各二級學(xué)院確認(rèn),數(shù)據(jù)完全正確(此次數(shù)據(jù)信息補(bǔ)錄按照上級文件精神,學(xué)生可不進(jìn)行補(bǔ)錄)。
在2019年10月再次使用完善后的采集平臺對新生2019級近5000名學(xué)生進(jìn)行數(shù)據(jù)信息核準(zhǔn)和補(bǔ)錄。此次采集共收集到4760名學(xué)生提交的數(shù)據(jù),提交數(shù)據(jù)完全符合既定規(guī)則,數(shù)據(jù)從采集平臺中導(dǎo)出,一次性成功導(dǎo)入學(xué)信網(wǎng)。
5 結(jié)束語
根據(jù)程序運(yùn)行結(jié)果可以看出,設(shè)計的程序能滿足學(xué)生信息采集平臺的需求,能完成學(xué)生信息的采集。通過對運(yùn)行的監(jiān)控和事后的調(diào)研,下一步重點是數(shù)據(jù)圖表多維度多樣化展示,真正讓數(shù)據(jù)活起來。不足的地方就是在數(shù)據(jù)導(dǎo)入模塊部分,功能正常運(yùn)行,但時間復(fù)雜度略高,用戶的體驗有所降低。下一步將注重研究導(dǎo)入算法,讓導(dǎo)入大批量數(shù)據(jù)時時間縮短,提高用戶體驗和工作效率。
參考文獻(xiàn):
[1] ThinkPHP5.1完全開發(fā)手冊 [EB/OL].[2020-03-05].https://www.kancloud.cn/manual/thinkphp5_1/353946.
[2] Echarts文檔 [EB/OL].[2020-03-07].https://echarts.apache.org/zh/option.html.
[3] 李錫輝,王櫻.MySQL數(shù)據(jù)庫技術(shù)與項目應(yīng)用教程[M].北京:人民郵電出版社,2018:171-175.
【通聯(lián)編輯:謝媛媛】