fix: gate device scans by actual measurement submission state
This commit is contained in:
+28
-3
@@ -113,7 +113,7 @@ class CartonMeasurementServiceTest {
|
||||
}
|
||||
|
||||
@Test
|
||||
void oversizeScanKeepsImageAndActualDimensionsForManualReview() {
|
||||
void scanOutsideConfiguredWeightingRulesKeepsImageAndActualDimensions() {
|
||||
InboundMeasurementEntity measurement = measurement(30001L, "RECEIVED", 0);
|
||||
when(repository.findItemByBoxCode(10001L, "RK-001#5-1")).thenReturn(null);
|
||||
when(repository.findLatestEditableMeasurement(10001L, 70001L)).thenReturn(measurement);
|
||||
@@ -131,8 +131,8 @@ class CartonMeasurementServiceTest {
|
||||
assertThat(insertedItem.get().getSourceImageFileId()).isEqualTo(99001L);
|
||||
assertThat(insertedItem.get().getLengthCm()).isEqualByComparingTo("60.100");
|
||||
assertThat(insertedItem.get().getCalculationRuleVersion())
|
||||
.isEqualTo("ACTUAL_DIMENSION_OVERSIZE_V1");
|
||||
assertThat(insertedItem.get().getOverLimitWarning()).contains("人工复核");
|
||||
.isEqualTo("ACTUAL_DIMENSION_V1");
|
||||
assertThat(insertedItem.get().getOverLimitWarning()).isNull();
|
||||
verify(images, never()).delete(any(), any(Long.TYPE), any(Long.TYPE), any(Long.TYPE), any(Long.TYPE));
|
||||
}
|
||||
|
||||
@@ -146,6 +146,31 @@ class CartonMeasurementServiceTest {
|
||||
verify(images, never()).upload(any(), any(Long.TYPE), any(Long.TYPE), any(Long.TYPE), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void waitMeasureWithFrozenLabelsAndReceivedDeviceBatchAllowsFirstScan() {
|
||||
InboundMeasurementEntity received = measurement(30001L, "RECEIVED", 0);
|
||||
when(repository.findLatestMeasurement(10001L, 70001L)).thenReturn(received);
|
||||
when(repository.findItemByBoxCode(10001L, "RK-001#5-1")).thenReturn(null);
|
||||
when(repository.findLatestEditableMeasurement(10001L, 70001L)).thenReturn(received);
|
||||
when(repository.listItems(10001L, 30001L)).thenAnswer(invocation -> List.of(insertedItem.get()));
|
||||
when(repository.updateMeasurement(received)).thenReturn(true);
|
||||
|
||||
CartonMeasurementResult result = service.upsert(10001L, 90001L, command());
|
||||
|
||||
assertThat(result.created()).isTrue();
|
||||
assertThat(result.confirmedPackageCount()).isEqualTo(1);
|
||||
}
|
||||
|
||||
@Test
|
||||
void staleWaitMeasureSnapshotStillRejectsWhenLatestBatchWasSubmitted() {
|
||||
InboundMeasurementEntity submitted = measurement(30001L, "SUBMITTED", 1);
|
||||
when(repository.findLatestMeasurement(10001L, 70001L)).thenReturn(submitted);
|
||||
|
||||
assertThatThrownBy(() -> service.upsert(10001L, 90001L, command()))
|
||||
.isInstanceOf(BizException.class).hasMessageContaining("不能新增或覆盖");
|
||||
verify(images, never()).upload(any(), any(Long.TYPE), any(Long.TYPE), any(Long.TYPE), any());
|
||||
}
|
||||
|
||||
@Test
|
||||
void platformSimulationRejectsBoxCodeFromAnotherInboundBeforeUploadingImage() {
|
||||
assertThatThrownBy(() -> service.upsertForInbound(10001L, 90001L, 70002L, command()))
|
||||
|
||||
Reference in New Issue
Block a user