流程審批設計


這是我的項目中使用的一套關於工作流和審批流的配置,算是比較簡單的,這里只寫其中比較核心的思路,算是對之前工作的一個技術總結吧。

以下是數據庫設計;后面再跟據實例分析每個表的作用。

首先是流程配置表:

如果需要用到一個工作流就要先配置,test_workflow_configuration就需要存入該流程的基本信息

test_workflow_details需要存入該流程的工作流配置,需要幾級審核等信息

然后是流程記錄表:

這個表存儲的是流程記錄,每個流程送審之后都會存在這條記錄中,一級審核完在插入下一級記錄

最后是申請單表:

這個表存儲的是申請單信息

ps:這里有一些關聯設計的表被我省略了,只說最核心的思路,下面舉個栗子

現在有一個工單申請需求

首先這個申請單記錄記錄應該存儲在test_order中,包括單據號,創建日期,創建人等信息(相關業務明細另外建表)

然后配置審核流程

test_workflow_configuration中應該存入這個流程的基本信息

test_workflow_details中設置工作流配置(附圖1)

接下來流程開始

第一步:該工單填寫完畢,送審

當點擊【送審】按鈕時后台需要以下操作:

1.將test_order中的status改為1送審狀態

2.流程記錄表test_workflow_records插入工作流第一條記錄(主管審核)

test_workflow_details里的post_id是主管崗位id,test_workflow_records里需要的是主管這個崗位上的人的id,作為assignee_id(該工作流受理人id)

第二步:主管登錄系統,進入審批頁面,跟據主管id/既是當前用戶id(assignee_id)和(is_audit = 0)可以展示當前主管需要審核的所有申請。

    主管點擊【審核】按鈕,可根據document_code(申請單據號)展示當前申請的所有詳細信息,選擇【通過】/【駁回】,並填寫意見等,最后點擊【提交】。

此時后台需要做以下操作:

1.更新流程記錄為已審核狀態(is_audit=1)

2.跟據workflow_id查詢該流程分為多少步(幾條記錄就是幾步),取出當前記錄的flow_serialnumber,判斷是否是最后一步

若是最后一步 {

  判斷當前記錄是否通過

  若通過{

    編寫審核通過的業務處理代碼

  }  

  否則 {

    直接更新test_order申請狀態為駁回(status=3)

  }

若不是最后一步{

  再判斷當前記錄是否審核通過

  若不通過{

    直接更新test_order申請狀態為駁回(status=3)

  }

  若通過(這個栗子就走這種情況)

  {

    取出flow_serialnumber,+1,查詢下一個節點(經理審核)

    

    流程記錄表test_workflow_records插入工作流第二條記錄(經理審核)

  }

插入處理方式同上

第三步:同第二步,此時流程走到經理這里,流程繼續進行。

附上幾張截圖:

圖1:工作流配置

圖2:審核記錄詳情


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM