From c740371d980c298b8ce90249fc323af57b4f15f6 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Fri, 8 Dec 2023 16:38:38 +0800 Subject: [PATCH] fix bug --- .../activiti/controller/ActivitiController.java | 10 ++++++++-- .../activiti/controller/WorkCenterController.java | 7 +------ .../com/jero/modules/activiti/entity/ProcessAll.java | 6 ++++++ .../com/jero/modules/activiti/entity/ProcessNode.java | 7 +++++++ .../activiti/listener/MyGlobalEventListener.java | 1 + .../modules/activiti/service/ProcessAllService.java | 8 +++++++- 6 files changed, 30 insertions(+), 9 deletions(-) diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/controller/ActivitiController.java b/laws-modules/src/main/java/com/jero/modules/activiti/controller/ActivitiController.java index 9684e94f..3b6c8878 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/controller/ActivitiController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/controller/ActivitiController.java @@ -264,13 +264,19 @@ public class ActivitiController { @DictPoint @GetMapping("/getNodeList") @ApiImplicitParams({ + @ApiImplicitParam(name = "processDefinitionKey", value = "流程定义key"), @ApiImplicitParam(name = "processDefinitionId", value = "流程定义id"), @ApiImplicitParam(name = "processInstanceId", value = "流程实例id(这个参数会去查绑定好的用户)") }) @ApiOperation("获得节点列表") - public Result> getNodeList(String processDefinitionId,String processInstanceId) { + public Result> getNodeList(String processDefinitionKey,String processDefinitionId,String processInstanceId) { + if (StringUtils.isBlank(processDefinitionId)){ + processDefinitionId = repositoryService.createProcessDefinitionQuery() // 创建部署信息查询器 + .processDefinitionKey(processDefinitionKey) // 根据流程部署key查询 + .latestVersion() // 根据版本倒序取最后一个版本 + .singleResult().getId(); + } //查询节点信息 - List nodeList = processNodeService.getNodeList(processDefinitionId,processInstanceId); return Result.OK(nodeList); } diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java b/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java index 3ee6dc20..4304e7e0 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/controller/WorkCenterController.java @@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.jero.common.api.vo.Result; -import com.jero.common.system.query.QueryGenerator; import com.jero.common.system.vo.LoginUser; import com.jero.modules.activiti.entity.ProcessAll; import com.jero.modules.activiti.entity.ProcessApprovalRecord; @@ -18,9 +17,7 @@ import com.jero.modules.activiti.vo.ResolveTaskParam; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; -import org.activiti.engine.RuntimeService; -import org.activiti.engine.task.Task; -import org.activiti.engine.task.TaskQuery; +import org.activiti.engine.history.HistoricTaskInstance; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jetbrains.annotations.NotNull; @@ -28,8 +25,6 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; -import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessAll.java b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessAll.java index 92d5a4e6..42cb938c 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessAll.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessAll.java @@ -31,6 +31,12 @@ public class ProcessAll { @ApiModelProperty(value="流程名称") private String prcName; + /** + * 流程定义id + */ + @ApiModelProperty(value="流程定义id") + private String processDefinitionId; + /** * 流程实例id */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessNode.java b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessNode.java index bb26b480..eaf2bcb8 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessNode.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/entity/ProcessNode.java @@ -33,6 +33,13 @@ public class ProcessNode { @ApiModelProperty(value = "流程定义id") private String processDefinitionId; + /** + * xml节点Id + */ + @TableField(value = "xml_node_id") + @ApiModelProperty(value = "xml节点Id") + private String xmlNodeId; + /** * 节点名称 */ diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java index 9eeba5b5..11d2ec57 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/listener/MyGlobalEventListener.java @@ -84,6 +84,7 @@ public class MyGlobalEventListener implements ActivitiEventListener { String name = parent.getProcessDefinitionName(); //新增流程总表信息(剩余的内容在启动流程时填充) ProcessAll processAll = new ProcessAll(); + processAll.setProcessDefinitionId(processDefinitionId); processAll.setProcessInstanceId(processInstanceId); processAll.setPrcType(ProcessTypeEnum.getValueByName(name)); processAll.setPrcStatus(ProcessStatusEnum.INCOMPLETE.getValue()); diff --git a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java index 39e00631..23da04ef 100644 --- a/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java +++ b/laws-modules/src/main/java/com/jero/modules/activiti/service/ProcessAllService.java @@ -14,13 +14,17 @@ import com.jero.modules.activiti.enums.ProcessTypeEnum; import com.jero.modules.activiti.vo.DelegateTaskParam; import com.jero.modules.activiti.vo.ResolveTaskParam; import com.jero.common.api.vo.ResultCommon; +import org.activiti.engine.HistoryService; import org.activiti.engine.RuntimeService; import org.activiti.engine.TaskService; +import org.activiti.engine.history.HistoricTaskInstance; +import org.activiti.engine.history.HistoricTaskInstanceQuery; import org.activiti.engine.task.Task; import org.apache.shiro.SecurityUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.util.Date; +import java.util.List; import java.util.Objects; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -41,6 +45,8 @@ public class ProcessAllService extends ServiceImpl private RuntimeService runtimeService; @Resource private TaskService taskService; + @Resource + private HistoryService historyService; public ProcessAll getByProcessInstanceId(String processInstanceId){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); @@ -76,10 +82,10 @@ public class ProcessAllService extends ServiceImpl WorkCenterService classByValue = null; try { classByValue = (WorkCenterService) Class.forName(ProcessTypeEnum.getClassByValue(prcType)).newInstance(); + classByValue.changeToDraft(processAll.getProjectId()); }catch (Exception e) { log.error(e.getMessage(),e); } - classByValue.changeToDraft(processAll.getProjectId()); //todo 同步删除操作到统一待办 }