From 51a20ad8984cdf3fe463587dbeea2bae48ee60aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=86=B7=E5=86=B7?= <2270033969@qq.com> Date: Wed, 10 Jul 2024 23:03:11 +0800 Subject: [PATCH] =?UTF-8?q?=E2=99=BB=EF=B8=8F=20[=E5=B7=A5=E4=BD=9C?= =?UTF-8?q?=E6=B5=81]=20=E4=BB=A3=E5=8A=9E=E4=BB=BB=E5=8A=A1=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=9F=A5=E8=AF=A2=E4=BF=AE=E6=94=B9=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E7=94=A8=E6=88=B7ID=E5=88=97=E8=A1=A8=E5=92=8C=E5=8E=BB?= =?UTF-8?q?=E6=8E=89=E6=9F=A5=E8=AF=A2=E4=BB=BB=E5=8A=A1=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit (cherry picked from commit 84e0116e9bce2725dcd20274c4faf1872f7c86fe) --- .../controller/EngineFlowController.java | 416 +++++++------ .../impl/ProcessInstanceServiceImpl.java | 560 +++++++++--------- .../task/service/impl/RemoteServiceImpl.java | 2 +- .../pigx/flow/task/utils/NodeFormatUtil.java | 2 +- 4 files changed, 486 insertions(+), 494 deletions(-) diff --git a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineFlowController.java b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineFlowController.java index 1708d02b6..ddf93e4a6 100644 --- a/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineFlowController.java +++ b/pigx-flow/pigx-flow-engine/pigx-flow-engine-biz/src/main/java/com/pig4cloud/pigx/flow/engine/controller/EngineFlowController.java @@ -1,6 +1,5 @@ package com.pig4cloud.pigx.flow.engine.controller; -import cn.hutool.core.codec.Base64; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DatePattern; import cn.hutool.core.date.DateUtil; @@ -9,7 +8,6 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.util.ArrayUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fasterxml.jackson.databind.ObjectMapper; import com.pig4cloud.pigx.common.core.util.R; @@ -20,7 +18,6 @@ import com.pig4cloud.pigx.flow.task.utils.NodeUtil; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; -import org.flowable.bpmn.BpmnAutoLayout; import org.flowable.bpmn.converter.BpmnXMLConverter; import org.flowable.bpmn.model.BpmnModel; import org.flowable.common.engine.impl.identity.Authentication; @@ -30,14 +27,14 @@ import org.flowable.engine.RuntimeService; import org.flowable.engine.TaskService; import org.flowable.engine.history.HistoricActivityInstance; import org.flowable.engine.history.HistoricActivityInstanceQuery; -import org.flowable.engine.history.HistoricProcessInstance; import org.flowable.engine.runtime.Execution; import org.flowable.engine.runtime.ProcessInstance; -import org.flowable.image.impl.DefaultProcessDiagramGenerator; import org.flowable.task.api.TaskQuery; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; -import java.io.InputStream; import java.time.ZoneId; import java.time.ZonedDateTime; import java.util.*; @@ -52,247 +49,242 @@ import java.util.stream.Collectors; @RequestMapping("/flow") public class EngineFlowController { - private final TaskService taskService; + private final TaskService taskService; - private final HistoryService historyService; + private final HistoryService historyService; - private final RepositoryService repositoryService; + private final RepositoryService repositoryService; - private final RuntimeService runtimeService; + private final RuntimeService runtimeService; - private final ObjectMapper objectMapper; + private final ObjectMapper objectMapper; - /** - * 创建流程定义 - * @param map 创建参数 - * @return 流程定义ID - */ - @PostMapping("create") - @SneakyThrows - public R create(@RequestBody Map map) { + /** + * 创建流程定义 + * + * @param map 创建参数 + * @return 流程定义ID + */ + @PostMapping("create") + @SneakyThrows + public R create(@RequestBody Map map) { - Long userId = MapUtil.getLong(map, "userId"); + Long userId = MapUtil.getLong(map, "userId"); - Process process = MapUtil.get(map, "process", Process.class); + Process process = MapUtil.get(map, "process", Process.class); - String flowId = "P" + DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN) - + RandomUtil.randomString(5).toUpperCase(); - log.info("flowId={}", flowId); - BpmnModel bpmnModel = ModelUtil.buildBpmnModel(objectMapper.readValue(process.getProcess(), Node.class), - process.getName(), flowId); - { - byte[] bpmnBytess = new BpmnXMLConverter().convertToXML(bpmnModel); - String filename = "/tmp/flowable-deployment/" + flowId + ".bpmn20.xml"; - log.debug("部署时的模型文件:{}", filename); - FileUtil.writeBytes(bpmnBytess, filename); - } - repositoryService.createDeployment().addBpmnModel(StrUtil.format("{}.bpmn20.xml", "pig"), bpmnModel).deploy(); + String flowId = "P" + DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN) + + RandomUtil.randomString(5).toUpperCase(); + log.info("flowId={}", flowId); + BpmnModel bpmnModel = ModelUtil.buildBpmnModel(objectMapper.readValue(process.getProcess(), Node.class), + process.getName(), flowId); + { + byte[] bpmnBytess = new BpmnXMLConverter().convertToXML(bpmnModel); + String filename = "/tmp/flowable-deployment/" + flowId + ".bpmn20.xml"; + log.debug("部署时的模型文件:{}", filename); + FileUtil.writeBytes(bpmnBytess, filename); + } + repositoryService.createDeployment().addBpmnModel(StrUtil.format("{}.bpmn20.xml", "pig"), bpmnModel).deploy(); - return R.ok(flowId); - } + return R.ok(flowId); + } - /** - * 启动流程实例 - * @param processInstanceParamDto 启动参数 - * @return 流程实例ID - */ - @PostMapping("/start") - public R start(@RequestBody ProcessInstanceParamDto processInstanceParamDto) { - Authentication.setAuthenticatedUserId(processInstanceParamDto.getStartUserId()); - ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceParamDto.getFlowId(), - processInstanceParamDto.getParamMap()); + /** + * 启动流程实例 + * + * @param processInstanceParamDto 启动参数 + * @return 流程实例ID + */ + @PostMapping("/start") + public R start(@RequestBody ProcessInstanceParamDto processInstanceParamDto) { + Authentication.setAuthenticatedUserId(processInstanceParamDto.getStartUserId()); + ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processInstanceParamDto.getFlowId(), + processInstanceParamDto.getParamMap()); - String processInstanceId = processInstance.getProcessInstanceId(); - return R.ok(processInstanceId); + String processInstanceId = processInstance.getProcessInstanceId(); + return R.ok(processInstanceId); - } + } - /** - * 审批任务 - * @param taskId 任务ID - * @param approved 是否通过 - */ - @PostMapping("/approve") - public void approve(String taskId, boolean approved) { - Map variables = new HashMap<>(); - variables.put("approved", approved); - variables.put("ko", 10); - variables.put("assigneeListSub", CollUtil.newArrayList("aa", "bb")); - taskService.complete(taskId, variables); + /** + * 审批任务 + * + * @param taskId 任务ID + * @param approved 是否通过 + */ + @PostMapping("/approve") + public void approve(String taskId, boolean approved) { + Map variables = new HashMap<>(); + variables.put("approved", approved); + variables.put("ko", 10); + variables.put("assigneeListSub", CollUtil.newArrayList("aa", "bb")); + taskService.complete(taskId, variables); - } + } - /** - * 停止流程实例 - * @param taskParamDto 参数 - * @return 操作结果 - */ - @PostMapping("stopProcessInstance") - public R stopProcessInstance(@RequestBody TaskParamDto taskParamDto) { - List processInstanceIdList = taskParamDto.getProcessInstanceIdList(); - processInstanceIdList.forEach(processInstanceId -> { - // 查询流程实例 - ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() - .processInstanceId(processInstanceId) - .singleResult(); - if (Optional.ofNullable(processInstance).isPresent()) { - // 查询执行实例 - List executionIds = runtimeService.createExecutionQuery() - .parentId(processInstanceId) - .list() - .stream() - .map(Execution::getId) - .collect(Collectors.toList()); - // 更改活动状态为结束 - runtimeService.createChangeActivityStateBuilder() - .moveExecutionsToSingleActivityId(executionIds, "end") - .changeState(); - } - }); - return R.ok(); - } + /** + * 停止流程实例 + * + * @param taskParamDto 参数 + * @return 操作结果 + */ + @PostMapping("stopProcessInstance") + public R stopProcessInstance(@RequestBody TaskParamDto taskParamDto) { + List processInstanceIdList = taskParamDto.getProcessInstanceIdList(); + processInstanceIdList.forEach(processInstanceId -> { + // 查询流程实例 + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId) + .singleResult(); + if (Optional.ofNullable(processInstance).isPresent()) { + // 查询执行实例 + List executionIds = runtimeService.createExecutionQuery() + .parentId(processInstanceId) + .list() + .stream() + .map(Execution::getId) + .collect(Collectors.toList()); + // 更改活动状态为结束 + runtimeService.createChangeActivityStateBuilder() + .moveExecutionsToSingleActivityId(executionIds, "end") + .changeState(); + } + }); + return R.ok(); + } - /** - * 查询用户已办任务 - * @param taskQueryParamDto 查询参数 - * @return 分页任务信息 - */ - @PostMapping("/queryCompletedTask") - public R queryCompletedTask(@RequestBody TaskQueryParamDto taskQueryParamDto) { - HistoricActivityInstanceQuery historicActivityInstanceQuery = historyService - .createHistoricActivityInstanceQuery(); - HistoricActivityInstanceQuery activityInstanceQuery = historicActivityInstanceQuery - .taskAssignee(taskQueryParamDto.getAssign()) - .finished() - .orderByHistoricActivityInstanceEndTime() - .desc(); + /** + * 查询用户已办任务 + * + * @param taskQueryParamDto 查询参数 + * @return 分页任务信息 + */ + @PostMapping("/queryCompletedTask") + public R queryCompletedTask(@RequestBody TaskQueryParamDto taskQueryParamDto) { + HistoricActivityInstanceQuery historicActivityInstanceQuery = historyService + .createHistoricActivityInstanceQuery(); + HistoricActivityInstanceQuery activityInstanceQuery = historicActivityInstanceQuery + .taskAssignee(taskQueryParamDto.getAssign()) + .finished() + .orderByHistoricActivityInstanceEndTime() + .desc(); - if (ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime())) { - ZoneId zoneId = ZoneId.systemDefault(); - ZonedDateTime zonedBeforeDateTime = taskQueryParamDto.getTaskTime()[0].atZone(zoneId); - ZonedDateTime zonedAfterDateTime = taskQueryParamDto.getTaskTime()[1].atZone(zoneId); - Date beforeDate = Date.from(zonedBeforeDateTime.toInstant()); - Date afterDate = Date.from(zonedAfterDateTime.toInstant()); - activityInstanceQuery.finishedBefore(afterDate).finishedAfter(beforeDate); - } + if (ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime())) { + ZoneId zoneId = ZoneId.systemDefault(); + ZonedDateTime zonedBeforeDateTime = taskQueryParamDto.getTaskTime()[0].atZone(zoneId); + ZonedDateTime zonedAfterDateTime = taskQueryParamDto.getTaskTime()[1].atZone(zoneId); + Date beforeDate = Date.from(zonedBeforeDateTime.toInstant()); + Date afterDate = Date.from(zonedAfterDateTime.toInstant()); + activityInstanceQuery.finishedBefore(afterDate).finishedAfter(beforeDate); + } - List list = activityInstanceQuery.listPage( - (taskQueryParamDto.getCurrent() - 1) * taskQueryParamDto.getSize(), - taskQueryParamDto.getSize()); + List list = activityInstanceQuery + .listPage((taskQueryParamDto.getCurrent() - 1) * taskQueryParamDto.getSize(), taskQueryParamDto.getSize()); - long count = activityInstanceQuery.count(); - List taskDtoList = new ArrayList<>(); + long count = activityInstanceQuery.count(); + List taskDtoList = new ArrayList<>(); - for (HistoricActivityInstance historicActivityInstance : list) { - String activityId = historicActivityInstance.getActivityId(); - String activityName = historicActivityInstance.getActivityName(); - String executionId = historicActivityInstance.getExecutionId(); - String taskId = historicActivityInstance.getTaskId(); - Date startTime = historicActivityInstance.getStartTime(); - Date endTime = historicActivityInstance.getEndTime(); - Long durationInMillis = historicActivityInstance.getDurationInMillis(); - String processInstanceId = historicActivityInstance.getProcessInstanceId(); + for (HistoricActivityInstance historicActivityInstance : list) { + String activityId = historicActivityInstance.getActivityId(); + String activityName = historicActivityInstance.getActivityName(); + String executionId = historicActivityInstance.getExecutionId(); + String taskId = historicActivityInstance.getTaskId(); + Date startTime = historicActivityInstance.getStartTime(); + Date endTime = historicActivityInstance.getEndTime(); + Long durationInMillis = historicActivityInstance.getDurationInMillis(); + String processInstanceId = historicActivityInstance.getProcessInstanceId(); - String processDefinitionId = historicActivityInstance.getProcessDefinitionId(); - // 流程id - String flowId = NodeUtil.getFlowId(processDefinitionId); + String processDefinitionId = historicActivityInstance.getProcessDefinitionId(); + // 流程id + String flowId = NodeUtil.getFlowId(processDefinitionId); - TaskDto taskDto = new TaskDto(); - taskDto.setFlowId(flowId); - taskDto.setTaskCreateTime(startTime); - taskDto.setTaskEndTime(endTime); - taskDto.setNodeId(activityId); - taskDto.setExecutionId(executionId); - taskDto.setProcessInstanceId(processInstanceId); - taskDto.setDurationInMillis(durationInMillis); - taskDto.setTaskId(taskId); - taskDto.setAssign(historicActivityInstance.getAssignee()); - taskDto.setTaskName(activityName); + TaskDto taskDto = new TaskDto(); + taskDto.setFlowId(flowId); + taskDto.setTaskCreateTime(startTime); + taskDto.setTaskEndTime(endTime); + taskDto.setNodeId(activityId); + taskDto.setExecutionId(executionId); + taskDto.setProcessInstanceId(processInstanceId); + taskDto.setDurationInMillis(durationInMillis); + taskDto.setTaskId(taskId); + taskDto.setAssign(historicActivityInstance.getAssignee()); + taskDto.setTaskName(activityName); - taskDtoList.add(taskDto); - } + taskDtoList.add(taskDto); + } - Page pageResultDto = new Page<>(); - pageResultDto.setTotal(count); - pageResultDto.setRecords(taskDtoList); - return R.ok(pageResultDto); - } + Page pageResultDto = new Page<>(); + pageResultDto.setTotal(count); + pageResultDto.setRecords(taskDtoList); + return R.ok(pageResultDto); + } - /** - * 查询用户待办任务 - * @param taskQueryParamDto 查询参数 - * @return 分页任务信息 - */ - @PostMapping("/queryAssignTask") - public R queryAssignTask(@RequestBody TaskQueryParamDto taskQueryParamDto) { + /** + * 查询用户待办任务 + * + * @param taskQueryParamDto 查询参数 + * @return 分页任务信息 + */ + @PostMapping("/queryAssignTask") + public R queryAssignTask(@RequestBody TaskQueryParamDto taskQueryParamDto) { - String assign = taskQueryParamDto.getAssign(); + String assign = taskQueryParamDto.getAssign(); - List taskDtoList = new ArrayList<>(); + List taskDtoList = new ArrayList<>(); - int pageIndex = taskQueryParamDto.getCurrent() - 1; - int pageSize = taskQueryParamDto.getSize(); + int pageIndex = taskQueryParamDto.getCurrent() - 1; + int pageSize = taskQueryParamDto.getSize(); - Page pageResultDto = new Page<>(); - TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(assign).orderByTaskCreateTime().desc(); - if (StrUtil.isNotBlank(taskQueryParamDto.getProcessName())) { - List processInstanceList = runtimeService.createProcessInstanceQuery() - .processInstanceNameLikeIgnoreCase(taskQueryParamDto.getProcessName()) - .list(); - if (CollUtil.isNotEmpty(processInstanceList)) { - taskQuery.processInstanceIdIn(processInstanceList.stream() - .map(ProcessInstance::getProcessDefinitionId) - .collect(Collectors.toList())); - } - } + Page pageResultDto = new Page<>(); + TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(assign).orderByTaskCreateTime().desc(); + if (StrUtil.isNotBlank(taskQueryParamDto.getProcessName())) { + List processInstanceList = runtimeService.createProcessInstanceQuery() + .processInstanceNameLikeIgnoreCase(taskQueryParamDto.getProcessName()) + .list(); + if (CollUtil.isNotEmpty(processInstanceList)) { + taskQuery.processInstanceIdIn(processInstanceList.stream() + .map(ProcessInstance::getProcessDefinitionId) + .collect(Collectors.toList())); + } + } - if (ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime())) { - ZoneId zoneId = ZoneId.systemDefault(); - ZonedDateTime zonedBeforeDateTime = taskQueryParamDto.getTaskTime()[0].atZone(zoneId); - ZonedDateTime zonedAfterDateTime = taskQueryParamDto.getTaskTime()[1].atZone(zoneId); - Date beforeDate = Date.from(zonedBeforeDateTime.toInstant()); - Date afterDate = Date.from(zonedAfterDateTime.toInstant()); - taskQuery.taskCreatedBefore(afterDate).taskCreatedAfter(beforeDate); - } + if (ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime())) { + ZoneId zoneId = ZoneId.systemDefault(); + ZonedDateTime zonedBeforeDateTime = taskQueryParamDto.getTaskTime()[0].atZone(zoneId); + ZonedDateTime zonedAfterDateTime = taskQueryParamDto.getTaskTime()[1].atZone(zoneId); + Date beforeDate = Date.from(zonedBeforeDateTime.toInstant()); + Date afterDate = Date.from(zonedAfterDateTime.toInstant()); + taskQuery.taskCreatedBefore(afterDate).taskCreatedAfter(beforeDate); + } - taskQuery.listPage(pageIndex * pageSize, pageSize).forEach(task -> { - String taskId = task.getId(); - String processInstanceId = task.getProcessInstanceId(); - log.debug("(taskId) " + task.getName() + " processInstanceId={} executrionId={}", processInstanceId, - task.getExecutionId()); + taskQuery.listPage(pageIndex * pageSize, pageSize).forEach(task -> { + String taskId = task.getId(); + String processInstanceId = task.getProcessInstanceId(); + log.debug("(taskId) {} processInstanceId={} executrionId={}", task.getName(), processInstanceId, task.getExecutionId()); - Map taskServiceVariables = taskService.getVariables(taskId); - Map runtimeServiceVariables = runtimeService.getVariables(processInstanceId); - Map variables = runtimeService.getVariables(task.getExecutionId()); - log.debug("任务变量:{}", JSONUtil.toJsonStr(taskServiceVariables)); - log.debug("流程节点:{}", JSONUtil.toJsonStr(runtimeServiceVariables)); - log.debug("执行节点变量:{}", JSONUtil.toJsonStr(variables)); + String taskDefinitionKey = task.getTaskDefinitionKey(); + String processDefinitionId = task.getProcessDefinitionId(); + String flowId = NodeUtil.getFlowId(processDefinitionId); - String taskDefinitionKey = task.getTaskDefinitionKey(); - String processDefinitionId = task.getProcessDefinitionId(); - String flowId = NodeUtil.getFlowId(processDefinitionId); + TaskDto taskDto = new TaskDto(); + taskDto.setFlowId(flowId); + taskDto.setTaskCreateTime(task.getCreateTime()); + taskDto.setNodeId(taskDefinitionKey); + taskDto.setProcessInstanceId(processInstanceId); + taskDto.setTaskId(taskId); + taskDto.setAssign(task.getAssignee()); + taskDto.setTaskName(task.getName()); + taskDtoList.add(taskDto); + }); - TaskDto taskDto = new TaskDto(); - taskDto.setFlowId(flowId); - taskDto.setTaskCreateTime(task.getCreateTime()); - taskDto.setNodeId(taskDefinitionKey); - taskDto.setParamMap(taskServiceVariables); - taskDto.setProcessInstanceId(processInstanceId); - taskDto.setTaskId(taskId); - taskDto.setAssign(task.getAssignee()); - taskDto.setTaskName(task.getName()); + long count = taskQuery.count(); - taskDtoList.add(taskDto); - }); + log.debug("当前有 {} 个任务:", count); - long count = taskQuery.count(); + pageResultDto.setTotal(count); + pageResultDto.setRecords(taskDtoList); - log.debug("当前有" + count + " 个任务:"); - - pageResultDto.setTotal(count); - pageResultDto.setRecords(taskDtoList); - - return R.ok(pageResultDto); - } + return R.ok(pageResultDto); + } } diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java index 20293b927..282b655c0 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/ProcessInstanceServiceImpl.java @@ -45,51 +45,52 @@ import java.util.stream.Collectors; @RequiredArgsConstructor public class ProcessInstanceServiceImpl implements IProcessInstanceService { - private final RemoteFlowEngineService flowEngineService; + private final RemoteFlowEngineService flowEngineService; - private final RemoteUserService userService; + private final RemoteUserService userService; - private final IProcessInstanceRecordService processInstanceRecordService; + private final IProcessInstanceRecordService processInstanceRecordService; - private final IProcessCopyService processCopyService; + private final IProcessCopyService processCopyService; - private final IProcessService processService; + private final IProcessService processService; - private final IProcessNodeRecordService processNodeRecordService; + private final IProcessNodeRecordService processNodeRecordService; - private final IProcessNodeRecordAssignUserService processNodeRecordAssignUserService; + private final IProcessNodeRecordAssignUserService processNodeRecordAssignUserService; - private final ObjectMapper objectMapper; + private final ObjectMapper objectMapper; - /** - * 启动流程 - * @param processInstanceParamDto - * @return - */ - @Override - public R startProcessInstance(ProcessInstanceParamDto processInstanceParamDto) { + /** + * 启动流程 + * + * @param processInstanceParamDto + * @return + */ + @Override + public R startProcessInstance(ProcessInstanceParamDto processInstanceParamDto) { - PigxUser user = SecurityUtils.getUser(); + PigxUser user = SecurityUtils.getUser(); - processInstanceParamDto.setStartUserId(String.valueOf(user.getId())); - Map paramMap = processInstanceParamDto.getParamMap(); - Dict rootUser = Dict.create() - .set("id", user.getId()) - .set("name", user.getUsername()) - .set("type", NodeUserTypeEnum.USER.getKey()); - paramMap.put("root", CollUtil.newArrayList(rootUser)); - return flowEngineService.startProcess(processInstanceParamDto); - } + processInstanceParamDto.setStartUserId(String.valueOf(user.getId())); + Map paramMap = processInstanceParamDto.getParamMap(); + Dict rootUser = Dict.create() + .set("id", user.getId()) + .set("name", user.getUsername()) + .set("type", NodeUserTypeEnum.USER.getKey()); + paramMap.put("root", CollUtil.newArrayList(rootUser)); + return flowEngineService.startProcess(processInstanceParamDto); + } - /** - * 查询当前登录用户的待办任务 - * @param pageVO - * @param taskDto - * @return - */ - @Override - public R queryMineTask(TaskQueryParamDto taskQueryParamDto) { - taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString()); + /** + * 查询当前登录用户的待办任务 + * + * @param taskQueryParamDto 查询参数 + * @return R + */ + @Override + public R queryMineTask(TaskQueryParamDto taskQueryParamDto) { + taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString()); R> r = flowEngineService.queryAssignTask(taskQueryParamDto); if (CollUtil.isEmpty(r.getData().getRecords())) { @@ -108,10 +109,9 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { .list(); // 发起人 - List startUserList = processInstanceRecordList.stream() - .map(ProcessInstanceRecord::getUserId) - .map(userId -> userService.getUserById(userId).getData()) - .toList(); + // 发起人 + List collect = processInstanceRecordList.stream().map(ProcessInstanceRecord::getUserId).collect(Collectors.toList()); + List startUserList = userService.getUserById(collect).getData(); Page pageResultDto = r.getData(); List taskDtoList = new ArrayList<>(); @@ -141,304 +141,304 @@ public class ProcessInstanceServiceImpl implements IProcessInstanceService { pageResultDto.setRecords(taskDtoList); return R.ok(pageResultDto); - } + } - /** - * 查询已办任务 - * @param taskQueryParamDto - * @return - */ - @Override - public R queryMineEndTask(TaskQueryParamDto taskQueryParamDto) { - taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString()); - R> r = flowEngineService.queryCompletedTask(taskQueryParamDto); + /** + * 查询已办任务 + * + * @param taskQueryParamDto 查询参数 + * @return R + */ + @Override + public R queryMineEndTask(TaskQueryParamDto taskQueryParamDto) { + taskQueryParamDto.setAssign(SecurityUtils.getUser().getId().toString()); + R> r = flowEngineService.queryCompletedTask(taskQueryParamDto); - Page pageResultDto = r.getData(); - List records = pageResultDto.getRecords(); - if (CollUtil.isEmpty(records)) { - return R.ok(pageResultDto); + Page pageResultDto = r.getData(); + List records = pageResultDto.getRecords(); + if (CollUtil.isEmpty(records)) { + return R.ok(pageResultDto); - } + } - Set processInstanceIdSet = records.stream() - .map(TaskDto::getProcessInstanceId) - .collect(Collectors.toSet()); + Set processInstanceIdSet = records.stream() + .map(TaskDto::getProcessInstanceId) + .collect(Collectors.toSet()); - // 流程实例记录 - List processInstanceRecordList = processInstanceRecordService.lambdaQuery() - .in(ProcessInstanceRecord::getProcessInstanceId, processInstanceIdSet) - .list(); + // 流程实例记录 + List processInstanceRecordList = processInstanceRecordService.lambdaQuery() + .in(ProcessInstanceRecord::getProcessInstanceId, processInstanceIdSet) + .list(); - // 发起人 - List startUserList = processInstanceRecordList.stream() - .map(ProcessInstanceRecord::getUserId) - .map(userId -> userService.getUserById(userId).getData()) - .toList(); + // 发起人 + List collect = processInstanceRecordList.stream().map(ProcessInstanceRecord::getUserId).collect(Collectors.toList()); + List startUserList = userService.getUserById(collect).getData(); - List taskDtoList = new ArrayList<>(); - for (TaskDto record : records) { + List taskDtoList = new ArrayList<>(); + for (TaskDto record : records) { - ProcessInstanceRecord processInstanceRecord = processInstanceRecordList.stream() - .filter(w -> StrUtil.equals(w.getProcessInstanceId(), record.getProcessInstanceId())) - .findAny() - .orElse(null); + ProcessInstanceRecord processInstanceRecord = processInstanceRecordList.stream() + .filter(w -> StrUtil.equals(w.getProcessInstanceId(), record.getProcessInstanceId())) + .findAny() + .orElse(null); - if (processInstanceRecord != null) { + if (processInstanceRecord != null) { - record.setProcessName(processInstanceRecord.getName()); + record.setProcessName(processInstanceRecord.getName()); - SysUser startUser = startUserList.stream() - .filter(w -> w.getUserId().longValue() == processInstanceRecord.getUserId()) - .findAny() - .orElse(null); + SysUser startUser = startUserList.stream() + .filter(w -> w.getUserId().longValue() == processInstanceRecord.getUserId()) + .findAny() + .orElse(null); - record.setRootUserId(processInstanceRecord.getUserId()); - record.setGroupName(processInstanceRecord.getGroupName()); - record.setRootUserName(startUser.getName()); - record.setRootUserAvatarUrl(startUser.getAvatar()); - record.setTaskId(record.getTaskId()); - record.setStartTime(processInstanceRecord.getCreateTime()); - taskDtoList.add(record); - } - } + record.setRootUserId(processInstanceRecord.getUserId()); + record.setGroupName(processInstanceRecord.getGroupName()); + record.setRootUserName(startUser.getName()); + record.setRootUserAvatarUrl(startUser.getAvatar()); + record.setTaskId(record.getTaskId()); + record.setStartTime(processInstanceRecord.getCreateTime()); + taskDtoList.add(record); + } + } - pageResultDto.setRecords(taskDtoList); + pageResultDto.setRecords(taskDtoList); - return R.ok(pageResultDto); - } + return R.ok(pageResultDto); + } - /** - * 流程结束 - * @param processsInstanceId - * @return - */ - @Override - public R end(String processsInstanceId) { - processInstanceRecordService.lambdaUpdate() - .set(ProcessInstanceRecord::getEndTime, new Date()) - .set(ProcessInstanceRecord::getStatus, NodeStatusEnum.YJS.getCode()) - .eq(ProcessInstanceRecord::getProcessInstanceId, processsInstanceId) - .update(new ProcessInstanceRecord()); - return R.ok(); - } + /** + * 流程结束 + * + * @param processsInstanceId + * @return + */ + @Override + public R end(String processsInstanceId) { + processInstanceRecordService.lambdaUpdate() + .set(ProcessInstanceRecord::getEndTime, new Date()) + .set(ProcessInstanceRecord::getStatus, NodeStatusEnum.YJS.getCode()) + .eq(ProcessInstanceRecord::getProcessInstanceId, processsInstanceId) + .update(new ProcessInstanceRecord()); + return R.ok(); + } - /** - * 查询我发起的 - * @param pageDto - * @return - */ - @Override - public R queryMineStarted(TaskQueryParamDto taskQueryParamDto) { + /** + * 查询我发起的 + * + * @param taskQueryParamDto 查询条件 + * @return + */ + @Override + public R queryMineStarted(TaskQueryParamDto taskQueryParamDto) { - long userId = SecurityUtils.getUser().getId(); + long userId = SecurityUtils.getUser().getId(); - Page instanceRecordPage = processInstanceRecordService.lambdaQuery() - .eq(ProcessInstanceRecord::getUserId, userId) - .eq(ProcessInstanceRecord::getStatus, taskQueryParamDto.getStatus()) - .between(ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()), ProcessInstanceRecord::getCreateTime, - ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null, - ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null) - .orderByDesc(ProcessInstanceRecord::getCreateTime) - .page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize())); + Page instanceRecordPage = processInstanceRecordService.lambdaQuery() + .eq(ProcessInstanceRecord::getUserId, userId) + .eq(ProcessInstanceRecord::getStatus, taskQueryParamDto.getStatus()) + .between(ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()), ProcessInstanceRecord::getCreateTime, + ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null, + ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null) + .orderByDesc(ProcessInstanceRecord::getCreateTime) + .page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize())); - return R.ok(instanceRecordPage); - } + return R.ok(instanceRecordPage); + } - /** - * 查询抄送给我的 - * @param pageDto - * @return - */ - @Override - public R queryMineCC(TaskQueryParamDto taskQueryParamDto) { + /** + * 查询抄送给我的 + * + * @param taskQueryParamDto 查询参数 + * @return + */ + @Override + public R queryMineCC(TaskQueryParamDto taskQueryParamDto) { - long userId = SecurityUtils.getUser().getId(); + long userId = SecurityUtils.getUser().getId(); - Page page = processCopyService.lambdaQuery() - .eq(ProcessCopy::getUserId, userId) - .between(ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()), ProcessCopy::getCreateTime, - ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null, - ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null) - .orderByDesc(ProcessCopy::getNodeTime) - .page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize())); + Page page = processCopyService.lambdaQuery() + .eq(ProcessCopy::getUserId, userId) + .between(ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()), ProcessCopy::getCreateTime, + ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[0] : null, + ArrayUtil.isNotEmpty(taskQueryParamDto.getTaskTime()) ? taskQueryParamDto.getTaskTime()[1] : null) + .orderByDesc(ProcessCopy::getNodeTime) + .page(new Page<>(taskQueryParamDto.getCurrent(), taskQueryParamDto.getSize())); - List records = page.getRecords(); + List records = page.getRecords(); - List processCopyVoList = BeanUtil.copyToList(records, ProcessCopyVo.class); + List processCopyVoList = BeanUtil.copyToList(records, ProcessCopyVo.class); - if (CollUtil.isNotEmpty(records)) { - // 发起人 - List startUserList = records.stream() - .map(ProcessCopy::getStartUserId) - .map(id -> userService.getUserById(id).getData()) - .toList(); + if (CollUtil.isNotEmpty(records)) { + // 发起人 + List userIdList = records.stream().map(ProcessCopy::getStartUserId).collect(Collectors.toList()); + List startUserList = userService.getUserById(userIdList).getData(); - for (ProcessCopyVo record : processCopyVoList) { - SysUser startUser = startUserList.stream() - .filter(w -> w.getUserId().longValue() == record.getStartUserId()) - .findAny() - .orElse(null); - record.setStartUserName(startUser.getUsername()); - } - } + for (ProcessCopyVo record : processCopyVoList) { + SysUser startUser = startUserList.stream() + .filter(w -> w.getUserId().longValue() == record.getStartUserId()) + .findAny() + .orElse(null); + record.setStartUserName(startUser.getUsername()); + } + } - Page p = BeanUtil.copyProperties(page, Page.class); + Page p = BeanUtil.copyProperties(page, Page.class); - p.setRecords(processCopyVoList); + p.setRecords(processCopyVoList); - return R.ok(p); - } + return R.ok(p); + } - /** - * 格式化流程显示 - * @param nodeFormatParamVo - * @return - */ - @SneakyThrows - @Override - public R formatStartNodeShow(NodeFormatParamVo nodeFormatParamVo) { - String flowId = nodeFormatParamVo.getFlowId(); - String processInstanceId = nodeFormatParamVo.getProcessInstanceId(); - if (StrUtil.isAllBlank(flowId, processInstanceId)) { - return R.ok(new ArrayList<>()); - } + /** + * 格式化流程显示 + * + * @param nodeFormatParamVo + * @return + */ + @SneakyThrows + @Override + public R formatStartNodeShow(NodeFormatParamVo nodeFormatParamVo) { + String flowId = nodeFormatParamVo.getFlowId(); + String processInstanceId = nodeFormatParamVo.getProcessInstanceId(); + if (StrUtil.isAllBlank(flowId, processInstanceId)) { + return R.ok(new ArrayList<>()); + } - if (StrUtil.isBlankIfStr(flowId) && StrUtil.isNotBlank(processInstanceId)) { - ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery() - .eq(ProcessInstanceRecord::getProcessInstanceId, processInstanceId) - .one(); - flowId = processInstanceRecord.getFlowId(); + if (StrUtil.isBlankIfStr(flowId) && StrUtil.isNotBlank(processInstanceId)) { + ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery() + .eq(ProcessInstanceRecord::getProcessInstanceId, processInstanceId) + .one(); + flowId = processInstanceRecord.getFlowId(); - } - Map paramMap = nodeFormatParamVo.getParamMap(); - if (StrUtil.isNotBlank(nodeFormatParamVo.getTaskId())) { - VariableQueryParamDto variableQueryParamDto = new VariableQueryParamDto(); - variableQueryParamDto.setTaskId(nodeFormatParamVo.getTaskId()); - R> r = flowEngineService.queryTaskVariables(variableQueryParamDto); - if (!r.isOk()) { - ProcessNodeRecordAssignUser processNodeRecordAssignUser = processNodeRecordAssignUserService - .lambdaQuery() - .eq(ProcessNodeRecordAssignUser::getTaskId, nodeFormatParamVo.getTaskId()) - .eq(ProcessNodeRecordAssignUser::getStatus, NodeStatusEnum.YJS.getCode()) - .last("limit 1") - .orderByDesc(ProcessNodeRecordAssignUser::getEndTime) - .one(); + } + Map paramMap = nodeFormatParamVo.getParamMap(); + if (StrUtil.isNotBlank(nodeFormatParamVo.getTaskId())) { + VariableQueryParamDto variableQueryParamDto = new VariableQueryParamDto(); + variableQueryParamDto.setTaskId(nodeFormatParamVo.getTaskId()); + R> r = flowEngineService.queryTaskVariables(variableQueryParamDto); + if (!r.isOk()) { + ProcessNodeRecordAssignUser processNodeRecordAssignUser = processNodeRecordAssignUserService + .lambdaQuery() + .eq(ProcessNodeRecordAssignUser::getTaskId, nodeFormatParamVo.getTaskId()) + .eq(ProcessNodeRecordAssignUser::getStatus, NodeStatusEnum.YJS.getCode()) + .last("limit 1") + .orderByDesc(ProcessNodeRecordAssignUser::getEndTime) + .one(); - String data = processNodeRecordAssignUser.getData(); + String data = processNodeRecordAssignUser.getData(); - Map variableMap = objectMapper.readValue(data, new TypeReference<>() { - }); - variableMap.putAll(paramMap); - paramMap.putAll(variableMap); - } - else { - Map variableMap = r.getData(); - variableMap.putAll(paramMap); - paramMap.putAll(variableMap); - } + Map variableMap = objectMapper.readValue(data, new TypeReference<>() { + }); + variableMap.putAll(paramMap); + paramMap.putAll(variableMap); + } else { + Map variableMap = r.getData(); + variableMap.putAll(paramMap); + paramMap.putAll(variableMap); + } - } + } - Set completeNodeSet = new HashSet<>(); + Set completeNodeSet = new HashSet<>(); - if (StrUtil.isNotBlank(processInstanceId)) { - List processNodeRecordList = processNodeRecordService.lambdaQuery() - .eq(ProcessNodeRecord::getProcessInstanceId, processInstanceId) - .eq(ProcessNodeRecord::getStatus, NodeStatusEnum.YJS.getCode()) - .list(); - Set collect = processNodeRecordList.stream() - .map(ProcessNodeRecord::getNodeId) - .collect(Collectors.toSet()); - completeNodeSet.addAll(collect); - } + if (StrUtil.isNotBlank(processInstanceId)) { + List processNodeRecordList = processNodeRecordService.lambdaQuery() + .eq(ProcessNodeRecord::getProcessInstanceId, processInstanceId) + .eq(ProcessNodeRecord::getStatus, NodeStatusEnum.YJS.getCode()) + .list(); + Set collect = processNodeRecordList.stream() + .map(ProcessNodeRecord::getNodeId) + .collect(Collectors.toSet()); + completeNodeSet.addAll(collect); + } - Process oaForms = processService.getByFlowId(flowId); - String process = oaForms.getProcess(); - Node nodeDto = objectMapper.readValue(process, new TypeReference<>() { - }); + Process oaForms = processService.getByFlowId(flowId); + String process = oaForms.getProcess(); + Node nodeDto = objectMapper.readValue(process, new TypeReference<>() { + }); - List processNodeShowDtos = NodeFormatUtil.formatProcessNodeShow(nodeDto, completeNodeSet, - new HashSet<>(), processInstanceId, paramMap); + List processNodeShowDtos = NodeFormatUtil.formatProcessNodeShow(nodeDto, completeNodeSet, + new HashSet<>(), processInstanceId, paramMap); - return R.ok(processNodeShowDtos); - } + return R.ok(processNodeShowDtos); + } - /** - * 流程详情 - * @param processInstanceId - * @return - */ - @SneakyThrows - @Override - public R detail(String processInstanceId) { - ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery() - .eq(ProcessInstanceRecord::getProcessInstanceId, processInstanceId) - .one(); + /** + * 流程详情 + * + * @param processInstanceId + * @return + */ + @SneakyThrows + @Override + public R detail(String processInstanceId) { + ProcessInstanceRecord processInstanceRecord = processInstanceRecordService.lambdaQuery() + .eq(ProcessInstanceRecord::getProcessInstanceId, processInstanceId) + .one(); - Process oaForms = processService.getByFlowId(processInstanceRecord.getFlowId()); - if (oaForms == null) { - return R.failed("流程不存在"); - } + Process oaForms = processService.getByFlowId(processInstanceRecord.getFlowId()); + if (oaForms == null) { + return R.failed("流程不存在"); + } - // 发起人变量数据 - String formData = processInstanceRecord.getFormData(); - Map variableMap = objectMapper.readValue(formData, new TypeReference<>() { - }); - // 发起人表单权限 - String process = oaForms.getProcess(); + // 发起人变量数据 + String formData = processInstanceRecord.getFormData(); + Map variableMap = objectMapper.readValue(formData, new TypeReference<>() { + }); + // 发起人表单权限 + String process = oaForms.getProcess(); - Node nodeDto = objectMapper.readValue(process, Node.class); - Map formPerms1 = nodeDto.getFormPerms(); + Node nodeDto = objectMapper.readValue(process, Node.class); + Map formPerms1 = nodeDto.getFormPerms(); - List jsonObjectList = objectMapper.readValue(oaForms.getFormItems(), new TypeReference<>() { - }); - for (FormItemVO formItemVO : jsonObjectList) { - String id = formItemVO.getId(); - String perm = formPerms1.get(id); + List jsonObjectList = objectMapper.readValue(oaForms.getFormItems(), new TypeReference<>() { + }); + for (FormItemVO formItemVO : jsonObjectList) { + String id = formItemVO.getId(); + String perm = formPerms1.get(id); - formItemVO.setPerm(StrUtil.isBlankIfStr(perm) ? ProcessInstanceConstant.FormPermClass.READ - : (StrUtil.equals(perm, ProcessInstanceConstant.FormPermClass.HIDE) ? perm - : ProcessInstanceConstant.FormPermClass.READ)); + formItemVO.setPerm(StrUtil.isBlankIfStr(perm) ? ProcessInstanceConstant.FormPermClass.READ + : (StrUtil.equals(perm, ProcessInstanceConstant.FormPermClass.HIDE) ? perm + : ProcessInstanceConstant.FormPermClass.READ)); - if (formItemVO.getType().equals(FormTypeEnum.LAYOUT.getType())) { - // 明细 - List> subParamList = MapUtil.get(variableMap, id, - new cn.hutool.core.lang.TypeReference<>() { - }); + if (formItemVO.getType().equals(FormTypeEnum.LAYOUT.getType())) { + // 明细 + List> subParamList = MapUtil.get(variableMap, id, + new cn.hutool.core.lang.TypeReference<>() { + }); - Object value = formItemVO.getProps().getValue(); + Object value = formItemVO.getProps().getValue(); - List> l = new ArrayList<>(); - for (Map map : subParamList) { - List subItemList = Convert.toList(FormItemVO.class, value); - for (FormItemVO itemVO : subItemList) { - itemVO.getProps().setValue(map.get(itemVO.getId())); + List> l = new ArrayList<>(); + for (Map map : subParamList) { + List subItemList = Convert.toList(FormItemVO.class, value); + for (FormItemVO itemVO : subItemList) { + itemVO.getProps().setValue(map.get(itemVO.getId())); - String permSub = formPerms1.get(itemVO.getId()); + String permSub = formPerms1.get(itemVO.getId()); - itemVO.setPerm(StrUtil.isBlankIfStr(permSub) ? ProcessInstanceConstant.FormPermClass.READ - : (StrUtil.equals(permSub, ProcessInstanceConstant.FormPermClass.HIDE) ? permSub - : ProcessInstanceConstant.FormPermClass.READ)); + itemVO.setPerm(StrUtil.isBlankIfStr(permSub) ? ProcessInstanceConstant.FormPermClass.READ + : (StrUtil.equals(permSub, ProcessInstanceConstant.FormPermClass.HIDE) ? permSub + : ProcessInstanceConstant.FormPermClass.READ)); - } - l.add(subItemList); - } - formItemVO.getProps().setValue(l); + } + l.add(subItemList); + } + formItemVO.getProps().setValue(l); - } - else { - formItemVO.getProps().setValue(variableMap.get(id)); + } else { + formItemVO.getProps().setValue(variableMap.get(id)); - } + } - } - Dict set = Dict.create() - .set("processInstanceId", processInstanceId) - .set("process", oaForms.getProcess()) + } + Dict set = Dict.create() + .set("processInstanceId", processInstanceId) + .set("process", oaForms.getProcess()) - .set("formItems", jsonObjectList); + .set("formItems", jsonObjectList); - return R.ok(set); - } + return R.ok(set); + } } diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/RemoteServiceImpl.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/RemoteServiceImpl.java index 30df47ac5..8dbba6f96 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/RemoteServiceImpl.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/service/impl/RemoteServiceImpl.java @@ -163,7 +163,7 @@ public class RemoteServiceImpl implements IRemoteService { */ @Override public R> queryUserAllInfo(long userId) { - SysUser sysUser = userService.getUserById(userId).getData(); + SysUser sysUser = userService.getUserById(CollUtil.newArrayList(userId)).getData().get(0); return R.ok(BeanUtil.beanToMap(sysUser)); } diff --git a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java index 228097e1a..8d6990bd1 100644 --- a/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java +++ b/pigx-flow/pigx-flow-task/pigx-flow-task-biz/src/main/java/com/pig4cloud/pigx/flow/task/utils/NodeFormatUtil.java @@ -257,7 +257,7 @@ public class NodeFormatUtil { } RemoteUserService userService = SpringUtil.getBean(RemoteUserService.class); - SysUser user = userService.getUserById(userId).getData(); + SysUser user = userService.getUserById(CollUtil.newArrayList(userId)).getData().get(0); if (user == null) { return null; }