| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | using Newtonsoft.Json.Linq; | 
					
						
							|  |  |  |  | using System; | 
					
						
							|  |  |  |  | using System.Collections.Generic; | 
					
						
							|  |  |  |  | using System.Configuration; | 
					
						
							|  |  |  |  | using System.Linq; | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  | namespace BLL | 
					
						
							|  |  |  |  | { | 
					
						
							|  |  |  |  |     public static class GetDataService | 
					
						
							|  |  |  |  |     {       | 
					
						
							|  |  |  |  |         #region 培训计划提交后 按照培训任务 生成培训人员的培训教材明细 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 生成培训人员的培训教材明细 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         /// <param name="taskId"></param> | 
					
						
							|  |  |  |  |         public static void CreateTrainingTaskItemByTaskId(string taskId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 try | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     /////查找未生成教材明细的 培训任务 | 
					
						
							|  |  |  |  |                     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) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                         foreach (var item in getTasks) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             var getPerson = db.SitePerson_Person.FirstOrDefault(e => e.PersonId == item.UserId); | 
					
						
							|  |  |  |  |                             if (getPerson != null) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                 ////获取计划下 人员培训教材明细 | 
					
						
							|  |  |  |  |                                 var getDataList = db.Sp_GetTraining_TaskItemTraining(item.PlanId, getPerson.WorkPostId); | 
					
						
							|  |  |  |  |                                 foreach (var dataItem in getDataList) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                     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, | 
					
						
							|  |  |  |  |                                     }; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                     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(); | 
					
						
							|  |  |  |  |                                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 } | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             ////更新培训任务 | 
					
						
							|  |  |  |  |                             item.States = Const.State_1; | 
					
						
							|  |  |  |  |                             db.SubmitChanges(); | 
					
						
							|  |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 catch (Exception ex) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 自动结束考试 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  自动结束考试 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void UpdateTestPlanStates() | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 try | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     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(); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     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) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 自动结束考试-知识竞赛 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  自动结束考试 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void UpdateServerTestPlanStates() | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 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) | 
					
						
							|  |  |  |  |                 { } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 自动校正出入场人数及工时 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  自动校正出入场人数及工时 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void CorrectingPersonInOutNumber(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 try | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     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)) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         getProjects = getProjects.Where(x => x.ProjectId == projectId).ToList(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                     foreach (var projectItem in getProjects) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                         var getAllPersonInOutList = from x in db.SitePerson_PersonInOut | 
					
						
							|  |  |  |  |                                                     where x.ProjectId == projectItem.ProjectId && x.ChangeTime <= DateTime.Now | 
					
						
							|  |  |  |  |                                                     select x; | 
					
						
							|  |  |  |  |                         if (getAllPersonInOutList.Count() > 0) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             #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) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                 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(); | 
					
						
							|  |  |  |  |                                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             #endregion | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             #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) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                 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; | 
					
						
							|  |  |  |  |                                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             } | 
					
						
							|  |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             if (getPersonOutTimes.Count() > 0) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                 List<string> personIdList = new List<string>(); | 
					
						
							|  |  |  |  |                                 foreach (var item in getPersonOutTimes) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                     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); | 
					
						
							|  |  |  |  |                                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                 if (personIdList.Count() > 0) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                     SafeHours += (personIdList.Distinct().Count() * 8 * 60); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 } | 
					
						
							|  |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             #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) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                 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(); | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |                 catch (Exception ex) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |         #region 自动校正出入场人数及工时 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  自动校正出入场人数及工时 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void CorrectingPersonInOutNumberD(string projectId) | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 try | 
					
						
							|  |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2025-05-04 13:12:51 +08:00
										 |  |  |  |                     DateTime dateS = DateTime.Now.AddMonths(-12); | 
					
						
							|  |  |  |  |                     dateS = Funs.GetNewDateTimeOrNow(DateTime.Now.AddMonths(-12).Year + "-" + DateTime.Now.AddMonths(-12).Month + "-01"); | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     var getNums = from x in db.SitePerson_PersonInOutNumber | 
					
						
							| 
									
										
										
										
											2022-07-28 09:22:25 +08:00
										 |  |  |  |                                   where x.ProjectId == projectId  && x.InOutDate >= dateS | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                   orderby x.InOutDate | 
					
						
							| 
									
										
										
										
											2022-08-04 16:57:44 +08:00
										 |  |  |  |                                   select x;                     | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     var getInouts = from x in db.SitePerson_PersonInOut | 
					
						
							| 
									
										
										
										
											2022-07-28 09:22:25 +08:00
										 |  |  |  |                                     where x.ProjectId == projectId && x.ChangeTime.Value >= dateS | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                     select x; | 
					
						
							| 
									
										
										
										
											2025-05-04 13:12:51 +08:00
										 |  |  |  |                     //int SafeHours = 0; | 
					
						
							|  |  |  |  |                     int SafeHours = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == projectId && x.InOutDate < dateS).Max(x => x.WorkHours) ?? 0; | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     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; | 
					
						
							| 
									
										
										
										
											2022-08-04 16:57:44 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                         if (getAllPersonInOutList.Count() > 0) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             /// 出场记录 | 
					
						
							|  |  |  |  |                             var getPersonOutTimes = getAllPersonInOutList.Where(x => x.IsIn == false); | 
					
						
							|  |  |  |  |                             var getInLists = getAllPersonInOutList.Where(x => x.IsIn == true); | 
					
						
							|  |  |  |  |                             //// 查找当前项目 最新的人工时数量记录 | 
					
						
							|  |  |  |  |                             if (SafeHours == 0) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                 var getMaxInOutDate = getNums.Where(x => x.InOutDate < date).OrderByDescending(x => x.InOutDate).FirstOrDefault(); | 
					
						
							|  |  |  |  |                                 if (getMaxInOutDate != null) | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     SafeHours = getMaxInOutDate.WorkHours ?? 0; | 
					
						
							|  |  |  |  |                                 } | 
					
						
							| 
									
										
										
										
											2022-08-04 16:57:44 +08:00
										 |  |  |  |                                 else | 
					
						
							|  |  |  |  |                                 { | 
					
						
							|  |  |  |  |                                     SafeHours = db.SitePerson_PersonInOutNumber.Where(x => x.ProjectId == projectId && x.InOutDate < dateS).Max(x => x.WorkHours) ?? 0; | 
					
						
							|  |  |  |  |                                 } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             int getOutPersonCount = getPersonOutTimes.Select(x => x.PersonId).Distinct().Count(); | 
					
						
							|  |  |  |  |                             SafeHours += getOutPersonCount * 8; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  | 
 | 
					
						
							|  |  |  |  |                         //SafeHours = Convert.ToInt32(SafeHours * 1.0 / 60); | 
					
						
							|  |  |  |  |                         if (itemNum != null) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             itemNum.InOutDate = date; | 
					
						
							|  |  |  |  |                             itemNum.WorkHours = SafeHours; | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             db.SubmitChanges(); | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 catch (Exception ex) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 自动批量生成人员二维码 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  自动批量生成人员二维码 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void CreateQRCode() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 try | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     var getPersons = from x in db.SitePerson_Person | 
					
						
							|  |  |  |  |                                      where x.IdentityCard != null && x.QRCodeAttachUrl == null | 
					
						
							|  |  |  |  |                                      select x; | 
					
						
							|  |  |  |  |                     if (getPersons.Count() > 0) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                         foreach (var item in getPersons) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             string url = CreateQRCodeService.CreateCode_Simple("person$" + item.IdentityCard); | 
					
						
							|  |  |  |  |                             if (!string.IsNullOrEmpty(url)) | 
					
						
							|  |  |  |  |                             { | 
					
						
							|  |  |  |  |                                 item.QRCodeAttachUrl = url; | 
					
						
							|  |  |  |  |                                 db.SubmitChanges(); | 
					
						
							|  |  |  |  |                             } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 catch (Exception ex) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 自动 出场人员 自动离场 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         ///  自动校正出入场人数及工时 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void SitePersonjAutomaticOut() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							|  |  |  |  |                 var getPersons = from x in db.SitePerson_Person | 
					
						
							|  |  |  |  |                                  where x.OutTime < DateTime.Now && x.IsUsed == true | 
					
						
							|  |  |  |  |                                  select x; | 
					
						
							|  |  |  |  |                 if (getPersons.Count() > 0) | 
					
						
							|  |  |  |  |                 { | 
					
						
							|  |  |  |  |                     foreach (var item in getPersons) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         item.IsUsed = false; | 
					
						
							|  |  |  |  |                         item.ExchangeTime2 = null; | 
					
						
							|  |  |  |  |                         db.SubmitChanges(); | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 定时推送待办 订阅服务内容 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 定时推送待办 订阅服务内容 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void SendSubscribeMessage() | 
					
						
							|  |  |  |  |         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 try | 
					
						
							| 
									
										
										
										
											2024-07-30 08:07:17 +08:00
										 |  |  |  |                 {  | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     string miniprogram_state = ConfigurationManager.AppSettings["miniprogram_state"]; | 
					
						
							|  |  |  |  |                     if (!string.IsNullOrEmpty(miniprogram_state) && miniprogram_state == "formal") | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                     { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                         //// 获取所有待办事项 | 
					
						
							|  |  |  |  |                         var getToItems = from x in db.View_APP_GetToDoItems select x; | 
					
						
							|  |  |  |  |                         if (getToItems.Count() > 0) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                         { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                             //// 获取施工中的项目 | 
					
						
							|  |  |  |  |                             var getProjects = ProjectService.GetProjectWorkList(); | 
					
						
							|  |  |  |  |                             foreach (var item in getProjects) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                 ////获取当前项目下的待办 | 
					
						
							|  |  |  |  |                                 var getPItems = getToItems.Where(x => x.ProjectId == item.ProjectId); | 
					
						
							|  |  |  |  |                                 if (getPItems.Count() > 0) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                     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)); | 
					
						
							|  |  |  |  |                                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                 } | 
					
						
							|  |  |  |  |                             } | 
					
						
							|  |  |  |  |                         } | 
					
						
							|  |  |  |  |                     } | 
					
						
							|  |  |  |  |                 } | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 catch (Exception ex) | 
					
						
							|  |  |  |  |                 { } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  | 
 | 
					
						
							|  |  |  |  |         #region 关闭超期未关闭作业许可 | 
					
						
							|  |  |  |  |         /// <summary> | 
					
						
							|  |  |  |  |         /// 关闭超期未关闭作业许可 | 
					
						
							|  |  |  |  |         /// </summary> | 
					
						
							|  |  |  |  |         public static void CloseLicenseData() | 
					
						
							|  |  |  |  |         { | 
					
						
							|  |  |  |  |             using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) | 
					
						
							|  |  |  |  |             { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                 try | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     ////动火作业 | 
					
						
							|  |  |  |  |                     var getFireWorks = from x in db.License_FireWork | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                        where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now | 
					
						
							|  |  |  |  |                                        select new Model.LicenseDataItem | 
					
						
							|  |  |  |  |                                        { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                            LicenseId = x.FireWorkId, | 
					
						
							|  |  |  |  |                                            MenuId = Const.ProjectFireWorkMenuId, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                            ProjectId = x.ProjectId, | 
					
						
							|  |  |  |  |                                            CloseManId = x.ApplyManId, | 
					
						
							|  |  |  |  |                                            CloseReasons = "到期自动关闭。", | 
					
						
							|  |  |  |  |                                            States = Const.State_3, | 
					
						
							|  |  |  |  |                                        }; | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     foreach (var itemFire in getFireWorks) | 
					
						
							|  |  |  |  |                     { | 
					
						
							|  |  |  |  |                         APILicenseDataService.SaveLicenseData(itemFire); | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     ////高处作业票 | 
					
						
							|  |  |  |  |                     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); | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     ////受限空间作业票 | 
					
						
							|  |  |  |  |                     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); | 
					
						
							|  |  |  |  |                     } | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     ////射线作业票 | 
					
						
							|  |  |  |  |                     var getRadialWorks = from x in db.License_RadialWork | 
					
						
							|  |  |  |  |                                          where x.States == Const.State_2 && x.ValidityEndTime <= DateTime.Now | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                          select new Model.LicenseDataItem | 
					
						
							|  |  |  |  |                                          { | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                              LicenseId = x.RadialWorkId, | 
					
						
							|  |  |  |  |                                              MenuId = Const.ProjectRadialWorkMenuId, | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                              ProjectId = x.ProjectId, | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                                              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), | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                                              States = Const.State_3, | 
					
						
							|  |  |  |  |                                          }; | 
					
						
							| 
									
										
										
										
											2022-04-01 23:00:24 +08:00
										 |  |  |  |                     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) | 
					
						
							| 
									
										
										
										
											2021-04-30 10:28:37 +08:00
										 |  |  |  |                 { | 
					
						
							|  |  |  |  |                 } | 
					
						
							|  |  |  |  |             } | 
					
						
							|  |  |  |  |         } | 
					
						
							|  |  |  |  |         #endregion | 
					
						
							|  |  |  |  |     } | 
					
						
							|  |  |  |  | } |