From 9f028495fa05715919880f6ee6b0ad04db7b4556 Mon Sep 17 00:00:00 2001 From: yinq Date: Mon, 7 Apr 2025 17:18:59 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E4=BA=8B=E4=BB=B6=E6=80=BB=E7=BA=BF?= =?UTF-8?q?=E9=87=87=E7=94=A8kafka=E3=80=81workflow=E9=9B=86=E6=88=90kafka?= =?UTF-8?q?=E3=80=81workflow=E6=9F=A5=E8=AF=A2=E6=8A=A5=E9=94=99=E5=A4=84?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-common/ruoyi-common-bus/pom.xml | 12 ++++---- .../impl/ActProcessInstanceServiceImpl.java | 7 ++++- .../service/impl/ActTaskServiceImpl.java | 9 +++++- .../service/impl/WfFormManageServiceImpl.java | 1 + .../src/main/resources/application.yml | 30 +++++++++++++++++++ 5 files changed, 51 insertions(+), 8 deletions(-) diff --git a/ruoyi-common/ruoyi-common-bus/pom.xml b/ruoyi-common/ruoyi-common-bus/pom.xml index e0256f8..b416133 100644 --- a/ruoyi-common/ruoyi-common-bus/pom.xml +++ b/ruoyi-common/ruoyi-common-bus/pom.xml @@ -17,15 +17,15 @@ - - org.springframework.cloud - spring-cloud-starter-bus-amqp - - - + + + + org.springframework.cloud + spring-cloud-starter-bus-kafka + diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java index af7a9a2..5ea43bf 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActProcessInstanceServiceImpl.java @@ -522,7 +522,12 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService if (CollUtil.isNotEmpty(subTasks)) { subTasks.forEach(e -> taskService.deleteTask(e.getId())); } - runtimeService.bulkDeleteProcessInstances(processInstanceIds, LoginHelper.getUserId() + "删除了当前流程申请"); + try { + //删除流程:ACT_RU_EXECUTION中无数据报错 + runtimeService.bulkDeleteProcessInstances(processInstanceIds, LoginHelper.getUserId() + "删除了当前流程申请"); + } catch (Exception e) { + log.error("删除了当前流程申请:" + e.getMessage(), e); + } // 2.删除历史记录 List historicProcessInstanceList = QueryUtils.hisInstanceQuery(new HashSet<>(processInstanceIds)).list(); if (ObjectUtil.isNotEmpty(historicProcessInstanceList)) { diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java index 4a56b33..1db2e48 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/ActTaskServiceImpl.java @@ -270,7 +270,11 @@ public class ActTaskServiceImpl implements IActTaskService { queryWrapper.eq("t.business_status_", BusinessStatusEnum.WAITING.getStatus()); queryWrapper.eq(TenantHelper.isEnable(), "t.tenant_id_", TenantHelper.getTenantId()); String ids = StreamUtils.join(roleIds, x -> "'" + x + "'"); - queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' and (LINK.USER_ID_ = {0} or ( LINK.GROUP_ID_ IN (" + ids + ") ) ))", userId))); + if (StringUtils.isEmpty(ids)) { + queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' and (LINK.USER_ID_ = {0} ))", userId))); + } else { + queryWrapper.and(w1 -> w1.eq("t.assignee_", userId).or(w2 -> w2.isNull("t.assignee_").apply("exists ( select LINK.ID_ from ACT_RU_IDENTITYLINK LINK where LINK.TASK_ID_ = t.ID_ and LINK.TYPE_ = 'candidate' and (LINK.USER_ID_ = {0} or ( LINK.GROUP_ID_ IN (" + ids + ") ) ))", userId))); + } if (StringUtils.isNotBlank(taskBo.getName())) { queryWrapper.like("t.name_", taskBo.getName()); } @@ -370,6 +374,7 @@ public class ActTaskServiceImpl implements IActTaskService { queryWrapper.like(StringUtils.isNotBlank(taskBo.getProcessDefinitionName()), "t.processDefinitionName", taskBo.getProcessDefinitionName()); queryWrapper.eq(StringUtils.isNotBlank(taskBo.getProcessDefinitionKey()), "t.processDefinitionKey", taskBo.getProcessDefinitionKey()); queryWrapper.eq("t.assignee_", userId); + queryWrapper.orderByAsc("t.ID_"); Page page = actTaskMapper.getTaskFinishByPage(pageQuery.build(), queryWrapper); List taskList = page.getRecords(); @@ -406,6 +411,7 @@ public class ActTaskServiceImpl implements IActTaskService { queryWrapper.eq("t.processDefinitionKey", taskBo.getProcessDefinitionKey()); } queryWrapper.eq("t.assignee_", userId); + queryWrapper.orderByAsc("t.ID_"); Page page = actTaskMapper.getTaskCopyByPage(pageQuery.build(), queryWrapper); List taskList = page.getRecords(); @@ -434,6 +440,7 @@ public class ActTaskServiceImpl implements IActTaskService { queryWrapper.like(StringUtils.isNotBlank(taskBo.getName()), "t.name_", taskBo.getName()); queryWrapper.like(StringUtils.isNotBlank(taskBo.getProcessDefinitionName()), "t.processDefinitionName", taskBo.getProcessDefinitionName()); queryWrapper.eq(StringUtils.isNotBlank(taskBo.getProcessDefinitionKey()), "t.processDefinitionKey", taskBo.getProcessDefinitionKey()); + queryWrapper.orderByAsc("t.ID_"); Page page = actTaskMapper.getTaskFinishByPage(pageQuery.build(), queryWrapper); List taskList = page.getRecords(); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfFormManageServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfFormManageServiceImpl.java index 55e4911..fcea3f9 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfFormManageServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfFormManageServiceImpl.java @@ -76,6 +76,7 @@ public class WfFormManageServiceImpl implements IWfFormManageService { LambdaQueryWrapper lqw = Wrappers.lambdaQuery(); lqw.like(StringUtils.isNotBlank(bo.getFormName()), WfFormManage::getFormName, bo.getFormName()); lqw.eq(StringUtils.isNotBlank(bo.getFormType()), WfFormManage::getFormType, bo.getFormType()); + lqw.orderByAsc(WfFormManage::getFormName); return lqw; } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/resources/application.yml b/ruoyi-modules/ruoyi-workflow/src/main/resources/application.yml index 808604a..ab4e6a0 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/resources/application.yml +++ b/ruoyi-modules/ruoyi-workflow/src/main/resources/application.yml @@ -10,6 +10,36 @@ spring: profiles: # 环境配置 active: @profiles.active@ + kafka: + bootstrap-servers: 119.45.202.115:9092 + producer: + key-serializer: org.apache.kafka.common.serialization.StringSerializer + value-serializer: org.springframework.kafka.support.serializer.JsonSerializer + consumer: + key-deserializer: org.apache.kafka.common.serialization.StringDeserializer + value-deserializer: org.springframework.kafka.support.serializer.JsonDeserializer + properties: + spring.json.trusted.packages: "*" + cloud: + bus: + enabled: true + trace: + enabled: true + kafka: + binder: + brokers: 119.45.202.115:9092 + auto-create-topics: true + configuration: + key.serializer: org.apache.kafka.common.serialization.StringSerializer + value.serializer: org.springframework.kafka.support.serializer.JsonSerializer + key.deserializer: org.apache.kafka.common.serialization.StringDeserializer + value.deserializer: org.springframework.kafka.support.serializer.JsonDeserializer + spring.json.trusted.packages: "*" + acks: all + retries: 3 + batch.size: 16384 + linger.ms: 1 + buffer.memory: 33554432 --- # nacos 配置 spring: