[Open-source] Open-source Dingding workflow designer source code, front-end based on wflow project creation, 100% open-source

Open SourceProcess Management
2026-06-28 02:30 2 次浏览 • 0 次下载 0KB
[Open-source] Open-source Dingding workflow designer source code, front-end based on wflow project creation, 100% open-source

1. Project Overview

Flowable Activiti DINGDING-MID Open-source Dingding-style workflow designer source code Front-end based on wflow project creation Compatible with wflow commercial version project I open-source it without charge 100% open-source Back-end can be based on Flowable 56 and Activiti 567 versions

2. Open Source License

Licensed under GPL-3.0

3. Screenshots

Open-source version overview

Work area panel

Form management

Workflow form management, supports grouped and single form drag-and-drop sorting

Form basic settings

Form designer

Supports column layout, detail table, and multiple basic components, supports custom component development

Workflow designer

Arbitrary condition hierarchical approval process design, approval nodes support multiple business type settings, supports process validation

Custom approval conditions

Custom complex transfer conditions

Visualized process logic branching conditions

Supports multiple types of business nodes, supports configuration validation, flexible configuration

Supports unlimited nested levels

Automatic validation settings, list all error prompts

Condition node priority dynamic drag-and-drop, real-time refresh

4. Feature Overview

The following content is the original text quoted by dingding-mid author:

DINGDING-MID Chinese-style traditional workflow engine open-source benchmark (Activiti 567 Flowable 56, Camunda7)

Before introducing this project, I want to discuss with everyone the business framework and technical framework problems, as well as the many problems of workflow

I think these words are more useful than this project's source code

That's a long time ago...
Recalling in the past few years of JavaEE journey, my teacher when explaining Struts2 framework (that was still SSH's era) mentioned a concept, which I remember vividly
What is software? What is a framework?

Software (i.e. various systems made for companies) = Application components (unchanged) + Business components (changing)

Application components form the framework, i.e. the framework is a half-finished software!

Define a concept first Frameworks are divided into technical frameworks and business frameworks
List several frameworks in the Java field
SpringBoot Spring MyBatis SpringMVC Hibernate
This type of framework can be understood as a pure technical framework
Download it from GitHub It has no relationship with the business logic of any system we will do in the future
At the same time, they can only be considered as a certain layer in system layer development, for example, MyBatis is only the persistence layer (Manager, Dao) SpringMVC (Action, Controller)
However, you need to understand that
Work flow frameworks (JBPM, Activiti, Flowable, Camunda, Zeebe)
are not just technical frameworks, but can also be considered as business frameworks from another angle
Why do you say so? Because work flow has indeed solved some difficult problems in approval and business arrangement
In the approval flow field:
Work flow frameworks provide the core code for the entire process diagram to run, which is more flexible than traditional state machines
In addition, it directly solves some common business code implementation in work flow systems
For example: process jump and rejection, withdrawal, approval transfer, delegation, approval process add signature, subtract signature, process migration, my pending, my completed, I initiated, etc. common pain points and demands
And work flow is not a certain layer in system layer development, it connects dozens of tables by itself, it is a complete project that solves the pain points of approval field/business arrangement system
Like us doing business systems, the possibility of secondary development frameworks is very small in general
For example, like Spring, we can only define some BeanFactory FactoryBean and some Processor
For example, like MyBatis, we can only define some Plugin Interceptor
However, these things do not change the original source code, but only add some things
But like work flow frameworks, it is different, for example, Activiti 567
Its framework has not implemented the Chinese-style dynamic approval jump and rejection (note: not through the flowchart drawing to jump and reject, I mean it is not connected and can jump, want to jump where to jump)
Can imagine, we ourselves to implement the process jump and rejection is quite difficult, need to be familiar with the Activiti underlying use of some classes
Such as ExecutionEntity TaskEntity CommandContext XXXAgenda and so on
Above I want to express the meaning is
  • Workflow framework is a technical framework + business framework
  • Secondary development of workflow framework is quite technically challenging
This has caused
Various Spring MyBatis source code videos are numerous as stars, while in-depth explanation of workflow videos are few in China (mainly because it is quite technically challenging, and because workflow and business will produce relationships)
Second, Chinese-style process basically belongs to the demand in mainland China, there is no such demand in foreign countries, such as process jump, rejection, so in Activiti, JBPM era, it is more painful
Previous frameworks had issues, we could search for solutions on StackOverFlow, but this method wouldn't work in workflow frameworks.
Thirdly, workflow frameworks themselves require operation on dozens of tables, their internal logic is a black box to us.
However, other systems with our own business code are white boxes (because we wrote them ourselves).
Once there's an issue within the workflow, we have to read its source code, which is another reason why workflow frameworks are complex.

Therefore, there are currently no good open-source workflow systems in China. Under this background, this system is intentionally open-sourced for everyone to learn and use.

Finally, give several suggestions to Java developers of the learning process engine framework (Activiti567, Flowable56, Camunda7, Zeebe8)

1> Absolutely do not think that Activiti has not provided the corresponding table query API, so it cannot be completed
We can write out all his table Mappers by ourselves, and check them by ourselves, but we need to pay attention to, we need to look at how Activiti's index is built first,
to prevent ourselves from writing causing the index to be invalid, causing the query efficiency to be slow (do not write update SQL by ourselves, can be updated through CMD, because he has optimistic lock version column, the Mapper written by ourselves is only used for query, recommended)2> We must definitely print out his execution SQL, so we can know how to optimize, because the workflow itself, for example, a very small function,
will at least operate on dozens of tables such as start workflow, so it must be noted that its performance optimization, for those who are not strong in SQL, can look at how it performs multi-table join after understanding the table structure of Activiti.
do not think that querying data from the database represents the advancement of workflow, such as this kind of data queried from the database, it is only the entry of Activiti, and it does not meet the requirements of the product at all.
for example, a slightly more difficult function of Activiti (Chinese-style process) such as arbitrary process jump, function, it is equivalent to a very difficult function, to complete this function, most of the operations are not tables, but some advanced classes.
only the data is finally transferred to the database after being processed.

5. Tech Stack

development

please visit the detailed documentation at wflow documentation.

special note: the paths where the source code, JDK, MySQL, Redis, etc. are stored are prohibited from containing Chinese characters, spaces, special characters, etc.

Environment Requirements

official recommendation: JDK version should not be lower than 1.8.0_281Version, can be usedOpenJDK 8、Alibaba Dragonwell 8、BiShengJDK 8

Project

Recommended version

Description

JDK

1.8.0_281

JAVA environment dependency (need to configure environment variables)

Maven

3.6.3

Project build (need to configure environment variables)

Redis

3.2.100(Windows)/6.0.x(Linux,Mac)


MySQL

5.7.x+

Database, choose one (default)

SQLServer

2012+

Database, choose one

Oracle

11g+

Database, choose one

PostgreSQL

12+

Database, choose one

Tool Recommendation

To prevent Maven from failing to download, please use the following IDE version

IDE Version

Maven Version

IDEA 2020 and above versions

Maven 3.6.3 and above versions

IDE Plugin

  • Lombok
  • Alibaba Java Coding Guidelines
  • MybatisX

Environment Configuration

  • Opendingding-mid\src\main\resources\application.yml
Environment Variables
dev development environment test test environment preview pre-release environment pro production environment
  # Environment dev|test|pro|preview
  profiles:
  active: dev
  • Openapplication-x.yml(xIndicates environment variables, need to configure the following server port (port) Database connection Redis

Start the Project

  • dingding-mid\src\main\java\com\dingding\mid\DingDingAdminApplication.java, right-click to run

Project Release

  • Click on the right sideIDEAClick on the right sideMaven-dingding-mid(root)-LifecycleDouble-click in the middlecleanClear the items below
  • Double ClickpackagePack Project
  • Open Project Directory, Open in Turndingding-mid\target, will be openeddingding-mid-{version}-RELEASE.jarUpload to server

swagger interface documentation

  • http://localhost:10000/swagger-ui/
#1
资源直链https://gitee.com/gailunJAVA/dingding-mid-business-java
去下载
星河码客

发现和分享优质开源项目,传承互联网精神,为开发者服务。

关于本站

联系我们

微信/广告合作:ITcloub (备注星河码客)

免责声明:本站资源版权归原作者所有,仅供学习与交流。如有侵权,请通过「关于我们 - 侵权投诉」联系删除。

Powered by Nuxt · Deployed on Cloudflare