修复流水线任务指派时子任务未设置接收人的问题
This commit is contained in:
parent
0e87c48d30
commit
ecbbdb7644
@ -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());
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user