修复装柜完成托盘标签事务

This commit is contained in:
2026-09-09 18:18:26 +08:00
parent 3b02affcb3
commit 2a9f79604b
2 changed files with 12 additions and 1 deletions
@@ -577,7 +577,7 @@ public class LoadingListService {
}
/** 完成 worker 在远程结算前验证最终跨区快照能够完整生成。 */
@Transactional(readOnly = true)
@Transactional
public void requireCompletedEventReady(long planId) {
loadingCompletedOutboxService.requirePublishable(planId);
}
@@ -30,6 +30,7 @@ import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.context.annotation.Bean;
import org.springframework.test.context.junit.jupiter.SpringJUnitConfig;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
@@ -315,6 +316,16 @@ class LoadingListServiceTest {
verify(loadingCompletedOutboxService).publish(10L);
}
@Test
void completedEventReadinessMustAllowPalletLabelFreeze() throws Exception {
Transactional transaction = LoadingListService.class
.getDeclaredMethod("requireCompletedEventReady", long.class)
.getAnnotation(Transactional.class);
assertThat(transaction).isNotNull();
assertThat(transaction.readOnly()).isFalse();
}
@Test
void shouldRejectAutomaticCompletionWhenPdaItemsRemain() {
when(pickRepository.allPlanItemsPicked(10L)).thenReturn(false);