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
}
}