diff --git a/DataBase/版本日志/SGGLDB_V2022-04-01-001.sql b/DataBase/版本日志/SGGLDB_V2022-04-01-001.sql new file mode 100644 index 00000000..559bfbbf --- /dev/null +++ b/DataBase/版本日志/SGGLDB_V2022-04-01-001.sql @@ -0,0 +1,10 @@ + +/****** Object: Index [NonClusteredIndex-20220401-212216] Script Date: 2022/4/1 21:26:54 ******/ +CREATE NONCLUSTERED INDEX [NonClusteredIndex-20220401-212216] ON [dbo].[SitePerson_PersonInOut] +( + [ProjectId] ASC, + [ChangeTime] 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 + + diff --git a/SGGL/BLL/OpenService/GetDataService.cs b/SGGL/BLL/OpenService/GetDataService.cs index a9558aca..a41f6818 100644 --- a/SGGL/BLL/OpenService/GetDataService.cs +++ b/SGGL/BLL/OpenService/GetDataService.cs @@ -17,46 +17,52 @@ namespace BLL { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - /////查找未生成教材明细的 培训任务 - var getTasks = from x in db.Training_Task - where x.States == Const.State_0 && (x.TaskId == taskId || taskId == null) - select x; - if (getTasks.Count() > 0) + try { - foreach (var item in getTasks) + /////查找未生成教材明细的 培训任务 + var getTasks = from x in db.Training_Task + where x.States == Const.State_0 && (x.TaskId == taskId || taskId == null) + select x; + if (getTasks.Count() > 0) { - var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == item.UserId); - if (getPerson != null) + foreach (var item in getTasks) { - ////获取计划下 人员培训教材明细 - var getDataList = db.Sp_GetTraining_TaskItemTraining(item.PlanId, getPerson.WorkPostId); - foreach (var dataItem in getDataList) + var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == item.UserId); + if (getPerson != null) { - Model.Training_TaskItem newTaskItem = new Model.Training_TaskItem + ////获取计划下 人员培训教材明细 + var getDataList = db.Sp_GetTraining_TaskItemTraining(item.PlanId, getPerson.WorkPostId); + foreach (var dataItem in getDataList) { - TaskId = item.TaskId, - PlanId = item.PlanId, - PersonId = item.UserId, - TrainingItemCode = dataItem.TrainingItemCode, - TrainingItemName = dataItem.TrainingItemName, - AttachUrl = dataItem.AttachUrl, - }; + Model.Training_TaskItem newTaskItem = new Model.Training_TaskItem + { + TaskId = item.TaskId, + PlanId = item.PlanId, + PersonId = item.UserId, + TrainingItemCode = dataItem.TrainingItemCode, + TrainingItemName = dataItem.TrainingItemName, + AttachUrl = dataItem.AttachUrl, + }; - var getTaskItem = db.Training_TaskItem.FirstOrDefault(x => x.TaskId == item.TaskId && x.TrainingItemName == newTaskItem.TrainingItemName && x.AttachUrl == newTaskItem.AttachUrl); - if (getTaskItem == null) - { - newTaskItem.TaskItemId = SQLHelper.GetNewID(); - db.Training_TaskItem.InsertOnSubmit(newTaskItem); - db.SubmitChanges(); + var getTaskItem = db.Training_TaskItem.FirstOrDefault(x => x.TaskId == item.TaskId && x.TrainingItemName == newTaskItem.TrainingItemName && x.AttachUrl == newTaskItem.AttachUrl); + if (getTaskItem == null) + { + newTaskItem.TaskItemId = SQLHelper.GetNewID(); + db.Training_TaskItem.InsertOnSubmit(newTaskItem); + db.SubmitChanges(); + } } } - } - ////更新培训任务 - item.States = Const.State_1; - db.SubmitChanges(); + ////更新培训任务 + item.States = Const.State_1; + db.SubmitChanges(); + } } } + catch (Exception ex) + { + } } } #endregion @@ -67,29 +73,37 @@ namespace BLL /// public static void UpdateTestPlanStates() { - Model.SGGLDB db = Funs.DB; - var getTestPlans = from x in db.Training_TestPlan - where x.States == Const.State_2 && x.TestEndTime.AddMinutes(x.Duration) < DateTime.Now - select x; - if (getTestPlans.Count() > 0) + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - foreach (var item in getTestPlans) + try { - APITestPlanService.SubmitTest(item); - item.States = "3"; - db.SubmitChanges(); - } - } + var getTestPlans = from x in db.Training_TestPlan + where x.States == Const.State_2 && x.TestEndTime.AddMinutes(x.Duration) < DateTime.Now + select x; + if (getTestPlans.Count() > 0) + { + foreach (var item in getTestPlans) + { + APITestPlanService.SubmitTest(item); + item.States = "3"; + db.SubmitChanges(); + } + } - var getTrainingTestRecords = from x in db.Training_TestRecord - where x.TestStartTime.Value.AddMinutes(x.Duration) < DateTime.Now - && (!x.TestEndTime.HasValue || !x.TestScores.HasValue) - select x; - foreach (var itemRecord in getTrainingTestRecords) - { - itemRecord.TestEndTime = itemRecord.TestStartTime.Value.AddMinutes(itemRecord.Duration); - itemRecord.TestScores = db.Training_TestRecordItem.Where(x => x.TestRecordId == itemRecord.TestRecordId).Sum(x => x.SubjectScore) ?? 0; - TestRecordService.UpdateTestRecord(itemRecord); + var getTrainingTestRecords = from x in db.Training_TestRecord + where x.TestStartTime.Value.AddMinutes(x.Duration) < DateTime.Now + && (!x.TestEndTime.HasValue || !x.TestScores.HasValue) + select x; + foreach (var itemRecord in getTrainingTestRecords) + { + itemRecord.TestEndTime = itemRecord.TestStartTime.Value.AddMinutes(itemRecord.Duration); + itemRecord.TestScores = db.Training_TestRecordItem.Where(x => x.TestRecordId == itemRecord.TestRecordId).Sum(x => x.SubjectScore) ?? 0; + TestRecordService.UpdateTestRecord(itemRecord); + } + } + catch (Exception ex) + { + } } } #endregion @@ -100,17 +114,23 @@ namespace BLL /// public static void UpdateServerTestPlanStates() { - Model.SGGLDB db = Funs.DB; - - var getTrainingTestRecords = from x in db.Test_TestRecord - where x.TestStartTime.Value.AddMinutes(x.Duration.Value) < DateTime.Now - && (!x.TestEndTime.HasValue || !x.TestScores.HasValue) - select x; - foreach (var itemRecord in getTrainingTestRecords) + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - itemRecord.TestEndTime = itemRecord.TestStartTime.Value.AddMinutes(itemRecord.Duration.Value); - itemRecord.TestScores = db.Test_TestRecordItem.Where(x => x.TestRecordId == itemRecord.TestRecordId).Sum(x => x.SubjectScore) ?? 0; - db.SubmitChanges(); + try + { + var getTrainingTestRecords = from x in db.Test_TestRecord + where x.TestStartTime.Value.AddMinutes(x.Duration.Value) < DateTime.Now + && (!x.TestEndTime.HasValue || !x.TestScores.HasValue) + select x; + foreach (var itemRecord in getTrainingTestRecords) + { + itemRecord.TestEndTime = itemRecord.TestStartTime.Value.AddMinutes(itemRecord.Duration.Value); + itemRecord.TestScores = db.Test_TestRecordItem.Where(x => x.TestRecordId == itemRecord.TestRecordId).Sum(x => x.SubjectScore) ?? 0; + db.SubmitChanges(); + } + } + catch (Exception ex) + { } } } #endregion @@ -123,115 +143,183 @@ namespace BLL { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - var getProjects = (from x in db.Base_Project - where x.ProjectState == null || x.ProjectState == Const.ProjectState_1 - orderby x.ProjectCode descending - select x).ToList(); - if (!string.IsNullOrEmpty(projectId)) + try { - getProjects = getProjects.Where(x => x.ProjectId == projectId).ToList(); - } - foreach (var projectItem in getProjects) - { - var getAllPersonInOutList = from x in db.SitePerson_PersonInOut - where x.ProjectId == projectItem.ProjectId && x.ChangeTime <= DateTime.Now - select x; - if (getAllPersonInOutList.Count() > 0) + var getProjects = (from x in db.Base_Project + where x.ProjectState == null || x.ProjectState == Const.ProjectState_1 + orderby x.ProjectCode descending + select x).ToList(); + if (!string.IsNullOrEmpty(projectId)) { - #region 现场当前人员数 - int SitePersonNum = 0; - var getDayAll = from x in db.SitePerson_PersonInOutNow - where x.ChangeTime.Value.Year == DateTime.Now.Year && x.ChangeTime.Value.Month == DateTime.Now.Month - && x.ChangeTime.Value.Day == DateTime.Now.Day - select x; - if (getDayAll.Count() > 0) + getProjects = getProjects.Where(x => x.ProjectId == projectId).ToList(); + } + foreach (var projectItem in getProjects) + { + var getAllPersonInOutList = from x in db.SitePerson_PersonInOut + where x.ProjectId == projectItem.ProjectId && x.ChangeTime <= DateTime.Now + select x; + if (getAllPersonInOutList.Count() > 0) { - var getInMaxs = from x in getDayAll - group x by x.PersonId into g - select new { g.First().PersonId, ChangeTime = g.Max(x => x.ChangeTime) }; - if (getInMaxs.Count() > 0) + #region 现场当前人员数 + int SitePersonNum = 0; + var getDayAll = from x in db.SitePerson_PersonInOutNow + where x.ChangeTime.Value.Year == DateTime.Now.Year && x.ChangeTime.Value.Month == DateTime.Now.Month + && x.ChangeTime.Value.Day == DateTime.Now.Day + select x; + if (getDayAll.Count() > 0) { - SitePersonNum = (from x in getInMaxs - join y in getDayAll on new { x.PersonId, x.ChangeTime } equals new { y.PersonId, y.ChangeTime } - where y.IsIn == true - select y).Count(); + var getInMaxs = from x in getDayAll + group x by x.PersonId into g + select new { g.First().PersonId, ChangeTime = g.Max(x => x.ChangeTime) }; + if (getInMaxs.Count() > 0) + { + SitePersonNum = (from x in getInMaxs + join y in getDayAll on new { x.PersonId, x.ChangeTime } equals new { y.PersonId, y.ChangeTime } + where y.IsIn == true + select y).Count(); + } + } + #endregion + + #region 获取工时 + int SafeHours = 0; + var getPersonOutTimes = from x in getAllPersonInOutList + where x.IsIn == false + select x; + var getInLists = getAllPersonInOutList.Where(x => x.IsIn == true); + //// 查找当前项目 最新的人工时数量记录 + var getMaxInOutDate = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == projectItem.ProjectId).OrderByDescending(x => x.InOutDate).FirstOrDefault(); + if (getMaxInOutDate != null) + { + SafeHours = (getMaxInOutDate.WorkHours ?? 0) * 60; + getPersonOutTimes = from x in getPersonOutTimes + where x.ChangeTime > getMaxInOutDate.InOutDate + select x; + if (getPersonOutTimes.Count() > 0) + { + getInLists = from x in getInLists + where x.ChangeTime > getMaxInOutDate.InOutDate + select x; + } } - } - #endregion - #region 获取工时 - int SafeHours = 0; - var getPersonOutTimes = from x in getAllPersonInOutList - where x.IsIn == false - select x; - var getInLists = getAllPersonInOutList.Where(x => x.IsIn == true); - //// 查找当前项目 最新的人工时数量记录 - var getMaxInOutDate = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == projectItem.ProjectId).OrderByDescending(x => x.InOutDate).FirstOrDefault(); - if (getMaxInOutDate != null) - { - SafeHours = (getMaxInOutDate.WorkHours ?? 0) * 60; - getPersonOutTimes = from x in getPersonOutTimes - where x.ChangeTime > getMaxInOutDate.InOutDate - select x; if (getPersonOutTimes.Count() > 0) { - getInLists = from x in getInLists - where x.ChangeTime > getMaxInOutDate.InOutDate - select x; - } - } - - if (getPersonOutTimes.Count() > 0) - { - List personIdList = new List(); - foreach (var item in getPersonOutTimes) - { - var getMaxInTime = getInLists.Where(x => x.ChangeTime < item.ChangeTime - && x.PersonId == item.PersonId && x.ChangeTime.Value.AddDays(1) >= item.ChangeTime).Max(x => x.ChangeTime); - if (getMaxInTime.HasValue) + List personIdList = new List(); + foreach (var item in getPersonOutTimes) { - SafeHours += Convert.ToInt32((item.ChangeTime - getMaxInTime).Value.TotalMinutes); + var getMaxInTime = getInLists.Where(x => x.ChangeTime < item.ChangeTime + && x.PersonId == item.PersonId && x.ChangeTime.Value.AddDays(1) >= item.ChangeTime).Max(x => x.ChangeTime); + if (getMaxInTime.HasValue) + { + SafeHours += Convert.ToInt32((item.ChangeTime - getMaxInTime).Value.TotalMinutes); + } + else + { + personIdList.Add(item.PersonId); + } } - else + if (personIdList.Count() > 0) { - personIdList.Add(item.PersonId); + SafeHours += (personIdList.Distinct().Count() * 8 * 60); } } - if (personIdList.Count() > 0) + #endregion + + SafeHours = Convert.ToInt32(SafeHours * 1.0 / 60); + var getPersonInOutNumber = db.SitePerson_PersonInOutNumber.FirstOrDefault(x => x.ProjectId == projectItem.ProjectId + && x.InOutDate.Year == DateTime.Now.Year + && x.InOutDate.Month == DateTime.Now.Month + && x.InOutDate.Day == DateTime.Now.Day); + if (getPersonInOutNumber == null) { - SafeHours += (personIdList.Distinct().Count() * 8 * 60); + Model.SitePerson_PersonInOutNumber newNum = new Model.SitePerson_PersonInOutNumber + { + PersonInOutNumberId = SQLHelper.GetNewID(), + ProjectId = projectItem.ProjectId, + InOutDate = DateTime.Now, + PersonNum = SitePersonNum, + WorkHours = SafeHours, + }; + + db.SitePerson_PersonInOutNumber.InsertOnSubmit(newNum); + db.SubmitChanges(); + } + else + { + getPersonInOutNumber.InOutDate = DateTime.Now; + getPersonInOutNumber.PersonNum = SitePersonNum; + getPersonInOutNumber.WorkHours = SafeHours; + db.SubmitChanges(); } } - #endregion + } + } + catch (Exception ex) + { + } + } + } + #endregion - SafeHours = Convert.ToInt32(SafeHours * 1.0 / 60); - var getPersonInOutNumber = db.SitePerson_PersonInOutNumber.FirstOrDefault(x => x.ProjectId == projectItem.ProjectId - && x.InOutDate.Year == DateTime.Now.Year - && x.InOutDate.Month == DateTime.Now.Month - && x.InOutDate.Day == DateTime.Now.Day); - if (getPersonInOutNumber == null) + #region 自动校正出入场人数及工时 + /// + /// 自动校正出入场人数及工时 + /// + public static void CorrectingPersonInOutNumberD(string projectId) + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + try + { + var getNums = from x in db.SitePerson_PersonInOutNumber + where x.ProjectId == projectId && x.InOutDate.AddMonths(3) >= DateTime.Now + orderby x.InOutDate + select x; + var getInouts = from x in db.SitePerson_PersonInOut + where x.ProjectId == projectId && x.ChangeTime.Value.AddMonths(3) >= DateTime.Now + select x; + int SafeHours = 0; + foreach (var itemNum in getNums) + { + DateTime date = Funs.GetNewDateTimeOrNow(itemNum.InOutDate.ToShortDateString()); + ///获取当日出入记录 + var getAllPersonInOutList = from x in getInouts + where x.ChangeTime > date.AddDays(-1) && x.ChangeTime < date.AddDays(1) + select x; + + if (getAllPersonInOutList.Count() > 0) { - Model.SitePerson_PersonInOutNumber newNum = new Model.SitePerson_PersonInOutNumber + /// 出场记录 + var getPersonOutTimes = getAllPersonInOutList.Where(x => x.IsIn == false); + var getInLists = getAllPersonInOutList.Where(x => x.IsIn == true); + //// 查找当前项目 最新的人工时数量记录 + if (SafeHours == 0) { - PersonInOutNumberId = SQLHelper.GetNewID(), - ProjectId = projectItem.ProjectId, - InOutDate = DateTime.Now, - PersonNum = SitePersonNum, - WorkHours = SafeHours, - }; + var getMaxInOutDate = getNums.Where(x => x.InOutDate < date).OrderByDescending(x => x.InOutDate).FirstOrDefault(); + if (getMaxInOutDate != null) + { + SafeHours = getMaxInOutDate.WorkHours ?? 0; + } + } - db.SitePerson_PersonInOutNumber.InsertOnSubmit(newNum); - db.SubmitChanges(); + int getOutPersonCount = getPersonOutTimes.Select(x => x.PersonId).Distinct().Count(); + SafeHours += getOutPersonCount * 8; } - else + + + //SafeHours = Convert.ToInt32(SafeHours * 1.0 / 60); + if (itemNum != null) { - getPersonInOutNumber.InOutDate = DateTime.Now; - getPersonInOutNumber.PersonNum = SitePersonNum; - getPersonInOutNumber.WorkHours = SafeHours; + itemNum.InOutDate = date; + itemNum.WorkHours = SafeHours; db.SubmitChanges(); } } } + catch (Exception ex) + { + } } } #endregion @@ -244,21 +332,27 @@ namespace BLL { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - var getPersons = from x in db.SitePerson_Person - where x.IdentityCard != null && x.QRCodeAttachUrl == null - select x; - if (getPersons.Count() > 0) + try { - foreach (var item in getPersons) + var getPersons = from x in db.SitePerson_Person + where x.IdentityCard != null && x.QRCodeAttachUrl == null + select x; + if (getPersons.Count() > 0) { - string url = CreateQRCodeService.CreateCode_Simple("person$" + item.IdentityCard); - if (!string.IsNullOrEmpty(url)) + foreach (var item in getPersons) { - item.QRCodeAttachUrl = url; - db.SubmitChanges(); + string url = CreateQRCodeService.CreateCode_Simple("person$" + item.IdentityCard); + if (!string.IsNullOrEmpty(url)) + { + item.QRCodeAttachUrl = url; + db.SubmitChanges(); + } } } } + catch (Exception ex) + { + } } } #endregion @@ -293,35 +387,38 @@ namespace BLL /// public static void SendSubscribeMessage() { - try + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - string miniprogram_state = ConfigurationManager.AppSettings["miniprogram_state"]; - if (!string.IsNullOrEmpty(miniprogram_state) && miniprogram_state == "formal") + try { - //// 获取所有待办事项 - var getToItems = from x in Funs.DB.View_APP_GetToDoItems select x; - if (getToItems.Count() > 0) + string miniprogram_state = ConfigurationManager.AppSettings["miniprogram_state"]; + if (!string.IsNullOrEmpty(miniprogram_state) && miniprogram_state == "formal") { - //// 获取施工中的项目 - var getProjects = ProjectService.GetProjectWorkList(); - foreach (var item in getProjects) + //// 获取所有待办事项 + var getToItems = from x in db.View_APP_GetToDoItems select x; + if (getToItems.Count() > 0) { - ////获取当前项目下的待办 - var getPItems = getToItems.Where(x => x.ProjectId == item.ProjectId); - if (getPItems.Count() > 0) + //// 获取施工中的项目 + var getProjects = ProjectService.GetProjectWorkList(); + foreach (var item in getProjects) { - foreach (var itemP in getPItems) + ////获取当前项目下的待办 + var getPItems = getToItems.Where(x => x.ProjectId == item.ProjectId); + if (getPItems.Count() > 0) { - //"项目【" + item.ProjectCode + "】上有" + itemP.Counts.ToString() + "条待办事件,需要您处理!" - APICommonService.SendSubscribeMessage(itemP.UserId, "项目" + item.ProjectCode + "有待办", "施工信息管理", string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)); + foreach (var itemP in getPItems) + { + //"项目【" + item.ProjectCode + "】上有" + itemP.Counts.ToString() + "条待办事件,需要您处理!" + APICommonService.SendSubscribeMessage(itemP.UserId, "项目" + item.ProjectCode + "有待办", "施工信息管理", string.Format("{0:yyyy-MM-dd HH:mm:ss}", DateTime.Now)); + } } } } } } + catch (Exception ex) + { } } - catch (Exception ex) - { } } #endregion @@ -334,175 +431,181 @@ namespace BLL { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - ////动火作业 - var getFireWorks = from x in db.License_FireWork - where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now - select new Model.LicenseDataItem - { - LicenseId = x.FireWorkId, - MenuId = Const.ProjectFireWorkMenuId, - ProjectId = x.ProjectId, - CloseManId = x.ApplyManId, - CloseReasons = "到期自动关闭。", - States = Const.State_3, - }; - foreach (var itemFire in getFireWorks) + try { - APILicenseDataService.SaveLicenseData(itemFire); - } - - ////高处作业票 - var getHeightWorks = from x in db.License_HeightWork - where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now - select new Model.LicenseDataItem - { - LicenseId = x.HeightWorkId, - MenuId = Const.ProjectHeightWorkMenuId, - ProjectId = x.ProjectId, - CloseManId = x.ApplyManId, - CloseReasons = "到期自动关闭。", - States = Const.State_3, - }; - foreach (var itemHeightWork in getHeightWorks) - { - APILicenseDataService.SaveLicenseData(itemHeightWork); - } - - ////受限空间作业票 - var getLimitedSpaces = from x in db.License_LimitedSpace + ////动火作业 + var getFireWorks = from x in db.License_FireWork where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now select new Model.LicenseDataItem { - LicenseId = x.LimitedSpaceId, - MenuId = Const.ProjectLimitedSpaceMenuId, + LicenseId = x.FireWorkId, + MenuId = Const.ProjectFireWorkMenuId, ProjectId = x.ProjectId, CloseManId = x.ApplyManId, - CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, CloseReasons = "到期自动关闭。", - CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), States = Const.State_3, }; - foreach (var itemLimitedSpace in getLimitedSpaces) - { - APILicenseDataService.SaveLicenseData(itemLimitedSpace); - } + foreach (var itemFire in getFireWorks) + { + APILicenseDataService.SaveLicenseData(itemFire); + } - ////射线作业票 - var getRadialWorks = from x in db.License_RadialWork - where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now - select new Model.LicenseDataItem - { - LicenseId = x.RadialWorkId, - MenuId = Const.ProjectRadialWorkMenuId, - ProjectId = x.ProjectId, - CloseManId = x.ApplyManId, - CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, - CloseReasons = "到期自动关闭。", - CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), - States = Const.State_3, - }; - foreach (var itemRadialWork in getRadialWorks) - { - APILicenseDataService.SaveLicenseData(itemRadialWork); - } - - ////断路(占道)作业票 - var getOpenCircuits = from x in db.License_OpenCircuit - where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now - select new Model.LicenseDataItem - { - LicenseId = x.OpenCircuitId, - MenuId = Const.ProjectOpenCircuitMenuId, - ProjectId = x.ProjectId, - CloseManId = x.ApplyManId, - CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, - CloseReasons = "到期自动关闭。", - CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), - States = Const.State_3, - }; - foreach (var itemOpenCircuit in getOpenCircuits) - { - APILicenseDataService.SaveLicenseData(itemOpenCircuit); - } - - ////动土作业票 - var getBreakGrounds = from x in db.License_BreakGround - where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now - select new Model.LicenseDataItem - { - LicenseId = x.BreakGroundId, - MenuId = Const.ProjectBreakGroundMenuId, - ProjectId = x.ProjectId, - CloseManId = x.ApplyManId, - CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, - CloseReasons = "到期自动关闭。", - CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), - States = Const.State_3, - }; - foreach (var itemBreakGround in getBreakGrounds) - { - APILicenseDataService.SaveLicenseData(itemBreakGround); - } - - ////夜间施工作业票 - var getNightWorks = from x in db.License_NightWork - where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now - select new Model.LicenseDataItem - { - LicenseId = x.NightWorkId, - MenuId = Const.ProjectNightWorkMenuId, - ProjectId = x.ProjectId, - CloseManId = x.ApplyManId, - CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, - CloseReasons = "到期自动关闭。", - CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), - States = Const.State_3, - }; - foreach (var itemNightWork in getNightWorks) - { - APILicenseDataService.SaveLicenseData(itemNightWork); - } - - ////吊装作业票 - var getLiftingWorks = from x in db.License_LiftingWork - where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now - select new Model.LicenseDataItem - { - LicenseId = x.LiftingWorkId, - MenuId = Const.ProjectLiftingWorkMenuId, - ProjectId = x.ProjectId, - CloseManId = x.ApplyManId, - CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, - CloseReasons = "到期自动关闭。", - CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), - States = Const.State_3, - }; - foreach (var itemLiftingWork in getLiftingWorks) - { - APILicenseDataService.SaveLicenseData(itemLiftingWork); - } - - ////作业票【定稿】 - var getLicenseManagers = from x in db.License_LicenseManager - where x.WorkStates == Const.State_2 && x.EndDate <= DateTime.Now + ////高处作业票 + var getHeightWorks = from x in db.License_HeightWork + where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now select new Model.LicenseDataItem { - LicenseId = x.LicenseManagerId, - MenuId = Const.ProjectLicenseManagerMenuId, + LicenseId = x.HeightWorkId, + MenuId = Const.ProjectHeightWorkMenuId, ProjectId = x.ProjectId, - LicenseCode = x.LicenseManagerCode, - ApplyUnitId = x.UnitId, - ApplyManName = x.ApplicantMan, - WorkAreaIds = x.WorkAreaId, - ApplyManId = x.CompileMan, - ApplyDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.CompileDate), - ValidityEndTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.EndDate), - ValidityStartTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.StartDate), + CloseManId = x.ApplyManId, + CloseReasons = "到期自动关闭。", States = Const.State_3, }; - foreach (var itemLicenseManager in getLicenseManagers) + foreach (var itemHeightWork in getHeightWorks) + { + APILicenseDataService.SaveLicenseData(itemHeightWork); + } + + ////受限空间作业票 + var getLimitedSpaces = from x in db.License_LimitedSpace + where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now + select new Model.LicenseDataItem + { + LicenseId = x.LimitedSpaceId, + MenuId = Const.ProjectLimitedSpaceMenuId, + ProjectId = x.ProjectId, + CloseManId = x.ApplyManId, + CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, + CloseReasons = "到期自动关闭。", + CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), + States = Const.State_3, + }; + foreach (var itemLimitedSpace in getLimitedSpaces) + { + APILicenseDataService.SaveLicenseData(itemLimitedSpace); + } + + ////射线作业票 + var getRadialWorks = from x in db.License_RadialWork + where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now + select new Model.LicenseDataItem + { + LicenseId = x.RadialWorkId, + MenuId = Const.ProjectRadialWorkMenuId, + ProjectId = x.ProjectId, + CloseManId = x.ApplyManId, + CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, + CloseReasons = "到期自动关闭。", + CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), + States = Const.State_3, + }; + foreach (var itemRadialWork in getRadialWorks) + { + APILicenseDataService.SaveLicenseData(itemRadialWork); + } + + ////断路(占道)作业票 + var getOpenCircuits = from x in db.License_OpenCircuit + where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now + select new Model.LicenseDataItem + { + LicenseId = x.OpenCircuitId, + MenuId = Const.ProjectOpenCircuitMenuId, + ProjectId = x.ProjectId, + CloseManId = x.ApplyManId, + CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, + CloseReasons = "到期自动关闭。", + CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), + States = Const.State_3, + }; + foreach (var itemOpenCircuit in getOpenCircuits) + { + APILicenseDataService.SaveLicenseData(itemOpenCircuit); + } + + ////动土作业票 + var getBreakGrounds = from x in db.License_BreakGround + where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now + select new Model.LicenseDataItem + { + LicenseId = x.BreakGroundId, + MenuId = Const.ProjectBreakGroundMenuId, + ProjectId = x.ProjectId, + CloseManId = x.ApplyManId, + CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, + CloseReasons = "到期自动关闭。", + CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), + States = Const.State_3, + }; + foreach (var itemBreakGround in getBreakGrounds) + { + APILicenseDataService.SaveLicenseData(itemBreakGround); + } + + ////夜间施工作业票 + var getNightWorks = from x in db.License_NightWork + where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now + select new Model.LicenseDataItem + { + LicenseId = x.NightWorkId, + MenuId = Const.ProjectNightWorkMenuId, + ProjectId = x.ProjectId, + CloseManId = x.ApplyManId, + CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, + CloseReasons = "到期自动关闭。", + CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), + States = Const.State_3, + }; + foreach (var itemNightWork in getNightWorks) + { + APILicenseDataService.SaveLicenseData(itemNightWork); + } + + ////吊装作业票 + var getLiftingWorks = from x in db.License_LiftingWork + where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now + select new Model.LicenseDataItem + { + LicenseId = x.LiftingWorkId, + MenuId = Const.ProjectLiftingWorkMenuId, + ProjectId = x.ProjectId, + CloseManId = x.ApplyManId, + CloseManName = db.Sys_User.First(u => u.UserId == x.CloseManId).UserName, + CloseReasons = "到期自动关闭。", + CloseTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.ValidityEndTime), + States = Const.State_3, + }; + foreach (var itemLiftingWork in getLiftingWorks) + { + APILicenseDataService.SaveLicenseData(itemLiftingWork); + } + + ////作业票【定稿】 + var getLicenseManagers = from x in db.License_LicenseManager + where x.WorkStates == Const.State_2 && x.EndDate <= DateTime.Now + select new Model.LicenseDataItem + { + LicenseId = x.LicenseManagerId, + MenuId = Const.ProjectLicenseManagerMenuId, + ProjectId = x.ProjectId, + LicenseCode = x.LicenseManagerCode, + ApplyUnitId = x.UnitId, + ApplyManName = x.ApplicantMan, + WorkAreaIds = x.WorkAreaId, + ApplyManId = x.CompileMan, + ApplyDate = string.Format("{0:yyyy-MM-dd HH:mm}", x.CompileDate), + ValidityEndTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.EndDate), + ValidityStartTime = string.Format("{0:yyyy-MM-dd HH:mm}", x.StartDate), + States = Const.State_3, + }; + foreach (var itemLicenseManager in getLicenseManagers) + { + APILicenseDataService.SaveLicenseData(itemLicenseManager); + } + } + catch (Exception ex) { - APILicenseDataService.SaveLicenseData(itemLicenseManager); } } } diff --git a/SGGL/BLL/OpenService/MonitorService.cs b/SGGL/BLL/OpenService/MonitorService.cs index 630331f8..e9c3ec5f 100644 --- a/SGGL/BLL/OpenService/MonitorService.cs +++ b/SGGL/BLL/OpenService/MonitorService.cs @@ -9,7 +9,6 @@ namespace BLL { public class MonitorService { - #region 启动监视器 系统启动5分钟 /// /// 监视组件 @@ -2166,7 +2165,7 @@ namespace BLL #endregion /// - /// + /// 定时执行 /// public static void DoSynchData() { diff --git a/SGGL/BLL/PersonManage/Test/ServerTestPlanService.cs b/SGGL/BLL/PersonManage/Test/ServerTestPlanService.cs index 3810586f..eebb2f61 100644 --- a/SGGL/BLL/PersonManage/Test/ServerTestPlanService.cs +++ b/SGGL/BLL/PersonManage/Test/ServerTestPlanService.cs @@ -107,51 +107,60 @@ namespace BLL /// public static string EndTestPlan(string testPlanId) { - Model.SGGLDB db = Funs.DB; - string info = string.Empty; - var getTestPlans = from x in db.Test_TestPlan - where x.States == Const.State_2 && x.TestEndTime.Value.AddMinutes(x.Duration.Value) < DateTime.Now - && (testPlanId == null || x.TestPlanId == testPlanId) - select x; - foreach (var getTestPlan in getTestPlans) + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { - string itemInfo = string.Empty; - var getTestRecords = from x in db.Test_TestRecord - where x.TestPlanId == testPlanId && (!x.TotalScore.HasValue || !x.TestEndTime.HasValue) - select x; - //// 考试下所有考试都交卷 - if (getTestRecords.Count() > 0) + try { - //// 扫码结束时间 + 考试时长 小于当前时间 考试结束 所有人自动交卷 - if (getTestPlan.TestStartTime.Value.AddMinutes(getTestPlan.Duration.Value) < DateTime.Now) + string info = string.Empty; + var getTestPlans = from x in db.Test_TestPlan + where x.States == Const.State_2 && x.TestEndTime.Value.AddMinutes(x.Duration.Value) < DateTime.Now + && (testPlanId == null || x.TestPlanId == testPlanId) + select x; + foreach (var getTestPlan in getTestPlans) { - foreach (var itemRecord in getTestRecords) + string itemInfo = string.Empty; + var getTestRecords = from x in db.Test_TestRecord + where x.TestPlanId == testPlanId && (!x.TotalScore.HasValue || !x.TestEndTime.HasValue) + select x; + //// 考试下所有考试都交卷 + if (getTestRecords.Count() > 0) { - DateTime rdateTime = itemRecord.TestStartTime.HasValue ? itemRecord.TestStartTime.Value : getTestPlan.TestStartTime.Value; - itemRecord.TestEndTime = rdateTime.AddMinutes(itemRecord.Duration.Value); - itemRecord.TestScores = db.Test_TestRecordItem.Where(x => x.TestRecordId == itemRecord.TestRecordId).Sum(x => x.SubjectScore) ?? 0; + //// 扫码结束时间 + 考试时长 小于当前时间 考试结束 所有人自动交卷 + if (getTestPlan.TestStartTime.Value.AddMinutes(getTestPlan.Duration.Value) < DateTime.Now) + { + foreach (var itemRecord in getTestRecords) + { + DateTime rdateTime = itemRecord.TestStartTime.HasValue ? itemRecord.TestStartTime.Value : getTestPlan.TestStartTime.Value; + itemRecord.TestEndTime = rdateTime.AddMinutes(itemRecord.Duration.Value); + itemRecord.TestScores = db.Test_TestRecordItem.Where(x => x.TestRecordId == itemRecord.TestRecordId).Sum(x => x.SubjectScore) ?? 0; + db.SubmitChanges(); + } + } + else + { + itemInfo = getTestPlan.PlanCode + "竞赛中还有未交卷人员,且未达到考试结束时间!"; + info += itemInfo; + } + } + + if (string.IsNullOrEmpty(itemInfo)) + { + getTestPlan.States = Const.State_3; + getTestPlan.ActualTime = DateTime.Now; db.SubmitChanges(); } } - else + if (getTestPlans.Count() == 0 && !string.IsNullOrEmpty(testPlanId)) { - itemInfo = getTestPlan.PlanCode + "竞赛中还有未交卷人员,且未达到考试结束时间!"; - info += itemInfo; + info = "当前竞赛还不到结束时间!"; } + return info; } - - if (string.IsNullOrEmpty(itemInfo)) + catch (Exception ex) { - getTestPlan.States = Const.State_3; - getTestPlan.ActualTime = DateTime.Now; - db.SubmitChanges(); + return null; } } - if (getTestPlans.Count() == 0 && !string.IsNullOrEmpty(testPlanId)) - { - info = "当前竞赛还不到结束时间!"; - } - return info; } /// diff --git a/SGGL/FineUIPro.Web/Door/InOutList.aspx b/SGGL/FineUIPro.Web/Door/InOutList.aspx index 917759cc..461173f3 100644 --- a/SGGL/FineUIPro.Web/Door/InOutList.aspx +++ b/SGGL/FineUIPro.Web/Door/InOutList.aspx @@ -41,6 +41,10 @@ + + diff --git a/SGGL/FineUIPro.Web/Door/InOutList.aspx.cs b/SGGL/FineUIPro.Web/Door/InOutList.aspx.cs index 27277529..55005316 100644 --- a/SGGL/FineUIPro.Web/Door/InOutList.aspx.cs +++ b/SGGL/FineUIPro.Web/Door/InOutList.aspx.cs @@ -118,5 +118,11 @@ namespace FineUIPro.Web.Door } #endregion + + protected void btnRefresh_Click(object sender, EventArgs e) + { + BLL.GetDataService.CorrectingPersonInOutNumberD(this.CurrUser.LoginProjectId); + Alert.ShowInParent("操作完成", MessageBoxIcon.Success); + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/Door/InOutList.aspx.designer.cs b/SGGL/FineUIPro.Web/Door/InOutList.aspx.designer.cs index ffd0932e..552afd44 100644 --- a/SGGL/FineUIPro.Web/Door/InOutList.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/Door/InOutList.aspx.designer.cs @@ -102,6 +102,15 @@ namespace FineUIPro.Web.Door { /// protected global::FineUIPro.Button btnSearch; + /// + /// btnRefresh 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnRefresh; + /// /// btnOut 控件。 /// diff --git a/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonInfo.aspx b/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonInfo.aspx index b09316e1..992e498f 100644 --- a/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonInfo.aspx +++ b/SGGL/FineUIPro.Web/HSSE/SitePerson/PersonInfo.aspx @@ -47,26 +47,26 @@ - + - - - + - <%-- @@ -74,16 +74,16 @@ --%> - + - - + diff --git a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml index 9109ea27..87cdad13 100644 --- a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml @@ -1,8 +1,12 @@  - - - + + + + + + +