999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于OSWorkflow的設(shè)備管理系統(tǒng)

2011-06-19 04:15:28王舒揚(yáng)柳虹亮
關(guān)鍵詞:數(shù)據(jù)庫(kù)用戶設(shè)備

王舒揚(yáng),柳虹亮

(長(zhǎng)春工業(yè)大學(xué) 軟件職業(yè)技術(shù)學(xué)院,吉林 長(zhǎng)春 130022)

0 引 言

工作流管理技術(shù)是一種快速發(fā)展的技術(shù),正在被越來(lái)越多的企業(yè)所應(yīng)用。企業(yè)的日常活動(dòng)中,約有70%是屬于流程類(lèi)活動(dòng),如訂單出貨流程、生產(chǎn)流程、企業(yè)內(nèi)各類(lèi)申請(qǐng)表單、公文簽審、信息傳遞與簽收、公司各類(lèi)支出與收付等[1]。設(shè)備管理(包括設(shè)備采購(gòu)的審批、設(shè)備維修等)也屬于流程類(lèi)活動(dòng)[2]。但與普通流程類(lèi)活動(dòng)相比,設(shè)備管理具有用戶層面廣泛、一次性購(gòu)買(mǎi)量大、審批周期長(zhǎng)、生命周期內(nèi)維護(hù)頻繁等特點(diǎn)[3]。對(duì)大型企業(yè)來(lái)說(shuō),類(lèi)似電腦等設(shè)備的審批周期(包括招標(biāo)、采購(gòu)到最終投入使用)可長(zhǎng)達(dá)2~3個(gè)月左右,生命周期更是長(zhǎng)達(dá)4~6a,期間持續(xù)增加的數(shù)據(jù)量會(huì)對(duì)工作流系統(tǒng)造成很大的壓力[4]。

OSWorkflow是完全用Java語(yǔ)言編寫(xiě)的開(kāi)放源代碼的工作流引擎,具有顯著的靈活性及完全面向有技術(shù)背景用戶的特點(diǎn)[5]。用戶可以根據(jù)自身的需求,利用這款開(kāi)源軟件設(shè)計(jì)簡(jiǎn)單或是復(fù)雜的工作流。通過(guò)使用,用戶就可以把工作中心放在業(yè)務(wù)和規(guī)則的定義上,而不需通過(guò)硬編碼的方式實(shí)現(xiàn)一個(gè)Petri網(wǎng)或是一個(gè)有窮自動(dòng)機(jī)[6]。用戶可以最小代價(jià)把OSWorkflow整合到自己的程序中來(lái)。

文中設(shè)計(jì)實(shí)現(xiàn)了一個(gè)基于OSWorkflow的設(shè)備管理系統(tǒng),并解決了采用Oracle數(shù)據(jù)庫(kù)時(shí)大量數(shù)據(jù)查詢等關(guān)鍵問(wèn)題。

1 OSWorkflow工作流引擎

OSWorkflow是三大主流開(kāi)源工作流引擎之一,它基于FSM(有限狀態(tài)自動(dòng)機(jī),F(xiàn)initeState Machine)理論[7]。每一個(gè)state都是由step 和status聯(lián)合體現(xiàn)出來(lái)的,一個(gè)state到另一個(gè)state的狀態(tài)躍遷transition依賴(lài)于action的執(zhí)行,在action執(zhí)行前需要判斷動(dòng)作的執(zhí)行條件是否滿足,在動(dòng)作執(zhí)行改變狀態(tài)前后都可以調(diào)用function來(lái)執(zhí)行一些其它操作,動(dòng)作執(zhí)行完成后通過(guò)判定條件來(lái)確定執(zhí)行結(jié)果result[8]。每一個(gè)流程都至少有一個(gè)或者多個(gè)活動(dòng)的state,流程中至少有一個(gè)起始狀態(tài),一個(gè)或者多個(gè)終止?fàn)顟B(tài)。OSWorkflow的基本元素及其相互關(guān)系如圖1所示。

圖1 OSWorkflow基本元素關(guān)系圖

2 設(shè)備管理系統(tǒng)總體設(shè)計(jì)

基于OSWorkflow的設(shè)備管理系統(tǒng)采用J2EE技術(shù)、Spring框架和Oracle數(shù)據(jù)庫(kù)設(shè)計(jì)并實(shí)現(xiàn),主要分為如下幾個(gè)模塊。

2.1 用戶管理模塊

對(duì)系統(tǒng)內(nèi)的用戶基本信息進(jìn)行增、刪、改、查操作,或?qū)τ脩舻牟僮鳈?quán)限及所屬部門(mén)進(jìn)行變更。

2.2 角色管理模塊

對(duì)用戶的角色信息進(jìn)行增、刪、改、查操作。

2.3 組織管理模塊

對(duì)用戶所屬的組織信息進(jìn)行增、刪、改、查操作。

2.4 設(shè)備采購(gòu)模塊

對(duì)設(shè)備申請(qǐng)流程生成的設(shè)備采購(gòu)明細(xì)進(jìn)行采購(gòu)。

2.5 設(shè)備分配模塊

針對(duì)已經(jīng)建賬的計(jì)算機(jī)設(shè)備,由財(cái)務(wù)人員進(jìn)行固定資產(chǎn)卡片的財(cái)務(wù)信息填報(bào)。

2.6 設(shè)備申請(qǐng)模塊

設(shè)備管理系統(tǒng)的核心。一個(gè)完整的設(shè)備申請(qǐng)流程如下:

1)由“部門(mén)提報(bào)用戶”填報(bào)需要的計(jì)算機(jī)設(shè)備申請(qǐng)單,申請(qǐng)單上的內(nèi)容為提報(bào)部門(mén)、提報(bào)人、提報(bào)計(jì)算機(jī)設(shè)備的類(lèi)型、提報(bào)理由。個(gè)人申請(qǐng)結(jié)束承接2)。

2)由“部門(mén)管理用戶”進(jìn)行審批,結(jié)果為同意/不同意,同時(shí)輸入詳細(xì)的審批意見(jiàn)。如果不同意則申請(qǐng)流程結(jié)束;如果同意則進(jìn)入3)。

3)由“設(shè)備管理用戶”進(jìn)行初審,結(jié)果為同意/不同意,同時(shí)輸入詳細(xì)的審批意見(jiàn)。如果不同意則有兩種情況:申請(qǐng)流程結(jié)束,或準(zhǔn)備進(jìn)行設(shè)備在庫(kù)分配,進(jìn)入設(shè)備分配流程;如果同意則進(jìn)入4)。

4)由“設(shè)備管理領(lǐng)導(dǎo)用戶”進(jìn)行復(fù)審,結(jié)果為同意/不同意,同時(shí)輸入詳細(xì)的審批意見(jiàn)。如果不同意則申請(qǐng)流程結(jié)束;如果同意則進(jìn)入5)。

5)由計(jì)算機(jī)設(shè)備申請(qǐng)人所在部門(mén)的“分管領(lǐng)導(dǎo)用戶”進(jìn)行審批,結(jié)果為同意/不同意,同時(shí)輸入詳細(xì)的審批意見(jiàn)。如果不同意則申請(qǐng)流程結(jié)束;如果同意則進(jìn)入6)。

6)由“項(xiàng)目管理用戶”進(jìn)行計(jì)算機(jī)設(shè)備詳細(xì)配置清單的填報(bào),然后由“項(xiàng)目管理領(lǐng)導(dǎo)用戶”對(duì)配置清單進(jìn)行審核,如果不同意則返回“項(xiàng)目管理用戶”進(jìn)行重新配置;如果同意則申請(qǐng)流程結(jié)束。

7)“設(shè)備管理用戶”可以根據(jù)申請(qǐng)?jiān)O(shè)備清單進(jìn)行選擇是否招標(biāo)采購(gòu),如果“設(shè)備管理領(lǐng)導(dǎo)用戶”同意招標(biāo)采購(gòu),則生成招標(biāo)申請(qǐng)書(shū)。

8)保存完整的計(jì)算機(jī)設(shè)備申請(qǐng)的記錄。

此模塊采用了OSWorkflow技術(shù),具體流程如圖2所示。

圖2 申請(qǐng)模塊流程

3 設(shè)備管理系統(tǒng)關(guān)鍵問(wèn)題解決及實(shí)現(xiàn)

設(shè)備管理系統(tǒng)主要有以下關(guān)鍵問(wèn)題需要解決:一是過(guò)長(zhǎng)的申請(qǐng)審批流程造成的大量數(shù)據(jù)查詢失敗;二是OSWorkflow僅負(fù)責(zé)流程的運(yùn)轉(zhuǎn),對(duì)流程流轉(zhuǎn)中產(chǎn)生的數(shù)據(jù),例如審批意見(jiàn)的保存需要做額外的操作。

3.1 大量數(shù)據(jù)的查詢

為了確保工作流程的正確性,OSWorkflow并沒(méi)有采用直接連接數(shù)據(jù)庫(kù)使用sql語(yǔ)句進(jìn)行流程數(shù)據(jù)處理的方式,而是使用 WorkflowExpressionQuery對(duì)象對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作。一個(gè)工作流查詢語(yǔ)句的處理流程如下:

1)使用FieldExpression對(duì)象對(duì)可操作項(xiàng)進(jìn)行映射。FieldExpression繼承了Expression類(lèi),將工作流表中的字段以及基本操作映射為int型常量,例如public final static int ACTION=4。

2)使用NestedExpression對(duì)象創(chuàng)建復(fù)合表達(dá)式。NestedExpression同樣繼承了Expression類(lèi),其構(gòu)造函數(shù)需要兩個(gè)參數(shù)。一是Expression數(shù)組對(duì)象,對(duì)象中的每個(gè)元素可以是另外一個(gè)NestedExpression對(duì)象,以此形成復(fù)合關(guān)系,也可是由FieldExpression具體實(shí)現(xiàn)的單獨(dú)的表達(dá)式。二是表示各個(gè)Expression表達(dá)式之間“和”與“或”關(guān)系的操作符expressionOperator。

3)使用 WorkflowExpressionQuery創(chuàng)建工作流查詢對(duì)象。WorkflowExpressionQuery以NestedExpression對(duì)象作為參數(shù)構(gòu)建,還定義了表示排序的常量,例如public static final int SORT_DESC=-1。

4)調(diào)用AbstractWorkflow類(lèi)中的getPersistence方法獲取 WorkflowStore實(shí)例。將 WorkflowExpressionQuery對(duì)象作為參數(shù)傳遞,在WorkflowStore接口的具體實(shí)現(xiàn)類(lèi)JDBCWorkflowStore的query方法中對(duì)其進(jìn)行解析并完成sql語(yǔ)句的創(chuàng)建。

5)將創(chuàng)建好的sql語(yǔ)句作為參數(shù)傳入doExpressionQuery方法中執(zhí)行,從結(jié)果中取出id列放入List對(duì)象中,將List對(duì)象返回,以返回的id為條件即可與業(yè)務(wù)表中的設(shè)備數(shù)據(jù)進(jìn)行關(guān)聯(lián)查詢。

因?yàn)閺脑O(shè)備申報(bào)到審批完成進(jìn)入購(gòu)買(mǎi)環(huán)節(jié)的時(shí)間很長(zhǎng),且購(gòu)買(mǎi)數(shù)量為公司規(guī)模,數(shù)據(jù)庫(kù)內(nèi)可能存在大量未完成的工作流流程數(shù)據(jù)。在最終返回的List結(jié)果中可能包含超過(guò)1 000條流程id數(shù)據(jù),而Oracle不支持IN子句中List的個(gè)數(shù)超過(guò)1000,從而導(dǎo)致查詢失敗。為解決這個(gè)問(wèn)題,在OSWorkflow中新增一個(gè)數(shù)據(jù)庫(kù)表OS_QUERYENTRY,建立JDBCWorkflowStore類(lèi)的子類(lèi)并重寫(xiě)其中的doExpressionQuery方法,將原來(lái)放入List中的id寫(xiě)入到新增的表OS_QUERYENTRY中。具體步驟如下:

1)組合語(yǔ)句,將結(jié)果插入到OS_QUERYENTRY表中。

2)查詢序號(hào)。

3)刪除冗余查詢數(shù)據(jù)。

新增表后的OSWorkflow數(shù)據(jù)庫(kù)結(jié)構(gòu)如圖3所示。

圖3 OSWorkflow數(shù)據(jù)庫(kù)結(jié)構(gòu)

實(shí)際應(yīng)用中一個(gè)典型查詢過(guò)程如下:1)準(zhǔn)備查詢條件集合對(duì)象。

2)根據(jù)頁(yè)面選擇條件匹配查詢條件。

3)裝配查詢條件。

最終查詢效果如圖4所示。

3.2 審批過(guò)程中審批意見(jiàn)的保存

在OSWorkflow中,函數(shù)function是用來(lái)定義(引用)并執(zhí)行外部的商業(yè)邏輯和服務(wù),實(shí)現(xiàn)OSWorkflow與外部具體的應(yīng)用之間交互[9]。系統(tǒng)需要保存設(shè)備審批過(guò)程中的審批意見(jiàn),只要擴(kuò)展function接口就可以。function有兩種類(lèi)型:pre function(預(yù)處理函數(shù))和post function(后處理函數(shù))。pre function在工作流的一個(gè)轉(zhuǎn)變操作執(zhí)行之前調(diào)用,post function在工作流的一個(gè)轉(zhuǎn)變操作執(zhí)行完之后調(diào)用[10]。審批意見(jiàn)的保存應(yīng)在流程流轉(zhuǎn)后,因此,采用post function方式處理。同時(shí),因?yàn)榱鞒踢\(yùn)轉(zhuǎn)周期長(zhǎng)度不定,審批意見(jiàn)應(yīng)該依附于當(dāng)前環(huán)節(jié)的審批動(dòng)作(action),而不應(yīng)該依附于整個(gè)當(dāng)前審批環(huán)節(jié)(step),function在action級(jí)別的應(yīng)用如圖5所示。

圖4 系統(tǒng)查詢效果

圖5 function在action級(jí)別的應(yīng)用

具體實(shí)現(xiàn)代碼如下:

4 結(jié) 語(yǔ)

針對(duì)設(shè)備管理流程用戶層面廣泛、一次性購(gòu)買(mǎi)量大、審批周期長(zhǎng)、生命周期內(nèi)維護(hù)頻繁等特點(diǎn),采用OSWorkflow作為工作流引擎,在此基礎(chǔ)上設(shè)計(jì)了某電力公司設(shè)備管理系統(tǒng),并解決了Oracle數(shù)據(jù)庫(kù)平臺(tái)下大量數(shù)據(jù)查詢等問(wèn)題。實(shí)際應(yīng)用結(jié)果表明,文中設(shè)計(jì)的設(shè)備管理系統(tǒng)滿足企業(yè)要求,簡(jiǎn)化了設(shè)備申報(bào)流程,大大提高了企業(yè)的工作效率。

[1]范玉順.工作流管理技術(shù)基礎(chǔ)[M].北京:清華大學(xué)出版社,2001.

[2]史美林,楊光信,向勇,等.WFMS:工作流管理系統(tǒng)[J].計(jì)算機(jī)學(xué)報(bào),1999(3):326-328.

[3]李紅巖.基于工作流技術(shù)的OA系統(tǒng)研究[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2008,29(3):352-355.

[4]黃世秀,高飛,胡小華.基于工作流的電子政務(wù)系統(tǒng)[J].合肥工業(yè)大學(xué)學(xué)報(bào),2004,27(2):140-143.

[5]夏冬,白樹(shù)仁,鄧惠建.基于J2EE的工作流管理系統(tǒng)模型[J].計(jì)算機(jī)工程與科學(xué),2006,28(3):123-125.

[6]侯秀萍,邵春明,鄭虹.基于工作流網(wǎng)的過(guò)程模型的合理性分析[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2006,27(2):162-164.

[7]陳傳波,劉黎志.一個(gè)基于 Web的工作流引擎及其實(shí)現(xiàn)[J].計(jì)算機(jī)工程與科學(xué),2004,26(11):18-22.

[8]李宏初,馮艷蕾.基于P2P的工作流管理系統(tǒng)研究與應(yīng)用[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2007,28(4):435-437.

[9]黃麗梅,李佳林,李瑞然.子流程技術(shù)在工作流設(shè)計(jì)中的應(yīng)用[J].長(zhǎng)春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,31(1):62-65.

[10]唐文忠.基于工作流技術(shù)的構(gòu)件模型研究[J].計(jì)算機(jī)應(yīng)用研究,2008,25(7):2057-2059.

猜你喜歡
數(shù)據(jù)庫(kù)用戶設(shè)備
諧響應(yīng)分析在設(shè)備減振中的應(yīng)用
基于MPU6050簡(jiǎn)單控制設(shè)備
電子制作(2018年11期)2018-08-04 03:26:08
數(shù)據(jù)庫(kù)
關(guān)注用戶
關(guān)注用戶
數(shù)據(jù)庫(kù)
關(guān)注用戶
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 青草精品视频| 久久婷婷色综合老司机| 欧美a级在线| 亚洲欧美日韩中文字幕一区二区三区 | 亚洲男人天堂网址| 亚洲美女视频一区| 亚洲黄色网站视频| 国产在线第二页| 中文字幕日韩丝袜一区| 亚洲Va中文字幕久久一区| 国产理论精品| 性色生活片在线观看| 国产激爽大片在线播放| 精品丝袜美腿国产一区| 国产综合色在线视频播放线视| 色色中文字幕| 国产免费人成视频网| 日韩视频免费| 国产三级国产精品国产普男人| 亚洲第一成人在线| 亚洲69视频| www亚洲天堂| 一本色道久久88| 国产成人精品高清在线| 日韩免费成人| 无码啪啪精品天堂浪潮av| 91蝌蚪视频在线观看| 国产精品太粉嫩高中在线观看| 91亚洲国产视频| igao国产精品| 国产91小视频在线观看| 国产日韩精品欧美一区灰| 久99久热只有精品国产15| 亚洲美女高潮久久久久久久| 一区二区三区国产精品视频| 亚洲三级色| 亚洲国产午夜精华无码福利| 国产丝袜丝视频在线观看| 亚洲午夜天堂| 热思思久久免费视频| 国产精品开放后亚洲| 在线视频一区二区三区不卡| 激情無極限的亚洲一区免费| 亚洲毛片在线看| 日本精品视频一区二区| 精品一区国产精品| 国产欧美日韩精品综合在线| 一本一道波多野结衣一区二区| 午夜一级做a爰片久久毛片| 国产在线精彩视频二区| 98超碰在线观看| 国产综合色在线视频播放线视| 国产美女免费网站| 国产精品短篇二区| 亚洲欧洲自拍拍偷午夜色无码| 国产精品成人免费视频99| 2019年国产精品自拍不卡| 69国产精品视频免费| 天堂中文在线资源| 日本在线亚洲| 蜜桃臀无码内射一区二区三区 | 国产亚卅精品无码| 久久黄色免费电影| www精品久久| 国产电话自拍伊人| 国产真实乱人视频| 国产精品任我爽爆在线播放6080| 91精品久久久无码中文字幕vr| 午夜老司机永久免费看片| 国产午夜在线观看视频| 一级毛片基地| 欧美日韩一区二区在线免费观看| 久久中文无码精品| 免费大黄网站在线观看| 日韩欧美高清视频| 亚洲精品少妇熟女| 成年人午夜免费视频| 亚洲乱码精品久久久久..| 激情综合网址| 国产爽爽视频| 国产在线91在线电影| 亚洲无码日韩一区|