Definir objetivos de turnos
Define o objetivo de produção de turnos existentes, para dias futuros ou passados. O corpo é um array JSON de até 1000 linhas, por isso um plano completo (ou a sua exportação para CSV) cabe numa única chamada.
Cada linha indica um turno pela sua máquina (uuid ou name), pela data (date) em que começa no fuso horário da empresa, e pelo seu nome (title, por exemplo Morning). Enviar os mesmos valores outra vez não causa problemas: o objetivo é substituído, não somado.
Cada linha é devolvida com um status, e só as linhas updated alteraram alguma coisa:
updated: o objetivo do turno passa a sertargetQuantity.machineNotFound/ambiguousMachine: nenhuma máquina, ou mais do que uma, corresponde amachine.shiftNotFound/ambiguousShift: a máquina não tem nenhum turno, ou tem mais do que um, com esse nome que comece nessa data.duplicateShift: outra linha do mesmo pedido aponta para o mesmo turno, por isso nenhuma das duas foi aplicada.
Os objetivos são lidos em direto do turno, por isso as vistas de tempo real e de turnos mostram o novo valor de imediato. Nada é recalculado: o objetivo não entra no cálculo do OEE.
Corpo do pedido
application/json
Definições de TypeScript
Utilize o tipo request body em TypeScript.
items <= 1000Corpo da resposta
application/json
application/json
curl -X PUT "https://example.com/v1/shifts/targets" \ -H "Content-Type: application/json" \ -d '[ { "machine": {}, "date": "2026-10-12", "title": "Morning", "targetQuantity": 1200 } ]'[ { "machine": { "uuid": "0190c1c2-7a3e-7cc1-9b2f-1d2e3f4a5b6c", "name": "Line 1" }, "date": "2026-10-12", "title": "Morning", "targetQuantity": 1200, "status": "updated", "machineId": 12, "shiftId": 48213 }]Listar turnos GET
Lista os seus turnos que se sobrepõem a um intervalo de tempo, passados ou futuros, para encontrar o `id` que `POST /v1/shifts/{shift_id}/operator` e `POST /v1/shifts/{shift_id}/defects` recebem. Um turno é devolvido quando alguma parte dele fica entre `from` e `to`: termina depois de `from` e começa antes de `to`. Assim, um turno da noite das 22:00 às 06:00 aparece num intervalo que cubra qualquer um dos dois dias. O intervalo pode abranger no máximo **31 dias**; percorra os períodos mais longos com intervalos consecutivos. Os turnos são devolvidos ordenados por `start` e depois por máquina. Restrinja a lista com `machineId`, repetido para várias máquinas: ``` GET /v1/shifts?from=2026-10-12T00:00:00Z&to=2026-10-13T00:00:00Z&machineId=12 ``` Os turnos excluídos das métricas também são listados, com `isConsidered: false`.
Atribuir por hora POST
Atribui um operador ao turno que a máquina `machineId` estava a executar em `start`, a partir de `start`. Use-o para registar quem operou uma máquina a posteriori, por exemplo um dia depois a partir de um sistema de planeamento, quando sabe a máquina e a hora mas não o ID do turno (`GET /v1/shifts` lista os IDs). Para um turno em curso num terminal de fábrica, `POST /v1/realtime/{machine_id}/operator` é a chamada mais curta. **Como as atribuições de operador se somam.** Cada turno mantém uma cronologia de quem operou a máquina. Uma atribuição significa "a partir de `start`, este operador opera a máquina": dura até ao fim do turno, ou até à atribuição seguinte. * **Primeira atribuição.** Se o turno ainda não tiver ninguém atribuído, o operador cobre o **turno completo**, desde o seu primeiro minuto, mesmo quando `start` é posterior. * **Atribuições posteriores.** Cada uma divide a cronologia em `start`: quem tinha a máquina mantém-na até `start`, e o novo operador assume-a de `start` até ao fim do turno. * **A ordem importa.** Envie as atribuições por ordem cronológica. Um `start` anterior à última mudança do turno é rejeitado com `400`, por isso depois não é possível inserir um operador a meio. Um `start` igual à última mudança substitui o operador que assumiu a máquina nesse momento. * **As repetições são seguras.** Enviar a mesma atribuição outra vez não altera nada. * `start` é arredondado para baixo ao minuto. Por exemplo, para um turno `Morning` das 06:00 às 14:00 ainda sem ninguém atribuído: | Pedido | Cronologia depois dele | | --- | --- | | operador 1063 a partir das 10:00 | 1063 06:00–14:00 (a primeira atribuição cobre o turno completo) | | operador 2071 a partir das 10:00 | 1063 06:00–10:00, 2071 10:00–14:00 | | operador 3300 a partir das 12:00 | 1063 06:00–10:00, 2071 10:00–12:00, 3300 12:00–14:00 | | operador 4410 a partir das 08:00 | Rejeitado com `400`: 08:00 é antes da última mudança, às 12:00 | Para registar um turno que teve vários operadores, envie o primeiro a partir do início do turno e depois os restantes pela ordem em que assumiram a máquina. As métricas de operador do turno são recalculadas em segundo plano, por isso os relatórios podem demorar um momento a mostrar a alteração. Erros: * `400`: nenhum turno corresponde, ou `start` está fora do turno, no futuro, ou antes da última mudança de operador do turno. * `403`: o turno tem produção marcada como revista, o que o bloqueia. * `404`: o operador não existe na sua empresa.