最近公司做的一個(gè)項(xiàng)目要實(shí)現(xiàn)工作流程的收回,駁回等操作,而采用的工作流引擎并不支持駁回功能,這個(gè)項(xiàng)目恰好就我和一個(gè)實(shí)習(xí)生一塊做,所以這個(gè)問題就落到我的頭上來解決了。。。
客戶提出的要求是駁回時(shí)要記錄日志,但是審批意見之類的需要清除掉,收回時(shí)不記錄日志,審批意見同樣清除。
百度了一下,總結(jié)了5個(gè)解決方案:
第一種是清除當(dāng)前任務(wù)的出口,實(shí)現(xiàn)回到上一步的功能。
根據(jù)任務(wù)ID獲取當(dāng)前的任務(wù)節(jié)點(diǎn),進(jìn)而獲取流程實(shí)例,然后取到流程的定義,找到當(dāng)前活動(dòng)的節(jié)點(diǎn)與上一步活動(dòng)的節(jié)點(diǎn),然后清除當(dāng)前活動(dòng)的出口,將上一步活動(dòng)的出口作為最新的活動(dòng)節(jié)點(diǎn)。
第二種是直接將當(dāng)前的activiti引擎更換為第三方的支持退會(huì)駁回的引擎。
第三種是自己編譯activiti引擎,加入退回,駁回功能。
第四種是直接操作數(shù)據(jù)庫,使用歷史任務(wù)替換正在進(jìn)行的任務(wù)。
第五種是直接實(shí)現(xiàn)Command接口,實(shí)現(xiàn)工作流程可以任意跳轉(zhuǎn)。
因?yàn)闀r(shí)間緊急所以直接將3.編譯activiti引擎給pass掉了,本來項(xiàng)目是接手的離職員工的項(xiàng)目,更換流程引擎可能會(huì)引起其他的問題,此計(jì)劃暫放。
延伸閱讀
- ssh框架 2016-09-30
- 阿里移動(dòng)安全 [無線安全]玩轉(zhuǎn)無線電——不安全的藍(lán)牙鎖 2017-07-26
- 消息隊(duì)列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 論文筆記【圖片目標(biāo)分割】 2017-07-26
- 詞向量-LRWE模型-更好地識(shí)別反義詞同義詞 2017-07-26
- 從棧不平衡問題 理解 calling convention 2017-07-26
- php imagemagick 處理 圖片剪切、壓縮、合并、插入文本、背景色透明 2017-07-26
- Swift實(shí)現(xiàn)JSON轉(zhuǎn)Model - HandyJSON使用講解 2017-07-26
- 阿里移動(dòng)安全 Android端惡意鎖屏勒索應(yīng)用分析 2017-07-26
- 集合結(jié)合數(shù)據(jù)結(jié)構(gòu)來看看(二) 2017-07-26