電力客戶服務(wù)系統(tǒng)中電力故障報修子系統(tǒng)設(shè)計方案_第1頁
電力客戶服務(wù)系統(tǒng)中電力故障報修子系統(tǒng)設(shè)計方案_第2頁
電力客戶服務(wù)系統(tǒng)中電力故障報修子系統(tǒng)設(shè)計方案_第3頁
電力客戶服務(wù)系統(tǒng)中電力故障報修子系統(tǒng)設(shè)計方案_第4頁
電力客戶服務(wù)系統(tǒng)中電力故障報修子系統(tǒng)設(shè)計方案_第5頁
已閱讀5頁,還剩44頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第1章緒論1-電力客戶服務(wù)系統(tǒng)中電力故障報修子系統(tǒng)設(shè)計方案目錄摘要 I目錄 III第1章緒論 11.1選題背景與意義 11.1.1選題背景 11.1.2研究意義 11.2國內(nèi)外發(fā)展現(xiàn)狀 21.3本人所做工作 2第2章系統(tǒng)開發(fā)技術(shù)分析 32.1框架、構(gòu)架及設(shè)計模式概述 32.2Struts框架分析 32.2.1Struts設(shè)計模式 32.2.2Struts工作流程 52.2.3Struts標(biāo)簽庫 52.3JSP技術(shù)分析 62.3.1JSP技術(shù)特點(diǎn) 62.3.2JSP實(shí)現(xiàn)原理 82.4開發(fā)工具分析 82.4.1Eclipse簡介 82.4.2CVS(ConcurrentVersionSystem) 82.4.3JDK(JavaDevelopmentKit) 92.5技術(shù)可行性 9第3章系統(tǒng)分析 103.1需求總述 103.2用例描述 103.2.1報修受理 103.2.2搶修調(diào)度 143.2.3報修處理 153.2.4報修回訪 163.2.5報修歸檔 163.3動態(tài)模型設(shè)計 173.3.1受理工單類對象動態(tài)模型 173.3.2搶修車輛類對象動態(tài)模型 173.4序列圖 183.5組件圖 18第4章系統(tǒng)設(shè)計 194.1設(shè)計指導(dǎo)思想和原則 194.1.1指導(dǎo)思想 194.1.2軟件設(shè)計原則 194.2系統(tǒng)構(gòu)架設(shè)計總體描述 204.3系統(tǒng)流程分析 214.4功能設(shè)計 214.4.1故障受理 234.4.2搶修調(diào)度 244.4.3報修處理 244.4.4報修回訪4.4.5報修歸檔 244.4.6用戶管理 244.4.7報修人員管理 244.4.8報修車輛管理 244.4.9報修查詢 244.5數(shù)據(jù)庫設(shè)計 254.5.1數(shù)據(jù)庫表簡介 254.5.2數(shù)據(jù)庫表結(jié)構(gòu) 264.6系統(tǒng)開發(fā)工具及運(yùn)行環(huán)境 324.6.1開發(fā)工具及開發(fā)調(diào)試環(huán)境 324.6.2運(yùn)行環(huán)境 32第5章系統(tǒng)實(shí)施 335.1程序編寫 335.2Action層的實(shí)現(xiàn) 335.3BO層的實(shí)現(xiàn) 345.4DAO層的實(shí)現(xiàn) 355.5系統(tǒng)安全性的實(shí)現(xiàn) 37第6章系統(tǒng)測試 386.1功能性測試 386.1.1報修受理模塊測試 386.1.2搶修人員管理模塊測試 396.1.3報修處理模塊測試 406.2非功能性測試 42結(jié)論 43參考文獻(xiàn) 44摘要電力作為國民經(jīng)濟(jì)的基礎(chǔ)和關(guān)鍵行業(yè),在日常生產(chǎn)和生活中起著不可替代的重要作用。隨著電力事業(yè)的高速發(fā)展,電力營銷由以生產(chǎn)為中心階段進(jìn)入以消費(fèi)者為中心階段。提供良好的服務(wù),是以消費(fèi)者為中心最為直接的體現(xiàn),也是增供擴(kuò)銷必不可少的條件。本文就是對電力客戶服務(wù)系統(tǒng)中電力故障報修子系統(tǒng)進(jìn)行設(shè)計與實(shí)現(xiàn)。本系統(tǒng)基于Struts的MVC設(shè)計模式,利用其可維護(hù)性和可擴(kuò)展性,軟件低耦合、高內(nèi)聚的設(shè)計,實(shí)現(xiàn)了電力故障報修系統(tǒng)中對于報修信息的處理。電力故障報修系統(tǒng)主要包括報修受理、搶修調(diào)度、報修處理、報修回訪、報修歸檔、用戶管理、人員管理、車輛管理等功能。通過電力故障報修系統(tǒng)的應(yīng)用,強(qiáng)化了電力行業(yè)的內(nèi)部管理、改善了服務(wù)質(zhì)量,加快了電力故障維修速度,提升了客戶滿意度,創(chuàng)新了營銷體系管理理念。本系統(tǒng)采用JSP和Struts框架技術(shù),使用Oracle9i數(shù)據(jù)庫,Tomcat服務(wù)器環(huán)境完成了電力故障報修系統(tǒng)對電力故障信息的處理。系統(tǒng)開發(fā)完成后,經(jīng)過了功能測試和系統(tǒng)測試,現(xiàn)處于試運(yùn)行中。電力故障報修系統(tǒng)的完成,為電力行業(yè)帶來了工作的高效,同時也保證了信息的安全,提升了客戶對電力企業(yè)的信賴。關(guān)鍵詞:電力故障報修系統(tǒng);客戶服務(wù);J2EE;Struts框架第1章緒論電力故障報修系統(tǒng)(SystemofElectricityPowerFailure)是科技發(fā)展、社會進(jìn)步的產(chǎn)物。電力作為國民經(jīng)濟(jì)的基礎(chǔ)和關(guān)鍵行業(yè),在日常生產(chǎn)和生活中起著不可替代的重要作用。隨著電力事業(yè)的高速發(fā)展,電力營銷由以生產(chǎn)為中心階段進(jìn)入以消費(fèi)者為中心階段。提供良好的服務(wù),是以消費(fèi)者為中心最為直接的體現(xiàn),也是增供擴(kuò)銷必不可少的條件。電力故障報修系統(tǒng),可以有效的提高電力企業(yè)的整體運(yùn)作效率并且提高了公司的客戶服務(wù)質(zhì)量。在本章將對系統(tǒng)的背景進(jìn)行介紹,分析系統(tǒng)在國內(nèi)外的發(fā)展現(xiàn)狀,提出了系統(tǒng)應(yīng)用的目的及意義。1.1選題背景與意義1.1.1選題背景改革開放以來,電力事業(yè)進(jìn)入高速發(fā)展階段,已由計劃經(jīng)濟(jì)向市場經(jīng)濟(jì)迅速過渡,電力營銷由以生產(chǎn)為中心階段進(jìn)入以消費(fèi)者為中心階段。而且,隨著我國電力體制改革的深入和電力企業(yè)市場意識的增強(qiáng)以及我國成功加入WTO,電力公司傳統(tǒng)的用電營業(yè)管理逐步向全面的電力營銷服務(wù)轉(zhuǎn)換,新的以客戶服務(wù)為宗旨的電力營銷體系正在逐步建立,各級電力公司迫切需要構(gòu)筑一個符合市場經(jīng)濟(jì)要求、具有競爭實(shí)力、能夠改進(jìn)工作效率并且具有客戶自助服務(wù)功能的電子化客戶服務(wù)中心。利用現(xiàn)代計算機(jī)技術(shù)、通信技術(shù)和Internet網(wǎng)絡(luò),依托電力營銷、配電地理等管理信息系統(tǒng),電力企業(yè)可以建立一個電子化“一口對外”的客戶請求服務(wù)、故障報修處理系統(tǒng)--電力故障報修系統(tǒng)(SystemofElectricityPowerFailure),全方位應(yīng)答客戶電話、傳真、Internet、Email形式的服務(wù)請求,向電力客戶提供多層次、全方位和個性化的服務(wù)。1.1.2研究意義電力故障報修系統(tǒng)借助國際、國內(nèi)先進(jìn)的市場營銷管理模式,采用技術(shù)成熟軟件開發(fā)工具,利用通訊技術(shù)、計算機(jī)網(wǎng)絡(luò)技術(shù),結(jié)合坐席管理制度,實(shí)現(xiàn)對客戶故障報修請求的受理、調(diào)度、處理、回訪和歸檔,以統(tǒng)一的規(guī)范、統(tǒng)一的標(biāo)準(zhǔn)和統(tǒng)一的技術(shù)手段,實(shí)現(xiàn)對客戶“面對面”的服務(wù)。電力故障報修系統(tǒng)與電力企業(yè)的生產(chǎn)、調(diào)度、管理等業(yè)務(wù)處理系統(tǒng)相結(jié)合,通過建立合理的處理機(jī)制,保證企業(yè)的快速反應(yīng)能力,提高對客戶的反應(yīng)速度和質(zhì)量。電力故障報修系統(tǒng)在企業(yè)與客戶之間架起連接的橋梁,客戶對企業(yè)的認(rèn)識是建立在企業(yè)客戶服務(wù)代表的服務(wù)質(zhì)量之上的,通過電力故障報修系統(tǒng)提高了服務(wù)質(zhì)量,降低了服務(wù)成本,改善了客戶管理體制,優(yōu)化管理結(jié)構(gòu),更提高了工作效率。1.2國內(nèi)外發(fā)展現(xiàn)狀從世界范圍來看,電力信息化改革始于1981年的智利。但是這場改革發(fā)展成為一次世界性的改革運(yùn)動則是在80年代末英國開始電力工業(yè)改革之后。世界各國電力信息化管理模式差異較大,與本國市場經(jīng)濟(jì)發(fā)展程度、經(jīng)濟(jì)發(fā)展水平、所有制形式等密切相關(guān)。電力信息化作為公用事業(yè)有其特殊性,因此,即使在市場經(jīng)濟(jì)制度比較完善的國家,其電力信息化的組織形式和運(yùn)行機(jī)制與一般競爭行業(yè)也不同。在國外,推動和促進(jìn)這種信息化取得成功的因素主要有兩個方面:一是外部壓力,即社會對電力信息化的要求,因為電力信息化系統(tǒng)比如電力故障報修系統(tǒng),能夠帶來低成本和高效率,消費(fèi)者要求建立新的以客戶服務(wù)為宗旨的電力營銷體系,社會對電力工業(yè)提高效率與服務(wù)的要求是推動電力信息化建設(shè)的外部條件。二是技術(shù)條件,現(xiàn)代信息技術(shù)的廣泛普及和深入應(yīng)用,為信息化提供了技術(shù)保證,信息化在整個電力行業(yè)中所占的比重在不斷上升。對于我國,幅員遼闊,不同地區(qū)處在不同的電力發(fā)展水平和階段,以及資源、荷分布的不均衡性,電力行業(yè)信息化資源還沒有得到充分有效的利用。因此,實(shí)現(xiàn)信息資源優(yōu)化配置,在更大區(qū)域內(nèi)取得電力電量平衡,建立強(qiáng)固的電網(wǎng),以消費(fèi)者為中心提供良好的服務(wù),提高工作效率和客戶滿意度就變得尤為重要。因此,為提高工作效率和客戶滿意度,適應(yīng)電網(wǎng)商業(yè)化運(yùn)營需要,開拓電力市場,近幾年各地電力集團(tuán)公司開始引進(jìn)發(fā)達(dá)國家電力企業(yè)營銷服務(wù)理念,運(yùn)用現(xiàn)代通信網(wǎng)絡(luò)技術(shù),建立現(xiàn)代客戶服務(wù)中心體系。通過客戶服務(wù)中心為用戶提供電力故障報修等業(yè)務(wù),用戶只需撥打統(tǒng)一的服務(wù)熱線號碼(95598)就可享受24小時免費(fèi)服務(wù),以往那些繁雜的手續(xù)將由客戶代表來完成,提高工作效率和服務(wù)質(zhì)量,極大地提高了客戶的滿意度,開拓了用戶市場,提高市場競爭能力。1.3本人所做工作本系統(tǒng)的主要內(nèi)容是電力故障報修系統(tǒng)的設(shè)計實(shí)現(xiàn)與網(wǎng)絡(luò)信息管理的研究。系統(tǒng)主要應(yīng)用動態(tài)網(wǎng)頁設(shè)計技術(shù)與數(shù)據(jù)庫管理技術(shù)結(jié)合,來實(shí)現(xiàn)用戶權(quán)限管理,工單受理,工單調(diào)度,工單處理,工單回訪,工單歸檔,附件上傳下載,文件導(dǎo)出,動態(tài)地址列表等功能。具體應(yīng)用包括員工管理模塊,報修受理模塊,搶修調(diào)度模塊,報修處理模塊,報修回訪模塊,報修歸檔模塊,搶修車輛編制模塊,搶修人員編制模塊。其中網(wǎng)站的數(shù)據(jù)庫的建立是非常重要的。要使系統(tǒng)運(yùn)行暢通必須要建立一個完善的支持整個系統(tǒng)運(yùn)行的數(shù)據(jù)庫。它是保證電子文件正常流轉(zhuǎn)及系統(tǒng)管理功能實(shí)現(xiàn)的基礎(chǔ)。第2章系統(tǒng)開發(fā)技術(shù)分析第2章系統(tǒng)開發(fā)技術(shù)分析2.1框架、構(gòu)架及設(shè)計模式概述框架(Framework),構(gòu)件(Component)和設(shè)計模式(Designpattern)是一個成熟的系統(tǒng)平臺中三個重要的部分,同時又是三個很容易混淆的概念。框架往往是為實(shí)現(xiàn)一個或多個設(shè)計模式而設(shè)計的可重用可擴(kuò)展的設(shè)計,是軟件系統(tǒng)開發(fā)的半成品,而構(gòu)件是框架當(dāng)中的可重用的工具包,類庫或者API??蚣埽‵ramework)是可重用的,半完成的應(yīng)用程序,可以用來產(chǎn)生專門的定制程序。象人一樣,軟件應(yīng)用的相似性比不同點(diǎn)要多。它們運(yùn)行在相同的機(jī)器上,期望從相同的設(shè)備輸入信息,輸出到相同的顯示設(shè)備,并且存儲數(shù)據(jù)到相同的硬盤設(shè)備。工作在傳統(tǒng)桌面應(yīng)用的開發(fā)人員習(xí)慣于那些可以覆蓋應(yīng)用開發(fā)同一性的工具包和開發(fā)環(huán)境。構(gòu)架在這些公共基礎(chǔ)上的應(yīng)用框架可以為開發(fā)人員提供可重用服務(wù)的基礎(chǔ)架構(gòu)。構(gòu)件(Component)通常是代碼重用,而設(shè)計模式是設(shè)計重用,框架則介于兩者之間,部分代碼重用,部分設(shè)計重用,有時分析也可重用。在軟件生產(chǎn)中有三種級別的重用:內(nèi)部重用,即在同一應(yīng)用中能公共使用的抽象塊;代碼重用,即將通用模塊組合成庫或工具集,以便在多個應(yīng)用和領(lǐng)域都能使用;應(yīng)用框架的重用,即為專用領(lǐng)域提供通用的或現(xiàn)成的基礎(chǔ)結(jié)構(gòu),以獲得最高級別的重用性。設(shè)計模式(Designpattern)是對在某種環(huán)境中反復(fù)出現(xiàn)的問題以及解決該問題的方案的描述,它比框架更抽象;框架可以用代碼表示,也能直接執(zhí)行或復(fù)用,而對模式而言只有實(shí)例才能用代碼表示;設(shè)計模式是比框架更小的元素,一個框架中往往含有一個或多個設(shè)計模式,框架總是針對某一特定應(yīng)用領(lǐng)域,但同一模式卻可適用于各種應(yīng)用。可以說,框架是軟件,而設(shè)計模式是軟件的知識。2.2Struts框架分析2.2.1Struts設(shè)計模式Struts實(shí)際上是將Model、View、Controller這些概念分別對應(yīng)到了不同的Web應(yīng)用組件,因此,可以說Struts是MVC設(shè)計模式的具體實(shí)現(xiàn)。在Struts設(shè)計模式中,模型由實(shí)現(xiàn)業(yè)務(wù)邏輯的JavaBean組件構(gòu)成,控制器由ActionServlet和Action來實(shí)現(xiàn),視圖由一組JSP文件與Struts標(biāo)簽庫構(gòu)成。如圖2-1顯示了Struts實(shí)現(xiàn)的MVC設(shè)計模式。圖2-1Struts實(shí)現(xiàn)的MVC設(shè)計模式1.ModelMVC系統(tǒng)中的Model部分從概念上可以分為兩類——系統(tǒng)的內(nèi)部狀態(tài)和改變系統(tǒng)狀態(tài)的動作。Struts為Model部分提供了Action和ActionForm對象:所有的Action處理器對象都是開發(fā)者從Struts的Action類派生的子類。Action處理器對象封裝了具體的處理邏輯,調(diào)用業(yè)務(wù)邏輯模塊,并且把響應(yīng)提交到合適的View組件以產(chǎn)生響應(yīng)。Struts提供的ActionForm組件對象,它可以通過定義屬性描述客戶端表單數(shù)據(jù)。開發(fā)者可以從它派生子類對象,利用它和Struts提供的自定義標(biāo)記庫,可以實(shí)現(xiàn)對客戶端的表單數(shù)據(jù)的良好封裝和支持,Action處理器對象可以直接對它進(jìn)行讀寫,而不再需要和request、response對象進(jìn)行數(shù)據(jù)交互。通過ActionForm組件對象實(shí)現(xiàn)了對View和Model之間交互的支持。2.ViewStruts應(yīng)用中的View部分是通過JSP技術(shù)實(shí)現(xiàn)的。Struts提供了自定義的標(biāo)簽庫可以使用,通過這些自定義標(biāo)簽可以非常好地和系統(tǒng)的Model部分交互,通過使用這些自定義標(biāo)簽創(chuàng)建的JSP表單,可以實(shí)現(xiàn)和Model部分中的ActionForm的映射,完成對用戶數(shù)據(jù)的封裝,同時這些自定義標(biāo)簽還提供了像模板定制等多種顯示功能。StrutsControllerActionServlet處理客戶請求,利用配置的ActionMapping對象把請求映射到Action處理器對象進(jìn)行處理。Action處理對象訪問ActionForm中的數(shù)據(jù),處理和響應(yīng)客戶請求,它還調(diào)用后臺的Bean組件,這些組件封裝了具體的業(yè)務(wù)邏輯。Action處理器對象根據(jù)處理結(jié)果通知Controller,Controller進(jìn)行下一步的處理。3.Controller控制器的作用是從客戶端接受請求,并且選擇執(zhí)行相應(yīng)的業(yè)務(wù)邏輯,然后把響應(yīng)結(jié)果送回到客戶端。Struts提供了一個控制器組件ActionServlet,它繼承自HttpServlet,并重載了HttpServlet的doGet()、doPost()方法,可以接受Http響應(yīng)并進(jìn)行轉(zhuǎn)發(fā)。同時還提供了使用XML進(jìn)行轉(zhuǎn)發(fā)Mapping(映射)的功能。2.2.2Struts工作流程如果在Web應(yīng)用中采用Struts,應(yīng)該在Web應(yīng)用啟動時就加載并初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把他們存放到各種配置對象中,例如Action的映射信息存放在ActionMapping對象中。當(dāng)ActionServlet接收到一個客戶請求時,將執(zhí)行如下流程:1.檢索和用戶請求匹配的ActionMapping實(shí)例,如果不存在,就返回用戶請求路徑無效信息。2.如果ActionForm實(shí)例不存在,就創(chuàng)建一個ActionForm對象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對象中。3.根據(jù)配置信息決定是否需要表單驗證。如果需要驗證,就調(diào)用ActionForm的validate()方法。4.如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActionErrors對象,就表示表單驗證成功;如果ActionForm的validate()方法返回一個包含一個或多個ActionMessage的ActionErrors對象,就表示表單驗證失敗,此時ActionServlet將直接把請求轉(zhuǎn)發(fā)給包含用戶提交表單的JSP組件,在這種情況下,不會在創(chuàng)建Action對象并直接調(diào)用Action的execute方法。5.ActionServlet根據(jù)ActionMapping實(shí)例包含的映射信息決定將請求轉(zhuǎn)發(fā)給哪個Action,如果相應(yīng)的Action實(shí)例不存在,就先創(chuàng)建這個實(shí)例,然后調(diào)用Action的execute方法。6.Action的execute方法返回一個ActionForward對象,ActionServlet再把客戶請求轉(zhuǎn)發(fā)給ActionForward對象指向的JSP組件。7.ActionForward對象指向的JSP組件生成動態(tài)網(wǎng)頁,返回給客戶。2.2.3Struts標(biāo)簽庫在Struts中與視圖組件相關(guān)的工具主要包括Struts架構(gòu)中提供的強(qiáng)大標(biāo)簽庫,常用的如下:1.Struts-html.tld標(biāo)簽:擴(kuò)展HTMLForm的JSP標(biāo)簽。2.Struts-bean.tld標(biāo)簽:擴(kuò)展處理JavaBean的JSP標(biāo)簽。3.Struts-logic.tld標(biāo)簽:擴(kuò)展測試屬性值的JSP標(biāo)簽。4.Struts-titles標(biāo)簽:實(shí)現(xiàn)Web頁布局設(shè)計的框架與模板化。在使用Struts標(biāo)簽庫時要在JSP文件頂部的<taglib>偽指令如下所示:<%@tagliburi=“struts-html.tld”prefix=“html”%><%@tagliburi=“struts-bean.tld”prefix=“bean”%><%@tagliburi=“struts-logic.tld”prefix=“l(fā)ogic”%>每個<taglib>偽指令都具有與基于web.xml的<taglib>標(biāo)記中的URL相匹配的URL。2.3JSP技術(shù)分析JSP即JavaServerPages,它是由SunMicrosystem公司與1996年推出的新技術(shù),是基于JavaServlet以及整個Java體系的Web開發(fā)技術(shù)??梢哉f在傳統(tǒng)的網(wǎng)頁即HTML文件(*.htm,*.html)中加入Java程序片段和JSP標(biāo)記,就構(gòu)成了JSP網(wǎng)頁(*.jsp)。JSP的工作流程如圖2-2所示。SHAPE圖2-2JSP的工作流程圖2.3.1JSP技術(shù)特點(diǎn)JSP基于強(qiáng)大的Java語言,具有良好的伸縮性,與JavaEnterpriseAPI緊密地集成在一起,在網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用開發(fā)領(lǐng)域具有得天獨(dú)厚的優(yōu)勢,JSP技術(shù)在多個方面加速了動態(tài)WEB頁面的開發(fā)。(1)將內(nèi)容的生成和顯示進(jìn)行分離使用JSP技術(shù),Web頁面開發(fā)人員可以使用HTML或者XML標(biāo)識來設(shè)計和格式化最終頁面。使用JSP標(biāo)識或者小腳本來生成頁面上的動態(tài)內(nèi)容。生成內(nèi)容的邏輯被封裝在標(biāo)識和JavaBeans組件中,并且捆綁在小腳本中,所有的腳本在服務(wù)器端運(yùn)行。如果核心邏輯被封裝在標(biāo)識和Bean中,其他人能夠編輯和使用JSP頁面,而不影響內(nèi)容的生成。在服務(wù)器端,JSP引擎解釋JSP標(biāo)識和小腳本,生成所請求的內(nèi)容,并且將結(jié)果以HTML(或XML)頁面的形式發(fā)送回瀏覽器。這有助于作者保護(hù)自己的代碼,而又保證任何基于HTML的Web瀏覽器的完全可用性。(2)生成可重用組件絕大多數(shù)JSP頁面依賴于可重用的,跨平臺的組件來執(zhí)行應(yīng)用程序所要求的更為復(fù)雜的處理。開發(fā)人員能夠共享和交換執(zhí)行普通操作的組件,或者使得這些組件為更多的使用者或者客戶團(tuán)體所使用?;诮M件的方法加速了總體開發(fā)過程,并且使得各種組織在他們現(xiàn)有的技能和優(yōu)化結(jié)果的開發(fā)努力中得到平衡。(3)采用表示簡化頁面開發(fā)Web頁面開發(fā)人員不一定都是熟悉腳本語言的編程人員。JavaServerPage技術(shù)封裝了許多功能,這些功能是在易用的、與JSP相關(guān)的XML標(biāo)識中進(jìn)行動態(tài)內(nèi)容生成所需要的。標(biāo)準(zhǔn)的JSP標(biāo)識能夠訪問和實(shí)例化JavaBeans組件,設(shè)置或者檢索組件屬性,下載Applet,以及執(zhí)行用其他方法更難于編碼或耗時的功能。通過開發(fā)定制標(biāo)識庫,JSP技術(shù)是可以擴(kuò)展的。今后,第三方開發(fā)人員和其他人員可以為常用功能創(chuàng)建自己的表示庫。這使得Web頁面開發(fā)人員能夠使用熟悉的工具和如同標(biāo)識一樣地執(zhí)行特定功能的構(gòu)建來工作。(4)JSP能提供所有Servlet功能與Servlets相比,JSP能提供所有的Servlets功能,它比用println書寫和修改HTML更方便。此外,可以更明確的進(jìn)行分工,Web頁面設(shè)計人員編寫HTML,只需要留出空間讓Servlets程序員插入動態(tài)部分即可。(5)健壯的存儲管理和安全性由于JSP頁面的內(nèi)置腳本語言是基于Java編程語言的,而且所有的JSP頁面都被編譯成JavaSevlet,JSP頁面就具有Java技術(shù)的所有優(yōu)點(diǎn),包括健壯的存儲管理和安全性。(6)一次編寫,隨處運(yùn)行作為Java平臺的一部分,JSP擁有Java編程語言“一次編寫,隨處運(yùn)行”的特點(diǎn)。隨著越來越多的供應(yīng)商將JSP支持添加到他們的產(chǎn)品中,可以使用自己所選擇的服務(wù)器和工具,但并不影響當(dāng)前的應(yīng)用。(7)JSP的平臺適應(yīng)性更廣這是JSP比ASP的優(yōu)越之處。幾乎所有平臺都支持Java、JSP+JavaBean,他們可以在任何平臺下通行無阻。NT下的IIS通過一個插件就能支持JSP,著名的Web服務(wù)器已經(jīng)能夠支持JSP。由于Apache廣泛應(yīng)用的NT、UNIX和LINUX上,應(yīng)此JSP有更廣泛的運(yùn)行平臺。從一個平臺移植到另一個平臺,JSP和JavaBean甚至不用重新編譯,因為Java字節(jié)碼都是標(biāo)準(zhǔn)的字節(jié)碼與平臺無關(guān)。(8)Java中連接數(shù)據(jù)庫的技術(shù)是JDBC(JavaDatabaseConnectivity)很多數(shù)據(jù)庫系統(tǒng)帶有JDBC驅(qū)動程序,Java程序就通過JDBC驅(qū)動程序與數(shù)據(jù)庫相連,執(zhí)行查詢、提取數(shù)據(jù)等操作。Sun公司還開發(fā)了JDBC-ODBCBridge,用此技術(shù)Java程序就可以訪問帶有ODBC驅(qū)動程序的數(shù)據(jù)庫,目前大多數(shù)數(shù)據(jù)庫系統(tǒng)都帶有ODBC驅(qū)動程序,所以Java程序能訪問諸如Oracle、Sysbase、MSSQLServer和MSAccess等類型數(shù)據(jù)庫。2.3.2JSP實(shí)現(xiàn)原理JSP源文件由安裝在Web服務(wù)器上的JSP引擎編譯執(zhí)行??蛻魧SP的請求直接發(fā)送給JSP引擎,JSP引擎接受到請求后,按照J(rèn)SP源代碼中所規(guī)定的內(nèi)容生成給客戶端的響應(yīng),并把響應(yīng)傳遞給客戶端的瀏覽器。所有的引擎都必須支持的請求和響應(yīng)協(xié)議都是HTTP協(xié)議,但是同一個引擎也可以支持其他的一些請求和響應(yīng)協(xié)議。默認(rèn)的request對象對應(yīng)的協(xié)議是HttpRequest,而response對象對應(yīng)的協(xié)議則是HttpServletResponse。一個Jsp引擎需要在傳遞request和response對象之前,要在JSP源代碼中創(chuàng)建一個類,而servlet則定義了在JSP引擎與JSP源文件實(shí)現(xiàn)類之間的約定。這個約定描述了一個JSP作者如何說明原文件實(shí)現(xiàn)init()和destroy()方法時,必須執(zhí)行的一些動作。在這個約定中,最重要的是jspService()方法,這個方法是通過一個JSP引擎從JSP文件中自動產(chǎn)生的。2.4開發(fā)工具分析2.4.1Eclipse簡介Eclipse是一個開放源代碼的基于JAVA的可擴(kuò)展開發(fā)平臺,專注于為高度集成的工具開發(fā)提供一個全功能的、具有商業(yè)品質(zhì)的工業(yè)平臺。就其本身而言,它只是一個框架和一組服務(wù),用地通過插件組件構(gòu)建開發(fā)環(huán)境。幸運(yùn)的是,Eclipse附帶了一個標(biāo)準(zhǔn)的插件集,包括JAVA開發(fā)(JavaDevelopmentTools,JDT),還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個組件主要針對希望擴(kuò)展Eclipse的軟件開發(fā)人員,因為它允許他們構(gòu)建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣?xùn)|西都是插件,對于給Eclipse提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。它的用途并不限于JAVA語言;例如,支持諸如C/C++、COBOL、和Eiffel等編程語言的插件已經(jīng)可以應(yīng)用。在運(yùn)行Eclipse之前首先應(yīng)該安裝好JDK,設(shè)置好環(huán)境變量JAVA_HOME、CLASSPATH和PATH。2.4.2CVS(ConcurrentVersionSystem)CVS是一種項目的版本控制工具項目的版本控制對于團(tuán)隊開發(fā)是極端重要的,對于個人開發(fā)都也是項目復(fù)雜化時不可缺少的工具目前CVS已是版本控制系統(tǒng)的主流軟件,采用客戶機(jī)/服務(wù)器體系,代碼以及各種版本存儲在中收服務(wù)器內(nèi),每一個開發(fā)者開發(fā)時都首先從服務(wù)器上獲得一份自己的拷貝,在此基礎(chǔ)上進(jìn)行開發(fā),以避免直接影響服務(wù)器上的數(shù)據(jù)。開發(fā)者可以隨時把自己的新代碼提交給服務(wù)器,并通過更新獲得代碼的最新狀態(tài),保持與其他開發(fā)者的一致。CVS對于網(wǎng)絡(luò)是透明的,開發(fā)者可以使用客戶端軟件(幾乎所有的平臺上都有相應(yīng)的客戶端軟件)在任何地點(diǎn)通過網(wǎng)絡(luò)來獲取最新的代碼。2.4.3JDK(JavaDevelopmentKit)JDK是整個Java的核心,包括了Java運(yùn)行環(huán)境(JavaRuntimeEnvirnment),一堆Java工具和Java基礎(chǔ)的類庫(rt.jar)。不論什么Java應(yīng)用服務(wù)器實(shí)質(zhì)都是內(nèi)置了某個版本的JDK。因此掌握J(rèn)DK是學(xué)好Java的第一步。最主流的JDK是Sun公司發(fā)布的JDK,除了Sun之外,還有很多公司和組織都開發(fā)了自己的JDK,例如IBM公司開發(fā)的JDK。JDK(JavaDevelopmentKit,Java開發(fā)包,Java開發(fā)工具)是一個寫Java的applet和應(yīng)用程序的程序開發(fā)環(huán)境。它由一個處于操作系統(tǒng)層之上的運(yùn)行環(huán)境還有開發(fā)者編譯,調(diào)試和運(yùn)行用Java語言寫的applet和應(yīng)用程序所需的工具組成。2.5技術(shù)可行性系統(tǒng)的開發(fā)環(huán)境為Windows操作系統(tǒng),Windows操作系統(tǒng)在國內(nèi)的應(yīng)用范圍十分廣泛,B/S架構(gòu)的系統(tǒng)發(fā)展已經(jīng)比較成熟,后臺數(shù)據(jù)庫操作系統(tǒng)采用安全性較高的Orcale9i,前端開發(fā)采用比較強(qiáng)大的JSP,整個系統(tǒng)采用Struts為主框架,以這些先進(jìn)的工具為基礎(chǔ),系統(tǒng)開發(fā)在技術(shù)上是可行的。第3章系統(tǒng)分析第3章系統(tǒng)分析3.1需求總述電力故障報修系統(tǒng)是為提高電力行業(yè)服務(wù)質(zhì)量和服務(wù)效率,降低服務(wù)成本,改善客戶管理體制,優(yōu)化管理結(jié)構(gòu)而設(shè)計開發(fā)的。其中,報修受理提供故障報修業(yè)務(wù)的受理信息錄入、保存、發(fā)送等功能;報修流程工作列表提供報修所有流程信息查詢并提供處理鏈接;搶修調(diào)度提供搶修調(diào)度信息錄入、保存等功能;報修處理提供故障處理信息錄入、保存等功能;搶修車輛信息管理完成搶修車輛信息的查詢、刷新、刪除、增加、修改等功能;搶修人員信息管理提供搶修人員信息的查詢、刪除、增加等功能;報修回訪提供流程回訪、流程回訪信息的錄入、保存、流程發(fā)送等功能;報修歸檔提供95598報修工單的歸檔功能;報修查詢提供故障處理信息查詢功能;故障報修詳細(xì)信息提供故障處理信息顯示功能;用戶管理實(shí)行人員的注冊、修改功能,只有注冊的人員才能登陸系統(tǒng)進(jìn)行操作。3.2用例描述根據(jù)業(yè)務(wù)調(diào)研分析及需求總述,分析出如下的用例,下面幾節(jié)是對各用例的分析和理解。3.2.1報修受理(1)報修受理用例設(shè)計如圖3-1所示。圖3-1報修受理用例圖(2)報修受理用例描述如表3-1——表3-5所示。表3-1報修受理用例描述表描述說明用例名稱受理用例描述當(dāng)用戶點(diǎn)擊左側(cè)【報修受理】菜單時用例開始用戶可以在該用例中新建、修改或查詢報修受理工單當(dāng)用戶使用系統(tǒng)其它功能,或者用戶退出系統(tǒng)時,用例結(jié)束參與者受理人前置條件擁有受理權(quán)限的用戶成功登陸系統(tǒng),并選擇“報修受理”模塊后置條件(無)基本操作流程1.用戶點(diǎn)擊左側(cè)【報修受理】菜單2.系統(tǒng)主界面右側(cè)出現(xiàn)“報修受理”流程節(jié)點(diǎn)內(nèi)的工單流程列表3.用戶可以對該工單列表內(nèi)的任意工單做受理操作可選操作流程(無)表3-2報修受理用例描述表描述說明用例名稱工單流程列表用例描述當(dāng)受理人點(diǎn)擊左側(cè)【報修受理】菜單,或者完成某條受理工單的處理后,用例開始用戶可查看“報修受理”流程節(jié)點(diǎn)的所有受理工單的基本信息列表,并可選擇其中某條信息進(jìn)行處理用戶選擇其他權(quán)限模塊菜單,或者用戶對某條受理工單信息進(jìn)行細(xì)節(jié)操作,或者用戶退出系統(tǒng)時,用例結(jié)束參與者受理人前置條件用戶擁有“受理人”權(quán)限,用戶點(diǎn)擊左側(cè)【報修受理】菜單后置條件系統(tǒng)主頁面右側(cè)顯示當(dāng)前“報修受理”流程節(jié)點(diǎn)的所有受理工單信息基本操作流程1.當(dāng)受理人點(diǎn)擊左側(cè)【報修受理】菜單,或者完成某條受理工單的處理后,用例開始2.系統(tǒng)主頁面右側(cè)顯示當(dāng)前的流程節(jié)點(diǎn),該流程節(jié)點(diǎn)所有受理工單的基本信息,以及【刷新】【新建】【處理】【詳細(xì)信息】按鈕,還有對應(yīng)的翻頁按鈕3.每隔30秒,系統(tǒng)會自動刷新該工單流程列表頁面表3-2報修受理用例描述表續(xù)表描述說明基本操作流程4.點(diǎn)擊【刷新】按鈕,用戶可以手動刷新該工單流程列表頁面5.點(diǎn)擊【新建】按鈕,用戶進(jìn)入“新建受理工單”頁面,用例結(jié)束6.選擇某條受理工單信息,點(diǎn)擊【處理】按鈕,用戶進(jìn)入“處理受理工單”頁面,用例結(jié)束7.選擇某條受理工單信息,點(diǎn)擊【詳細(xì)信息】按鈕,用戶進(jìn)入該受理工單的“詳細(xì)信息”顯示頁面,用例結(jié)束A1:未選擇受理工單,直接點(diǎn)擊【處理】或【詳細(xì)信息】按鈕8.點(diǎn)擊任何可點(diǎn)擊的翻頁按鈕,查看對應(yīng)頁面的受理工單列表可選操作流程A1:未選擇受理工單,直接點(diǎn)擊【處理】或【詳細(xì)信息】按鈕1.系統(tǒng)提示“請選擇一條工單項!”2.系統(tǒng)不進(jìn)行任何頁面跳轉(zhuǎn)表3-3報修受理用例描述表描述說明用例名稱查看詳細(xì)信息用例描述用戶選擇“工單流程列表”中的某條受理工單信息,點(diǎn)擊【詳細(xì)信息】按鈕,用例開始該用例使用戶可查看當(dāng)前節(jié)點(diǎn)之前(包括當(dāng)前節(jié)點(diǎn))的所有工單信息用戶返回“工單流程列表”,或者用戶關(guān)閉系統(tǒng)頁面,或者用戶選擇左側(cè)模塊菜單時,用例結(jié)束參與者受理人前置條件用戶權(quán)限為“受理人”,用戶查看某條受理工單的詳細(xì)信息后置條件系統(tǒng)右側(cè)主界面顯示該受理工單的詳細(xì)信息基本操作流程用戶在“工單流程列表”界面,選擇某條受理工單,點(diǎn)擊【詳細(xì)信息】,用例開始系統(tǒng)右側(cè)主界面顯示該受理工單號,對應(yīng)的受理工單所有信息,并顯示【調(diào)度信息】【處理信息】【回訪信息】三個按鈕A1:點(diǎn)擊【打開】A2:點(diǎn)擊【保存】點(diǎn)擊【調(diào)度信息】,系統(tǒng)提示“該工單還未被調(diào)度!”點(diǎn)擊【處理信息】,系統(tǒng)提示“該工單還未被處理!”可選操作流程(無)表3-4報修受理用例描述表描述說明用例名稱新建工單用例描述用戶點(diǎn)擊【新建】時,用例開始用例完成生成一個新的受理工單的操作用戶完成必要填寫點(diǎn)擊【暫時保存】或【提交】,或者用戶關(guān)閉系統(tǒng)頁面,或者用戶點(diǎn)擊左側(cè)菜單項時,用例結(jié)束參與者受理人前置條件用戶擁有“受理”權(quán)限,用戶在“報修受理”工單流程列表中選擇點(diǎn)擊【新建】按鈕后置條件數(shù)據(jù)庫內(nèi)保存了一個新的受理工單基本操作流程用戶點(diǎn)擊【新建】,用例開始用戶填寫表單A1:用戶上傳附件用戶點(diǎn)擊【提交】A2:用戶點(diǎn)擊【暫時保存】該受理工單被提交到“搶修調(diào)度”模塊用例結(jié)束可選操作流程A1:用戶上傳附件用戶點(diǎn)擊【瀏覽】按鈕,系統(tǒng)彈出“選擇文件”對話框用戶選擇任意文件,點(diǎn)擊【打開】“相關(guān)附件”輸入框中出現(xiàn)剛才用戶選擇文件的地址用戶點(diǎn)擊【添加】“附件”列表里出現(xiàn)剛才用戶選擇的文件名稱B1:用戶取消自己的附件上傳用戶在“附件”列表的復(fù)選框中勾選要取消的附件項,可在頭部實(shí)現(xiàn)全部勾選用戶點(diǎn)擊【刪除】“附件”列表中剛才被勾選的附件項消失無選項則提示用戶有則刪除A2:用戶點(diǎn)擊【暫時保存】該受理工單被保存到數(shù)據(jù)庫,且仍在“報修受理”模塊中用例結(jié)束表3-5報修受理用例描述表描述說明用例名稱提交用例描述用戶對任意受理工單進(jìn)行操作(新建和修改)后,點(diǎn)擊【提交】,用例開始該用例保存用戶對受理工單的處理,并提交該受理工單到對應(yīng)模塊系統(tǒng)主界面刷新到“報修受理”流程節(jié)點(diǎn)的工單流程列表,并返回“提交”操作反饋消息,用例結(jié)束參與者受理人前置條件用戶具有受理人權(quán)限,用戶對任意受理工單進(jìn)行操作(新建和修改)后,點(diǎn)擊【提交】后置條件用戶處理的工單提交到對應(yīng)模塊基本操作流程用戶填寫表單項用戶點(diǎn)擊【提交】A1:用戶未完成必填項填寫A2:用戶有非法填寫A3:用戶填寫為“重復(fù)工單”A4:用戶填寫不是“重復(fù)工單”系統(tǒng)刷新頁面到“報修受理”的工單流程列表,并提示“提交成功!”可選操作流程A1:用戶未完成必填項填寫系統(tǒng)提示用戶須填寫的必填項系統(tǒng)不做任何提交處理A2:用戶有非法填寫項系統(tǒng)提示用戶輸入非法系統(tǒng)不做任何提交處理A3:用戶填寫為“重復(fù)工單”系統(tǒng)提交該受理工單到“報修歸檔”模塊繼續(xù)基本操作3A4:用戶填寫不是“重復(fù)工單”系統(tǒng)提交該受理工單到“搶修調(diào)度”模塊繼續(xù)基本操作33.2.2搶修調(diào)度(1)搶修調(diào)度用例設(shè)計如圖3-2所示。圖3-2搶修調(diào)度用例圖(2)搶修調(diào)度用例描述同上述報修受理用例描述。3.2.3報修處理(1)報修處理用例設(shè)計如圖3-3所示。圖3-3報修處理用例圖(2)報修處理用例描述同上述報修受理用例描述。3.2.4報修回訪(1)報修回訪用例設(shè)計如圖3-4所示。圖3-4報修回訪用例圖(2)報修回訪用例描述同上述報修受理用例描述。3.2.5報修歸檔(1)報修歸檔用例設(shè)計如圖3-5所示。圖3-5報修歸檔用例圖(2)報修歸檔用例描述同上述報修受理用例描述。3.3動態(tài)模型設(shè)計3.3.1受理工單類對象動態(tài)模型受理工單類對象狀態(tài)如3-6圖所示。圖3-6受理工單類對象狀態(tài)圖3.3.2搶修車輛類對象動態(tài)模型搶修車輛類對象狀態(tài)如圖3-7所示。圖3-7搶修車輛類對象狀態(tài)圖3.4序列圖受理模塊新增受理表單成功的序列圖如圖3-8所示。圖3-8受理模塊新增受理表單成功的序列圖3.5組件圖電力報修系統(tǒng)組件圖如圖3-9所示。圖3-9電力故障報修系統(tǒng)組件圖第4章系統(tǒng)設(shè)計第4章系統(tǒng)設(shè)計4.1設(shè)計指導(dǎo)思想和原則4.1.1指導(dǎo)思想(1)堅持統(tǒng)一規(guī)劃、科學(xué)管理、服務(wù)應(yīng)用的指導(dǎo)方針;(2)充分利用現(xiàn)有工作基礎(chǔ)和成果,進(jìn)行改進(jìn)、提升和整合,避免重復(fù)建設(shè)。4.1.2軟件設(shè)計原則(1)標(biāo)準(zhǔn)化和規(guī)范化原則制訂適合于本系統(tǒng)的分類編碼方案。為實(shí)現(xiàn)系統(tǒng)的集成,必須保證系統(tǒng)建設(shè)采用的軟件平臺、數(shù)據(jù)接口、開發(fā)技術(shù)符合公認(rèn)的工業(yè)標(biāo)準(zhǔn),符合國家和行業(yè)的有關(guān)標(biāo)準(zhǔn)、規(guī)范、規(guī)程;同時要保證在系統(tǒng)的分析、設(shè)計、實(shí)現(xiàn)、維護(hù)階段中必須采取開放路線,遵循軟件工程的標(biāo)準(zhǔn)、規(guī)范。(2)安全性原則首先要全面考慮各種例外情況,保證系統(tǒng)的安全可靠,其次是需要加強(qiáng)權(quán)限控制,即業(yè)務(wù)進(jìn)程控制,確保管理嚴(yán)密。(3)完備性原則系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與功能體系最大限度的滿足業(yè)務(wù)需求,減少人工輸入量,提高效率。(4)問題界定問題的界定對于軟件開發(fā)來說是至關(guān)重要的。因為任何一個軟件都不是單純地獨(dú)立服務(wù)。必定是為了解決某些問題而開發(fā)軟件進(jìn)行更好的解決問題。因此,問題的界定對于軟件的成功開發(fā)和應(yīng)用來說至關(guān)重要。(5)基本功能實(shí)現(xiàn)問題界定了就意味著已經(jīng)規(guī)劃好或者和甲方談好,系統(tǒng)需要實(shí)現(xiàn)什么,以及需要完成什么處理?;竟δ埽褪擒浖到y(tǒng)的核心體現(xiàn)?;竟δ艿膶?shí)現(xiàn),是客戶愿意為之付出代價的重要部分。所以系統(tǒng)基本功能實(shí)現(xiàn),對于任何一個軟件或者軟件開發(fā)者來講,都是基本素質(zhì)的體現(xiàn)。(6)極端情況處理至于為什么,要把“極端情況處理”放到這里來講。主要原因是很多軟件的評價者對于軟件的要求都很高。另外,就是軟件的適應(yīng)性要好,因此必須處理這些極端情況。(7)客戶體驗至上軟件的主要服務(wù)對象是人,這就是為什么要說“客戶體驗之上”。(8)封裝功能,松散變化在面向?qū)ο蟮木幊踢^程當(dāng)中,經(jīng)常會遇到“開放-封閉”原則。把功能獨(dú)立封裝,同時對于內(nèi)部進(jìn)行封閉,而對外則提供良好的接口用來提供更多服務(wù)。這也是高內(nèi)聚,低耦合在這里的體現(xiàn)。(9)從用戶角度審視和評價軟件的可用性,易用性等特征,真正提升軟件產(chǎn)品的質(zhì)量。4.2系統(tǒng)構(gòu)架設(shè)計總體描述基于Struts實(shí)現(xiàn)的電力故障報修系統(tǒng)從軟件系統(tǒng)體系結(jié)構(gòu)來看,系統(tǒng)按照高內(nèi)聚、低耦合的軟件設(shè)計思想劃分為四層結(jié)構(gòu),分別為表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)庫訪問層和關(guān)系數(shù)據(jù)庫層,示意圖如圖4-1所示。圖4-1系統(tǒng)體系結(jié)構(gòu)圖表現(xiàn)層負(fù)責(zé)與系統(tǒng)用戶進(jìn)行交互,主要是給用戶的頁面,接受用戶操作命令,向下層傳遞參數(shù),由JSP文件以及Struts標(biāo)簽和js文件組成??刂茖迂?fù)責(zé)調(diào)度業(yè)務(wù)邏輯層負(fù)責(zé)處理系統(tǒng)業(yè)務(wù),接受表現(xiàn)層的操作命令,調(diào)用數(shù)據(jù)庫訪問層進(jìn)行數(shù)據(jù)庫操作,使用Struts框架下的action以及所定義的bo層的java文件實(shí)現(xiàn)。數(shù)據(jù)庫訪問層負(fù)責(zé)向業(yè)務(wù)邏輯層提供數(shù)據(jù)庫訪問服務(wù),當(dāng)業(yè)務(wù)邏輯非常簡單時也可由表現(xiàn)層直接調(diào)用其提供的服務(wù),可對數(shù)據(jù)庫進(jìn)行訪問獲取數(shù)據(jù)或執(zhí)行操作,使用java文件實(shí)現(xiàn)。在數(shù)據(jù)庫層,使用Oracle9i作為底層數(shù)據(jù)庫,充分發(fā)揮其優(yōu)點(diǎn)。這樣劃分層次,使軟件系統(tǒng)結(jié)構(gòu)清晰,邏輯相互獨(dú)立,需要修改時只需保持層與層之間的接口不變即可,因此有助于后期的修改維護(hù),也利于程序功能的擴(kuò)展。4.3系統(tǒng)流程分析客戶通過人工電話、自動語音、短信、Email、傳真、柜臺服務(wù)、自助服務(wù)、現(xiàn)場服務(wù)、互聯(lián)網(wǎng)服務(wù)、意見箱、信函向電力公司提出電力故障報修受理的申請要求,產(chǎn)生受理工單。受理人根據(jù)客戶所提供信息填寫受理內(nèi)容。如果受理人暫時無法提交工單至下一部門,可以做暫時保存操作,可從待辦工作項中,選擇本工單后繼續(xù)處理。受理人員根據(jù)綜合查詢信息查詢是否有相同報修內(nèi)容的報修工單,如果存在重復(fù)工單,可以直接填寫關(guān)聯(lián)單號,或者使用選擇鏈接,直接查找到關(guān)聯(lián)工單單號,填入到關(guān)聯(lián)單號中,將重復(fù)工單提交到歸檔部門進(jìn)行歸檔。受理人對受理工單進(jìn)行調(diào)度,如果調(diào)度部門認(rèn)為工單非本部門可以處理的工單,選擇回退,可以回退給受理部門。如果調(diào)度部門發(fā)現(xiàn)該工單為重復(fù)工單,則可以使用選擇鏈接查找到關(guān)聯(lián)單號,定為重復(fù)工單提交歸檔。由待辦工作項進(jìn)入,可以查看本工單的流轉(zhuǎn)過程信息,根據(jù)受理信息調(diào)度部門選擇處理部門進(jìn)行派工。頁面提供暫時保存功能。暫時保存后保留原有工作項,可以繼續(xù)處理。受理人對調(diào)度工單進(jìn)行處理,如果處理部門認(rèn)為工單非本部門可以處理或其它原因無法處理,可選擇回退。如果處理部門發(fā)現(xiàn)該工單為重復(fù)工單,則可以使用選擇鏈接查找到關(guān)聯(lián)單號,定為重復(fù)工單提交歸檔。受理人對處理工單進(jìn)行回訪,如果用戶反饋報修沒有處理完成,要求重新處理,則是否重新發(fā)送選擇是,重新發(fā)送到報修處理部門進(jìn)行處理。受理人對回訪工單進(jìn)行歸檔,由歸檔人檢查報修工單受理、處理、回訪、滿意度調(diào)查、附件、錄音等信息,填寫完整性標(biāo)志、準(zhǔn)確性標(biāo)志、歸檔意見,提交,流程結(jié)束。系統(tǒng)流程如圖4-2所示。4.4功能設(shè)計在前面已經(jīng)介紹了軟件設(shè)計的指導(dǎo)思想以及設(shè)計原則,已經(jīng)對功能模塊需求進(jìn)行總結(jié),在這一節(jié)將對整體的模塊功能進(jìn)行總結(jié)。根據(jù)需求描述確定了本系統(tǒng)的幾個功能模塊,如圖4-3所示。

圖4-2系統(tǒng)流程圖圖4-3電力故障報修系統(tǒng)模塊功能框圖4.4.1故障受理客戶通過人工電話、自動語音、短信、Email、傳真、柜臺服務(wù)、自助服務(wù)、現(xiàn)場服務(wù)、互聯(lián)網(wǎng)服務(wù)、意見箱、信函向電力公司提出電力故障報修受理的申請要求,產(chǎn)生受理工單。受理人根據(jù)客戶所提供信息填寫受理內(nèi)容。如果受理人暫時無法提交工單至下一部門,可以做暫時保存操作,可從待辦工作項中,選擇本工單后繼續(xù)處理。受理人員根據(jù)綜合查詢信息查詢是否有相同報修內(nèi)容的報修工單,如果存在重復(fù)工單,可以直接填寫關(guān)聯(lián)單號,或者使用選擇鏈接,直接查找到關(guān)聯(lián)工單單號,填入到關(guān)聯(lián)單號中,將重復(fù)工單提交到歸檔部門進(jìn)行歸檔。頁面設(shè)計如圖4-4所示。圖4-4故障受理頁面設(shè)計圖4.4.2搶修調(diào)度受理人對受理工單進(jìn)行調(diào)度,如果調(diào)度部門認(rèn)為工單非本部門可以處理的工單,選擇回退,可以回退給受理部門。如果調(diào)度部門發(fā)現(xiàn)該工單為重復(fù)工單,則可以使用選擇鏈接查找到關(guān)聯(lián)單號,定為重復(fù)工單提交歸檔。由待辦工作項進(jìn)入,可以查看本工單的流轉(zhuǎn)過程信息,根據(jù)受理信息調(diào)度部門選擇處理部門進(jìn)行派工。頁面提供暫時保存功能。暫時保存后保留原有工作項,可以繼續(xù)處理。4.4.3報修處理受理人對調(diào)度工單進(jìn)行處理,如果處理部門認(rèn)為工單非本部門可以處理或其它原因無法處理,可選擇回退。如果處理部門發(fā)現(xiàn)該工單為重復(fù)工單,則可以使用選擇鏈接查找到關(guān)聯(lián)單號,定為重復(fù)工單提交歸檔。4.4.4報修回訪受理人對處理工單進(jìn)行回訪,如果用戶反饋報修沒有處理完成,要求重新處理,則是否重新發(fā)送選擇是,重新發(fā)送到報修處理部門進(jìn)行處理。4.4.5報修歸檔受理人對回訪工單進(jìn)行歸檔,由歸檔人檢查報修工單受理、處理、回訪、滿意度調(diào)查、附件、錄音等信息,填寫完整性標(biāo)志、準(zhǔn)確性標(biāo)志、歸檔意見,提交,流程結(jié)束。4.4.6用戶管理電力故障報修系統(tǒng)完成了對用戶信息的管理,實(shí)現(xiàn)了用戶信息查詢、增加、刪除、修改。4.4.7報修人員管理電力故障報修系統(tǒng)完成了對報修人員信息的管理,實(shí)現(xiàn)了報修人員信息查詢、增加、刪除、修改。4.4.8報修車輛管理電力故障報修系統(tǒng)完成了對報修車輛信息的管理,實(shí)現(xiàn)了報修車輛信息查詢、增加、刪除、修改。4.4.9報修查詢電力故障報修系統(tǒng)實(shí)現(xiàn)了報修查詢功能,實(shí)現(xiàn)了報故障報修詳細(xì)信息查詢、搶修調(diào)度信息查詢、報修故障處理信息查詢、回訪信息查詢、工單個流程數(shù)量查詢等功能。頁面設(shè)計如圖4-5所示。圖4-5報修查詢頁面設(shè)計圖4.5數(shù)據(jù)庫設(shè)計4.5.1數(shù)據(jù)庫表簡介在對數(shù)據(jù)庫模型進(jìn)行設(shè)計后,在本系統(tǒng)中一共使用了12張數(shù)據(jù)庫表,他們的名稱和簡單的功能描述如下所示。(1)用戶信息表(USER_TAB):記錄用戶的用戶名,密碼等基本信息。(2)權(quán)限表(ROLE_TAB):記錄了權(quán)限的名稱。(3)用戶權(quán)限關(guān)聯(lián)表(USER_ROLE):記錄了各個用戶擁有的權(quán)限信息。(4)工單受理信息表(S_99958_WKST):記錄了用戶對工單進(jìn)行受理時的各種信息。(5)工單調(diào)度信息表(S_FAULT_ATTEMPER):記錄了用戶對工單進(jìn)行調(diào)度時的各種信息。(6)工單處理信息表(S_FAULT_HANDLE2):記錄了用戶對工單進(jìn)行處理時的各種信息。(7)工單回訪信息表(S_RETVISIT_RSLT):記錄了用戶對工單進(jìn)行回訪時的各種信息。(8)搶修人員信息表(STAFF_INFO):記錄了搶修人員的基本信息。(9)搶修車輛信息表(VEHICLE_INFO):記錄了搶修車輛的基本信息。(10)附件表(P_SRV_ATTACH):用于存儲用戶在受理階段上傳的附件信息。(11)主鍵遞增表(PRIMARY_KEYS):用于生成維護(hù)其他各表的主鍵標(biāo)識信息。(12)下拉列表配置表(SELECTS):存放了所有下拉列表的內(nèi)容信息。4.5.2數(shù)據(jù)庫表結(jié)構(gòu)(1)用戶信息表(USER_TAB),存儲了用戶的ID,用戶名和密碼等基本信息,它的主鍵為USER_ID字段,該表主要用于系統(tǒng)的用戶管理,在系統(tǒng)登陸,以及對工單的受理人操作是會使用此表。用戶信息表結(jié)構(gòu)如下表4-1所示。表4-1用戶信息表字段名數(shù)據(jù)類型描述USER_IDVARCHAR2(10)主鍵,用戶IDUSER_NAMEVARCHAR2(20)用戶名USER_PASSWDVARCHAR2(40)用戶密碼(2)權(quán)限表(ROLE_TAB),存儲了權(quán)限的ID,權(quán)限名稱等基本信息,它的主鍵為ROLE_ID字段,該表主要用于維護(hù)權(quán)限信息,在對用戶權(quán)限進(jìn)行操作時會關(guān)聯(lián)使用此表。權(quán)限表結(jié)構(gòu)如下表4-2所示。表4-2用戶權(quán)限表字段名數(shù)據(jù)類型描述ROLE_IDVARCHAR2(2)主鍵,權(quán)限IDROLE_NAMEVARCHAR2(20)權(quán)限名稱(3)用戶權(quán)限關(guān)聯(lián)表(USER_ROLE),存儲了用戶ID和對應(yīng)的權(quán)限ID,USER_ID和ROLE_ID字段共同組成它的主鍵,該表主要用于用戶權(quán)限的管理,在對用戶權(quán)限操作時會使用此表。用戶權(quán)限關(guān)聯(lián)表的結(jié)構(gòu)如下表4-3所示。表4-3用戶權(quán)限關(guān)聯(lián)表字段名數(shù)據(jù)類型描述ROLE_IDVARCHAR2(2)權(quán)限IDUSER_IDVARCHAR2(10)用戶ID(4)工單受理信息表(S_99958_WKST),存儲了工單受理的基本信息,如受理業(yè)務(wù)類型、受理人員工號、受理內(nèi)容、供電單位編碼、受理時間等,業(yè)務(wù)咨詢、信息查詢、故障報修、投訴、舉報、表揚(yáng),建議、意見等,它的主鍵為APP_NO字段,該表主要用于受理信息的維護(hù),在用戶對工單進(jìn)行受理,以及工單查詢時會使用此表,工單受理信息表結(jié)構(gòu)如下表4-4所示。表4-4工單受理信息表字段名數(shù)據(jù)類型描述APP_NOVARCHAR2(18)主鍵,受理工單號BUSI_TYPE_CODEVARCHAR2(8)業(yè)務(wù)類型編碼COUNTY_CODEVARCHAR2(8)所屬區(qū)縣URBAN_RURAL_FLAGVARCHAR2(8)城鄉(xiāng)類別ORG_NOVARCHAR2(16)供電單位編碼EMP_NOVARCHAR2(16)受理人員工號HANDLE_TIMEDATE受理時間ACCEPT_MODEVARCHAR2(8)受理方式ACCEPT_CONTENTVARCHAR2(4000)受理內(nèi)容REL_CALL_NOVARCHAR2(256)聯(lián)系電話HANDLE_OPINIONVARCHAR2(256)受理意見FAULT_DESCVARCHAR2(16)故障現(xiàn)象EMERGENCY_LEVELEVARCHAR2(8)故障報修緊急程度VOLT_CODEVARCHAR2(8)故障電壓等級SITE_TYPE_CODEVARCHAR2(8)處理現(xiàn)場分類HARM_LEVEL_CODEVARCHAR2(8)故障危害程度EQUIP_PR_CODEVARCHAR2(8)故障設(shè)備產(chǎn)權(quán)屬性REASONVARCHAR2(16)故障原因FAULT_TYPE_CODEVARCHAR2(16)故障類型FAULT_KIND_CODEVARCHAR2(16)故障分類BOOKING_TIMEDATE預(yù)約時間BOOKING_FLAGVARCHAR2(8)是否預(yù)約CONTACT_PERSONVARCHAR2(32)聯(lián)系人VISIT_FLAGVARCHAR2(8)回訪標(biāo)志表4-4工單受理信息表續(xù)表字段名數(shù)據(jù)類型描述MODE_CODEVARCHAR2(8)回訪方式VISIT_CALL_NOVARCHAR2(256)回訪電話RETVISIT_FAILVARCHAR2(256)回訪未成功原因IF_REPEATVARCHAR2(8)是否重復(fù)工單RAL_APP_NOVARCHAR2(16)關(guān)聯(lián)工單號NEW_FAULT_FLAGVARCHAR2(8)新故障標(biāo)志INIT_JUDGEVARCHAR2(256)初步故障判斷PS_POINTVARCHAR2(256)供電點(diǎn)POLE_NOVARCHAR2(16)桿號LINE_NAMEVARCHAR2(256)線路名稱LOCATE_REFVARCHAR2(256)參照物FAULT_ADDRVARCHAR2(256)報修地址ARC_MODEVARCHAR2(8)歸檔方式INTEGRITY_FLAGVARCHAR2(8)完整性標(biāo)志ACCURACY_FLAGVARCHAR2(8)準(zhǔn)確性標(biāo)志ARC_OPINIONVARCHAR2(4000)歸檔意見ARC_DATEDATE歸檔時間ARC_EMP_NAMEVARCHAR2(16)歸檔人員HANDLE_STATVARCHAR2(8)處理狀態(tài)(5)工單調(diào)度信息表(S_FAULT_ATTEMPER),存儲了工單調(diào)度的基本信息,如故障調(diào)度標(biāo)識,申請編號,發(fā)送部門,接單時間,發(fā)送時間,退單標(biāo)志,退單原因等,它的主鍵為ATTEMPER_ID字段,用APP_NO字段作為外鍵與工單受理信息表(S_99958_WKST)關(guān)聯(lián)。該表主要用于調(diào)度信息的維護(hù),在用戶對工單進(jìn)行調(diào)度,以及工單查詢時會使用此表,工單受理信息表結(jié)構(gòu)如下表4-5所示。(6)工單處理信息表(S_FAULT_HANDLE2),存儲了工單處理的基本信息,如到達(dá)現(xiàn)場時間、搶修單位、搶修部門、派出人員、故障原因等。它的主鍵為HANDLE_ID字段,用APP_NO字段作為外鍵與工單受理信息表(S_99958_WKST)關(guān)聯(lián)。該表主要用于處理信息的維護(hù),在用戶對工單進(jìn)行處理,以及工單查詢時會使用此表,工單受理信息表結(jié)構(gòu)如下表4-6所示。表4-5工單調(diào)度信息表字段名數(shù)據(jù)類型描述ATTEMPER_IDVARCHAR2(32)主鍵,調(diào)度工單IDAPP_NOVARCHAR2(16)外鍵,關(guān)聯(lián)受理工單IDREPAIR_DEPT_NOVARCHAR2(32)發(fā)送部門RECEIVE_TIMEDATE接單時間DISPACH_TIMEDATE發(fā)送時間RETURN_FLAGVARCHAR2(8)退單標(biāo)志RETURN_REASONVARCHAR2(8)退單原因表4-6工單處理信息表字段名數(shù)據(jù)類型描述ATTEMPER_IDVARCHAR2(32)主鍵,調(diào)度工單IDAPP_NOVARCHAR2(16)外鍵,關(guān)聯(lián)受理工單IDREPAIR_DEPT_NOVARCHAR2(32)發(fā)送部門RECEIVE_TIMEDATE接單時間DISPACH_TIMEDATE發(fā)送時間RETURN_FLAGVARCHAR2(8)退單標(biāo)志RETURN_REASONVARCHAR2(8)退單原因(7)工單回訪信息表(S_RETVISIT_RSLT),存儲了工單回訪的基本信息,如回訪部門、回訪人員、回訪人員、回訪成功標(biāo)志、回訪失敗原因等。它的主鍵為WK_NO字段,用APP_NO字段作為外鍵與工單受理信息表(S_99958_WKST)關(guān)聯(lián)。該表主要用于回訪信息的維護(hù),在用戶進(jìn)行客戶回訪,以及工單查詢時會使用此表,工單回訪信息表結(jié)構(gòu)如下表4-7所示。(8)搶修人員信息表(STAFF_INFO),存儲了搶修人員的基本信息,如搶修人員工號,搶修人員姓名,所屬部門,是否空閑等。它的主鍵為ID字段。該表主要用于搶修人員信息的維護(hù),在用戶對搶修人員信息進(jìn)行增刪改查操作,以及工單處理選擇搶修人員時會使用此表,搶修人員信息表結(jié)構(gòu)如下表4-8所示。表4-7工單回訪信息表字段名數(shù)據(jù)類型描述WK_NOVARCHAR2(32)主鍵,回訪工單IDAPP_NOVARCHAR2(16)外鍵,關(guān)聯(lián)受理工單IDMODE_CODEVARCHAR2(8)回訪方式RET_VISIT_TIMEDATE回訪時間SUCC_FLAGVARCHAR2(8)回訪成功標(biāo)志FAIL_REASONVARCHAR2(256)回訪失敗原因CUST_OPINIONVARCHAR2(256)回訪客戶意見IF_RESENDVARCHAR2(8)是否重新發(fā)送RESEND_REASONVARCHAR2(256)重新發(fā)送原因表4-8搶修人員信息表字段名數(shù)據(jù)類型描述IDVARCHAR2(32)主鍵,搶修人員IDSTAFF_IDVARCHAR2(16)搶修人員工號STAFF_NAMEVARCHAR2(32)搶修人員姓名DEPTVARCHAR2(32)搶修人員所屬部門IF_VALIDVARCHAR2(8)是否空閑(9)搶修車輛信息表(VEHICLE_INFO),存儲了搶修車輛的基本信息,如車牌號,車型號,聯(lián)系電話,是否空閑等。它的主鍵為ID字段。該表主要用于搶修車輛信息的維護(hù),在用戶對搶修車輛信息進(jìn)行增刪改查操作,以及工單處理階段選擇搶修車輛時會使用此表,搶修車輛信息表結(jié)構(gòu)如下表4-9所示。表4-9搶修車輛信息表字段名數(shù)據(jù)類型描述IDVARCHAR2(32)主鍵,搶修車輛IDVEHICLE_IDVARCHAR2(16)車牌號VEHICLE_TYPEVARCHAR2(8)車型號CALL_NOVARCHAR2(16)聯(lián)系電話IF_VALIDVARCHAR2(8)是否空閑(10)附件表(P_SRV_ATTACH),存儲了附件的基本信息,如附件ID,附件名稱,申請編號,附件內(nèi)容,業(yè)務(wù)單編號,業(yè)務(wù)類型。它的主鍵為ATTACHI_ID字段,用APP_NO字段作為外鍵與工單受理信息表(S_99958_WKST)關(guān)聯(lián)。該表主要用于附件信息的維護(hù),在用戶受理工單上傳附件,以及查詢受理信息時會使用此表。附件表的結(jié)構(gòu)如下表4-10所示。表4-10附件表字段名數(shù)據(jù)類型描述ATTACH_IDVARCHAR2(16)主鍵,附件IDATTACH_NAMEVARCHAR2(256)附件名稱APP_NOVARCHAR2(16)外鍵,關(guān)聯(lián)受理工單IDCONTENTBLOB附件內(nèi)容BUSI_NOVARCHAR2(16)業(yè)務(wù)單編號BUSI_TYPE_CODEVARCHAR2(8)業(yè)務(wù)類型(11)主鍵遞增表(PRIMARY_KEYS),存儲了主鍵的基本信息,如表名,字段名,前綴字符,最大值,備注等。它的主鍵為TABLE_NM字段。該表主要用于為其他表產(chǎn)生一定規(guī)范的主鍵值。在其他各表增加新項需要產(chǎn)生一定規(guī)范的主鍵值時時會使用此表。主鍵遞增表的結(jié)構(gòu)如下表4-11所示。表4-11主鍵遞增表字段名數(shù)據(jù)類型描述TABLE_NMVARCHAR2(64)主鍵,表的名稱COL_NMVARCHAR2(32)字段名FORE_CHARVARCHAR2(16)前綴字符MAX_IDNUMBER最大值MEMOVARCHAR2(64)備注(12)下拉列表配置表(SELECTS),存儲了所有下拉列表內(nèi)容的基本信息,如列表ID,列表鍵,列表值,標(biāo)志位,備注等。它的主鍵為TYPE_ID字段。該表主要用于維護(hù)下拉列表內(nèi)容信息。在界面使用到下拉列表時會使用此表,下拉列表配置表的結(jié)構(gòu)如下表4-12所示。表4-12下拉列表配置表字段名數(shù)據(jù)類型描述TYPE_IDVARCHAR2(32)主鍵,列表IDIDVARCHAR2(32)列表鍵VALUEVARCHAR2(64)列表值FLAGVARCHAR2(8)標(biāo)志位,標(biāo)識是否可用MEMOVARCHAR2(64)備注4.6系統(tǒng)開發(fā)工具及運(yùn)行環(huán)境4.6.1開發(fā)工具及開發(fā)調(diào)試環(huán)境計算機(jī)硬件:處理器為IntelPentium,1.79GHZ,內(nèi)存容量512M,硬盤80G。操作系統(tǒng):WindowsXP編碼工具:Eclipse3.1、MyEclipse6.5調(diào)試工具:Tomcat5.0.28Java:JDK1.4.2_06-b03(JavaDevelopmentKit)數(shù)據(jù)庫:Oracle9i版本控制:CVS(ConcurrentVersionSystem)依賴組件:MicrosoftOfficeExcel20034.6.2運(yùn)行環(huán)境服務(wù)器端:服務(wù)器:2.0GHZ,內(nèi)存容量10G,硬盤20T操作系統(tǒng):Win系列2000以上或者LinuxWeb服務(wù)器:Tomcat5.0以及以上數(shù)據(jù)庫:Oracle9i編譯環(huán)境:JDK1.4以上客戶端:計算機(jī)硬件:內(nèi)存容量256M以上,硬盤20G以上。瀏覽器:IE6.0以上依賴組件:MicrosoftOfficeExcel2003第5章系統(tǒng)實(shí)施第5章系統(tǒng)實(shí)施5.1程序編寫本系統(tǒng)所采用的框架是較流行的Struts框架。系統(tǒng)繼續(xù)使用Struts的各種優(yōu)良特性,一定程度上滿足了系統(tǒng)的需求。下面對項目結(jié)構(gòu)進(jìn)行介紹:Action:繼續(xù)使用struts的通用方式,處理調(diào)用和交互問題。BO(BusinessObject):BO是實(shí)現(xiàn)業(yè)務(wù)邏輯的,在一般簡單的系統(tǒng)中,這一層可以理解成是對DAO層的再一次封裝,稍復(fù)雜的系統(tǒng)則不然,只要和業(yè)務(wù)有關(guān)的對數(shù)據(jù)的操作都在這一層來完成。BO是中間層,是承上啟下的一層,什么數(shù)據(jù)都要通過它來進(jìn)行傳遞。DAO(DateAccessObject):DateAccessObject數(shù)據(jù)訪問對象,和數(shù)據(jù)通信的一層。BO層需要什么樣的數(shù)據(jù),DAO就用相應(yīng)的方法對數(shù)據(jù)庫數(shù)據(jù)的增刪改查得到結(jié)果來提供相應(yīng)的數(shù)據(jù)。Form:封裝了用戶提交的數(shù)據(jù),通過在struts-config.xml文件與相應(yīng)的action和jsp頁面對應(yīng)。頁面:Struts通過在struts-config.xml文件中對Action,以及ActionForm配置,可以在前臺JSP與Action之間建立起映射。Action在struts-config.xml文件中匹配規(guī)則進(jìn)行跳轉(zhuǎn)。同時在它們之間傳遞數(shù)據(jù)也通過Struts的封裝變的快捷了很多。從應(yīng)用的角度,Struts用MVC模式封裝了數(shù)據(jù)通信的過程,在jsp頁面要得到ActionForm中的數(shù)據(jù)只需使標(biāo)簽中的屬性和ActionForm中的屬性名字一樣,Struts會自己去找到相應(yīng)的屬性字段。5.2Action層的實(shí)現(xiàn)在報修受理模塊下有RepairAcceptAction.java,RepairAcceptAction.java完成報修業(yè)務(wù)工單的暫時保存,提交,文件上傳,文件下載等操作的處理和調(diào)用;在報修調(diào)度模塊下進(jìn)行處理調(diào)用的action是RepairDispatchAction.java文件;在報修處理模塊下進(jìn)行處理調(diào)用的action是RepairTreateAction.java文件;在報修回訪模塊下進(jìn)行處理調(diào)用的action是RepairRetvisitAction.java文件;在報修歸檔模塊下進(jìn)行處理調(diào)用的action是RepairArchiveAction.java文件;在報修查詢模塊下進(jìn)行處理調(diào)用的action是RepairQueryAction.java文件;在搶修人員管理模塊下進(jìn)行調(diào)用的action是RepairStaffAction.java文件;在搶修車輛管理模塊下進(jìn)行調(diào)用的action是RepairCarAction.java文件。在這里以搶修人員管理模塊為例進(jìn)行說明。搶修人員管理模塊中RepairStaffAction類作為控制器,該類繼承了DispatchAction類,這樣在調(diào)用這個類時根據(jù)不同的method參數(shù),調(diào)用該類中不同的方法。該類中具有l(wèi)ist()、del()、add()、modify()四個方法,分別完成了向頁面顯示查詢信息、刪除、添加以及修改行信息功能。Action類是處理調(diào)用和交互問題的,以list方法為例,action類要與PageModel關(guān)聯(lián),并通過調(diào)用bo類,將獲得的信息放到相應(yīng)的PageModel屬性中。代碼如下所示。publicActionForwardlist(ActionMappingmapping,ActionFormform, HttpServletRequestrequest,HttpServletResponseresponse) throwsException{ //獲取從頁面表單中提交過來的值 StaffFormsf=(StaffForm)form; //創(chuàng)建StaffVo實(shí)體對象,并將StaffForm中的內(nèi)容設(shè)置到StaffVo對象中 StaffVosv=newStaffVo(); //將屬性值從StaffForm對象拷貝到StaffVo對象 BeanUtils.copyProperties(sv,sf); //調(diào)用業(yè)務(wù)邏輯操作 PageModelpageModel=StaffService.getInstance().searchStaff( sf.getPageNo(),sf.getPageSize(),sv); //將查詢結(jié)果放到request中 request.setAttribute("pagemodel",pageModel); returnmapping.findForward("list"); }Action中每個方法返回的都是ActionForward對象,即調(diào)用關(guān)聯(lián)的頁面。5.3BO層的實(shí)現(xiàn)在報修受理模塊、報修調(diào)度模塊、報修處理模塊、報修回訪模塊、報修歸檔模塊、報修查詢模塊、搶修人員管理模塊和搶修車輛管理模塊的bo層文件分別是RepairAcceptService.java,RepairDispatchService.java,RepairTreateService.java,RepairRetvisitService.java,RepairArchiveService.java,RepairQueryService.java,RepairStaffService.java,RepairCarService.java。同樣以搶修人員管理模塊為例,在這里bo層的類是RepairStaffService類,它是搶修人員管理模塊處理業(yè)務(wù)的類,對DAO層進(jìn)行封裝操作,通過DAO層獲得所要使用的數(shù)據(jù),并完成所要進(jìn)行的業(yè)務(wù)處理,供Action進(jìn)行調(diào)用。如該類中的獲得搶修人員信息的方法,通過getInstance()方法,將獲得的數(shù)據(jù)返回,以提供給action中的list()方法使用。publicclassStaffService{privatestaticStaffServiceinstance=newStaffService();publicstaticStaffServicegetInstance(){returninstance;}/***顯示人員信息*@parampageNo*@parampageSize*@paramsv*@return*/publicPageModelsearchStaff(intpageNo,intpageSize,StaffVosv){returnStaffDaoFactory.getInstance().createStaffDao().searchStaff(pageNo,pageSize,sv);}}該類中還有delStaff()、addStaff()、editStaff()等方法,分別用于完成刪除、添加、修改人員信息行等業(yè)務(wù)。這些方法在action中被調(diào)用,從而相互協(xié)調(diào)完成這些功能。5.4DAO層的實(shí)現(xiàn)DAO類實(shí)現(xiàn)了數(shù)據(jù)庫的連接、數(shù)據(jù)訪問功能。該類執(zhí)行了SQL語句,類中的不同方法分別執(zhí)行了對數(shù)據(jù)庫進(jìn)行的查詢、刪除、添加和修改的SQL語句,并將執(zhí)行結(jié)果返回。以執(zhí)行查詢的SQL語句的方法為例,代碼如下所示。publicPageModelsearchStaff(intpageNo,intpageSize,StaffVosv){Connectionconn=null;Statementstmt=null;ResultSetrs=null;PageModelpageModel=null;try{inttotalRecords=0;try{conn=DB.getConn();}catch(NamingExceptione){e.printStackTrace();}stmt=conn.createStatement();StringBuffersql=newStringBuffer();sql.append("selectcount(*)fromstaff_infowhereSTAFF_IDlike'%").append((sv.getStaff_id()==null?"".trim():sv.getStaff_id().trim())).append("%'andSTAFF_NAMElike'%").append((sv.getStaff_name()==null?"".trim():sv.getStaff_name().trim())).append("%'");rs=stmt.executeQuery(sql.toString());if(rs.next()){totalRecords=rs.getInt(1);}StringBuffersbSql=newStringBuffer();sbSql.append("select*from(selectrownumr,staff_info.*fromstaff_infowhereSTAFF_IDlike'%").append((sv.getStaff_id()==null?"".trim():sv.getStaff_id().trim())).append("%'andSTAFF_NAMElike'%").append((sv.getStaff_name()==null?"".trim():sv.getSta

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論