天天看點

審批工作流設計審批工作流設計

審批工作流設計

技術選型

  • 開源流程引擎
  • activiti
  • 優點:功能完善、開發簡單
  • 缺點:需要25張資料表、有學習成本
  • 自研流程引擎
  • 優點:适應業務能力強,需要的資料表少(5張表),能滿足基本需求
  • 缺點:開發周期長,功能不夠完善

資料庫設計

資料庫ER圖

審批工作流設計審批工作流設計

審批工作流設計審批工作流設計
審批工作流設計審批工作流設計

設計思路

流程模闆

流程模闆是對一組流程邏輯相同的工作流的模闆定義。例如:請假流程對應一個流程模闆,報帳流程對應另一個流程模闆。

流程模闆中每個節點的具體審批人可以為固定人員,也可以是非固定人員。比如,請假流程中,員工發起申請後,由直屬上級審批。不同部門員工發起的請假流程,審批人也不同。

流程模闆表記錄流程的元資訊,比如流程模闆名字、類型、流程上下文字段定義。

流程上下文指影響流程分支的變量。

流程模闆節點

流程模闆節點對應工作流中的每一個處理環節。

1個流程模闆對應多個流程節點。

流程節點中記錄目前節點的處理人類型(固定人員、上級、HR)、處理人(固定人員時該字段為員工姓名,非固定人員時該字段為空)、前驅節點關系。

前驅節點關系字段,值可能為“與”和“或”。前驅節點指和目前節點相鄰的前一個節點。該字段用于目前節點有多個前驅節點時,需全部通過還是至少通過一個,才能流轉到目前節點。如下圖所示。

審批工作流設計審批工作流設計

流程模闆節點連接配接

流程模闆節點連接配接用于定義模闆節點之間的關系。

字段包括來源節點、目标節點和連接配接成立條件。

連接配接成立條件字段用于需要申請的内容動态選擇流程分支的情況。

審批工作流設計審批工作流設計

流程執行個體

流程執行個體是員工建立流程時通過模闆産生的實際工作流。一個流程模闆對應多個流程執行個體。執行個體與模闆的差別是,在流程執行個體中每個節點的審批人是确定的。

流程執行個體中記錄建立人、流程上下文、流程執行個體狀态(流轉中或已結束)。

任務

任務指審批任務。在建立流程執行個體後,會生成與該流程相關的多個審批任務。

每個審批任務對應流程模闆中的一個節點。審批任務中的處理人是确定的,模闆節點的處理人是不确定。

審批任務儲存該任務的實際處理人、任務是否激活、審批決定(同意或者拒絕)、評論、操作時間。

功能實作思路

建立流程模闆

參數:模闆類型、名字、節點、節點關系、流程上下文字段名。

處理流程:

  1. 生成新模闆ID。
  2. 流程模闆表記錄流程模闆類型、名字、流程上下文字段名。
  3. 流程模闆節點表添加節點。
  4. 模闆節點連線表中記錄節點關系。

建立流程

參數:流程模闆ID、建立人、流程上下文變量的值

處理流程:

  1. 生成流程執行個體ID。
  2. 在流程執行個體表中記錄建立人,流程上下文。狀态預設為流轉中。
  3. 在任務表中,根據模闆中的節點建立審批任務。

查詢待審批清單

參數:員工ID

處理流程:

  1. 在任務表中查詢實際處理人為該員工,且任務狀态為激活的任務ID。

進行審批

參數:任務ID、使用者ID、審批決定(同意或拒絕)

處理流程:

  1. 在任務表中記錄審批決定。
  2. 修改下一個任務的激活狀态。
  3. 判斷流程是否結束,如果結束,修改流程執行個體表中的執行個體狀态。