This commit is contained in:
2026-08-17 20:21:44 +08:00
parent b8c7f9fea2
commit 092c003e3a
6 changed files with 44 additions and 10 deletions
@@ -64,19 +64,17 @@ public class OrderApplicationService {
private Long createDraftInternal(long tenantId, long userId, OrderRequests.SaveRequest request) {
productImageGuard.requireOwned(tenantId, request.cargoes());
var snapshots = masterDataGuard.validate(tenantId, request);
String inboundCodePrefix = pricingChannelGuard.requireAvailable(tenantId, request.receivingWarehouseId(),
pricingChannelGuard.requireAvailable(tenantId, request.receivingWarehouseId(),
request.channelCode(), request.destinationType());
OrderEntity order = new OrderEntity();
long orderId = IdWorker.getId();
order.setId(orderId); order.setTenantId(tenantId); order.setOrderNo(nextNo(orderId));
order.setStatus(OrderStatus.DRAFT);
apply(order, tenantId, request, snapshots);
order.setInboundCode(nextInboundCode(inboundCodePrefix));
order.setCreatedBy(userId); order.setUpdatedBy(userId);
repository.insertOrder(order);
saveChildren(tenantId, userId, order.getId(), request);
record(tenantId, order.getId(), null, OrderStatus.DRAFT, "CREATE", null, userId, null);
prepareDraftInbound(order, request);
return order.getId();
}
@@ -116,7 +114,7 @@ public class OrderApplicationService {
repository.replaceDraftChildren(tenantId, id);
saveChildren(tenantId, userId, id, request);
record(tenantId, id, before, order.getStatus(), "UPDATE", null, userId, null);
prepareDraftInbound(order, request);
if (before == OrderStatus.SUBMITTED) prepareDraftInbound(order, request);
}
@Transactional
@@ -29,6 +29,9 @@ class OrderPickupSqlContractTest {
assertThat(relax).isGreaterThanOrEqualTo(0).isLessThan(clearDraft);
assertThat(sql).contains(
"column_name = 'requested_pickup_at'",
"ALTER TABLE baiyue_order.ord_order ADD COLUMN requested_pickup_at DATETIME(3) NULL");
"ALTER TABLE baiyue_order.ord_order ADD COLUMN requested_pickup_at DATETIME(3) NULL",
"CREATE PROCEDURE assert_submitted_order_inbound_code()",
"SIGNAL SQLSTATE '45000'");
assertThat(sql).doesNotContain("CONCAT('RK-', o.id)");
}
}
@@ -58,7 +58,7 @@ class OrderApplicationServiceStateTest {
assertThat(orderId).isNotNull();
verify(eligibility, never()).requireApproved(anyLong());
verify(repository).insertOrder(argThat(order -> order.getStatus() == OrderStatus.DRAFT
&& order.getInboundCode().matches("PCHWK\\d{6}0001")));
&& order.getInboundCode() == null));
}
@Test