✨ 待回单确认:运次卡片下发唯一原始业务状态
This commit is contained in:
+7
@@ -1113,6 +1113,13 @@ public class DriverWaybillServiceImpl implements IDriverWaybillService {
|
||||
card.setId(parseId(children.isEmpty() ? trip.getId() : children.get(0).getId()));
|
||||
card.setWaybillNo(children.isEmpty() ? card.getTripNo() : Func.toStr(children.get(0).getWaybillNo(), ""));
|
||||
card.setStatus(trip.getStatus());
|
||||
// 原始业务状态只在整趟车子单状态唯一时下发:配载车混状态时一趟车没有唯一原始状态,给 null 由前端按数字态展示
|
||||
List<String> childBusinessStatuses = children.stream()
|
||||
.map(TripVO.TripWaybillVO::getBusinessStatus)
|
||||
.filter(Func::isNotBlank)
|
||||
.distinct()
|
||||
.collect(Collectors.toList());
|
||||
card.setBusinessStatus(childBusinessStatuses.size() == 1 ? childBusinessStatuses.get(0) : null);
|
||||
card.setRequireAccept(trip.getRequireAccept());
|
||||
card.setAcceptStatus(trip.getAcceptStatus());
|
||||
card.setTransportOrgType(trip.getTransportOrgType());
|
||||
|
||||
+29
@@ -30,6 +30,7 @@ import org.springblade.transport.service.ITransportVehicleService;
|
||||
import org.springblade.transport.service.ITripQueryService;
|
||||
import org.springblade.transport.service.IWaybillService;
|
||||
import org.springblade.transport.support.CertificationGate;
|
||||
import org.springblade.transport.support.WaybillProcessSupport;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
@@ -147,6 +148,34 @@ class DriverTripCardTest {
|
||||
assertEquals("桂A32523", card.getVehicleNo());
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("运次卡片带唯一原始业务状态:子单都在待回单确认时下发 pending_return_confirm,数字态仍是 1")
|
||||
void tripCardCarriesUniqueChildBusinessStatus() {
|
||||
TripVO trip = loadingTrip();
|
||||
trip.getWaybills().forEach(child -> child.setBusinessStatus(WaybillProcessSupport.STATUS_PENDING_RETURN_CONFIRM));
|
||||
stubTripPage(1, trip);
|
||||
|
||||
IPage<DriverWaybillCardVO> page = runAsDriver(() -> service.tripPage(1, 10, null, null));
|
||||
|
||||
DriverWaybillCardVO card = page.getRecords().get(0);
|
||||
assertEquals(WaybillProcessSupport.STATUS_PENDING_RETURN_CONFIRM, card.getBusinessStatus());
|
||||
assertEquals(trip.getStatus(), card.getStatus(), "运次数字态口径不变,仍取运次状态");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("运次卡片原始业务状态:配载车混状态时给 null,由前端回退数字态")
|
||||
void tripCardWithoutUniqueChildBusinessStatusGivesNull() {
|
||||
TripVO trip = loadingTrip();
|
||||
trip.getWaybills().get(0).setBusinessStatus(WaybillProcessSupport.STATUS_PENDING_RETURN_CONFIRM);
|
||||
stubTripPage(1, trip);
|
||||
|
||||
IPage<DriverWaybillCardVO> page = runAsDriver(() -> service.tripPage(1, 10, null, null));
|
||||
|
||||
DriverWaybillCardVO card = page.getRecords().get(0);
|
||||
assertNull(card.getBusinessStatus(), "一趟车里两种原始状态,没有唯一值可下发");
|
||||
assertEquals(1, card.getStatus(), "混状态不影响运次数字态");
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("运次列表不因配载卡去回查运单,也不写库")
|
||||
void tripPageDoesNotLookUpWaybillsOrWrite() {
|
||||
|
||||
Reference in New Issue
Block a user