diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/controller/TaskTaskController.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/controller/TaskTaskController.java index eb2629b..ed9fb8b 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/controller/TaskTaskController.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/controller/TaskTaskController.java @@ -206,6 +206,22 @@ public class TaskTaskController extends JeecgController updateDeptHandlerName(@RequestBody Map params) { + String processInstanceId = params.get("processInstanceId"); + String deptHandlerName = params.get("deptHandlerName"); + if (StringUtils.isBlank(processInstanceId) || StringUtils.isBlank(deptHandlerName)) { + return Result.error("processInstanceId 和 deptHandlerName 不能为空"); + } + boolean success = taskTaskService.updateDeptHandlerName(processInstanceId, deptHandlerName); + return success ? Result.OK("更新成功") : Result.error("更新失败,未找到对应任务记录"); + } + /** * 导出excel * diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/ITaskTaskService.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/ITaskTaskService.java index 4067099..69be42c 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/ITaskTaskService.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/ITaskTaskService.java @@ -17,4 +17,5 @@ public interface ITaskTaskService extends IService { boolean multiFlowStart(TaskTask taskTask,String userName,Integer intervalType, Integer startCount) throws Exception; Result handleFlowStart(TaskTask taskTask, String username, Integer intervalType, Integer startCount)throws Exception; List getTaskTaskListByBusinessId(String businessId) throws Exception; + boolean updateDeptHandlerName(String processInstanceId, String deptHandlerName); } diff --git a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java index 971bdaf..419f1d0 100644 --- a/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java +++ b/jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/tasktask/service/impl/TaskTaskServiceImpl.java @@ -2,8 +2,11 @@ package org.jeecg.modules.tasktask.service.impl; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.apache.shiro.util.Assert; +import org.flowable.engine.RuntimeService; +import org.flowable.engine.runtime.ProcessInstance; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.extbpm.process.exception.BpmException; import org.jeecg.modules.extbpm.process.service.impl.BpmBaseExtApiImpl; @@ -28,10 +31,13 @@ import java.util.*; * @Date: 2026-04-17 * @Version: V1.0 */ +@Slf4j @Service public class TaskTaskServiceImpl extends ServiceImpl implements ITaskTaskService { @Autowired private BpmBaseExtApiImpl bpmBaseExtApiImpl; + @Autowired + private RuntimeService runtimeService; @Transactional(rollbackFor = Exception.class) public boolean singleFlowStart(TaskTask taskTask, String userName) throws Exception { String jsonString = Optional.ofNullable(taskTask.getJsonData()) @@ -139,4 +145,33 @@ public class TaskTaskServiceImpl extends ServiceImpl i // 2. 查询不到数据 → MP 本身会返回空集合,不是 null return this.list(queryWrapper); } + + @Override + public boolean updateDeptHandlerName(String processInstanceId, String deptHandlerName) { + if (StringUtils.isBlank(processInstanceId) || StringUtils.isBlank(deptHandlerName)) { + log.warn("updateDeptHandlerName: processInstanceId 或 deptHandlerName 为空"); + return false; + } + // 1. 通过 Flowable RuntimeService 获取流程实例,进而获取 businessKey(即 taskTask ID) + ProcessInstance processInstance = runtimeService.createProcessInstanceQuery() + .processInstanceId(processInstanceId) + .singleResult(); + if (processInstance == null) { + log.warn("updateDeptHandlerName: 未找到 processInstanceId={} 对应的流程实例", processInstanceId); + return false; + } + String businessKey = processInstance.getBusinessKey(); + if (StringUtils.isBlank(businessKey)) { + log.warn("updateDeptHandlerName: processInstanceId={} 的 businessKey 为空", processInstanceId); + return false; + } + // 2. businessKey 即为 taskTask 的主键 ID,直接通过 ID 查询 + TaskTask taskTask = this.getById(businessKey); + if (taskTask == null) { + log.warn("updateDeptHandlerName: 未找到 id={} 对应的 taskTask", businessKey); + return false; + } + taskTask.setDeptHandlerName(deptHandlerName); + return this.updateById(taskTask); + } }