




已閱讀5頁,還剩28頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
大學(xué)本科畢業(yè)設(shè)計(論文)題 目:基于MVC模式下機關(guān)辦公自動化系統(tǒng)(OA-B)核心功能的實現(xiàn)Subject:The corn function design of OA-B system based on MVC pattern姓 名: 學(xué) 號:專 業(yè):計算機軟件學(xué) 院:計算機信息工程學(xué)院指導(dǎo)老師:完成時間:摘 要MVC模式是一種可應(yīng)用于J2EE的開放式框架結(jié)構(gòu)。它允許Web頁面或其它瀏覽內(nèi)容(視圖層)能夠最大限度的與內(nèi)部代碼(模型/控制層)分離開來,從而使設(shè)計者和程序員能夠?qū)⒆⒁饬性谒麄兏髯缘膶iT技術(shù)上。并因Java的“一次寫入后,任何處運行”的特性而提高了開發(fā)效率。本論文著眼于在JBuilder環(huán)境下應(yīng)用MVC模式開發(fā)機關(guān)辦公自動化系統(tǒng)的核心功能,即發(fā)/收文管理、工作流控制以及用戶管理。本論文以我們OA小組開發(fā)的機關(guān)辦公自動化系統(tǒng)WebOA為例,介紹了由本人參與設(shè)計的發(fā)/收文工作流模塊和用戶管理模塊的相關(guān)技術(shù),并進行程序結(jié)構(gòu)分析和具體功能實現(xiàn)闡述。關(guān)鍵詞:MVC模式 J2EE相關(guān)組件 機關(guān)辦公自動化 發(fā)收文管理 工作流 用戶管理ABSTRACTMVC is an open source framework for JSP Web applications. This design model allows the Web page or other contents (View) to be mostly separated from the internal application code (Controller/Model), making it easier for designers and programmers to focus on their respective areas of expertise. It improve the efficiency of the development process thanks to JAVA “Write Once, run anywhere” nature.This dissertation focuses on implementation of MVC patterns to develope Office Automatic system for Bureau (OA-B) which run on JBuilder environment, and mainly introduce its kernel functions theory such as Message Send&Receive Manage, Workflow Control and User Manage .This dissertation introduces the function of implemented office automation for bureau named WebOA by our OA team . It also expatiate its relative technology which were concerned and designed by me as well as this systems Message Send&Receive Manage , Workflow Control and User Manage structure and analysis of implementation in details. Keyword:MVC Patterns J2EE relative technology OA-B Message Send&Receive Manage Workflow Control UserManage目 錄第一章 緒 論錯誤!未定義書簽。1.1 研究背景錯誤!未定義書簽。1.2 OA-B概念的提出錯誤!未定義書簽。第二章 系統(tǒng)相關(guān)技術(shù)簡介錯誤!未定義書簽。2.1系統(tǒng)開發(fā)架構(gòu)錯誤!未定義書簽。2.2系統(tǒng)所采用的主要技術(shù)分析錯誤!未定義書簽。2.2.1系統(tǒng)采用的MVC模式架構(gòu)錯誤!未定義書簽。2.2.2系統(tǒng)采用的J2EE相關(guān)標(biāo)準組件技術(shù)錯誤!未定義書簽。2.2.3Browser/Server系統(tǒng)的三層體系結(jié)構(gòu)錯誤!未定義書簽。2.3 系統(tǒng)的運行環(huán)境和開發(fā)平臺錯誤!未定義書簽。2.3.1系統(tǒng)的開發(fā)平臺錯誤!未定義書簽。2.3.2 系統(tǒng)運行環(huán)境錯誤!未定義書簽。第三章 系統(tǒng)功能結(jié)構(gòu)錯誤!未定義書簽。3.1 OA-B模式錯誤!未定義書簽。3.1.1基本需求:報文傳遞功能錯誤!未定義書簽。3.1.2應(yīng)用模式:工作流錯誤!未定義書簽。3.1.3數(shù)據(jù)整合:復(fù)合型文檔錯誤!未定義書簽。3.2 本系統(tǒng)功能模塊錯誤!未定義書簽。第四章 核心子系統(tǒng)模塊設(shè)計錯誤!未定義書簽。4.1 發(fā)/收文管理錯誤!未定義書簽。4.1.1 M-V-C模式分析發(fā)文管理錯誤!未定義書簽。4.1.2 發(fā)文工作流數(shù)據(jù)庫實現(xiàn)錯誤!未定義書簽。4.1.3 收文查詢中值對象控制錯誤!未定義書簽。4.2 用戶權(quán)限管理錯誤!未定義書簽。4.2.1用戶權(quán)限的數(shù)據(jù)庫邏輯結(jié)構(gòu)錯誤!未定義書簽。4.2.2用戶管理數(shù)據(jù)庫的物理結(jié)構(gòu)錯誤!未定義書簽。第五章 小 結(jié)錯誤!未定義書簽。結(jié) 語錯誤!未定義書簽。致 謝錯誤!未定義書簽。參考文獻錯誤!未定義書簽。附 錄:發(fā)文管理源代碼錯誤!未定義書簽。第一章 緒 論1.1 研究背景辦公自動化(Office Automation,簡稱OA),是以先進成熟的計算機和通信技術(shù)為主要手段,建成一個覆蓋政府企業(yè)等部門的辦公信息系統(tǒng),提供企事業(yè)單位與其他專用計算機網(wǎng)絡(luò)之間的信息交換,建立高質(zhì)量、高效率的政府信息網(wǎng)絡(luò),為領(lǐng)導(dǎo)決策和辦公提供服務(wù),實現(xiàn)辦公現(xiàn)代化、信息資源化、傳輸網(wǎng)絡(luò)化和決策科學(xué)化。由于OA所含蓋的范疇太廣,只要是與信息通信相關(guān)的辦公軟件仿佛都可以與OA掛鉤,導(dǎo)致市場中的OA產(chǎn)品質(zhì)量水平參差不齊,盡管客戶對其需求量大,但能滿足要求的產(chǎn)品并不多,我們通過調(diào)研發(fā)現(xiàn),主要有如下缺陷:1 功能華而不實。不少產(chǎn)品看上去非常全面,很多功能卻難以實現(xiàn),而且真正核心的功能做的并不深入,反而造成資源上浪費。2 面向群體無針對性。OA是要面向客戶群體的,很多產(chǎn)品標(biāo)榜其可以用在任何辦公環(huán)境,但結(jié)果是哪里都能用,哪里都用不好。OA工作環(huán)境的性質(zhì)決定其必須能針對某類工作流程比較固定的單位。3 行業(yè)規(guī)范性不強。OA針對的是具有一定辦公標(biāo)準的行業(yè),這就要求所研制的軟件應(yīng)用時有嚴格的且符合該行業(yè)設(shè)計規(guī)范公文文檔和工作流程1.2 OA-B概念的提出從上述要求出發(fā),我們提出OA-B(Office Automation for Bureau)的概念,即機關(guān)辦公自動化系統(tǒng)。機關(guān)辦公自動化系統(tǒng)是實現(xiàn)機關(guān)內(nèi)部各級部門之間以及機關(guān)內(nèi)外部之間辦公信息的收集與處理、流動與共享、實現(xiàn)科學(xué)決策的具有戰(zhàn)略意義的信息系統(tǒng)。經(jīng)過市場調(diào)查,我們發(fā)現(xiàn),一個成功的OA-B最應(yīng)具有是以下特點:1 能適應(yīng)靈活多變辦公自動化業(yè)務(wù)的流程化處理手段。2各子系統(tǒng)間數(shù)據(jù)集成化,且OA系統(tǒng)能在不同職能部門系統(tǒng)間完成信息雙向傳遞。而這些系統(tǒng)本身可以是完全異構(gòu)的、分散的。3由于涉及重要的政務(wù)辦公信息,信息系統(tǒng)的的安全性與完整性,及可配置管理是隨時應(yīng)該考慮的特性。4技術(shù)的符合標(biāo)準與先進性。特別是辦公文檔和工作流程必須符合所應(yīng)用行業(yè)的規(guī)范。第二章 系統(tǒng)相關(guān)技術(shù)簡介2.1 系統(tǒng)開發(fā)架構(gòu)本系統(tǒng)采用JSP+Servlet+JavaBean的三層架構(gòu)開發(fā)模式。此模式遵循視圖控制器M-V-C模式,其基本構(gòu)想是使用一個或多個Servlet作為控制器。請求由前沿的Servlet接收并處理后,會重新定向到JSP。在Servlet作為控制器時,每個Servlet通常只實現(xiàn)很少一部分功能,多個Servlet控制器就可以結(jié)合起來完成復(fù)雜的任務(wù),這樣的好處是Servlet的重用性好。在此模式中,JavaBean作為模型的角色,它充當(dāng)JSP和Servlet通信的中間工具,Servlet處理完后設(shè)置Bean屬性,JSP讀取此Bean的屬性,然后進行顯示。此模式更加明顯的把顯示和邏輯分離,使代碼容易管理,適合于大型項目的開發(fā),所以在本系統(tǒng)中采用了這種模式。此模式的數(shù)據(jù)傳遞關(guān)系如圖1-1所示。圖1-1 OA-B開發(fā)模式數(shù)據(jù)傳遞關(guān)系2.2 系統(tǒng)所采用的主要技術(shù)分析2.2.1 系統(tǒng)采用的MVC模式架構(gòu)通過模型、視圖和控制架構(gòu)(M-V-C)以實現(xiàn)簡單高效的應(yīng)用程序升級和維護,以及如何讓不懂程序代碼的人員避開程序數(shù)據(jù)。MVC的架構(gòu)是一個描述重現(xiàn)的問題及其解決方案的設(shè)計范式,但每次問題重現(xiàn)時,解決方案都不會完全相同。MVC設(shè)計范式包括三種對象:1、模型(model)提供應(yīng)用業(yè)務(wù)邏輯(Enterprise Beans類)。2、視圖(view)則是其在屏幕上的顯示(html頁面、JSP頁面、Swing GUI)3、控制器則是Servlet、JavaBeans或Session Beans類,它用于管理用戶與視圖發(fā)生的交互。2.2.2 系統(tǒng)采用的J2EE相關(guān)標(biāo)準組件技術(shù)J2EE平臺為多層的分布式模型,組件再用,一致化的安全模型以及靈活的事務(wù)控制。應(yīng)用客戶組件、Enterprise Beans組件、Servlet及JSP頁面組件、Applet等。1、JSP(Java Server Pages)技術(shù)本系統(tǒng)中充當(dāng)MVC的V部分視圖表示(Viewer)。2、Servlet技術(shù)Applet的服務(wù)器端版本,是由Web服務(wù)器裝入、用于處理客戶請求的Java程序。本系統(tǒng)中作為MVC中的C部分控制器(Controller)。3、JavaBean技術(shù)重用組件技術(shù)(獨立的可重復(fù)利用的模塊,負責(zé)數(shù)據(jù)庫交互以及數(shù)據(jù)提取,許多動態(tài)頁面處理過程被封狀到了JavaBeans中)本系統(tǒng)中作為MVC中的M部分模型(Model)。4、JDBC技術(shù)是用于執(zhí)行SQL語句的Java應(yīng)用程序接口,由一組用Java語言編寫的類與接口組成, JSP中通過JDBCODBC橋驅(qū)動程序訪問訪問數(shù)據(jù)庫。本系統(tǒng)中主要與三層架構(gòu)中的數(shù)據(jù)層進行交互。2.2.2 Browser/Server系統(tǒng)的三層體系結(jié)構(gòu)在Browser/Server的系統(tǒng)中,用戶可以通過瀏覽器向分布在網(wǎng)絡(luò)上的許多服務(wù)器發(fā)出請求。Browser/Server結(jié)構(gòu)極大的簡化了客戶機的工作,客戶機上只需安裝、配置少量的客戶端軟件即可,服務(wù)器將擔(dān)負更多的工作,對數(shù)據(jù)庫的訪問和應(yīng)用程序的執(zhí)行將在服務(wù)器上完成。在Browser/Server三層體系結(jié)構(gòu)下,表示層(Presentation)、功能層(Business Logic)、數(shù)據(jù)層(Data Service)被分割成三個相對獨立的單元:第一層-表示層:Web瀏覽器在表示層中包含系統(tǒng)的顯示邏輯,位于客戶端。它的任務(wù)是由Web瀏覽器向網(wǎng)絡(luò)上的某一Web服務(wù)器提出服務(wù)請求,Web服務(wù)器對用戶身份進行驗證后用HTTP協(xié)議把所需的主頁傳送給客戶端,客戶機接受傳來的主頁文件,并把它顯示在Web瀏覽器上。第二層-功能層:具有應(yīng)用程序擴展功能的Web服務(wù)器在功能層中包含系統(tǒng)的事務(wù)處理邏輯,位于Web服務(wù)器端。它的任務(wù)是接受用戶的請求,首先需要執(zhí)行相應(yīng)的擴展應(yīng)用程序與數(shù)據(jù)庫進行連接,通過SQL等方式向數(shù)據(jù)庫服務(wù)器提出數(shù)據(jù)處理申請,而后等數(shù)據(jù)庫服務(wù)器將數(shù)據(jù)處理的結(jié)果提交給Web服務(wù)器,再由Web服務(wù)器傳送回客戶端。第三層-數(shù)據(jù)層:數(shù)據(jù)庫服務(wù)器在數(shù)據(jù)層中包含系統(tǒng)的數(shù)據(jù)處理邏輯,位于數(shù)據(jù)庫服務(wù)器端。它的任務(wù)是接受Web服務(wù)器對數(shù)據(jù)庫操縱的請求,通過JDBC/JavaBean訪問數(shù)據(jù)庫,實現(xiàn)對數(shù)據(jù)庫查詢、修改、更新等功能,把運行結(jié)果提交給Web服務(wù)器。通過分析可以看出,三層的Browser/Server體系結(jié)構(gòu)是把二層Client/Server結(jié)構(gòu)的事務(wù)處理邏輯模塊從客戶機的任務(wù)中分離出來,由單獨組成的一層來負擔(dān)其任務(wù),這樣客戶機的壓力大大減輕了,把負荷均衡地分配給了Web服務(wù)器2.3 系統(tǒng)的運行環(huán)境和開發(fā)平臺2.3.1 系統(tǒng)的開發(fā)平臺建議使用Borland公司推出的用于連接數(shù)據(jù)庫以及Web應(yīng)用開發(fā)平臺產(chǎn)品JBuilder作為我系OA實驗室的相關(guān)系統(tǒng)的開發(fā)工具。2.3.2 系統(tǒng)運行環(huán)境1、服務(wù)器端運行環(huán)境服務(wù)機:有網(wǎng)絡(luò)接口卡(NIC)的高性能PC機,512M RAM,硬盤80G以上。 操作系統(tǒng):Windows 2000 SERVERWeb服務(wù)器:APACHE TOMCAT數(shù)據(jù)庫服務(wù)器:MICROSOFT SQL SERVER 20002、客戶端運行環(huán)境客戶機:有網(wǎng)絡(luò)接口卡(NIC)的PC機,128M RAM,操作系統(tǒng):Windows 2000 Professional瀏覽器:Microsoft Internet Explorer 5.0以上。第三章 系統(tǒng)功能結(jié)構(gòu)3.1 OA-B模式就一般來說,OA-B均以公文處理和機關(guān)事務(wù)管理為核心,同時提供信息通訊與服務(wù)等重要功能。因此,典型的OA應(yīng)用包括收發(fā)文審批簽發(fā)管理、公文流轉(zhuǎn)傳遞、政務(wù)信息采集與發(fā)布、內(nèi)部請示報告管理、檔案管理、會議管理、領(lǐng)導(dǎo)活動管理、政策法規(guī)庫、內(nèi)部論壇等等應(yīng)用。核心功能概念的提出如果我們從系統(tǒng)功能角度對上述辦公自動化應(yīng)用做一分析,就會發(fā)現(xiàn)辦公自動化軟件的這樣幾個功能其中的核心功能,即報文傳遞、工作流、復(fù)合型文檔,可以說是最小子集。如圖31。協(xié)同工作安全性控制Internet報文傳遞工作流復(fù)合文檔這些功能需求是我們選擇辦公自動化應(yīng)用 圖31系統(tǒng)的開發(fā)與使用平臺時必須考慮的判斷依據(jù): 3.1.1 基本需求:報文傳遞功能報文傳遞系統(tǒng)作為信息傳遞與共享的工具和手段,滿足OA-B最基本的通信需求。換言之,MTS(Message Transportation System)作為通信基礎(chǔ)設(shè)施,主要提供了兩方面的功能:從信息技術(shù)的角度出發(fā),報文傳遞功能是一種“推”技術(shù),即發(fā)送方(Sender)將信息通過存儲轉(zhuǎn)發(fā)技術(shù)推給接收方(Receiver)。從用戶使用習(xí)慣出發(fā),報文傳遞功能是辦公自動化系統(tǒng)的“門戶”。因為在OA上工作的人員很容易養(yǎng)成一種工作習(xí)慣,每日查看自己的收件箱,閱讀處理有關(guān)信件;而且功能高級完整的報文傳遞系統(tǒng)一般都具備新信件到達提示功能。因此,OA-B可以利用報文傳遞系統(tǒng)的特點將每一項需要工作人員處理的信息或通知,制成信件,直接投遞到工作人員的收件箱中。在一個OA-B中,針對不同的業(yè)務(wù)需求,通常包含了多個應(yīng)用子系統(tǒng),如發(fā)文、收文、信息服務(wù)、檔案管理、活動安排、會議管理等等,可以將收件箱作為所有這些辦公應(yīng)用子系統(tǒng)的統(tǒng)一“門戶”,每一個用戶通過關(guān)注自己的收件箱就可以了解到需要處理的工作,而不必經(jīng)常性地來回檢查不同的應(yīng)用系統(tǒng),看看哪些是需要處理的工作(在這種情況下,如果由于某種人為原因,沒有及時查閱某個應(yīng)用系統(tǒng),就可能造成工作的延誤)。辦公自動化應(yīng)用系統(tǒng)以報文傳遞作為統(tǒng)一入口的設(shè)計思想,可以大大減少培訓(xùn)的工作量。3.1.2 應(yīng)用模式:工作流所謂的工作流就是一組人員為完成某一項業(yè)務(wù)所進行的所有工作與工作間的交互過程。幾乎所有的業(yè)務(wù)過程都是工作流,特別是辦公自動化應(yīng)用系統(tǒng)的核心應(yīng)用公文審批流轉(zhuǎn)處理、會議管理等。每一項工作以流程的形式,由發(fā)起者(如文件起草人)發(fā)起流程,經(jīng)過本部門以及其他部門的處理(如簽署、會簽),最終到達流程的終點(如發(fā)出文件、歸檔入庫)。工作流程可以是互相連接、交叉或循環(huán)進行的,如一個工作流的終點可能就是另一個工作流的起點,如上級部門的發(fā)文處理過程結(jié)束后引發(fā)了下級部門的收文處理過程。工作流程也可是打破單位界限的,發(fā)生于機關(guān)以及與機關(guān)的相關(guān)單位之間。如及時地收回和賦予不同人員的操作權(quán)限(如起草人起草文件完畢即不可修改文件內(nèi)容,而其上級領(lǐng)導(dǎo)獲得文件的簽署權(quán)或?qū)?nèi)容的修改權(quán))、主動提示和催促工作人員實現(xiàn)某一階段的處理,從而整體提高工作流處理的效率。工作流自動化有2種實現(xiàn)模式,即:基于郵件和基于共享數(shù)據(jù)庫?;卩]件的工作流應(yīng)用,就是通過郵件將數(shù)據(jù)表單從一個人郵箱傳送到另一個人郵箱。其特點是模式簡單。但是,最大的弊病是無法實行監(jiān)控,沒有一個管理者可以隨時掌握工作流的動態(tài)。其它問題包括:難以實現(xiàn)自動化處理如通過代理催辦、集中歸檔、統(tǒng)計;數(shù)據(jù)容易出現(xiàn)多份拷貝,難以控制安全性和準確性;大量的郵件傳輸引發(fā)大量的網(wǎng)絡(luò)流量?;诠蚕頂?shù)據(jù)庫的工作流應(yīng)用,可以克服上述基于郵件的工作流缺點。如信息單一存儲,自動處理,安全性更好,容易實現(xiàn)監(jiān)控。但是,工作流的驅(qū)動成了一個問題,因為缺乏信息通訊機制,無法主動通知有關(guān)人員進行下一步的工作。本系統(tǒng)工作流采用基于共享數(shù)據(jù)庫模式開發(fā)。3.1.3 數(shù)據(jù)整合:復(fù)合型文檔復(fù)合文檔型數(shù)據(jù)不同于傳統(tǒng)數(shù)據(jù)類型。辦公自動化所處理信息的載體大多是以文件、報表、信函、傳真等形式出現(xiàn),因此辦公自動化系統(tǒng)是典型的文檔處理系統(tǒng)。對“復(fù)合文檔數(shù)據(jù)”或“對象數(shù)據(jù)”的表示和存儲管理是數(shù)據(jù)庫技術(shù)領(lǐng)域的新領(lǐng)域。一般認為,關(guān)系數(shù)據(jù)庫系統(tǒng)(如Oracle、DB/2、SQL Server、Foxpro等)適合傳統(tǒng)數(shù)據(jù)類型(結(jié)構(gòu)化信息)的表示和存儲,但是對復(fù)合文檔數(shù)據(jù)的處理就有“削足適履”之感,并非能夠完全表達信息和存儲效率最高。因此,“文檔數(shù)據(jù)庫”或“對象存儲”的概念就被引入數(shù)據(jù)庫領(lǐng)域,其目標(biāo)就是針對新出現(xiàn)的需求,高效率地表達和存儲管理“復(fù)合文檔數(shù)據(jù)”。一言以蔽之,辦公自動化系統(tǒng)由于其對復(fù)合文檔數(shù)據(jù)的處理要求,必須以文檔數(shù)據(jù)庫為核心建立,同時選擇性地結(jié)合關(guān)系數(shù)據(jù)庫。從信息技術(shù)的角度出發(fā),數(shù)據(jù)庫技術(shù)代表了“拉”技術(shù),即信息共享技術(shù)。信息被集中存儲管理,當(dāng)用戶需要信息時,主動地將數(shù)據(jù)庫中的信息“拉”到自己的工作站上進行處理。另外,作為擴展功能的協(xié)同工作、必須具備的安全性控制以及可附加的Internet集成功能也在辦公自動化系統(tǒng)中扮演著重要的角色。3.2 本系統(tǒng)功能模塊其基本思想是把整個系統(tǒng)按照實現(xiàn)功能進行分解利用JSP+JavaBean+Servlet進行編程。已實現(xiàn)的系統(tǒng)的功能結(jié)構(gòu)模塊如圖3-2所示。OA系統(tǒng)個人辦公 公共辦公工作流管理系統(tǒng)管理行政辦公部門管理用戶管理圖3-2 OA-B系統(tǒng)結(jié)構(gòu)圖而其下又可以分為子系統(tǒng)結(jié)構(gòu)圖。用戶管理子系統(tǒng)用戶注冊模塊用戶信息管理模塊用戶信息修改模塊管理員登錄模塊公告欄模塊用戶密碼修改模塊用戶登錄模塊用戶查詢模塊留言板模塊圖3-3 用戶管理子系統(tǒng)功能模塊圖第四章 核心子系統(tǒng)模塊設(shè)計前面我們已經(jīng)提出了作為一個OA系統(tǒng)的核心功能應(yīng)是報文傳遞、工作流和復(fù)合型文檔,再加上對用戶人員的權(quán)限管理,我們即可以稱之為一個精簡功能的OA-B系統(tǒng),已能應(yīng)付一般的機關(guān)處室的日常工作。我們知道,在OA-B中對應(yīng)報文傳遞功能的實現(xiàn)發(fā)/收文管理,而在從發(fā)文到收文的過程中又可以看成是一個工作流。因此,毫無疑問,在OA-B系統(tǒng)中是它是真正的核心。用戶做為支撐該軟件中的“人”的因素,不可或缺的是一個用戶權(quán)限管理功能。而在其中有包含了與動態(tài)管理相對應(yīng)的數(shù)據(jù)庫連接技術(shù)。本章我們以發(fā)/收文管理和用戶管理的實現(xiàn)為例,介紹OA-B設(shè)計原理。4.1 發(fā)/收文管理因為對每一種對象的管理都比較類似,在此僅以行政辦公中的發(fā)文、收文管理公文為例,來分析一下本系統(tǒng)中的數(shù)據(jù)流向。根據(jù)圖1-1的OA-B開發(fā)模式數(shù)據(jù)傳遞圖我們可以大致了解到發(fā)文過程的原理,即有圖4-1。4.1.1 M-V-C模式分析發(fā)文管理SenderServletHTTPRequestForward讀取ModelViewJavaBeanweb.xmlJDBC數(shù)據(jù)庫發(fā)文擬稿頁面QuerryController圖4-1 發(fā)文模式數(shù)據(jù)傳遞實例圖第一步:ControllerModelSQL Server用戶作為擬稿完成后,通過Http發(fā)出發(fā)文請求(Send Request),作為的控制器的Servlet通過調(diào)用Web配置文件web.xml向JavaBean發(fā)出控制信號,并對其賦值。而JavaBean中的一個值對象(Value Object,即VO)將通過JDBC連接SQL Server數(shù)據(jù)庫,從中調(diào)出所需信息返回給VO,實現(xiàn)了在模型層與數(shù)據(jù)庫的交互。第二步:ControllerViewerModelServlet又向JSP發(fā)出從JavaBean中讀取數(shù)據(jù)庫信息的信號,在視圖層的JSP頁面在從JavaBean調(diào)出信息,生成發(fā)文擬稿頁面,完成一次發(fā)文。4.1.2 發(fā)文工作流數(shù)據(jù)庫實現(xiàn)在本系統(tǒng)中,發(fā)文模塊流程為參考流程為:開始 申請人(擬稿)提交同部門工作人員(核稿) 部門領(lǐng)導(dǎo)(審稿或會簽) 辦公室文員(校稿)辦公室主任(定稿) 單位領(lǐng)導(dǎo)(簽發(fā))擬稿人(處室復(fù)核) 公文管理員(歸檔) 結(jié)束以擬稿到和核稿為例,流程圖為圖4-2所示。開始擬稿提交核稿是否合格合格YN結(jié)束核稿提交圖4-2 發(fā)文管理從審稿到核稿流程圖由于整個發(fā)文流程很復(fù)雜,故我們采用樹型結(jié)構(gòu)來實現(xiàn)它,表4-1為其在SQL中的發(fā)文流程的結(jié)點表。表4-2為發(fā)文工作流信息表。表4-2中已定義了各字段的屬性,而其中的Direction是控制方向,R值代表指向后一步操作,L值代表指向前一操作,這樣就保證了流程的通暢。表4-1發(fā)文工作流表Node_No_SNode_No_EDirectionFlow_nameFlow_DescOrder_byWorkflow_No00000010000002R擬稿提交從擬稿到核稿000000100000020000003R核稿提交從核稿到審稿100000100000020000001L核稿退回從核稿退回到擬稿200000100000030000004R審稿提交從審稿到校稿300000100000030000001L審稿退回從審稿退回到擬稿400000100000040000005R校稿提交從校稿到定稿500000100000040000001L校稿退回從校稿退回到擬稿600000100000050000006R定稿提交從校稿到簽發(fā)700000100000050000004L定稿退回從定稿退回到校稿800000100000060000007R簽發(fā)提交從定稿到簽發(fā)900000100000060000001L簽發(fā)退回從簽發(fā)退回到擬稿1000000100000070000008R打印發(fā)送歸檔提交從簽發(fā)到打印發(fā)送歸檔110000010000008R完成發(fā)文歸檔發(fā)文歸檔12000001表4-2 發(fā)文工作流信息表表 名字段名類型大小可空約束備注WorkFlow_MessageNode_Nointeger7N主鍵指向編號Node_No_Sinteger7N頭結(jié)點編號Node_No_Einteger7Y尾結(jié)點編號Directionvarchar1N結(jié)點方向Flow_Namevarchar100N結(jié)點名Flow_Descvarchar100N流向名Order_byinteger7N順序號Workflow_Nointeger7N工作流編號4.1.3 收文查詢中值對象控制在4.1.1文中我們已提出值對象(VO)的概念,這里有必要在聲明以下什么是值對象,即用于把數(shù)據(jù)從某個對象/層傳遞到其他對象/層的Java對象。它提供了一個或一組值的實體信息。收文流程為流程:開始 辦公室人員(登記)提交辦公室主任(擬辦) 單位領(lǐng)導(dǎo)(批示) 主辦處室負責(zé)人(主辦)協(xié)辦處室負責(zé)人(分辦) 辦公室文員(打印排版,發(fā)送)公文管理員(歸檔) 結(jié)束。不難發(fā)現(xiàn),收文流程和發(fā)文是很類似的,另外,在收文管理中還提供了四個功能,即登記、處理、閱讀和查詢。而它們就是通過值對象的傳遞控制的。下面我們將以收文查詢?yōu)槔?,分析值對象在其中的作用:?dāng)點擊收文查詢,進入“公文收文【查詢】”頁面,就可以按來文標(biāo)題、來文文號、來文單位、緊急程度、公文密級、收文編號、收文日期、備注等信息進行組合查詢。系統(tǒng)根據(jù)你的查詢條件返回查詢頁面,然后你就可以瀏覽查詢結(jié)果中你所需的公文。以下是收文查詢的算法:package .ssct.oa.doc.persistence; / 加載persistence包import .ssct.oa.doc.valueobject.DocRecVO; / 調(diào)用VO值對象import .ssct.DBConnBean;import java.sql.Connection; /*根據(jù)主鍵查詢收文值對象 *param id 公文編號 * return docRecVO對象,如果不存在返回一個空對象,但不允許返回 null */ public DocRecVO queryByID(String id) DocRecVO docRecVO = null; PreparedStatement stat = null; ResultSet rs = null; String strSql = select * from Doc_Tb_Rec where RecDocNo=? ; / 嵌入sql語句查詢 .ssct.DBConnBean ObjDBConnBean = .ssct.DBConnBean.getInstance(); Connection conn =ObjDBConnBean.getConnection(goa); try stat = conn.prepareStatement(strSql); stat.setString(1,id); rs = stat.executeQuery(); while (rs.next() docRecVO = new DocRecVO(); docRecVO.setRecDocNo(rs.getString(RecDocNo); docRecVO.setCome_Title(rs.getString(Come_Title); docRecVO.setCome_Doc_No(rs.getString(Come_Doc_No); docRecVO.setCome_Doc_Dept(rs.getString(Come_Doc_Dept); docRecVO.setDC_Doc_Exigence(rs.getString(DC_Doc_Exigence); docRecVO.setDC_Doc_Security(rs.getString(DC_Doc_Security); docRecVO.setIn_Doc_No(rs.getString(In_Doc_No); docRecVO.setIn_Doc_Date(rs.getString(In_Doc_Date); docRecVO.setIn_Doc_Dept(rs.getString(In_Doc_Dept); docRecVO.setCome_Content(rs.getString(Come_Content); docRecVO.setMemo(rs.getString(Memo); docRecVO.setFile_ID(rs.getString(File_ID); docRecVO.setEnter_User_No(rs.getString(Enter_User_No); docRecVO.setEdit_DateTime(rs.getString(Edit_DateTime); docRecVO.setEnter_DateTime(rs.getString(Enter_DateTime); docRecVO.setRecordID(rs.getString(RecordID); docRecVO.setTemplate(rs.getString(Template); docRecVO.setFileType(rs.getString(FileType); docRecVO.setHTMLPath(rs.getString(HTMLPath); docRecVO.setStatus(rs.getString(Status);docRecVO.setMain_Do_User_Nos(rs.getString(Main_Do_User_Nos);docRecVO.setOther_Do_User_Nos(rs.getString(Other_Do_User_Nos);docRecVO.setRead_Do_User_Nos(rs.getString(Read_Do_User_Nos); docRecVO.setSend_RecordID(rs.getString(Send_RecordID); /*按來文標(biāo)題、來文文號、來文單位、緊急程度、公文密級、收文編號、收文日期、備注等信息進行組合查詢*/ catch (SQLException e) SysDebug.prt(this,queryByID(String),strSql,e); finally ObjDBConnBean.freeConnection(goa,conn); return docRecVO;/* * 根據(jù)動態(tài)SQL語句查詢 * param conditionSql 動態(tài)SQL語句 * return Collection,如果不存在返回一個空集合,但不允許返回 null */ public Collection queryByDynamicSql(String conditionSql) ArrayList docRecVOList = new ArrayList(); DocRecVO docRecVO = null; Statement stat = null; ResultSet rs = null; String strSql = ; if(conditionSql.equalsIgnoreCase()/沒選定任何條件 strSql = select * from Doc_Tb_Rec ; else strSql = select * from Doc_Tb_Rec Where + conditionSql; .ssct.DBConnBean ObjDBConnBean = .ssct.DBConnBean.getInstance(); Connection conn =ObjDBConnBean.getConnection(goa); try stat = conn.createStatement(); rs = stat.executeQuery(strSql); while (rs.next() docRecVO = new DocRecVO(); docRecVO.setRecDocNo(rs.getString(RecDocNo); docRecVO.setCome_Title(rs.getString(Come_Title); docRecVO.setCome_Doc_No(rs.getString(Come_Doc_No); docRecVO.setCome_Doc_Dept(rs.getString(Come_Doc_Dept); docRecVO.setDC_Doc_Exigence(rs.getString(DC_Doc_Exigence); docRecVO.setDC_Doc_Security(rs.getString(DC_Doc_Security); docRecVO.setIn_Doc_No(rs.getString(In_Doc_No); docRecVO.setIn_Doc_Date(rs.getString(In_Doc_Date); docRecVO.setIn_Doc_Dept(rs.getString(In_Doc_Dept); docRecVO.setCome_Content(rs.getString(Come_Content); docRecVO.setMemo(rs.getString(Memo); docRecVO.setFile_ID(rs.getString(File_ID); docRecVO.setEnter_User_No(rs.getString(Enter_User_No); docRecVO.setEdit_DateTime(rs.getString(Edit_DateTime); docRecVO.setEnter_DateTime(rs.getString(Enter_DateTime); docRecVO.setRecordID(rs.getString(RecordID); docRecVO.setTemplate(rs.getString(Template); docRecVO.setFileType(rs.getString(FileType); docRecVO.setHTMLPath(rs.getString(HTMLPath); docRecVO.setStatus(rs.getString(Status);docRecVO.setMain_Do_User_Nos(rs.getString(Main_Do_User_Nos);docRecVO.setOther_Do_User_Nos(rs.getString(Other_Do_User_Nos);docRecVO.setRead_Do_User_Nos(rs.getString(Read_Do_User_Nos); docRecVO.setSend_RecordID(rs.getString(Send_RecordID); docRecVOList.add(docRecVO); catch (SQLException e) SysDebug.prt(this,queryByDynamicSql(String),strSql,e); finally ObjDBConnBean.freeConnection(goa,conn); return docRecVOList; 首先,在一開始要調(diào)用一個persistence包以使VO(值對象)與數(shù)據(jù)庫之間的數(shù)據(jù)交互,然后建立JDBC連接,以便JavaBean將VO的值傳給SQL。在根據(jù)條件如來文標(biāo)題、來文文號、來文單位、緊急程度、公文密級、收文編號、收文日期、備注等信息進行組合查詢,這一步將調(diào)用SQL的查詢語句完成,而在最后生成一個view.jsp的頁面文件。我們利用UML語言建立上述收文查詢的順序圖,它是用來描述對象之間的動態(tài)合作關(guān)系以及合作過程中的行為次序。它包含一系列對象:ClientViewServletSearch (Rec VO)View.jsp SQL數(shù)據(jù)庫。虛線表示該對象的生命線。箭頭表示消息串。可細分為簡單消息如1,2,3,4,5,7,8和異步消息如6,9。ClientViewServletSearch (Rec VO)View.jspSQL數(shù)據(jù)庫3:返回查詢結(jié)果集2:執(zhí)行查詢操作1:查詢公文4:創(chuàng)建用于保存結(jié)果的Collection對象5:從數(shù)據(jù)庫查詢結(jié)果集中讀取數(shù)據(jù),設(shè)置Collection6:把Collection保存到request中7:forward8:讀取結(jié)果9:顯示圖5-11 收文查詢操作的順序圖4.2 用戶權(quán)限管理在WebOA系統(tǒng)中,主要是管理用戶的一系列活動,包括公告、通知等來輸入的數(shù)據(jù)信息。數(shù)據(jù)類型決定了處理的方式也就是算法,因此,數(shù)據(jù)是系統(tǒng)實現(xiàn)的起點。在此,我們將使用數(shù)據(jù)流圖(DFD)來分析數(shù)據(jù)的流動和走向。因為對每一種對象的管理都比較類似,在此僅以行政辦公中的公文管理的權(quán)限,來分析一下本系統(tǒng)中的數(shù)據(jù)流向.主要數(shù)據(jù)關(guān)系是管理員對該子系統(tǒng)涉及的相關(guān)數(shù)據(jù)進行管理,而用戶在前臺可以瀏覽查詢相關(guān)信息,總體圖如圖3-1所示。零級圖如圖3-2所示。0用戶管理子系統(tǒng)用戶查詢條件查詢結(jié)果和瀏覽信息下載信息注冊登錄信息管理員更新數(shù)據(jù)提供數(shù)據(jù)圖4-3 用戶管理子系統(tǒng)總體圖管理員用戶
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度藥店藥品零售連鎖品牌授權(quán)及供應(yīng)鏈合同
- 二零二五年度涉及知識產(chǎn)權(quán)的方協(xié)議解約及糾紛解決合同
- 不動產(chǎn)買賣合同書及補充協(xié)議條款
- 英文短句記憶技巧教案
- 海底兩萬里觀后感體會
- 農(nóng)業(yè)經(jīng)濟政策解讀方案
- 傳媒廣告行業(yè)廣告效果數(shù)據(jù)分析與優(yōu)化方案
- 互聯(lián)網(wǎng)+健康產(chǎn)業(yè)服務(wù)協(xié)議
- 倉庫庫房租賃合同書
- 童話森林的故事解讀
- 2025年呼和浩特職業(yè)學(xué)院單招職業(yè)傾向性測試題庫及參考答案
- 醫(yī)學(xué)遺傳學(xué)教案-山東大學(xué)醫(yī)學(xué)遺傳學(xué)
- 合唱之美知到智慧樹章節(jié)測試課后答案2024年秋山東航空學(xué)院
- 海南省澄邁縣2024-2025學(xué)年七年級上學(xué)期期末考試地理試題(含答案)
- 食品安全演練預(yù)案及流程
- 2025年蘇州衛(wèi)生職業(yè)技術(shù)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 心房顫動診斷和治療中國指南解讀課件
- 榆神礦區(qū)郭家灘煤礦(700 萬噸-年)項目環(huán)評
- 小學(xué)校本課程-三省吾身教學(xué)課件設(shè)計
- 液化石油氣站安全檢查表
評論
0/150
提交評論