From d5503d0cbe5af548541777a179ee39126b209b36 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期三, 05 三月 2025 12:36:43 +0800
Subject: [PATCH] 转办日志查询bug
---
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 110 ++++++++++++++++++++++++++++++++++---------------------
1 files changed, 68 insertions(+), 42 deletions(-)
diff --git a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
index 1ad1628..23c7f21 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -19,9 +19,7 @@
import com.ycl.domain.entity.*;
import com.ycl.domain.form.*;
import com.ycl.domain.json.*;
-import com.ycl.domain.vo.CustomerTaskVO;
-import com.ycl.domain.vo.IndexCustomerTaskVO;
-import com.ycl.domain.vo.ProjectProcessDetailVO;
+import com.ycl.domain.vo.*;
import com.ycl.event.event.TaskLogEvent;
import com.ycl.mapper.ProjectEngineeringMapper;
import com.ycl.mapper.ProjectInfoMapper;
@@ -29,13 +27,13 @@
import com.ycl.service.*;
import com.ycl.common.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.ycl.domain.vo.ProjectProcessVO;
import com.ycl.domain.query.ProjectProcessQuery;
import com.ycl.service.common.TaskCommonService;
import com.ycl.system.service.ISysDeptService;
import com.ycl.system.service.ISysDictTypeService;
import com.ycl.system.service.ISysRoleService;
import com.ycl.system.service.ISysUserService;
+import com.ycl.utils.TreeUtil;
import lombok.Synchronized;
import org.apache.commons.lang3.StringUtils;
import org.flowable.bpmn.model.*;
@@ -104,8 +102,20 @@
IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class);
baseMapper.getPage(query, page);
for (ProjectProcessVO vo : page.getRecords()) {
+ List<ProjectEngineeringVO> childList = baseMapper.getEngineeringList(vo.getId());
+ childList.stream().forEach(child -> {
+ if (StringUtils.isNotBlank(child.getProcessDefId())) {
+ ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(child.getProcessDefId()).singleResult();
+ if (Objects.nonNull(processDefinition)) {
+ child.setSuspended(processDefinition.isSuspended());
+ child.setFlowableProcessName(processDefinition.getName() + "(v" + processDefinition.getVersion() + ")");
+ child.setDeployId(processDefinition.getDeploymentId());
+ }
+ }
+ });
+ vo.setChildren(TreeUtil.treeForProjectEng(childList));
vo.setStatus(vo.getProjectStatus());
- if (Objects.nonNull(vo.getProcessDefId())) {
+ if (StringUtils.isNotBlank(vo.getProcessDefId())) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult();
if (Objects.nonNull(processDefinition)) {
vo.setSuspended(processDefinition.isSuspended());
@@ -146,7 +156,6 @@
Long unitId = null;
if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
- .select(ProjectInfo::getProjectOwnerUnit)
.eq(ProjectInfo::getId, form.getProjectId())
.one();
if (Objects.isNull(project)) {
@@ -155,7 +164,6 @@
unitId = project.getProjectOwnerUnit();
} else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
- .select(ProjectEngineering::getDepartment)
.eq(ProjectEngineering::getId, form.getProjectId())
.one();
if (Objects.isNull(projectEngineering)) {
@@ -186,7 +194,6 @@
Long unitId = null;
if (ProjectProcessTypeEnum.PROJECT.equals(form.getProjectType())) {
ProjectInfo project = new LambdaQueryChainWrapper<>(projectInfoMapper)
- .select(ProjectInfo::getProjectOwnerUnit)
.eq(ProjectInfo::getId, form.getProjectId())
.one();
if (Objects.isNull(project)) {
@@ -195,7 +202,6 @@
unitId = project.getProjectOwnerUnit();
} else if (ProjectProcessTypeEnum.ENGINEERING.equals(form.getProjectType())) {
ProjectEngineering projectEngineering = new LambdaQueryChainWrapper<>(projectEngineeringMapper)
- .select(ProjectEngineering::getDepartment)
.eq(ProjectEngineering::getId, form.getProjectId())
.one();
if (Objects.isNull(projectEngineering)) {
@@ -241,6 +247,7 @@
variables.put(ProcessConstants.PROCESS_INITIATOR, sysUser.getUserId());
// 灏嗚椤圭洰鐨勭敵璇蜂汉锛堜笟涓绘柟锛変綔涓烘祦绋嬩腑鏌愪簺鐜妭鐨勫鐞嗕汉
variables.put(ProcessConstants.DATA_LAUNCH, "dept:" + createBy);
+ variables.put("a", 1);
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefId, projectId + "", variables);
return processInstance.getId();
}
@@ -392,13 +399,28 @@
taskVO.setTaskDefinitionKey(task.getTaskDefinitionKey());
// 娴佺▼椤圭洰淇℃伅
- ProjectInfo project = baseMapper.getProjectInfo(task.getProcessInstanceId());
- if (Objects.nonNull(project)) {
- taskVO.setProjectId(project.getId());
- taskVO.setProjectName(project.getProjectName());
- } else {
- continue;
+ ProjectProcess projectProcess = new LambdaQueryChainWrapper<>(baseMapper)
+ .eq(ProjectProcess::getProcessInsId, task.getProcessInstanceId())
+ .one();
+ String projectId = "";
+ String projectName = "";
+ if (Objects.nonNull(projectProcess)) {
+ if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.PROJECT)) {
+ ProjectInfo project = projectInfoMapper.selectById(projectProcess.getProjectId());
+ if (Objects.nonNull(project)) {
+ projectId = projectProcess.getProjectId();
+ projectName = project.getProjectName();
+ }
+ } else if (projectProcess.getProjectType().equals(ProjectProcessTypeEnum.ENGINEERING)) {
+ ProjectEngineering engineering = projectEngineeringMapper.selectById(projectProcess.getProjectId());
+ if (Objects.nonNull(engineering)) {
+ projectId = projectProcess.getProjectId();
+ projectName = engineering.getProjectName();
+ }
+ }
}
+ taskVO.setProjectId(projectId);
+ taskVO.setProjectName(projectName);
// 娴佺▼鍙戣捣浜轰俊鎭�
this.setPromoterInfo(taskVO);
@@ -739,7 +761,7 @@
ProcessLog processLog = new LambdaQueryChainWrapper<>(processLogService.getBaseMapper())
.eq(ProcessLog::getTaskId, form.getTaskId())
.eq(ProcessLog::getEventType, ProcessLogEventTypeEnum.SUPERVISE)
- .eq(ProcessLog::getProcessInsId, form.getProcessInsId())
+ .eq(ProcessLog::getProcessInsId, task.getProcessInstanceId())
.one();
List<SuperviseData> dataList;
if (processLog != null) {
@@ -756,7 +778,7 @@
processLog.getId(),
processLog.getUserId(),
form.getProjectId(),
- form.getProcessInsId(),
+ task.getProcessInstanceId(),
form.getTaskId(),
task.getTaskDefinitionKey(),
task.getName(),
@@ -1031,14 +1053,16 @@
vo.setCreateTime(historicTasks.get(0).getStartTime());
// 鏌ヨ瀹為檯澶勭悊浜�
- long handlerUserId = Long.parseLong(historicTasks.get(0).getAssignee());
- SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
- if (Objects.nonNull(handlerUser)) {
- handlerIds.add(handlerUserId);
- handlerNames.add(this.getUserShowName(handlerUser));
- if (Objects.nonNull(handlerUser.getDept())) {
- handlerUnitNames.add(handlerUser.getDept().getDeptName());
- handlerUnitIds.add(handlerUser.getDept().getDeptId());
+ if (StringUtils.isNotBlank(historicTasks.get(0).getAssignee())) {
+ long handlerUserId = Long.parseLong(historicTasks.get(0).getAssignee());
+ SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
+ if (Objects.nonNull(handlerUser)) {
+ handlerIds.add(handlerUserId);
+ handlerNames.add(this.getUserShowName(handlerUser));
+ if (Objects.nonNull(handlerUser.getDept())) {
+ handlerUnitNames.add(handlerUser.getDept().getDeptName());
+ handlerUnitIds.add(handlerUser.getDept().getDeptId());
+ }
}
}
vo.setTaskDefinitionKey(historicTasks.get(0).getTaskDefinitionKey());
@@ -1106,25 +1130,27 @@
.orderByHistoricTaskInstanceStartTime()
.desc()
.list();
-
- vo.setTaskStatus(TaskStatusEnum.FINISHED);
- // 濡傛灉鏄凡瀹屾垚鐨勶紝淇℃伅闇�瑕佸崟鐙祴鍊�
- vo.setTaskId(hisTaskList.get(0).getId());
- vo.setExecutionId(hisTaskList.get(0).getExecutionId());
- vo.setCreateTime(hisTaskList.get(0).getStartTime());
- // 鏌ヨ瀹為檯澶勭悊浜�
- long handlerUserId = Long.parseLong(hisTaskList.get(0).getAssignee());
- SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
- if (Objects.nonNull(handlerUser)) {
-
- vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee());
- vo.setActualHandlerUserName(handlerUser.getNickName());
+ // 濡傛灉鏈壘鍒板巻鍙蹭换鍔★紝璇存槑杩欎釜浠诲姟鍙兘澶勪簬鏌愪釜浜掓枼缃戝叧涓嬶紝瀹為檯骞舵湭鎵ц
+ if (CollectionUtils.isEmpty(hisTaskList)) {
+ vo.setTaskStatus(TaskStatusEnum.NOT_START);
+ } else {
+ vo.setTaskStatus(TaskStatusEnum.FINISHED);
+ // 濡傛灉鏄凡瀹屾垚鐨勶紝淇℃伅闇�瑕佸崟鐙祴鍊�
+ vo.setTaskId(hisTaskList.get(0).getId());
+ vo.setExecutionId(hisTaskList.get(0).getExecutionId());
+ vo.setCreateTime(hisTaskList.get(0).getStartTime());
+ // 鏌ヨ瀹為檯澶勭悊浜�
+ long handlerUserId = Long.parseLong(hisTaskList.get(0).getAssignee());
+ SysUser handlerUser = sysUserService.selectUserById(handlerUserId);
+ if (Objects.nonNull(handlerUser)) {
+ vo.setActualHandlerUserId(hisTaskList.get(0).getAssignee());
+ vo.setActualHandlerUserName(handlerUser.getNickName());
+ }
+ vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey());
+ this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks());
}
- vo.setTaskDefinitionKey(hisTaskList.get(0).getTaskDefinitionKey());
- this.setPromoterAndHandler(vo, hisTaskList.get(0).getIdentityLinks());
-
return vo;
- }).collect(Collectors.toList());
+ }).filter(Objects::nonNull).collect(Collectors.toList());
return vos;
}
--
Gitblit v1.8.0