From 80662b34fe93b4ede00c7fc03fbd9f01355c94e2 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期一, 07 四月 2025 13:52:17 +0800 Subject: [PATCH] 修改任务接口 --- business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java | 71 +++++++++++++++++++++++++++++++++-- 1 files changed, 66 insertions(+), 5 deletions(-) diff --git a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java index af1da78..b1133be 100644 --- a/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/FlowTaskServiceImpl.java @@ -28,6 +28,7 @@ import com.ycl.domain.entity.ProcessLog; import com.ycl.domain.entity.ProjectProcess; import com.ycl.domain.entity.SysForm; +import com.ycl.domain.form.EditFinishedTaskForm; import com.ycl.domain.json.RejectData; import com.ycl.domain.query.ProcessLogQuery; import com.ycl.domain.vo.*; @@ -190,6 +191,7 @@ } return AjaxResult.success("鎻愪氦鎴愬姛"); } + /** * 瀹圭己琛ヤ氦 @@ -1411,6 +1413,58 @@ } /** + * 鏌ヨ褰撳墠浠诲姟鐨勮〃鍗曟暟鎹� + * + * @param taskId + * @return + * @throws Exception + */ + @Override + public AjaxResult currentFlowTaskForm(String taskId) { + // 娴佺▼鍙橀噺 + List<HistoricTaskInstance> hisTaskList = historyService.createHistoricTaskInstanceQuery() + .includeProcessVariables() + .finished() + .taskId(taskId) + .orderByHistoricTaskInstanceStartTime() + .desc() + .list(); + if (CollectionUtils.isEmpty(hisTaskList) || Objects.isNull(hisTaskList.get(0))) { + return AjaxResult.error("鏈壘鍒拌浠诲姟淇℃伅"); + } + HistoricTaskInstance historicTaskInstance = hisTaskList.get(0); + Map<String, Object> parameters = historicTaskInstance.getProcessVariables(); + String processInsId = historicTaskInstance.getProcessInstanceId(); + List<FormDetailVO> beforeNodes = this.getBeforeNodeForm(parameters, historicTaskInstance.getFormKey(), historicTaskInstance.getName(), historicTaskInstance.getProcessDefinitionId(), historicTaskInstance.getTaskDefinitionKey(), Boolean.FALSE); + // 鍒ゆ柇鍓嶇疆浠诲姟鏄笉鏄拰褰撳墠浠诲姟涓哄悓涓�涓猠xecuteId + // 鍒ゆ柇褰撳墠浠诲姟鏄惁琚寕璧蜂腑 + String finalProcessInsId = processInsId; + + List<DoFormDetailVO> vos = beforeNodes.stream() + .filter(FormDetailVO::getCurrent) + .map(node -> { + if (node.getCurrent()) { + if (processLogService.taskIsHangup(taskId, finalProcessInsId)) { + node.setTaskStatus(TaskStatusEnum.HANGUP); + } + } + // 鍒ゆ柇浠诲姟鏄惁瀛樺湪鐗规畩鎿嶄綔(濡傝烦杩囥�佽浆鍔炵瓑)锛岄渶瑕佸湪鍓嶇灞曠ず鍑烘潵 + ProcessLogQuery query = new ProcessLogQuery(); + query.setTaskId(node.getTaskId()); + query.setProcessInsId(finalProcessInsId); + Result result = processLogService.projectProcessLogList(query); + List<ProcessLogVO> logList = (List<ProcessLogVO>) result.get("data"); + DoFormDetailVO vo = new DoFormDetailVO(); + BeanUtils.copyProperties(node, vo); + if (CollectionUtils.isNotEmpty(logList)) { + vo.setEvents(logList); + } + return vo; + }).collect(Collectors.toList()); + return AjaxResult.success(vos.get(0)); + } + + /** * 娴佺▼鑺傜偣琛ㄥ崟 * * @param taskId 娴佺▼浠诲姟缂栧彿 @@ -1423,11 +1477,17 @@ Map<String, Object> parameters = new HashMap<>(); List<FormDetailVO> beforeNodes = new ArrayList<>(); String processInsId = ""; - HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().includeProcessVariables().finished().taskId(taskId).singleResult(); - if (Objects.nonNull(historicTaskInstance)) { - parameters = historicTaskInstance.getProcessVariables(); - processInsId = historicTaskInstance.getProcessInstanceId(); - beforeNodes = this.getBeforeNodeForm(parameters, historicTaskInstance.getFormKey(), historicTaskInstance.getName(), historicTaskInstance.getProcessDefinitionId(), historicTaskInstance.getTaskDefinitionKey(), Boolean.FALSE); + List<HistoricTaskInstance> hisTaskList = historyService.createHistoricTaskInstanceQuery() + .includeProcessVariables() + .finished() + .taskId(taskId) + .orderByHistoricTaskInstanceStartTime() + .desc() + .list(); + if (CollectionUtils.isNotEmpty(hisTaskList) && Objects.nonNull(hisTaskList.get(0))) { + parameters = hisTaskList.get(0).getProcessVariables(); + processInsId = hisTaskList.get(0).getProcessInstanceId(); + beforeNodes = this.getBeforeNodeForm(parameters, hisTaskList.get(0).getFormKey(), hisTaskList.get(0).getName(), hisTaskList.get(0).getProcessDefinitionId(), hisTaskList.get(0).getTaskDefinitionKey(), Boolean.FALSE); } else { parameters = taskService.getVariables(taskId); processInsId = task.getProcessInstanceId(); @@ -1717,6 +1777,7 @@ return beforeNodes; } + /** * 娴佺▼鑺傜偣淇℃伅 * -- Gitblit v1.8.0