Ir para o conteúdo

Corredores, blocos e níveis ​

Índice de endpoints · Modelos

API-024 — Listar fileiras de uma área de estoque ​

GET /api/fileiras/area/{areaId}

Finalidade: Listar fileiras de uma área de estoque.

Fonte: src/main/java/com/wester/storage/controller/FileiraController.java:38 — FileiraController.listarFileirasPorArea.

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<FileiraResponseDTO>. 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: FileiraService.listarFileirasPorArea. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

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

API-025 — Buscar Fileira Por Id ​

GET /api/fileiras/{id}

Finalidade: Buscar Fileira Por Id.

Fonte: src/main/java/com/wester/storage/controller/FileiraController.java:45 — FileiraController.buscarFileiraPorId.

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

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

Resposta de sucesso: Fileira. Campos em Modelos.

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

json
{
  "id": 1,
  "identificador": "Exemplo",
  "ordem": 1,
  "areaEstoque": {
    "id": 1,
    "descricao": "Exemplo",
    "nome": "Exemplo",
    "ativo": false,
    "tipoEstrutura": "DINAMICO",
    "labelEstruturaPrimaria": "Exemplo",
    "labelEstruturaSecundaria": "Exemplo",
    "labelNivel": "Exemplo",
    "labelSlot": "Exemplo",
    "labelFileira": "Exemplo",
    "labelGrade": "Exemplo",
    "labelPosicao": "Exemplo"
  },
  "ativo": false
}

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

cURL (Bash):

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

API-026 — Criar nova fileira para uma área de estoque ​

POST /api/fileiras/area/{areaId}

Finalidade: Criar nova fileira para uma área de estoque.

Fonte: src/main/java/com/wester/storage/controller/FileiraController.java:68 — FileiraController.criarFileira.

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

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

Resposta de sucesso: FileiraResponseDTO. Campos em Modelos.

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

json
{
  "id": 1,
  "identificador": "Exemplo",
  "ordem": 1,
  "areaEstoqueId": 1
}

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:

  • N\u00e3o foi poss\u00edvel criar o corredor porque a sequ\u00eancia da \u00e1rea ficou desatualizada. Atualize a estrutura e tente novamente.
  • Identificador é obrigatório.
  • Identificador de Fileira já existe nesta Área: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

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

API-027 — Atualizar Fileira ​

PUT /api/fileiras/{id}

Finalidade: Atualizar Fileira.

Fonte: src/main/java/com/wester/storage/controller/FileiraController.java:82 — FileiraController.atualizarFileira.

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

Corpo da requisição: Fileira; 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
{
  "identificador": "Exemplo",
  "ordem": 1,
  "areaEstoque": {
    "nome": "Setor de exemplo",
    "descricao": "Área de exemplo",
    "ativo": true,
    "tipoEstrutura": "DINAMICO"
  },
  "ativo": false
}

Resposta de sucesso: Fileira. Campos em Modelos.

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

json
{
  "id": 1,
  "identificador": "Exemplo",
  "ordem": 1,
  "areaEstoque": {
    "id": 1,
    "descricao": "Exemplo",
    "nome": "Exemplo",
    "ativo": false,
    "tipoEstrutura": "DINAMICO",
    "labelEstruturaPrimaria": "Exemplo",
    "labelEstruturaSecundaria": "Exemplo",
    "labelNivel": "Exemplo",
    "labelSlot": "Exemplo",
    "labelFileira": "Exemplo",
    "labelGrade": "Exemplo",
    "labelPosicao": "Exemplo"
  },
  "ativo": false
}

Códigos HTTP: 200, 400, 401, 403, 404, 500. 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\u00e3o \u00e9 permitido alterar a \u00c1rea de Estoque de uma Fileira existente.
  • Identificador de Fileira j\u00e1 existe nesta \u00c1rea: [mensagem pode receber complemento dinâmico]
  • Ordem de Fileira j\u00e1 existe nesta \u00c1rea: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

bash
curl -X PUT "${BASE_URL}/api/fileiras/1" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"identificador":"Exemplo","ordem":1,"areaEstoque":{"nome":"Setor de exemplo","descricao":"Área de exemplo","ativo":true,"tipoEstrutura":"DINAMICO"},"ativo":false}'

API-028 — Atualizar identificador de uma estrutura primaria fixa ​

PATCH /api/fileiras/{id}/identificador

Finalidade: Atualizar identificador de uma estrutura primaria fixa.

Fonte: src/main/java/com/wester/storage/controller/FileiraController.java:105 — FileiraController.atualizarIdentificador.

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

Corpo da requisição: IdentifierUpdateRequestDTO; 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
{
  "identificador": "Exemplo",
  "version": 0
}

Resposta de sucesso: Fileira. Campos em Modelos.

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

json
{
  "id": 1,
  "identificador": "Exemplo",
  "ordem": 1,
  "areaEstoque": {
    "id": 1,
    "descricao": "Exemplo",
    "nome": "Exemplo",
    "ativo": false,
    "tipoEstrutura": "DINAMICO",
    "labelEstruturaPrimaria": "Exemplo",
    "labelEstruturaSecundaria": "Exemplo",
    "labelNivel": "Exemplo",
    "labelSlot": "Exemplo",
    "labelFileira": "Exemplo",
    "labelGrade": "Exemplo",
    "labelPosicao": "Exemplo"
  },
  "ativo": false
}

Códigos HTTP: 200, 400, 401, 403, 404, 409, 500. 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 manual é permitido apenas para setores FIXO.
  • Identificador é obrigatório.
  • Identificador de Fileira já existe nesta Área: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

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

API-029 — Desativa uma Estante (inativação lógica, permanente — esvazia tudo dentro antes) ​

DELETE /api/fileiras/{id}

Finalidade: Desativa uma Estante (inativação lógica, permanente — esvazia tudo dentro antes).

Fonte: src/main/java/com/wester/storage/controller/FileiraController.java:127 — FileiraController.deletarFileira.

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

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

Resposta de sucesso: sem corpo quando 204.

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

  • Estante já está desativada.

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

cURL (Bash):

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

API-030 — Listar Grades Por Fileira ​

GET /api/grades/fileira/{fileiraId}

Finalidade: Listar Grades Por Fileira.

Fonte: src/main/java/com/wester/storage/controller/GradeController.java:40 — GradeController.listarGradesPorFileira.

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

cURL (Bash):

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

API-031 — Buscar Grade Por Id ​

GET /api/grades/{id}

Finalidade: Buscar Grade Por Id.

Fonte: src/main/java/com/wester/storage/controller/GradeController.java:48 — GradeController.buscarGradePorId.

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

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

Resposta de sucesso: Grade. Campos em Modelos.

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

json
{
  "fileira": {
    "id": 1,
    "identificador": "Exemplo",
    "ordem": 1,
    "areaEstoque": {
      "id": 1,
      "descricao": "Exemplo",
      "nome": "Exemplo",
      "ativo": false,
      "tipoEstrutura": "DINAMICO",
      "labelEstruturaPrimaria": "Exemplo",
      "labelEstruturaSecundaria": "Exemplo",
      "labelNivel": "Exemplo",
      "labelSlot": "Exemplo",
      "labelFileira": "Exemplo",
      "labelGrade": "Exemplo",
      "labelPosicao": "Exemplo"
    },
    "ativo": false
  },
  "identificador": "Exemplo",
  "ordem": 1,
  "ativo": false
}

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

cURL (Bash):

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

API-032 — Criar grade em uma fileira ​

POST /api/grades/fileira/{fileiraId}

Finalidade: Criar grade em uma fileira.

Fonte: src/main/java/com/wester/storage/controller/GradeController.java:63 — GradeController.criarGrade.

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

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

Resposta de sucesso: GradeResponseDTO. Campos em Modelos.

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

json
{
  "id": 1,
  "identificador": "Exemplo",
  "ordem": 1,
  "fileiraId": 1
}

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:

  • N\u00e3o foi poss\u00edvel criar o bloco porque a sequ\u00eancia da fileira ficou desatualizada. Atualize a estrutura e tente novamente.
  • Identificador é obrigatório.
  • Identificador de Grade já existe nesta Fileira: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

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

API-033 — Atualizar Grade ​

PUT /api/grades/{id}

Finalidade: Atualizar Grade.

Fonte: src/main/java/com/wester/storage/controller/GradeController.java:78 — GradeController.atualizarGrade.

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

Corpo da requisição: Grade; 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
{
  "fileira": {
    "identificador": "Exemplo",
    "ordem": 1,
    "areaEstoque": {
      "nome": "Setor de exemplo",
      "descricao": "Área de exemplo",
      "ativo": true,
      "tipoEstrutura": "DINAMICO"
    },
    "ativo": false
  },
  "identificador": "Exemplo",
  "ordem": 1,
  "ativo": false
}

Resposta de sucesso: Grade. Campos em Modelos.

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

json
{
  "fileira": {
    "id": 1,
    "identificador": "Exemplo",
    "ordem": 1,
    "areaEstoque": {
      "id": 1,
      "descricao": "Exemplo",
      "nome": "Exemplo",
      "ativo": false,
      "tipoEstrutura": "DINAMICO",
      "labelEstruturaPrimaria": "Exemplo",
      "labelEstruturaSecundaria": "Exemplo",
      "labelNivel": "Exemplo",
      "labelSlot": "Exemplo",
      "labelFileira": "Exemplo",
      "labelGrade": "Exemplo",
      "labelPosicao": "Exemplo"
    },
    "ativo": false
  },
  "identificador": "Exemplo",
  "ordem": 1,
  "ativo": false
}

Códigos HTTP: 200, 400, 401, 403, 404, 500. 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\u00e3o \u00e9 permitido alterar a Fileira de uma Grade existente.
  • Identificador de Grade j\u00e1 existe nesta Fileira: [mensagem pode receber complemento dinâmico]
  • Ordem de Grade j\u00e1 existe nesta Fileira: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

bash
curl -X PUT "${BASE_URL}/api/grades/1" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"fileira":{"identificador":"Exemplo","ordem":1,"areaEstoque":{"nome":"Setor de exemplo","descricao":"Área de exemplo","ativo":true,"tipoEstrutura":"DINAMICO"},"ativo":false},"identificador":"Exemplo","ordem":1,"ativo":false}'

API-034 — Atualizar identificador de uma estrutura secundaria fixa ​

PATCH /api/grades/{id}/identificador

Finalidade: Atualizar identificador de uma estrutura secundaria fixa.

Fonte: src/main/java/com/wester/storage/controller/GradeController.java:101 — GradeController.atualizarIdentificador.

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

Corpo da requisição: IdentifierUpdateRequestDTO; 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
{
  "identificador": "Exemplo",
  "version": 0
}

Resposta de sucesso: Grade. Campos em Modelos.

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

json
{
  "fileira": {
    "id": 1,
    "identificador": "Exemplo",
    "ordem": 1,
    "areaEstoque": {
      "id": 1,
      "descricao": "Exemplo",
      "nome": "Exemplo",
      "ativo": false,
      "tipoEstrutura": "DINAMICO",
      "labelEstruturaPrimaria": "Exemplo",
      "labelEstruturaSecundaria": "Exemplo",
      "labelNivel": "Exemplo",
      "labelSlot": "Exemplo",
      "labelFileira": "Exemplo",
      "labelGrade": "Exemplo",
      "labelPosicao": "Exemplo"
    },
    "ativo": false
  },
  "identificador": "Exemplo",
  "ordem": 1,
  "ativo": false
}

Códigos HTTP: 200, 400, 401, 403, 404, 409, 500. 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 manual é permitido apenas para setores FIXO.
  • Identificador é obrigatório.
  • Identificador de Grade já existe nesta Fileira: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

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

API-035 — Desativa um Bloco (inativação lógica, permanente — esvazia tudo dentro antes) ​

DELETE /api/grades/{id}

Finalidade: Desativa um Bloco (inativação lógica, permanente — esvazia tudo dentro antes).

Fonte: src/main/java/com/wester/storage/controller/GradeController.java:123 — GradeController.deletarGrade.

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

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

Resposta de sucesso: sem corpo quando 204.

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

  • Bloco j\u00e1 est\u00e1 desativado.

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

cURL (Bash):

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

API-055 — Listar Niveis Por Grade ​

GET /api/niveis/grade/{gradeId}

Finalidade: Listar Niveis Por Grade.

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:44 — NivelController.listarNiveisPorGrade.

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

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

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

cURL (Bash):

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

API-056 — Buscar Nivel Por Id ​

GET /api/niveis/{id}

Finalidade: Buscar Nivel Por Id.

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:52 — NivelController.buscarNivelPorId.

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

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

Resposta de sucesso: Nivel. Campos em Modelos.

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

json
{
  "version": 0,
  "grade": {
    "fileira": {
      "id": 1,
      "identificador": "Exemplo",
      "ordem": 1,
      "areaEstoque": {
        "id": 1,
        "descricao": "Exemplo",
        "nome": "Exemplo",
        "ativo": false,
        "tipoEstrutura": "DINAMICO",
        "labelEstruturaPrimaria": "Exemplo",
        "labelEstruturaSecundaria": "Exemplo",
        "labelNivel": "Exemplo",
        "labelSlot": "Exemplo",
        "labelFileira": "Exemplo",
        "labelGrade": "Exemplo",
        "labelPosicao": "Exemplo"
      },
      "ativo": false
    },
    "identificador": "Exemplo",
    "ordem": 1,
    "ativo": false
  },
  "identificador": "Exemplo",
  "ordem": 1,
  "identificadorCompletoLegivel": "Exemplo",
  "ativo": false
}

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

cURL (Bash):

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

API-057 — Criar nível em uma grade ​

POST /api/niveis/grade/{gradeId}

Finalidade: Criar nível em uma grade.

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:67 — NivelController.criarNivel.

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

Corpo da requisição: NivelCreateRequestDTO; 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
{
  "identificador": "Exemplo",
  "ordem": 1,
  "item": {
    "quantidade": 10,
    "quantidadeAproximada": false,
    "observacao": "Contagem conferida",
    "produto": {
      "codigoSistemaWester": "DOC-001",
      "nomeModelo": "Produto de exemplo",
      "cor": "Preto",
      "descricao": "Exemplo documental"
    }
  }
}

Resposta de sucesso: NivelResponseDTO. Campos em Modelos.

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

json
{
  "id": 1,
  "version": 0,
  "identificador": "Exemplo",
  "ordem": 1,
  "gradeId": 1,
  "itemEstoqueId": 1
}

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:

  • Posição inválida para inserção. Informe um valor entre 1 e
  • Informe uma quantidade maior que zero para o produto da gaiola.
  • Identificador de nível já existe nesta grade: [mensagem pode receber complemento dinâmico]
  • Ordem de nível já existe nesta grade: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

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

API-058 — Mover nivel entre grades e posicoes ​

POST /api/niveis/{nivelId}/move

Finalidade: Mover nivel entre grades e posicoes.

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:87 — NivelController.moverNivel.

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: NivelMoveRequestDTO; 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
{
  "sourceGradeId": 1,
  "targetGradeId": 2,
  "targetPosition": 1,
  "nivelVersion": 0
}

Resposta de sucesso: NivelMoveResultDTO. Campos em Modelos.

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

json
{
  "nivelId": 1,
  "sourceGradeId": 1,
  "targetGradeId": 1,
  "targetPosition": 1,
  "impactedGrades": []
}

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

  • A grade de origem informada não corresponde ao nível selecionado.
  • Grade de origem ou destino não encontrada.
  • Posição inválida para movimentação. Informe um valor entre 1 e
  • Nível não encontrado na sequência atual: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/niveis/1/move" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"sourceGradeId":1,"targetGradeId":2,"targetPosition":1,"nivelVersion":0}'

API-059 — Atualizar Nivel ​

PUT /api/niveis/{id}

Finalidade: Atualizar Nivel.

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:107 — NivelController.atualizarNivel.

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

Corpo da requisição: Nivel; 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
{
  "version": 0,
  "grade": {
    "fileira": {
      "identificador": "Exemplo",
      "ordem": 1,
      "areaEstoque": {
        "nome": "Setor de exemplo",
        "descricao": "Área de exemplo",
        "ativo": true,
        "tipoEstrutura": "DINAMICO"
      },
      "ativo": false
    },
    "identificador": "Exemplo",
    "ordem": 1,
    "ativo": false
  },
  "identificador": "Exemplo",
  "ordem": 1,
  "identificadorCompletoLegivel": "Exemplo",
  "ativo": false
}

Resposta de sucesso: Nivel. Campos em Modelos.

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

json
{
  "version": 0,
  "grade": {
    "fileira": {
      "id": 1,
      "identificador": "Exemplo",
      "ordem": 1,
      "areaEstoque": {
        "id": 1,
        "descricao": "Exemplo",
        "nome": "Exemplo",
        "ativo": false,
        "tipoEstrutura": "DINAMICO",
        "labelEstruturaPrimaria": "Exemplo",
        "labelEstruturaSecundaria": "Exemplo",
        "labelNivel": "Exemplo",
        "labelSlot": "Exemplo",
        "labelFileira": "Exemplo",
        "labelGrade": "Exemplo",
        "labelPosicao": "Exemplo"
      },
      "ativo": false
    },
    "identificador": "Exemplo",
    "ordem": 1,
    "ativo": false
  },
  "identificador": "Exemplo",
  "ordem": 1,
  "identificadorCompletoLegivel": "Exemplo",
  "ativo": false
}

Códigos HTTP: 200, 400, 401, 403, 404, 500. 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 é permitido alterar a grade de um nível existente.
  • A ordem do nível deve ser maior ou igual a 1.
  • Identificador de nível já existe nesta grade: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

bash
curl -X PUT "${BASE_URL}/api/niveis/1" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"version":0,"grade":{"fileira":{"identificador":"Exemplo","ordem":1,"areaEstoque":{"nome":"Setor de exemplo","descricao":"Área de exemplo","ativo":true,"tipoEstrutura":"DINAMICO"},"ativo":false},"identificador":"Exemplo","ordem":1,"ativo":false},"identificador":"Exemplo","ordem":1,"identificadorCompletoLegivel":"Exemplo","ativo":false}'

API-060 — Atualizar identificador de um nivel fixo ​

PATCH /api/niveis/{id}/identificador

Finalidade: Atualizar identificador de um nivel fixo.

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:138 — NivelController.atualizarIdentificador.

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

Corpo da requisição: IdentifierUpdateRequestDTO; 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
{
  "identificador": "Exemplo",
  "version": 0
}

Resposta de sucesso: Nivel. Campos em Modelos.

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

json
{
  "version": 0,
  "grade": {
    "fileira": {
      "id": 1,
      "identificador": "Exemplo",
      "ordem": 1,
      "areaEstoque": {
        "id": 1,
        "descricao": "Exemplo",
        "nome": "Exemplo",
        "ativo": false,
        "tipoEstrutura": "DINAMICO",
        "labelEstruturaPrimaria": "Exemplo",
        "labelEstruturaSecundaria": "Exemplo",
        "labelNivel": "Exemplo",
        "labelSlot": "Exemplo",
        "labelFileira": "Exemplo",
        "labelGrade": "Exemplo",
        "labelPosicao": "Exemplo"
      },
      "ativo": false
    },
    "identificador": "Exemplo",
    "ordem": 1,
    "ativo": false
  },
  "identificador": "Exemplo",
  "ordem": 1,
  "identificadorCompletoLegivel": "Exemplo",
  "ativo": false
}

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

  • Identificador manual é permitido apenas para setores FIXO.
  • Identificador é obrigatório.
  • Identificador de nível já existe nesta grade: [mensagem pode receber complemento dinâmico]
  • Ordem de nível já existe nesta grade: [mensagem pode receber complemento dinâmico]

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

cURL (Bash):

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

API-061 — Remove um nível e resequencia níveis da grade ​

DELETE /api/niveis/{nivelId}/resequence

Finalidade: Remove um nível e resequencia níveis da grade. Remove e renumera os níveis restantes; devolve GradeResequenceResultDTO. Não confundir com DELETE simples.

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:162 — NivelController.deleteAndResequence.

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—
versionqueryLongNão—

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

Resposta de sucesso: GradeResequenceResultDTO. Campos em Modelos.

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

json
{
  "gradeId": 1,
  "niveis": []
}

Códigos HTTP: 200, 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:

  • Nivel não pode ser removido pela regra estrutural atual.
  • Erro de integridade ao resequenciar niveis. Verifique constraints de ordem e identificador.

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

cURL (Bash):

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

API-062 — Remove um nível (sem resequenciar) ​

DELETE /api/niveis/{nivelId}

Finalidade: Remove um nível (sem resequenciar).

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:184 — NivelController.deleteNivelOnly.

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—
versionqueryLongNão—

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 foi possível remover o nível porque existem registros vinculados a ele.

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

cURL (Bash):

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

API-063 — Desativa um Nível de setor fixo (inativação lógica, permanente — esvazia materiais antes) ​

DELETE /api/niveis/{nivelId}/desativar

Finalidade: Desativa um Nível de setor fixo (inativação lógica, permanente — esvazia materiais antes).

Fonte: src/main/java/com/wester/storage/controller/NivelController.java:206 — NivelController.desativarNivel.

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, 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ível já está desativado.

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

cURL (Bash):

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

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