工作流介紹
是對工作流程及其各操作步驟之間業務規則的抽象、概括描述。工作流建模,即將工作流程中的工作如何前后組織在一起的邏輯和規則,在計算機中以恰當的模型表達並對其實施計算。工作流要解決的主要問題是:為實現某個業務目標,利用計算機在多個參與者之間按某種預定規則自動傳遞文檔、信息或者任務。
工作流引擎
所謂工作流引擎是指workflow作為應用系統的一部分,並為之提供對各應用系統有決定作用的根據角色、分工和條件的不同決定信息傳遞路由、內容等級等核心解決方案。工作流引擎包括流程的節點管理、流向管理、流程樣例管理等重要功能。
參考:
一個適合於.NET Core的超輕量級工作流引擎:Workflow-Core
.Net 三款工作流引擎比較:WWF、netBPM 和 ccflow
elsa-core:
- git地址,將推出blazor前端版
JadeFramework:作者博客地址 、github地址
個人理解
工作流引擎相當於一個中央處理器 / CPU,可以接受不同的流程、角色、用戶、資源等,且根據不同的情況去驅動不同的流程,一步一步去實現不同的流程節點。
工作流體系
流程與設計
流程由多個節點組成,每個節點設計到不同的操作用戶,每個節點處理后調到下一個節點
流程表單
流程表單就是流程自定義字段,能夠自定義各種各樣的流程,以達到通用流程效果。一般用富文本編輯器
例如請假流程
- 請假天數
- 請假人
- 原因
- 請假事由
- 狀態
- 假期類型
- 職位信息
流程類型
流程分組,例如
- 請假流程
- 采購流程
- 借款流程
- 其他各種審批流程
流程實例(流程細節)--重點
例如請假流程,雖然全公司公用一個流程,但是每個員工的部門權限、請假類型、請假天數都不一行,然后審批流程的節點長度也不一樣,例如3天主管審批就行,10天需要經理審批
流程實例操作
就是操作對象,每一節點審批人是誰
流程實例流轉
記錄流程處理進度狀態。
當前節點處理完后,轉到下一節點,就是記錄已經處理的節點狀態,下一個節點該誰處理了。
用戶體系
用戶
角色
角色資源
一般是菜單和按鈕,
用戶部門
用戶分組
工作流實現技術
- aspnet core3.1
- mvc 3.1
- Areas(區域):參考: 官方文檔ASP.NET Core 中的區域Areas、.net core創建區域(Areas)的使用、ASP.NET Core MVC中Area的使用
- AutoMapper: 對象映射器,可以將一個對象映射到另一個對象
- CAP.RabbitMQ:消息隊列
- JadeFramework:一個.NET集成框架,作者定義為:一些常用的幫助類、擴展方法包
- 集成了好多常用技術
SignalR: 實時通訊類庫
- 集成了好多常用技術
- 參考: SignalR文檔
- mysql 5.7 :數據庫
- Repository + Service :服務倉儲層
- IRepository + IService :服務倉儲接口層
- Dto:數據傳輸對象
- sql腳本模板?
- 前端
- summernote: 富文本編輯器
- GooFlow: 流程設計工具
- jQuery
- layui:前端 UI 框架,官網地址
項目結構說明:
- Areas(區域):cshtml 頁面
- Sys(系統):
- Dept 部門
- Plugin 插件
- Resource 資源
- Role 角色
- System 系統
- User 用戶
- WF(工作流)
- Category 分類
- Form 表單
- WorkFlow 工作流
- WorkFlowInstance 工作流實例
- Sys(系統):
- wwwroot:是 asp.net core默認的靜態文件夾,可以直接引用
- lib
- src:與Areas(區域)的頁面對應的JavaScript腳本
- ui:
- uploadfile
- Components(組件)
- Controllers(控制器)
- Dtos(數據傳輸對象):提供給Services(服務)和 Infrastructure(基礎設施)使用
- Filters(過濾器)
- 全局異常過濾器
- Hubs(集線器)
- Infrastructure(工具):
- CodeStringBuild:代碼生成器構建類
- HtmlExtensions:HTML擴展
- TokenClient:客戶端令牌
- VerificationCode:驗證碼
- Models(數據庫模型):與數據庫表、字段對應
- Repositories(倉儲):提供數據局給 Services(服務),內含dapper的sql語句
- Services(服務):提供數據給 Controllers(控制器)
- WorkFlowInstanceService(工作流實例服務【核心】)
- WorkFlowInstanceService(工作流實例服務【核心】)
- Views(視圖/頁面)