[發(fā)明專利]一種基于activiti自定義表單的高并發(fā)工作流審批方法在審
| 申請?zhí)枺?/td> | 202110683401.1 | 申請日: | 2021-06-21 |
| 公開(公告)號: | CN113312181A | 公開(公告)日: | 2021-08-27 |
| 發(fā)明(設(shè)計)人: | 羅宇豪;徐士強(qiáng);魏金雷;孫思清 | 申請(專利權(quán))人: | 浪潮云信息技術(shù)股份公司 |
| 主分類號: | G06F9/50 | 分類號: | G06F9/50;G06F16/28;G06F16/23;G06F16/27 |
| 代理公司: | 濟(jì)南信達(dá)專利事務(wù)所有限公司 37100 | 代理人: | 闞恭勇 |
| 地址: | 250100 山東省濟(jì)南市高*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 activiti 自定義 表單 并發(fā) 工作流 審批 方法 | ||
1.一種基于activiti自定義表單的高并發(fā)工作流審批方法,其特征在于,
根據(jù)業(yè)務(wù)邏輯的不同創(chuàng)建自定義表單和自定義數(shù)據(jù)庫,根據(jù)流程節(jié)點(diǎn)的注釋類型不同,對不同類型的流程節(jié)點(diǎn)進(jìn)行不同的處理;創(chuàng)建流程實(shí)例時,使用Redis鎖保存流程實(shí)例id、實(shí)例名稱,進(jìn)行實(shí)例名稱的查重去重。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,
包括四個部分:自定義數(shù)據(jù)、基于Redis的緩存實(shí)例名稱去重、多線程搶鎖機(jī)制的流程審批、自定義節(jié)點(diǎn)駁回操作。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,
自定義數(shù)據(jù):
activiti的內(nèi)嵌頁面支持接口化開發(fā)和自定義表單開發(fā),將業(yè)務(wù)數(shù)據(jù)類型通過表單提交、保存到自定義數(shù)據(jù)庫中。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,
Activiti的createNactivQuery接口支持基于acitiviti開源框架下運(yùn)行自定義sql語句,可將業(yè)務(wù)邏輯處理sql化,通過createNactivQuery(sql)進(jìn)行數(shù)據(jù)庫的操作。
5.根據(jù)權(quán)利要求4所述的方法,其特征在于,
制定新的數(shù)據(jù)表作為系統(tǒng)擴(kuò)展存儲信息位置,并且信息表包含查詢流程相關(guān)內(nèi)容的信息,包括流程定義關(guān)聯(lián)、流程實(shí)例關(guān)聯(lián)、當(dāng)前節(jié)點(diǎn)相關(guān)信息、上一節(jié)點(diǎn)及下一節(jié)點(diǎn)相關(guān)信息。
6.根據(jù)權(quán)利要求2所述的方法,其特征在于,
基于Redis的緩存實(shí)例名稱去重:
Redis作為高新更能key-value數(shù)據(jù)存儲系統(tǒng),可作為服務(wù)器的緩存,在高并發(fā)情況下,將創(chuàng)建的用戶id和實(shí)例名稱保存到redis中,將實(shí)例名稱作為key加時間鎖,進(jìn)行創(chuàng)建實(shí)例時從Redis獲取實(shí)例名稱和用戶id,進(jìn)行創(chuàng)建操作;當(dāng)創(chuàng)建成功后釋放鎖,或者超出創(chuàng)建時間創(chuàng)建失敗后釋放Redis鎖。
7.根據(jù)權(quán)利要求2所述的方法,其特征在于,
多線程搶鎖機(jī)制的流程審批:
每創(chuàng)建一個流程實(shí)例的節(jié)點(diǎn)主任務(wù),從線程池中分出一塊區(qū)域作為當(dāng)前節(jié)點(diǎn)主任務(wù)的資源;放入候選人組作為任務(wù)處理人;當(dāng)其中候選人組中的一個人領(lǐng)取該任務(wù),就對當(dāng)前任務(wù)實(shí)例加鎖,僅鎖的持有用戶進(jìn)行處理;當(dāng)用戶處理完成后釋放鎖,并根據(jù)流程模型獲取是否有下一節(jié)點(diǎn),根據(jù)流程實(shí)例查詢下一節(jié)點(diǎn)任務(wù),將節(jié)點(diǎn)任務(wù)寫入自定義數(shù)據(jù)表中,進(jìn)行下一節(jié)點(diǎn)的準(zhǔn)備工作。
8.根據(jù)權(quán)利要求2所述的方法,其特征在于,
自定義駁回操作:
分為三個部分:基于命令模式開發(fā)的跳轉(zhuǎn)節(jié)點(diǎn)獲取模塊、基于命令模式開發(fā)的流程節(jié)點(diǎn)跳轉(zhuǎn)模塊、基于命令模式開發(fā)的刪除任務(wù)模塊;
其中,
1)跳轉(zhuǎn)節(jié)點(diǎn)獲取
i.保存當(dāng)前節(jié)點(diǎn)下一節(jié)點(diǎn)信息;
ii.當(dāng)前節(jié)點(diǎn)獲取上一節(jié)點(diǎn)實(shí)例信息;
iii.判斷上一節(jié)點(diǎn)是否目標(biāo)節(jié)點(diǎn):當(dāng)上一節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)相同時,返回上一節(jié)點(diǎn)信息;
iv.當(dāng)上一節(jié)點(diǎn)與目標(biāo)節(jié)點(diǎn)不同時,判斷是否遞歸到起始節(jié)點(diǎn):如果未到達(dá)起始節(jié)點(diǎn),遞歸執(zhí)行步驟ⅱ步驟ⅲ;若已到達(dá)起始節(jié)點(diǎn),返回起始節(jié)點(diǎn)信息;
2)流程節(jié)點(diǎn)跳轉(zhuǎn)
根據(jù)跳轉(zhuǎn)算法獲取的目標(biāo)節(jié)點(diǎn),使用命令模式重新畫一條連接線,將執(zhí)行駁回命令的節(jié)點(diǎn)出口指向目標(biāo)節(jié)點(diǎn);
3)刪除下一節(jié)點(diǎn)實(shí)例
在執(zhí)行駁回命令前,activiti回根據(jù)流程圖實(shí)例化下一節(jié)點(diǎn),創(chuàng)建節(jié)點(diǎn)任務(wù),在重定向駁回節(jié)點(diǎn)出口時,需要將流程圖原本的下一節(jié)點(diǎn)實(shí)例任務(wù)刪除,最終刪除節(jié)點(diǎn)實(shí)例。
9.根據(jù)權(quán)利要求8所述的方法,其特征在于,
其中Activiti實(shí)例節(jié)點(diǎn)包含三種:常規(guī)節(jié)點(diǎn)、條件節(jié)點(diǎn)、多實(shí)例節(jié)點(diǎn);
常規(guī)節(jié)點(diǎn)可以直接根據(jù)入口連線獲取上一節(jié)點(diǎn)信息;條件節(jié)點(diǎn)需根據(jù)入口信息執(zhí)行條件命令,根據(jù)條件結(jié)果判斷上一節(jié)點(diǎn)是條件節(jié)點(diǎn)哪一個分支;多實(shí)例節(jié)點(diǎn)需在遞歸上一節(jié)點(diǎn)前尋找兄弟節(jié)點(diǎn),將所有的兄弟節(jié)點(diǎn)跳過遞歸,只執(zhí)行當(dāng)前節(jié)點(diǎn)的遞歸。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浪潮云信息技術(shù)股份公司,未經(jīng)浪潮云信息技術(shù)股份公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110683401.1/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:不倒杯
- 下一篇:一種襪子的香氣處理方法
- 一種基于自定義表單、Activiti的工作流解決方法
- 一種基于Activiti的業(yè)務(wù)流程管理系統(tǒng)
- 一種基于activiti的業(yè)務(wù)事件與流程分離方法及系統(tǒng)
- 一種基于activiti技術(shù)的工作流可視化配置平臺
- 一種基于Activiti的流程創(chuàng)建部署方法及系統(tǒng)
- Activiti流程圖的重繪制方法、裝置、計算機(jī)設(shè)備及存儲介質(zhì)
- 數(shù)據(jù)共享方法、電子設(shè)備及介質(zhì)
- 一種針對Activiti流程進(jìn)展查看的優(yōu)化方法與系統(tǒng)
- 一種基于Acitivti 7.0的人工智能通用訓(xùn)練方法及系統(tǒng)
- 基于Activiti5的解耦系統(tǒng)、方法、設(shè)備及介質(zhì)





