From f1208474f771a1c233d7425c8ed13fbaa0d521ac Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 12 三月 2025 09:35:13 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/5.X' into 5.X --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java | 133 ++++++++++++++++++++++++-------------------- 1 files changed, 72 insertions(+), 61 deletions(-) diff --git a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java index f75a188..f8a20b5 100644 --- a/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java +++ b/ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java @@ -1,14 +1,20 @@ package org.dromara.workflow.service.impl; -import cn.hutool.core.util.StrUtil; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; +import org.dromara.common.core.domain.dto.CompleteTaskDTO; +import org.dromara.common.core.domain.dto.StartProcessDTO; +import org.dromara.common.core.domain.dto.StartProcessReturnDTO; import org.dromara.common.core.service.WorkflowService; -import org.dromara.workflow.domain.ActHiProcinst; -import org.dromara.workflow.service.IActHiProcinstService; -import org.dromara.workflow.service.IActProcessInstanceService; -import org.dromara.workflow.utils.WorkflowUtils; -import org.flowable.engine.RuntimeService; -import org.springframework.beans.factory.annotation.Autowired; +import org.dromara.common.core.utils.StringUtils; +import org.dromara.warm.flow.orm.entity.FlowInstance; +import org.dromara.workflow.common.ConditionalOnEnable; +import org.dromara.workflow.domain.bo.CompleteTaskBo; +import org.dromara.workflow.domain.bo.StartProcessBo; +import org.dromara.workflow.service.IFlwDefinitionService; +import org.dromara.workflow.service.IFlwInstanceService; +import org.dromara.workflow.service.IFlwTaskService; import org.springframework.stereotype.Service; import java.util.List; @@ -19,23 +25,24 @@ * * @author may */ +@ConditionalOnEnable @RequiredArgsConstructor @Service public class WorkflowServiceImpl implements WorkflowService { - @Autowired(required = false) - private RuntimeService runtimeService; - private final IActProcessInstanceService iActProcessInstanceService; - private final IActHiProcinstService iActHiProcinstService; + private final IFlwInstanceService flwInstanceService; + private final IFlwDefinitionService flwDefinitionService; + private final IFlwTaskService flwTaskService; + /** - * 杩愯涓殑瀹炰緥 鍒犻櫎绋嬪疄渚嬶紝鍒犻櫎鍘嗗彶璁板綍锛屽垹闄や笟鍔′笌娴佺▼鍏宠仈淇℃伅 + * 鍒犻櫎娴佺▼瀹炰緥 * - * @param businessKeys 涓氬姟id + * @param businessIds 涓氬姟id * @return 缁撴灉 */ @Override - public boolean deleteRunAndHisInstance(List<String> businessKeys) { - return iActProcessInstanceService.deleteRunAndHisInstance(businessKeys); + public boolean deleteInstance(List<Long> businessIds) { + return flwInstanceService.deleteByBusinessIds(businessIds); } /** @@ -44,78 +51,82 @@ * @param taskId 浠诲姟id */ @Override - public String getBusinessStatusByTaskId(String taskId) { - return WorkflowUtils.getBusinessStatusByTaskId(taskId); + public String getBusinessStatusByTaskId(Long taskId) { + FlowInstance flowInstance = flwInstanceService.selectByTaskId(taskId); + return ObjectUtil.isNotNull(flowInstance) ? flowInstance.getFlowStatus() : StringUtils.EMPTY; } /** * 鑾峰彇褰撳墠娴佺▼鐘舵�� * - * @param businessKey 涓氬姟id + * @param businessId 涓氬姟id */ @Override - public String getBusinessStatus(String businessKey) { - return WorkflowUtils.getBusinessStatus(businessKey); + public String getBusinessStatus(String businessId) { + FlowInstance flowInstance = flwInstanceService.selectInstByBusinessId(businessId); + return ObjectUtil.isNotNull(flowInstance) ? flowInstance.getFlowStatus() : StringUtils.EMPTY; } /** - * 璁剧疆娴佺▼鍙橀噺(鍏ㄥ眬鍙橀噺) + * 璁剧疆娴佺▼鍙橀噺 * - * @param taskId 浠诲姟id - * @param variableName 鍙橀噺鍚嶇О - * @param value 鍙橀噺鍊� + * @param instanceId 娴佺▼瀹炰緥id + * @param variables 娴佺▼鍙橀噺 */ @Override - public void setVariable(String taskId, String variableName, Object value) { - runtimeService.setVariable(taskId, variableName, value); + public void setVariable(Long instanceId, Map<String, Object> variables) { + flwInstanceService.setVariable(instanceId, variables); } /** - * 璁剧疆娴佺▼鍙橀噺(鍏ㄥ眬鍙橀噺) + * 鑾峰彇娴佺▼鍙橀噺 * - * @param taskId 浠诲姟id - * @param variables 娴佺▼鍙橀噺 + * @param instanceId 娴佺▼瀹炰緥id */ @Override - public void setVariables(String taskId, Map<String, Object> variables) { - runtimeService.setVariables(taskId, variables); - } - - /** - * 璁剧疆娴佺▼鍙橀噺(鏈湴鍙橀噺,闈炲叏灞�鍙橀噺) - * - * @param taskId 浠诲姟id - * @param variableName 鍙橀噺鍚嶇О - * @param value 鍙橀噺鍊� - */ - @Override - public void setVariableLocal(String taskId, String variableName, Object value) { - runtimeService.setVariableLocal(taskId, variableName, value); - } - - /** - * 璁剧疆娴佺▼鍙橀噺(鏈湴鍙橀噺,闈炲叏灞�鍙橀噺) - * - * @param taskId 浠诲姟id - * @param variables 娴佺▼鍙橀噺 - */ - @Override - public void setVariablesLocal(String taskId, Map<String, Object> variables) { - runtimeService.setVariablesLocal(taskId, variables); + public Map<String, Object> instanceVariable(Long instanceId) { + return flwInstanceService.instanceVariable(instanceId); } /** * 鎸夌収涓氬姟id鏌ヨ娴佺▼瀹炰緥id * - * @param businessKey 涓氬姟id + * @param businessId 涓氬姟id * @return 缁撴灉 */ @Override - public String getInstanceIdByBusinessKey(String businessKey) { - ActHiProcinst actHiProcinst = iActHiProcinstService.selectByBusinessKey(businessKey); - if (actHiProcinst == null) { - return StrUtil.EMPTY; - } - return actHiProcinst.getId(); + public Long getInstanceIdByBusinessId(String businessId) { + FlowInstance flowInstance = flwInstanceService.selectInstByBusinessId(businessId); + return ObjectUtil.isNotNull(flowInstance) ? flowInstance.getId() : null; + } + + /** + * 鏂板绉熸埛娴佺▼瀹氫箟 + * + * @param tenantId 绉熸埛id + */ + @Override + public void syncDef(String tenantId) { + flwDefinitionService.syncDef(tenantId); + } + + /** + * 鍚姩娴佺▼ + * + * @param startProcess 鍙傛暟 + */ + @Override + public StartProcessReturnDTO startWorkFlow(StartProcessDTO startProcess) { + return flwTaskService.startWorkFlow(BeanUtil.toBean(startProcess, StartProcessBo.class)); + } + + /** + * 鍔炵悊浠诲姟 + * + * @param completeTask 鍙傛暟 + */ + @Override + public boolean completeTask(CompleteTaskDTO completeTask) { + return flwTaskService.completeTask(BeanUtil.toBean(completeTask, CompleteTaskBo.class)); } } -- Gitblit v1.9.3