Version OScar
This commit is contained in:
11
ADSUtileriasService/ChecadorController/ApiChecadorBase.cs
Normal file
11
ADSUtileriasService/ChecadorController/ApiChecadorBase.cs
Normal file
@@ -0,0 +1,11 @@
|
||||
using ADSUtileriasService.Helpers;
|
||||
using ADSNetLibrary.SIGAPI.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ADSUtileriasService.ChecadorController
|
||||
{
|
||||
}
|
||||
17
ADSUtileriasService/ChecadorController/ApiZKTeco.cs
Normal file
17
ADSUtileriasService/ChecadorController/ApiZKTeco.cs
Normal file
@@ -0,0 +1,17 @@
|
||||
using ADSUtileriasService.Helpers;
|
||||
using ADSNetLibrary.SIGAPI.Models;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
using System.Data;
|
||||
using System.Drawing;
|
||||
using System.IO;
|
||||
|
||||
namespace ADSUtileriasService.ChecadorController
|
||||
{
|
||||
|
||||
|
||||
}
|
||||
173
ADSUtileriasService/ChecadorController/LogicChecador.cs
Normal file
173
ADSUtileriasService/ChecadorController/LogicChecador.cs
Normal file
@@ -0,0 +1,173 @@
|
||||
using ADSNetLibrary.Application.Conexiones.Local;
|
||||
using ADSNetLibrary.Helpers.Conexiones.LocalSQLite;
|
||||
using ADSNetLibrary.Helpers.Conexiones.ZkTeckoLib;
|
||||
using ADSNetLibrary.SIGAPI.Models.RH.Request;
|
||||
using ADSUtileriasService.Conexion.SIG;
|
||||
using ADSUtileriasService.Helpers;
|
||||
using Microsoft.Win32;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace ADSUtileriasService.ChecadorController
|
||||
{
|
||||
public class LogicChecador
|
||||
{
|
||||
public static Timer timerchecador;
|
||||
static int mmTiempo = 900000;// 15 minutos
|
||||
public static bool SyncLocaldato()
|
||||
{
|
||||
//10min
|
||||
//mmTiempo = 3000; // 30 segundos
|
||||
|
||||
Mod.GuardaLog("timmer", LogsNames.Log);
|
||||
timerchecador = new Timer(ontimerchecador, $"multithread executed... tiempo de envio {mmTiempo} milisegundos.", 0, mmTiempo); //1200000 //2400000 // 3600000);
|
||||
|
||||
Mod.GuardaLog("timmer executed", LogsNames.Log);
|
||||
return true;
|
||||
}
|
||||
|
||||
static void ontimerchecador(object data)
|
||||
{
|
||||
// This runs on a pooled thread
|
||||
//Console.WriteLine(data); // Writes "multithread executed..."
|
||||
|
||||
Mod.GuardaLog($"timmer executed {mmTiempo}", LogsNames.Log);
|
||||
try
|
||||
{
|
||||
|
||||
RHSIG rhsig = new RHSIG();
|
||||
using (SqlLiteBase bd = new SqlLiteBase(""))
|
||||
{
|
||||
UtileriasSqlite utilsqlite = new UtileriasSqlite(bd);
|
||||
var devicelist = utilsqlite.GETChecadoresActivos();
|
||||
foreach (ADSNetLibrary.SIGAPI.Models.RH.Response.ResponseGetChecadoresModel devicemodel in devicelist)
|
||||
{
|
||||
|
||||
Mod.GuardaLog($"Checador Actual {devicemodel.checador} {devicemodel.iPLocal} {devicemodel.puerto} CveChecado: {devicemodel.cveChecador} CveEmpresa:{devicemodel.CveEmpresa} CveSubpryecto:{devicemodel.cveSubProyecto} ", LogsNames.Log);
|
||||
SDKZkTeckoHelper libvalidacion = new SDKZkTeckoHelper();
|
||||
/*
|
||||
//bool conected = libvalidacion.sta_ConnectTCP(devicemodel.iPLocal, devicemodel.puerto, "0") > 0;
|
||||
if (conected)
|
||||
{
|
||||
usuariosporvaldar = libvalidacion.GetUserInfo();
|
||||
libvalidacion.sta_DisConnect();
|
||||
}*/
|
||||
ADSNetLibrary.SIGAPI.Models.ResponseModel<List<RegistroPersonalChecador>> registros = null;
|
||||
ADSNetLibrary.SIGAPI.Models.ResponseModel<List<ResponseUser>> users = null;
|
||||
|
||||
//int contadorRegistros = 0;
|
||||
using (ApiZKTeco device = new ApiZKTeco(devicemodel.iPLocal, devicemodel.puerto.ToEntero()))
|
||||
{
|
||||
registros = device.GetChecadorRegistroEmpleado(DateTime.Now.AddDays(-17), DateTime.Now.AddMonths(1));
|
||||
|
||||
bool continuarx = false;
|
||||
while (continuarx && (registros == null || !registros.IsSuccess))
|
||||
{
|
||||
registros = device.GetChecadorRegistroEmpleado(DateTime.Now.AddDays(-17), DateTime.Now.AddMonths(1));
|
||||
}
|
||||
if (registros != null && registros.IsSuccess)
|
||||
{
|
||||
users = device.GetUserInfo();
|
||||
}
|
||||
}
|
||||
|
||||
if (users != null && users.IsSuccess)
|
||||
{
|
||||
Mod.GuardaLog($"Numero de registros {users.Result.Count} ", LogsNames.Log);
|
||||
}
|
||||
|
||||
//Mod.GuardaLog(Newtonsoft.Json.JsonConvert.SerializeObject(device.GetChecadorEmpleado()), LogsNames.Log);
|
||||
List<RequestAddChecadorRegistro> registrostosave = new List<RequestAddChecadorRegistro>();
|
||||
if (users != null && users.IsSuccess)
|
||||
{
|
||||
List<ResponseUser> usuariosporvaldar = users.Result;
|
||||
DateTime mindate = DateTime.Now.AddMonths(-2);
|
||||
if (mindate > GlobalVars.fechaChecadorlup) { GlobalVars.fechaChecadorlup = mindate; }
|
||||
//DateTime fechac = GlobalVars.fechaChecadorlup;
|
||||
foreach (RegistroPersonalChecador reg in registros.Result)
|
||||
{
|
||||
RequestAddChecadorRegistro req = new RequestAddChecadorRegistro();
|
||||
|
||||
req.ChecadorID = reg.IdPersonal.ToEntero();
|
||||
|
||||
var usuario = usuariosporvaldar.FirstOrDefault(x => x.dwEnrollNumber == reg.IdPersonal);
|
||||
if (usuario != null) { req.CvePersonal = usuario.sCardnumber.ToEntero(); }
|
||||
req.CveChecador = devicemodel.cveChecador;
|
||||
req.Fecha = reg.fecha;
|
||||
registrostosave.Add(req);
|
||||
//if (reg.fecha > fechac) { fechac = reg.fecha; }
|
||||
|
||||
}
|
||||
//GlobalVars.fechaChecadorlup = fechac;
|
||||
rhsig.AddChecadorRegistro(registrostosave);
|
||||
|
||||
}
|
||||
Mod.GuardaLog(Newtonsoft.Json.JsonConvert.SerializeObject(registrostosave), LogsNames.Log);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Mod.GuardaLog(e, "Error al enviar registros de asistencia", LogsNames.Log);
|
||||
}
|
||||
if (!ADSUtileriasService.Helpers.GlobalVars.continuarService)
|
||||
{
|
||||
if (timerchecador != null)
|
||||
{
|
||||
timerchecador.Dispose();
|
||||
timerchecador = null;
|
||||
Mod.GuardaLog("Teminar timer", LogsNames.Log);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public static void UpdateKeyPersonalChecador()
|
||||
{
|
||||
|
||||
Mod.GuardaLog($"Actualiza key executed {mmTiempo}", LogsNames.Log);
|
||||
|
||||
try
|
||||
{
|
||||
|
||||
using (SqlLiteBase bd = new SqlLiteBase(""))
|
||||
{
|
||||
UtileriasSqlite utilsqlite = new UtileriasSqlite(bd);
|
||||
var devicelist = utilsqlite.GETChecadoresActivos();
|
||||
foreach (ADSNetLibrary.SIGAPI.Models.RH.Response.ResponseGetChecadoresModel devicemodel in devicelist)
|
||||
{
|
||||
Mod.GuardaLog($"Checador Actual {devicemodel.checador} {devicemodel.iPLocal} {devicemodel.puerto} CveChecado: {devicemodel.cveChecador} CveEmpresa:{devicemodel.CveEmpresa} CveSubpryecto:{devicemodel.cveSubProyecto} ", LogsNames.Log);
|
||||
|
||||
ADSNetLibrary.SIGAPI.Models.ResponseModel<List<ResponseUser>> users = null;
|
||||
using (ApiZKTeco device = new ApiZKTeco(devicemodel.iPLocal, devicemodel.puerto.ToEntero()))
|
||||
{
|
||||
users = device.GetUserInfo();
|
||||
|
||||
foreach (ResponseUser reg in users.Result)
|
||||
{
|
||||
device.UpdateUserCardFromPassword(reg);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
catch (Exception) { }
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user