From 2d9930439673c5ae45f75650d0669b88c143d35d Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期三, 22 一月 2025 11:19:51 +0800 Subject: [PATCH] update 优化 WorkflowService 增加获取流程变量方法 --- ruoyi-modules/ruoyi-workflow/src/main/java/org/dromara/workflow/service/impl/WorkflowServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 80 insertions(+), 23 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 91a899d..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,33 +1,48 @@ 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.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; +import java.util.Map; /** * 閫氱敤 宸ヤ綔娴佹湇鍔″疄鐜� * * @author may */ +@ConditionalOnEnable @RequiredArgsConstructor @Service public class WorkflowServiceImpl implements WorkflowService { - private final IActProcessInstanceService iActProcessInstanceService; + 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); } /** @@ -36,40 +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 obj 涓氬姟瀵硅薄 - * @param businessKey 涓氬姟id + * @param instanceId 娴佺▼瀹炰緥id + * @param variables 娴佺▼鍙橀噺 */ @Override - public void setBusinessInstanceDTO(Object obj, String businessKey) { - WorkflowUtils.setBusinessInstanceDTO(obj, businessKey); + public void setVariable(Long instanceId, Map<String, Object> variables) { + flwInstanceService.setVariable(instanceId, variables); } /** - * 璁剧疆娴佺▼瀹炰緥瀵硅薄 + * 鑾峰彇娴佺▼鍙橀噺 * - * @param obj 涓氬姟瀵硅薄 - * @param idList 涓氬姟id - * @param fieldName 涓婚敭灞炴�у悕绉� + * @param instanceId 娴佺▼瀹炰緥id */ @Override - public void setBusinessInstanceListDTO(Object obj, List<String> idList, String fieldName) { - WorkflowUtils.setBusinessInstanceListDTO(obj, idList, fieldName); + public Map<String, Object> instanceVariable(Long instanceId) { + return flwInstanceService.instanceVariable(instanceId); + } + + /** + * 鎸夌収涓氬姟id鏌ヨ娴佺▼瀹炰緥id + * + * @param businessId 涓氬姟id + * @return 缁撴灉 + */ + @Override + 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