fix: 指派流水线首节点强制同步主任务接单人

This commit is contained in:
Your Name 2026-02-27 16:25:21 +08:00
parent 2b79526f5a
commit 4d19e5efe8

View File

@ -4137,6 +4137,16 @@ public class TaskService {
Long receiverId = mainTask.getReceiverId();
Long receiverDeptId = mainTask.getReceiverDeptId();
String receiverName = null;
if (receiverId != null) {
User receiver = userService.getUserById(receiverId);
if (receiver != null) {
receiverName = receiver.getRealName() != null ? receiver.getRealName() : receiver.getUsername();
if (receiverDeptId == null) {
receiverDeptId = receiver.getDeptId();
}
}
}
List<TaskItem> taskItems = taskItemMapper.selectList(
new LambdaQueryWrapper<TaskItem>()
@ -4192,17 +4202,15 @@ public class TaskService {
if (itemDeptIndex == firstDeptIndex) {
item.setStatus("in_progress");
item.setIsLocked(0);
// 指派模式下:如果子任务已有预先指定的接收人,保留;否则使用主任务的接收人
if (item.getReceiverId() == null && receiverId != null) {
// 指派模式下:以主任务的接收人为准,避免主任务与子任务接收人不一致
if (receiverId != null) {
item.setReceiverId(receiverId);
item.setReceiverName(receiverName);
if (receiverDeptId != null) {
item.setReceiverDeptId(receiverDeptId);
}
log.info("顺序流水线第一部门子任务 {} 设置接收人: receiverId={}, deptId={}",
log.info("顺序流水线第一部门子任务 {} 同步接收人: receiverId={}, deptId={}",
item.getId(), receiverId, receiverDeptId);
} else {
log.info("顺序流水线第一部门子任务 {} 保留预先指定的接收人: receiverId={}",
item.getId(), item.getReceiverId());
}
// 计算并设置deadline(使用工作时间计算)
if (item.getEstimatedHours() != null && item.getEstimatedHours().compareTo(BigDecimal.ZERO) > 0) {