Ir para o conteúdo

Materiais fixos e slots legados ​

Índice de endpoints · Modelos

API-064 — Listar ​

GET /api/nivel-materiais/nivel/{nivelId}

Finalidade: Listar.

Fonte: src/main/java/com/wester/storage/controller/NivelMaterialController.java:27 — NivelMaterialController.listar.

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: List<NivelMaterialResponseDTO>. 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: NivelMaterialService.listarMateriais. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

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

API-065 — Alocar Batch ​

POST /api/nivel-materiais/nivel/{nivelId}/alocar-batch

Finalidade: Alocar Batch. Ignora duplicatas por nível/material/tipo. Produto exige quantidade > 0; molde ativo é validado. Os tipos configurados na área não são validados neste método; materialId de produto não recebe a mesma validação de existência aplicada a molde.

Fonte: src/main/java/com/wester/storage/controller/NivelMaterialController.java:34 — NivelMaterialController.alocarBatch.

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: AlocarMateriaisRequestDTO; 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
{
  "materiais": [
    {
      "materialId": 1,
      "materialType": "PRODUTO",
      "quantidade": 10,
      "quantidadeAproximada": false
    }
  ]
}

Resposta de sucesso: List<NivelMaterialResponseDTO>. Campos em Modelos.

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

json
[]

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:

  • Nível desativado não pode receber alocações.
  • Molde não encontrado: [mensagem pode receber complemento dinâmico]
  • Molde inativo não pode ser alocado: [mensagem pode receber complemento dinâmico]
  • Informe a quantidade do produto id=

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/nivel-materiais/nivel/1/alocar-batch" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"materiais":[{"materialId":1,"materialType":"PRODUTO","quantidade":10,"quantidadeAproximada":false}]}'

API-066 — Remover ​

DELETE /api/nivel-materiais/{nivelMaterialId}

Finalidade: Remover.

Fonte: src/main/java/com/wester/storage/controller/NivelMaterialController.java:43 — NivelMaterialController.remover.

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
nivelMaterialIdpathLongSim—

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.

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

cURL (Bash):

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

API-067 — Atualizar Quantidade ​

PATCH /api/nivel-materiais/{nivelMaterialId}/quantidade

Finalidade: Atualizar Quantidade.

Fonte: src/main/java/com/wester/storage/controller/NivelMaterialController.java:51 — NivelMaterialController.atualizarQuantidade.

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
nivelMaterialIdpathLongSim—

Corpo da requisição: AtualizarQuantidadeNivelMaterialRequestDTO; 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": 1,
  "quantidadeAproximada": false
}

Resposta de sucesso: NivelMaterialResponseDTO. Campos em Modelos.

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

json
{
  "id": 1,
  "nivelId": 1,
  "materialId": 1,
  "materialType": "MOLDE",
  "materialCodigo": "Exemplo",
  "materialDescricao": "Exemplo",
  "materialCategoria": "Exemplo",
  "produtoDescricao": "Exemplo",
  "ordem": 1,
  "quantidade": 1,
  "quantidadeAproximada": false
}

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:

  • Ajuste de quantidade disponível apenas para produtos.
  • Quantidade não pode ser negativa.

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

cURL (Bash):

bash
curl -X PATCH "${BASE_URL}/api/nivel-materiais/1/quantidade" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"quantidade":1,"quantidadeAproximada":false}'

API-068 — Limpar ​

DELETE /api/nivel-materiais/nivel/{nivelId}/limpar

Finalidade: Limpar.

Fonte: src/main/java/com/wester/storage/controller/NivelMaterialController.java:62 — NivelMaterialController.limpar.

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—

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.

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

cURL (Bash):

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

API-089 — Listar slots de um nível com seus moldes alocados ​

GET /api/slots/nivel/{nivelId}

Finalidade: Listar slots de um nível com seus moldes alocados.

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:35 — SlotNivelController.listarPorNivel.

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: List<SlotNivelResponseDTO>. 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: SlotNivelService.listarSlotsPorNivel. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

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

API-090 — Buscar todas as estantes de uma área fixa (batch — substitui N chamadas por fileira) ​

GET /api/slots/area/{areaId}

Finalidade: Buscar todas as estantes de uma área fixa (batch — substitui N chamadas por fileira).

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:41 — SlotNivelController.buscarPorArea.

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
areaIdpathLongSim—

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

Resposta de sucesso: List<EstanteFixaResponseDTO>. 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: SlotNivelService.buscarEstantesPorArea. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/slots/area/1" -H "Authorization: Bearer ${TOKEN}"

API-091 — Buscar estrutura completa de uma estante (fileira fixa) com níveis e slots ​

GET /api/slots/estante/{fileiraId}

Finalidade: Buscar estrutura completa de uma estante (fileira fixa) com níveis e slots.

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:47 — SlotNivelController.buscarEstante.

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
fileiraIdpathLongSim—

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

Resposta de sucesso: EstanteFixaResponseDTO. Campos em Modelos.

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

json
{
  "fileiraId": 1,
  "fileiraIdentificador": "Exemplo",
  "fileiraOrdem": 1,
  "grades": []
}

Códigos HTTP: 200, 401, 403, 404. 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: SlotNivelService.buscarEstanteComSlots. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/slots/estante/1" -H "Authorization: Bearer ${TOKEN}"

API-092 — Inicializar slots físicos de um nível (cria N posições; idempotente) ​

POST /api/slots/nivel/{nivelId}/inicializar

Finalidade: Inicializar slots físicos de um nível (cria N posições; idempotente).

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:59 — SlotNivelController.inicializarSlots.

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—
quantidadequeryintNão2

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

Resposta de sucesso: List<SlotNivelResponseDTO>. Campos em Modelos.

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

json
[]

Códigos HTTP: 201, 400, 401, 403, 404. 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:

  • A quantidade de slots deve ser entre 1 e 10.

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/slots/nivel/1/inicializar" -H "Authorization: Bearer ${TOKEN}"

API-093 — Adicionar um slot individual em um nivel fixo ​

POST /api/slots/nivel/{nivelId}

Finalidade: Adicionar um slot individual em um nivel fixo.

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:76 — SlotNivelController.adicionarSlot.

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: SlotNivelRequestDTO; opcional. 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
{
  "posicao": 1,
  "identificador": "Exemplo"
}

Resposta de sucesso: SlotNivelResponseDTO. Campos em Modelos.

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

json
{
  "id": 1,
  "nivelId": 1,
  "posicao": 1,
  "identificador": "Exemplo",
  "moldesAlocados": []
}

Códigos HTTP: 201, 400, 401, 403, 404. 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:

  • Identificador do slot é obrigatório.
  • Posição de slot já existe neste nível: [mensagem pode receber complemento dinâmico]
  • Identificador de slot já existe neste nível: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/slots/nivel/1" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"posicao":1,"identificador":"Exemplo"}'

API-094 — Editar um slot fixo ​

PATCH /api/slots/{slotId}

Finalidade: Editar um slot fixo.

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:96 — SlotNivelController.atualizarSlot.

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
slotIdpathLongSim—

Corpo da requisição: SlotNivelRequestDTO; 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
{
  "posicao": 1,
  "identificador": "Exemplo"
}

Resposta de sucesso: SlotNivelResponseDTO. Campos em Modelos.

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

json
{
  "id": 1,
  "nivelId": 1,
  "posicao": 1,
  "identificador": "Exemplo",
  "moldesAlocados": []
}

Códigos HTTP: 200, 400, 401, 403, 404. 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:

  • Identificador do slot é obrigatório.
  • Posição de slot já existe neste nível: [mensagem pode receber complemento dinâmico]
  • Identificador de slot já existe neste nível: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

bash
curl -X PATCH "${BASE_URL}/api/slots/1" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"posicao":1,"identificador":"Exemplo"}'

API-095 — Remover um slot fixo vazio ​

DELETE /api/slots/{slotId}

Finalidade: Remover um slot fixo vazio.

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:112 — SlotNivelController.removerSlot.

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
slotIdpathLongSim—

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

Resposta de sucesso: sem corpo quando 204.

Códigos HTTP: 204, 401, 403, 404, 409. 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:

  • Não é possível remover um slot ocupado.

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

cURL (Bash):

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

API-096 — Alocar um molde em um slot ​

POST /api/slots/{slotId}/alocar

Finalidade: Alocar um molde em um slot.

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:126 — SlotNivelController.alocar.

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
slotIdpathLongSim—

Corpo da requisição: AlocarMoldeRequestDTO; 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
{
  "moldeId": 1,
  "ordem": 1
}

Resposta de sucesso: SlotNivelResponseDTO. Campos em Modelos.

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

json
{
  "id": 1,
  "nivelId": 1,
  "posicao": 1,
  "identificador": "Exemplo",
  "moldesAlocados": []
}

Códigos HTTP: 201, 400, 401, 403, 404. 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:

  • O molde está inativo e não pode ser alocado.
  • Este molde já está alocado neste slot.

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/slots/1/alocar" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"moldeId":1,"ordem":1}'

API-097 — Remover um molde específico de um slot ​

DELETE /api/slots/{slotId}/moldes/{moldeAlocadoId}

Finalidade: Remover um molde específico de um slot.

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:143 — SlotNivelController.removerMolde.

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
slotIdpathLongSim—
moldeAlocadoIdpathLongSim—

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

Resposta de sucesso: sem corpo quando 204.

Códigos HTTP: 204, 400, 401, 403, 404. 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:

  • A alocação não pertence ao slot informado.

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

cURL (Bash):

bash
curl -X DELETE "${BASE_URL}/api/slots/1/moldes/1" -H "Authorization: Bearer ${TOKEN}"

API-098 — Limpar todos os moldes de um slot ​

DELETE /api/slots/{slotId}/limpar

Finalidade: Limpar todos os moldes de um slot.

Fonte: src/main/java/com/wester/storage/controller/SlotNivelController.java:160 — SlotNivelController.limparSlot.

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
slotIdpathLongSim—

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

Resposta de sucesso: sem corpo quando 204.

Códigos HTTP: 204, 401, 403, 404. 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: SlotNivelService.limparSlot. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X DELETE "${BASE_URL}/api/slots/1/limpar" -H "Authorization: Bearer ${TOKEN}"

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