Просмотр исходного кода

fix 修复 新建租户未复制工作流相关数据问题

疯狂的狮子Li 1 год назад
Родитель
Сommit
6c10bc8860

+ 70 - 0
ruoyi-api/ruoyi-api-workflow/src/main/java/org/dromara/workflow/api/RemoteWorkflowServiceMock.java

@@ -0,0 +1,70 @@
+package org.dromara.workflow.api;
+
+import lombok.extern.slf4j.Slf4j;
+import org.dromara.workflow.api.domain.RemoteCompleteTask;
+import org.dromara.workflow.api.domain.RemoteStartProcess;
+import org.dromara.workflow.api.domain.RemoteStartProcessReturn;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 工作流服务(降级处理)
+ *
+ * @author Lion Li
+ */
+@Slf4j
+public class RemoteWorkflowServiceMock implements RemoteWorkflowService {
+
+    @Override
+    public boolean deleteInstance(List<Long> businessIds) {
+        log.warn("服务调用异常 -> 降级处理");
+        return false;
+    }
+
+    @Override
+    public String getBusinessStatusByTaskId(Long taskId) {
+        log.warn("服务调用异常 -> 降级处理");
+        return null;
+    }
+
+    @Override
+    public String getBusinessStatus(String businessId) {
+        log.warn("服务调用异常 -> 降级处理");
+        return null;
+    }
+
+    @Override
+    public void setVariable(Long instanceId, Map<String, Object> variable) {
+        log.warn("服务调用异常 -> 降级处理");
+    }
+
+    @Override
+    public Map<String, Object> instanceVariable(Long instanceId) {
+        log.warn("服务调用异常 -> 降级处理");
+        return null;
+    }
+
+    @Override
+    public Long getInstanceIdByBusinessId(String businessId) {
+        log.warn("服务调用异常 -> 降级处理");
+        return null;
+    }
+
+    @Override
+    public void syncDef(String tenantId) {
+        log.warn("服务调用异常 -> 降级处理");
+    }
+
+    @Override
+    public RemoteStartProcessReturn startWorkFlow(RemoteStartProcess startProcess) {
+        log.warn("服务调用异常 -> 降级处理");
+        return null;
+    }
+
+    @Override
+    public boolean completeTask(RemoteCompleteTask completeTask) {
+        log.warn("服务调用异常 -> 降级处理");
+        return false;
+    }
+}

+ 6 - 0
ruoyi-modules/ruoyi-system/pom.xml

@@ -104,6 +104,12 @@
             <artifactId>ruoyi-api-resource</artifactId>
         </dependency>
 
+        <!-- RuoYi Api System -->
+        <dependency>
+            <groupId>org.dromara</groupId>
+            <artifactId>ruoyi-api-workflow</artifactId>
+        </dependency>
+
     </dependencies>
 
     <build>

+ 9 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysTenantServiceImpl.java

@@ -1,15 +1,16 @@
 package org.dromara.system.service.impl;
 
-import cn.hutool.crypto.digest.BCrypt;
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.convert.Convert;
 import cn.hutool.core.util.ObjectUtil;
 import cn.hutool.core.util.RandomUtil;
+import cn.hutool.crypto.digest.BCrypt;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.RequiredArgsConstructor;
+import org.apache.dubbo.config.annotation.DubboReference;
 import org.dromara.common.core.constant.CacheNames;
 import org.dromara.common.core.constant.Constants;
 import org.dromara.common.core.constant.SystemConstants;
@@ -29,6 +30,7 @@ import org.dromara.system.domain.bo.SysTenantBo;
 import org.dromara.system.domain.vo.SysTenantVo;
 import org.dromara.system.mapper.*;
 import org.dromara.system.service.ISysTenantService;
+import org.dromara.workflow.api.RemoteWorkflowService;
 import org.springframework.cache.annotation.CacheEvict;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.stereotype.Service;
@@ -57,6 +59,9 @@ public class SysTenantServiceImpl implements ISysTenantService {
     private final SysDictDataMapper dictDataMapper;
     private final SysConfigMapper configMapper;
 
+    @DubboReference(mock = "true")
+    private RemoteWorkflowService remoteWorkflowService;
+
     /**
      * 查询租户
      */
@@ -206,6 +211,9 @@ public class SysTenantServiceImpl implements ISysTenantService {
             config.setUpdateTime(null);
         }
         configMapper.insertBatch(sysConfigList);
+
+        // 新增租户流程定义
+        remoteWorkflowService.syncDef(tenantId);
         return true;
     }