Ir para o conteúdo

Itens e transferências de estoque ​

Índice de endpoints · Modelos

API-040 — Buscar Por Nivel ​

GET /api/itens-estoque/nivel/{nivelId}

Finalidade: Buscar Por Nivel. Nível existente sem item retorna 204. Nível inexistente lança IllegalArgumentException no serviço, tratado como 400; a anotação declara 404, mas não representa esse ramo real.

Fonte: src/main/java/com/wester/storage/controller/ItemEstoqueController.java:50 — ItemEstoqueController.buscarPorNivel.

Autenticação, autorização e perfis: hasAuthority('SCREEN_WAREHOUSE') Consulte a correspondência entre autoridades e perfis em Autenticação.

Headers: Authorization: Bearer <TOKEN>. Accept: application/json recomendado.

Parâmetros:

NomeLocalTipoObrigatórioPadrão
nivelIdpathLongSim—

Corpo: não declarado; não enviar corpo.

Resposta de sucesso: ItemEstoqueDTO. Campos em Modelos.

Exemplo estrutural sintético, sem afirmar valores de produção:

json
{
  "id": 1,
  "version": 0,
  "nivelId": 1,
  "nivelIdentificador": "Exemplo",
  "nivelCompletoIdentificador": "Exemplo",
  "produtoId": 1,
  "produtoCodigoWester": "Exemplo",
  "produtoNomeModelo": "Exemplo",
  "produtoCor": "Exemplo",
  "produtoDescricao": "Exemplo",
  "observacao": "Exemplo",
  "quantidade": 1,
  "quantidadeAproximada": false,
  "dataAtualizacao": "2026-10-15T09:00:00"
}

Códigos HTTP: 200, 204, 401, 403. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.

Validações e erros identificados na cadeia local do serviço:

  • nivelId não pode ser nulo.
  • Nível não encontrado: [mensagem pode receber complemento dinâmico]

Regras de negócio e dependências: ItemEstoqueService.buscarPorNivel. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/itens-estoque/nivel/1" -H "Authorization: Bearer ${TOKEN}"

API-041 — Create or update ItemEstoque by nivelId (UPSERT) ​

PUT /api/itens-estoque/nivel/{nivelId}

Finalidade: Create or update ItemEstoque by nivelId (UPSERT).

Fonte: src/main/java/com/wester/storage/controller/ItemEstoqueController.java:67 — ItemEstoqueController.upsertPorNivel.

Autenticação, autorização e perfis: hasAuthority('SCREEN_WAREHOUSE') and hasRole('FULL_ACCESS') Consulte a correspondência entre autoridades e perfis em Autenticação.

Headers: Authorization: Bearer <TOKEN>. Accept: application/json recomendado. Content-Type: application/json para o corpo.

Parâmetros:

NomeLocalTipoObrigatórioPadrão
nivelIdpathLongSim—

Corpo da requisição: ItemEstoqueUpsertRequestDTO; obrigatório. Validação Jakarta ativada por @Valid. Consulte os campos e restrições em Modelos.

Exemplo sintético (IDs devem existir e versões devem vir de consulta):

json
{
  "quantidade": 10,
  "quantidadeAproximada": false,
  "observacao": "Contagem conferida",
  "produto": {
    "codigoSistemaWester": "DOC-001",
    "nomeModelo": "Produto de exemplo",
    "cor": "Preto",
    "descricao": "Exemplo documental"
  }
}

Resposta de sucesso: ItemEstoqueDTO. Campos em Modelos.

Exemplo estrutural sintético, sem afirmar valores de produção:

json
{
  "id": 1,
  "version": 0,
  "nivelId": 1,
  "nivelIdentificador": "Exemplo",
  "nivelCompletoIdentificador": "Exemplo",
  "produtoId": 1,
  "produtoCodigoWester": "Exemplo",
  "produtoNomeModelo": "Exemplo",
  "produtoCor": "Exemplo",
  "produtoDescricao": "Exemplo",
  "observacao": "Exemplo",
  "quantidade": 1,
  "quantidadeAproximada": false,
  "dataAtualizacao": "2026-10-15T09:00:00"
}

Códigos HTTP: 200, 400, 401, 403. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.

Validações e erros identificados na cadeia local do serviço:

  • nivelId não pode ser nulo.
  • request não pode ser nulo.
  • Este nível pertence a um setor fixo — use a alocação de materiais (moldes/produtos),
  • Dados do produto são obrigatórios.

Regras de negócio e dependências: CurrentUserService.getCurrentUserIdOrFallback, ItemEstoqueService.salvarPorNivel. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X PUT "${BASE_URL}/api/itens-estoque/nivel/1" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"quantidade":10,"quantidadeAproximada":false,"observacao":"Contagem conferida","produto":{"codigoSistemaWester":"DOC-001","nomeModelo":"Produto de exemplo","cor":"Preto","descricao":"Exemplo documental"}}'

API-042 — Criar Por Nivel ​

POST /api/itens-estoque/nivel/{nivelId}

Finalidade: Criar Por Nivel. Embora use POST e retorne 201, chama o mesmo upsert do PUT: pode atualizar o item existente.

Fonte: src/main/java/com/wester/storage/controller/ItemEstoqueController.java:84 — ItemEstoqueController.criarPorNivel.

Autenticação, autorização e perfis: hasAuthority('SCREEN_WAREHOUSE') and hasRole('FULL_ACCESS') Consulte a correspondência entre autoridades e perfis em Autenticação.

Headers: Authorization: Bearer <TOKEN>. Accept: application/json recomendado. Content-Type: application/json para o corpo.

Parâmetros:

NomeLocalTipoObrigatórioPadrão
nivelIdpathLongSim—

Corpo da requisição: ItemEstoqueUpsertRequestDTO; obrigatório. Validação Jakarta ativada por @Valid. Consulte os campos e restrições em Modelos.

Exemplo sintético (IDs devem existir e versões devem vir de consulta):

json
{
  "quantidade": 10,
  "quantidadeAproximada": false,
  "observacao": "Contagem conferida",
  "produto": {
    "codigoSistemaWester": "DOC-001",
    "nomeModelo": "Produto de exemplo",
    "cor": "Preto",
    "descricao": "Exemplo documental"
  }
}

Resposta de sucesso: ItemEstoqueDTO. Campos em Modelos.

Exemplo estrutural sintético, sem afirmar valores de produção:

json
{
  "id": 1,
  "version": 0,
  "nivelId": 1,
  "nivelIdentificador": "Exemplo",
  "nivelCompletoIdentificador": "Exemplo",
  "produtoId": 1,
  "produtoCodigoWester": "Exemplo",
  "produtoNomeModelo": "Exemplo",
  "produtoCor": "Exemplo",
  "produtoDescricao": "Exemplo",
  "observacao": "Exemplo",
  "quantidade": 1,
  "quantidadeAproximada": false,
  "dataAtualizacao": "2026-10-15T09:00:00"
}

Códigos HTTP: 201, 400, 401, 403. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.

Validações e erros identificados na cadeia local do serviço:

  • nivelId não pode ser nulo.
  • request não pode ser nulo.
  • Este nível pertence a um setor fixo — use a alocação de materiais (moldes/produtos),
  • Dados do produto são obrigatórios.

Regras de negócio e dependências: CurrentUserService.getCurrentUserIdOrFallback, ItemEstoqueService.salvarPorNivel. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/itens-estoque/nivel/1" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"quantidade":10,"quantidadeAproximada":false,"observacao":"Contagem conferida","produto":{"codigoSistemaWester":"DOC-001","nomeModelo":"Produto de exemplo","cor":"Preto","descricao":"Exemplo documental"}}'

API-043 — Movimenta item entre níveis ​

POST /api/itens-estoque/movimentacao

Finalidade: Movimenta item entre níveis.

Fonte: src/main/java/com/wester/storage/controller/ItemEstoqueController.java:101 — ItemEstoqueController.movimentar.

Autenticação, autorização e perfis: hasAuthority('SCREEN_WAREHOUSE') and hasRole('FULL_ACCESS') Consulte a correspondência entre autoridades e perfis em Autenticação.

Headers: Authorization: Bearer <TOKEN>. Accept: application/json recomendado. Content-Type: application/json para o corpo.

Parâmetros:

Sem query parameters, path variables ou headers de negócio declarados.

Corpo da requisição: ItemEstoqueMovimentacaoRequestDTO; obrigatório. Validação Jakarta ativada por @Valid. Consulte os campos e restrições em Modelos.

Exemplo sintético (IDs devem existir e versões devem vir de consulta):

json
{
  "nivelOrigemId": 1,
  "nivelDestinoId": 2,
  "quantidade": 2
}

Resposta de sucesso: ItemEstoqueDTO. Campos em Modelos.

Exemplo estrutural sintético, sem afirmar valores de produção:

json
{
  "id": 1,
  "version": 0,
  "nivelId": 1,
  "nivelIdentificador": "Exemplo",
  "nivelCompletoIdentificador": "Exemplo",
  "produtoId": 1,
  "produtoCodigoWester": "Exemplo",
  "produtoNomeModelo": "Exemplo",
  "produtoCor": "Exemplo",
  "produtoDescricao": "Exemplo",
  "observacao": "Exemplo",
  "quantidade": 1,
  "quantidadeAproximada": false,
  "dataAtualizacao": "2026-10-15T09:00:00"
}

Códigos HTTP: 200, 400, 401, 403. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.

Validações e erros identificados na cadeia local do serviço:

  • nivelOrigemId e nivelDestinoId são obrigatórios.
  • Origem e destino devem ser níveis diferentes.
  • Quantidade de movimentação deve ser maior que zero.
  • Quantidade solicitada maior que o estoque disponível no nível de origem.
  • Nível destino já contém outro produto.

Regras de negócio e dependências: CurrentUserService.getCurrentUserIdOrFallback, ItemEstoqueService.movimentarEntreNiveis. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/itens-estoque/movimentacao" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"nivelOrigemId":1,"nivelDestinoId":2,"quantidade":2}'

API-044 — Remove item de estoque do nível ​

DELETE /api/itens-estoque/nivel/{nivelId}

Finalidade: Remove item de estoque do nível.

Fonte: src/main/java/com/wester/storage/controller/ItemEstoqueController.java:125 — ItemEstoqueController.deletePorNivel.

Autenticação, autorização e perfis: hasAuthority('SCREEN_WAREHOUSE') and hasRole('FULL_ACCESS') Consulte a correspondência entre autoridades e perfis em Autenticação.

Headers: Authorization: Bearer <TOKEN>. Accept: application/json recomendado.

Parâmetros:

NomeLocalTipoObrigatórioPadrão
nivelIdpathLongSim—
itemVersionqueryLongNão—
nivelVersionqueryLongNão—

Corpo: não declarado; não enviar corpo.

Resposta de sucesso: sem corpo quando 204.

Códigos HTTP: 204, 401, 403. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.

Validações e erros identificados na cadeia local do serviço:

  • nivelId não pode ser nulo.

Regras de negócio e dependências: CurrentUserService.getCurrentUserIdOrFallback, ItemEstoqueService.removerPorNivel. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X DELETE "${BASE_URL}/api/itens-estoque/nivel/1" -H "Authorization: Bearer ${TOKEN}"

Manual do usuário — Sistema Wester. Conteúdo descreve as telas conforme a versão indicada na página inicial.