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