test: lock weighted Mojia carton totals

This commit is contained in:
2026-08-08 13:18:31 +08:00
parent b6b5e2dc55
commit 96788e10de
@@ -81,7 +81,7 @@ class CartonMeasurementServiceTest {
when(repository.listItems(10001L, 30001L)).thenAnswer(invocation -> List.of(insertedItem.get()));
when(repository.updateMeasurement(measurement)).thenReturn(true);
CartonMeasurementResult result = service.upsert(10001L, 90001L, command());
CartonMeasurementResult result = service.upsert(10001L, 90001L, acceptanceCommand());
assertThat(result.created()).isTrue();
assertThat(result.confirmedPackageCount()).isEqualTo(1);
@@ -96,18 +96,21 @@ class CartonMeasurementServiceTest {
@Test
void repeatedScanReplacesDeviceValuesButPreservesManualCountAndOldImageIsDeleted() {
InboundMeasurementEntity measurement = measurement(30001L, "RECEIVED", 4);
InboundMeasurementItemEntity existing = item(40001L, 30001L, 7, 88001L);
InboundMeasurementItemEntity existing = item(40001L, 30001L, 4, 88001L);
when(repository.findItemByBoxCode(10001L, "RK-001#5-1")).thenReturn(existing);
when(repository.findMeasurement(10001L, 70001L, 30001L)).thenReturn(measurement);
when(repository.updateItem(existing)).thenReturn(true);
when(repository.listItems(10001L, 30001L)).thenReturn(List.of(existing));
when(repository.updateMeasurement(measurement)).thenReturn(true);
CartonMeasurementResult result = service.upsert(10001L, 90001L, command());
CartonMeasurementResult result = service.upsert(10001L, 90001L, acceptanceCommand());
assertThat(result.created()).isFalse();
assertThat(result.confirmedPackageCount()).isEqualTo(7);
assertThat(existing.getLengthCm()).isEqualByComparingTo("59.100");
assertThat(result.confirmedPackageCount()).isEqualTo(4);
assertThat(existing.getLengthCm()).isEqualByComparingTo("59.500");
assertThat(existing.getUnitVolumeCbm()).isEqualByComparingTo("0.187");
assertThat(existing.getTotalVolumeCbm()).isEqualByComparingTo("0.7480");
assertThat(existing.getVolumeWeightKg()).isEqualByComparingTo("124.916");
assertThat(existing.getSourceImageFileId()).isEqualTo(99001L);
verify(images).delete("internal-token", 90001L, 10001L, 70001L, 88001L);
}
@@ -253,6 +256,14 @@ class CartonMeasurementServiceTest {
new MockMultipartFile("image", "measure.jpg", "image/jpeg", "image".getBytes()));
}
private CartonMeasurementCommand acceptanceCommand() {
return new CartonMeasurementCommand(
"RK-001#5-1", new BigDecimal("59.500"), new BigDecimal("41.200"),
new BigDecimal("31.300"), new BigDecimal("13.600"), "MJ-ADMIN-E2E-02",
LocalDateTime.parse("2026-08-08T10:01:00"),
new MockMultipartFile("image", "measure.jpg", "image/jpeg", "image".getBytes()));
}
private InboundOrderEntity inbound(String status) {
InboundOrderEntity inbound = new InboundOrderEntity();
inbound.setId(70001L); inbound.setTenantId(10001L); inbound.setProcessStatus(status);