xinjiang/SGGL/BLL/HSSE/Manager/MonthReportService.cs

221 lines
10 KiB
C#

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
/// <summary>
/// 管理月报
/// </summary>
public static class MonthReportService
{
/// <summary>
/// 根据时间获取最近时间的月报
/// </summary>
/// <param name="date">日期</param>
/// <returns></returns>
public static bool GetMonthReportByDate(DateTime date, string projectId)
{
var a = Funs.DB.Manager_MonthReport.FirstOrDefault(x => x.ProjectId == projectId && x.ReportMonths.Value.Year == date.Year && x.ReportMonths.Value.Month == date.Month);
return (a != null);
}
/// <summary>
/// 根据时间获取最近时间的月报
/// </summary>
/// <param name="date">日期</param>
/// <returns></returns>
public static bool GetFreezeMonthReportByDate(DateTime date, string projectId)
{
int setDay = 6;
var sysSet = BLL.ConstValue.drpConstItemList(BLL.ConstValue.Group_MonthReportFreezeDay).FirstOrDefault();
if (sysSet != null)
{
int? sysSetDay = Funs.GetNewInt(sysSet.ConstValue);
if (sysSetDay.HasValue)
{
setDay = sysSetDay.Value;
}
}
var a = Funs.DB.Manager_MonthReport.FirstOrDefault(x => x.ProjectId == projectId && x.ReportMonths.Value.AddMonths(1).AddDays(setDay) > date);
return (a != null);
}
/// <summary>
/// 根据日期获得月报告信息集合
/// </summary>
/// <param name="date">日期</param>
/// <returns></returns>
public static List<string> GetMonthReportIdsByDate(DateTime date)
{
return (from x in Funs.DB.Manager_MonthReport where x.MonthReportDate < date select x.MonthReportId).ToList();
}
/// <summary>
/// 根据日期获得最近的一条月报告信息
/// </summary>
/// <param name="date">日期</param>
/// <returns></returns>
//public static Model.Manager_MonthReport GetLastMonthReportByDate(DateTime date, string projectId)
//{
// Model.Manager_MonthReport LastMonth = null;
// if (date.Day < 5)
// {
// LastMonth = (from x in Funs.DB.Manager_MonthReport where x.Months <= date.AddMonths(-2) && x.ProjectId == projectId orderby x.MonthReportDate descending select x).FirstOrDefault();
// }
// else
// {
// LastMonth = (from x in Funs.DB.Manager_MonthReport where x.Months < date.AddMonths(-1) && x.ProjectId == projectId orderby x.MonthReportDate descending select x).FirstOrDefault();
// }
// return LastMonth;
//}
/// <summary>
/// 根据月报告主键获取月报告信息
/// </summary>
/// <param name="monthReportId">月报告主键</param>
/// <returns>月报告信息</returns>
public static Model.Manager_MonthReport GetMonthReportByMonthReportId(string monthReportId)
{
return Funs.DB.Manager_MonthReport.FirstOrDefault(x => x.MonthReportId == monthReportId);
}
/// <summary>
/// 根据月报告主键获取月报告信息
/// </summary>
/// <param name="monthReportId">月报告主键</param>
/// <returns>月报告信息</returns>
public static bool GetMonthReportIsCloseDByMonthReportId(string monthReportId)
{
int setDay = 6;
var sysSet = BLL.ConstValue.drpConstItemList(BLL.ConstValue.Group_MonthReportFreezeDay).FirstOrDefault();
if (sysSet != null)
{
int? sysSetDay = Funs.GetNewInt(sysSet.ConstValue);
if (sysSetDay.HasValue)
{
setDay = sysSetDay.Value;
}
}
var monthReport = Funs.DB.Manager_MonthReport.FirstOrDefault(x => x.MonthReportId == monthReportId && x.ReportMonths.Value.AddMonths(1).AddDays(setDay) > System.DateTime.Now);
return (monthReport != null);
}
/// <summary>
/// 根据月份获取月报告信息集合
/// </summary>
/// <param name="monthReportId">月份</param>
/// <returns>月报告信息</returns>
public static List<Model.Manager_MonthReport> GetMonthReportsByReportMonths(DateTime? reportMonths)
{
return (from x in Funs.DB.Manager_MonthReport where x.ReportMonths == reportMonths select x).ToList();
}
/// <summary>
/// 根据月份获取月报告信息集合
/// </summary>
/// <param name="monthReportId">月份</param>
/// <returns>月报告信息</returns>
public static Model.Manager_MonthReport GetMonthReportsByReportMonthsIDProejctID(DateTime reportMonths, string monthReportId, string projectId)
{
return Funs.DB.Manager_MonthReport.FirstOrDefault(x => x.ReportMonths.Value.Year == reportMonths.Year && x.ReportMonths.Value.Month == reportMonths.Month && x.ProjectId == projectId && (x.MonthReportId != monthReportId || monthReportId == null));
}
/// <summary>
/// 根据月报告编号获取月报告信息
/// </summary>
/// <param name="monthReportCode">月报告编号</param>
/// <returns>月报告信息</returns>
public static Model.Manager_MonthReport GetMonthReportByMonthReportCode(string monthReportCode)
{
return Funs.DB.Manager_MonthReport.FirstOrDefault(x => x.MonthReportCode == monthReportCode);
}
/// <summary>
/// 增加月报告信息
/// </summary>
/// <param name="monthReport">月报告实体</param>
public static void AddMonthReport(Model.Manager_MonthReport monthReport)
{
Model.Manager_MonthReport newMonthReport = new Model.Manager_MonthReport
{
MonthReportId = monthReport.MonthReportId,
MonthReportCode = monthReport.MonthReportCode,
ProjectId = monthReport.ProjectId,
Months = monthReport.Months,
ReportMonths = monthReport.ReportMonths,
MonthReportDate = monthReport.MonthReportDate,
MonthReportStartDate = monthReport.MonthReportStartDate,
ReportMan = monthReport.ReportMan,
AllProjectData = monthReport.AllProjectData,
ThisMonthKeyPoints = monthReport.ThisMonthKeyPoints,
ThisMonthSafetyCost = monthReport.ThisMonthSafetyCost,
TotalSafetyCost = monthReport.TotalSafetyCost,
ThisMonthSafetyActivity = monthReport.ThisMonthSafetyActivity,
NextMonthWorkFocus = monthReport.NextMonthWorkFocus,
AllManhoursData = monthReport.AllManhoursData,
EquipmentQualityData = monthReport.EquipmentQualityData,
FileAttachUrl = monthReport.FileAttachUrl,
AttachUrl = monthReport.AttachUrl,
Flag = monthReport.Flag
};
Funs.DB.Manager_MonthReport.InsertOnSubmit(newMonthReport);
Funs.DB.SubmitChanges();
////增加一条编码记录
BLL.CodeRecordsService.InsertCodeRecordsByMenuIdProjectIdUnitId(BLL.Const.ProjectManagerMonthMenuId, monthReport.ProjectId, null, monthReport.MonthReportId, monthReport.MonthReportDate);
}
/// <summary>
/// 修改月报告信息
/// </summary>
/// <param name="monthReport">月报告实体</param>
public static void UpdateMonthReport(Model.Manager_MonthReport monthReport)
{
Model.Manager_MonthReport newMonthReport = Funs.DB.Manager_MonthReport.FirstOrDefault(e => e.MonthReportId == monthReport.MonthReportId);
if (newMonthReport != null)
{
newMonthReport.MonthReportCode = monthReport.MonthReportCode;
newMonthReport.Months = monthReport.Months;
newMonthReport.MonthReportDate = monthReport.MonthReportDate;
newMonthReport.MonthReportStartDate = monthReport.MonthReportStartDate;
newMonthReport.ReportMan = monthReport.ReportMan;
newMonthReport.ReportMonths = monthReport.ReportMonths;
newMonthReport.AllProjectData = monthReport.AllProjectData;
newMonthReport.ThisMonthKeyPoints = monthReport.ThisMonthKeyPoints;
newMonthReport.ThisMonthSafetyCost = monthReport.ThisMonthSafetyCost;
newMonthReport.TotalSafetyCost = monthReport.TotalSafetyCost;
newMonthReport.ThisMonthSafetyActivity = monthReport.ThisMonthSafetyActivity;
newMonthReport.NextMonthWorkFocus = monthReport.NextMonthWorkFocus;
newMonthReport.AllManhoursData = monthReport.AllManhoursData;
newMonthReport.EquipmentQualityData = monthReport.EquipmentQualityData;
newMonthReport.FileAttachUrl = monthReport.FileAttachUrl;
newMonthReport.AttachUrl = monthReport.AttachUrl;
newMonthReport.Flag = monthReport.Flag;
Funs.DB.SubmitChanges();
}
}
/// <summary>
/// 根据月报告主键删除一个月报告信息
/// </summary>
/// <param name="monthReportId">月报告主键</param>
public static void DeleteMonthReportByMonthReportId(string monthReportId)
{
Model.Manager_MonthReport monthReport = Funs.DB.Manager_MonthReport.FirstOrDefault(e => e.MonthReportId == monthReportId);
if (monthReport != null)
{
///删除编码表记录
BLL.CodeRecordsService.DeleteCodeRecordsByDataId(monthReportId);
BLL.CommonService.DeleteAttachFileById(monthReportId);//删除附件
BLL.CommonService.DeleteFlowOperateByID(monthReportId);//删除审核流程
Funs.DB.Manager_MonthReport.DeleteOnSubmit(monthReport);
Funs.DB.SubmitChanges();
}
}
}
}