Ir para o conteúdo

PCP e produção ​

Índice de endpoints · Modelos

API-117 — Consultar permissões de produção ​

GET /api/mes/permissions

Finalidade: Consultar permissões de produção.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:19 — MesController.permissions.

Autenticação, autorização e perfis: Usuário autenticado; sem autoridade adicional declarada no método. 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: MesPermissions. Campos em Modelos.

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

json
{
  "read": false,
  "operate": false,
  "maintain": false,
  "plan": false,
  "admin": 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.

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

cURL (Bash):

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

API-118 — Listar injetoras ​

GET /api/mes/machines

Finalidade: Listar injetoras.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:20 — MesController.machines.

Autenticação, autorização e perfis: @mesAccess.read(authentication) 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: List<MesMachine>. Campos em Modelos.

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

json
[]

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:

  • JSON persistido invalido

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

cURL (Bash):

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

API-119 — Cadastrar injetora ​

POST /api/mes/machines

Finalidade: Cadastrar injetora.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:21 — MesController.createMachine.

Autenticação, autorização e perfis: @mesAccess.admin(authentication) 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: MesMachineInput; 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
{
  "machineId": "DOC.01",
  "name": "Injetora de exemplo",
  "numero": "01",
  "marca": "Exemplo",
  "modelo": "Exemplo",
  "ativo": true,
  "testYellow": false,
  "testRed": false
}

Resposta de sucesso: MesMachine. Campos em Modelos.

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

json
{
  "machineId": "Exemplo",
  "name": "Exemplo",
  "numero": "Exemplo",
  "marca": "Exemplo",
  "modelo": "Exemplo",
  "nozzleMode": "ALWAYS_CONTACT",
  "ativo": false,
  "testYellow": false,
  "testRed": false,
  "revision": 1,
  "activeExecutionId": "00000000-0000-4000-8000-000000000001",
  "mechanicalFault": 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:

  • machineId invalido
  • Maquina existente
  • machineId imutavel
  • Finalize a execucao antes de alterar instrumentacao
  • JSON persistido invalido

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/machines" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"machineId":"DOC.01","name":"Injetora de exemplo","numero":"01","marca":"Exemplo","modelo":"Exemplo","ativo":true,"testYellow":false,"testRed":false}'

API-120 — Atualizar injetora ​

PUT /api/mes/machines/{id}

Finalidade: Atualizar injetora.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:22 — MesController.machine.

Autenticação, autorização e perfis: @mesAccess.admin(authentication) 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
idpathStringSim—

Corpo da requisição: MesMachineInput; 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
{
  "machineId": "DOC.01",
  "name": "Injetora de exemplo",
  "numero": "01",
  "marca": "Exemplo",
  "modelo": "Exemplo",
  "ativo": true,
  "testYellow": false,
  "testRed": false
}

Resposta de sucesso: MesMachine. Campos em Modelos.

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

json
{
  "machineId": "Exemplo",
  "name": "Exemplo",
  "numero": "Exemplo",
  "marca": "Exemplo",
  "modelo": "Exemplo",
  "nozzleMode": "ALWAYS_CONTACT",
  "ativo": false,
  "testYellow": false,
  "testRed": false,
  "revision": 1,
  "activeExecutionId": "00000000-0000-4000-8000-000000000001",
  "mechanicalFault": 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:

  • machineId invalido
  • Maquina existente
  • machineId imutavel
  • Finalize a execucao antes de alterar instrumentacao
  • JSON persistido invalido

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

cURL (Bash):

bash
curl -X PUT "${BASE_URL}/api/mes/machines/DOC.01" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"machineId":"DOC.01","name":"Injetora de exemplo","numero":"01","marca":"Exemplo","modelo":"Exemplo","ativo":true,"testYellow":false,"testRed":false}'

API-121 — Consultar estado da injetora ​

GET /api/mes/machines/{id}/status

Finalidade: Consultar estado da injetora.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:23 — MesController.status.

Autenticação, autorização e perfis: @mesAccess.read(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—

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

Resposta de sucesso: MesStatus. Campos em Modelos.

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

json
{
  "machine": {
    "machineId": "Exemplo",
    "name": "Exemplo",
    "numero": "Exemplo",
    "marca": "Exemplo",
    "modelo": "Exemplo",
    "nozzleMode": "ALWAYS_CONTACT",
    "ativo": false,
    "testYellow": false,
    "testRed": false,
    "revision": 1,
    "activeExecutionId": "00000000-0000-4000-8000-000000000001",
    "mechanicalFault": false
  },
  "execution": {
    "executionId": "00000000-0000-4000-8000-000000000001",
    "orderId": "00000000-0000-4000-8000-000000000001",
    "machineId": "Exemplo",
    "contextRevision": 1,
    "status": "Exemplo",
    "preparedAt": "2026-10-15T12:00:00Z",
    "startedAt": "2026-10-15T12:00:00Z",
    "finishedAt": "2026-10-15T12:00:00Z",
    "author": "Exemplo",
    "cancelReason": "Exemplo",
    "orderCode": "Exemplo",
    "productCode": "Exemplo",
    "productName": "Exemplo",
    "toolCode": "Exemplo",
    "material": "Exemplo",
    "quantityPieces": 1,
    "piecesPerCycle": 1,
    "idealCycleMs": 1,
    "notes": "Exemplo",
    "toolSettings": {
      "lot": "Exemplo",
      "moldName": "Exemplo",
      "nozzleMode": "Exemplo",
      "pieceWeightGrams": 1,
      "netWeightGrams": 1,
      "grossWeightGrams": 1,
      "sprueWeightGrams": 1,
      "cyclesPerKit": 1
    },
    "insumos": "Exemplo",
    "goodPieces": 1,
    "targetReached": false
  },
  "telemetry": {},
  "telemetryAt": "2026-10-15T12:00:00Z",
  "hasCompletedCycle": false,
  "cycleState": "Exemplo",
  "cycleClassification": "Exemplo",
  "validationRequired": false,
  "validationReason": "Exemplo",
  "lastSequence": 1,
  "currentCycleElapsedMs": 1,
  "lastCycleMs": 1,
  "desiredLamp": "Exemplo",
  "productionBlocked": false,
  "communication": "NO_DATA",
  "metrics": {
    "grossPieces": 1,
    "cycles": 1,
    "validCycles": 1,
    "averageCycleMs": 1,
    "averageInjectionMs": 1,
    "averageMoldClosedMs": 1,
    "averageMoldNotClosedMs": 1,
    "averageNozzleContactMs": 1,
    "averageNozzleAwayMs": 1,
    "averageDosingMs": 1,
    "secondQuality": 1,
    "reject": 1,
    "residueGrams": 1,
    "goodPieces": 1,
    "qualityBasis": "Exemplo",
    "projection": "Exemplo"
  },
  "edgeHealth": {},
  "collectorHealth": {},
  "ingestionHealth": {},
  "nozzleModeInferred": {}
}

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:

  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/mes/machines/DOC.01/status" -H "Authorization: Bearer ${TOKEN}"

API-122 — Listar ordens de serviço ​

GET /api/mes/orders

Finalidade: Listar ordens de serviço.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:24 — MesController.orders.

Autenticação, autorização e perfis: @mesAccess.read(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
machineIdqueryStringNão—
pagequeryintNão0
sizequeryintNão25

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

Resposta de sucesso: MesPage<MesOrder>. Campos em Modelos.

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

json
{
  "content": [],
  "page": 0,
  "size": 1,
  "totalElements": 1,
  "totalPages": 0
}

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:

  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

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

API-123 — Cadastrar ordem de serviço ​

POST /api/mes/orders

Finalidade: Cadastrar ordem de serviço.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:25 — MesController.createOrder.

Autenticação, autorização e perfis: @mesAccess.plan(authentication) 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: MesOrderInput; 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
{
  "orderCode": "OS-DOC-001",
  "productCode": "DOC-001",
  "productName": "Produto de exemplo",
  "quantityPieces": 100,
  "piecesPerCycle": 2,
  "idealCycleMs": 30000,
  "toolCode": "M-DOC-001",
  "toolSettings": {
    "lot": "LOTE-DOC-001"
  },
  "notes": "Exemplo documental"
}

Resposta de sucesso: MesOrder. Campos em Modelos.

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

json
{
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "status": "Exemplo",
  "queuePosition": 1,
  "createdAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "insumos": "Exemplo",
  "executionId": "00000000-0000-4000-8000-000000000001",
  "goodPieces": 1,
  "targetReached": 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:

  • OS existente na maquina
  • JSON persistido invalido
  • toolSettings deve ser objeto
  • Parametro de ferramenta desconhecido: [mensagem pode receber complemento dinâmico]
  • JSON invalido

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/orders" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"orderCode":"OS-DOC-001","productCode":"DOC-001","productName":"Produto de exemplo","quantityPieces":100,"piecesPerCycle":2,"idealCycleMs":30000,"toolCode":"M-DOC-001","toolSettings":{"lot":"LOTE-DOC-001"},"notes":"Exemplo documental"}'

API-124 — Excluir OS ainda não programada ​

DELETE /api/mes/orders/{id}

Finalidade: Excluir OS ainda não programada.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:28 — MesController.deleteOrder.

Autenticação, autorização e perfis: @mesAccess.plan(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—

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

Resposta de sucesso: sem corpo quando 204.

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

  • Somente OS em A programar, ainda nao programada, pode ser excluida. Atualize a fila.
  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X DELETE "${BASE_URL}/api/mes/orders/00000000-0000-4000-8000-000000000001" -H "Authorization: Bearer ${TOKEN}"

API-125 — Editar OS sem injetora ​

PUT /api/mes/orders/{id}

Finalidade: Editar OS sem injetora. Somente QUEUED e machineId nulo. Não há endpoint específico para remover a atribuição de máquina; a mensagem que pede desatribuir não garante que exista esse fluxo.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:29 — MesController.updateOrder.

Autenticação, autorização e perfis: @mesAccess.plan(authentication) 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
idpathStringSim—

Corpo da requisição: MesOrderInput; 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
{
  "orderCode": "OS-DOC-001",
  "productCode": "DOC-001",
  "productName": "Produto de exemplo",
  "quantityPieces": 100,
  "piecesPerCycle": 2,
  "idealCycleMs": 30000,
  "toolCode": "M-DOC-001",
  "toolSettings": {
    "lot": "LOTE-DOC-001"
  },
  "notes": "Exemplo documental"
}

Resposta de sucesso: MesOrder. Campos em Modelos.

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

json
{
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "status": "Exemplo",
  "queuePosition": 1,
  "createdAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "insumos": "Exemplo",
  "executionId": "00000000-0000-4000-8000-000000000001",
  "goodPieces": 1,
  "targetReached": 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:

  • Somente OS na fila pode ser editada
  • OS já atribuída a uma injetora não pode ser editada; desatribua primeiro
  • OS existente com este código
  • JSON persistido invalido
  • UUID invalido
  • toolSettings deve ser objeto
  • Parametro de ferramenta desconhecido: [mensagem pode receber complemento dinâmico]
  • JSON invalido

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

cURL (Bash):

bash
curl -X PUT "${BASE_URL}/api/mes/orders/00000000-0000-4000-8000-000000000001" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"orderCode":"OS-DOC-001","productCode":"DOC-001","productName":"Produto de exemplo","quantityPieces":100,"piecesPerCycle":2,"idealCycleMs":30000,"toolCode":"M-DOC-001","toolSettings":{"lot":"LOTE-DOC-001"},"notes":"Exemplo documental"}'

API-126 — Extrair prévia de OS de PDF ​

POST /api/mes/orders/import-preview

Finalidade: Extrair prévia de OS de PDF. multipart/form-data, campo file. Primeiro extração de texto; fallback OCR da primeira página. Retorna prévia, não cria ordem. Sem orderCode reconhecido retorna erro.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:31 — MesController.importPreview.

Autenticação, autorização e perfis: @mesAccess.plan(authentication) 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: arquivo PDF em multipart, campo obrigatório file; não enviar JSON.

Resposta de sucesso: MesImportPreview. Campos em Modelos.

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

json
{}

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.

Regras de negócio e dependências: Implementação no próprio controller. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/orders/import-preview" -H "Authorization: Bearer ${TOKEN}" -F 'file=@ordem.pdf;type=application/pdf'

API-127 — Alterar prioridade e injetora da fila ​

PUT /api/mes/orders/{id}/position

Finalidade: Alterar prioridade e injetora da fila.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:67 — MesController.position.

Autenticação, autorização e perfis: @mesAccess.plan(authentication) 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
idpathStringSim—

Corpo da requisição: MesPositionInput; 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
{
  "queuePosition": 0,
  "machineId": "DOC.01"
}

Resposta de sucesso: MesOrder. Campos em Modelos.

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

json
{
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "status": "Exemplo",
  "queuePosition": 1,
  "createdAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "insumos": "Exemplo",
  "executionId": "00000000-0000-4000-8000-000000000001",
  "goodPieces": 1,
  "targetReached": 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:

  • Somente OS na fila pode mudar prioridade
  • A injetora da OS mudou; atualize a fila
  • OS existente na maquina
  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X PUT "${BASE_URL}/api/mes/orders/00000000-0000-4000-8000-000000000001/position" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"queuePosition":0,"machineId":"DOC.01"}'

API-128 — Atribuir injetora à OS ​

PUT /api/mes/orders/{id}/machine

Finalidade: Atribuir injetora à OS.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:68 — MesController.assignMachine.

Autenticação, autorização e perfis: @mesAccess.plan(authentication) 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
idpathStringSim—

Corpo da requisição: MesAssignInput; 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
{
  "machineId": "DOC.01"
}

Resposta de sucesso: MesOrder. Campos em Modelos.

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

json
{
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "status": "Exemplo",
  "queuePosition": 1,
  "createdAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "insumos": "Exemplo",
  "executionId": "00000000-0000-4000-8000-000000000001",
  "goodPieces": 1,
  "targetReached": 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:

  • Somente OS na fila pode trocar de injetora
  • OS existente na maquina
  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X PUT "${BASE_URL}/api/mes/orders/00000000-0000-4000-8000-000000000001/machine" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"machineId":"DOC.01"}'

API-129 — Preparar execução ​

POST /api/mes/orders/{id}/prepare

Finalidade: Preparar execução.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:69 — MesController.prepare.

Autenticação, autorização e perfis: @mesAccess.plan(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—

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

Resposta de sucesso: MesExecution. Campos em Modelos.

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

json
{
  "executionId": "00000000-0000-4000-8000-000000000001",
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "contextRevision": 1,
  "status": "Exemplo",
  "preparedAt": "2026-10-15T12:00:00Z",
  "startedAt": "2026-10-15T12:00:00Z",
  "finishedAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "cancelReason": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "insumos": "Exemplo",
  "goodPieces": 1,
  "targetReached": 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:

  • Atribua uma injetora antes de preparar a OS
  • OS ja preparada
  • JSON persistido invalido
  • UUID invalido
  • JSON invalido

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/orders/00000000-0000-4000-8000-000000000001/prepare" -H "Authorization: Bearer ${TOKEN}"

API-130 — Desfazer preparo ​

POST /api/mes/executions/{id}/unprepare

Finalidade: Desfazer preparo.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:70 — MesController.unprepare.

Autenticação, autorização e perfis: @mesAccess.plan(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—

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

Resposta de sucesso: MesOrder. Campos em Modelos.

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

json
{
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "status": "Exemplo",
  "queuePosition": 1,
  "createdAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "insumos": "Exemplo",
  "executionId": "00000000-0000-4000-8000-000000000001",
  "goodPieces": 1,
  "targetReached": 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:

  • Execucao nao esta preparada
  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/executions/00000000-0000-4000-8000-000000000001/unprepare" -H "Authorization: Bearer ${TOKEN}"

API-131 — Consultar execução ​

GET /api/mes/executions/{id}

Finalidade: Consultar execução.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:71 — MesController.execution.

Autenticação, autorização e perfis: @mesAccess.read(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—

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

Resposta de sucesso: MesExecution. Campos em Modelos.

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

json
{
  "executionId": "00000000-0000-4000-8000-000000000001",
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "contextRevision": 1,
  "status": "Exemplo",
  "preparedAt": "2026-10-15T12:00:00Z",
  "startedAt": "2026-10-15T12:00:00Z",
  "finishedAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "cancelReason": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "insumos": "Exemplo",
  "goodPieces": 1,
  "targetReached": 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:

  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/mes/executions/00000000-0000-4000-8000-000000000001" -H "Authorization: Bearer ${TOKEN}"

API-132 — Iniciar produção ​

POST /api/mes/executions/{id}/start

Finalidade: Iniciar produção.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:72 — MesController.start.

Autenticação, autorização e perfis: @mesAccess.operate(authentication) or @mesAccess.plan(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—

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

Resposta de sucesso: MesExecution. Campos em Modelos.

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

json
{
  "executionId": "00000000-0000-4000-8000-000000000001",
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "contextRevision": 1,
  "status": "Exemplo",
  "preparedAt": "2026-10-15T12:00:00Z",
  "startedAt": "2026-10-15T12:00:00Z",
  "finishedAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "cancelReason": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "insumos": "Exemplo",
  "goodPieces": 1,
  "targetReached": 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:

  • Execucao nao esta preparada
  • Maquina ja tem execucao ativa
  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/executions/00000000-0000-4000-8000-000000000001/start" -H "Authorization: Bearer ${TOKEN}"

API-133 — Finalizar produção após atingir meta ​

POST /api/mes/executions/{id}/finish

Finalidade: Finalizar produção após atingir meta. Exige RUNNING e peças de primeira qualidade >= meta. Libera a injetora. Excedente continua contando até a finalização.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:73 — MesController.finish.

Autenticação, autorização e perfis: @mesAccess.operate(authentication) or @mesAccess.plan(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—

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

Resposta de sucesso: MesExecution. Campos em Modelos.

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

json
{
  "executionId": "00000000-0000-4000-8000-000000000001",
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "contextRevision": 1,
  "status": "Exemplo",
  "preparedAt": "2026-10-15T12:00:00Z",
  "startedAt": "2026-10-15T12:00:00Z",
  "finishedAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "cancelReason": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "insumos": "Exemplo",
  "goodPieces": 1,
  "targetReached": 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:

  • Execucao nao esta em producao
  • Producao ainda nao atingiu a meta de pecas de primeira qualidade
  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/executions/00000000-0000-4000-8000-000000000001/finish" -H "Authorization: Bearer ${TOKEN}"

API-134 — Retirar OS da injetora ​

POST /api/mes/executions/{id}/reallocate

Finalidade: Retirar OS da injetora. Exige RUNNING e motivo. Encerra ordem e execução em CANCELLED; preserva produção e não cria OS com saldo restante.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:74 — MesController.reallocate.

Autenticação, autorização e perfis: @mesAccess.operate(authentication) or @mesAccess.plan(authentication) 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
idpathStringSim—

Corpo da requisição: MesReasonInput; 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
{
  "reason": "Mudança de programação"
}

Resposta de sucesso: MesExecution. Campos em Modelos.

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

json
{
  "executionId": "00000000-0000-4000-8000-000000000001",
  "orderId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "contextRevision": 1,
  "status": "Exemplo",
  "preparedAt": "2026-10-15T12:00:00Z",
  "startedAt": "2026-10-15T12:00:00Z",
  "finishedAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "cancelReason": "Exemplo",
  "orderCode": "Exemplo",
  "productCode": "Exemplo",
  "productName": "Exemplo",
  "toolCode": "Exemplo",
  "material": "Exemplo",
  "quantityPieces": 1,
  "piecesPerCycle": 1,
  "idealCycleMs": 1,
  "notes": "Exemplo",
  "toolSettings": {
    "lot": "Exemplo",
    "moldName": "Exemplo",
    "nozzleMode": "Exemplo",
    "pieceWeightGrams": 1,
    "netWeightGrams": 1,
    "grossWeightGrams": 1,
    "sprueWeightGrams": 1,
    "cyclesPerKit": 1
  },
  "insumos": "Exemplo",
  "goodPieces": 1,
  "targetReached": 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:

  • Execucao nao esta em producao
  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/executions/00000000-0000-4000-8000-000000000001/reallocate" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"reason":"Mudança de programação"}'

API-135 — Registrar refugo e resíduo ​

POST /api/mes/executions/{id}/quality

Finalidade: Registrar refugo e resíduo. Refugo/resíduo são acréscimos. Motivo obrigatório; ao menos refugo ou resíduo deve ser positivo. Até 3 casas decimais para resíduo. O serviço não exige RUNNING: não equiparar restrição da tela à autorização da API.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:75 — MesController.quality.

Autenticação, autorização e perfis: @mesAccess.operate(authentication) 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
idpathStringSim—

Corpo da requisição: MesQualityInput; 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
{
  "reject": 1,
  "residueGrams": 0,
  "notes": "Peça fora do padrão"
}

Resposta de sucesso: MesQuality. Campos em Modelos.

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

json
{
  "qualityId": "00000000-0000-4000-8000-000000000001",
  "executionId": "00000000-0000-4000-8000-000000000001",
  "secondQuality": 1,
  "reject": 1,
  "residueGrams": 1,
  "notes": "Exemplo",
  "createdAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo"
}

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:

  • residueGrams deve ser numerico
  • Residuo invalido; use ate 3 casas decimais
  • Motivo/observacao e obrigatorio
  • Informe refugo ou residuo
  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/executions/00000000-0000-4000-8000-000000000001/quality" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"reject":1,"residueGrams":0,"notes":"Peça fora do padrão"}'

API-136 — Consultar apontamentos de qualidade ​

GET /api/mes/executions/{id}/quality

Finalidade: Consultar apontamentos de qualidade.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:76 — MesController.qualities.

Autenticação, autorização e perfis: @mesAccess.read(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—
pagequeryintNão0
sizequeryintNão25

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

Resposta de sucesso: MesPage<MesQuality>. Campos em Modelos.

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

json
{
  "content": [],
  "page": 0,
  "size": 1,
  "totalElements": 1,
  "totalPages": 0
}

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:

  • JSON persistido invalido
  • UUID invalido

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

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/mes/executions/00000000-0000-4000-8000-000000000001/quality" -H "Authorization: Bearer ${TOKEN}"

API-137 — Registrar ou complementar parada ​

POST /api/mes/machines/{id}/downtimes

Finalidade: Registrar ou complementar parada. Autorização no corpo: MECHANICAL exige maintain; demais valores passam por operate antes da validação do kind. Uma ocorrência existente pode receber nova causa ou ser escalada para mecânica.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:77 — MesController.downtime.

Autenticação, autorização e perfis: Usuário autenticado; sem autoridade adicional declarada no método. 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
idpathStringSim—

Corpo da requisição: MesDowntimeInput; 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
{
  "kind": "OPERATIONAL",
  "reason": "Ajuste operacional",
  "notes": "Exemplo documental"
}

Resposta de sucesso: MesDowntime. Campos em Modelos.

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

json
{
  "downtimeId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "executionId": "00000000-0000-4000-8000-000000000001",
  "kind": "Exemplo",
  "reason": "Exemplo",
  "notes": "Exemplo",
  "startedAt": "2026-10-15T12:00:00Z",
  "releasedAt": "2026-10-15T12:00:00Z",
  "recoveredAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "releasedBy": "Exemplo",
  "releaseNotes": "Exemplo",
  "category": "Exemplo",
  "source": "Exemplo",
  "mergedInto": "00000000-0000-4000-8000-000000000001"
}

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:

  • JSON persistido invalido
  • UUID invalido
  • Histórico de causas desta parada atingiu o limite; libere a ocorrência antes de registrar outra

Regras de negócio e dependências: MesAccess.maintain, MesAccess.operate, MesService.downtime. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/machines/DOC.01/downtimes" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"kind":"OPERATIONAL","reason":"Ajuste operacional","notes":"Exemplo documental"}'

API-138 — Liberar parada ​

POST /api/mes/downtimes/{id}/release

Finalidade: Liberar parada. Exige read e maintain para parada mecânica, operate para operacional. Somente ocorrência principal e ainda não liberada. Mecânica aguarda ciclo válido para recuperação.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:81 — MesController.release.

Autenticação, autorização e perfis: Usuário autenticado; sem autoridade adicional declarada no método. 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
idpathStringSim—

Corpo da requisição: MesReleaseInput; 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
{
  "notes": "Intervenção concluída"
}

Resposta de sucesso: MesDowntime. Campos em Modelos.

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

json
{
  "downtimeId": "00000000-0000-4000-8000-000000000001",
  "machineId": "Exemplo",
  "executionId": "00000000-0000-4000-8000-000000000001",
  "kind": "Exemplo",
  "reason": "Exemplo",
  "notes": "Exemplo",
  "startedAt": "2026-10-15T12:00:00Z",
  "releasedAt": "2026-10-15T12:00:00Z",
  "recoveredAt": "2026-10-15T12:00:00Z",
  "author": "Exemplo",
  "releasedBy": "Exemplo",
  "releaseNotes": "Exemplo",
  "category": "Exemplo",
  "source": "Exemplo",
  "mergedInto": "00000000-0000-4000-8000-000000000001"
}

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:

  • JSON persistido invalido
  • UUID invalido
  • Libere a ocorrência principal desta parada
  • Ocorrencia ja liberada

Regras de negócio e dependências: MesAccess.read, MesService.downtimeById, MesAccess.maintain, MesAccess.operate, MesService.release. Consulte documento interno de regras de negócio para efeitos persistentes e validações compartilhadas.

cURL (Bash):

bash
curl -X POST "${BASE_URL}/api/mes/downtimes/00000000-0000-4000-8000-000000000001/release" -H "Authorization: Bearer ${TOKEN}" -H 'Content-Type: application/json' --data '{"notes":"Intervenção concluída"}'

API-139 — Consultar paradas por período ​

GET /api/mes/machines/{id}/downtimes

Finalidade: Consultar paradas por período.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:87 — MesController.downtimes.

Autenticação, autorização e perfis: @mesAccess.read(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—
fromqueryInstantSim—
toqueryInstantSim—
pagequeryintNão0
sizequeryintNão25

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

Resposta de sucesso: MesPage<MesDowntime>. Campos em Modelos.

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

json
{
  "content": [],
  "page": 0,
  "size": 1,
  "totalElements": 1,
  "totalPages": 0
}

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:

  • JSON persistido invalido

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

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/mes/machines/DOC.01/downtimes?from=2026-10-01T00%3A00%3A00Z&to=2026-10-15T00%3A00%3A00Z" -H "Authorization: Bearer ${TOKEN}"

API-140 — Consultar parada aberta e ocorrências vinculadas ​

GET /api/mes/machines/{id}/downtimes/active

Finalidade: Consultar parada aberta e ocorrências vinculadas.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:88 — MesController.activeDowntime.

Autenticação, autorização e perfis: @mesAccess.read(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
idpathStringSim—

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

Resposta de sucesso: MesActiveDowntime. Campos em Modelos.

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

json
{
  "active": {
    "downtimeId": "00000000-0000-4000-8000-000000000001",
    "machineId": "Exemplo",
    "executionId": "00000000-0000-4000-8000-000000000001",
    "kind": "Exemplo",
    "reason": "Exemplo",
    "notes": "Exemplo",
    "startedAt": "2026-10-15T12:00:00Z",
    "releasedAt": "2026-10-15T12:00:00Z",
    "recoveredAt": "2026-10-15T12:00:00Z",
    "author": "Exemplo",
    "releasedBy": "Exemplo",
    "releaseNotes": "Exemplo",
    "category": "Exemplo",
    "source": "Exemplo",
    "mergedInto": "00000000-0000-4000-8000-000000000001"
  },
  "linked": []
}

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:

  • JSON persistido invalido

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

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/mes/machines/DOC.01/downtimes/active" -H "Authorization: Bearer ${TOKEN}"

API-141 — Consolidar indicadores de produção ​

GET /api/mes/reports

Finalidade: Consolidar indicadores de produção. Período positivo de até 1826 dias. Totais de qualidade têm base EXECUTION; executionTotals, quando presente, representa a OS completa.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:89 — MesController.reports.

Autenticação, autorização e perfis: @mesAccess.read(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
machineIdqueryStringNão—
executionIdqueryStringNão—
fromqueryInstantSim—
toqueryInstantSim—

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

Resposta de sucesso: MesReport. Campos em Modelos.

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

json
{
  "grossPieces": 1,
  "cycles": 1,
  "validCycles": 1,
  "averageCycleMs": 1,
  "averageInjectionMs": 1,
  "averageMoldClosedMs": 1,
  "averageMoldNotClosedMs": 1,
  "averageNozzleContactMs": 1,
  "averageNozzleAwayMs": 1,
  "averageDosingMs": 1,
  "secondQuality": 1,
  "reject": 1,
  "residueGrams": 1,
  "goodPieces": 1,
  "qualityBasis": "Exemplo",
  "projection": "Exemplo",
  "executionTotals": {
    "grossPieces": 1,
    "cycles": 1,
    "validCycles": 1,
    "averageCycleMs": 1,
    "averageInjectionMs": 1,
    "averageMoldClosedMs": 1,
    "averageMoldNotClosedMs": 1,
    "averageNozzleContactMs": 1,
    "averageNozzleAwayMs": 1,
    "averageDosingMs": 1,
    "secondQuality": 1,
    "reject": 1,
    "residueGrams": 1,
    "goodPieces": 1,
    "qualityBasis": "Exemplo",
    "projection": "Exemplo"
  }
}

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:

  • UUID invalido
  • JSON persistido invalido

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

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/mes/reports?from=2026-10-01T00%3A00%3A00Z&to=2026-10-15T00%3A00%3A00Z" -H "Authorization: Bearer ${TOKEN}"

API-142 — Consultar resultados de ciclos ​

GET /api/mes/history

Finalidade: Consultar resultados de ciclos.

Fonte: src/main/java/com/wester/storage/mes/MesController.java:90 — MesController.history.

Autenticação, autorização e perfis: @mesAccess.read(authentication) Consulte a correspondência entre autoridades e perfis em Autenticação.

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

Parâmetros:

NomeLocalTipoObrigatórioPadrão
machineIdqueryStringNão—
executionIdqueryStringNão—
fromqueryInstantSim—
toqueryInstantSim—
pagequeryintNão0
sizequeryintNão25

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

Resposta de sucesso: MesPage<MesCycleOutcome>. Campos em Modelos.

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

json
{
  "content": [],
  "page": 0,
  "size": 1,
  "totalElements": 1,
  "totalPages": 0
}

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:

  • UUID invalido
  • JSON persistido invalido

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

cURL (Bash):

bash
curl -X GET "${BASE_URL}/api/mes/history?from=2026-10-01T00%3A00%3A00Z&to=2026-10-15T00%3A00%3A00Z" -H "Authorization: Bearer ${TOKEN}"

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