修复流水线任务指派时子任务未设置接收人的问题

This commit is contained in:
Your Name 2026-01-13 14:04:58 +08:00
parent 0e87c48d30
commit ecbbdb7644

View File

@ -2926,6 +2926,16 @@ public class TaskService {
public void updatePipelineSubTasksForAssigned(Long taskId, String pipelineMode) {
log.info("更新指派流水线任务的子任务状态:taskId={}, mode={}", taskId, pipelineMode);
// 获取主任务信息
Task mainTask = taskMapper.selectById(taskId);
if (mainTask == null) {
log.warn("主任务不存在:taskId={}", taskId);
return;
}
Long receiverId = mainTask.getReceiverId();
Long receiverDeptId = mainTask.getReceiverDeptId();
List<TaskItem> taskItems = taskItemMapper.selectList(
new LambdaQueryWrapper<TaskItem>()
.eq(TaskItem::getTaskId, taskId)
@ -2938,20 +2948,36 @@ public class TaskService {
}
if ("parallel".equals(pipelineMode)) {
// 并行模式:所有子任务都进入in_progress状态
// 并行模式:所有子任务都进入in_progress状态,并设置接收人
for (TaskItem item : taskItems) {
item.setStatus("in_progress");
item.setIsLocked(0);
// 如果子任务还没有接收人,设置为主任务的接收人
if (item.getReceiverId() == null && receiverId != null) {
item.setReceiverId(receiverId);
if (receiverDeptId != null) {
item.setReceiverDeptId(receiverDeptId);
}
log.info("子任务 {} 已设置接收人: {}", item.getId(), receiverId);
}
taskItemMapper.updateById(item);
}
log.info("并行流水线任务的所有子任务已更新为in_progress:count={}", taskItems.size());
} else {
// 顺序模式:只有第一组进入in_progress状态
// 顺序模式:只有第一组进入in_progress状态,并设置接收人
Integer firstGroupNo = taskItems.get(0).getGroupNo();
for (TaskItem item : taskItems) {
if (item.getGroupNo().equals(firstGroupNo)) {
item.setStatus("in_progress");
item.setIsLocked(0);
// 如果子任务还没有接收人,设置为主任务的接收人
if (item.getReceiverId() == null && receiverId != null) {
item.setReceiverId(receiverId);
if (receiverDeptId != null) {
item.setReceiverDeptId(receiverDeptId);
}
log.info("子任务 {} 已设置接收人: {}", item.getId(), receiverId);
}
taskItemMapper.updateById(item);
log.info("顺序流水线任务第一组子任务已更新为in_progress:itemId={}", item.getId());
}