diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java index c7dd31125a..fed50ff05e 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/controller/admin/definition/vo/model/simple/BpmSimpleModelNodeVO.java @@ -346,9 +346,9 @@ public class BpmSimpleModelNodeVO { private HttpRequestTriggerSetting httpRequestSetting; /** - * 更新流程表单触发器设置 + * 流程表单触发器设置 */ - private UpdateNormalFormTriggerSetting updateNormalFormSetting; + private NormalFormTriggerSetting normalFormSetting; @Schema(description = "http 请求触发器设置", example = "{}") @Data @@ -378,23 +378,11 @@ public class BpmSimpleModelNodeVO { private List> response; } - @Schema(description = "更新流程表单触发器设置", example = "{}") + @Schema(description = "流程表单触发器设置", example = "{}") @Data - public static class UpdateNormalFormTriggerSetting { + public static class NormalFormTriggerSetting { - @Schema(description = "条件类型", example = "1") - @InEnum(BpmSimpleModeConditionTypeEnum.class) - @NotNull(message = "条件类型不能为空") - private Integer conditionType; - - @Schema(description = "条件表达式", example = "${day>3}") - private String conditionExpression; - - @Schema(description = "条件组", example = "{}") - private ConditionGroups conditionGroups; - - @Schema(description = "更新的表单字段", example = "userName") - @NotEmpty(message = "更新的表单字段不能为空") + @Schema(description = "修改的表单字段", example = "userName") private Map updateFormFields; } } diff --git a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java index 561db886d2..309c11cf83 100644 --- a/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java +++ b/yudao-module-bpm/yudao-module-bpm-biz/src/main/java/cn/iocoder/yudao/module/bpm/framework/flowable/core/util/SimpleModelUtils.java @@ -628,8 +628,6 @@ public class SimpleModelUtils { String conditionExpression = buildConditionExpression(node.getConditionSetting()); return buildBpmnSequenceFlow(sourceId, targetId, node.getId(), node.getName(), conditionExpression); } - - } /** @@ -726,8 +724,8 @@ public class SimpleModelUtils { if (node.getTriggerSetting().getHttpRequestSetting() != null) { addExtensionElementJson(serviceTask, TRIGGER_PARAM, node.getTriggerSetting().getHttpRequestSetting()); } - if (node.getTriggerSetting().getUpdateNormalFormSetting() != null) { - addExtensionElementJson(serviceTask, TRIGGER_PARAM, node.getTriggerSetting().getUpdateNormalFormSetting()); + if (node.getTriggerSetting().getNormalFormSetting() != null) { + addExtensionElementJson(serviceTask, TRIGGER_PARAM, node.getTriggerSetting().getNormalFormSetting()); } } return serviceTask; 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 index 2a1298e9ea..ea38c740c8 100644 --- 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 @@ -1,19 +1,14 @@ 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.UpdateNormalFormTriggerSetting; +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.framework.flowable.core.util.BpmnModelUtils; -import cn.iocoder.yudao.module.bpm.framework.flowable.core.util.SimpleModelUtils; import cn.iocoder.yudao.module.bpm.service.task.BpmProcessInstanceService; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; -import org.flowable.engine.runtime.ProcessInstance; import org.springframework.stereotype.Component; -import java.util.Map; - - /** * BPM 更新流程表单触发器 * @@ -34,19 +29,13 @@ public class BpmUpdateNormalFormTrigger implements BpmTrigger { @Override public void execute(String processInstanceId, String param) { // 1. 解析更新流程表单配置 - UpdateNormalFormTriggerSetting setting = JsonUtils.parseObject(param, UpdateNormalFormTriggerSetting.class); + NormalFormTriggerSetting setting = JsonUtils.parseObject(param, NormalFormTriggerSetting.class); if (setting == null) { log.error("[execute][流程({}) 更新流程表单触发器配置为空]", processInstanceId); return; } - // 2.获取流程变量 - ProcessInstance processInstance = processInstanceService.getProcessInstance(processInstanceId); - Map processVariables = processInstance.getProcessVariables(); - String expression = SimpleModelUtils.buildConditionExpression(setting.getConditionType(), setting.getConditionExpression(), - setting.getConditionGroups()); - - // 3.满足条件,更新流程表单 - if(BpmnModelUtils.evalConditionExpress(processVariables, expression)) { + // 2.更新流程变量 + if (CollUtil.isNotEmpty(setting.getUpdateFormFields())) { processInstanceService.updateProcessInstanceVariables(processInstanceId, setting.getUpdateFormFields()); } }