diff --git a/wm-bpm-engine/pom.xml b/wm-bpm-engine/pom.xml
new file mode 100644
index 00000000..da031531
--- /dev/null
+++ b/wm-bpm-engine/pom.xml
@@ -0,0 +1,63 @@
+
+
+ 4.0.0
+
+ com.water
+ wm-parent
+ 1.0.0-SNAPSHOT
+
+ wm-bpm-engine
+ wm-bpm-engine
+ BPM 业务流程引擎模块
+
+
+ com.water
+ wm-common
+
+
+ org.springframework.boot
+ spring-boot-starter-web
+
+
+ com.alibaba.cloud
+ spring-cloud-starter-alibaba-nacos-discovery
+
+
+ com.baomidou
+ mybatis-plus-spring-boot3-starter
+
+
+ cn.dev33
+ sa-token-spring-boot3-starter
+
+
+ org.postgresql
+ postgresql
+
+
+ com.github.xiaoymin
+ knife4j-openapi3-jakarta-spring-boot-starter
+
+
+
+ org.springframework.boot
+ spring-boot-starter-test
+ test
+
+
+ com.h2database
+ h2
+ test
+
+
+
+
+
+ org.springframework.boot
+ spring-boot-maven-plugin
+
+
+
+
diff --git a/wm-bpm-engine/src/main/java/com/water/bpmengine/BpmEngineApplication.java b/wm-bpm-engine/src/main/java/com/water/bpmengine/BpmEngineApplication.java
new file mode 100644
index 00000000..13ca0d39
--- /dev/null
+++ b/wm-bpm-engine/src/main/java/com/water/bpmengine/BpmEngineApplication.java
@@ -0,0 +1,7 @@
+package com.water.bpmengine;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+@SpringBootApplication
+public class BpmEngineApplication {
+ public static void main(String[] args) { SpringApplication.run(BpmEngineApplication.class, args); }
+}
diff --git a/wm-bpm-engine/src/main/java/com/water/bpmengine/controller/BpmEngineController.java b/wm-bpm-engine/src/main/java/com/water/bpmengine/controller/BpmEngineController.java
new file mode 100644
index 00000000..e45ce5c4
--- /dev/null
+++ b/wm-bpm-engine/src/main/java/com/water/bpmengine/controller/BpmEngineController.java
@@ -0,0 +1,77 @@
+package com.water.bpmengine.controller;
+import com.water.common.core.result.R;
+import com.water.bpmengine.entity.*;
+import com.water.bpmengine.service.BpmEngineService;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.*;
+import java.util.*;
+
+@Tag(name = "业务流程引擎")
+@RestController @RequestMapping("/bpm") @RequiredArgsConstructor
+public class BpmEngineController {
+ private final BpmEngineService svc;
+
+ @GetMapping("/definition/list")
+ public R> listDefs(
+ @RequestParam(required=false) String category,
+ @RequestParam(required=false) Integer status) {
+ return R.ok(svc.listDefinitions(category, status));
+ }
+ @PostMapping("/definition")
+ public R createDef(@RequestBody Map req) {
+ return R.ok(svc.createDefinition(req));
+ }
+ @PostMapping("/definition/{id}/publish")
+ public R publish(@PathVariable Long id) {
+ svc.publishDefinition(id); return R.ok("OK");
+ }
+ @PostMapping("/process/start")
+ public R