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