日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

Go平臺(tái)的流程引擎

 

go-workflow 是一個(gè)超輕量級(jí)的工作流引擎,基本架構(gòu)同Activiti工作流有些相似,但是它更精簡(jiǎn),更輕量,它是一個(gè)工作流微服務(wù)

一、特點(diǎn):

1.它是一個(gè)工作流微服務(wù)

2.將所有的無(wú)關(guān)流程的數(shù)據(jù),包括用戶、用戶組等信息從服務(wù)中解耦出去,go-workflow只紀(jì)錄流程的流轉(zhuǎn)

3.使用json數(shù)組替代bpmn來(lái)生成流程定義,簡(jiǎn)化流程定義的生成

二、go-workflow框架

1.go-workflow 數(shù)據(jù)庫(kù)設(shè)計(jì)

1.1 流程定義表

表 procdef 用于保存流程的配置, 主要字段有:

 name: 流程定義的名稱,如:"請(qǐng)假流程"
  version: 流程定義的版本
 resource: 保存流程定義的具體配置,它是一個(gè)json格式的字符串
 company: 保存該流程創(chuàng)建人所在公司

1.2 流程實(shí)例表

表 proc_inst 用于保存流程實(shí)例,當(dāng)用戶啟動(dòng)一個(gè)流程時(shí),就會(huì)在這個(gè)表存入一個(gè)流程實(shí)例,

主要字段有:

procDefID: 對(duì)應(yīng)表procdef的id,
title: 標(biāo)題,如:"張三的請(qǐng)假流程"
department: 用戶所在部門(mén)
nodeID: 當(dāng)前所處于節(jié)點(diǎn)的名稱
candidate: 當(dāng)前審批人或者審批用戶組
taskID: 當(dāng)前任務(wù)id

1.3 執(zhí)行流表

表 execution 用于保存執(zhí)行流,當(dāng)用戶啟動(dòng)一個(gè)流程時(shí),就會(huì)生成一條執(zhí)行流,之后的流程就會(huì)按照?qǐng)?zhí)行流的順序流轉(zhuǎn),

比如:開(kāi)始-主管審批-財(cái)務(wù)審批-人事審批-結(jié)束 ,

主要的字段有:

procInstID: 流程實(shí)例id,對(duì)應(yīng)表proc_inst
procDefID: 流程定義id,對(duì)應(yīng)表procdef
nodeInfos: 是一個(gè)json數(shù)組,紀(jì)錄流程實(shí)例會(huì)經(jīng)過(guò)的所有節(jié)點(diǎn)

1.4 關(guān)系表

表 identitylink 用于保存任務(wù)task的候選用戶組或者候選用戶以及用戶所參與的流程信息,

主要字段有

type: 表示關(guān)系類型,有:"candidate"和"participant"兩種
group: 表示當(dāng)前審批的用戶組userID: 表示當(dāng)前審批的用戶taskID: 對(duì)應(yīng)任務(wù)task表的idstep: 表示任務(wù)對(duì)應(yīng)的執(zhí)行流位置,比如:有一個(gè)執(zhí)行流:開(kāi)始-主管審批-財(cái)務(wù)審批-人事審批-結(jié)束,那么step=0,則處于【開(kāi)始】位置,step=1則處于【主管審批】位置company: 表示公司procInstID: 對(duì)應(yīng)流程實(shí)例id

1.5 任務(wù)表

表 task 用于保存任務(wù),

主要字段有:

nodeID: 表示節(jié)點(diǎn),如:"主管審批"結(jié)點(diǎn)
step: 表示任務(wù)對(duì)應(yīng)的執(zhí)行流位置
assignee: 任務(wù)的處理人
memberCount: 表示當(dāng)前任務(wù)需要多少人審批之后才能結(jié)束,默認(rèn)是 1
unCompleteNum: 表示還有多少人沒(méi)有審批,默認(rèn)是1
agreeNum: 表示通過(guò)的人數(shù)actType: 表示任務(wù)類型 "or"表示或簽,即一個(gè)人通過(guò)或者駁回就結(jié)束,"and"表示會(huì)簽,要所有人通過(guò)就流
轉(zhuǎn)到下一步,如果有一個(gè)人駁回那么就跳轉(zhuǎn)到上一步

1.6 歷史數(shù)據(jù)表

歷史數(shù)據(jù)表包括 execution_history,identitylink_history,proc_inst_history,task_history這些表字段同正常的表相同,每隔20秒,將已經(jīng)結(jié)束的流程數(shù)據(jù)會(huì)自動(dòng)遷移過(guò)來(lái)

2 流程的存儲(chǔ)

2.1 添加流程資源

啟動(dòng) go-workflow 微服務(wù)后,可以在瀏覽器中輸入:http://localhost:8080/workflow/procdef/save 進(jìn)行存儲(chǔ)

具體見(jiàn) example.md 說(shuō)明文檔

3.流程的啟動(dòng)

通過(guò)調(diào)用 StartProcessInstanceByID 方法來(lái)啟動(dòng)流程實(shí)例,

主要涉及:

獲取流程定義
GetResourceByNameAndCompany()->啟動(dòng)流程實(shí)例CreateProcInstTx()->生成執(zhí)行流GenerateExec() -> 生成新任務(wù)NewTaskTx() -> 流程流轉(zhuǎn) MoveStage()

4.任務(wù)審批

調(diào)用方法 Complete()方法來(lái)執(zhí)行任務(wù)的審批, 涉及方法:

更新任務(wù) UpdateTaskWhenComplete()-> 流轉(zhuǎn)MoveStageByProcInstID()

調(diào)用方法 WithDrawTask() 方法來(lái)執(zhí)行任務(wù)的撤回

 

以上內(nèi)容,請(qǐng)私信會(huì)發(fā)給你開(kāi)源地址。

 

如有以下需要請(qǐng)私信

使用vue、element搭建后臺(tái)管理界面、網(wǎng)站

使用vue、vant實(shí)現(xiàn)webApp項(xiàng)目

實(shí)現(xiàn)微信小程序、企業(yè)微信、釘釘開(kāi)發(fā)

使用springboot做前端后分離項(xiàng)目

對(duì)用友ERP、鼎捷ERP接口二次開(kāi)發(fā)、如條碼系統(tǒng)

開(kāi)發(fā)泛微OA、定制domino開(kāi)發(fā)項(xiàng)目

提供軟件開(kāi)發(fā)服務(wù)、技術(shù)咨詢類服務(wù)

分享到:
標(biāo)簽:流程 引擎
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定