From 95c01301f65379e7634e4619bf4c49186aa5be41 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期五, 07 二月 2025 14:19:28 +0800
Subject: [PATCH] !644 同步修复一些问题 Merge pull request !644 from 疯狂的狮子Li/dev

---
 ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java |   51 +++++++++++++++++++--------------------------------
 1 files changed, 19 insertions(+), 32 deletions(-)

diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java
index 24f86de..db8ab71 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/FlwInstanceServiceImpl.java
@@ -19,13 +19,14 @@
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.satoken.utils.LoginHelper;
-import org.dromara.warm.flow.core.FlowFactory;
+import org.dromara.warm.flow.core.FlowEngine;
 import org.dromara.warm.flow.core.constant.ExceptionCons;
 import org.dromara.warm.flow.core.dto.FlowParams;
 import org.dromara.warm.flow.core.entity.Definition;
 import org.dromara.warm.flow.core.entity.Instance;
 import org.dromara.warm.flow.core.entity.Task;
 import org.dromara.warm.flow.core.enums.NodeType;
+import org.dromara.warm.flow.core.service.ChartService;
 import org.dromara.warm.flow.core.service.DefService;
 import org.dromara.warm.flow.core.service.InsService;
 import org.dromara.warm.flow.core.service.TaskService;
@@ -34,6 +35,7 @@
 import org.dromara.warm.flow.orm.entity.FlowTask;
 import org.dromara.warm.flow.orm.mapper.FlowHisTaskMapper;
 import org.dromara.warm.flow.orm.mapper.FlowInstanceMapper;
+import org.dromara.workflow.common.ConditionalOnEnable;
 import org.dromara.workflow.common.enums.TaskStatusEnum;
 import org.dromara.workflow.domain.bo.FlowCancelBo;
 import org.dromara.workflow.domain.bo.FlowInstanceBo;
@@ -47,11 +49,9 @@
 import org.dromara.workflow.service.IFlwInstanceService;
 import org.dromara.workflow.service.IFlwTaskService;
 import org.dromara.workflow.utils.WorkflowUtils;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
-import java.io.IOException;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -60,26 +60,20 @@
  *
  * @author may
  */
+@ConditionalOnEnable
 @Slf4j
 @RequiredArgsConstructor
 @Service
 public class FlwInstanceServiceImpl implements IFlwInstanceService {
 
-    @Autowired(required = false)
-    private InsService insService;
-    @Autowired(required = false)
-    private DefService defService;
-    @Autowired(required = false)
-    private TaskService taskService;
-    @Autowired(required = false)
-    private FlowHisTaskMapper flowHisTaskMapper;
-    @Autowired(required = false)
-    private FlowInstanceMapper flowInstanceMapper;
-
+    private final InsService insService;
+    private final DefService defService;
+    private final ChartService chartService;
+    private final TaskService taskService;
+    private final FlowHisTaskMapper flowHisTaskMapper;
+    private final FlowInstanceMapper flowInstanceMapper;
     private final FlowProcessEventHandler flowProcessEventHandler;
-
     private final IFlwTaskService flwTaskService;
-
     private final FlwInstanceMapper flwInstanceMapper;
     private final FlwCategoryMapper flwCategoryMapper;
 
@@ -144,7 +138,7 @@
         queryWrapper.like(StringUtils.isNotBlank(flowInstanceBo.getFlowCode()), "fd.flow_code", flowInstanceBo.getFlowCode());
         if (StringUtils.isNotBlank(flowInstanceBo.getCategory())) {
             List<Long> categoryIds = flwCategoryMapper.selectCategoryIdsByParentId(Convert.toLong(flowInstanceBo.getCategory()));
-            queryWrapper.in("fd.category", categoryIds);
+            queryWrapper.in("fd.category", StreamUtils.toList(categoryIds, Convert::toStr));
         }
         queryWrapper.eq(StringUtils.isNotBlank(flowInstanceBo.getBusinessId()), "fi.business_id", flowInstanceBo.getBusinessId());
         queryWrapper.in(CollUtil.isNotEmpty(flowInstanceBo.getCreateByIds()), "fi.create_by", flowInstanceBo.getCreateByIds());
@@ -255,7 +249,7 @@
             //鎾ら攢
             WorkflowUtils.backTask(message, instance.getId(), applyNodeCode, BusinessStatusEnum.CANCEL.getStatus(), BusinessStatusEnum.CANCEL.getStatus());
             //鍒ゆ柇鎴栫鑺傜偣鏄惁鏈夊涓紝鍙繚鐣欎竴涓�
-            List<Task> currentTaskList = taskService.list(FlowFactory.newTask().setInstanceId(instance.getId()));
+            List<Task> currentTaskList = taskService.list(FlowEngine.newTask().setInstanceId(instance.getId()));
             if (CollUtil.isNotEmpty(currentTaskList)) {
                 if (currentTaskList.size() > 1) {
                     currentTaskList.remove(0);
@@ -291,14 +285,14 @@
      */
     @Override
     public Map<String, Object> flowImage(String businessId) {
-        Map<String, Object> map = new HashMap<>(16);
         FlowInstance flowInstance = this.selectInstByBusinessId(businessId);
-        if (flowInstance == null) {
+        if (ObjectUtil.isNull(flowInstance)) {
             throw new ServiceException(ExceptionCons.NOT_FOUNT_INSTANCE);
         }
+        Long instanceId = flowInstance.getId();
         //杩愯涓殑浠诲姟
         List<FlowHisTaskVo> list = new ArrayList<>();
-        List<FlowTask> flowTaskList = flwTaskService.selectByInstId(flowInstance.getId());
+        List<FlowTask> flowTaskList = flwTaskService.selectByInstId(instanceId);
         if (CollUtil.isNotEmpty(flowTaskList)) {
             List<FlowHisTaskVo> flowHisTaskVos = BeanUtil.copyToList(flowTaskList, FlowHisTaskVo.class);
             for (FlowHisTaskVo flowHisTaskVo : flowHisTaskVos) {
@@ -319,22 +313,15 @@
         }
         //鍘嗗彶浠诲姟
         LambdaQueryWrapper<FlowHisTask> wrapper = Wrappers.lambdaQuery();
-        wrapper.eq(FlowHisTask::getInstanceId, flowInstance.getId());
+        wrapper.eq(FlowHisTask::getInstanceId, instanceId);
         wrapper.eq(FlowHisTask::getNodeType, NodeType.BETWEEN.getKey());
         wrapper.orderByDesc(FlowHisTask::getCreateTime).orderByDesc(FlowHisTask::getUpdateTime);
         List<FlowHisTask> flowHisTasks = flowHisTaskMapper.selectList(wrapper);
         if (CollUtil.isNotEmpty(flowHisTasks)) {
             list.addAll(BeanUtil.copyToList(flowHisTasks, FlowHisTaskVo.class));
         }
-
-        map.put("list", list);
-        try {
-            String flowChart = defService.flowChart(flowInstance.getId());
-            map.put("image", flowChart);
-        } catch (IOException e) {
-            throw new RuntimeException(e);
-        }
-        return map;
+        String flowChart = chartService.chartIns(instanceId);
+        return Map.of("list", list, "image", flowChart);
     }
 
     /**
@@ -357,7 +344,7 @@
      * @param instanceId 瀹炰緥id
      */
     @Override
-    public Map<String, Object> instanceVariable(String instanceId) {
+    public Map<String, Object> instanceVariable(Long instanceId) {
         Map<String, Object> map = new HashMap<>();
         FlowInstance flowInstance = flowInstanceMapper.selectById(instanceId);
         Map<String, Object> variableMap = flowInstance.getVariableMap();

--
Gitblit v1.9.3