From 6347f11b52968b631db8476ca44bcdc9ea2b9af8 Mon Sep 17 00:00:00 2001
From: gssong <1742057357@qq.com>
Date: Sat, 30 Sep 2023 18:08:32 +0800
Subject: [PATCH] =?UTF-8?q?update=20=E5=8D=87=E7=BA=A7flowable7.0,?=
=?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=B8=9A=E5=8A=A1=E5=8D=95=E6=8D=AE=E5=88=A0?=
=?UTF-8?q?=E9=99=A4=E6=B5=81=E7=A8=8B=E4=BF=A1=E6=81=AF?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
pom.xml | 2 +-
.../controller/WfBusinessFormController.java | 2 +-
.../service/IWfBusinessFormService.java | 2 +-
.../impl/WfBusinessFormServiceImpl.java | 29 ++++++++++---------
.../service/impl/WorkflowUserServiceImpl.java | 4 +++
5 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/pom.xml b/pom.xml
index 5a16a1fcc..817f41c1a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,7 +59,7 @@
1.3.0
- 7.0.0.M2
+ 7.0.0
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfBusinessFormController.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfBusinessFormController.java
index 153fa462b..8eef136a3 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfBusinessFormController.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/controller/WfBusinessFormController.java
@@ -101,6 +101,6 @@ public class WfBusinessFormController extends BaseController {
@DeleteMapping("/{ids}")
public R remove(@NotEmpty(message = "主键不能为空")
@PathVariable Long[] ids) {
- return toAjax(wfBusinessFormService.deleteWithValidByIds(List.of(ids), true));
+ return toAjax(wfBusinessFormService.deleteWithValidByIds(List.of(ids)));
}
}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfBusinessFormService.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfBusinessFormService.java
index 010e04111..b042c8136 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfBusinessFormService.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/IWfBusinessFormService.java
@@ -45,5 +45,5 @@ public interface IWfBusinessFormService {
/**
* 校验并批量删除发起流程信息
*/
- Boolean deleteWithValidByIds(Collection ids, Boolean isValid);
+ Boolean deleteWithValidByIds(Collection ids);
}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfBusinessFormServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfBusinessFormServiceImpl.java
index bc92787c6..53af1ba0a 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfBusinessFormServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfBusinessFormServiceImpl.java
@@ -1,5 +1,6 @@
package org.dromara.workflow.service.impl;
+import cn.hutool.core.collection.CollUtil;
import com.fasterxml.jackson.core.type.TypeReference;
import org.dromara.common.core.utils.DateUtils;
import org.dromara.common.core.utils.MapstructUtils;
@@ -12,9 +13,12 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor;
+import org.dromara.workflow.domain.ActHiProcinst;
import org.dromara.workflow.domain.WfFormDefinition;
import org.dromara.workflow.domain.vo.WfFormDefinitionVo;
import org.dromara.workflow.mapper.WfFormDefinitionMapper;
+import org.dromara.workflow.service.IActHiProcinstService;
+import org.dromara.workflow.service.IActProcessInstanceService;
import org.dromara.workflow.utils.WorkflowUtils;
import org.springframework.stereotype.Service;
import org.dromara.workflow.domain.bo.WfBusinessFormBo;
@@ -22,10 +26,12 @@ import org.dromara.workflow.domain.vo.WfBusinessFormVo;
import org.dromara.workflow.domain.WfBusinessForm;
import org.dromara.workflow.mapper.WfBusinessFormMapper;
import org.dromara.workflow.service.IWfBusinessFormService;
+import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Map;
import java.util.Collection;
+import java.util.stream.Collectors;
/**
* 发起流程Service业务层处理
@@ -38,8 +44,9 @@ import java.util.Collection;
public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
private final WfBusinessFormMapper baseMapper;
-
private final WfFormDefinitionMapper wfFormDefinitionMapper;
+ private final IActProcessInstanceService iActProcessInstanceService;
+ private final IActHiProcinstService iActHiProcinstService;
/**
* 查询发起流程
@@ -64,7 +71,7 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
LambdaQueryWrapper lqw = buildQueryWrapper(bo);
Page result = baseMapper.selectVoPage(pageQuery.build(), lqw);
List records = result.getRecords();
- WorkflowUtils.setProcessInstanceListVo(records,StreamUtils.toList(records, e -> String.valueOf(e.getId())),"id");
+ WorkflowUtils.setProcessInstanceListVo(records, StreamUtils.toList(records, e -> String.valueOf(e.getId())), "id");
return TableDataInfo.build(result);
}
@@ -90,7 +97,7 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
@Override
public WfBusinessForm insertByBo(WfBusinessFormBo bo) {
WfBusinessForm add = MapstructUtils.convert(bo, WfBusinessForm.class);
- validEntityBeforeSave(add);
+ //规则自行修改
add.setApplyCode(DateUtils.dateTimeNow());
boolean flag = baseMapper.insert(add) > 0;
if (flag) {
@@ -110,7 +117,6 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
@Override
public WfBusinessForm updateByBo(WfBusinessFormBo bo) {
WfBusinessForm update = MapstructUtils.convert(bo, WfBusinessForm.class);
- validEntityBeforeSave(update);
baseMapper.updateById(update);
if (StringUtils.isNotBlank(update.getContentValue())) {
Map variable = JsonUtils.parseObject(update.getContentValue(), new TypeReference<>() {
@@ -120,20 +126,15 @@ public class WfBusinessFormServiceImpl implements IWfBusinessFormService {
return update;
}
- /**
- * 保存前的数据校验
- */
- private void validEntityBeforeSave(WfBusinessForm entity) {
- //TODO 做一些数据校验,如唯一约束
- }
-
/**
* 批量删除发起流程
*/
@Override
- public Boolean deleteWithValidByIds(Collection ids, Boolean isValid) {
- if (isValid) {
- //TODO 做一些业务上的校验,判断是否需要校验
+ @Transactional(rollbackFor = Exception.class)
+ public Boolean deleteWithValidByIds(Collection ids) {
+ List actHiProcinsts = iActHiProcinstService.selectByBusinessKeyIn(StreamUtils.toList(ids, String::valueOf));
+ if (CollUtil.isNotEmpty(actHiProcinsts)) {
+ iActProcessInstanceService.deleteRuntimeProcessAndHisInst(actHiProcinsts.stream().map(ActHiProcinst::getId).collect(Collectors.toList()));
}
return baseMapper.deleteBatchIds(ids) > 0;
}
diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java
index ebdb2b74e..4cb658ccd 100644
--- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java
+++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowUserServiceImpl.java
@@ -1,5 +1,6 @@
package org.dromara.workflow.service.impl;
+import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -182,6 +183,9 @@ public class WorkflowUserServiceImpl implements IWorkflowUserService {
*/
@Override
public List getUserListByIds(List userIds) {
+ if (CollUtil.isEmpty(userIds)) {
+ return Collections.emptyList();
+ }
LambdaQueryWrapper queryWrapper = Wrappers.lambdaQuery();
//检索条件
queryWrapper.eq(SysUser::getStatus, UserStatus.OK.getCode());