fix: expose warehouse transfer application status

This commit is contained in:
2026-08-25 08:21:47 +08:00
parent 85a288e4f2
commit c218bfad6b
4 changed files with 10 additions and 5 deletions
@@ -16,6 +16,7 @@ public final class WarehouseTransferResponses {
String status, LocalDateTime estimatedArrivalAt, LocalDateTime createdAt) {}
public record Detail(Long id, String transferNo, Long inboundOrderId, String inboundCode,
Long lastlegOrderId, String lastlegOrderNo, String orderType, String orderStatus,
String status,
boolean needRelabel, Long relabelApplicationId, String relabelNo, String relabelStatus,
String operatingWarehouseId, String fbaWarehouseCode, String deliveryAddress,
int packageCount, String deliveryMethod, LocalDateTime estimatedArrivalAt,
@@ -225,6 +225,7 @@ public class WarehouseTransferService {
transfer.getInboundCode(), transfer.getLastlegOrderId(), transfer.getLastlegOrderNo(),
tailOrder == null ? ORDER_TYPE : tailOrder.getOrderType(),
tailOrder == null ? (transfer.getStatus() == null ? PENDING_REVIEW : transfer.getStatus()) : tailOrder.getCurrentStatus(),
transfer.getStatus(),
Boolean.TRUE.equals(transfer.getNeedRelabel()), transfer.getRelabelApplicationId(), transfer.getRelabelNo(),
relabelStatus,
transfer.getOperatingWarehouseId(), transfer.getFbaWarehouseCode(), transfer.getDeliveryAddress(),
@@ -125,6 +125,7 @@ class WarehouseTransferServiceTest {
verify(orders).updateById(tailOrder.getValue());
assertNotNull(tailOrder.getValue().getRelabelOrderNo());
assertEquals("PENDING_PROCESSING", tailOrder.getValue().getRelabelStatus());
assertEquals(WarehouseTransferService.PENDING_REVIEW, result.status());
assertEquals(WarehouseTransferService.PENDING_REVIEW, result.orderStatus());
}
@@ -162,6 +163,7 @@ class WarehouseTransferServiceTest {
assertEquals(WarehouseTransferService.APPROVED, transfer.getStatus());
assertEquals(WarehouseTransferService.PENDING_ASSIGNMENT, tailOrder.getCurrentStatus());
assertEquals(WarehouseTransferService.APPROVED, result.status());
assertEquals(WarehouseTransferService.PENDING_ASSIGNMENT, result.orderStatus());
verify(transfers).updateById(transfer);
verify(orders).updateById(tailOrder);
@@ -319,7 +321,8 @@ class WarehouseTransferServiceTest {
WarehouseTransferOrder transfer = new WarehouseTransferOrder();
transfer.setId(21L); transfer.setCustomerId("TENANT-A"); transfer.setTransferNo("WTR-1");
transfer.setInboundOrderId(101L); transfer.setInboundCode("IN-1"); transfer.setLastlegOrderId(31L);
transfer.setLastlegOrderNo("LMO-TRANSFER-1"); transfer.setNeedRelabel(false); transfer.setPackageCount(5);
transfer.setLastlegOrderNo("LMO-TRANSFER-1"); transfer.setNeedRelabel(false);
transfer.setStatus(WarehouseTransferService.PENDING_REVIEW); transfer.setPackageCount(5);
return transfer;
}
@@ -154,9 +154,9 @@ async function verifyTransfer(context, token, orders) {
const created = await merchant(context, token, 'POST', '客户创建仓储转运申请', TRANSFER, body)
const transferNo = id(created.data?.transferNo)
context.assert(MODULE, '仓储转运申请进入合法待审核状态且绑定本轮来源订单', created.response,
Boolean(transferNo) && created.data?.orderStatus === 'PENDING_REVIEW'
Boolean(transferNo) && created.data?.status === 'PENDING_REVIEW'
&& created.data?.sourceOrders?.some((item) => id(item?.lastlegOrderId) === id(order.row.id)),
`transferNo=${transferNo || 'missing'}, status=${created.data?.orderStatus || 'missing'}; ${trace(created.response)}`, OPTIONS)
`transferNo=${transferNo || 'missing'}, status=${created.data?.status || 'missing'}; ${trace(created.response)}`, OPTIONS)
if (!transferNo) return false
const replay = await merchant(context, token, 'POST', '客户仓储转运申请幂等重放', TRANSFER, body)
context.assert(MODULE, '转运重放复用同一申请', replay.response,
@@ -170,9 +170,9 @@ async function verifyTransfer(context, token, orders) {
const detail = await merchant(context, token, 'GET', '客户查询自身仓储转运详情',
`${TRANSFER}/${encodeURIComponent(transferNo)}`)
context.assert(MODULE, '转运详情保持待审核且不产生出库履约事实', detail.response,
id(detail.data?.transferNo) === transferNo && detail.data?.orderStatus === 'PENDING_REVIEW'
id(detail.data?.transferNo) === transferNo && detail.data?.status === 'PENDING_REVIEW'
&& detail.data?.outboundAt == null && Array.isArray(detail.data?.allocations) && detail.data.allocations.length === 0,
`status=${detail.data?.orderStatus || 'missing'}, allocations=${detail.data?.allocations?.length ?? 'missing'}; ${trace(detail.response)}`, OPTIONS)
`status=${detail.data?.status || 'missing'}, allocations=${detail.data?.allocations?.length ?? 'missing'}; ${trace(detail.response)}`, OPTIONS)
context.createdResources.phase4OverseasClientServices.transferNo = transferNo
return true
}