diff --git a/pom.xml b/pom.xml
index 990cdb148..82246d354 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
https://github.com/YunaiV/ruoyi-vue-pro
- 2.4.0-SNAPSHOT
+ 2.4.1-SNAPSHOT
17
${java.version}
diff --git a/yudao-dependencies/pom.xml b/yudao-dependencies/pom.xml
index 2f867d3ef..cebeb2b78 100644
--- a/yudao-dependencies/pom.xml
+++ b/yudao-dependencies/pom.xml
@@ -14,7 +14,7 @@
https://github.com/YunaiV/ruoyi-vue-pro
- 2.4.0-SNAPSHOT
+ 2.4.1-SNAPSHOT
1.6.0
3.4.1
diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/BpmUpdateNormalFormTrigger.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/BpmUpdateNormalFormTrigger.java
new file mode 100644
index 000000000..deab1f5e3
--- /dev/null
+++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/service/task/trigger/BpmUpdateNormalFormTrigger.java
@@ -0,0 +1,44 @@
+package cn.iocoder.yudao.module.bpm.service.task.trigger;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
+import cn.iocoder.yudao.module.bpm.controller.admin.definition.vo.model.simple.BpmSimpleModelNodeVO.TriggerSetting.NormalFormTriggerSetting;
+import cn.iocoder.yudao.module.bpm.enums.definition.BpmTriggerTypeEnum;
+import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService;
+import jakarta.annotation.Resource;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+// TODO @jason:改成 BpmFormUpdateTrigger
+/**
+ * BPM 更新流程表单触发器
+ *
+ * @author jason
+ */
+@Component
+@Slf4j
+public class BpmUpdateNormalFormTrigger implements BpmTrigger {
+
+ @Resource
+ private BpmProcessInstanceService processInstanceService;
+
+ @Override
+ public BpmTriggerTypeEnum getType() {
+ return BpmTriggerTypeEnum.UPDATE_NORMAL_FORM;
+ }
+
+ @Override
+ public void execute(String processInstanceId, String param) {
+ // 1. 解析更新流程表单配置
+ NormalFormTriggerSetting setting = JsonUtils.parseObject(param, NormalFormTriggerSetting.class);
+ if (setting == null) {
+ log.error("[execute][流程({}) 更新流程表单触发器配置为空]", processInstanceId);
+ return;
+ }
+ // 2.更新流程变量
+ if (CollUtil.isNotEmpty(setting.getUpdateFormFields())) {
+ processInstanceService.updateProcessInstanceVariables(processInstanceId, setting.getUpdateFormFields());
+ }
+ }
+
+}