Version OScar

This commit is contained in:
Jorge Luis caudillo esparza
2026-04-24 07:54:31 -07:00
parent 8e3df951b3
commit 83acc6b4f1
3780 changed files with 7042960 additions and 0 deletions

View 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
{
}

View 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
{
}

View 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) { }
}
}
}