From b528f0bd146769407de4b7da223e75d46b51d345 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期五, 24 一月 2025 13:06:31 +0800 Subject: [PATCH] 🧨🧨🧨发布 5.3.0 新春版 祝大家新年快乐 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java | 103 +++++++++++++++++++++++++++++++++------------------ 1 files changed, 67 insertions(+), 36 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 2c60b66..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,10 +1,20 @@ package org.dromara.workflow.service.impl; +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.service.IActProcessInstanceService; -import org.dromara.workflow.utils.WorkflowUtils; -import org.flowable.engine.RuntimeService; +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; @@ -15,22 +25,24 @@ * * @author may */ +@ConditionalOnEnable @RequiredArgsConstructor @Service public class WorkflowServiceImpl implements WorkflowService { - private final IActProcessInstanceService iActProcessInstanceService; - private final RuntimeService runtimeService; + 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); } /** @@ -39,63 +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); + public Map<String, Object> instanceVariable(Long instanceId) { + return flwInstanceService.instanceVariable(instanceId); } /** - * 璁剧疆娴佺▼鍙橀噺(鏈湴鍙橀噺,闈炲叏灞�鍙橀噺) + * 鎸夌収涓氬姟id鏌ヨ娴佺▼瀹炰緥id * - * @param taskId 浠诲姟id - * @param variableName 鍙橀噺鍚嶇О - * @param value 鍙橀噺鍊� + * @param businessId 涓氬姟id + * @return 缁撴灉 */ @Override - public void setVariableLocal(String taskId, String variableName, Object value) { - runtimeService.setVariableLocal(taskId, variableName, value); + public Long getInstanceIdByBusinessId(String businessId) { + FlowInstance flowInstance = flwInstanceService.selectInstByBusinessId(businessId); + return ObjectUtil.isNotNull(flowInstance) ? flowInstance.getId() : null; } /** - * 璁剧疆娴佺▼鍙橀噺(鏈湴鍙橀噺,闈炲叏灞�鍙橀噺) + * 鏂板绉熸埛娴佺▼瀹氫箟 * - * @param taskId 浠诲姟id - * @param variables 娴佺▼鍙橀噺 + * @param tenantId 绉熸埛id */ @Override - public void setVariablesLocal(String taskId, Map<String, Object> variables) { - runtimeService.setVariablesLocal(taskId, variables); + 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