From a0e8d1bbff7a02f538be76e852aa233324bd8810 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期五, 03 一月 2025 13:31:51 +0800 Subject: [PATCH] 赋码 --- business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java | 41 +++++++++++++++++++++++++++++++++++------ 1 files changed, 35 insertions(+), 6 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 ae71ab6..61d4bc3 100644 --- a/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java +++ b/business/src/main/java/com/ycl/service/impl/ProjectProcessServiceImpl.java @@ -20,6 +20,7 @@ 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.vo.CustomerTaskVO; import com.ycl.domain.vo.ProjectProcessDetailVO; import com.ycl.mapper.ProjectInfoMapper; @@ -44,6 +45,7 @@ import org.flowable.engine.runtime.ProcessInstance; 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.task.api.Task; import org.flowable.task.api.TaskQuery; @@ -254,6 +256,7 @@ TaskQuery taskQuery = taskService.createTaskQuery() .active() .includeProcessVariables() + .includeIdentityLinks() .orderByTaskCreateTime().desc(); if (StringUtils.isNotBlank(taskName)) { @@ -284,8 +287,8 @@ this.setPromoterInfo(taskVO); // 娴佺▼澶勭悊浜轰俊鎭� - List<IdentityLink> identityLinksForTask = taskService.getIdentityLinksForTask(task.getId()); - for (IdentityLink identityLink : identityLinksForTask) { + List<? extends IdentityLinkInfo> identityLinks = task.getIdentityLinks(); + for (IdentityLinkInfo identityLink : identityLinks) { // 缁戝畾鐨勬槸鐢ㄦ埛锛屾煡鍑虹敤鎴峰鍚嶃�侀儴闂� if (StringUtils.isNotBlank(identityLink.getUserId())) { taskVO.setHandlerType(HandlerTypeEnum.USER); @@ -360,10 +363,36 @@ } @Override - public Result rejectTask(RejectTaskForm form) { - Task task = taskService.createTaskQuery().taskId(form.getTaskId()).singleResult(); - taskCommonService.reject(form.getRejectedTaskDefKey(), task.getTaskDefinitionKey(), task.getProcessInstanceId(), form.getTaskId(), form.getAuditOpinion()); - return Result.ok("椹冲洖鎴愬姛"); + public Result taskDelegation(TaskDelegationForm form) { + Task task = taskService.createTaskQuery().taskId(form.getTaskId()).includeIdentityLinks().singleResult(); + if (Objects.isNull(task)) { + throw new RuntimeException("鏈湪杩愯浠诲姟涓壘鍒拌浠诲姟锛屾棤娉曟墽琛岃浆鍔炴搷浣�"); + } + // 闇�瑕佸厛绉婚櫎涔嬪墠鐨勫鐞嗕汉 + for (IdentityLinkInfo identityLink : task.getIdentityLinks()) { + if (StringUtils.isNotBlank(identityLink.getUserId())) { + taskService.deleteCandidateUser(task.getId(), identityLink.getUserId()); + } else if (StringUtils.isNotBlank(identityLink.getGroupId())) { + taskService.deleteCandidateGroup(task.getId(), identityLink.getGroupId()); + } + } + // 鍐嶆柊澧炲鐞嗕汉 + switch (form.getPeopleType()) { + case FIX_USER: + // 鎸囧畾鐢ㄦ埛鐨勮瘽锛屽彧鑳介�変竴涓敤鎴� + taskService.delegateTask(task.getId(), form.getTargetId()); + break; + case USER: + // 鐢ㄦ埛缁勭殑璇濓紝鍙互閫夊涓敤鎴凤紝涓ユ牸鏉ヨ杩欓噷鐨勭敤鎴风粍骞朵笉鏄痜lowable涓殑缁勭殑姒傚康锛屽彧鏄紑婧愭鏋舵湁杩欎釜瀹氫箟 + break; + case DEPT: + taskService.addCandidateGroup(task.getId(), form.getTargetId()); + break; + default: + break; + } + + return Result.ok("杞姙鎴愬姛"); } /** -- Gitblit v1.8.0