[Open Source] Workflow Engine, a DingTalk-style Approval Process Designer Crafted for China's Unique Approval Workflows
![[Open Source] Workflow Engine, a DingTalk-style Approval Process Designer Crafted for China's Unique Approval Workflows](https://yy123.ink/api/img/1782593422288-1m8ovs.jpg)
1. Project Overview
FlowLong Workflow: A Truly China-Built Workflow Engine, JSON-Based Instance Models, a DingTalk-Style Approval Process Designer, Carefully Crafted for Chinese Approval Scenarios ❗
2. Open Source License
Licensed under AGPL-3.0
3. Screenshots



4. Feature Overview
FlowLong Workflow: A Truly China-Built Workflow Engine, JSON-Based Instance Models, a DingTalk-Style Approval Process Designer, Carefully Crafted for Chinese Approval Scenarios ❗
FlowLong Workflow
-
Project Description: FlowLong, whose Chinese name is Feilong (Flying Dragon), represents the beautiful vision of a flying dragon soaring into the sky!
The English abbreviation FLW stands for FlowLong Workflow.
Chinese-Style Workflow Operation Concepts
|
Supported Features |
Feature Description |
|
Sequential Countersignature |
Multiple people can be assigned to the same approval node, such as A, B, and C. They receive pending tasks sequentially: A approves first, and only after A submits the approval can B proceed. All participants must approve before the process moves to the next approval node. |
|
Parallel Countersignature |
Multiple people can be assigned to the same approval node, such as A, B, and C. All three receive pending tasks simultaneously. All participants must approve before the process moves to the next approval node. |
|
Any-One Approval |
Multiple handlers are assigned to a workflow approval node. The process can move to the next node as soon as any one of them completes the task. |
|
Weighted Voting |
Multiple people can be assigned to the same approval node, such as A, B, and C, with different voting weights assigned to each person. The process can move to the next node when the voting weight ratio exceeds 50%. |
|
CC Notification |
Notify the corresponding people in the CC list of the approval results. |
|
Rejection |
Reset the approval process and send it back to a specified node for re-approval. Rejection is also called returning or sending back. Supported options include returning to the applicant, returning to the previous step, and returning to any specified node. |
|
Assignment |
Allows users to independently decide on task transfer, delegation, primary handling, and other arrangements. |
|
Transfer |
A transfers the task to B for approval. After B approves, the process moves to the next node. |
|
Delegation |
A delegates the task to B for approval. After B approves, the task is returned to A. After A approves, the process moves to the next node. |
|
Jump |
Allows the current workflow instance to jump to any processing node. |
|
Take Back |
Before the current handler processes the document, the submitter from the previous node is allowed to take it back. |
|
Revoke |
The workflow initiator can revoke the workflow. |
|
Add Signer |
Allows the current handler to add additional handlers to the current processing node as needed. |
|
Remove Approver |
Remove handlers before the current handler takes action. |
|
Claim |
Claim public tasks. |
|
Mark as Read |
Display whether a task has been viewed. |
|
Reminder |
Notify the handler of the current active task to process it. |
|
Communication |
Communicate with the handler of the current active task. |
|
Terminate |
Terminate a workflow instance at any node. |
Features
Lightweight Yet Powerful
The engine core uses only 8 tables to implement logical data storage. Model structures are stored in JSON format, making them simple and intuitive.
Component-Based Integration
Adopts a component-based design for easy integration into any development platform. Its plug-and-play interface design enables more flexible custom extensions.
Chinese-Style Approval
Supports Chinese-style approval features such as dynamic signer addition, arbitrary rejection, take-back, revocation, read confirmation, and communication.
5. Tech Stack
Structure Overview
The following is a brief introduction to the project's core structure.
Other Notes
-
Implemented using MybatisPlus as the ORM layer.
-
The backend design references the open-source SnakerFlow workflow entity classification.
-
References design concepts from mainstream workflow engines, including Flowable and Camunda.