From d34d3c83500d5a68715a280eee3d930c88291d71 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期日, 07 九月 2025 19:10:05 +0800
Subject: [PATCH] 增加新编程序统计;固化程序统计
---
blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java | 62 +++++++++++++++----------------
1 files changed, 30 insertions(+), 32 deletions(-)
diff --git a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
index 012db69..c4a1760 100644
--- a/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
+++ b/blade-service/blade-mdm/src/main/java/org/springblade/mdm/flow/service/DoneQueryService.java
@@ -4,33 +4,19 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.AllArgsConstructor;
import org.flowable.engine.HistoryService;
-import org.flowable.engine.RuntimeService;
import org.flowable.engine.TaskService;
import org.flowable.engine.history.HistoricProcessInstance;
-import org.flowable.engine.history.HistoricProcessInstanceQuery;
-import org.flowable.engine.task.Comment;
import org.flowable.task.api.Task;
-import org.flowable.task.api.TaskInfoQuery;
-import org.flowable.task.api.TaskQuery;
-import org.flowable.task.api.history.HistoricTaskInstance;
-import org.flowable.task.api.history.HistoricTaskInstanceQuery;
+import org.flowable.task.api.TaskInfo;
+import org.springblade.core.mp.support.Condition;
import org.springblade.core.secure.utils.AuthUtil;
-import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
-import org.springblade.mdm.flow.constants.FlowContants;
import org.springblade.mdm.flow.entity.FlowProgramFile;
-import org.springblade.mdm.flow.entity.MdmFlowProcess;
import org.springblade.mdm.flow.mapper.DoneMapper;
-import org.springblade.mdm.flow.util.MdmFlowCache;
import org.springblade.mdm.flow.vo.DoneQueryVO;
import org.springblade.mdm.flow.vo.FlowVO;
-import org.springblade.system.feign.IUserClient;
-import org.springblade.system.pojo.entity.User;
import org.springframework.stereotype.Service;
-import java.time.LocalDate;
-import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
@@ -44,38 +30,41 @@
public class DoneQueryService {
private final FlowProgramFileService flowProgramFileService;
private final HistoryService historyService;
- private final IUserClient userClient;
-
+ private final FlowCommonService flowCommonService;
private final DoneMapper doneMapper;
- //
- public IPage<FlowVO> selectDonePage(IPage<FlowVO> page, String s, LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword) {
+ private final TaskService taskService;
+ /**
+ * 鏌ヨ鐢ㄦ埛宸插姙浠诲姟鍒嗛〉鍒楄〃
+ * @param queryVO 鏌ヨ鍙傛暟
+ * @return
+ */
+ //public IPage<FlowVO> selectDonePage(IPage<FlowVO> page, LocalDateTime createTimeBegin, LocalDateTime createTimeEnd, String keyword) {
+ public IPage<FlowVO> selectDonePage(DoneQueryVO queryVO) {
//宸插姙鏂版煡璇�
String userId = "" + AuthUtil.getUserId();
- DoneQueryVO queryVO = new DoneQueryVO();
-
- queryVO.setSize(Long.valueOf(page.getSize()).intValue());
- queryVO.setCurrent(Long.valueOf(page.getCurrent()).intValue());
queryVO.setUserId(userId);
- queryVO.setCreateTimeBegin(createTimeBegin);
- if(createTimeEnd != null){
- createTimeEnd = createTimeEnd.plusDays(1);
+ if(queryVO.getCreateTimeEnd() != null){
+ queryVO.setCreateTimeEnd(queryVO.getCreateTimeEnd().plusDays(1));
}
- queryVO.setCreateTimeEnd(createTimeEnd);
- queryVO.setKeyword(keyword);
-
- IPage<FlowVO> pageDta = doneMapper.pageQuery(page,queryVO);
+ IPage<FlowVO> pageDta = doneMapper.pageQuery(Condition.getPage(queryVO),queryVO);
List<String> instIdList = pageDta.getRecords().stream().map(FlowVO::getProcessInstanceId).toList();
if(!instIdList.isEmpty()) {
List<HistoricProcessInstance> processList = getHistoricProcessInstances(instIdList);
Map<String,Map<String,Object>> varmap = new HashMap<>();
for(HistoricProcessInstance inst : processList) {
-
varmap.put(inst.getId(),inst.getProcessVariables());
}
pageDta.getRecords().forEach(flowVO->{
flowVO.setVariables(varmap.get(flowVO.getProcessInstanceId()));
flowVO.setFile(this.getFileString(flowVO.getProcessInstanceId()));
+ /*
+ boolean active = flowCommonService.isProcessInstanceActive(flowVO.getProcessInstanceId());
+ flowVO.setProcessIsFinished((Func.toStr(!active)));
+ */
+ if(!Func.toBoolean(flowVO.getProcessIsFinished())){
+ flowVO.setCurrentTaskKeys(getCurrentTaskDefKeys(flowVO.getProcessInstanceId()));
+ }
});
}
return pageDta;
@@ -98,4 +87,13 @@
return result;
}
+
+ String getCurrentTaskDefKeys(String processInstanceId) {
+ List<Task> tasks = taskService.createTaskQuery()
+ .processInstanceId(processInstanceId) // 鏍规嵁娴佺▼瀹炰緥ID鏌ヨ
+ .active() // 鏌ヨ娲诲姩鐨勪换鍔�
+ .list();
+ return tasks.stream().map(TaskInfo::getTaskDefinitionKey).collect(Collectors.joining(","));
+
+ }
}
--
Gitblit v1.9.3