diff --git a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/dto/node/LLmMailSendNodeConfigDto.java b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/dto/node/LLmMailSendNodeConfigDto.java deleted file mode 100644 index 277c4424..00000000 --- a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/dto/node/LLmMailSendNodeConfigDto.java +++ /dev/null @@ -1,38 +0,0 @@ -package org.ruoyi.workflow.dto.node; - -import com.fasterxml.jackson.annotation.JsonProperty; -import lombok.Data; - -/** - * 为大模型返回信息封装的信息DTO(发送邮箱) - */ -@Data -public class LLmMailSendNodeConfigDto { - - /** - * 主题 - */ - private String subject; - - /** - * 内容 - */ - private String content; - - /** - * 收件邮箱 - */ - @JsonProperty("to_mails") - private String toMails; - - /** - * 抄送邮箱 - */ - @JsonProperty("cc_mails") - private String ccMails; - - /** - * 发送类型 - */ - private Integer senderType; -} diff --git a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/workflow/WorkflowEngine.java b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/workflow/WorkflowEngine.java index 379bbb2b..87ab1baf 100644 --- a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/workflow/WorkflowEngine.java +++ b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/workflow/WorkflowEngine.java @@ -184,6 +184,8 @@ public class WorkflowEngine { errorMsg = "并行节点中不能包含条件分�?"; } errorMsg = nodeMessageTemplate + errorMsg; + // 保存会话信息且发送驱动消息事件 + WorkflowMessageUtil.saveWorkflowMessage(wfState, errorMsg); sseEmitterHelper.sendErrorAndComplete(user.getId(), sseEmitter, errorMsg); workflowRuntimeService.updateStatus(wfRuntimeResp.getId(), WORKFLOW_PROCESS_STATUS_FAIL, errorMsg); } diff --git a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/workflow/node/mailSend/MailSendNode.java b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/workflow/node/mailSend/MailSendNode.java index 71688064..f2482096 100644 --- a/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/workflow/node/mailSend/MailSendNode.java +++ b/ruoyi-modules/ruoyi-aiflow/src/main/java/org/ruoyi/workflow/workflow/node/mailSend/MailSendNode.java @@ -1,11 +1,11 @@ package org.ruoyi.workflow.workflow.node.mailSend; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONValidator; import jakarta.mail.internet.MimeMessage; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; -import org.ruoyi.workflow.dto.node.LLmMailSendNodeConfigDto; import org.ruoyi.workflow.entity.WorkflowComponent; import org.ruoyi.workflow.entity.WorkflowNode; import org.ruoyi.workflow.workflow.NodeProcessResult; @@ -15,7 +15,6 @@ import org.ruoyi.workflow.workflow.WorkflowUtil; import org.ruoyi.workflow.workflow.data.NodeIOData; import org.ruoyi.workflow.workflow.node.AbstractWfNode; import org.ruoyi.workflow.workflow.node.enmus.NodeMessageTemplateEnum; -import org.springframework.beans.BeanUtils; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSenderImpl; import org.springframework.mail.javamail.MimeMessageHelper; @@ -42,9 +41,10 @@ public class MailSendNode extends AbstractWfNode { String input = getDataFromInput(inputs); // 判断是否为JSON格式(LLM输出转换 由LLM生成格式) if (StringUtils.isNotBlank(input) && isJson(input)) { - LLmMailSendNodeConfigDto lLmMailSendNodeConfigDto = JSONObject.parseObject(input, LLmMailSendNodeConfigDto.class); - // 保留原本Sender和Smtp对象 - BeanUtils.copyProperties(lLmMailSendNodeConfigDto, config); + JSONObject inputJson = JSON.parseObject(input); + JSONObject configJson = (JSONObject) JSON.toJSON(config); + configJson.putAll(inputJson); + config = configJson.toJavaObject(MailSendNodeConfig.class); } // 安全获取模板(使用 defaultString 避免 null)