Merge branch 'master' of https://gitee.com/frane-yang/SGGL_CWCEC
This commit is contained in:
		
						commit
						5517df35e6
					
				| 
						 | 
				
			
			@ -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
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -155,27 +155,39 @@ namespace BLL
 | 
			
		|||
                        if (getInOutRecord.WorkIn1.HasValue || getInOutRecord.OffDuty1.HasValue)
 | 
			
		||||
                        {
 | 
			
		||||
                            m1 = 240;
 | 
			
		||||
                            if (getInOutRecord.WorkIn1.HasValue && getInOutRecord.OffDuty1.HasValue)
 | 
			
		||||
                            if (getInOutRecord.WorkIn1.HasValue && getInOutRecord.OffDuty1.HasValue && getInOutRecord.OffDuty1> getInOutRecord.WorkIn1)
 | 
			
		||||
                            {
 | 
			
		||||
                                m1 = Convert.ToInt32((getInOutRecord.OffDuty1 - getInOutRecord.WorkIn1).Value.TotalMinutes);
 | 
			
		||||
                                if (m1 < 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    m1 = 0;
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        int m2 = 0;
 | 
			
		||||
                        if (getInOutRecord.WorkIn2.HasValue || getInOutRecord.OffDuty2.HasValue)
 | 
			
		||||
                        {
 | 
			
		||||
                            m2 = 240;
 | 
			
		||||
                            if (getInOutRecord.WorkIn2.HasValue && getInOutRecord.OffDuty2.HasValue)
 | 
			
		||||
                            if (getInOutRecord.WorkIn2.HasValue && getInOutRecord.OffDuty2.HasValue && getInOutRecord.OffDuty2 > getInOutRecord.WorkIn2)
 | 
			
		||||
                            {
 | 
			
		||||
                                m2 = Convert.ToInt32((getInOutRecord.OffDuty2 - getInOutRecord.WorkIn2).Value.TotalMinutes);
 | 
			
		||||
                                if (m2 < 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    m2 =0;
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        int m3 = 0;
 | 
			
		||||
                        if (getInOutRecord.WorkIn3.HasValue || getInOutRecord.OffDuty3.HasValue)
 | 
			
		||||
                        {
 | 
			
		||||
                            m3 = 240;
 | 
			
		||||
                            if (getInOutRecord.WorkIn3.HasValue && getInOutRecord.OffDuty3.HasValue)
 | 
			
		||||
                            if (getInOutRecord.WorkIn3.HasValue && getInOutRecord.OffDuty3.HasValue && getInOutRecord.OffDuty3 > getInOutRecord.WorkIn3) 
 | 
			
		||||
                            {
 | 
			
		||||
                                m3 = Convert.ToInt32((getInOutRecord.OffDuty3 - getInOutRecord.WorkIn3).Value.TotalMinutes);
 | 
			
		||||
                                if (m3 < 0)
 | 
			
		||||
                                {
 | 
			
		||||
                                    m3 =0;
 | 
			
		||||
                                }
 | 
			
		||||
                            }
 | 
			
		||||
                        }
 | 
			
		||||
                        #endregion
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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
 | 
			
		|||
        /// </summary>
 | 
			
		||||
        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
 | 
			
		|||
        /// </summary>
 | 
			
		||||
        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<string> personIdList = new List<string>();
 | 
			
		||||
                            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<string> personIdList = new List<string>();
 | 
			
		||||
                                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 自动校正出入场人数及工时
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        ///  自动校正出入场人数及工时
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        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
 | 
			
		|||
        /// </summary>
 | 
			
		||||
        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);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -9,7 +9,6 @@ namespace BLL
 | 
			
		|||
{
 | 
			
		||||
    public class MonitorService
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
        #region 启动监视器 系统启动5分钟
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 监视组件
 | 
			
		||||
| 
						 | 
				
			
			@ -2166,7 +2165,7 @@ namespace BLL
 | 
			
		|||
        #endregion
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// 
 | 
			
		||||
        ///  定时执行
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        public static void DoSynchData()
 | 
			
		||||
        {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -107,51 +107,60 @@ namespace BLL
 | 
			
		|||
        /// <returns></returns>
 | 
			
		||||
        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;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /// <summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -41,6 +41,10 @@
 | 
			
		|||
                                <f:TextBox ID="txtName" runat="server" Label="姓名" LabelWidth="60px" Width="200px"></f:TextBox>
 | 
			
		||||
                                <f:ToolbarFill runat="server"></f:ToolbarFill>
 | 
			
		||||
                                <f:Button ID="btnSearch" runat="server" Icon="SystemSearch" ToolTip="查询" OnClick="btnSearch_Click">
 | 
			
		||||
                                </f:Button>
 | 
			
		||||
                                  <f:Button ID="btnRefresh" runat="server" Icon="ArrowRefresh" ToolTip="校正人工时" 
 | 
			
		||||
                                    AjaxLoadingType="Mask" ShowAjaxLoadingMaskText="true" AjaxLoadingMaskText="正在校正当前项目人工时,请稍候"
 | 
			
		||||
                                    EnableAjax="true" DisableControlBeforePostBack="false"   OnClick="btnRefresh_Click">
 | 
			
		||||
                                </f:Button>
 | 
			
		||||
                                <f:Button ID="btnOut" OnClick="btnOut_Click" runat="server" ToolTip="导出" Icon="FolderUp"
 | 
			
		||||
                                    EnableAjax="false" DisableControlBeforePostBack="false">
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -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);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -102,6 +102,15 @@ namespace FineUIPro.Web.Door {
 | 
			
		|||
        /// </remarks>
 | 
			
		||||
        protected global::FineUIPro.Button btnSearch;
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// btnRefresh 控件。
 | 
			
		||||
        /// </summary>
 | 
			
		||||
        /// <remarks>
 | 
			
		||||
        /// 自动生成的字段。
 | 
			
		||||
        /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
 | 
			
		||||
        /// </remarks>
 | 
			
		||||
        protected global::FineUIPro.Button btnRefresh;
 | 
			
		||||
        
 | 
			
		||||
        /// <summary>
 | 
			
		||||
        /// btnOut 控件。
 | 
			
		||||
        /// </summary>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -47,26 +47,26 @@
 | 
			
		|||
                        </f:Toolbar>
 | 
			
		||||
                    </Toolbars>
 | 
			
		||||
                    <Columns>
 | 
			
		||||
                        <f:TemplateField ColumnID="tfNumber" HeaderText="序号" Width="90px" HeaderTextAlign="Center" TextAlign="Center">
 | 
			
		||||
                        <f:TemplateField ColumnID="tfNumber" HeaderText="序号" Width="55px" HeaderTextAlign="Center" TextAlign="Center">
 | 
			
		||||
                            <ItemTemplate>
 | 
			
		||||
                                <asp:Label ID="labNumber" runat="server" Text=' <%# Grid1.PageIndex * Grid1.PageSize + Container.DataItemIndex + 1%>'></asp:Label>
 | 
			
		||||
                            </ItemTemplate>
 | 
			
		||||
                        </f:TemplateField>
 | 
			
		||||
                        <f:RenderField Width="250px" ColumnID="UnitName" DataField="UnitName" SortField="UnitName"
 | 
			
		||||
                        <f:RenderField Width="230px" ColumnID="UnitName" DataField="UnitName" SortField="UnitName"
 | 
			
		||||
                            FieldType="String" HeaderText="单位名称" HeaderTextAlign="Center"
 | 
			
		||||
                            TextAlign="Left">
 | 
			
		||||
                        </f:RenderField>
 | 
			
		||||
                        <f:RenderField Width="100px" ColumnID="PersonName" DataField="PersonName" SortField="PersonName"
 | 
			
		||||
                        <f:RenderField Width="90px" ColumnID="PersonName" DataField="PersonName" SortField="PersonName"
 | 
			
		||||
                            FieldType="String" HeaderText="人员姓名" HeaderTextAlign="Center"
 | 
			
		||||
                            TextAlign="Left">
 | 
			
		||||
                        </f:RenderField>
 | 
			
		||||
                        <f:TemplateField ColumnID="tfIntoOut" Width="80px" HeaderText="进出" HeaderTextAlign="Center" TextAlign="Center">
 | 
			
		||||
                        <f:TemplateField ColumnID="tfIntoOut" Width="70px" HeaderText="进出" HeaderTextAlign="Center" TextAlign="Center">
 | 
			
		||||
                            <ItemTemplate>
 | 
			
		||||
                                <asp:Label ID="lblIntoOut" runat="server" Text='<%# ConvertIntoOut(Eval("IntoOut")) %>'
 | 
			
		||||
                                    ToolTip='<%#ConvertIntoOut(Eval("IntoOut")) %>'></asp:Label>
 | 
			
		||||
                            </ItemTemplate>
 | 
			
		||||
                        </f:TemplateField>
 | 
			
		||||
                        <f:RenderField Width="160px" ColumnID="IntoOutTime" DataField="IntoOutTime" SortField="IntoOutTime"
 | 
			
		||||
                        <f:RenderField Width="150px" ColumnID="IntoOutTime" DataField="IntoOutTime" SortField="IntoOutTime"
 | 
			
		||||
                            HeaderText="出入现场时间" HeaderTextAlign="Center" TextAlign="Center">
 | 
			
		||||
                        </f:RenderField>
 | 
			
		||||
                        <%--            <f:TemplateField ColumnID="tfAddress" Width="130px" HeaderText="进出地点" HeaderTextAlign="Center" TextAlign="Left">
 | 
			
		||||
| 
						 | 
				
			
			@ -74,16 +74,16 @@
 | 
			
		|||
                            <asp:Label ID="lblAddress" runat="server" Text='<%# Bind("Address") %>' ToolTip='<%#Bind("Address") %>'></asp:Label>
 | 
			
		||||
                        </ItemTemplate>
 | 
			
		||||
                    </f:TemplateField>--%>
 | 
			
		||||
                        <f:TemplateField ColumnID="tfWorkAreaName" Width="120px" HeaderText="单位工程" HeaderTextAlign="Center" TextAlign="Left">
 | 
			
		||||
                        <f:TemplateField ColumnID="tfWorkAreaName" Width="170px" HeaderText="单位工程" HeaderTextAlign="Center" TextAlign="Left">
 | 
			
		||||
                            <ItemTemplate>
 | 
			
		||||
                                <asp:Label ID="lblWorkAreaName" runat="server" Text='<%# Bind("WorkAreaName") %>' ToolTip='<%#Bind("WorkAreaName") %>'></asp:Label>
 | 
			
		||||
                            </ItemTemplate>
 | 
			
		||||
                        </f:TemplateField>
 | 
			
		||||
                        <f:RenderField Width="100px" ColumnID="CardNo" DataField="CardNo" SortField="CardNo"
 | 
			
		||||
                        <f:RenderField Width="90px" ColumnID="CardNo" DataField="CardNo" SortField="CardNo"
 | 
			
		||||
                            FieldType="String" HeaderText="卡号" HeaderTextAlign="Center"
 | 
			
		||||
                            TextAlign="Center">
 | 
			
		||||
                        </f:RenderField>
 | 
			
		||||
                        <f:TemplateField ColumnID="tfIdentityCard" Width="180px" HeaderText="身份证号" HeaderTextAlign="Center" TextAlign="Right">
 | 
			
		||||
                        <f:TemplateField ColumnID="tfIdentityCard" Width="170px" HeaderText="身份证号" HeaderTextAlign="Center" TextAlign="Right">
 | 
			
		||||
                            <ItemTemplate>
 | 
			
		||||
                                <asp:Label ID="lblIdentityCard" runat="server" Text='<%# Bind("IdentityCard") %>' ToolTip='<%#Bind("IdentityCard") %>'></asp:Label>
 | 
			
		||||
                            </ItemTemplate>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,8 +1,12 @@
 | 
			
		|||
<?xml version="1.0" encoding="utf-8"?>
 | 
			
		||||
<Tree>
 | 
			
		||||
  <TreeNode id="92CBD072-20F8-45B1-9D17-6F7494DD2020" Text="数据导入" NavigateUrl="">
 | 
			
		||||
    <TreeNode id="F3AA42B3-5776-4992-A625-1216C579FEDE" Text="项目进度情况" NavigateUrl="JDGL/Check/ProgressCompletion.aspx">
 | 
			
		||||
    </TreeNode>
 | 
			
		||||
  <TreeNode id="858E83E9-ADE5-452E-BD65-82D8DFF872C0" Text="分部、工作项及费用清单裁剪" NavigateUrl="JDGL/WBS/WBSSetAudit.aspx">
 | 
			
		||||
  </TreeNode>
 | 
			
		||||
<TreeNode id="E3905BF1-289B-4500-BD34-36F97D649AFC" Text="工作量录入" NavigateUrl="JDGL/WBS/WorkloadInput.aspx"></TreeNode>
 | 
			
		||||
<TreeNode id="2A3F8526-95C7-4D30-B2DD-DD26696BE150" Text="工作量统计" NavigateUrl="JDGL/WBS/WorkloadStatistics.aspx"></TreeNode>
 | 
			
		||||
<TreeNode id="59AAE0F0-2DB6-4065-B304-7E2C56EC3E5D" Text="赢得值曲线" NavigateUrl="JDGL/CostAnalysis/EarnedValueCurve.aspx"></TreeNode>
 | 
			
		||||
<TreeNode id="9CAF311E-C234-4DA4-B235-D4E478FBD80E" Text="里程碑" NavigateUrl="JDGL/WBS/MilePost.aspx"></TreeNode>
 | 
			
		||||
<TreeNode id="92CBD072-20F8-45B1-9D17-6F7494DD2020" Text="数据导入" NavigateUrl=""><TreeNode id="F3AA42B3-5776-4992-A625-1216C579FEDE" Text="项目进度情况" NavigateUrl="JDGL/Check/ProgressCompletion.aspx"></TreeNode>
 | 
			
		||||
<TreeNode id="2AE9D982-A499-497F-8F54-ADDA5856887E" Text="工程量完成情况" NavigateUrl="JDGL/Check/QuantityCompletion.aspx"></TreeNode>
 | 
			
		||||
<TreeNode id="82E513B9-1A6F-495A-A633-EBC89CE5273A" Text="低温储罐完成情况" NavigateUrl="JDGL/Check/LowTankCompletion.aspx"></TreeNode>
 | 
			
		||||
<TreeNode id="4ACA0647-4D44-462E-8277-1EF9F100566A" Text="钢结构完成情况" NavigateUrl="JDGL/Check/SteelStructureCompletion.aspx"></TreeNode>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -290,6 +290,9 @@ namespace FineUIPro.Web
 | 
			
		|||
        {
 | 
			
		||||
            if (!IsPostBack)
 | 
			
		||||
            {
 | 
			
		||||
                Response.Expires = 0;               //设置过期时间
 | 
			
		||||
                Response.Cache.SetNoStore();			//在服务器端不缓存该页面
 | 
			
		||||
                Response.AppendHeader("Pragma", "no-cache");	//在客户端不缓存
 | 
			
		||||
                ProjectService.InitAllProjectShortNameDropDownList(this.drpProject, this.CurrUser.UserId, false);
 | 
			
		||||
                if (!string.IsNullOrEmpty(Request.Params["projectId"]))
 | 
			
		||||
                {
 | 
			
		||||
| 
						 | 
				
			
			@ -580,8 +583,8 @@ namespace FineUIPro.Web
 | 
			
		|||
 | 
			
		||||
        protected void drpProject_SelectedIndexChanged(object sender, EventArgs e)
 | 
			
		||||
        {
 | 
			
		||||
            this.CurrUser.LoginProjectId = this.drpProject.SelectedValue;
 | 
			
		||||
            this.Tab1.RefreshIFrame();
 | 
			
		||||
            //this.CurrUser.LoginProjectId = this.drpProject.SelectedValue;            
 | 
			
		||||
            PageContext.RegisterStartupScript("parent.removeActiveTab();");
 | 
			
		||||
            MenuSwitchMethod(this.CurrUser.LastMenuType);
 | 
			
		||||
            GetWeather();
 | 
			
		||||
| 
						 | 
				
			
			@ -593,7 +596,7 @@ namespace FineUIPro.Web
 | 
			
		|||
        /// <param name="type"></param>
 | 
			
		||||
        protected void MenuSwitchMethod(string type)
 | 
			
		||||
        {
 | 
			
		||||
            this.CurrUser.LoginProjectId = this.drpProject.SelectedValue;
 | 
			
		||||
           // this.CurrUser.LoginProjectId = this.drpProject.SelectedValue;
 | 
			
		||||
            this.XmlDataSource1.DataFile = "common/Menu_Personal.xml";
 | 
			
		||||
            this.leftPanel.Hidden = true;
 | 
			
		||||
            var projectUser = BLL.ProjectUserService.GetProjectUserByUserIdProjectId(this.CurrUser.LoginProjectId, this.CurrUser.UserId);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -12,7 +12,7 @@
 | 
			
		|||
    <SiteUrlToLaunchAfterPublish />
 | 
			
		||||
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
 | 
			
		||||
    <ExcludeApp_Data>False</ExcludeApp_Data>
 | 
			
		||||
    <publishUrl>E:\Package\WuHuan\SGGLAPI</publishUrl>
 | 
			
		||||
    <publishUrl>E:\Package\中化五环\SGGLAPI</publishUrl>
 | 
			
		||||
    <DeleteExistingFiles>True</DeleteExistingFiles>
 | 
			
		||||
    <PrecompileBeforePublish>True</PrecompileBeforePublish>
 | 
			
		||||
    <EnableUpdateable>True</EnableUpdateable>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue