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(); }