簡單易用的工作流設計方案

2021-04-29 12:11:45 字數 2861 閱讀 8233

簡單工作流資料庫設計  研發部:羅代均 

專案(item)

專案id(itemid)

專案描述(itemname)

流程id (routid)

狀態(state)

專案型別(itemtype)

1鄭州出差借款11

借款單2

鄭州出差報銷31

報銷單

這裡的專案,是泛指,可以是公文,借款單,報銷單等等需要流轉的資料.

任務列表(tasklist)

任務id(taskid)

專案id (itemid)

步驟id (actorid)

狀態(state)

版本(version)11

1檢出100223

檢出100133

3待檢出

1002

專案申請後,任務列表插入一條記錄.使用者審批通過或者拒絕後,update當前步驟id(上一步驟或者下一步驟).某個步驟可能有多個審批人,如果要審批,必須先檢出.version欄位是為了樂觀鎖控制,保證只能有一人檢出.

任務歷史記錄(taskhistory) 

id(id)

專案id (itemid)

步驟id (actorid)

備註(memo)

操作人id (operateuserid)

建立時間(createdate)11

1成都出差11

12批准2

113批准

3 每個步驟的操作,都寫入任務歷史記錄 

流程(rout)

流程id(routid)

流程描述(routname)

部門id (deptid)

版本號(version)

狀態(state) 

1借款流程11

發布2報銷流程11

草稿2預算審批流程11

停止 流程草稿狀態是可以修改刪除,發布狀態就不能修改和刪除,只能新增乙個版本,或者新增乙個流程,或者停止流程。

步驟(actor)

步驟id(actorid)

步驟序號(sortno)

步驟描述(actorname)

流程id (routid)11

借款申請12

2部門經理審批13

3財務經理審批1

步驟處理人(actoruser)

步驟id(actorid)

處理人id (operateuserid)11

2223

乙個步驟,是有多個處理人。處理人先檢出任務列表,然後才能審批。 

檢視:待我處理的工作

select t1.taskid,t1.itemid,t3.operateuserid

from tasklist t1

join actor t2 on t1.actorid=t2.actorid

join actoruser t3 on t2.actorid=t3.actorid

where t1.state='待檢出'

檢視:我申請的工作

join tasklist t2 on t1.itemid=t2.itemid

申請時   

"1--查詢所選流程的第乙個步驟

select  actorid from actor

where routid =1

order by sortno

limit 0,1

2--插入任務列表tasklist

insert into tasklist(actorid,state,version,itemid)

values()

3--插入任務歷史記錄

insert into taskhistory(itemid,actorid,memo,operateby,createdate)

values()

4--修改專案item的狀態為待審批

審批通過    

"1--update任務列表的步驟id為下一步驟id

update tasklist set actorid=

(select  actorid from actor

where routid = (select routid from actor where actorid=1)

and actorid>1

order by sortno

limit 0,1

where taskid

2--插入任務歷史記錄

insert into taskhistory(itemid,actorid,memo,operateby,createdate)

values()

3--修改專案item的狀態為審批中

審批拒絕  

"1--update任務列表的步驟id為第一步的id

update tasklist set actorid=

(select  actorid from actor

where routid =(select routid from actor where actorid=1)

order by sortno

limit 0,1)

where taskid=1

2--插入任務歷史記錄

insert into taskhistory(itemid,actorid,memo,operateby,createdate)

values()

3--修改專案item的狀態為審批拒絕

update item set state='jujue' where itemid=1"

程式設計師特區

關於工作流引擎取回審批的設計方案與實現過程

關於工作流引擎取回審批的設計方案與實現過程 需求背景 0,本文中盡量避免審批概念,因為在我們認為沒有審批節點或者審核節點,任何節點都是資料採集.1,取回處理,也可以稱呼為提前處理,是對於擁有絕對審批許可權的人,為了工作的需要直接的從下屬工作人員中取回工作而直接處理。2,這種做法是違反規範的,但是在一...

簡單工作流引擎

從公司的乙個專案中挖出來的工作流引擎的 雖然是乙個很簡單的模型,但卻包含了不凡的思想。對於資料流處理的 來說,這樣的結構有助於將來的維護和擴充套件。使用起來也很簡單,繼承相應的step,實現業務邏輯,並在啟動載入的時候將所有的step拼裝起來就可以了。很簡單,直接貼出來給大家看了 public in...

工作流設計 1

工作流講解 1 工作流基礎 合同申報流程 科員 科長 法律科 處 專業處室 領導 法律處 合同起草 合同初審 合同分發 合同審批 合同審批 100w 合同簽訂 流程和簡化為 a b c d e 除過線性關係外還包括 a b1 b2 b3 c 這樣流程中包括分解和匯集的情況,在分解和匯集時會出現條件轉...