From 5318c8e68eb34cfa48ff6ae92861242eac70760e Mon Sep 17 00:00:00 2001 From: songgaoshuai <1742057357@qq.com> Date: Fri, 25 Aug 2023 16:04:41 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E8=B0=83=E6=95=B4=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=88=86=E7=B1=BB=E5=90=8E=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=B5=81=E7=A8=8B=E5=88=86=E7=B1=BB=E7=BC=96=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/TestLeaveServiceImpl.java | 2 ++ .../impl/ActProcessInstanceServiceImpl.java | 1 + .../service/impl/WfCategoryServiceImpl.java | 22 +++++++++++++++++++ .../dromara/workflow/utils/WorkflowUtils.java | 1 - 4 files changed, 25 insertions(+), 1 deletion(-) diff --git a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestLeaveServiceImpl.java b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestLeaveServiceImpl.java index e69a83001..057bff8e9 100644 --- a/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestLeaveServiceImpl.java +++ b/ruoyi-modules/ruoyi-demo/src/main/java/org/dromara/demo/service/impl/TestLeaveServiceImpl.java @@ -18,6 +18,7 @@ import org.dromara.demo.domain.vo.TestLeaveVo; import org.dromara.demo.domain.TestLeave; import org.dromara.demo.mapper.TestLeaveMapper; import org.dromara.demo.service.ITestLeaveService; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Map; @@ -112,6 +113,7 @@ public class TestLeaveServiceImpl implements ITestLeaveService { * 批量删除请假 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean deleteWithValidByIds(Collection ids) { List idList = StreamUtils.toList(ids, String::valueOf); iActProcessInstanceService.deleteRuntimeProcessAndHisInstByBusinessKeys(idList); 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 53bae028e..bc8b791e4 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 @@ -430,6 +430,7 @@ public class ActProcessInstanceServiceImpl implements IActProcessInstanceService * @param processInstanceIds 流程实例id */ @Override + @Transactional(rollbackFor = Exception.class) public boolean deleteFinishProcessAndHisInst(List processInstanceIds) { try { historyService.bulkDeleteHistoricProcessInstances(processInstanceIds); diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfCategoryServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfCategoryServiceImpl.java index 1ce4e052f..a72086d21 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfCategoryServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WfCategoryServiceImpl.java @@ -5,12 +5,17 @@ import org.dromara.common.core.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; +import org.flowable.engine.RepositoryService; +import org.flowable.engine.repository.Deployment; +import org.flowable.engine.repository.Model; +import org.flowable.engine.repository.ProcessDefinition; import org.springframework.stereotype.Service; import org.dromara.workflow.domain.bo.WfCategoryBo; import org.dromara.workflow.domain.vo.WfCategoryVo; import org.dromara.workflow.domain.WfCategory; import org.dromara.workflow.mapper.WfCategoryMapper; import org.dromara.workflow.service.IWfCategoryService; +import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Collection; @@ -27,6 +32,8 @@ public class WfCategoryServiceImpl implements IWfCategoryService { private final WfCategoryMapper baseMapper; + private final RepositoryService repositoryService; + /** * 查询流程分类 */ @@ -70,9 +77,24 @@ public class WfCategoryServiceImpl implements IWfCategoryService { * 修改流程分类 */ @Override + @Transactional(rollbackFor = Exception.class) public Boolean updateByBo(WfCategoryBo bo) { WfCategory update = MapstructUtils.convert(bo, WfCategory.class); validEntityBeforeSave(update); + WfCategoryVo wfCategoryVo = baseMapper.selectVoById(bo.getId()); + List processDefinitionList = repositoryService.createProcessDefinitionQuery().processDefinitionCategory(wfCategoryVo.getCategoryCode()).list(); + for (ProcessDefinition processDefinition : processDefinitionList) { + repositoryService.setProcessDefinitionCategory(processDefinition.getId(),bo.getCategoryCode()); + } + List deploymentList = repositoryService.createDeploymentQuery().deploymentCategory(wfCategoryVo.getCategoryCode()).list(); + for (Deployment deployment : deploymentList) { + repositoryService.setDeploymentCategory(deployment.getId(),bo.getCategoryCode()); + } + List modelList = repositoryService.createModelQuery().modelCategory(wfCategoryVo.getCategoryCode()).list(); + for (Model model : modelList) { + model.setCategory(bo.getCategoryCode()); + repositoryService.saveModel(model); + } return baseMapper.updateById(update) > 0; } diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java index f98ca6374..14287ca2d 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/utils/WorkflowUtils.java @@ -277,7 +277,6 @@ public class WorkflowUtils { HistoricTaskInstance historicTaskInstance = PROCESS_ENGINE.getHistoryService().createHistoricTaskInstanceQuery().taskId(taskId).taskTenantId(TenantHelper.getTenantId()).singleResult(); HistoricProcessInstance historicProcessInstance = PROCESS_ENGINE.getHistoryService().createHistoricProcessInstanceQuery() .processInstanceId(historicTaskInstance.getProcessInstanceId()).processInstanceTenantId(TenantHelper.getTenantId()).singleResult(); - return historicProcessInstance.getBusinessStatus(); }