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ù),正在被越來越多的企業(yè)所應(yīng)用。企業(yè)的日常活動(dòng)中,約有70%是屬于流程類活動(dòng),如訂單出貨流程、生產(chǎn)流程、企業(yè)內(nèi)各類申請(qǐng)表單、公文簽審、信息傳遞與簽收、公司各類支出與收付等[1]。設(shè)備管理(包括設(shè)備采購(gòu)的審批、設(shè)備維修等)也屬于流程類活動(dòng)[2]。但與普通流程類活動(dòng)相比,設(shè)備管理具有用戶層面廣泛、一次性購(gòu)買量大、審批周期長(zhǎng)、生命周期內(nèi)維護(hù)頻繁等特點(diǎn)[3]。對(duì)大型企業(yè)來說,類似電腦等設(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ǔ)言編寫的開放源代碼的工作流引擎,具有顯著的靈活性及完全面向有技術(shù)背景用戶的特點(diǎn)[5]。用戶可以根據(jù)自身的需求,利用這款開源軟件設(shè)計(jì)簡(jiǎn)單或是復(fù)雜的工作流。通過使用,用戶就可以把工作中心放在業(yè)務(wù)和規(guī)則的定義上,而不需通過硬編碼的方式實(shí)現(xiàn)一個(gè)Petri網(wǎng)或是一個(gè)有窮自動(dòng)機(jī)[6]。用戶可以最小代價(jià)把OSWorkflow整合到自己的程序中來。

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

1 OSWorkflow工作流引擎

OSWorkflow是三大主流開源工作流引擎之一,它基于FSM(有限狀態(tài)自動(dòng)機(jī),F(xiàn)initeState Machine)理論[7]。每一個(gè)state都是由step 和status聯(lián)合體現(xiàn)出來的,一個(gè)state到另一個(gè)state的狀態(tài)躍遷transition依賴于action的執(zhí)行,在action執(zhí)行前需要判斷動(dòng)作的執(zhí)行條件是否滿足,在動(dòng)作執(zhí)行改變狀態(tài)前后都可以調(diào)用function來執(zhí)行一些其它操作,動(dòng)作執(zhí)行完成后通過判定條件來確定執(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)限及所屬部門進(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)由“部門提報(bào)用戶”填報(bào)需要的計(jì)算機(jī)設(shè)備申請(qǐng)單,申請(qǐng)單上的內(nèi)容為提報(bào)部門、提報(bào)人、提報(bào)計(jì)算機(jī)設(shè)備的類型、提報(bào)理由。個(gè)人申請(qǐng)結(jié)束承接2)。

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

3)由“設(shè)備管理用戶”進(jìn)行初審,結(jié)果為同意/不同意,同時(shí)輸入詳細(xì)的審批意見。如果不同意則有兩種情況:申請(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ì)的審批意見。如果不同意則申請(qǐng)流程結(jié)束;如果同意則進(jìn)入5)。

5)由計(jì)算機(jī)設(shè)備申請(qǐng)人所在部門的“分管領(lǐng)導(dǎo)用戶”進(jìn)行審批,結(jié)果為同意/不同意,同時(shí)輸入詳細(xì)的審批意見。如果不同意則申請(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)書。

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

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

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

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

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

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

為了確保工作流程的正確性,OSWorkflow并沒有采用直接連接數(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類,將工作流表中的字段以及基本操作映射為int型常量,例如public final static int ACTION=4。

2)使用NestedExpression對(duì)象創(chuàng)建復(fù)合表達(dá)式。NestedExpression同樣繼承了Expression類,其構(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類中的getPersistence方法獲取 WorkflowStore實(shí)例。將 WorkflowExpressionQuery對(duì)象作為參數(shù)傳遞,在WorkflowStore接口的具體實(shí)現(xiàn)類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)買環(huán)節(jié)的時(shí)間很長(zhǎng),且購(gòu)買數(shù)量為公司規(guī)模,數(shù)據(jù)庫(kù)內(nèi)可能存在大量未完成的工作流流程數(shù)據(jù)。在最終返回的List結(jié)果中可能包含超過1 000條流程id數(shù)據(jù),而Oracle不支持IN子句中List的個(gè)數(shù)超過1000,從而導(dǎo)致查詢失敗。為解決這個(gè)問題,在OSWorkflow中新增一個(gè)數(shù)據(jù)庫(kù)表OS_QUERYENTRY,建立JDBCWorkflowStore類的子類并重寫其中的doExpressionQuery方法,將原來放入List中的id寫入到新增的表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è)典型查詢過程如下:1)準(zhǔn)備查詢條件集合對(duì)象。

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

3)裝配查詢條件。

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

3.2 審批過程中審批意見的保存

在OSWorkflow中,函數(shù)function是用來定義(引用)并執(zhí)行外部的商業(yè)邏輯和服務(wù),實(shí)現(xiàn)OSWorkflow與外部具體的應(yīng)用之間交互[9]。系統(tǒng)需要保存設(shè)備審批過程中的審批意見,只要擴(kuò)展function接口就可以。function有兩種類型:pre function(預(yù)處理函數(shù))和post function(后處理函數(shù))。pre function在工作流的一個(gè)轉(zhuǎn)變操作執(zhí)行之前調(diào)用,post function在工作流的一個(gè)轉(zhuǎn)變操作執(zhí)行完之后調(diào)用[10]。審批意見的保存應(yīng)在流程流轉(zhuǎn)后,因此,采用post function方式處理。同時(shí),因?yàn)榱鞒踢\(yùn)轉(zhuǎn)周期長(zhǎng)度不定,審批意見應(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)買量大、審批周期長(zhǎng)、生命周期內(nèi)維護(hù)頻繁等特點(diǎn),采用OSWorkflow作為工作流引擎,在此基礎(chǔ)上設(shè)計(jì)了某電力公司設(shè)備管理系統(tǒng),并解決了Oracle數(shù)據(jù)庫(kù)平臺(tái)下大量數(shù)據(jù)查詢等問題。實(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]夏冬,白樹仁,鄧惠建.基于J2EE的工作流管理系統(tǒng)模型[J].計(jì)算機(jī)工程與科學(xué),2006,28(3):123-125.

[6]侯秀萍,邵春明,鄭虹.基于工作流網(wǎng)的過程模型的合理性分析[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)注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關(guān)注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數(shù)據(jù)庫(kù)
關(guān)注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
500kV輸變電設(shè)備運(yùn)行維護(hù)探討
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 国产激情无码一区二区免费| 国产精品成人一区二区不卡 | 国产成人精品午夜视频'| 国产成人综合欧美精品久久 | 伊人成人在线视频| 美女无遮挡拍拍拍免费视频| 国产剧情伊人| 最新国产在线| 无码中文AⅤ在线观看| 欧美伊人色综合久久天天| av手机版在线播放| 少妇露出福利视频| 黄色污网站在线观看| 911亚洲精品| 国产亚洲精品97AA片在线播放| 亚洲视频一区在线| 天天色天天综合网| 欧美中文字幕一区| 特级毛片免费视频| 欧美在线黄| 亚洲精品麻豆| 麻豆国产在线不卡一区二区| 精品91自产拍在线| 色天天综合| 欧美在线精品一区二区三区| 亚洲成A人V欧美综合天堂| 精品久久久无码专区中文字幕| 国产毛片高清一级国语| 有专无码视频| 中文精品久久久久国产网址| 极品私人尤物在线精品首页| 欧美午夜在线播放| 欧美、日韩、国产综合一区| 国产自产视频一区二区三区| 亚洲另类第一页| 91青草视频| 亚洲无码高清视频在线观看| 亚洲国产欧美中日韩成人综合视频| 亚洲精品国产精品乱码不卞| 国产正在播放| 国产成人精品免费视频大全五级| 国产成人精品一区二区秒拍1o| 色噜噜狠狠色综合网图区| 波多野结衣在线se| 色老头综合网| 热re99久久精品国99热| 国产精品浪潮Av| 亚洲国产高清精品线久久| 韩日午夜在线资源一区二区| 五月激情婷婷综合| 国产欧美日韩va| 亚洲成a人片77777在线播放| 日本人妻丰满熟妇区| 美女被躁出白浆视频播放| 欧美va亚洲va香蕉在线| 中文字幕在线永久在线视频2020| 国产视频a| 国产超碰一区二区三区| 青草午夜精品视频在线观看| 精品久久蜜桃| 国产最爽的乱婬视频国语对白| 亚洲国内精品自在自线官| 国产中文一区二区苍井空| 国产精品网曝门免费视频| www亚洲精品| 2021国产v亚洲v天堂无码| 亚洲不卡影院| 欧美午夜视频在线| 亚洲无码久久久久| 久青草免费视频| 香蕉久久国产超碰青草| 国产呦精品一区二区三区下载| 欧美全免费aaaaaa特黄在线| 日韩成人在线一区二区| 国产日韩AV高潮在线| 免费观看成人久久网免费观看| 久久香蕉国产线看精品| 亚洲成人在线免费观看| 国产jizz| 亚洲国产成人自拍| 亚洲一区国色天香| 亚洲av综合网|