劉毅
摘 要:隨著高校科研項目的增多,對科研項目的管理也提出了更高的要求,如何利用信息技術(shù)使項目管理工作更加規(guī)范化、科學(xué)化,提高工作效率及管理水平,值得探究。在分析科研項目從申報到結(jié)題管理流程的基礎(chǔ)上,充分利用管理學(xué)和軟件工程方法,設(shè)計并實現(xiàn)了一款項目管理系統(tǒng),試運(yùn)行表明該系統(tǒng)基本滿足設(shè)計需求。
關(guān)鍵詞關(guān)鍵詞:B/S模式;科研項目;項目管理系統(tǒng);數(shù)據(jù)庫設(shè)計;智慧校園
DOIDOI:10.11907/rjdk.161865
中圖分類號:TP319
文獻(xiàn)標(biāo)識碼:A 文章編號:1672-7800(2016)008-0119-03
0 引言
在計算機(jī)日益普及的今天,科技高速發(fā)展,高校對科技項目的研究也越來越重視,每年都有很多項目要上報學(xué)院、教育廳、教育部,紙制的項目申報報告審批浪費(fèi)了大量的人力、物力、財力等,也不便于再次管理。為了適應(yīng)社會發(fā)展需求,使學(xué)校所有的項目申報及其信息統(tǒng)計工作更加科學(xué)、規(guī)范、高效、簡便,本文設(shè)計并開發(fā)了一款項目管理系統(tǒng)。該系統(tǒng)是為方便教師申報項目,理清項目管理與評審順序,增強(qiáng)申報負(fù)責(zé)人與科研管理部門間的信息溝通與反饋,促進(jìn)科研管理部門了解各項目建設(shè)進(jìn)度及存在的問題,幫助學(xué)院領(lǐng)導(dǎo)從宏觀上協(xié)調(diào)安排前期工作,進(jìn)行資金統(tǒng)籌管理和項目進(jìn)度匯總而設(shè)計開發(fā)的應(yīng)用軟件系統(tǒng)。
1 系統(tǒng)開發(fā)主要需求
一般而言,學(xué)校科研項目從申報、多級審核、項目實施、采購支付到項目結(jié)題,需要經(jīng)歷一個漫長的過程。對于高校而言,每年都可以申報省市區(qū)、教育廳、科技局、環(huán)保廳等不同級別不同名義的項目,而且經(jīng)常各項目的申報時間都很緊迫,如何組織專家快速、公平、合理地從眾多申報項目中篩選出符合當(dāng)前政策導(dǎo)向和時代需求,并且既有創(chuàng)新性,又能為社會創(chuàng)造效益的項目成為各級科研管理部門共同關(guān)心的問題。
通過調(diào)研收集用戶(學(xué)院領(lǐng)導(dǎo)、科研管理人員、學(xué)科帶頭人和普通教師)需求,分析學(xué)院近5年來各類項目管理情況,本系統(tǒng)將用信息化的手段支持從項目申報到項目結(jié)題的整個過程,主要需求點(diǎn)如下:①規(guī)范管理——規(guī)范項目申報、審核及后續(xù)管理業(yè)務(wù)流程,理清各崗位職責(zé);②打通關(guān)鍵控制環(huán)節(jié)——完善預(yù)算指導(dǎo)計劃,計劃控制實際發(fā)生的管控機(jī)制;③多級審批——分配多重功能角色,系部、學(xué)院領(lǐng)導(dǎo)、評審專家、財務(wù)人員、采購管理人員可以及時審核更新;④理清業(yè)務(wù)帳——項目管理部門可以隨時查看每個項目的歷史業(yè)務(wù)帳;⑤項目資金輔助分析——通過系統(tǒng)數(shù)據(jù)可以支撐學(xué)院領(lǐng)導(dǎo)對所有科研經(jīng)費(fèi)的預(yù)算進(jìn)行分析,支持對資金使用狀況的即時掌控;⑥提升管理人員水平——通過管理軟件的使用,提升管理人員的計算機(jī)操作水平和業(yè)務(wù)能力,提升效率;⑦各種文檔的集中有效管理——系統(tǒng)收集的各種申報文件可以方便查閱,項目開展過程中的各種項目資料可以集中管理歸檔,防止文件丟失給學(xué)院帶來的潛在損失;⑧建設(shè)項目池——系部各階段都可以進(jìn)行項目資料的填寫,對于審核沒通過的項目自動進(jìn)入項目池,下次申報項目可以直接從項目池選擇。
2 項目管理系統(tǒng)設(shè)計
2.1 整體架構(gòu)和關(guān)鍵技術(shù)
為提供更好的系統(tǒng)性能,操作系統(tǒng)采用Linux,數(shù)據(jù)庫服務(wù)器采用MySQL,綜合考慮系統(tǒng)的業(yè)務(wù)和技術(shù)需求,Web服務(wù)器采用Nginx。PHP+MySQL是目前最為成熟、穩(wěn)定、安全的企業(yè)級Web開發(fā)技術(shù),同時也是最節(jié)省系統(tǒng)資源和經(jīng)濟(jì)成本的開發(fā)技術(shù),不管是中小企業(yè),還是超大型站點(diǎn),都能完美支持,其成熟的架構(gòu)、穩(wěn)定的性能、嵌入式開發(fā)方式、簡潔的語法,使得系統(tǒng)能快速進(jìn)行迭代開發(fā),同時PHP+MySQL可跨UNIX、Linux、Windows等平臺運(yùn)行,跨平臺移植、無附加成本。
系統(tǒng)設(shè)計采用B/S架構(gòu),基于Yii開源框架加以實現(xiàn),從MVC、DAO/ActiveRecord、Widgets、Caching、等級式RBAC、Web服務(wù),到主題化、I18N和L10N,Yii提供了目前Web 2.0應(yīng)用開發(fā)所需要的幾乎一切功能。Yii開源框架是純粹的面向?qū)ο罂蚣?,并具有高度可擴(kuò)展性,能利用PHP的一些更高級功能,同時該框架使用簡化的安全方案,很大程度上縮短開發(fā)時間,系統(tǒng)功能模塊的實現(xiàn)無須關(guān)注底層數(shù)據(jù)庫的查詢、添加、修改、刪除方法實現(xiàn),只需要對前面業(yè)務(wù)功能進(jìn)行實現(xiàn)即可,Yii開源框架的MVC架構(gòu)如圖1所示[1]。
2.2 業(yè)務(wù)流程設(shè)計
為適應(yīng)多用戶角色和不斷變化的項目需求,通過分解項目的評審流程,對各信息流向進(jìn)行合理角色分配,通過定義不同的角色明確權(quán)限功能,相比傳統(tǒng)紙質(zhì)申報評審大幅度減少了信息傳遞時間和滯留時間[2]。設(shè)計思路以人為中心,以項目庫建設(shè)為導(dǎo)向,實現(xiàn)復(fù)雜的項目管理業(yè)務(wù)流程。項目整體業(yè)務(wù)流程如圖2所示。
2.3 系統(tǒng)模塊設(shè)計
經(jīng)過充分的論證和調(diào)研,為滿足高校項目管理需求,系統(tǒng)主要包括項目申報、項目采購管理、項目經(jīng)費(fèi)管理、用戶管理、系統(tǒng)管理5個功能模塊。
(1)項目管理模塊。本模塊是系統(tǒng)的核心功能模塊,主要實現(xiàn)申報資料提交、附件上傳,對于更高權(quán)限的用戶,該模塊包括項目多級審核、專家評審打分及資金分配等功能;可以通過系統(tǒng)多條件組合查詢和模糊查詢方法,查詢、預(yù)覽或者打印所需信息;項目統(tǒng)計可以實現(xiàn)對不同年度、不同單位項目立項結(jié)題數(shù)量和經(jīng)費(fèi)總額等信息的分析統(tǒng)計;項目預(yù)警提示可以提示項目負(fù)責(zé)人使用經(jīng)費(fèi)或項目是否達(dá)到結(jié)題時間。
(2)項目采購管理模塊。本模塊主要為采購管理人員實現(xiàn)流程化、標(biāo)準(zhǔn)化的采購管理和運(yùn)作,實現(xiàn)采購計劃通知發(fā)布,更新采購進(jìn)度,并更新項目驗收情況。
(3)項目經(jīng)費(fèi)管理模塊。本模塊主要實現(xiàn)財務(wù)管理人員對各項目經(jīng)費(fèi)劃撥和使用情況的管理,也可用于學(xué)校管理部門對經(jīng)費(fèi)的年終統(tǒng)計。
(4)用戶管理模塊。本模塊包括用戶注冊、用戶登錄、密碼修改和角色權(quán)限分配管理,其中用戶角色根據(jù)功能區(qū)分為普通教師、系部管理員、學(xué)院管理員、職能部門管理員、評審專家、財務(wù)管理員、采購管理員。
(5)系統(tǒng)管理。本模塊包括項目年度管理、項目資金來源管理、項目附件類型管理、系部管理、系統(tǒng)操作日志管理、數(shù)據(jù)庫的維護(hù)和管理等功能。其中,項目年度管理可以自由選擇項目類型及附件類型,實現(xiàn)自由組合,滿足不同項目申報內(nèi)容的要求。系統(tǒng)管理員可以按年度對已完成的項目進(jìn)行數(shù)據(jù)導(dǎo)出,將產(chǎn)生的各類項目資料進(jìn)行備份,并做好統(tǒng)一管理。同時,用戶根據(jù)不同權(quán)限實現(xiàn)項目資料的查看和下載等,系統(tǒng)發(fā)布一些項目申報、項目審核的動態(tài)新聞,方便廣大教師及時了解信息[3]。
2.4 數(shù)據(jù)庫設(shè)計
數(shù)據(jù)庫設(shè)計是在對業(yè)務(wù)需求和實體模型進(jìn)行詳細(xì)分析的基礎(chǔ)上,通過建立數(shù)據(jù)結(jié)構(gòu)實現(xiàn)數(shù)據(jù)存儲、查詢的過程。作為高??蒲许椖抗芾硐到y(tǒng),要求數(shù)據(jù)庫的訪問是高效、安全的,采用 B/S 結(jié)構(gòu)模式,用戶并行訪問數(shù)據(jù)庫概率大,選用MySQL十分合適。系統(tǒng)中所有表的創(chuàng)建都依據(jù)數(shù)據(jù)庫設(shè)計的原則進(jìn)行,主要包括了系統(tǒng)用戶信息表(t_admin)、角色表(t_role)、操作日志表(t_log)、項目類型表(t_project_type)、項目信息表(t_project)、項目評審表(t_audit)、項目采購狀態(tài)表(t_caigou)、項目支付情況表(t_caiwu)、系部表(t_department)、新聞表(t_news)等。其中,系統(tǒng)用戶信息表數(shù)據(jù)庫設(shè)計如表1所示。
3 項目管理系統(tǒng)實現(xiàn)
利用Yii進(jìn)行項目開發(fā)過程中,Yii能很方便地實現(xiàn)CRUD后端內(nèi)容,前端主要是在HTML、JavaScript、CSS上進(jìn)行開發(fā),其中前端可以通過引入Bootstrap擴(kuò)展的形式,統(tǒng)一頁面元素風(fēng)格,加快開發(fā)速度。本文僅對在Controller中的關(guān)鍵代碼實現(xiàn)進(jìn)行舉例介紹。
(1)項目列表根據(jù)當(dāng)前登錄用戶ID只顯示所管理的項目,避免非法操作,項目列表實現(xiàn)關(guān)鍵代碼如下:
public function actionAdmin() {
$adminid = Yii::app()->admin->getState('admin_id');//獲取當(dāng)前登錄用戶的session信息
$this->setUnionTitle('項目列表');
$criteria = new CDbCriteria;//定義數(shù)據(jù)查詢條件
$criteria->order = 'rank desc,school_id asc ,created desc';
$criteria->addCondition('status<>3');//根據(jù)項目狀態(tài)顯示數(shù)據(jù)
$criteria->addCondition('admin_id=' . $adminid);
$count = Application::model()->count($criteria);
$page = new CPagination($count);
$offset = $page->getOffset();
$limit = $page->getLimit();
$page->applyLimit($criteria); //分頁查詢
$data = Application::model()->findAll($criteria);
$this->render('admin', array( 'data' => $data,'pages' => $page ));
}
(2)用戶角色權(quán)限實現(xiàn)。用戶角色具有什么功能權(quán)限可以進(jìn)行靈活定制,將所有賦予權(quán)限的Action方法名稱通過序列化的方法存入acl_desc字段,用戶在登錄后對通過Session載入所具有的權(quán)限進(jìn)行比對,由此控制不同的功能操作權(quán)限及視圖顯示。用戶角色權(quán)限實現(xiàn)關(guān)鍵代碼如下:
protected function getAllowActions()
{
$acl= Yii::app()->admin->getState('allowActions');//獲取session
if ($acl) {
$roleAcl= $acl;
} else {
$roleId= AdminhtmlAdmin::model()->loadRoleIdByAccount(Yii::app()->admin->name);
$roleAcl= AdminhtmlRole::model()->getOneAclArray($roleId);//獲取用戶所具有的操作功能集
Yii::app()->admin->setState('allowActions', $roleAcl);//寫入session
}
….
}
(3)用戶登錄實現(xiàn)。通過判斷輸入的用戶名和密碼是否合法,提交數(shù)據(jù)庫登錄前需要進(jìn)行數(shù)據(jù)Validate合法性驗證,禁止提交非法字符,登錄成功可跳到登錄前的頁面。詳細(xì)實現(xiàn)代碼如下:
public function actionLogin()
{
…
if(isset($_POST['AdminhtmlLoginForm'])) {
$model->attributes=$_POST['AdminhtmlLoginForm'];
if($model->validate() && $model->login()) {//提交數(shù)據(jù)庫登錄前,需要進(jìn)行數(shù)據(jù)validate驗證,禁止提交非法字符
...
}
…
}
4 結(jié)語
系統(tǒng)開發(fā)后,在廣東環(huán)境保護(hù)工程職業(yè)學(xué)院試運(yùn)行,結(jié)果表明該系統(tǒng)基本滿足設(shè)計需求,具有角色功能科學(xué)合理、簡單易用、安全性和系統(tǒng)使用流暢等特點(diǎn),可以實現(xiàn)對各種類型的項目進(jìn)行有效管理。本系統(tǒng)的優(yōu)勢是建立在B/S基礎(chǔ)上,利用開源框架技術(shù),由學(xué)院自主開發(fā),不依賴于供應(yīng)商,實現(xiàn)迭代進(jìn)化式開發(fā)。由于筆者所在的高職院校建院時間較短,各種信息系統(tǒng)的開發(fā)和使用都還處于初級階段,缺乏統(tǒng)一的門戶管理平臺,項目的信息建設(shè)主要還是記錄課題和經(jīng)費(fèi)等靜態(tài)信息。因此,本系統(tǒng)的未來升級設(shè)計必須考慮跟人事、財務(wù)、設(shè)備等業(yè)務(wù)系統(tǒng)的數(shù)據(jù)流通,并實現(xiàn)項目動態(tài)過程化管理,即以項目為中心,對項目申報、項目推進(jìn)、經(jīng)費(fèi)使用的動態(tài)走向進(jìn)行跟蹤和監(jiān)督,并自動體現(xiàn)在學(xué)院的其它業(yè)務(wù)系統(tǒng)上,避免“信息孤島”,通過數(shù)據(jù)資源共享促進(jìn)實現(xiàn)智慧校園。
參考文獻(xiàn):
[1]深入理解Yii2.0[EB/OL].http://www.digpage.com/mvc.html,2016-5-20.
[2]張強(qiáng)偉.基于工作流的項目申報管理信息系統(tǒng)的設(shè)計與實現(xiàn)[D].成都:西南交通大學(xué),2010.
[3]張志強(qiáng).基于Web環(huán)境的高??蒲泄芾硐到y(tǒng)的設(shè)計與實現(xiàn)[D].成都:電子科技大學(xué),2006.
(責(zé)任編輯:孫 娟)