文/鄭雨晴
隨著時(shí)代的發(fā)展,計(jì)算機(jī)領(lǐng)域也在源源不斷的取得豐碩的成果。計(jì)算機(jī)軟件技術(shù)在人們的日常生活、工業(yè)生產(chǎn)控制及企業(yè)辦公自動(dòng)化領(lǐng)域得到了廣泛的應(yīng)用。現(xiàn)代企業(yè)的辦公管理中的無紙化應(yīng)用已得到廣泛的推廣。企業(yè)采購資金申報(bào)是一項(xiàng)重要而且繁復(fù)的工作流程,該項(xiàng)工作不僅需要花費(fèi)很多的時(shí)間,人力以及辦公資源,還會(huì)因?yàn)橐恍┦韬龌蛘咝钜馐构矩?cái)產(chǎn)受到損失。開發(fā)一套企業(yè)采購資金申報(bào)管理系統(tǒng),就是為了能在最短時(shí)間內(nèi)完成最復(fù)雜的流程并且可以保證申購資金的透明化,這在很大程度上可以提高企業(yè)的效率以及健壯性。企業(yè)采購費(fèi)用申報(bào)管理系統(tǒng)是標(biāo)準(zhǔn)的B/S項(xiàng)目,前端采用了HTML、DIV+CSS、JAVASCRIPT以及JQuery框架,后臺(tái)采用JFinal框架封裝了J2EE,并結(jié)合Apache的Log4J實(shí)現(xiàn)日志記錄,展現(xiàn)層運(yùn)用JSP新規(guī)范的標(biāo)簽庫,持久層采用C3P0連接池以及ActiveRecord技術(shù),數(shù)據(jù)庫采用MySQL 5.6,而服務(wù)器方面采用Jetty作為嵌入式服務(wù)器。本系統(tǒng)的特點(diǎn)是:結(jié)構(gòu)清晰,權(quán)限明確,操作簡(jiǎn)單,界面簡(jiǎn)潔。
解決的主要問題包括:
1.明確申報(bào)的步驟,在公司的規(guī)定中明確申報(bào)一筆資金將由哪些人進(jìn)行審核,由哪些人給出明確指示,這是很有必要的。2.必須存在完善的賬號(hào)制度,但凡涉及到資金的方面都需要倍加小心,也不是所有的用戶都享有登錄查看的權(quán)利,所以一定要制定完善的賬號(hào)制度,非本公司的員工是不可以使用該系統(tǒng)的。3.記錄并統(tǒng)計(jì)公司每一次的審批,并賦予公司管理層查看的權(quán)限,這樣他們很容易看到公司申請(qǐng)資金的去向并做出比對(duì)。4.研究如何減少系統(tǒng)資源開銷,使數(shù)據(jù)操作速度更快。5.提供良好的UI界面,盡簡(jiǎn)單的讓每一個(gè)用戶可以看到自己申請(qǐng)的情況(自己審批的情況)。6.為查詢提供多種篩選功能,軟件運(yùn)用的時(shí)間一久,必然會(huì)有很多的數(shù)據(jù),這樣可以更清晰的展現(xiàn)資金申請(qǐng)的情況。7.明確的權(quán)限設(shè)定,每一種權(quán)限進(jìn)入系統(tǒng)所可以查看并操作的功能是嚴(yán)格按照需求中他們所需要的操作而制定。
通過實(shí)際調(diào)查,要求本系統(tǒng)具有以下功能:
1.由于是面向企業(yè)所有用戶的,所以對(duì)專業(yè)不能有要求,要提供良好而且簡(jiǎn)潔的操作界面,以方便所有用戶使用。
1.如果系統(tǒng)的使用對(duì)象較多,則要求有較好的權(quán)限管理。2.方便的數(shù)據(jù)查詢,支持多條件查詢。3.提供良好的日志系統(tǒng),以便查看具體的情況以防止漏洞出現(xiàn),提高本系統(tǒng)的安全性和穩(wěn)定性。4.圖表分析每月申請(qǐng)狀況。5.在相應(yīng)的權(quán)限下,刪除數(shù)據(jù)方便簡(jiǎn)單、數(shù)據(jù)穩(wěn)定性強(qiáng)。6.數(shù)據(jù)計(jì)算自動(dòng)完成,盡量減少人工干預(yù)。
可行性研究又叫可行性研究,其目的為了弄清楚所定義的項(xiàng)目是不是可能實(shí)現(xiàn)和值得進(jìn)行??尚行匝芯恐饕獌?nèi)容是要求以全面、系統(tǒng)的分析為主要方法,經(jīng)濟(jì)效益為核心,圍繞影響項(xiàng)目的各種因素,運(yùn)用大量的數(shù)據(jù)資料論證擬建項(xiàng)目是否可行。對(duì)整個(gè)可行性研究提出綜合分析評(píng)價(jià),指出優(yōu)缺點(diǎn)和建議??尚行耘c風(fēng)險(xiǎn)分析是密切相關(guān)的,如果項(xiàng)目的風(fēng)險(xiǎn)很大就可能降低生產(chǎn)高質(zhì)量軟件的可能性。
首先,設(shè)置用戶使用權(quán)限必須為本公司的用戶,公司每個(gè)職工入職的時(shí)候,都會(huì)由支撐部門的管理員去添加一個(gè)賬戶并為其設(shè)定權(quán)限,這樣就完成了第一步。進(jìn)入系統(tǒng)后便可以根據(jù)自己的權(quán)限開始使用自己的功能了,管理員擁有最高的權(quán)限,其可以添加新的用戶,刪除離職的員工賬號(hào),或者對(duì)賬號(hào)進(jìn)行修改。并可以對(duì)申請(qǐng)進(jìn)行全面的控制,比如:有用戶的申請(qǐng)有錯(cuò)誤,在審批開始之前,用戶可以修改。但是一旦審批開始,就不能隨意更改,若需要更改則需要找管理員進(jìn)行修改并通知審批者注意申請(qǐng)的改變:
系統(tǒng)的流程圖如圖3-1所示而整個(gè)申請(qǐng)的流程又是十分規(guī)范且簡(jiǎn)單的。先由部門負(fù)責(zé)人進(jìn)行第一次審批并給我部門意見,其次負(fù)責(zé)財(cái)務(wù)的專員進(jìn)行整個(gè)申請(qǐng)款項(xiàng)的評(píng)估和公司資金的情況的說明,最終由總裁給出決定,并通知財(cái)務(wù)。
圖3 -1系統(tǒng)流程圖
詳細(xì)設(shè)計(jì)是對(duì)處理過程進(jìn)行設(shè)計(jì)。其核心是將系統(tǒng)的總體設(shè)計(jì)產(chǎn)生的構(gòu)成軟件系統(tǒng)的各個(gè)模塊逐步細(xì)化。本章主要采用核心代碼加文字的方式展現(xiàn),并采用一定的設(shè)計(jì)表示方法對(duì)各個(gè)程序模塊進(jìn)行描述,形成詳細(xì)的數(shù)據(jù)就結(jié)構(gòu)和軟件的算法表達(dá)式,從而為編碼做好準(zhǔn)備。
該系統(tǒng)做的是一個(gè)Web頁面,所以想要設(shè)計(jì)一個(gè)簡(jiǎn)單且優(yōu)雅的主頁面,就要認(rèn)真的運(yùn)用大學(xué)時(shí)學(xué)到的HTML以及CSS樣式。設(shè)計(jì)好了它的主框架后,再做多個(gè)分頁面完成其所需要完成的功能頁面即可。設(shè)計(jì)該頁面時(shí),我選擇Eclipse作為設(shè)計(jì)工具。雖然它不像DreamWeaver那樣是一款專業(yè)的HTML編輯器,但是對(duì)于一些提示或者顯示已經(jīng)夠強(qiáng)大。用于對(duì)Web站點(diǎn)、Web頁和Web應(yīng)用程序進(jìn)行設(shè)計(jì)、編碼和開發(fā)。比起其他編輯軟件,它已經(jīng)十分豐富了Web創(chuàng)作體驗(yàn)。
4.1.1 CSS樣式設(shè)計(jì)
為了設(shè)計(jì)頁面的統(tǒng)一性,需要事先設(shè)計(jì)好文本樣式,在HTML中設(shè)計(jì)文本的樣式有多種方法。本設(shè)計(jì)將采用層疊樣式表(CSS)樣式來定義特定的HTML標(biāo)簽以按照特定方式設(shè)置文本格式。在一個(gè)工程中,如果可以盡可能的將所有的css文件做成一個(gè)整體,這樣不僅可以減少http請(qǐng)求個(gè)數(shù),而且方便修改。其中有通用元素的定義,包括單元格的行列常用屬性,文字樣式,Input輸入框樣式,Textarea樣式的定義;鏈接樣式的定義,包括鏈接時(shí)、已經(jīng)訪問過后、活動(dòng)鏈接時(shí)、變換鏈接時(shí)的各種樣式;對(duì)話框樣式,輸入文字樣式等。設(shè)計(jì)好后,將其保存到系統(tǒng)的項(xiàng)目下,在具體的每個(gè)頁面上去引用它。這樣有很多好處,省去在程序中每一處都運(yùn)用:
“<link id="css"rel="stylesheet">”。
4.1.2 主頁面設(shè)計(jì)
主窗體界面也是該系統(tǒng)的歡迎界面,歡迎界面不僅要簡(jiǎn)單,而且一定要有很好的可視性。讓用戶一眼看去就知道該選擇什么選項(xiàng)。本管理系統(tǒng)采用導(dǎo)航面板綜合了JQUERY技術(shù)增強(qiáng)了主頁的導(dǎo)航效果,并使用了導(dǎo)航標(biāo)題,從而使得導(dǎo)航面板的界面更加美觀,操作更快捷。在設(shè)計(jì)時(shí),我采用的是統(tǒng)一頁面頭,統(tǒng)一頁面背景,統(tǒng)一的結(jié)尾,并提取出公共的分頁系統(tǒng)在每個(gè)頁面引入即可:
<%@include file="/common/_head.jsp"%>
<%@include file="/common/_foot.jsp"%>
<%@include file="/common/_pagination.jsp"%>
4.1.3 用Jquery增強(qiáng)可視性
Jquery是繼prototype之后又一個(gè)優(yōu)秀的Javascript框架。它是輕量級(jí)的js庫,它兼容CSS3,還兼容各種瀏覽器。jQuery能夠使用戶的html頁面保持代碼和html內(nèi)容分離,也就是說,不用再在html里面插入一堆js來調(diào)用命令了,只需定義id即可。首先想運(yùn)用必須先導(dǎo)入庫:<script src="/js/jquery-1.4.4.min.js"type="text/javascript"></script>
之后需要添加樣式,只需要從庫中選定合適的函數(shù),并只需要寫少部分的css和js代碼即可生效。
本系統(tǒng)運(yùn)用了封裝了J2EE的框架Jfinal,在代碼方面是非常簡(jiǎn)單且可視性強(qiáng)的。本系統(tǒng)的核心代碼很少,只需要簡(jiǎn)單配置即可:
public class CommonConfig extends JFinalConfig{
private static Logger logger=Logger.getLogger(CommonConfig.class);
@Override
public void configConstant(Constants me){
loadPropertyFile("db_config.txt");
me.setView Type(View Type.JSP);
me.setDevMode(getPropertyToBoolean("devMode",false));
me.setError404View("/error/404.jsp");
me.setError500View("/error/500.jsp");
}
@Override
public void configRoute(Routes me){
me.add(new CommonRoute());
me.add(new RootRoute());
}
@Override
public void configPlugin(Plugins me){
//配置C3p0數(shù)據(jù)庫連接池插件
C3p0Plugin c3p0Plugin=new C3p0Plugin(getProperty("jdbc Url"),
getProperty("user"),getProperty("password").trim());
me.add(c3p0Plugin);
//配置ActiveRecord插件
ActiveRecordPlugin arp=new ActiveRecordPlugin(c3p0Plugin);
me.add(arp);
arp.addMapping("application",Application.class);
arp.addMapping("user",User.class);
arp.addMapping("news",News.class);
}
后臺(tái)的驗(yàn)證只需要通過集成Validator類并復(fù)寫方法即可完成,并通過annotation的方式作用到表格上,不僅可以對(duì)用戶的輸入進(jìn)行驗(yàn)證,而且可以滿足如果驗(yàn)證失敗,用戶所輸入的內(nèi)容保留:
引用出處
[1]鄭阿奇.Java EE項(xiàng)目開發(fā)教程-(第2版).北京:電子工業(yè)出版社,2013
[2][美]麥克勞克林.Oracle Database 11g&MySQL 5.6開發(fā)手冊(cè) 北京:清華大學(xué)出版社,2013
[3][美]Bruce Eckel.Thinking In Java.英文第 4版.北京:機(jī)械工業(yè)出版社,2007
[4][美]Herbert Schidt著.Java參考大全.鄢愛蘭.鹿江春譯.北京:清華大學(xué)出版社,2006
[5]Rollingsand Adams.JAVA設(shè)計(jì)技術(shù)[M].北京:希望電子出版社,2003.
[6]Date Moris.JAVA架構(gòu)與設(shè)計(jì)[M].北京:希望電子出版社,2005.