向蘭宣
摘要:學生信息采集平臺基于B/S架構,采用ThinkPHP 5.1版本PHP開發(fā)框架,利用WarmpServer 3.1集成開發(fā)環(huán)境在Windows Server2016服務下搭建Web服務器,平臺中前端主要利用BootStrap和JQuery框架,后端采用PHP開發(fā)語言,以MySQL作為系統(tǒng)數據庫進行ThinkPHP 5.1下的MVC設計開發(fā)。平臺具備基礎信息從教務系統(tǒng)同步和利用PHPExcel實現(xiàn)Excel格式數據的導入導出功能,能按業(yè)務流程自動生成采集的基礎資料。核心模塊包含數據同步、數據采集、數據審核、數據統(tǒng)計、用戶及權限管理等模塊。圍繞學生信息的采集的流程,結合各個功能模塊,實現(xiàn)學生信息采集的高度信息化。
關鍵詞:同步;采集;MVC
中圖分類號:TP311? ? ? 文獻標識碼: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 問題的提出
學生信息采集主要是在入學時完成的,首先是學生在報到時完成學生的核心基本信息填寫,主要用于新生基本信息的一個紙質存檔。而對例如教務處所需要的分班情況,學生處所需要的是否建檔立卡貧困家庭、是否常住農村等信息,招生就業(yè)處所需要生源地等信息,后勤服務中心所需要的宿舍就住情況,保衛(wèi)處所需要的家庭詳細住址等信息是在后面逐漸完善,主要用于學生信息電子數據存檔,方便各個部門按需調用。收集學生信息的過程是各個輔導員或者各個班級為單位制作成Excel電子文檔,然后再將各個Excel合并過程中,在這個過程中,有的是輔導員制作的,有的是班委制作的,然后再進行匯總的,這樣就導致匯總的數據出現(xiàn)錯列,數據不完整等錯誤。在各部門所需要數據時就會發(fā)現(xiàn)整個數據表信息不能用,又重新統(tǒng)計需要的數據,這樣就造成學生、輔導員、二級教學單位反復統(tǒng)計類似格式的數據。大大降低了各個部門的辦事效率,在學生中也存在一定的負面影響。
2 解決辦法
利用ThinkPHP5.1+MySQL+WarmpServer 3.1等技術或平臺開發(fā)學生信息采集平臺。通過學生信息采集平臺完成學生所有數據信息的準確、完整的采集。并在整個采集過程中,輔導員、二級教學單位、教務處隨時了解數據填寫的進度。整個采集過程實現(xiàn)流程化、自動化、網絡化,可生成學生數據的各種統(tǒng)計報表或圖表,并實現(xiàn)根據指定字段導出數據,滿足各個部門基礎數據的需求,大大提升了工作效率。
3 學生信息采集平臺的設計
3.1 基本數據的準備
學生信息采集平臺所有基本數據從教務系統(tǒng)中同步或導入Excel格式文件。為了保證數據的一致性、準確性和實時性,平臺所使用的學生基本信息、學院信息、專業(yè)信息、班級信息、教師信息直接從教務系統(tǒng)中同步。而對教務系統(tǒng)中沒有涉及的相關數據表利用PHPExcel框架實現(xiàn)Excel數據格式文件的導入。
數據的同步主要通過訪問教務系統(tǒng)提供的數據庫視圖形成的數據接口完成。由于教務系統(tǒng)所使用的Oracel數據庫,訪問其數據接口時必須安裝Oracel提供的客戶端訪問工具,并配置系統(tǒng)環(huán)境變量才可以正常訪問。ThinkPHP5.1下數據庫配置的核心代碼[1]如下:
// Query類,由于涉及到數據庫安全,以下配置具體參數為虛擬參數值
'query'? ? ? ? ? ?=> '\\think\\db\\Query',
'db_config1'? ? ? => [
// 設置數據庫類型為oracle
'type'? ? ? ? ? ? => '\think\oracle\Connection',
// 安裝Oracle數據庫服務器地址
'hostname'? ? ? ? => '192.168.1.1',
// Oracle數據庫名
'database'? ? ? ? => 'dbname',
// 訪問Oracle數據庫的用戶名
'username'? ? ? ? => 'yhm',
// 訪問Oracle數據庫的密碼
'password'? ? ? ? => 'mm',
// 訪問Oracle數據庫的端口
'hostport'? ? ? ? => '1521',
完成數據庫配置后,再在控制器中編制代碼完成數據的同步。具體實現(xiàn)同步時,主要是在前臺利用Ajax技術將相關業(yè)務需求提供給后臺控制器并在前臺無刷新的展示控制器處理后返回的同步結果。例如在專業(yè)信息同步中,單擊同步專業(yè)按鈕,可得到圖1專業(yè)同步信息展示所示內容,讓用戶更好的知道數據同步的情況。
數據導入采用PHPExcel框架,再在公共函數中創(chuàng)建了基于Excel文件參數的導入類文件,主要通過PHPExcel讀取參數中Excel文件對象單元格的內容,并將其存在數組中,最后通過批量插入的方式,將數組中的內容添加到數據庫中,完成數據的導入。
3.2 信息采集模塊設計
信息采集模塊主要功能是學生完成監(jiān)護人姓名、身份證件號等非高考報名信息的填報。在模塊中學生的考生號、學號、姓名、性別、民族、身份證號、所屬專業(yè)、所屬二級學院等基本信息是不用學生填報的,直接實時同步教務系統(tǒng)學生基本信息并在本地數據庫中已存放,學生登錄時相關數據直接展示且不允許學生修改的??紤]到學生用戶訪問采集平臺方式以移動媒體(手機或平板)為主,該模塊制作時考慮了這一特點,利用BootStrap框架制作登錄界面。采集監(jiān)護人信息如圖2信息采集填報頁面所示。
在采集模塊中,學生錄入好各項基本信息后,單擊提交按鈕,完成信息的填報。為了減少服務器壓力,錄入的數據采集信息在前端通過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 采集數據的審核
學生填報數據后,學生所屬的輔導員則可能看到學生填報的具體信息,針對填報的信息,輔導員完成一個初步的審核,輔導員審核通過后,則由學生所在二級學院復審,最后由相關職能部門完成審核。整個流程均在平臺中完成,各個環(huán)節(jié)的負責人在能聯(lián)網的地方就能處理,加快了數據處理的時效,減少了學生和輔導員找領導簽字環(huán)節(jié),極大地提高了工作效率,也更好地服務了學生。
在代碼實現(xiàn)環(huán)節(jié),由于流程較為固定和簡單,沒有引入專業(yè)流程管理,只是利用權限劃分來模擬的流程的審核,也就是更改數據的一個狀態(tài)是0或1來完成數據審核。這只是一個簡單的更新或刪除操作,在這就不再贅述了。
3.4 數據查詢統(tǒng)計
在采集平臺中,對數據的采集進度,相應權限的用戶均可實時了解進度,并可通過ECharts庫[2]生成的圖表進行展示。
以統(tǒng)計全校全日制在校數統(tǒng)計為例來說。實現(xiàn)時主要是通過從教務系統(tǒng)和本地數據庫進行一個數據實時同步,在實時同步時將數據進行一個整理,然后將相應數據利用Ajax返回到前端視圖層中,并結合在前端視圖層的配置的ECharts參數以形成具體圖表展示。全校全日制在校數統(tǒng)計圖如圖3所示。
4 程序運行結果
在2019年2月進行了第一次試運行,順利完成了2016級、2017級和2018級共計8564名學生信息的補錄數據的收集,所有數據完全符合既定規(guī)則,所有數據采集平臺中直接導出,一次性成功導入學信網,準確高效地完成了省教育廳布置的任務。對未完成數據信息補錄的學生也形成了相關的數據報表,并將未完成的數據信息補錄的學生信息發(fā)到各二級學院確認,數據完全正確(此次數據信息補錄按照上級文件精神,學生可不進行補錄)。
在2019年10月再次使用完善后的采集平臺對新生2019級近5000名學生進行數據信息核準和補錄。此次采集共收集到4760名學生提交的數據,提交數據完全符合既定規(guī)則,數據從采集平臺中導出,一次性成功導入學信網。
5 結束語
根據程序運行結果可以看出,設計的程序能滿足學生信息采集平臺的需求,能完成學生信息的采集。通過對運行的監(jiā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數據庫技術與項目應用教程[M].北京:人民郵電出版社,2018:171-175.
【通聯(lián)編輯:謝媛媛】