284 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			284 lines
		
	
	
		
			13 KiB
		
	
	
	
		
			C#
		
	
	
	
|  | using System; | |||
|  | using System.Collections.Generic; | |||
|  | using System.Linq; | |||
|  | using System.Text; | |||
|  | using System.Threading.Tasks; | |||
|  | 
 | |||
|  | namespace BLL | |||
|  | { | |||
|  |    public static class MonthReportBService | |||
|  |     { | |||
|  |         /// <summary> | |||
|  |         /// 根据时间获取最近时间的月报 | |||
|  |         /// </summary> | |||
|  |         /// <param name="date">日期</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static bool GetMonthReportByDate(DateTime date, string projectId) | |||
|  |         { | |||
|  |             var a = from x in Funs.DB.Manager_MonthReportB where x.ProjectId == projectId && (x.Months.Value.Year.ToString() + x.Months.Value.Month.ToString()).Contains(date.Year.ToString() + date.Month.ToString()) select x; | |||
|  |             return a.Count() > 0; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取项目时间段内的月报 | |||
|  |         /// </summary> | |||
|  |         /// <param name="startTime">开始时间</param> | |||
|  |         /// <param name="endTime">结束时间</param> | |||
|  |         /// <param name="projectId">项目号</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.Manager_MonthReportB> GetMonthReportsByStartAndEndTimeAndProjectId(DateTime startTime, DateTime endTime, string projectId) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.Manager_MonthReportB where x.Months >= startTime && x.Months < endTime && x.ProjectId == projectId select x).ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取所有项目时间段内的月报 | |||
|  |         /// </summary> | |||
|  |         /// <param name="startTime">开始时间</param> | |||
|  |         /// <param name="endTime">结束时间</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.Manager_MonthReportB> GetMonthReportsByStartAndEndTime(DateTime startTime, DateTime endTime) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.Manager_MonthReportB where x.Months >= startTime && x.Months < endTime select x).ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取所有项目当月的月报 | |||
|  |         /// </summary> | |||
|  |         /// <param name="months"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static List<Model.Manager_MonthReportB> GetMonthReportsByMonths(DateTime months) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.Manager_MonthReportB where x.Months == months select x).ToList(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据时间获取最近时间的月报 | |||
|  |         /// </summary> | |||
|  |         /// <param name="date">日期</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static bool GetFreezeMonthReportByDate(DateTime date, string projectId, int day) | |||
|  |         { | |||
|  |             var a = from x in Funs.DB.Manager_MonthReportB where x.ProjectId == projectId && (x.Months.Value.Year.ToString() + x.Months.Value.AddMonths(1).Month.ToString()).Contains(date.Year.ToString() + date.Month.ToString()) && date.Day < (day + 1) select x; | |||
|  |             return a.Count() > 0; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据日期获得月报告信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="month">日期</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.Manager_MonthReportB GetMonthReportByMonth(DateTime month, string projectId) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.Manager_MonthReportB where x.Months == month && x.ProjectId == projectId select x).FirstOrDefault(); | |||
|  |         } | |||
|  | 
 | |||
|  |         ///// <summary> | |||
|  |         ///// 根据日期获得最近的一条月报告信息 | |||
|  |         ///// </summary> | |||
|  |         ///// <param name="date">日期</param> | |||
|  |         ///// <returns></returns> | |||
|  |         //public static Model.Manager_MonthReportB GetLastMonthReportByDate(DateTime date, int freezeDay, string projectId) | |||
|  |         //{ | |||
|  |         //    Model.Manager_MonthReportB LastMonth = null; | |||
|  |         //    if (date.Day < freezeDay) | |||
|  |         //    { | |||
|  |         //        LastMonth = (from x in Funs.DB.Manager_MonthReportB where x.Months <= date.AddMonths(-2) && x.ProjectId == projectId orderby x.MonthReportDate descending select x).FirstOrDefault(); | |||
|  |         //    } | |||
|  |         //    else | |||
|  |         //    { | |||
|  |         //        LastMonth = (from x in Funs.DB.Manager_MonthReportB where x.Months < date.AddMonths(-1) && x.ProjectId == projectId orderby x.MonthReportDate descending select x).FirstOrDefault(); | |||
|  |         //    } | |||
|  |         //    return LastMonth; | |||
|  |         //} | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据日期获得最近的一条月报告信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="date">日期</param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.Manager_MonthReportB GetLastMonthReportByDate(DateTime date, int freezeDay, string projectId) | |||
|  |         { | |||
|  |             Model.Manager_MonthReportB LastMonth = null; | |||
|  |             DateTime? monthDate = null; | |||
|  | 
 | |||
|  |             var q = from x in Funs.DB.Manager_MonthReportB where x.ProjectId == projectId && x.Months < date orderby x.Months descending select x; | |||
|  |             if (q.Count() > 0) | |||
|  |             { | |||
|  |                 if (date.Day <= freezeDay) | |||
|  |                 { | |||
|  |                     DateTime c = date.AddMonths(-1).Date; | |||
|  |                     monthDate = Convert.ToDateTime(c.Year + "-" + c.Month + "-01");  //当月 | |||
|  |                 } | |||
|  |                 else | |||
|  |                 { | |||
|  |                     monthDate = Convert.ToDateTime(date.Year + "-" + date.Month + "-01");  //当月 | |||
|  |                 } | |||
|  | 
 | |||
|  |                 var month = from x in q where x.Months == monthDate select x; | |||
|  | 
 | |||
|  |                 if (month.Count() > 0)  // 表示存在当月记录 | |||
|  |                 { | |||
|  |                     if (q.Count() > 1) | |||
|  |                     { | |||
|  |                         LastMonth = q.ToList()[1]; | |||
|  |                     } | |||
|  |                 } | |||
|  |                 else    // 表示不存在当月记录 | |||
|  |                 { | |||
|  |                     LastMonth = q.ToList()[0]; | |||
|  |                 } | |||
|  |             } | |||
|  |             return LastMonth; | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据月报告主键获取月报告信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="monthReportId">月报告主键</param> | |||
|  |         /// <returns>月报告信息</returns> | |||
|  |         public static Model.Manager_MonthReportB GetMonthReportByMonthReportId(string monthReportId) | |||
|  |         { | |||
|  |             return Funs.DB.Manager_MonthReportB.FirstOrDefault(x => x.MonthReportId == monthReportId); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据月报告编号获取月报告信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="monthReportCode">月报告编号</param> | |||
|  |         /// <returns>月报告信息</returns> | |||
|  |         public static Model.Manager_MonthReportB GetMonthReportByMonthReportCode(string monthReportCode) | |||
|  |         { | |||
|  |             return Funs.DB.Manager_MonthReportB.FirstOrDefault(x => x.MonthReportCode == monthReportCode); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 增加月报告信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="monthReport">月报告实体</param> | |||
|  |         public static void AddMonthReport(Model.Manager_MonthReportB monthReport) | |||
|  |         { | |||
|  |             string newKeyID = SQLHelper.GetNewID(typeof(Model.Manager_MonthReportB)); | |||
|  |             Model.Manager_MonthReportB newMonthReport = new Model.Manager_MonthReportB | |||
|  |             { | |||
|  |                 MonthReportId = monthReport.MonthReportId, | |||
|  |                 MonthReportCode = monthReport.MonthReportCode, | |||
|  |                 ProjectId = monthReport.ProjectId, | |||
|  |                 Months = monthReport.Months, | |||
|  |                 MonthReportDate = monthReport.MonthReportDate, | |||
|  |                 ReportMan = monthReport.ReportMan, | |||
|  |                 Manhours = monthReport.Manhours, | |||
|  |                 TotalManhours = monthReport.TotalManhours, | |||
|  |                 HseManhours = monthReport.HseManhours, | |||
|  |                 TotalHseManhours = monthReport.TotalHseManhours, | |||
|  |                 NoStartDate = monthReport.NoStartDate, | |||
|  |                 NoEndDate = monthReport.NoEndDate, | |||
|  |                 SafetyManhours = monthReport.SafetyManhours, | |||
|  |                 AccidentReview = monthReport.AccidentReview, | |||
|  |                 AccidentNum = monthReport.AccidentNum, | |||
|  |                 AccidentRateA = monthReport.AccidentRateA, | |||
|  |                 AccidentRateB = monthReport.AccidentRateB, | |||
|  |                 AccidentRateC = monthReport.AccidentRateC, | |||
|  |                 AccidentRateD = monthReport.AccidentRateD, | |||
|  |                 AccidentRateE = monthReport.AccidentRateE, | |||
|  |                 LargerHazardNun = monthReport.LargerHazardNun, | |||
|  |                 TotalLargerHazardNun = monthReport.TotalLargerHazardNun, | |||
|  |                 IsArgumentLargerHazardNun = monthReport.IsArgumentLargerHazardNun, | |||
|  |                 TotalIsArgumentLargerHazardNun = monthReport.TotalIsArgumentLargerHazardNun, | |||
|  |                 HseActiveReview = monthReport.HseActiveReview, | |||
|  |                 HseActiveKey = monthReport.HseActiveKey, | |||
|  |                 TotalManNum = monthReport.TotalManNum | |||
|  |             }; | |||
|  | 
 | |||
|  |             Funs.DB.Manager_MonthReportB.InsertOnSubmit(newMonthReport); | |||
|  |             Funs.DB.SubmitChanges(); | |||
|  |             ////增加一条编码记录 | |||
|  |             BLL.CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(BLL.Const.ProjectManagerMonthBMenuId, monthReport.ProjectId, null, monthReport.MonthReportId, monthReport.MonthReportDate); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 修改月报告信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="monthReport">月报告实体</param> | |||
|  |         public static void UpdateMonthReport(Model.Manager_MonthReportB monthReport) | |||
|  |         { | |||
|  |             Model.Manager_MonthReportB newMonthReport = Funs.DB.Manager_MonthReportB.FirstOrDefault(e => e.MonthReportId == monthReport.MonthReportId); | |||
|  |             newMonthReport.MonthReportCode = monthReport.MonthReportCode; | |||
|  |             newMonthReport.ProjectId = monthReport.ProjectId; | |||
|  |             newMonthReport.Months = monthReport.Months; | |||
|  |             newMonthReport.MonthReportDate = monthReport.MonthReportDate; | |||
|  |             newMonthReport.ReportMan = monthReport.ReportMan; | |||
|  |             newMonthReport.Manhours = monthReport.Manhours; | |||
|  |             newMonthReport.TotalManhours = monthReport.TotalManhours; | |||
|  |             newMonthReport.HseManhours = monthReport.HseManhours; | |||
|  |             newMonthReport.TotalHseManhours = monthReport.TotalHseManhours; | |||
|  |             newMonthReport.NoStartDate = monthReport.NoStartDate; | |||
|  |             newMonthReport.NoEndDate = monthReport.NoEndDate; | |||
|  |             newMonthReport.SafetyManhours = monthReport.SafetyManhours; | |||
|  |             newMonthReport.AccidentReview = monthReport.AccidentReview; | |||
|  |             newMonthReport.AccidentNum = monthReport.AccidentNum; | |||
|  |             newMonthReport.AccidentRateA = monthReport.AccidentRateA; | |||
|  |             newMonthReport.AccidentRateB = monthReport.AccidentRateB; | |||
|  |             newMonthReport.AccidentRateC = monthReport.AccidentRateC; | |||
|  |             newMonthReport.AccidentRateD = monthReport.AccidentRateD; | |||
|  |             newMonthReport.AccidentRateE = monthReport.AccidentRateE; | |||
|  |             newMonthReport.LargerHazardNun = monthReport.LargerHazardNun; | |||
|  |             newMonthReport.TotalLargerHazardNun = monthReport.TotalLargerHazardNun; | |||
|  |             newMonthReport.IsArgumentLargerHazardNun = monthReport.IsArgumentLargerHazardNun; | |||
|  |             newMonthReport.TotalIsArgumentLargerHazardNun = monthReport.TotalIsArgumentLargerHazardNun; | |||
|  |             newMonthReport.HseActiveReview = monthReport.HseActiveReview; | |||
|  |             newMonthReport.HseActiveKey = monthReport.HseActiveKey; | |||
|  |             newMonthReport.TotalManNum = monthReport.TotalManNum; | |||
|  |             newMonthReport.PlanCost = monthReport.PlanCost; | |||
|  |             newMonthReport.RealCost = monthReport.RealCost; | |||
|  |             newMonthReport.TotalRealCost = monthReport.TotalRealCost; | |||
|  | 
 | |||
|  |             Funs.DB.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 根据月报告主键删除一个月报告信息 | |||
|  |         /// </summary> | |||
|  |         /// <param name="monthReportId">月报告主键</param> | |||
|  |         public static void DeleteMonthReportByMonthReportId(string monthReportId) | |||
|  |         { | |||
|  |             Model.Manager_MonthReportB monthReport = Funs.DB.Manager_MonthReportB.FirstOrDefault(e => e.MonthReportId == monthReportId); | |||
|  |             ///删除编码表记录 | |||
|  |             BLL.CodeRecordsService.DeleteCodeRecordsByDataId(monthReportId); | |||
|  |             BLL.CommonService.DeleteAttachFileById(monthReportId);//删除附件 | |||
|  |             Funs.DB.Manager_MonthReportB.DeleteOnSubmit(monthReport); | |||
|  |             Funs.DB.SubmitChanges(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取项目当月的月报 | |||
|  |         /// </summary> | |||
|  |         /// <param name="months"></param> | |||
|  |         /// <param name="projectId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.Manager_MonthReportB GetMonthReportsByMonthsAndProjectId(DateTime months, string projectId) | |||
|  |         { | |||
|  |             return (from x in Funs.DB.Manager_MonthReportB where x.Months == months && x.ProjectId == projectId select x).FirstOrDefault(); | |||
|  |         } | |||
|  | 
 | |||
|  |         /// <summary> | |||
|  |         /// 获取项目最近的的月报 | |||
|  |         /// </summary> | |||
|  |         /// <param name="months"></param> | |||
|  |         /// <param name="projectId"></param> | |||
|  |         /// <returns></returns> | |||
|  |         public static Model.Manager_MonthReportB GetLateMonthReportByMonths(DateTime months, string projectId) | |||
|  |         { | |||
|  |             var q = from x in Funs.DB.Manager_MonthReportB where x.Months < months && x.ProjectId == projectId orderby x.Months descending select x; | |||
|  |             if (q.Count() > 0) | |||
|  |             { | |||
|  |                 return q.First(); | |||
|  |             } | |||
|  |             else | |||
|  |             { | |||
|  |                 return null; | |||
|  |             } | |||
|  |         } | |||
|  |     } | |||
|  | } |