510 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			510 lines
		
	
	
		
			26 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using System;
							 | 
						|||
| 
								 | 
							
								using System.Collections.Generic;
							 | 
						|||
| 
								 | 
							
								using System.Linq;
							 | 
						|||
| 
								 | 
							
								using System.Text;
							 | 
						|||
| 
								 | 
							
								using System.Threading.Tasks;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								namespace BLL
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								   public static class SafetyDataPlanService
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        #region 根据项目id获取企业安全管理资料计划列表
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据项目id获取企业安全管理资料计划列表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="appraise"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static List<Model.SafetyData_SafetyDataPlan> GetSafetyDataPlanList(string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var SafetyDataPlanList = from x in Funs.DB.SafetyData_SafetyDataPlan
							 | 
						|||
| 
								 | 
							
								                                     join y in Funs.DB.SafetyData_SafetyData on x.SafetyDataId equals y.SafetyDataId
							 | 
						|||
| 
								 | 
							
								                                     where x.ProjectId == projectId
							 | 
						|||
| 
								 | 
							
								                                     orderby y.Code
							 | 
						|||
| 
								 | 
							
								                                     select x;
							 | 
						|||
| 
								 | 
							
								            return SafetyDataPlanList.ToList();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 根据主键id获取企业安全管理资料
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据主键id获取企业安全管理资料
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="appraise"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public static Model.SafetyData_SafetyDataPlan GetSafetyDataPlanBySafetyDataPlanId(string safetyDataPlanId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            return Funs.DB.SafetyData_SafetyDataPlan.FirstOrDefault(x => x.SafetyDataPlanId == safetyDataPlanId);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 增、删、改企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 添加企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlan"></param>
							 | 
						|||
| 
								 | 
							
								        public static void AddSafetyDataPlan(Model.SafetyData_SafetyDataPlan safetyDataPlan)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SafetyData_SafetyDataPlan newSafetyDataPlan = new Model.SafetyData_SafetyDataPlan
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                SafetyDataPlanId = safetyDataPlan.SafetyDataPlanId,
							 | 
						|||
| 
								 | 
							
								                ProjectId = safetyDataPlan.ProjectId,
							 | 
						|||
| 
								 | 
							
								                SafetyDataId = safetyDataPlan.SafetyDataId,
							 | 
						|||
| 
								 | 
							
								                CheckDate = safetyDataPlan.CheckDate,
							 | 
						|||
| 
								 | 
							
								                RealStartDate = safetyDataPlan.RealStartDate,
							 | 
						|||
| 
								 | 
							
								                RealEndDate = safetyDataPlan.RealEndDate,
							 | 
						|||
| 
								 | 
							
								                Score = safetyDataPlan.Score,
							 | 
						|||
| 
								 | 
							
								                ShouldScore = safetyDataPlan.ShouldScore,
							 | 
						|||
| 
								 | 
							
								                Remark = safetyDataPlan.Remark,
							 | 
						|||
| 
								 | 
							
								                ReminderDate = safetyDataPlan.ReminderDate,
							 | 
						|||
| 
								 | 
							
								                IsManual = safetyDataPlan.IsManual,
							 | 
						|||
| 
								 | 
							
								            };
							 | 
						|||
| 
								 | 
							
								            Funs.DB.SafetyData_SafetyDataPlan.InsertOnSubmit(newSafetyDataPlan);
							 | 
						|||
| 
								 | 
							
								            Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            ///当前计划项 没有提交时间时
							 | 
						|||
| 
								 | 
							
								            if (!newSafetyDataPlan.SubmitDate.HasValue)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                GetSafetyDataPlanRealScore(newSafetyDataPlan);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 修改企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlan"></param>
							 | 
						|||
| 
								 | 
							
								        public static void UpdateSafetyDataPlan(Model.SafetyData_SafetyDataPlan safetyDataPlan)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SafetyData_SafetyDataPlan newSafetyDataPlan = Funs.DB.SafetyData_SafetyDataPlan.FirstOrDefault(e => e.SafetyDataPlanId == safetyDataPlan.SafetyDataPlanId);
							 | 
						|||
| 
								 | 
							
								            if (newSafetyDataPlan != null)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                newSafetyDataPlan.CheckDate = safetyDataPlan.CheckDate;
							 | 
						|||
| 
								 | 
							
								                newSafetyDataPlan.RealStartDate = safetyDataPlan.RealStartDate;
							 | 
						|||
| 
								 | 
							
								                newSafetyDataPlan.RealEndDate = safetyDataPlan.RealEndDate;
							 | 
						|||
| 
								 | 
							
								                newSafetyDataPlan.Score = safetyDataPlan.Score;
							 | 
						|||
| 
								 | 
							
								                newSafetyDataPlan.Remark = safetyDataPlan.Remark;
							 | 
						|||
| 
								 | 
							
								                newSafetyDataPlan.ReminderDate = safetyDataPlan.ReminderDate;
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                ///当前计划项 没有提交时间时
							 | 
						|||
| 
								 | 
							
								                if (!newSafetyDataPlan.SubmitDate.HasValue)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    GetSafetyDataPlanRealScore(newSafetyDataPlan);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据主键删除企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlanId"></param>
							 | 
						|||
| 
								 | 
							
								        public static void DeleteSafetyDataPlanByID(string safetyDataPlanId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            Model.SafetyData_SafetyDataPlan SafetyDataPlan = Funs.DB.SafetyData_SafetyDataPlan.FirstOrDefault(e => e.SafetyDataPlanId == safetyDataPlanId);
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SafetyData_SafetyDataPlan.DeleteOnSubmit(SafetyDataPlan);
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据主键删除企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlanId"></param>
							 | 
						|||
| 
								 | 
							
								        public static void DeleteSafetyDataPlanByProjectId(string projectId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var safetyDataPlan = from x in Funs.DB.SafetyData_SafetyDataPlan
							 | 
						|||
| 
								 | 
							
								                                 where x.ProjectId == projectId
							 | 
						|||
| 
								 | 
							
								                                 && (x.IsManual == false || x.IsManual == null)
							 | 
						|||
| 
								 | 
							
								                                 select x;
							 | 
						|||
| 
								 | 
							
								            if (safetyDataPlan.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SafetyData_SafetyDataPlan.DeleteAllOnSubmit(safetyDataPlan);
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据安全资料项主键删除企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlanId"></param>
							 | 
						|||
| 
								 | 
							
								        public static void DeleteSafetyDataPlanBySafetyDataId(string safetyDataId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var safetyDataPlan = from x in Funs.DB.SafetyData_SafetyDataPlan where x.SafetyDataId == safetyDataId select x;
							 | 
						|||
| 
								 | 
							
								            if (safetyDataPlan.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SafetyData_SafetyDataPlan.DeleteAllOnSubmit(safetyDataPlan);
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据主键删除企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlanId"></param>
							 | 
						|||
| 
								 | 
							
								        public static void DeleteSafetyDataPlanByProjectIdSafetyDataId(string projectId, string safetyDataId)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var safetyDataPlan = from x in Funs.DB.SafetyData_SafetyDataPlan
							 | 
						|||
| 
								 | 
							
								                                 where x.ProjectId == projectId && x.SafetyDataId == safetyDataId
							 | 
						|||
| 
								 | 
							
								                                 && (x.IsManual == false || x.IsManual == null)
							 | 
						|||
| 
								 | 
							
								                                 select x;
							 | 
						|||
| 
								 | 
							
								            if (safetyDataPlan.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SafetyData_SafetyDataPlan.DeleteAllOnSubmit(safetyDataPlan);
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据安全资料项主键删除企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlanId"></param>
							 | 
						|||
| 
								 | 
							
								        public static void DeleteSafetyDataPlanByProjectDateId(string projectId, DateTime? projectDate)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var safetyDataPlan = from x in Funs.DB.SafetyData_SafetyDataPlan
							 | 
						|||
| 
								 | 
							
								                                 where x.ProjectId == projectId && x.CheckDate > projectDate
							 | 
						|||
| 
								 | 
							
								                                 && (x.IsManual == false || x.IsManual == null)
							 | 
						|||
| 
								 | 
							
								                                 select x;
							 | 
						|||
| 
								 | 
							
								            if (safetyDataPlan.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SafetyData_SafetyDataPlan.DeleteAllOnSubmit(safetyDataPlan);
							 | 
						|||
| 
								 | 
							
								                Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 根据项目和安全资料项生成企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据项目和安全资料项生成企业安全管理资料计划总表
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlanId"></param>
							 | 
						|||
| 
								 | 
							
								        //public static void GetSafetyDataPlanByProjectInfo(string projectId, string safetyDataId, DateTime? startTime, DateTime? endTime)
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    List<Model.SafetyData_SafetyData> safetyDataEnd = new List<Model.SafetyData_SafetyData>();
							 | 
						|||
| 
								 | 
							
								        //    ///是否更新某一个安全资料项 先删除 再重新生成
							 | 
						|||
| 
								 | 
							
								        //    DeleteSafetyDataPlanBySafetyDataId(safetyDataId);
							 | 
						|||
| 
								 | 
							
								        //    //if (!isDelete(projectId, safetyDataId))
							 | 
						|||
| 
								 | 
							
								        //    //{
							 | 
						|||
| 
								 | 
							
								        //    if (!string.IsNullOrEmpty(safetyDataId))
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        safetyDataEnd = (from x in Funs.DB.SafetyData_SafetyData
							 | 
						|||
| 
								 | 
							
								        //                         where x.IsEndLever == true && x.SafetyDataId == safetyDataId && x.IsCheck == true
							 | 
						|||
| 
								 | 
							
								        //                         orderby x.Code
							 | 
						|||
| 
								 | 
							
								        //                         select x).ToList();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //    else
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        safetyDataEnd = (from x in Funs.DB.SafetyData_SafetyData
							 | 
						|||
| 
								 | 
							
								        //                         where x.IsEndLever == true && x.IsCheck == true
							 | 
						|||
| 
								 | 
							
								        //                         orderby x.Code
							 | 
						|||
| 
								 | 
							
								        //                         select x).ToList();
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //    ///是否存在安全资料项
							 | 
						|||
| 
								 | 
							
								        //    if (safetyDataEnd.Count() > 0)
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        Model.Base_Project project = new Model.Base_Project();
							 | 
						|||
| 
								 | 
							
								        //        if (!string.IsNullOrEmpty(projectId))
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            project = BLL.ProjectService.GetProjectByProjectId(projectId);
							 | 
						|||
| 
								 | 
							
								        //            if (project != null)
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                GetSafetyDataPlanMethod(project, safetyDataEnd, startTime, endTime);
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								        //        else
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            ///取竣工时间大于当前时间 项目
							 | 
						|||
| 
								 | 
							
								        //            var projects = from x in Funs.DB.Base_Project
							 | 
						|||
| 
								 | 
							
								        //                           where x.EndDate >= System.DateTime.Now && x.ProjectType != "5"
							 | 
						|||
| 
								 | 
							
								        //                           select x;
							 | 
						|||
| 
								 | 
							
								        //            if (projects.Count() > 0)
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                foreach (var item in projects)
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    GetSafetyDataPlanMethod(item, safetyDataEnd, startTime, endTime);
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //    //}
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 生成安全资料计划总表 方法
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="project"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataEnd"></param>
							 | 
						|||
| 
								 | 
							
								        //public static void GetSafetyDataPlanMethod(Model.Base_Project project, List<Model.SafetyData_SafetyData> safetyDataEnd, DateTime? startTime, DateTime? endTime)
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    ////第一步 判断是否存在此项目的计划表
							 | 
						|||
| 
								 | 
							
								        //    ////第二步 不存在增加这个项目时间范围内的 存在取不存在时间段
							 | 
						|||
| 
								 | 
							
								        //    ////第三步 项目时间 是否为空? 现在默认都不能为空
							 | 
						|||
| 
								 | 
							
								        //    string projectId = project.ProjectId;
							 | 
						|||
| 
								 | 
							
								        //    DateTime startDatep = project.StartDate.HasValue ? project.StartDate.Value : System.DateTime.Now;
							 | 
						|||
| 
								 | 
							
								        //    if (startTime.HasValue)
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        startDatep = startTime.Value;
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //    DateTime startDate = startDatep;
							 | 
						|||
| 
								 | 
							
								        //    DateTime endDate = project.EndDate.HasValue ? project.EndDate.Value : System.DateTime.Now.AddMonths(6);
							 | 
						|||
| 
								 | 
							
								        //    if (endTime.HasValue)
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        endDate = endTime.Value;
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //    DeleteSafetyDataPlanByProjectDateId(projectId, endDate);   ///删除竣工后的考核计划
							 | 
						|||
| 
								 | 
							
								        //    foreach (var item in safetyDataEnd)
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        var safetyDataPlan = Funs.DB.SafetyData_SafetyDataPlan.FirstOrDefault(x => x.ProjectId == project.ProjectId && x.SafetyDataId == item.SafetyDataId && (x.IsManual == null || x.IsManual == false));
							 | 
						|||
| 
								 | 
							
								        //        if (safetyDataPlan != null)
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            ///取结束时间 最大值作为开始时间
							 | 
						|||
| 
								 | 
							
								        //            DateTime maxEndDate = Funs.DB.SafetyData_SafetyDataPlan.Where(x => x.ProjectId == projectId && x.RealEndDate.HasValue && x.SafetyDataId == item.SafetyDataId).Select(x => x.RealEndDate.Value).Max();
							 | 
						|||
| 
								 | 
							
								        //            if (endDate > maxEndDate) ////如果计划单最大时间小于项目结束时间 则追加时间 否则删去
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                startDate = maxEndDate;
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else
							 | 
						|||
| 
								 | 
							
								        //            { ///项目提前结束 则删除计划时间
							 | 
						|||
| 
								 | 
							
								        //                var delSafetyDataPlan = from x in Funs.DB.SafetyData_SafetyDataPlan where x.RealEndDate > endDate && x.SafetyDataId == item.SafetyDataId select x;
							 | 
						|||
| 
								 | 
							
								        //                if (delSafetyDataPlan.Count() > 0)
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    Funs.DB.SafetyData_SafetyDataPlan.DeleteAllOnSubmit(delSafetyDataPlan);
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								        //        ////算出 开始、结束时间跨度 然后循环增加一个月 并把在此时间段的 考核项写入计划表
							 | 
						|||
| 
								 | 
							
								        //        for (int i = 0; startDate.AddMonths(i) <= endDate; i++)
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            Model.SafetyData_SafetyDataPlan newSafetyDataPlan = new Model.SafetyData_SafetyDataPlan
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                SafetyDataPlanId = SQLHelper.GetNewID(typeof(Model.SafetyData_SafetyDataPlan)),
							 | 
						|||
| 
								 | 
							
								        //                ProjectId = projectId,
							 | 
						|||
| 
								 | 
							
								        //                SafetyDataId = item.SafetyDataId,
							 | 
						|||
| 
								 | 
							
								        //                Score = item.Score,
							 | 
						|||
| 
								 | 
							
								        //                ShouldScore = item.Score,
							 | 
						|||
| 
								 | 
							
								        //                Remark = item.Remark,
							 | 
						|||
| 
								 | 
							
								        //            };
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //            int monthValue = 0;  ///设置月数
							 | 
						|||
| 
								 | 
							
								        //            if (item.CheckTypeValue1.HasValue)
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                monthValue = item.CheckTypeValue1.Value;
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //            int dateValue = 1;  ///设置天
							 | 
						|||
| 
								 | 
							
								        //            if (item.CheckTypeValue2.HasValue)
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                dateValue = item.CheckTypeValue2.Value;
							 | 
						|||
| 
								 | 
							
								        //                if (dateValue > 30)
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    dateValue = 30;
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //            ////TODO:通过判断是月报、季报、定时报等情况 是否落在 当前时间范围内 写入到计划总表
							 | 
						|||
| 
								 | 
							
								        //            if (item.CheckType == BLL.Const.SafetyDataCheckType_1) /// 月报
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                if (startDate.AddMonths(i + monthValue).Month == 2 && dateValue > 28)
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    dateValue = 28;
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //                DateTime? checkDate = Funs.GetNewDateTime(startDate.AddMonths(i + monthValue).Year + "-" + startDate.AddMonths(i + monthValue).Month + "-" + dateValue);
							 | 
						|||
| 
								 | 
							
								        //                if (checkDate.HasValue && checkDate <= endDate && checkDate >= startDatep)
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    newSafetyDataPlan.CheckDate = checkDate;
							 | 
						|||
| 
								 | 
							
								        //                    newSafetyDataPlan.RealStartDate = checkDate.Value.AddMonths(-1); ///月报开始日期
							 | 
						|||
| 
								 | 
							
								        //                    newSafetyDataPlan.RealStartDate = new DateTime(newSafetyDataPlan.RealStartDate.Value.Year, newSafetyDataPlan.RealStartDate.Value.Month, 1);
							 | 
						|||
| 
								 | 
							
								        //                    newSafetyDataPlan.RealEndDate = newSafetyDataPlan.RealStartDate.Value.AddMonths(1).AddDays(-1);
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else if (item.CheckType == BLL.Const.SafetyDataCheckType_2) /// 季报
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                int month = startDate.AddMonths(i).Month; ///当前月份                                                                 
							 | 
						|||
| 
								 | 
							
								        //                if ((month == 3 + monthValue) || (month == 6 + monthValue) || (month == 9 + monthValue) || (month == monthValue) || (month == 12 && monthValue == 0)) ///考核季度时间
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    if (startDate.AddMonths(i + monthValue).Month == 2 && dateValue > 28)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        dateValue = 28;
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								        //                    DateTime? checkDate = Funs.GetNewDateTime(startDate.AddMonths(i).Year + "-" + startDate.AddMonths(i).Month + "-" + dateValue);
							 | 
						|||
| 
								 | 
							
								        //                    if ((month == monthValue) && monthValue != 0)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        checkDate = checkDate.Value.AddYears(1);
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //                    if (checkDate.HasValue && checkDate <= endDate && checkDate >= startDatep)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.CheckDate = checkDate;
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealStartDate = checkDate.Value.AddMonths(-3); ///开始日期
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealStartDate = new DateTime(newSafetyDataPlan.RealStartDate.Value.Year, newSafetyDataPlan.RealStartDate.Value.Month, 1);
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealEndDate = newSafetyDataPlan.RealStartDate.Value.AddMonths(3).AddDays(-1);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else if (item.CheckType == BLL.Const.SafetyDataCheckType_3) /// 定时
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                if (startDate.AddMonths(i).Month == monthValue) ///定时月份
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    if (startDate.AddMonths(i + monthValue).Month == 2 && dateValue > 28)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        dateValue = 28;
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								        //                    DateTime? checkDate = Funs.GetNewDateTime(startDate.AddMonths(i).Year + "-" + startDate.AddMonths(i).Month + "-" + dateValue);
							 | 
						|||
| 
								 | 
							
								        //                    if (checkDate.HasValue && checkDate <= endDate && checkDate >= startDatep)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.CheckDate = checkDate;
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealStartDate = checkDate.Value.AddMonths(-12); ///开始日期
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealStartDate = new DateTime(newSafetyDataPlan.RealStartDate.Value.Year, newSafetyDataPlan.RealStartDate.Value.Month, 1);
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealEndDate = checkDate.Value;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else if (item.CheckType == BLL.Const.SafetyDataCheckType_4) /// 开工后报
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                DateTime? checkDate = startDate.AddMonths(i);
							 | 
						|||
| 
								 | 
							
								        //                if (checkDate.HasValue && checkDate <= endDate && BLL.Funs.CompareMonths(startDatep, checkDate.Value) == monthValue && checkDate >= startDatep)
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    newSafetyDataPlan.CheckDate = checkDate;
							 | 
						|||
| 
								 | 
							
								        //                    newSafetyDataPlan.RealStartDate = startDate; ///开始日期
							 | 
						|||
| 
								 | 
							
								        //                    newSafetyDataPlan.RealEndDate = checkDate.Value;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else if (item.CheckType == BLL.Const.SafetyDataCheckType_5) /// 半年报
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                if (startDate.AddMonths(i).Month == monthValue || startDate.AddMonths(i).Month == monthValue + 6)
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    if (startDate.AddMonths(i + monthValue).Month == 2 && dateValue > 28)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        dateValue = 28;
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								        //                    DateTime? checkDate = Funs.GetNewDateTime(startDate.AddMonths(i).Year + "-" + startDate.AddMonths(i).Month + "-" + dateValue);
							 | 
						|||
| 
								 | 
							
								        //                    if (checkDate.HasValue && checkDate <= endDate && checkDate >= startDatep)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.CheckDate = checkDate;
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealStartDate = checkDate.Value.AddMonths(-6); ///开始日期
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealStartDate = new DateTime(newSafetyDataPlan.RealStartDate.Value.Year, newSafetyDataPlan.RealStartDate.Value.Month, 1);
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealEndDate = newSafetyDataPlan.RealStartDate.Value.AddMonths(6).AddDays(-1);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            else  /// 其他
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                if (monthValue > 0 && startDate.AddMonths(i).Year == System.DateTime.Now.Year && startDate.AddMonths(i).Month == monthValue)
							 | 
						|||
| 
								 | 
							
								        //                {
							 | 
						|||
| 
								 | 
							
								        //                    if (startDate.AddMonths(i + monthValue).Month == 2 && dateValue > 28)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        dateValue = 28;
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								        //                    DateTime? checkDate = Funs.GetNewDateTime(startDate.AddMonths(i).Year + "-" + startDate.AddMonths(i).Month + "-" + dateValue);
							 | 
						|||
| 
								 | 
							
								        //                    if (checkDate.HasValue && checkDate <= endDate && checkDate >= startDatep)
							 | 
						|||
| 
								 | 
							
								        //                    {
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.CheckDate = checkDate;
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealStartDate = startDate; ///开始日期
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealStartDate = new DateTime(newSafetyDataPlan.RealStartDate.Value.Year, newSafetyDataPlan.RealStartDate.Value.Month, 1);
							 | 
						|||
| 
								 | 
							
								        //                        newSafetyDataPlan.RealEndDate = checkDate.Value;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //                    }
							 | 
						|||
| 
								 | 
							
								        //                }
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //            if (newSafetyDataPlan.RealEndDate.HasValue)
							 | 
						|||
| 
								 | 
							
								        //            {
							 | 
						|||
| 
								 | 
							
								        //                newSafetyDataPlan.ReminderDate = newSafetyDataPlan.CheckDate.Value.AddDays(-7);
							 | 
						|||
| 
								 | 
							
								        //                AddSafetyDataPlan(newSafetyDataPlan);
							 | 
						|||
| 
								 | 
							
								        //            }
							 | 
						|||
| 
								 | 
							
								        //        }
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        ///  是否当前项目不考核项
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="projectId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataId"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        //public static bool isDelete(string projectId, string safetyDataId)
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    bool isDelete = false;
							 | 
						|||
| 
								 | 
							
								        //    var safetyDataPlanDelete = Funs.DB.SafetyData_SafetyDataPlanDelete.FirstOrDefault(x => x.ProjectId == projectId && x.SafetyDataId == safetyDataId);
							 | 
						|||
| 
								 | 
							
								        //    if (safetyDataPlanDelete != null)
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        isDelete = true;
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //    return isDelete;
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 增、删 企业安全管理资料计划项
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 添加企业安全管理资料计划项
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlan"></param>
							 | 
						|||
| 
								 | 
							
								        //public static void AddSafetyDataPlanDelete(string projectId, string safetyDataId)
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    var delete = db.SafetyData_SafetyDataPlanDelete.FirstOrDefault(x => x.ProjectId == projectId && x.SafetyDataId == safetyDataId);
							 | 
						|||
| 
								 | 
							
								        //    if (delete == null)
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        Model.SafetyData_SafetyDataPlanDelete newSafetyDataPlanDelete = new Model.SafetyData_SafetyDataPlanDelete
							 | 
						|||
| 
								 | 
							
								        //        {
							 | 
						|||
| 
								 | 
							
								        //            SafetyDataPlanDeleteId = SQLHelper.GetNewID(typeof(Model.SafetyData_SafetyDataPlanDelete)),
							 | 
						|||
| 
								 | 
							
								        //            ProjectId = projectId,
							 | 
						|||
| 
								 | 
							
								        //            SafetyDataId = safetyDataId,
							 | 
						|||
| 
								 | 
							
								        //            DeleteDate = System.DateTime.Now
							 | 
						|||
| 
								 | 
							
								        //        };
							 | 
						|||
| 
								 | 
							
								        //        db.SafetyData_SafetyDataPlanDelete.InsertOnSubmit(newSafetyDataPlanDelete);
							 | 
						|||
| 
								 | 
							
								        //        db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //    DeleteSafetyDataPlanByProjectIdSafetyDataId(projectId, safetyDataId);
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 根据主键删除企业安全管理资料计划项
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="safetyDataPlanId"></param>
							 | 
						|||
| 
								 | 
							
								        //public static void DeleteSafetyDataPlanDelete(string projectId, string safetyDataId)
							 | 
						|||
| 
								 | 
							
								        //{
							 | 
						|||
| 
								 | 
							
								        //    var safetyDataPlan = from x in db.SafetyData_SafetyDataPlanDelete where x.ProjectId == projectId && x.SafetyDataId == safetyDataId select x;
							 | 
						|||
| 
								 | 
							
								        //    if (safetyDataPlan.Count() > 0)
							 | 
						|||
| 
								 | 
							
								        //    {
							 | 
						|||
| 
								 | 
							
								        //        db.SafetyData_SafetyDataPlanDelete.DeleteAllOnSubmit(safetyDataPlan);
							 | 
						|||
| 
								 | 
							
								        //        db.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								        //    }
							 | 
						|||
| 
								 | 
							
								        //    GetSafetyDataPlanByProjectInfo(projectId, safetyDataId, null, null);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        //}
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 添加考核明细时 得到实际考核分数
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="SafetyDataPlan">提交时间未空的考核计划明细集合</param>
							 | 
						|||
| 
								 | 
							
								        private static void GetSafetyDataPlanRealScore(Model.SafetyData_SafetyDataPlan safetyDataPlan)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            /// 考核项目、考核资料项、考核时间内  是否存在资料
							 | 
						|||
| 
								 | 
							
								            var safetyDataItem = from x in Funs.DB.SafetyData_SafetyDataItem
							 | 
						|||
| 
								 | 
							
								                                 where x.ProjectId == safetyDataPlan.ProjectId && x.SafetyDataId == safetyDataPlan.SafetyDataId
							 | 
						|||
| 
								 | 
							
								                                 && x.CompileDate >= safetyDataPlan.RealStartDate && x.CompileDate <= safetyDataPlan.RealEndDate
							 | 
						|||
| 
								 | 
							
								                                 orderby x.SubmitDate
							 | 
						|||
| 
								 | 
							
								                                 select x;
							 | 
						|||
| 
								 | 
							
								            if (safetyDataItem.Count() > 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                safetyDataPlan.SubmitDate = safetyDataItem.FirstOrDefault().SubmitDate;
							 | 
						|||
| 
								 | 
							
								                if (safetyDataPlan.SubmitDate <= safetyDataPlan.CheckDate || safetyDataPlan.ShouldScore < 0) ///准时提交
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    safetyDataPlan.RealScore = safetyDataPlan.ShouldScore;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else   ///超期提交
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    safetyDataPlan.RealScore = 0;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                UpdateSafetyDataPlan(safetyDataPlan);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |