526 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			526 lines
		
	
	
		
			23 KiB
		
	
	
	
		
			C#
		
	
	
	
| using System.Linq;
 | |
| using System.Timers;
 | |
| using System.Configuration;
 | |
| using System;
 | |
| 
 | |
| namespace BLL
 | |
| {
 | |
|     public class RealNameMonitorService
 | |
|     {
 | |
|         #region 启动监视器 系统启动5分钟
 | |
|         /// <summary>
 | |
|         /// 监视组件
 | |
|         /// </summary>
 | |
|         private static Timer messageTimer;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 启动监视器,不一定能成功,根据系统设置决定对监视器执行的操作 系统启动5分钟
 | |
|         /// </summary>
 | |
|         public static void StartMonitor()
 | |
|         {
 | |
|             int adTimeJ = Funs.GetNewInt(ConfigurationManager.AppSettings["Intervaltime"]) ?? 30;
 | |
|             //var getSynchroSet = Funs.DB.RealName_SynchroSet.FirstOrDefault();
 | |
|             //if (getSynchroSet != null && getSynchroSet.Intervaltime.HasValue)
 | |
|             //{
 | |
|             //    adTimeJ = getSynchroSet.Intervaltime.Value;
 | |
|             //}
 | |
|             if (messageTimer != null)
 | |
|             {
 | |
|                 messageTimer.Stop();
 | |
|                 messageTimer.Dispose();
 | |
|                 messageTimer = null;
 | |
|             }
 | |
|             if (adTimeJ > 0)
 | |
|             {
 | |
|                 messageTimer = new Timer
 | |
|                 {
 | |
|                     AutoReset = true
 | |
|                 };
 | |
|                 messageTimer.Elapsed += new ElapsedEventHandler(AdUserInProcess);
 | |
|                 messageTimer.Interval = 1000 * 60 * adTimeJ;// 60分钟 60000 * adTimeJ;
 | |
|                 messageTimer.Start();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         public static void StartUpdateSitePerson()
 | |
|         {
 | |
|             //var getSynchroSet = Funs.DB.RealName_SynchroSet.FirstOrDefault();
 | |
|             //if (getSynchroSet != null && getSynchroSet.Intervaltime.HasValue)
 | |
|             //{
 | |
|             //    adTimeJ = getSynchroSet.Intervaltime.Value;
 | |
|             //}
 | |
|             if (messageTimer != null)
 | |
|             {
 | |
|                 messageTimer.Stop();
 | |
|                 messageTimer.Dispose();
 | |
|                 messageTimer = null;
 | |
|             }
 | |
|             messageTimer = new Timer
 | |
|             {
 | |
|                 AutoReset = true
 | |
|             };
 | |
|             messageTimer.Elapsed += new ElapsedEventHandler(UpdateSitePerson);
 | |
|             messageTimer.Interval = 1000 * 60 * 60 * 24;// 60分钟 60000 * adTimeJ;
 | |
|             messageTimer.Start();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 流程确认 定时执行 系统启动5分钟
 | |
|         /// </summary>
 | |
|         /// <param name="sender">Timer组件</param>
 | |
|         /// <param name="e">事件参数</param>
 | |
|         private static void AdUserInProcess(object sender, ElapsedEventArgs e)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 SynchroSetService.PushCollCompany();
 | |
|                 var getRProjects = from x in Funs.DB.RealName_Project
 | |
|                                    select x;
 | |
|                 if (getRProjects.Count() > 0)
 | |
|                 {
 | |
|                     foreach (var item in getRProjects)
 | |
|                     {
 | |
|                         var getSynchroSet = Funs.DB.RealName_SynchroSet.FirstOrDefault(x => x.ProCode == item.ProCode);
 | |
|                         if (getSynchroSet != null && !string.IsNullOrEmpty(item.JTproCode))
 | |
|                         {
 | |
|                             SynchroSetService.InsertRealNamePushLog(null, item.ProCode, "实名制定时器", "sucess", "200", item.ProName, "成功", null);
 | |
|                             SynchroSetService.PushProCollCompany(item.ProCode);
 | |
|                             SynchroSetService.PushAttendance(item.ProCode);
 | |
|                             SynchroSetService.updatePersonsExitTime(item.ProCode);
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 StartMonitor();
 | |
|                 ErrLogInfo.WriteLog(ex, "数据接口定时器", "RealNameMonitorService.AdUserInProcess");
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 流程确认 定时执行 系统启动5分钟
 | |
|         /// </summary>
 | |
|         /// <param name="sender">Timer组件</param>
 | |
|         /// <param name="e">事件参数</param>
 | |
|         private static void UpdateSitePerson(object sender, ElapsedEventArgs e)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|                 {
 | |
|                     var persons = from x in db.SitePerson_Person
 | |
|                                   join y in db.Base_Project on x.ProjectId equals y.ProjectId
 | |
|                                   join z in db.RealName_Project on y.JTProjectCode equals z.ProCode
 | |
|                                   join p in db.Project_ProjectUnit on new { x.UnitId, x.ProjectId } equals new { p.UnitId, p.ProjectId }
 | |
|                                   join v in db.ProjectData_TeamGroup on x.TeamGroupId equals v.TeamGroupId
 | |
|                                   join w in db.Base_WorkPost on x.WorkPostId equals w.WorkPostId
 | |
|                                   where z.JTproCode != null && x.IsCardNoOK == true && v.TeamId.HasValue && !x.OutTime.HasValue
 | |
|                                   && p.IsSynchro == true
 | |
|                                   select x;
 | |
|                     var personInOutNows = from x in db.RealName_PersonInOutNow select x;
 | |
|                     foreach (var person in persons)
 | |
|                     {
 | |
|                         var personInOutNow = personInOutNows.OrderByDescending(x => x.ChangeTime).FirstOrDefault();
 | |
|                         if (personInOutNow == null)
 | |
|                         {
 | |
|                             person.OutTime = DateTime.Now;
 | |
|                         }
 | |
|                         else if (personInOutNow.ChangeTime < DateTime.Now.AddDays(-3))
 | |
|                         {
 | |
|                             person.OutTime = personInOutNow.ChangeTime;
 | |
|                         }
 | |
|                     }
 | |
|                     db.SubmitChanges();
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 StartMonitor();
 | |
|                 ErrLogInfo.WriteLog(ex, "数据接口定时器", "RealNameMonitorService.AdUserInProcess");
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 启动监视器 系统启动5分钟-实名制出入记录去重
 | |
|         /// <summary>
 | |
|         /// 监视组件
 | |
|         /// </summary>
 | |
|         private static Timer InOutmessageTimer;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 启动监视器,不一定能成功,根据系统设置决定对监视器执行的操作 系统启动5分钟
 | |
|         /// </summary>
 | |
|         public static void StartInOutMonitor()
 | |
|         {
 | |
|             if (InOutmessageTimer != null)
 | |
|             {
 | |
|                 InOutmessageTimer.Stop();
 | |
|                 InOutmessageTimer.Dispose();
 | |
|                 InOutmessageTimer = null;
 | |
|             }
 | |
| 
 | |
|             InOutmessageTimer = new Timer
 | |
|             {
 | |
|                 AutoReset = true
 | |
|             };
 | |
|             InOutmessageTimer.Elapsed += new ElapsedEventHandler(PersonInOutProcess);
 | |
|             InOutmessageTimer.Interval = 1000 * 60 * 30;// 60分钟 60000 * adTimeJ;
 | |
|             InOutmessageTimer.Start();
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 流程确认 定时执行 系统启动5分钟
 | |
|         /// </summary>
 | |
|         /// <param name="sender">Timer组件</param>
 | |
|         /// <param name="e">事件参数</param>
 | |
|         private static void PersonInOutProcess(object sender, ElapsedEventArgs e)
 | |
|         {
 | |
|             int delCount = 0;
 | |
|             try
 | |
|             {
 | |
|                 var result = (from x in Funs.DB.RealName_PersonInOutNow
 | |
|                               select new
 | |
|                               {
 | |
|                                   x.ProjectId,
 | |
|                                   date = x.ChangeTime.Value.Date,
 | |
|                                   x.IdcardNumber,
 | |
|                                   x.IsIn
 | |
|                               }).Distinct();
 | |
|                 foreach (var item in result)
 | |
|                 {
 | |
|                     var getDateRecords = from x in Funs.DB.RealName_PersonInOutNow
 | |
|                                          where x.ProjectId == item.ProjectId && x.ChangeTime.Value >= item.date.Date && x.ChangeTime.Value < item.date.Date.AddDays(1)
 | |
|                                          && x.IdcardNumber == item.IdcardNumber
 | |
|                                          select x;
 | |
| 
 | |
|                     var getInRecords = getDateRecords.Where(x => x.IsIn == true);
 | |
|                     if (getInRecords.Count() > 1)
 | |
|                     {
 | |
|                         DateTime? minChangeTime = getInRecords.Min(x => x.ChangeTime);
 | |
|                         var getDeleteInR = from x in getInRecords
 | |
|                                            where x.ChangeTime != minChangeTime
 | |
|                                            select x;
 | |
|                         if (getDeleteInR.Count() > 0)
 | |
|                         {
 | |
|                             delCount += getDeleteInR.Count();
 | |
|                             Funs.DB.RealName_PersonInOutNow.DeleteAllOnSubmit(getDeleteInR);
 | |
|                             Funs.DB.SubmitChanges();
 | |
|                         }
 | |
|                     }
 | |
|                     var getOutRecords = getDateRecords.Where(x => x.IsIn == false);
 | |
|                     if (getOutRecords.Count() > 1)
 | |
|                     {
 | |
|                         DateTime? maxChangeTime = getOutRecords.Max(x => x.ChangeTime);
 | |
|                         var getDeleteOutR = from x in getOutRecords
 | |
|                                             where x.ChangeTime != maxChangeTime
 | |
|                                             select x;
 | |
|                         if (getDeleteOutR.Count() > 0)
 | |
|                         {
 | |
|                             delCount += getDeleteOutR.Count();
 | |
|                             Funs.DB.RealName_PersonInOutNow.DeleteAllOnSubmit(getDeleteOutR);
 | |
|                             Funs.DB.SubmitChanges();
 | |
|                         }
 | |
|                     }
 | |
| 
 | |
|                     if (delCount >= 10000)
 | |
|                     {
 | |
|                         return;
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 if (BLL.Funs.DBList.ContainsKey(System.Threading.Thread.CurrentThread.ManagedThreadId))
 | |
|                 {
 | |
|                     BLL.Funs.DBList.Remove(System.Threading.Thread.CurrentThread.ManagedThreadId);
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 启动监视器  定时清理推送日志
 | |
|         /// <summary>
 | |
|         /// 监视组件
 | |
|         /// </summary>
 | |
|         private static Timer messageTimer1;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 定时清理推送日志
 | |
|         /// </summary>
 | |
|         public static void StartMonitorDeletePushLog()
 | |
|         {
 | |
|             int adTimeJ = 60 * 4;
 | |
|             if (messageTimer1 != null)
 | |
|             {
 | |
|                 messageTimer1.Stop();
 | |
|                 messageTimer1.Dispose();
 | |
|                 messageTimer1 = null;
 | |
|             }
 | |
|             if (adTimeJ > 0)
 | |
|             {
 | |
|                 messageTimer1 = new Timer
 | |
|                 {
 | |
|                     AutoReset = true
 | |
|                 };
 | |
|                 messageTimer1.Elapsed += new ElapsedEventHandler(DeletePushLog);
 | |
|                 messageTimer1.Interval = 1000 * 60 * adTimeJ;// 60分钟 60000 * adTimeJ;
 | |
|                 messageTimer1.Start();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 流程确认 定时执行 系统启动5分钟
 | |
|         /// </summary>
 | |
|         /// <param name="sender">Timer组件</param>
 | |
|         /// <param name="e">事件参数</param>
 | |
|         private static void DeletePushLog(object sender, ElapsedEventArgs e)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 /// 3天推送实名制日志
 | |
|                 var getPushLogs = Funs.DB.RealName_PushLog.Where(x => x.PushTime.Value.AddHours(6) < DateTime.Now);
 | |
|                 if (getPushLogs.Count() > 0)
 | |
|                 {
 | |
|                     Funs.DB.RealName_PushLog.DeleteAllOnSubmit(getPushLogs);
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                 }
 | |
|                 /// 3个月操作日志
 | |
|                 var getSys_Logs = Funs.DB.Sys_Log.Where(x => x.OperationTime.Value.AddDays(15) < DateTime.Now);
 | |
|                 if (getSys_Logs.Count() > 0)
 | |
|                 {
 | |
|                     Funs.DB.Sys_Log.DeleteAllOnSubmit(getSys_Logs);
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                 }
 | |
|                 /// 1个月推送消息日志
 | |
|                 var getSys_HttpLogs = Funs.DB.Sys_HttpLog.Where(x => x.LogTime.Value.AddDays(15) < DateTime.Now);
 | |
|                 if (getSys_HttpLogs.Count() > 0)
 | |
|                 {
 | |
|                     Funs.DB.Sys_HttpLog.DeleteAllOnSubmit(getSys_HttpLogs);
 | |
|                     Funs.DB.SubmitChanges();
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 启动监视器  定时清理推送日志
 | |
|         /// <summary>
 | |
|         /// 监视组件
 | |
|         /// </summary>
 | |
|         private static Timer messageTimer2;
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 定时清理推送日志
 | |
|         /// </summary>
 | |
|         public static void StartMonitorCleanAttendance()
 | |
|         {
 | |
|             int adTimeJ = 60 * 12;
 | |
|             if (messageTimer2 != null)
 | |
|             {
 | |
|                 messageTimer2.Stop();
 | |
|                 messageTimer2.Dispose();
 | |
|                 messageTimer2 = null;
 | |
|             }
 | |
|             if (adTimeJ > 0)
 | |
|             {
 | |
|                 messageTimer2 = new Timer
 | |
|                 {
 | |
|                     AutoReset = true
 | |
|                 };
 | |
|                 messageTimer2.Elapsed += new ElapsedEventHandler(CleanAttendance);
 | |
|                 messageTimer2.Interval = 1000 * 60 * adTimeJ;// 60分钟 60000 * adTimeJ;
 | |
|                 messageTimer2.Start();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 流程确认 定时执行 系统启动5分钟
 | |
|         /// </summary>
 | |
|         /// <param name="sender">Timer组件</param>
 | |
|         /// <param name="e">事件参数</param>
 | |
|         private static void CleanAttendance(object sender, ElapsedEventArgs e)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|                 {
 | |
|                     /// 清理实名制未同步历史数据
 | |
|                     var getLastList = from x in db.SitePerson_PersonInOutNow
 | |
|                                       where x.ChangeTime <= DateTime.Now.AddHours(-48)
 | |
|                                       select x;
 | |
|                     if (getLastList.Count() > 0)
 | |
|                     {
 | |
|                         db.SitePerson_PersonInOutNow.DeleteAllOnSubmit(getLastList);
 | |
|                         db.SubmitChanges();
 | |
|                     }
 | |
|                 }
 | |
|                 using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|                 {
 | |
|                     /// 清理出入记录
 | |
|                     var getRecords = from x in db.T_d_facerecord where x.DateTimeRecord.Value.AddDays(1) < DateTime.Now select x;
 | |
|                     if (getRecords.Count() > 0)
 | |
|                     {
 | |
|                         foreach (var item in getRecords)
 | |
|                         {
 | |
|                             if (item.InOrOut == "进门")
 | |
|                             {
 | |
|                                 var getDelRecordsIn = from x in db.T_d_facerecord
 | |
|                                                       where x.ProjectId == item.ProjectId && x.EmployNO == item.EmployNO && x.InOrOut == item.InOrOut
 | |
|                                                       && x.DateTimeRecord.Value.Year == item.DateTimeRecord.Value.Year
 | |
|                                                       && x.DateTimeRecord.Value.Month == item.DateTimeRecord.Value.Month
 | |
|                                                       && x.DateTimeRecord.Value.Day == item.DateTimeRecord.Value.Day
 | |
|                                                       && x.DateTimeRecord > item.DateTimeRecord
 | |
|                                                       select x;
 | |
|                                 if (getDelRecordsIn.Count() > 0)
 | |
|                                 {
 | |
|                                     db.T_d_facerecord.DeleteAllOnSubmit(getDelRecordsIn);
 | |
|                                     db.SubmitChanges();
 | |
|                                 }
 | |
|                             }
 | |
|                             else
 | |
|                             {
 | |
|                                 var getDelRecordsOut = from x in db.T_d_facerecord
 | |
|                                                        where x.ProjectId == item.ProjectId && x.EmployNO == item.EmployNO && x.InOrOut == item.InOrOut
 | |
|                                                        && x.DateTimeRecord.Value.Year == item.DateTimeRecord.Value.Year
 | |
|                                                        && x.DateTimeRecord.Value.Month == item.DateTimeRecord.Value.Month
 | |
|                                                        && x.DateTimeRecord.Value.Day == item.DateTimeRecord.Value.Day
 | |
|                                                        && x.DateTimeRecord < item.DateTimeRecord
 | |
|                                                        select x;
 | |
|                                 if (getDelRecordsOut.Count() > 0)
 | |
|                                 {
 | |
|                                     db.T_d_facerecord.DeleteAllOnSubmit(getDelRecordsOut);
 | |
|                                     db.SubmitChanges();
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|                 using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|                 {
 | |
|                     var getVRecords = from x in db.T_d_validcardevent
 | |
|                                       where x.RecordDateTime.Value.AddDays(1) < DateTime.Now
 | |
|                                       select x;
 | |
|                     if (getVRecords.Count() > 0)
 | |
|                     {
 | |
|                         foreach (var item in getVRecords)
 | |
|                         {
 | |
|                             if (item.InOrOut == 1)
 | |
|                             {
 | |
|                                 var getDelVRecordsIn = from x in db.T_d_validcardevent
 | |
|                                                        where x.ProjectId == item.ProjectId && x.IDCardNo == item.IDCardNo && x.InOrOut == item.InOrOut
 | |
|                                                        && x.RecordDateTime.Value.Year == item.RecordDateTime.Value.Year
 | |
|                                                        && x.RecordDateTime.Value.Month == item.RecordDateTime.Value.Month
 | |
|                                                        && x.RecordDateTime.Value.Day == item.RecordDateTime.Value.Day
 | |
|                                                        && x.RecordDateTime > item.RecordDateTime
 | |
|                                                        select x;
 | |
|                                 if (getDelVRecordsIn.Count() > 0)
 | |
|                                 {
 | |
|                                     db.T_d_validcardevent.DeleteAllOnSubmit(getDelVRecordsIn);
 | |
|                                     db.SubmitChanges();
 | |
|                                 }
 | |
|                             }
 | |
|                             else
 | |
|                             {
 | |
|                                 var getDelVRecordsOut = from x in db.T_d_validcardevent
 | |
|                                                         where x.ProjectId == item.ProjectId && x.IDCardNo == item.IDCardNo && x.InOrOut == item.InOrOut
 | |
|                                                         && x.RecordDateTime.Value.Year == item.RecordDateTime.Value.Year
 | |
|                                                         && x.RecordDateTime.Value.Month == item.RecordDateTime.Value.Month
 | |
|                                                         && x.RecordDateTime.Value.Day == item.RecordDateTime.Value.Day
 | |
|                                                         && x.RecordDateTime < item.RecordDateTime
 | |
|                                                         select x;
 | |
|                                 if (getDelVRecordsOut.Count() > 0)
 | |
|                                 {
 | |
|                                     db.T_d_validcardevent.DeleteAllOnSubmit(getDelVRecordsOut);
 | |
|                                     db.SubmitChanges();
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|         #region 启动监视器 系统启动5分钟
 | |
|         /// <summary>
 | |
|         /// 启动监视器,不一定能成功,根据系统设置决定对监视器执行的操作 系统启动5分钟
 | |
|         /// </summary>
 | |
|         public static void StartMonitorProject()
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
 | |
|                 {
 | |
|                     var getRProjects = from x in db.RealName_Project
 | |
|                                        select x;
 | |
|                     if (getRProjects.Count() > 0)
 | |
|                     {
 | |
|                         foreach (var item in getRProjects)
 | |
|                         {
 | |
|                             var getSynchroSet = db.RealName_SynchroSet.FirstOrDefault(x => x.ProCode == item.ProCode);
 | |
|                             if (getSynchroSet != null && !string.IsNullOrEmpty(item.JTproCode))
 | |
|                             {
 | |
|                                 int adTimeJ = Funs.GetNewInt(ConfigurationManager.AppSettings["Intervaltime"]) ?? 30;
 | |
|                                 Timer messageTimerProject = new Timer();
 | |
|                                 if (messageTimerProject != null)
 | |
|                                 {
 | |
|                                     messageTimerProject.Stop();
 | |
|                                     messageTimerProject.Dispose();
 | |
|                                     messageTimerProject = null;
 | |
|                                 }
 | |
|                                 if (adTimeJ > 0)
 | |
|                                 {
 | |
|                                     messageTimerProject = new Timer
 | |
|                                     {
 | |
|                                         AutoReset = true
 | |
|                                     };
 | |
|                                     messageTimerProject.Elapsed += (sender, args) => AdUserInProcess(sender, item.ProCode);
 | |
|                                     //messageTimer.Elapsed += new ElapsedEventHandler(AdUserInProcess);
 | |
|                                     messageTimerProject.Interval = 1000 * 60 * 5;// adTimeJ;// 60分钟 60000 * adTimeJ;
 | |
|                                     messageTimerProject.Start();
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 StartMonitorProject();
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         /// <summary>
 | |
|         /// 流程确认 定时执行 系统启动5分钟
 | |
|         /// </summary>
 | |
|         /// <param name="sender">Timer组件</param>
 | |
|         /// <param name="e">事件参数</param>
 | |
|         public static void AdUserInProcess(object sender, string ProCode)
 | |
|         {
 | |
|             try
 | |
|             {
 | |
|                 SynchroSetService.PushCollCompany();
 | |
|                 if (!string.IsNullOrEmpty(ProCode))
 | |
|                 {
 | |
|                     SynchroSetService.InsertRealNamePushLog(null, ProCode, "实名制定时器", "sucess", "200", ProCode, "成功", null);
 | |
|                     SynchroSetService.PushProCollCompany(ProCode);
 | |
|                     SynchroSetService.PushAttendance(ProCode);
 | |
|                     SynchroSetService.updatePersonsExitTime(ProCode);
 | |
|                 }
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 ErrLogInfo.WriteLog(ex, "数据接口定时器", "RealNameMonitorService.AdUserInProcess");
 | |
|             }
 | |
|         }
 | |
|         #endregion
 | |
| 
 | |
|     }
 | |
| }
 |