using System.Collections.Generic; using System.Linq; using System; namespace BLL { /// /// HSE日志 /// public static class APIHSEDiaryService { #region 获取HSE日志信息 /// /// 获取HSE日志信息 /// /// /// /// /// public static Model.HSEDiaryItem getHSEDiary(string projectId, string userId, string diaryDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { DateTime? getDiaryDate = Funs.GetNewDateTime(diaryDate); Model.HSEDiaryItem getItem = new Model.HSEDiaryItem(); if (getDiaryDate.HasValue && !string.IsNullOrEmpty(projectId) && !string.IsNullOrEmpty(userId)) { var getFlowOperteList = ReturnFlowOperteList(projectId, userId, getDiaryDate.Value); getItem.ProjectId = projectId; getItem.UserId = userId; getItem.UserName = UserService.GetUserNameByUserIdForApi(userId); getItem.DiaryDate = diaryDate; getItem.HSEDiaryId = SQLHelper.GetNewID(); getItem.Value1 = getValues1(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value2 = getValues2(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value3 = getValues3(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value4 = getValues4(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value5 = getValues5(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value6 = getValues6(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value7 = getValues7(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value8 = getValues8(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value9 = getValues9(getFlowOperteList, projectId, userId, getDiaryDate.Value); getItem.Value10 = getValues10(getFlowOperteList, projectId, userId, getDiaryDate.Value); var getInfo = db.Project_HSEDiary.FirstOrDefault(x => x.UserId == userId && x.DiaryDate == getDiaryDate); if (getInfo != null) { getItem.HSEDiaryId = getInfo.HSEDiaryId; getItem.DailySummary = getInfo.DailySummary; getItem.TomorrowPlan = getInfo.TomorrowPlan; } } return getItem; } } #endregion /// /// /// /// /// /// /// public static List ReturnFlowOperteList(string getProjectId, string getUserId, DateTime getDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { return (from x in db.Sys_FlowOperate where x.ProjectId == getProjectId && x.OperaterId == getUserId && x.IsClosed == true && x.OperaterTime >= getDate && x.OperaterTime < getDate.AddDays(1) select x).ToList(); } } #region 获取HSE日志列表信息 /// /// 获取HSE日志列表信息 /// /// /// /// /// public static List getHSEDiaryList(string projectId, string userId, string diaryDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { DateTime? getDiaryDate = Funs.GetNewDateTime(diaryDate); var getDataList = from x in db.Project_HSEDiary where x.ProjectId == projectId && (userId == null || x.UserId == userId) && (diaryDate == null || x.DiaryDate == getDiaryDate) orderby x.DiaryDate descending select new Model.HSEDiaryItem { HSEDiaryId = x.HSEDiaryId, ProjectId = x.ProjectId, DiaryDate = string.Format("{0:yyyy-MM-dd}", x.DiaryDate), UserId = x.UserId, UserName = db.Sys_User.First(u => u.UserId == x.UserId).UserName, DailySummary = x.DailySummary, TomorrowPlan = x.TomorrowPlan, }; return getDataList.ToList(); } } #endregion #region 保存HSE日志 /// /// 保存HSE日志 /// /// public static void SaveHSEDiary(Model.HSEDiaryItem item) { DeleteHSEDiary(item.HSEDiaryId); using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { Model.Project_HSEDiary newHSEDiary = new Model.Project_HSEDiary { HSEDiaryId = item.HSEDiaryId, ProjectId = item.ProjectId, DiaryDate = Funs.GetNewDateTime(item.DiaryDate), UserId = item.UserId, DailySummary = item.DailySummary, TomorrowPlan = item.TomorrowPlan, Value1 = item.Value1, Value2 = item.Value2, Value3 = item.Value3, Value4 = item.Value4, Value5 = item.Value5, Value6 = item.Value6, Value7 = item.Value7, Value8 = item.Value8, Value9 = item.Value9, Value10 = item.Value10, }; if (string.IsNullOrEmpty(newHSEDiary.HSEDiaryId)) { newHSEDiary.HSEDiaryId = SQLHelper.GetNewID(); } db.Project_HSEDiary.InsertOnSubmit(newHSEDiary); db.SubmitChanges(); } } #endregion /// /// 删除日志 /// /// public static void DeleteHSEDiary(string hseDiaryId) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { var getInfo = db.Project_HSEDiary.FirstOrDefault(x => x.HSEDiaryId == hseDiaryId); if (getInfo != null) { db.Project_HSEDiary.DeleteOnSubmit(getInfo); db.SubmitChanges(); } } } #region 获取日志信息 /// /// 1HSE检查情况及检查次数 /// public static string getValues1(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string strValues = string.Empty; var getRegister = (from x in db.HSSE_Hazard_HazardRegister where x.ProjectId == getProjectId && x.CheckManId == getUserId && getDate > x.CheckTime.Value.AddDays(-1) && getDate < x.CheckTime.Value.AddDays(1) select x).Count(); if (getRegister > 0) { strValues += "巡检:" + getRegister.ToString() + ";"; } if (getFlowOperteList.Count() > 0) { var getDayCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectCheckDayMenuId).Count(); if (getDayCount > 0) { strValues += "日常:" + getDayCount.ToString(); } var getSpecialCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectCheckSpecialMenuId).Count(); if (getSpecialCount > 0) { strValues += "专项:" + getSpecialCount.ToString(); } var getColligationCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectCheckColligationMenuId).Count(); if (getColligationCount > 0) { strValues += "综合:" + getColligationCount.ToString(); } } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } } /// /// 2隐患整改情况及隐患整改数量 /// public static string getValues2(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string strValues = string.Empty; var getCHeck = from x in db.Check_RectifyNotices where x.ProjectId == getProjectId && x.CheckPerson == getUserId && getDate > x.CheckedDate.Value.AddDays(-1) && getDate < x.CheckedDate.Value.AddDays(1) select x; if (getCHeck.Count() > 0) { strValues += "复查:" + getCHeck.Count().ToString() + ";"; } var getSign = from x in db.Check_RectifyNotices where x.ProjectId == getProjectId && x.SignPerson == getUserId && getDate > x.SignDate.Value.AddDays(-1) && getDate < x.SignDate.Value.AddDays(1) select x; if (getSign.Count() > 0) { strValues += "签发:" + getSign.Count().ToString() + ";"; } var getDuty = from x in db.Check_RectifyNotices where x.ProjectId == getProjectId && x.DutyPersonId == getUserId && getDate > x.CompleteDate.Value.AddDays(-1) && getDate < x.CompleteDate.Value.AddDays(1) select x; if (getDuty.Count() > 0) { strValues += "整改:" + getDuty.Count().ToString() + ";"; } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } } /// /// 3作业许可情况及作业票数量 /// public static string getValues3(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string strValues = string.Empty; var getLicense = from x in db.License_FlowOperate join y in db.Sys_Menu on x.MenuId equals y.MenuId where x.ProjectId == getProjectId && x.OperaterId == getUserId && getDate > x.OperaterTime.Value.AddDays(-1) && getDate < x.OperaterTime.Value.AddDays(1) select new { x.DataId, y.MenuName }; if (getLicense.Count() > 0) { var getNames = getLicense.Select(x => x.MenuName).Distinct(); foreach (var item in getNames) { strValues += item.Replace("作业票", "") + ":" + getLicense.Where(x => x.MenuName == item).Select(x => x.DataId).Distinct().Count().ToString() + ";"; } } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } } /// /// 4施工机具、安全设施检查、验收情况及检查验收数量 /// public static string getValues4(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { string strValues = string.Empty; //var getCompileCount = (from x in db.License_EquipmentSafetyList // where x.ProjectId == getProjectId && x.CompileMan == getUserId // && getDate > x.CompileDate.Value.AddDays(-1) && getDate < x.CompileDate.Value.AddDays(1) // select x).Count(); //if (getCompileCount > 0) //{ // strValues += "申请:" + getCompileCount.ToString() + ";"; //} var getAuditCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectEquipmentSafetyListMenuId).Count(); if (getAuditCount > 0) { strValues = getAuditCount.ToString(); } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } /// /// 5危险源辨识工作情况及次数 /// public static string getValues5(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { string strValues = string.Empty; //var getHCompileCount = (from x in db.Hazard_HazardList // where x.ProjectId == getProjectId && x.CompileMan == getUserId // && getDate > x.CompileDate.Value.AddDays(-1) && getDate < x.CompileDate.Value.AddDays(1) // select x).Count(); //if (getHCompileCount > 0) //{ // strValues += "编制职业健康危险源:" + getHCompileCount.ToString() + ";"; //} var getHAuditCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectHazardListMenuId).Count(); if (getHAuditCount > 0) { strValues += "职业健康:" + getHAuditCount.ToString() + ";"; } //var getECompileCount = (from x in db.Hazard_EnvironmentalRiskList // where x.ProjectId == getProjectId && x.CompileMan == getUserId // && getDate > x.CompileDate.Value.AddDays(-1) && getDate < x.CompileDate.Value.AddDays(1) // select x).Count(); //if (getECompileCount > 0) //{ // strValues += "编制环境危险源:" + getECompileCount.ToString() + ";"; //} var getEAuditCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectEnvironmentalRiskListMenuId).Count(); if (getEAuditCount > 0) { strValues += "环境:" + getEAuditCount.ToString() + ";"; } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } /// /// 6应急计划修编、演练及物资准备情况及次数 /// public static string getValues6(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string strValues = string.Empty; var getCompileCount = (from x in db.Emergency_EmergencyList where x.ProjectId == getProjectId && (x.AuditMan == getUserId || x.ApproveMan == getUserId) && getDate > x.CompileDate.Value.AddDays(-1) && getDate < x.CompileDate.Value.AddDays(1) select x).Count(); var getFlowCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectEmergencyListMenuId).Count(); if (getCompileCount > 0) { strValues += "预案:" + (getCompileCount + getCompileCount).ToString() + ";"; } var getDrillCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectDrillRecordListMenuId).Count(); if (getDrillCount > 0) { strValues += "演练:" + getDrillCount.ToString() + ";"; } var getSupplyCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectEmergencySupplyMenuId).Count(); if (getSupplyCount > 0) { strValues += "物资:" + getSupplyCount.ToString() + ";"; } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } } /// /// 7教育培训情况及人次 /// public static string getValues7(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string strValues = string.Empty; var getFlows = getFlowOperteList.Where(x => x.MenuId == Const.ProjectTrainRecordMenuId).ToList(); if (getFlows.Count() > 0) { List listIds = getFlows.Select(x => x.DataId).ToList(); strValues += "次数:" + getFlows.Count().ToString() + ";"; var getPersonCount = (from x in db.EduTrain_TrainRecord join y in db.EduTrain_TrainRecordDetail on x.TrainingId equals y.TrainingId where listIds.Contains(x.TrainingId) select y).Count(); if (getPersonCount > 0) { strValues += "人数:" + getPersonCount.ToString() + "。"; } } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } } /// /// 8 HSE会议情况及次数 /// public static string getValues8(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) { string strValues = string.Empty; var getClassMeeting = getFlowOperteList.Where(x => x.MenuId == Const.ProjectClassMeetingMenuId).Count(); if (getClassMeeting > 0) { strValues += "班前会:" + getClassMeeting.ToString() + ";"; } var getWeekMeeting = db.Meeting_WeekMeeting.Where(x => (x.CompileMan == getUserId || x.MeetingHostManId == getUserId || x.AttentPersonIds.Contains(getUserId)) && getDate > x.WeekMeetingDate.Value.AddDays(-1) && getDate < x.WeekMeetingDate.Value.AddDays(1)).Count(); if (getWeekMeeting > 0) { strValues += "周例会:" + getWeekMeeting.ToString() + ";"; } var getMonthMeeting = db.Meeting_MonthMeeting.Where(x => (x.CompileMan == getUserId || x.MeetingHostManId == getUserId || x.AttentPersonIds.Contains(getUserId)) && getDate > x.MonthMeetingDate.Value.AddDays(-1) && getDate < x.MonthMeetingDate.Value.AddDays(1)).Count(); if (getMonthMeeting > 0) { strValues += "月例会:" + getMonthMeeting.ToString() + ";"; } var getSpecialMeeting = db.Meeting_SpecialMeeting.Where(x => (x.CompileMan == getUserId || x.CompileMan == getUserId || x.MeetingHostManId == getUserId || x.AttentPersonIds.Contains(getUserId)) && getDate > x.SpecialMeetingDate.Value.AddDays(-1) && getDate < x.SpecialMeetingDate.Value.AddDays(1)).Count(); if (getSpecialMeeting > 0) { strValues += "专题会:" + getSpecialMeeting.ToString() + ";"; } var getAttendMeeting = db.Meeting_AttendMeeting.Where(x => (x.CompileMan == getUserId || x.MeetingHostManId == getUserId || x.AttentPersonIds.Contains(getUserId)) && getDate > x.AttendMeetingDate.Value.AddDays(-1) && getDate < x.AttendMeetingDate.Value.AddDays(1)).Count(); if (getAttendMeeting > 0) { strValues += "其他会议:" + getAttendMeeting.ToString() + ";"; } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } } /// /// 9 HSE宣传工作情况 /// public static string getValues9(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { string strValues = string.Empty; var getFlowCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectPromotionalActivitiesMenuId).Count(); if (getFlowCount > 0) { strValues += getFlowCount.ToString(); } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } /// /// 10 HSE奖惩工作情况、HSE奖励次数、HSE处罚次数 /// public static string getValues10(List getFlowOperteList, string getProjectId, string getUserId, DateTime getDate) { string strValues = string.Empty; var getFlowCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectIncentiveNoticeMenuId).Count(); if (getFlowCount > 0) { strValues += "奖励单:" + getFlowCount.ToString(); } var getPFlowCount = getFlowOperteList.Where(x => x.MenuId == Const.ProjectPunishNoticeMenuId).Count(); if (getPFlowCount > 0) { strValues += "处罚单:" + getPFlowCount.ToString(); } if (string.IsNullOrEmpty(strValues)) { return "0"; } else { return strValues; } } #endregion } }