This commit is contained in:
2026-08-25 09:52:49 +08:00
parent b211121365
commit b67217332a
37 changed files with 1009 additions and 343 deletions
@@ -75,6 +75,15 @@ public class PlatformUsTruckOrderController {
return ApiResponse.success(service.changeStatus(requiredCustomer(customerId), orderNo, operator(user), request));
}
@PostMapping("/{orderNo}/review")
@PreAuthorize("hasAuthority('" + OverseasPermissions.TRUCK_STATUS + "')")
public ApiResponse<UsTruckOrderResponses.Detail> review(@AuthenticationPrincipal AuthenticatedUser user,
@RequestParam String customerId, @PathVariable String orderNo,
@Valid @RequestBody UsTruckOrderRequests.Review request) {
requirePermission(user, OverseasPermissions.TRUCK_STATUS);
return ApiResponse.success(service.review(requiredCustomer(customerId), orderNo, operator(user), request));
}
@PostMapping("/{orderNo}/receive-pallets")
@PreAuthorize("hasAuthority('" + OverseasPermissions.TRUCK_STATUS + "')")
@Operation(summary = "Receive pallets for a local truck order", description = "Required authority: " + OverseasPermissions.TRUCK_STATUS)
@@ -85,6 +94,66 @@ public class PlatformUsTruckOrderController {
return ApiResponse.success(service.receivePallets(requiredCustomer(customerId), orderNo, operator(user), request));
}
@PostMapping("/{orderNo}/review-pallet-overage")
@PreAuthorize("hasAuthority('" + OverseasPermissions.TRUCK_STATUS + "')")
public ApiResponse<UsTruckOrderResponses.Detail> reviewPalletOverage(
@AuthenticationPrincipal AuthenticatedUser user, @RequestParam String customerId,
@PathVariable String orderNo, @Valid @RequestBody UsTruckOrderRequests.ReviewPalletOverage request) {
requirePermission(user, OverseasPermissions.TRUCK_STATUS);
return ApiResponse.success(service.reviewPalletOverage(
requiredCustomer(customerId), orderNo, operator(user), request));
}
@PostMapping("/{orderNo}/allocate-pallets")
@PreAuthorize("hasAuthority('" + OverseasPermissions.TRUCK_STATUS + "')")
public ApiResponse<UsTruckOrderResponses.Detail> allocatePallets(
@AuthenticationPrincipal AuthenticatedUser user, @RequestParam String customerId,
@PathVariable String orderNo, @Valid @RequestBody UsTruckOrderRequests.AllocatePallets request) {
requirePermission(user, OverseasPermissions.TRUCK_STATUS);
return ApiResponse.success(service.allocatePallets(
requiredCustomer(customerId), orderNo, operator(user), request));
}
@PostMapping("/{orderNo}/prepare-dispatch")
@PreAuthorize("hasAuthority('" + OverseasPermissions.TRUCK_STATUS + "')")
public ApiResponse<UsTruckOrderResponses.Detail> prepareDispatch(
@AuthenticationPrincipal AuthenticatedUser user, @RequestParam String customerId,
@PathVariable String orderNo, @Valid @RequestBody UsTruckOrderRequests.Command request) {
requirePermission(user, OverseasPermissions.TRUCK_STATUS);
return ApiResponse.success(service.prepareDispatch(
requiredCustomer(customerId), orderNo, operator(user), request));
}
@PostMapping("/{orderNo}/dispatch")
@PreAuthorize("hasAuthority('" + OverseasPermissions.TRUCK_STATUS + "')")
public ApiResponse<UsTruckOrderResponses.Detail> dispatch(
@AuthenticationPrincipal AuthenticatedUser user, @RequestParam String customerId,
@PathVariable String orderNo, @Valid @RequestBody UsTruckOrderRequests.Command request) {
requirePermission(user, OverseasPermissions.TRUCK_STATUS);
return ApiResponse.success(service.dispatch(
requiredCustomer(customerId), orderNo, operator(user), request));
}
@PostMapping("/{orderNo}/start-transit")
@PreAuthorize("hasAuthority('" + OverseasPermissions.TRUCK_STATUS + "')")
public ApiResponse<UsTruckOrderResponses.Detail> startTransit(
@AuthenticationPrincipal AuthenticatedUser user, @RequestParam String customerId,
@PathVariable String orderNo, @Valid @RequestBody UsTruckOrderRequests.Command request) {
requirePermission(user, OverseasPermissions.TRUCK_STATUS);
return ApiResponse.success(service.startTransit(
requiredCustomer(customerId), orderNo, operator(user), request));
}
@PostMapping("/{orderNo}/complete")
@PreAuthorize("hasAuthority('" + OverseasPermissions.TRUCK_STATUS + "')")
public ApiResponse<UsTruckOrderResponses.Detail> complete(
@AuthenticationPrincipal AuthenticatedUser user, @RequestParam String customerId,
@PathVariable String orderNo, @Valid @RequestBody UsTruckOrderRequests.Command request) {
requirePermission(user, OverseasPermissions.TRUCK_STATUS);
return ApiResponse.success(service.complete(
requiredCustomer(customerId), orderNo, operator(user), request));
}
private void requirePlatform(AuthenticatedUser user) {
if (user == null || user.tenantId() == null) throw new ResponseStatusException(HttpStatus.UNAUTHORIZED);
if (!"PLATFORM".equals(user.appCode()) || user.tenantId() != 0L) {