diff --git a/DataBase/版本日志/SGGLDB_V2022-06-01-001.sql b/DataBase/版本日志/SGGLDB_V2022-06-01-001.sql new file mode 100644 index 00000000..13193c2e --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2022-06-01-001.sql @@ -0,0 +1,31 @@ +ALTER TABLE SitePerson_Checking ADD UnitId NVARCHAR(50) null +go +ALTER TABLE SitePerson_Checking ADD UnitName NVARCHAR(500) null +go +ALTER TABLE SitePerson_Checking ADD PersonName NVARCHAR(50) null +go + +/****** Object: Index [NonClusteredIndex-20220601-105641] Script Date: 2022/6/1 11:00:51 ******/ +CREATE NONCLUSTERED INDEX [NonClusteredIndex-20220601-105641] ON [dbo].[SitePerson_Checking] +( + [ProjectId] ASC, + [IntoOutTime] ASC, + [UnitId] ASC, + [PersonName] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +GO + +/****** Object: Index [NonClusteredIndex-20220601-122818] Script Date: 2022/6/1 12:38:37 ******/ +CREATE NONCLUSTERED INDEX [NonClusteredIndex-20220601-122818] ON [dbo].[SitePerson_Checking] +( + [ProjectId] ASC, + [IntoOutTime] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +GO + +UPDATE A SET A.UnitId= b.UnitId +,A.PersonName=B.PersonName +,A.UnitName=C.UnitName +FROM SitePerson_Checking A,SitePerson_Person B,Base_Unit C +WHERE A.PersonId=B.PersonId AND B.UnitId=C.UnitId +go diff --git a/SGGL/BLL/HSSE/SitePerson/SitePerson_CheckingService.cs b/SGGL/BLL/HSSE/SitePerson/SitePerson_CheckingService.cs index db5c5bba..7a56b6d7 100644 --- a/SGGL/BLL/HSSE/SitePerson/SitePerson_CheckingService.cs +++ b/SGGL/BLL/HSSE/SitePerson/SitePerson_CheckingService.cs @@ -3,6 +3,7 @@ using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; +using FineUIPro; namespace BLL { @@ -10,6 +11,72 @@ namespace BLL { public static Model.SGGLDB db = Funs.DB; + #region 现场考勤列表 + /// + /// 记录数 + /// + public static int count + { + get; + set; + } + + /// + /// 定义变量 + /// + private static IQueryable getDataLists = from x in db.SitePerson_Checking + select x; + + /// + /// 数据列表 + /// + /// + /// + /// + public static IEnumerable getListData(string projectId, string unitId, string personName, string startDate, string endDate, Grid Grid1) + { + IQueryable getDataList = getDataLists.Where(x => x.ProjectId == projectId); + if (!string.IsNullOrEmpty(unitId) && unitId != Const._Null) + { + getDataList = getDataList.Where(x => x.UnitId == unitId); + } + if (!string.IsNullOrEmpty(personName)) + { + getDataList = getDataList.Where(x => x.PersonName.Contains(personName)); + } + + if (!string.IsNullOrEmpty(startDate)) + { + DateTime? startDateD = Funs.GetNewDateTime(startDate); + if (startDateD.HasValue) + { + getDataList = getDataList.Where(x => x.IntoOutTime >= startDateD.Value); + } + } + if (!string.IsNullOrEmpty(endDate)) + { + DateTime? endDateD = Funs.GetNewDateTime(endDate); + if (endDateD.HasValue) + { + getDataList = getDataList.Where(x => x.IntoOutTime < endDateD.Value); + } + } + count = getDataList.Count(); + if (count == 0) + { + return null; + } + getDataList = SortConditionHelper.SortingAndPaging(getDataList, Grid1.SortField, Grid1.SortDirection, Grid1.PageIndex, Grid1.PageSize); + return from x in getDataList + select new + { + x.CheckingId, x.ProjectId, x.UnitId, x.UnitName, x.PersonId, + x.PersonName, x.CardNo, x.IdentityCard, x.WorkAreaId, x.WorkAreaName, + x.IntoOut, x.IntoOutTime, x.Address, + }; + } + #endregion + /// /// 根据人员考勤主键获取人员考勤管理信息 /// @@ -30,12 +97,15 @@ namespace BLL Model.SitePerson_Checking newPersonInfo = new Model.SitePerson_Checking { CheckingId = personInfo.CheckingId, - PersonId = personInfo.PersonId, - CardNo = personInfo.CardNo, ProjectId = personInfo.ProjectId, - WorkAreaId = personInfo.WorkAreaId, - WorkAreaName = personInfo.WorkAreaName, + UnitId = personInfo.UnitId, + UnitName = personInfo.UnitName, + PersonId = personInfo.PersonId, + PersonName = personInfo.PersonName, IdentityCard = personInfo.IdentityCard, + CardNo = personInfo.CardNo, + WorkAreaId = personInfo.WorkAreaId, + WorkAreaName = personInfo.WorkAreaName, IntoOutTime = personInfo.IntoOutTime, IntoOut = personInfo.IntoOut, Address = personInfo.Address, @@ -62,12 +132,14 @@ namespace BLL Model.SitePerson_Checking newPersonInfo = db.SitePerson_Checking.FirstOrDefault(e => e.CheckingId == personInfo.CheckingId); if (newPersonInfo != null) { - newPersonInfo.CardNo = personInfo.CardNo; + newPersonInfo.UnitId = personInfo.UnitId; + newPersonInfo.UnitName = personInfo.UnitName; newPersonInfo.PersonId = personInfo.PersonId; - newPersonInfo.ProjectId = personInfo.ProjectId; - newPersonInfo.WorkAreaId = personInfo.WorkAreaId; - newPersonInfo.WorkAreaName = personInfo.WorkAreaName; + newPersonInfo.PersonName = personInfo.PersonName; + newPersonInfo.CardNo = personInfo.CardNo; newPersonInfo.IdentityCard = personInfo.IdentityCard; + newPersonInfo.WorkAreaId = personInfo.WorkAreaId; + newPersonInfo.WorkAreaName = personInfo.WorkAreaName; newPersonInfo.IntoOutTime = personInfo.IntoOutTime; newPersonInfo.IntoOut = personInfo.IntoOut; newPersonInfo.Address = personInfo.Address; diff --git a/SGGL/BLL/LoginService.cs b/SGGL/BLL/LoginService.cs index 5ba04f38..74302811 100644 --- a/SGGL/BLL/LoginService.cs +++ b/SGGL/BLL/LoginService.cs @@ -22,18 +22,26 @@ namespace BLL /// Ƿ¼ɹ public static bool UserLogOn(string account, string password, bool rememberMe, System.Web.UI.Page page) { - List x = (from y in Funs.DB.Sys_User - where y.Account == account && y.IsPost == true && y.Password == Funs.EncryptionPassword(password) - select y).ToList(); - if (x.Any()) + try { - string accValue = HttpUtility.UrlEncode(account); - FormsAuthentication.SetAuthCookie(accValue, false); - page.Session[SessionName.CurrUser] = x.First(); - return true; + List x = (from y in Funs.DB.Sys_User + where y.Account == account && y.IsPost == true && y.Password == Funs.EncryptionPassword(password) + select y).ToList(); + if (x.Any()) + { + string accValue = HttpUtility.UrlEncode(account); + FormsAuthentication.SetAuthCookie(accValue, false); + page.Session[SessionName.CurrUser] = x.First(); + return true; + } + else + { + return false; + } } - else + catch (Exception ex) { + ErrLogInfo.WriteLog("û½" + ex.Message); return false; } } diff --git a/SGGL/BLL/ZHGL/RealName/RealNameMonitorService.cs b/SGGL/BLL/ZHGL/RealName/RealNameMonitorService.cs index 4890fcdb..7d95ef17 100644 --- a/SGGL/BLL/ZHGL/RealName/RealNameMonitorService.cs +++ b/SGGL/BLL/ZHGL/RealName/RealNameMonitorService.cs @@ -7,19 +7,23 @@ namespace BLL { public class RealNameMonitorService { - #region 启动监视器 系统启动5分钟 + #region 启动监视器 系统启动5分钟 /// /// 监视组件 /// - // private static Timer messageTimer; + private static Timer messageTimer; /// /// 启动监视器,不一定能成功,根据系统设置决定对监视器执行的操作 系统启动5分钟 /// - public static void StartMonitor(string jtProCode) - { - int adTimeJ = Funs.GetNewInt(ConfigurationManager.AppSettings["Intervaltime"]) ?? 30; - Timer messageTimer = new Timer(); + 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(); @@ -32,8 +36,7 @@ namespace BLL { AutoReset = true }; - messageTimer.Elapsed += (sender, args) => AdUserInProcess(sender, jtProCode); - //messageTimer.Elapsed += new ElapsedEventHandler(AdUserInProcess); + messageTimer.Elapsed += new ElapsedEventHandler(AdUserInProcess); messageTimer.Interval = 1000 * 60 * adTimeJ;// 60分钟 60000 * adTimeJ; messageTimer.Start(); } @@ -44,25 +47,34 @@ namespace BLL /// /// Timer组件 /// 事件参数 - public static void AdUserInProcess(object sender, string jtProCode) + private static void AdUserInProcess(object sender, ElapsedEventArgs e) { try { SynchroSetService.PushCollCompany(); - if (!string.IsNullOrEmpty(jtProCode)) + var getRProjects = from x in Funs.DB.RealName_Project + select x; + if (getRProjects.Count() > 0) { - SynchroSetService.PushProCollCompany(jtProCode); - SynchroSetService.PushCollTeam(jtProCode); - SynchroSetService.getCollTeam(jtProCode); - SynchroSetService.PushPersons(Const.BtnAdd, jtProCode, null); - SynchroSetService.PushPersons(Const.BtnModify, jtProCode, null); - SynchroSetService.PushAttendance(jtProCode); - SynchroSetService.updatePersonsExitTime(jtProCode); + foreach (var item in getRProjects) + { + var getSynchroSet = Funs.DB.RealName_SynchroSet.FirstOrDefault(x => x.ProCode == item.JTproCode); + if (getSynchroSet != null && !string.IsNullOrEmpty(item.JTproCode)) + { + SynchroSetService.PushProCollCompany(item.JTproCode); + //SynchroSetService.PushCollTeam(item.ProCode); + //SynchroSetService.getCollTeam(item.ProCode); + //SynchroSetService.PushPersons(Const.BtnAdd, item.JTproCode, null); + //SynchroSetService.PushPersons(Const.BtnModify, item.JTproCode, null); + SynchroSetService.PushAttendance(item.JTproCode); + SynchroSetService.updatePersonsExitTime(item.JTproCode); + } + } } } catch (Exception ex) { - StartMonitor(jtProCode); + StartMonitor(); ErrLogInfo.WriteLog(ex, "数据接口定时器", "RealNameMonitorService.AdUserInProcess"); } } @@ -176,7 +188,7 @@ namespace BLL /// public static void StartMonitorDeletePushLog() { - int adTimeJ = 60 * 12; + int adTimeJ = 60 * 4; if (messageTimer1 != null) { messageTimer1.Stop(); @@ -205,21 +217,21 @@ namespace BLL try { /// 3天推送实名制日志 - var getPushLogs = Funs.DB.RealName_PushLog.Where(x => x.PushTime.Value.AddDays(3) < DateTime.Now); + 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.AddMonths(3) < DateTime.Now); + 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.AddMonths(1) < DateTime.Now); + 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); diff --git a/SGGL/BLL/ZHGL/RealName/SynchroSetService.cs b/SGGL/BLL/ZHGL/RealName/SynchroSetService.cs index 5f566b9f..1c9f309d 100644 --- a/SGGL/BLL/ZHGL/RealName/SynchroSetService.cs +++ b/SGGL/BLL/ZHGL/RealName/SynchroSetService.cs @@ -213,7 +213,7 @@ namespace BLL { access_token = obj["data"].ToString(); SynchroSet.Token = access_token; - SynchroSet.Tokenendtime = DateTime.Now.AddHours(23); + SynchroSet.Tokenendtime = DateTime.Now.AddHours(12); SynchroSet.Timestamp = Funs.GetNewDateTime(timestamp); SaveSynchroSet(SynchroSet); InsertRealNamePushLog(null, SynchroSet.ProCode, "获取凭证", obj["success"].ToString(), obj["code"].ToString(), obj["message"].ToString(),access_token, pushContent); @@ -809,7 +809,8 @@ namespace BLL } } } - InsertRealNamePushLog(null, proCode, "推送项目参建企业数据", sucess, code, mess, data, pushContent); + + InsertRealNamePushLog(null, proCode, "推送项目参建企业数据", sucess, code, mess, data, pushContent); } else { @@ -1087,10 +1088,14 @@ namespace BLL } /// - /// 推送人员数据 + /// 推送人员数据 /// + /// + /// + /// + /// 是否写日志 /// - public static string PushPersonsByIdentityCard(string type, string proCode, string identityCard) + public static string PushPersonsByIdentityCard(string type, string proCode, string identityCard,bool isLog) { try { @@ -1220,17 +1225,23 @@ namespace BLL } else if (data.Contains("人员不存在")) { - SynchroSetService.PushPersonsByIdentityCard(Const.BtnAdd, proCode, identityCard); + SynchroSetService.PushPersonsByIdentityCard(Const.BtnAdd, proCode, identityCard, isLog); } else { - InsertRealNamePushLog(null, proCode, "推送人员数据", sucess, code, mess, data, pushContent); + if (isLog) + { + InsertRealNamePushLog(null, proCode, "推送人员数据", sucess, code, mess, data, pushContent); + } } } } else { - InsertRealNamePushLog(null, proCode, "推送人员数据", sucess, code, mess, data, pushContent); + if (isLog) + { + InsertRealNamePushLog(null, proCode, "推送人员数据", sucess, code, mess, data, pushContent); + } } if (data.Contains("已存在") || mess.Contains("已存在")) @@ -1435,8 +1446,8 @@ namespace BLL var getPersonS = getData.Select(x => x.idcardNumber).Distinct().ToList(); foreach (var pitem in getPersonS) { - PushPersonsByIdentityCard(Const.BtnAdd, proCode, pitem); - PushPersonsByIdentityCard(Const.BtnModify, proCode, pitem); + PushPersonsByIdentityCard(Const.BtnAdd, proCode, pitem, false); + PushPersonsByIdentityCard(Const.BtnModify, proCode, pitem, false); } pushContent = JsonConvert.SerializeObject(listObject); diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/实名制人员导入模版.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/实名制人员导入模版.xls index 054d5dd9..6b490943 100644 Binary files a/SGGL/FineUIPro.Web/File/Excel/DataIn/实名制人员导入模版.xls and b/SGGL/FineUIPro.Web/File/Excel/DataIn/实名制人员导入模版.xls differ diff --git a/SGGL/FineUIPro.Web/Global.asax.cs b/SGGL/FineUIPro.Web/Global.asax.cs index 2164ab3a..ead64afd 100644 --- a/SGGL/FineUIPro.Web/Global.asax.cs +++ b/SGGL/FineUIPro.Web/Global.asax.cs @@ -32,6 +32,7 @@ } catch (Exception ex) { + ErrLogInfo.WriteLog("数据库连接:" + Funs.ConnString); ErrLogInfo.WriteLog(string.Empty, ex); //AppDomain.Unload(AppDomain.CurrentDomain); } @@ -49,11 +50,7 @@ { if (ConfigurationManager.AppSettings["EnableRealName"] == "True") { - var getProjects = SynchroSetService.GetRealNameProject(); - foreach (var item in getProjects) - { - BLL.RealNameMonitorService.StartMonitor(item.JTproCode); - } + BLL.RealNameMonitorService.StartMonitor(); } } catch (Exception ex) diff --git a/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonInfo.aspx b/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonInfo.aspx index 992e498f..26d536f4 100644 --- a/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonInfo.aspx +++ b/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonInfo.aspx @@ -69,12 +69,7 @@ - <%-- - - - - --%> - +