From 2cf8f4dff8667d54037ab91ded0b1edea9a26d05 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期五, 17 一月 2025 11:46:48 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 41 +++++++++++++++++++++-------------------- 1 files changed, 21 insertions(+), 20 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..15f8119 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; /** * 鍒嗛〉鏌ヨ @@ -275,11 +265,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); @@ -319,7 +316,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())) { @@ -510,7 +511,7 @@ taskService.deleteCandidateGroup(task.getId(), identityLink.getGroupId()); } } - TaskDelegateData jsonData = new TaskDelegateData(); + DelegateData jsonData = new DelegateData(); jsonData.setBeforeHandlerIds(beforeHandlerIds); jsonData.setBeforeHandlerType(beforeHandlerType); @@ -555,8 +556,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("杞姙鎴愬姛"); } -- Gitblit v1.8.0