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:
dayzone1: 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.dayzone2: 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:
| Valor | Dia |
|---|---|
| 1 | Domingo |
| 2 | Segunda-feira |
| 3 | Terça-feira |
| 4 | Quarta-feira |
| 5 | Quinta-feira |
| 6 | Sexta-feira |
| 7 | Sá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 →
dayzone1 - Segunda-feira →
dayzone1 - Terça-feira →
dayzone1 - Quarta-feira →
dayzone1 - Quinta-feira →
dayzone1 - Sexta-feira →
dayzone2 - Sábado →
dayzone2
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
12627314será associado aoweekzone1. - O funcionário
345489será associado aoweekzone2. - O campo
countindica 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:
| Dia | Dayzone |
|---|---|
| Domingo | 1 |
| Segunda-feira | 1 |
| Terça-feira | 1 |
| Quarta-feira | 1 |
| Quinta-feira | 1 |
| Sexta-feira | 2 |
| Sábado | 2 |
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
setuserlocknão define diretamente os horários do funcionário. Ele apenas associa o funcionário a umweekzoneque já foi configurado anteriormente através dosetdevlock.
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.