From 34981c30a78e8bbd7791131059a9210f9928b62c Mon Sep 17 00:00:00 2001
From: 刘光辉 <347230014@qq.com>
Date: 星期四, 17 九月 2026 09:24:09 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master' into master
---
jnpf-flowable/jnpf-flowable-controller/src/main/java/jnpf/flowable/controller/TriggerController.java | 124 +++++++++++++++++++++++++++++++++++++++++
1 files changed, 124 insertions(+), 0 deletions(-)
diff --git a/jnpf-flowable/jnpf-flowable-controller/src/main/java/jnpf/flowable/controller/TriggerController.java b/jnpf-flowable/jnpf-flowable-controller/src/main/java/jnpf/flowable/controller/TriggerController.java
new file mode 100644
index 0000000..5aeb00d
--- /dev/null
+++ b/jnpf-flowable/jnpf-flowable-controller/src/main/java/jnpf/flowable/controller/TriggerController.java
@@ -0,0 +1,124 @@
+package jnpf.flowable.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import io.swagger.v3.oas.annotations.tags.Tag;
+import jnpf.base.ActionResult;
+import jnpf.base.UserInfo;
+import jnpf.exception.WorkFlowException;
+import jnpf.flowable.entity.TemplateJsonEntity;
+import jnpf.flowable.entity.TemplateNodeEntity;
+import jnpf.flowable.enums.NodeEnum;
+import jnpf.flowable.enums.TemplateJsonStatueEnum;
+import jnpf.flowable.model.trigger.TriggerDataFo;
+import jnpf.flowable.model.trigger.TriggerDataModel;
+import jnpf.flowable.model.trigger.TriggerModel;
+import jnpf.flowable.service.TemplateJsonService;
+import jnpf.flowable.service.TemplateNodeService;
+import jnpf.flowable.util.OperatorUtil;
+import jnpf.flowable.TriggerApi;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.List;
+import java.util.stream.Collectors;
+
+/**
+ * 绫荤殑鎻忚堪
+ *
+ * @author JNPF@YinMai Info. Co., Ltd
+ * @version 5.0.x
+ * @since 2024/9/11 10:39
+ */
+@Tag(name = "娴佺▼瑙﹀彂", description = "trigger")
+@RestController
+@RequestMapping("/trigger")
+@RequiredArgsConstructor
+public class TriggerController implements TriggerApi {
+
+ private final OperatorUtil operatorUtil;
+
+
+ private final TemplateNodeService templateNodeService;
+
+ private final TemplateJsonService templateJsonService;
+
+ /**
+ * 浠诲姟娴佺▼瑙﹀彂
+ *
+ * @param model 鍙傛暟
+ */
+ @PostMapping("/Execute")
+ public ActionResult<Object> execute(@RequestBody TriggerModel model) {
+ for (TriggerDataModel dataModel : model.getDataList()) {
+ try {
+ operatorUtil.handleTrigger(dataModel, model.getUserInfo());
+ } catch (WorkFlowException e) {
+ e.getStackTrace();
+ }
+ }
+ return ActionResult.success();
+ }
+
+ /**
+ * 瀹氭椂瑙﹀彂
+ *
+ * @param triggerModel 鍙傛暟
+ */
+ @PostMapping("/TimeExecute")
+ public ActionResult<Object> timeExecute(@RequestBody TriggerModel triggerModel) {
+ try {
+ operatorUtil.handleTimeTrigger(triggerModel);
+ } catch (WorkFlowException e) {
+ e.getStackTrace();
+ }
+ return ActionResult.success();
+ }
+
+ /**
+ * 閫氱煡瑙﹀彂
+ *
+ * @param triggerModel 鍙傛暟
+ */
+ @PostMapping("/MsgExecute")
+ public ActionResult<Object> msgExecute(@RequestBody TriggerModel triggerModel) {
+ String msgId = triggerModel.getId();
+ UserInfo userInfo = triggerModel.getUserInfo();
+
+ QueryWrapper<TemplateNodeEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.lambda().eq(TemplateNodeEntity::getNodeType, NodeEnum.NOTICE_TRIGGER.getType())
+ .eq(TemplateNodeEntity::getFormId, msgId);
+ List<TemplateNodeEntity> triggerNodeList = templateNodeService.list(queryWrapper);
+ if (CollUtil.isNotEmpty(triggerNodeList)) {
+ List<String> flowIds = triggerNodeList.stream().map(TemplateNodeEntity::getFlowId).distinct().collect(Collectors.toList());
+
+ QueryWrapper<TemplateJsonEntity> wrapper = new QueryWrapper<>();
+ wrapper.lambda().eq(TemplateJsonEntity::getState, TemplateJsonStatueEnum.START.getCode()).in(TemplateJsonEntity::getId, flowIds);
+ List<TemplateJsonEntity> jsonEntityList = templateJsonService.list(wrapper);
+
+ for (TemplateNodeEntity triggerNode : triggerNodeList) {
+ String flowId = triggerNode.getFlowId();
+ TemplateJsonEntity jsonEntity = jsonEntityList.stream().filter(e -> ObjectUtil.equals(e.getId(), flowId)).findFirst().orElse(null);
+ if (null == jsonEntity) {
+ continue;
+ }
+ try {
+ operatorUtil.msgTrigger(triggerNode, userInfo);
+ } catch (WorkFlowException e) {
+ e.getStackTrace();
+ }
+ }
+ }
+ return ActionResult.success();
+ }
+
+ @Override
+ @PostMapping("/getTriggerDataModel")
+ public List<TriggerDataModel> getTriggerDataModel(@RequestBody TriggerDataFo fo) {
+ return operatorUtil.getTriggerDataModel(fo);
+ }
+}
--
Gitblit v1.8.0