簡單工作流資料庫設計 研發部:羅代均
專案(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 這樣流程中包括分解和匯集的情況,在分解和匯集時會出現條件轉...