fix: 修复子任务指派时缺少claim_time和receiver_name的bug
问题: - approveTaskItemGroup方法在审核指派子任务时,没有设置claim_time和receiver_name - grabAssignedItem方法在指定任务接单时,没有更新receiver_name 修复: - approveTaskItemGroup中增加item.setClaimTime(now)和item.setReceiverName(receiver.getRealName()) - grabAssignedItem SQL增加receiver_name字段更新 - grabAssignedItem方法签名增加receiverName参数 影响:修复后,通过审核指派或指定任务接单的子任务将有完整的接单记录, 确保后续完结任务等流程能正确执行
This commit is contained in:
parent
72f23a782a
commit
8c590d4099
@ -439,9 +439,11 @@ public interface TaskItemMapper extends BaseMapper<TaskItem> {
|
||||
/**
|
||||
* 指定任务接单(用于已预先指定设计师的任务)
|
||||
* 只有被指定的设计师才能接单
|
||||
* 🔥 修复:增加 receiver_name 更新,确保接单记录完整
|
||||
*/
|
||||
@Update("UPDATE task_item SET " +
|
||||
"status = 'in_progress', " +
|
||||
"receiver_name = #{receiverName}, " +
|
||||
"claim_time = NOW(), " +
|
||||
"deadline = CASE WHEN #{deadline} IS NOT NULL THEN #{deadline} ELSE deadline END, " +
|
||||
"update_time = NOW() " +
|
||||
@ -451,6 +453,7 @@ public interface TaskItemMapper extends BaseMapper<TaskItem> {
|
||||
"AND receiver_id = #{receiverId}")
|
||||
int grabAssignedItem(@Param("itemId") Long itemId,
|
||||
@Param("receiverId") Long receiverId,
|
||||
@Param("receiverName") String receiverName,
|
||||
@Param("deadline") LocalDateTime deadline);
|
||||
|
||||
/**
|
||||
|
||||
@ -511,8 +511,8 @@ public class TaskItemService {
|
||||
// 🔥 根据是否是指定任务使用不同的抢单方法
|
||||
int result;
|
||||
if (isAssignedItem) {
|
||||
// 指定任务:使用专用方法,只更新状态和deadline
|
||||
result = taskItemMapper.grabAssignedItem(itemId, userId, deadline);
|
||||
// 指定任务:使用专用方法,更新状态、接收人姓名和deadline
|
||||
result = taskItemMapper.grabAssignedItem(itemId, userId, user.getRealName(), deadline);
|
||||
} else {
|
||||
// 普通任务:乐观锁抢单(同时设置接单部门ID和deadline)
|
||||
result = taskItemMapper.grabItem(itemId, userId, user.getRealName(), user.getDeptId(), deadline);
|
||||
@ -1223,7 +1223,9 @@ public class TaskItemService {
|
||||
for (TaskItem item : groupItems) {
|
||||
item.setStatus("in_progress");
|
||||
item.setReceiverId(assignedReceiverId);
|
||||
item.setReceiverName(receiver.getRealName()); // 🔥 修复:设置接收人姓名
|
||||
item.setReceiverDeptId(receiver.getDeptId()); // 设置接单部门ID
|
||||
item.setClaimTime(now); // 🔥 修复:设置接单时间
|
||||
item.setUpdateTime(now);
|
||||
// 计算并设置deadline(使用工作时间计算)
|
||||
if (item.getEstimatedHours() != null && item.getEstimatedHours().compareTo(java.math.BigDecimal.ZERO) > 0) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user