Configurar Turnos Facial

Configuração de Turnos de Acesso

Este artigo tem como objetivo facilitar o entendimento dos comandos responsáveis pela configuração de turnos e horários de acesso no dispositivo.

1. Configuração dos horários diários

O primeiro passo é cadastrar os horários que poderão ser utilizados nos turnos de acesso.

Para isso, utilizamos o comando setdevlock com o campo dayzone.

Cada dayzone representa uma configuração de horário para um determinado dia. Dentro de cada day, é possível cadastrar até 5 períodos de acesso, utilizando o campo section.

Cada período deve ser informado no formato:

HH:MM~HH:MM

É possível cadastrar até 8 configurações diferentes de dayzone.

Formato da requisição

{
  "cmd": "setdevlock",
  "dayzone": [
    {
      "day": [
        { "section": "06:00~07:00" },
        { "section": "08:30~12:00" },
        { "section": "13:00~17:00" },
        { "section": "22:00~23:30" }
      ]
    },
    {
      "day": [
        { "section": "00:01~23:59" },
        { "section": "00:01~23:59" }
      ]
    }
  ]
}

No exemplo acima, foram cadastradas duas configurações de horário:

  • dayzone 1: permite acesso das 06:00 às 07:00, das 08:30 às 12:00, das 13:00 às 17:00 e das 22:00 às 23:30.
  • dayzone 2: permite acesso durante praticamente todo o dia.

Essas configurações serão utilizadas posteriormente na definição dos turnos semanais.


2. Configuração dos horários semanais

Após cadastrar os horários diários, podemos definir quais horários serão utilizados em cada dia da semana.

Para isso, utilizamos o campo weekzone no comando setdevlock.

Cada weekzone possui uma configuração para os 7 dias da semana. O campo day indica qual dayzone será utilizado naquele dia.

A numeração dos dias segue a seguinte ordem:

ValorDia
1Domingo
2Segunda-feira
3Terça-feira
4Quarta-feira
5Quinta-feira
6Sexta-feira
7Sábado

Formato da requisição

{
  "cmd": "setdevlock",
  "weekzone": [
    {
      "week": [
        { "day": 1 },
        { "day": 1 },
        { "day": 1 },
        { "day": 1 },
        { "day": 1 },
        { "day": 2 },
        { "day": 2 }
      ]
    },
    {
      "week": [
        { "day": 2 },
        { "day": 2 },
        { "day": 2 },
        { "day": 2 },
        { "day": 2 },
        { "day": 1 },
        { "day": 1 }
      ]
    }
  ]
}

Nesse exemplo, o primeiro weekzone utiliza:

  • Domingo → dayzone 1
  • Segunda-feira → dayzone 1
  • Terça-feira → dayzone 1
  • Quarta-feira → dayzone 1
  • Quinta-feira → dayzone 1
  • Sexta-feira → dayzone 2
  • Sábado → dayzone 2

Já o segundo weekzone utiliza uma combinação diferente dos mesmos dayzones.

Dessa forma, é possível criar diferentes turnos semanais reutilizando os horários cadastrados anteriormente.

3. Configuração do turno do funcionário

Após configurar os horários diários (dayzone) e os horários semanais (weekzone), é necessário vincular cada funcionário ao weekzone correspondente.

Para realizar essa configuração, utilizamos o comando setuserlock.

O campo enrollid identifica o funcionário que receberá a configuração, enquanto o campo weekzone determina qual dos turnos semanais cadastrados anteriormente será aplicado a ele.

Formato da requisição

{
  "cmd": "setuserlock",
  "count": 2,
  "record": [
    {
      "enrollid": 12627314,
      "weekzone": 1
    },
    {
      "enrollid": 345489,
      "weekzone": 2
    }
  ]
}

No exemplo acima:

  • O funcionário 12627314 será associado ao weekzone 1.
  • O funcionário 345489 será associado ao weekzone 2.
  • O campo count indica a quantidade de funcionários que serão configurados na requisição.

Dessa forma, o fluxo completo da configuração fica:

dayzone
   │
   │ Define os horários de cada dia
   ↓
weekzone
   │
   │ Define quais dayzones serão utilizados
   │ em cada dia da semana
   ↓
setuserlock
   │
   │ Vincula o funcionário ao weekzone
   ↓
Funcionário

Exemplo prático

Considerando que o weekzone 1 esteja configurado da seguinte maneira:

DiaDayzone
Domingo1
Segunda-feira1
Terça-feira1
Quarta-feira1
Quinta-feira1
Sexta-feira2
Sábado2

Ao executar:

{
  "cmd": "setuserlock",
  "count": 1,
  "record": [
    {
      "enrollid": 12627314,
      "weekzone": 1
    }
  ]
}

O funcionário 12627314 passará a utilizar o weekzone 1 e, consequentemente, os horários definidos nos respectivos dayzones.

Importante: o setuserlock não define diretamente os horários do funcionário. Ele apenas associa o funcionário a um weekzone que já foi configurado anteriormente através do setdevlock.

4. Resposta do dispositivo

Após o processamento do comando, o dispositivo retorna uma confirmação indicando se a configuração foi realizada com sucesso.

Formato da resposta

{
  "ret": "setuserlock",
  "result": true
}

Quando o campo result retornar true, significa que a configuração do turno do funcionário foi processada com sucesso.

5. Fluxo completo da configuração

A configuração dos turnos pode ser dividida em três etapas:

1. Criar os horários diários

Utilize o setdevlock com dayzone para definir os períodos de acesso.

dayzone 1 → 06:00~07:00 / 08:30~12:00 / 13:00~17:00
dayzone 2 → 00:01~23:59

2. Criar os horários semanais

Utilize o setdevlock com weekzone para determinar qual dayzone será utilizado em cada dia da semana.

weekzone 1
├── Domingo    → dayzone 1
├── Segunda    → dayzone 1
├── Terça      → dayzone 1
├── Quarta     → dayzone 1
├── Quinta     → dayzone 1
├── Sexta      → dayzone 2
└── Sábado     → dayzone 2

3. Vincular o funcionário ao turno

Utilize o setuserlock para associar o funcionário ao weekzone.

Funcionário 12627314 → weekzone 1
Funcionário 345489   → weekzone 2

Portanto, o funcionamento pode ser resumido como:

dayzone → define os horários → weekzone → define os horários de cada dia → setuserlock → vincula o funcionário ao turno.

Esse artigo foi útil?

Artigos relacionados