From 9daa04779f76b91a4d806bef88c19d13637d1c58 Mon Sep 17 00:00:00 2001
From: xiangpei <xiangpei@timesnew.cn>
Date: 星期二, 21 一月 2025 15:02:50 +0800
Subject: [PATCH] 项目被删除、所有关联数据不查询
---
business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 73 ++++++++++++++++++++++--------------
1 files changed, 45 insertions(+), 28 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 1eb9919..f00ba94 100644
--- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
+++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java
@@ -1,35 +1,28 @@
package com.ycl.service.impl;
-import com.alibaba.fastjson2.JSON;
-import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.ycl.common.constant.ProcessConstants;
-import com.ycl.common.core.domain.AjaxResult;
import com.ycl.common.core.domain.entity.SysDept;
import com.ycl.common.core.domain.entity.SysRole;
import com.ycl.common.core.domain.entity.SysUser;
-import com.ycl.common.enums.FlowComment;
-import com.ycl.common.enums.business.FlowLogEventTypeEnum;
import com.ycl.common.enums.business.HandlerTypeEnum;
+import com.ycl.common.enums.business.ProcessLogEventTypeEnum;
import com.ycl.common.enums.business.TaskStatusEnum;
import com.ycl.common.utils.SecurityUtils;
import com.ycl.constant.TaskTypeConstant;
-import com.ycl.domain.dto.FlowTaskDto;
-import com.ycl.domain.entity.FlowLog;
import com.ycl.domain.entity.ProjectInfo;
import com.ycl.domain.entity.ProjectProcess;
-import com.ycl.domain.form.RejectTaskForm;
import com.ycl.domain.form.TaskDelegationForm;
-import com.ycl.domain.json.TaskDelegateData;
+import com.ycl.domain.json.DelegateData;
import com.ycl.domain.vo.CustomerTaskVO;
import com.ycl.domain.vo.IndexCustomerTaskVO;
import com.ycl.domain.vo.ProjectProcessDetailVO;
+import com.ycl.event.event.TaskLogEvent;
import com.ycl.mapper.ProjectInfoMapper;
import com.ycl.mapper.ProjectProcessMapper;
-import com.ycl.service.FlowLogService;
import com.ycl.service.ProjectProcessService;
import com.ycl.common.base.Result;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -51,18 +44,15 @@
import org.flowable.identitylink.api.IdentityLink;
import org.flowable.identitylink.api.IdentityLinkInfo;
import org.flowable.identitylink.api.IdentityLinkType;
-import org.flowable.identitylink.api.history.HistoricIdentityLink;
import org.flowable.identitylink.service.impl.persistence.entity.IdentityLinkEntityImpl;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.flowable.task.api.history.HistoricTaskInstance;
-import org.flowable.task.api.history.HistoricTaskInstanceQuery;
+import org.springframework.context.ApplicationEventPublisher;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import com.ycl.framework.utils.PageUtil;
-import org.springframework.beans.BeanUtils;
import org.springframework.transaction.annotation.Transactional;
-import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import java.util.*;
@@ -89,7 +79,7 @@
private final ISysRoleService sysRoleService;
private final ISysDeptService sysDeptService;
private final TaskCommonService taskCommonService;
- private final FlowLogService flowLogService;
+ private final ApplicationEventPublisher publisher;
/**
* 鍒嗛〉鏌ヨ
@@ -100,13 +90,14 @@
@Override
public Result page(ProjectProcessQuery query) {
IPage<ProjectProcessVO> page = PageUtil.getPage(query, ProjectProcessVO.class);
- baseMapper.getPage(page, query);
+ baseMapper.getPage(query, page);
for (ProjectProcessVO vo : page.getRecords()) {
if (Objects.nonNull(vo.getProcessDefId())) {
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(vo.getProcessDefId()).singleResult();
if (Objects.nonNull(processDefinition)) {
vo.setSuspended(processDefinition.isSuspended());
vo.setFlowableProcessName(processDefinition.getName() + "(v" + processDefinition.getVersion() + ")");
+ vo.setDeployId(processDefinition.getDeploymentId());
}
}
}
@@ -275,11 +266,18 @@
TaskQuery taskQuery = taskService.createTaskQuery()
.active()
.includeProcessVariables()
- .includeIdentityLinks()
.orderByTaskCreateTime().desc();
if (StringUtils.isNotBlank(taskName)) {
taskQuery.processDefinitionNameLike(taskName);
+ }
+ if (! SecurityUtils.getLoginUser().getUser().isAdmin()) {
+ taskQuery
+ .or()
+ .taskCandidateGroupIn(taskCommonService.getCurrentUserGroups())
+ .taskCandidateUser(SecurityUtils.getUserId() + "")
+ .taskAssignee(SecurityUtils.getUserId() + "")
+ .endOr();
}
result.total(taskQuery.count());
List<Task> taskList = taskQuery.listPage(pageSize * (pageNum - 1), pageSize);
@@ -307,6 +305,8 @@
if (Objects.nonNull(project)) {
taskVO.setProjectId(project.getId());
taskVO.setProjectName(project.getProjectName());
+ } else {
+ continue;
}
// 娴佺▼鍙戣捣浜轰俊鎭�
@@ -319,7 +319,11 @@
List<String> handlerUnitNames = new ArrayList<>(2);
// 娴佺▼澶勭悊浜轰俊鎭�
- List<? extends IdentityLinkInfo> identityLinks = task.getIdentityLinks();
+ List<IdentityLink> identityLinks = taskService.getIdentityLinksForTask(task.getId());
+// Boolean aboutMe = taskCommonService.taskAboutMe(identityLinks);
+// if (! aboutMe) {
+// continue;
+// }
for (IdentityLinkInfo identityLink : identityLinks) {
// 缁戝畾鐨勬槸鐢ㄦ埛锛屾煡鍑虹敤鎴峰鍚嶃�侀儴闂�
if (StringUtils.isNotBlank(identityLink.getUserId())) {
@@ -361,6 +365,9 @@
taskVO.setHandlerUnitId(handlerUnitIds);
taskVO.setHandlerUnitName(handlerUnitNames);
vos.add(taskVO);
+ }
+ if (vos.size() < pageSize) {
+ result.total(vos.size());
}
result.put("taskList", vos);
}
@@ -510,7 +517,7 @@
taskService.deleteCandidateGroup(task.getId(), identityLink.getGroupId());
}
}
- TaskDelegateData jsonData = new TaskDelegateData();
+ DelegateData jsonData = new DelegateData();
jsonData.setBeforeHandlerIds(beforeHandlerIds);
jsonData.setBeforeHandlerType(beforeHandlerType);
@@ -555,8 +562,8 @@
}
jsonData.setAfterHandlerIds(afterHandlerIds);
jsonData.setAfterHandlerType(form.getPeopleType());
- // 娣诲姞鏃ュ織
- flowLogService.add(task.getId(), task.getProcessInstanceId(), FlowLogEventTypeEnum.DELEGATE, form.getProjectId(), JSON.toJSONString(jsonData));
+ // 鍙戝竷杞姙浜嬩欢
+ publisher.publishEvent(new TaskLogEvent(this, form.getProjectId(), form.getProcessInsId(), task.getId(), ProcessLogEventTypeEnum.DELEGATE, jsonData));
return Result.ok("杞姙鎴愬姛");
}
@@ -658,13 +665,18 @@
// 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡
if (StringUtils.isNotBlank(userTask.getAssignee())) {
vo.setHandlerType(HandlerTypeEnum.USER);
- SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
- if (Objects.nonNull(sysUser)) {
- handlerIds.add(sysUser.getUserId());
- handlerNames.add(sysUser.getNickName());
- if (Objects.nonNull(sysUser.getDept())) {
- handlerUnitIds.add(sysUser.getDept().getDeptId());
- handlerUnitNames.add(sysUser.getDept().getDeptName());
+ // 澶勭悊鍙橀噺琛ㄨ揪寮�
+ if (userTask.getAssignee().contains(ProcessConstants.DATA_LAUNCH)) {
+ handlerNames.add(userTask.getAssignee());
+ } else {
+ SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
+ if (Objects.nonNull(sysUser)) {
+ handlerIds.add(sysUser.getUserId());
+ handlerNames.add(sysUser.getNickName());
+ if (Objects.nonNull(sysUser.getDept())) {
+ handlerUnitIds.add(sysUser.getDept().getDeptId());
+ handlerUnitNames.add(sysUser.getDept().getDeptName());
+ }
}
}
} else if (CollectionUtil.isNotEmpty(userTask.getCandidateGroups())) {
@@ -927,6 +939,11 @@
// 鏈紑濮嬬殑浠诲姟锛屽叾鍏宠仈鐨勭敤鎴风粍杩欎簺閮藉彲浠ヤ粠UserTask涓嬁鍒帮紝鍥犱负鏈韩鏈紑濮嬬殑浠诲姟鏄病鏈塼ask鐨勶紝鎵�浠ヨ繖閲岀洿鎺ユ煡
if (StringUtils.isNotBlank(userTask.getAssignee())) {
vo.setHandlerType(HandlerTypeEnum.USER);
+ // 澶勭悊鍙橀噺琛ㄨ揪寮�
+ if (userTask.getAssignee().contains(ProcessConstants.DATA_LAUNCH)) {
+ handlerNames.add(userTask.getAssignee());
+ continue;
+ }
SysUser sysUser = sysUserService.selectUserById(Long.parseLong(userTask.getAssignee()));
if (Objects.nonNull(sysUser)) {
handlerIds.add(sysUser.getUserId());
--
Gitblit v1.8.0