diff --git a/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/DriverWaybillTabStatusTest.java b/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/DriverWaybillTabStatusTest.java index c556a398..5de8ac1d 100644 --- a/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/DriverWaybillTabStatusTest.java +++ b/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/DriverWaybillTabStatusTest.java @@ -105,6 +105,9 @@ class DriverWaybillTabStatusTest { assertEquals(1, page.getRecords().size(), "进行中档必须包含待回单确认,否则司机看不到这张单"); assertEquals(Integer.valueOf(1), page.getRecords().get(0).getStatus(), "数字态沿用 1(进行中),不新增档位"); + assertEquals(WaybillProcessSupport.STATUS_PENDING_RETURN_CONFIRM, + page.getRecords().get(0).getBusinessStatus(), + "原始业务状态随卡片下发:数字态恒为 1,前端靠它区分运输中与待回单确认"); } @Test @@ -122,6 +125,8 @@ class DriverWaybillTabStatusTest { assertEquals(1, page.getRecords().size(), "打完末位卡的单不能从全部 tab 消失"); assertEquals(Integer.valueOf(1), page.getRecords().get(0).getStatus()); + assertEquals(WaybillProcessSupport.STATUS_PENDING_RETURN_CONFIRM, + page.getRecords().get(0).getBusinessStatus()); assertTrue(queriedStatuses().contains(WaybillProcessSupport.STATUS_PENDING_RETURN_CONFIRM)); } diff --git a/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/ManageWaybillBusinessStatusTest.java b/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/ManageWaybillBusinessStatusTest.java new file mode 100644 index 00000000..e7f39d3d --- /dev/null +++ b/blade-service/blade-transport/src/test/java/org/springblade/transport/service/impl/ManageWaybillBusinessStatusTest.java @@ -0,0 +1,116 @@ +package org.springblade.transport.service.impl; + +import com.baomidou.mybatisplus.core.MybatisConfiguration; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.metadata.TableInfoHelper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.builder.MapperBuilderAssistant; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import org.springblade.transport.pojo.entity.ExceptionDisposal; +import org.springblade.transport.pojo.entity.Waybill; +import org.springblade.transport.pojo.vo.AdminWaybillCardVO; +import org.springblade.transport.pojo.vo.AdminWaybillDetailVO; +import org.springblade.transport.service.IDriverService; +import org.springblade.transport.service.IDriverWaybillService; +import org.springblade.transport.service.IExceptionDisposalService; +import org.springblade.transport.service.ILoadingManageService; +import org.springblade.transport.service.IRiskDisposalService; +import org.springblade.transport.service.ITripQueryService; +import org.springblade.transport.service.IWaybillService; +import org.springblade.transport.support.WaybillProcessSupport; + +import java.util.ArrayList; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +/** + * 调度端运单详情的原始业务状态。 + *
+ * 数字态只有 0/1/2/3:待回单确认落进行中(1),与运输中同档。
+ * 调度端要区分这两者只能看原始状态码,所以详情与卡片都得带上它。
+ */
+class ManageWaybillBusinessStatusTest {
+
+ private static final Long WAYBILL_ID = 6201L;
+ private static final String PENDING_RETURN_CONFIRM = WaybillProcessSupport.STATUS_PENDING_RETURN_CONFIRM;
+
+ private ManageWaybillServiceImpl service;
+ private IWaybillService waybillService;
+
+ @BeforeAll
+ static void initTableInfo() {
+ MybatisConfiguration configuration = new MybatisConfiguration();
+ MapperBuilderAssistant assistant = new MapperBuilderAssistant(configuration, "");
+ assistant.setCurrentNamespace("test");
+ TableInfoHelper.initTableInfo(assistant, Waybill.class);
+ TableInfoHelper.initTableInfo(assistant, ExceptionDisposal.class);
+ }
+
+ @BeforeEach
+ void setUp() {
+ waybillService = mock(IWaybillService.class);
+ IExceptionDisposalService exceptionDisposalService = mock(IExceptionDisposalService.class);
+ service = new ManageWaybillServiceImpl(
+ waybillService,
+ mock(IDriverService.class),
+ exceptionDisposalService,
+ mock(IRiskDisposalService.class),
+ mock(IDriverWaybillService.class),
+ mock(ITripQueryService.class),
+ mock(ILoadingManageService.class));
+ when(exceptionDisposalService.list(anyWrapper())).thenReturn(new ArrayList<>());
+ }
+
+ @Test
+ @DisplayName("运单详情:数字态 1,原始业务状态是待回单确认")
+ void detailCarriesRawBusinessStatus() {
+ when(waybillService.getById(WAYBILL_ID)).thenReturn(waybill());
+
+ AdminWaybillDetailVO detail = service.detail(String.valueOf(WAYBILL_ID));
+
+ assertEquals(Integer.valueOf(1), detail.getStatus(), "数字态仍落进行中,未新增档位");
+ assertEquals(PENDING_RETURN_CONFIRM, detail.getBusinessStatus());
+ }
+
+ @Test
+ @DisplayName("待重新派单卡片:原始业务状态随卡片下发")
+ void reassignCardCarriesRawBusinessStatus() {
+ when(waybillService.page(any(), any())).thenAnswer(invocation -> {
+ Page