陳 琦
(徐州醫(yī)科大學(xué),江蘇 徐州 221000)
高等院校采購(gòu)計(jì)劃申報(bào)的網(wǎng)絡(luò)化解決方案
陳 琦
(徐州醫(yī)科大學(xué),江蘇 徐州 221000)
高等院校中經(jīng)常要制定學(xué)期、學(xué)年的采購(gòu)計(jì)劃,在制定過程中常會(huì)遇到計(jì)劃不如變化快、統(tǒng)計(jì)困難等問題。文章通過開發(fā)Web系統(tǒng),以網(wǎng)絡(luò)化的方式解決了上述難題,詳細(xì)地講述了開發(fā)系統(tǒng)過程中需要解決的重難點(diǎn)問題,為其他遇到類似問題的高等院校、企事業(yè)單位提供了相應(yīng)參考。
高等院校;采購(gòu)計(jì)劃;申報(bào);網(wǎng)絡(luò)化;Web系統(tǒng)
高等院校中部門多,人員多,教學(xué)、科研、行政管理所需的各類儀器設(shè)備種類繁多不易統(tǒng)計(jì),而高等院校又常常要求制定學(xué)期甚至學(xué)年的采購(gòu)計(jì)劃,以便學(xué)校統(tǒng)籌安排資金分配、集中論證、集中采購(gòu)。這對(duì)矛盾就成了高等院校中負(fù)責(zé)采購(gòu)部門的燙手山芋,常常是投入大量精力按照各個(gè)部門上報(bào)逐個(gè)匯總,卻始終計(jì)劃趕不上變化,不斷有部門修改計(jì)劃改變購(gòu)買方案,電子表格被修改了一次又一次,卻始終得不到想要的數(shù)據(jù)。如何快速方便地統(tǒng)計(jì),如何應(yīng)對(duì)各個(gè)部門的修改方案,成為當(dāng)務(wù)之急。
網(wǎng)絡(luò)可以整合資源,實(shí)現(xiàn)計(jì)算資源、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專家資源的全面共享。網(wǎng)格的根本特征就是資源共享,消除資源孤島。因此對(duì)采購(gòu)計(jì)劃的編排進(jìn)行網(wǎng)絡(luò)化,也就成了必然選擇。本文將通過介紹針對(duì)徐州醫(yī)科大學(xué)(以下簡(jiǎn)稱徐醫(yī)大)的采購(gòu)計(jì)劃網(wǎng)絡(luò)化解決方案,即徐醫(yī)大國(guó)有資產(chǎn)管理處(以下簡(jiǎn)稱國(guó)資處)設(shè)計(jì)采購(gòu)計(jì)劃管理平臺(tái),闡述高等院校采購(gòu)計(jì)劃統(tǒng)計(jì)匯總的相關(guān)經(jīng)驗(yàn),為其他高等院校、企事業(yè)單位提供一種經(jīng)驗(yàn)和參考。
2.1 需求分析
該系統(tǒng)重點(diǎn)要為國(guó)資處解決購(gòu)置計(jì)劃上報(bào)統(tǒng)計(jì)難的問題。在線下環(huán)境中,整個(gè)流程如下:
①國(guó)資處發(fā)通知,告知全校上報(bào)購(gòu)置計(jì)劃;②各部門資產(chǎn)管理員統(tǒng)計(jì)匯總各位教職工的需求;③資產(chǎn)管理員將匯總結(jié)果填寫相應(yīng)表格,分類統(tǒng)計(jì)10萬元以上大型儀器設(shè)備和10萬元以下普通儀器設(shè)備,上報(bào)國(guó)資處;④國(guó)資處將收到的各部門表格逐一統(tǒng)計(jì),填入統(tǒng)一的電子表格中;⑤國(guó)資處在電子表格中分類統(tǒng)計(jì),得到相關(guān)數(shù)據(jù)。
在這個(gè)流程中有兩個(gè)主要的問題:第一,經(jīng)常有部門改變計(jì)劃,反復(fù)提交不同版本的表格,導(dǎo)致紙質(zhì)表格、電子表格過多,版本控制困難、統(tǒng)計(jì)困難;第二,各部門資產(chǎn)管理員工作量太大,經(jīng)常要一個(gè)人詢問幾十個(gè)人的購(gòu)置需求。由此,設(shè)計(jì)系統(tǒng)的出發(fā)點(diǎn)就在于減輕資產(chǎn)管理員的工作量,方便國(guó)資處統(tǒng)計(jì)匯總各類數(shù)據(jù)。
2.2 可行性分析
2.2.1 人員方面
在徐醫(yī)大,使用該系統(tǒng)的用戶主要為學(xué)校教職工,作為高等院校的教職人員,整體教育水平都比較高,使用網(wǎng)絡(luò)化、信息化辦公較多,對(duì)在電腦上使用各系統(tǒng)并不困難。
(1)硬件方面。學(xué)校內(nèi)部有完善的局域網(wǎng),足以支持網(wǎng)上填報(bào)。學(xué)校有集群服務(wù)器,方便部署虛擬機(jī),足以搭建網(wǎng)絡(luò)服務(wù)器。
(2)軟件方面?,F(xiàn)在網(wǎng)絡(luò)化的軟件已經(jīng)很成熟,有很多成功的案例,同時(shí),開發(fā)語言、開發(fā)框架也有很多選擇,開源框架足以勝任該系統(tǒng)的開發(fā)。
2.2.2 數(shù)據(jù)方面
隨著學(xué)校數(shù)字化校園的建設(shè),各類基礎(chǔ)數(shù)據(jù)都已經(jīng)有了數(shù)字化版本,該系統(tǒng)可以從學(xué)校的資源庫(kù)中獲得人員、部門等各類基礎(chǔ)數(shù)據(jù)。
3.1 框架選擇
(1)總體架構(gòu)??紤]到使用人員較多,使用系統(tǒng)不同,計(jì)算機(jī)性能不同,難以要求每位教職工下載安裝應(yīng)用程序,本系統(tǒng)不適合使用C/S架構(gòu)(客戶端/服務(wù)器架構(gòu)),因此采用B/S架構(gòu)(瀏覽器/服務(wù)器架構(gòu))。
(2)系統(tǒng)框架。Web開發(fā)有很多種開發(fā)語言,本系統(tǒng)根據(jù)開發(fā)人員對(duì)開發(fā)語言的掌握情況,使用Java進(jìn)行開發(fā),選擇了比較流行的Spring MVC作為底層框架??紤]到系統(tǒng)使用總?cè)巳簲?shù)僅為1 000多位教職工,并發(fā)數(shù)和訪問量并不會(huì)很高,數(shù)據(jù)庫(kù)選擇了MySQL??蛻舳朔矫娌捎贸S玫膆tml+Css+js進(jìn)行頁面編寫,頁面動(dòng)態(tài)數(shù)據(jù)采用了輕量級(jí)開源框架Rose進(jìn)行處理,數(shù)據(jù)連接層使用了和Rose配套使用的Jade框架??紤]到學(xué)校教職工人員較多,在系統(tǒng)中扮演的角色也各不相同,需要良好的權(quán)限系統(tǒng)處理人員分工不同的問題,為增加可擴(kuò)展性,易用性,系統(tǒng)采用能與Spring MVC良好結(jié)合的Shiro權(quán)限框架。
3.2 相關(guān)技術(shù)介紹
(1)B/S架構(gòu)。B/S結(jié)構(gòu)即瀏覽器和服務(wù)器結(jié)構(gòu),是Web興起后的一種網(wǎng)絡(luò)結(jié)構(gòu)模式,Web瀏覽器是客戶端最主要的應(yīng)用軟件。這種模式統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使用[1]。這種結(jié)構(gòu)的突出優(yōu)點(diǎn)為:客戶端不再負(fù)責(zé)存儲(chǔ),降低客戶端要求;易于維護(hù)升級(jí),不用在所有客戶端升級(jí),只用升級(jí)服務(wù)器[2]。
(2)Spring MVC。MVC即模型-視圖-控制器模式(Model-View-Controller),Spring MVC基于輕量級(jí)的Spring框架,主要圍繞分發(fā)器進(jìn)行設(shè)計(jì),包括可配置的處理器映射、視圖解析、本地化、主題解析、支持文件上傳等,具有角色劃分清晰,可重用業(yè)務(wù)代碼等優(yōu)點(diǎn)[3]。
(3)Rose和Jade。Rose是人人網(wǎng)、糯米網(wǎng)釋出的開源的高效Java Web開發(fā)框架,是一個(gè)基于Servlet規(guī)范、Spring規(guī)范的Web開發(fā)框架,Rose使用過濾器而非Servlet來接收Web請(qǐng)求,可以把Rose看成這樣一種特殊的Servlet:它能夠優(yōu)先處理認(rèn)定的事情,如無法處理再交給其他Filter,Servlet或JSP來處理,這個(gè)剛好是普通Servlet無法做到的[4]。
Jade是在Spring完成的數(shù)據(jù)層的良好實(shí)踐中總結(jié),無縫接入Rose中,可以算得上是Rose親密無間的好模塊。用Jade的好處在于,盡可能減少重復(fù)從數(shù)據(jù)庫(kù)中把數(shù)據(jù)對(duì)Bean容器進(jìn)行裝配的過程,統(tǒng)一入口,隔離業(yè)務(wù)邏輯,方便復(fù)查,同時(shí)使用近乎原生的SQL語句書寫方式,提高開發(fā)速度和測(cè)試SQL語句的速度。
(4)Shiro。Apache Shiro是Apache軟件基金會(huì)下的一個(gè)功能強(qiáng)大、健壯、易用的Java開源安全開發(fā)框架,提供了認(rèn)證、授權(quán)、加密和會(huì)話管理等功能,可以為命令行應(yīng)用、移動(dòng)應(yīng)用、大型網(wǎng)絡(luò)及企業(yè)應(yīng)用提供安全解決方案[5]。同時(shí)Shiro可以和Spring框架良好地銜接,有很多使用Spring MVC框架與Shiro相結(jié)合的成功案例。
4.1 業(yè)務(wù)設(shè)計(jì)與數(shù)據(jù)庫(kù)設(shè)計(jì)
(1)購(gòu)置申請(qǐng)單填寫(見表1)。根據(jù)國(guó)資處業(yè)務(wù)實(shí)際情況,申請(qǐng)單的填寫分為兩種,大型儀器設(shè)備(10萬元以上)(見表2)和普通設(shè)備(見表3)。這就需要分別設(shè)計(jì)兩種表單進(jìn)行填寫,但是經(jīng)過分析發(fā)現(xiàn)兩種表單有不少字段相同,如果分別設(shè)計(jì)數(shù)據(jù)表單,不利于匯總統(tǒng)計(jì),因此采取了主表加擴(kuò)展表的設(shè)計(jì)方法,擴(kuò)展表中的ID采取和主標(biāo)外鍵關(guān)聯(lián)的方式,保證主表中ID一定有相關(guān)聯(lián)的擴(kuò)展表ID。
表1 主表—購(gòu)置申請(qǐng)單
續(xù)表1
表2 擴(kuò)展表1—大型儀器
表3 擴(kuò)展表2—普通儀器
續(xù)表3
這3張表在Java中進(jìn)行建模處理時(shí),以主表作為基礎(chǔ)類,兩個(gè)擴(kuò)展表直接繼承主表,完成由數(shù)據(jù)庫(kù)到后臺(tái)服務(wù)端的映射。
4.2 購(gòu)置計(jì)劃設(shè)置
由于購(gòu)置計(jì)劃是按照時(shí)間分段,分批次報(bào)送,如2015年上學(xué)期、2015年下學(xué)期、2016年上學(xué)期等,購(gòu)置計(jì)劃需要按照時(shí)間進(jìn)行設(shè)定,并保證每次提交的時(shí)候,放入相對(duì)應(yīng)的購(gòu)置計(jì)劃中去,因此購(gòu)置計(jì)劃需要進(jìn)行時(shí)間限制和狀態(tài)判斷,數(shù)據(jù)表格設(shè)計(jì)如表4所示。
表4 購(gòu)置計(jì)劃
為了保證計(jì)劃的時(shí)效性,采用了Spring內(nèi)置的Schedule定時(shí)任務(wù),對(duì)申報(bào)計(jì)劃的狀態(tài)每天進(jìn)行一次更新,代碼如下:
4.3 查詢統(tǒng)計(jì)
根據(jù)國(guó)資處統(tǒng)計(jì)需要,在購(gòu)置申請(qǐng)列表中增加了查詢和統(tǒng)計(jì)的功能,查詢SQL相關(guān)代碼如下:
通過條件控制,根據(jù)用戶的不同需求,生成不同的SQL語句,查找出結(jié)果集。再用一個(gè)類似的SQL,通過SUM,COUNT等聚合計(jì)算統(tǒng)計(jì)出數(shù)據(jù)結(jié)果。
4.4 權(quán)限控制
根據(jù)需求,需要配置不同的權(quán)限,以滿足分層次的管理。這就需要配置shiro相關(guān)的權(quán)限,在數(shù)據(jù)庫(kù)中設(shè)計(jì)了如表5所示的相關(guān)條目。
表5 權(quán)限控制表
這里對(duì)wildcard作簡(jiǎn)要的說明,shiro中可以識(shí)別類似“第一級(jí):第二級(jí):第三級(jí):*”的匹配碼,其中*號(hào)可以任意匹配。本系統(tǒng)采取了“包名:類名:方法名”的權(quán)限設(shè)定方式,比如對(duì)在purchase包中PurchaseApplicationController類中的全部方法均有權(quán)限,在匹配碼中就寫做:“purchase:purchaseAppliction:*”;又如:“超級(jí)管理員”的權(quán)限就可以簡(jiǎn)單地寫為:“*”則擁有全部權(quán)限。
4.5 基礎(chǔ)數(shù)據(jù)同步
本系統(tǒng)的相關(guān)基礎(chǔ)數(shù)據(jù)(包括人員信息、部門信息等)都需要來自于徐醫(yī)大內(nèi)部已經(jīng)完成了的數(shù)字校園,那么和基礎(chǔ)數(shù)據(jù)的數(shù)據(jù)庫(kù)進(jìn)行對(duì)接就不可避免。本系統(tǒng)采用的方法是在數(shù)據(jù)庫(kù)層面通過計(jì)劃任務(wù)直接進(jìn)行對(duì)接。同時(shí)在本地端進(jìn)行同步更新,代碼如下:
這里的gzc_temp是從遠(yuǎn)程數(shù)字徐醫(yī)數(shù)據(jù)庫(kù)中直接獲取的同步數(shù)據(jù)庫(kù),gzc為正式庫(kù),這里設(shè)定每天部門和人員信息進(jìn)行一次更新,保證數(shù)據(jù)的新鮮度。
成果展示(見圖1—4)。
本系統(tǒng)經(jīng)過試運(yùn)行后,運(yùn)行穩(wěn)定,未出現(xiàn)故障,方便了徐醫(yī)大教職工申報(bào)購(gòu)置計(jì)劃,方便了國(guó)資處統(tǒng)計(jì)匯總數(shù)據(jù),達(dá)到了預(yù)期的目的。希望本文可以為遇到同樣問題的高等院校、企事業(yè)單位提供解決問題的參考。
圖1 基礎(chǔ)數(shù)據(jù)展示
圖2 權(quán)限配置展示
圖3 計(jì)劃配置展示
圖4 2016年上半年采購(gòu)計(jì)劃部分
[1]百度百科. BS架構(gòu)[EB/OL] .(2015-06-11)[2016-11-07].http://baike.baidu.com/item/BS%E6%9E%B6%E6%9E%84.
[2]樊勝.C/S與B/S的結(jié)構(gòu)比較及Web數(shù)據(jù)庫(kù)的訪問方式[J].情報(bào)科學(xué),2001(4):443-445.
[3]張宇,王映輝,張翔南.基于Spring的MVC框架設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2010(4):59-62.
[4]開源中國(guó)社區(qū).Web開發(fā)框架Paoding-Rose[EB/OL].(2010-07-19)[2016-11-10].http://www.oschina.net/p/paoding-rose/ .
[5]徐孝成.基于Shiro的Web應(yīng)用安全框架的設(shè)計(jì)與實(shí)現(xiàn)[J].電腦知識(shí)與技術(shù),2015(16):93-95.
Network of the purchase plan reporting in colleges and universities solution
Chen Qi
(Xuzhou Medical University, Xuzhou 221000, China)
Colleges and universities often have to develop semester, school year procurement plan, which will meet the problems of rapid change of plan, statistical difficulties and other issues in the process. Through the development of the Web system, the network mode solves the above problems. Telling In detail about the problem to solve in the process of system development, providing the corresponding reference for other similar problems of the colleges and universities, enterprises and institutions.
colleges and universities; purchase plan; reporting; network; Web system
陳琦(1987— ),男,安徽靈璧。