Tema
Movimentações operacionais
API-052 — Carregar contexto inicial da tela de movimentacoes
GET /api/movimentacoes/contexto-inicial
Finalidade: Carregar contexto inicial da tela de movimentacoes.
Fonte: src/main/java/com/wester/storage/controller/MovimentacaoEstoqueController.java:44 — MovimentacaoEstoqueController.buscarContextoInicial.
Autenticação, autorização e perfis: hasAuthority('SCREEN_MOVEMENTS') Consulte a correspondência entre autoridades e perfis em Autenticação.
Headers: Authorization: Bearer <TOKEN>. Accept: application/json recomendado.
Parâmetros:
Sem query parameters, path variables ou headers de negócio declarados.
Corpo: não declarado; não enviar corpo.
Resposta de sucesso: MovimentacaoEstoqueContextoInicialDTO. Campos em Modelos.
Exemplo estrutural sintético, sem afirmar valores de produção:
json
{
"produtos": [],
"areas": [],
"movimentacoesRecentes": []
}Códigos HTTP: 200, 401, 403. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.
Regras de negócio e dependências: MovimentacaoEstoqueService.buscarContextoInicial. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.
cURL (Bash):
bash
curl -X GET "${BASE_URL}/api/movimentacoes/contexto-inicial" -H "Authorization: Bearer ${TOKEN}"API-053 — Registrar movimentação operacional de estoque
POST /api/movimentacoes
Finalidade: Registrar movimentação operacional de estoque.
Fonte: src/main/java/com/wester/storage/controller/MovimentacaoEstoqueController.java:56 — MovimentacaoEstoqueController.registrarMovimentacao.
Autenticação, autorização e perfis: hasAuthority('SCREEN_MOVEMENTS') 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: MovimentacaoEstoqueRequestDTO; obrigatório. Sem @Valid no argumento; validações de negócio são executadas pelo serviço. Consulte os campos e restrições em Modelos.
Exemplo sintético (IDs devem existir e versões devem vir de consulta):
json
{
"tipoMovimentacao": "ENTRADA",
"produtoId": 1,
"nivelId": 1,
"quantidade": 10,
"motivo": "Recebimento",
"observacao": "Exemplo documental"
}Resposta de sucesso: MovimentacaoEstoqueResponseDTO. Campos em Modelos.
Exemplo estrutural sintético, sem afirmar valores de produção:
json
{
"historicoMovimentacaoId": 1,
"registradoEm": "Exemplo",
"tipoMovimentacao": "Exemplo",
"produtoId": 1,
"produtoNomeModelo": "Exemplo",
"produtoCodigoSistemaWester": "Exemplo",
"itemEstoqueId": 1,
"nivelId": 1,
"nivelOrigemId": 1,
"nivelDestinoId": 1,
"nivelLabel": "Exemplo",
"nivelOrigemLabel": "Exemplo",
"nivelDestinoLabel": "Exemplo",
"quantidadeMovimentada": 1,
"quantidadeAnterior": 1,
"quantidadeNova": 1,
"motivo": "Exemplo",
"observacao": "Exemplo",
"detalhesAlteracao": "Exemplo"
}Códigos HTTP: 201, 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:
- Payload da movimentação é obrigatório.
- Tipo de movimentação não suportado.
- Tipo de movimentação é obrigatório.
- Tipo de movimentação não suportado: [mensagem pode receber complemento dinâmico]
- O nível de destino já possui outro produto.
- Produto é obrigatório para esta movimentação.
- O produto informado não corresponde ao item existente no nível.
- A quantidade solicitada e maior que o saldo disponivel.
- Origem e destino devem ser niveis diferentes.
- O produto informado não corresponde ao item existente na origem.
- A quantidade solicitada e maior que o saldo disponivel na origem.
- O ajuste não pode resultar em quantidade negativa.
- Não é permitido trocar o produto durante um ajuste.
- Motivo do ajuste é obrigatório.
- Informe somente quantidade ajustada ou quantidade diferenca para o ajuste.
- Não é permitido informar produto diferente do item já existente.
- Não existe item no nível informado para zerar via ajuste.
Regras de negócio e dependências: MovimentacaoEstoqueService.registrarMovimentacao. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.
cURL (Bash):
bash
curl -X POST "${BASE_URL}/api/movimentacoes" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"tipoMovimentacao":"ENTRADA","produtoId":1,"nivelId":1,"quantidade":10,"motivo":"Recebimento","observacao":"Exemplo documental"}'API-054 — Listar movimentacoes recentes
GET /api/movimentacoes/recentes
Finalidade: Listar movimentacoes recentes.
Fonte: src/main/java/com/wester/storage/controller/MovimentacaoEstoqueController.java:70 — MovimentacaoEstoqueController.listarRecentes.
Autenticação, autorização e perfis: hasAuthority('SCREEN_MOVEMENTS') Consulte a correspondência entre autoridades e perfis em Autenticação.
Headers: Authorization: Bearer <TOKEN>. Accept: application/json recomendado.
Parâmetros:
| Nome | Local | Tipo | Obrigatório | Padrão |
|---|---|---|---|---|
limite | query | Integer | Não | 10 |
Corpo: não declarado; não enviar corpo.
Resposta de sucesso: List<MovimentacaoEstoqueRecenteDTO>. Campos em Modelos.
Exemplo estrutural sintético, sem afirmar valores de produção:
json
[]Códigos HTTP: 200, 401, 403. Códigos de segurança dependem da cadeia de filtros; falhas não capturadas podem chegar ao tratamento global descrito em Erros.
Regras de negócio e dependências: MovimentacaoEstoqueService.listarRecentes. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.
cURL (Bash):
bash
curl -X GET "${BASE_URL}/api/movimentacoes/recentes" -H "Authorization: Bearer ${TOKEN}"