装柜回归测试

This commit is contained in:
2026-08-10 11:30:14 +08:00
parent 047f267d4f
commit 037527b4cb
14 changed files with 341 additions and 22 deletions
@@ -3,11 +3,13 @@ package com.baiyue.firstleg.service;
import com.baiyue.common.core.exception.BizException;
import com.baiyue.firstleg.dto.LoadingPickDtos.PartialPickRequest;
import com.baiyue.firstleg.dto.LoadingPickDtos.PickRequest;
import com.baiyue.firstleg.dto.LoadingPickDtos.ClaimRequest;
import com.baiyue.firstleg.dto.LoadingPickDtos.ReviewRequest;
import com.baiyue.firstleg.dto.LoadingPickDtos.SkipRequest;
import com.baiyue.firstleg.entity.LoadingPickAssignmentEntity;
import com.baiyue.firstleg.entity.LoadingPickHistoryEntity;
import com.baiyue.firstleg.entity.LoadingPickItemEntity;
import com.baiyue.firstleg.entity.LoadingPickItemAssignmentEntity;
import com.baiyue.firstleg.entity.LoadingPickOperationEntity;
import com.baiyue.firstleg.entity.LoadingPickTaskEntity;
import com.baiyue.firstleg.repository.LoadingPickRepository;
@@ -110,6 +112,47 @@ class LoadingPickServiceTest {
verify(settlementService, never()).settle(20L, 9L, "operator");
}
@Test
void permitsItemAssigneeWithoutCabinetAssignee() {
LoadingPickTaskEntity task = task();
LoadingPickItemEntity item = item();
when(repository.history("item-owner-pick")).thenReturn(null);
when(repository.task(20L)).thenReturn(task);
when(repository.taskForUpdate(20L)).thenReturn(task);
when(repository.item(20L, 30L, 101L)).thenReturn(item);
when(repository.itemAssignment(30L)).thenReturn(itemAssignment(9L, "operator"));
when(repository.pick(30L, 2, "MANUAL", "[]", 0, 101L)).thenReturn(1);
when(repository.touchTask(20L, 0)).thenReturn(1);
when(repository.items(20L, 101L)).thenReturn(List.of(item));
service.pick(20L, 30L, new PickRequest(101L, 2, List.of(), 0, "item-owner-pick"),
9L, "operator");
}
@Test
void permitsTwoWorkersToClaimDifferentItemsInOneCabinet() {
LoadingPickTaskEntity task = task();
LoadingPickItemEntity first = item();
LoadingPickItemEntity second = item();
second.setId(31L);
when(repository.taskForUpdate(20L)).thenReturn(task);
when(repository.task(20L)).thenReturn(task);
when(repository.item(20L, 30L)).thenReturn(first);
when(repository.item(20L, 31L)).thenReturn(second);
when(repository.itemAssignment(30L)).thenReturn(null);
when(repository.itemAssignment(31L)).thenReturn(null);
when(repository.createItemAssignment(30L, 9L, "worker-a", 9L, "worker-a", "CLAIMED")).thenReturn(1);
when(repository.createItemAssignment(31L, 10L, "worker-b", 10L, "worker-b", "CLAIMED")).thenReturn(1);
when(repository.items(20L)).thenReturn(List.of(first, second));
service.claimItem(20L, 30L, new ClaimRequest(0, "claim-a"), 9L, "worker-a");
service.claimItem(20L, 31L, new ClaimRequest(0, "claim-b"), 10L, "worker-b");
verify(repository).createItemAssignment(30L, 9L, "worker-a", 9L, "worker-a", "CLAIMED");
verify(repository).createItemAssignment(31L, 10L, "worker-b", 10L, "worker-b", "CLAIMED");
}
@Test
void reviewSettlesResolvedItemsAndCompletesPlan() {
LoadingPickTaskEntity task = task();
@@ -187,4 +230,13 @@ class LoadingPickServiceTest {
assignment.setVersion(0);
return assignment;
}
private static LoadingPickItemAssignmentEntity itemAssignment(long assigneeId, String assigneeName) {
LoadingPickItemAssignmentEntity assignment = new LoadingPickItemAssignmentEntity();
assignment.setPickItemId(30L);
assignment.setAssigneeId(assigneeId);
assignment.setAssigneeName(assigneeName);
assignment.setVersion(0);
return assignment;
}
}