fix: 修复流水线任务卡片接单人显示为空的问题 - fillSubTaskStats方法现在正确填充子任务的receiverName - getCompletedTasks方法也从子任务获取接单人信息 - 显示格式: 单人显示姓名,多人显示'XX等N人'
This commit is contained in:
parent
4d69910851
commit
03239c27b1
@ -806,6 +806,40 @@ public class TaskService {
|
||||
task.setCurrentApproverName(approver.getRealName() != null ? approver.getRealName() : approver.getUsername());
|
||||
}
|
||||
}
|
||||
|
||||
// 对于流水线任务,如果主任务没有接单人,从子任务中获取
|
||||
if ((task.getReceiverName() == null || task.getReceiverName().isEmpty())
|
||||
&& task.getIsPipeline() != null && task.getIsPipeline() == 1) {
|
||||
try {
|
||||
List<TaskItem> subTasks = taskItemMapper.selectList(
|
||||
new LambdaQueryWrapper<TaskItem>()
|
||||
.eq(TaskItem::getTaskId, task.getId())
|
||||
.isNotNull(TaskItem::getReceiverId)
|
||||
.orderByAsc(TaskItem::getGroupNo)
|
||||
);
|
||||
if (!subTasks.isEmpty()) {
|
||||
// 获取所有不同的接单人
|
||||
java.util.Set<String> receiverNames = new java.util.LinkedHashSet<>();
|
||||
for (TaskItem item : subTasks) {
|
||||
if (item.getReceiverId() != null) {
|
||||
User receiver = userService.getUserById(item.getReceiverId());
|
||||
if (receiver != null && receiver.getRealName() != null) {
|
||||
receiverNames.add(receiver.getRealName());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!receiverNames.isEmpty()) {
|
||||
if (receiverNames.size() == 1) {
|
||||
task.setReceiverName(receiverNames.iterator().next());
|
||||
} else {
|
||||
task.setReceiverName(receiverNames.iterator().next() + "等" + receiverNames.size() + "人");
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
log.warn("获取流水线任务子任务接单人失败: taskId={}", task.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@ -937,15 +971,35 @@ public class TaskService {
|
||||
task.setSubTaskInProgress((int) inProgressCount);
|
||||
task.setSubTaskPending((int) pendingCount);
|
||||
|
||||
// 填充子任务的接单人名称
|
||||
for (TaskItem item : subTasks) {
|
||||
if (item.getReceiverId() != null && (item.getReceiverName() == null || item.getReceiverName().isEmpty())) {
|
||||
User receiver = userService.getUserById(item.getReceiverId());
|
||||
if (receiver != null) {
|
||||
item.setReceiverName(receiver.getRealName());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置子任务列表(包含处理人信息)
|
||||
task.setSubTasks(subTasks);
|
||||
|
||||
// 如果主任务没有receiverName,从子任务中获取第一个有接单人的
|
||||
// 如果主任务没有receiverName,从子任务中获取接单人
|
||||
if (task.getReceiverName() == null || task.getReceiverName().isEmpty()) {
|
||||
subTasks.stream()
|
||||
.filter(item -> item.getReceiverName() != null && !item.getReceiverName().isEmpty())
|
||||
.findFirst()
|
||||
.ifPresent(item -> task.setReceiverName(item.getReceiverName() + "等"));
|
||||
// 收集所有不同的接单人名称
|
||||
java.util.Set<String> receiverNames = new java.util.LinkedHashSet<>();
|
||||
for (TaskItem item : subTasks) {
|
||||
if (item.getReceiverName() != null && !item.getReceiverName().isEmpty()) {
|
||||
receiverNames.add(item.getReceiverName());
|
||||
}
|
||||
}
|
||||
if (!receiverNames.isEmpty()) {
|
||||
if (receiverNames.size() == 1) {
|
||||
task.setReceiverName(receiverNames.iterator().next());
|
||||
} else {
|
||||
task.setReceiverName(receiverNames.iterator().next() + "等" + receiverNames.size() + "人");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception e) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user