feat: gate overseas receiving and harden phase4 workflows

This commit is contained in:
2026-08-25 10:31:04 +08:00
parent cb78bc6b41
commit 52b9fc382f
93 changed files with 2779 additions and 201 deletions
@@ -5,6 +5,7 @@ import com.baiyue.warehouse.dto.WarehouseResourceLockRequests;
import com.baiyue.warehouse.dto.WarehouseResourceLockResponse;
import com.baiyue.warehouse.dto.WarehousePalletScrapResponse;
import com.baiyue.warehouse.dto.SharedWarehouseReference;
import com.baiyue.warehouse.dto.WarehouseLocationResolveResponse;
import com.baiyue.warehouse.entity.WarehouseLocationEntity;
import com.baiyue.warehouse.security.InternalServiceTokenGuard;
import com.baiyue.warehouse.service.WarehouseResourceLockService;
@@ -17,6 +18,7 @@ import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@@ -79,4 +81,20 @@ public class InternalWarehouseResourceLockController {
tokenGuard.verify(token);
return ApiResponse.success(warehouses.activeSharedReference(warehouseId));
}
@GetMapping("/locations/resolve/{locationCode}")
public ApiResponse<WarehouseLocationResolveResponse> resolveLocation(
@RequestHeader(value = "X-Internal-Service-Token", required = false) String token,
@RequestParam long warehouseId, @PathVariable String locationCode) {
tokenGuard.verify(token);
return ApiResponse.success(resourceService.resolvePublicLocation(warehouseId, locationCode));
}
@GetMapping("/locations/{locationId}")
public ApiResponse<WarehouseLocationResolveResponse> location(
@RequestHeader(value = "X-Internal-Service-Token", required = false) String token,
@RequestParam long warehouseId, @PathVariable long locationId) {
tokenGuard.verify(token);
return ApiResponse.success(resourceService.resolvePublicLocation(warehouseId, locationId));
}
}