魏李方
(北京石油化工學(xué)院網(wǎng)絡(luò)信息中心 北京市 102617)
高校每年都需要進(jìn)行項(xiàng)目申報(bào)工作。項(xiàng)目申報(bào)中主要有項(xiàng)目申報(bào)文本、可行性報(bào)告、項(xiàng)目預(yù)算明細(xì)、評審報(bào)告、績效報(bào)告及支撐材料等文檔,項(xiàng)目申報(bào)流程涉及到項(xiàng)目申報(bào)人、項(xiàng)目申報(bào)部門、項(xiàng)目歸口部門、財(cái)經(jīng)委員會等審核環(huán)節(jié)。由于每年學(xué)校申報(bào)的項(xiàng)目比較多,項(xiàng)目申報(bào)需要填寫的內(nèi)容多、范圍廣,項(xiàng)目申報(bào)文檔格式存在嚴(yán)重的不統(tǒng)一、不規(guī)范的問題。項(xiàng)目申報(bào)涉及到部門審核、歸口部門審核、財(cái)經(jīng)委審核等多個環(huán)節(jié),這些環(huán)節(jié)會反復(fù)提出修改要求,整個申報(bào)過程文檔填寫繁瑣、溝通費(fèi)時(shí)。
基于以上情況,決定根據(jù)我校實(shí)際需求,設(shè)計(jì)并開發(fā)一個項(xiàng)目申報(bào)管理系統(tǒng)以降低項(xiàng)目申報(bào)工作量,減少項(xiàng)目申報(bào)填寫內(nèi)容,規(guī)范項(xiàng)目申報(bào)文檔,提高項(xiàng)目申報(bào)水平。
該系統(tǒng)將從以下幾個方面對項(xiàng)目申報(bào)工作進(jìn)行優(yōu)化:
(1)預(yù)置公共信息,如學(xué)校名稱、學(xué)校地址、郵政編碼、聯(lián)系電話、法人代表、人員情況、資產(chǎn)規(guī)模、財(cái)務(wù)收支狀況、上級單位等,這些預(yù)設(shè)的內(nèi)容由系統(tǒng)管理員每年根據(jù)學(xué)校情況進(jìn)行更新,項(xiàng)目填報(bào)人在進(jìn)行項(xiàng)目申報(bào)時(shí)不再填寫這些預(yù)設(shè)的內(nèi)容;
(2)項(xiàng)目科學(xué)分類,比如:項(xiàng)目前綴、項(xiàng)目性質(zhì)、項(xiàng)目類型、項(xiàng)目歸口類型、項(xiàng)目采購方式等,用戶在進(jìn)行項(xiàng)目申報(bào)時(shí),根據(jù)項(xiàng)目情況進(jìn)行選擇,不再填寫文本內(nèi)容;
(3)優(yōu)化申報(bào)流程,通過對整個項(xiàng)目申報(bào)流程進(jìn)行研究,我們將項(xiàng)目申報(bào)流程劃分為:項(xiàng)目填報(bào)、部門審核、歸口部門審核、財(cái)經(jīng)委審核等環(huán)節(jié),通過對項(xiàng)目申報(bào)流程進(jìn)行整合,簡化項(xiàng)目申報(bào)工作;
(4)規(guī)范申報(bào)文檔,項(xiàng)目填報(bào)人在系統(tǒng)中填寫項(xiàng)目申報(bào)相關(guān)信息,由系統(tǒng)根據(jù)預(yù)置模板生成項(xiàng)目申報(bào)相關(guān)的word 文檔和Excel表格,通過這種方式來對用戶填報(bào)的項(xiàng)目文檔格式規(guī)范化。
項(xiàng)目申報(bào)的用戶可以分為不同的角色,對這些角色進(jìn)行如表1所示的分類:
在項(xiàng)目申報(bào)環(huán)節(jié),用戶填寫項(xiàng)目基本信息、項(xiàng)目申報(bào)文本、預(yù)算明細(xì)表、可行性報(bào)告、評審報(bào)告、項(xiàng)目支出績效目標(biāo)等內(nèi)容。為了減少項(xiàng)目申報(bào)的工作量、對項(xiàng)目申報(bào)文檔進(jìn)行標(biāo)準(zhǔn)化,在進(jìn)行系統(tǒng)設(shè)計(jì)時(shí),盡量采用單選框、復(fù)選框、下拉選擇框等讓用戶進(jìn)行選擇,減少用戶的文本輸入量。在用戶填寫過程中,系統(tǒng)每半分鐘會自動保存用戶所填信息,在用戶離開填寫界面時(shí),系統(tǒng)會提醒用戶保存所填信息。在項(xiàng)目申報(bào)文本、可行性報(bào)告等信息填寫界面中,系統(tǒng)會自動對用戶填寫的內(nèi)容跟進(jìn)行字?jǐn)?shù)的限制,刪除多余的空行、對段落進(jìn)行自動的縮進(jìn),對必填內(nèi)容進(jìn)行提醒、檢查。在預(yù)算明細(xì)表中,系統(tǒng)會根據(jù)用戶單價(jià)、數(shù)量自動計(jì)算從總價(jià)并對整個項(xiàng)目的預(yù)算明細(xì)進(jìn)行匯總。
項(xiàng)目申報(bào)管理系統(tǒng)的一個重要的功能是生成符合上級部門要求的格式統(tǒng)一、內(nèi)容規(guī)范的項(xiàng)目申報(bào)文檔。系統(tǒng)結(jié)合FreeMarker 模板技術(shù)和POI,根據(jù)用戶填寫的表單來生成這些文檔[2]。系統(tǒng)生成文檔的時(shí)間點(diǎn)有兩個。一個是通過定時(shí)任務(wù)來生成文檔。系統(tǒng)每隔5 分鐘會檢查系統(tǒng)中是否有修改過的、沒有生成文檔的項(xiàng)目,如果有就為該項(xiàng)目生成文檔。由于生成文檔需要一定的時(shí)間,通過定時(shí)任務(wù)生成文檔能減少系統(tǒng)響應(yīng)時(shí)間,提高用戶體驗(yàn);一個是用戶在前端頁面點(diǎn)擊導(dǎo)出文檔按鈕、調(diào)用導(dǎo)出文檔的功能時(shí),如果系統(tǒng)中沒有該項(xiàng)目的文檔,則為該項(xiàng)目生成文檔,如果系統(tǒng)中存在該項(xiàng)目的文檔,則直接給用戶返回文檔的壓縮包。
系統(tǒng)還根據(jù)學(xué)校的需求,生成項(xiàng)目申報(bào)相關(guān)的各種Excel 格式的統(tǒng)計(jì)報(bào)表。由于統(tǒng)計(jì)報(bào)表的統(tǒng)計(jì)口徑及統(tǒng)計(jì)條件不同,這些統(tǒng)計(jì)報(bào)表根據(jù)用戶設(shè)置的統(tǒng)計(jì)查詢條件即時(shí)生成。
系統(tǒng)中的統(tǒng)計(jì)分析功能包括綜合預(yù)算明細(xì)表、項(xiàng)目經(jīng)費(fèi)申請情況、部門經(jīng)費(fèi)申請情況、歸口經(jīng)費(fèi)申請情況等方面的統(tǒng)計(jì)分析。通過對申報(bào)項(xiàng)目的預(yù)算申請數(shù)、審定額、審減額、無法確定額、年份、歸口類型等項(xiàng)進(jìn)行統(tǒng)計(jì)分析,可以更加科學(xué)地確定項(xiàng)目的預(yù)算申請額、合理地安排項(xiàng)目經(jīng)費(fèi),從而減少項(xiàng)目申報(bào)的審減額和無法確定額,為以后的項(xiàng)目申報(bào)提供指引。
系統(tǒng)管理功能主要有用戶管理、部門管理、角色管理、定時(shí)任務(wù)管理等功能,為整個系統(tǒng)提供一個基礎(chǔ)的運(yùn)行環(huán)境。
系統(tǒng)設(shè)計(jì)采用B/S 結(jié)構(gòu)實(shí)現(xiàn),主要分為客戶端程序和服務(wù)器程序兩部分??蛻舳顺绦蚧赑C 端瀏覽器進(jìn)行開發(fā),采用響應(yīng)式的H5 技術(shù),能夠兼容IE,F(xiàn)irefox,Chrome 等主流瀏覽器[2];主要完成收集用戶填寫的項(xiàng)目申報(bào)文本、可行性報(bào)告、評審報(bào)告,項(xiàng)目預(yù)算明細(xì)等信息,同時(shí)對這些信息進(jìn)行客戶端校驗(yàn)。
表1:項(xiàng)目申報(bào)管理系統(tǒng)人員角色分類表
服務(wù)器端程序采用Spring、Spring MVC、FreeMarker、Quartz等技術(shù),主要完成對客戶端信息的規(guī)范、轉(zhuǎn)換、保存、生成項(xiàng)目申報(bào)文檔及其他任務(wù)。服務(wù)器端程序采用多層結(jié)構(gòu),主要包括視圖層、控制器層、業(yè)務(wù)邏輯層以及數(shù)據(jù)訪問層,這種分層的結(jié)構(gòu)能很好地對系統(tǒng)進(jìn)行解耦,從而給系統(tǒng)帶來巨大的靈活性。下面將簡單介紹系統(tǒng)中所用的主要技術(shù)。
Spring 框架是一個輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架,作為J2EE 的性能優(yōu)異、功能強(qiáng)大的基礎(chǔ)框架得到了廣泛的應(yīng)用。Spring 采用低侵入式設(shè)計(jì), 和業(yè)務(wù)代碼的耦合程度比較低;Spring 的AOP 支持將安全、事務(wù)、日志等通用功能進(jìn)行集中式管理, 從而簡化系統(tǒng)的開發(fā);Spring 還能方便地和Mybatis、Hibernate 和SPA 等DAO 框架集成,提供靈活的持久層框架支持, 簡化對底層的數(shù)據(jù)庫訪問[3]。
Spring MVC 是一個輕量級Web 框架,將Web 層進(jìn)行職責(zé)劃分和解耦,簡化了Web 開發(fā)工作。Spring MVC 框架圍繞DispatcherServlet 設(shè)計(jì),通過DispatcherServlet 給處理程序分派請求、執(zhí)行視圖解析、處理語言環(huán)境等。
Spring MVC 角色劃分清晰、分工明確、能和Spring 框架無縫集成。具有良好的可適配性、可定制性,同時(shí)還提供功能強(qiáng)大的數(shù)據(jù)驗(yàn)證、格式化、綁定機(jī)制等。
FreeMarker 是一款是免費(fèi)的,基于Apache 許可證2.0 版本發(fā)布,用java 語言編寫的輕量級模版引擎,不需要Servlet 環(huán)境就可以很輕松的嵌入到應(yīng)用程序中,很適合作為web 應(yīng)用框架的一個組件。FreeMarker 能根據(jù)需求生成各種文本格式的文件,如html、xml、java 等。本系統(tǒng)使用FreeMarker 來生成Xml 格式的word 文件和Excel 文檔。
Quartz 是一個開源的Java 作業(yè)調(diào)度框架,可以為Java 應(yīng)用程序提供強(qiáng)大的作業(yè)調(diào)度功能。Quartz 可以與J2EE 與J2SE 應(yīng)用程序相結(jié)合也可以單獨(dú)使用。Quartz 中有Job、JobDetail、Trigger、Scheduler 等核心類。其中Job 表示一個工作,JobDetail 表示具體的可執(zhí)行的調(diào)度程序,Trigger 表示調(diào)度參數(shù),Scheduler 表示調(diào)度容器。本系統(tǒng)中主要是使用Quartz 來調(diào)度生成項(xiàng)目申報(bào)文檔等定時(shí)任務(wù)。
本文首先指出高校項(xiàng)目申報(bào)管理工作中存在的申報(bào)文檔格式不統(tǒng)一、不規(guī)范、流程復(fù)雜的問題,在此基礎(chǔ)上提出了基于J2EE 的Spring、Spring MVC、FreeMarker、Quartz 等技術(shù)的項(xiàng)目申報(bào)管理系統(tǒng)設(shè)計(jì)和實(shí)現(xiàn)的方法。本文提出的方法可以充分利用各種技術(shù)提高系統(tǒng)的易用性和穩(wěn)定性、減少進(jìn)行項(xiàng)目申報(bào)、審核及統(tǒng)計(jì)分析的工作量、提高項(xiàng)目申報(bào)的成功率。
在以后的工作中,可以將系統(tǒng)的部分功能移植到移動端,與短信、微信等手機(jī)功能相結(jié)合,提供更方便、智能的項(xiàng)目申報(bào)功能。