using System.Collections.Generic;
using System.Linq;
namespace BLL
{
    public static class MillionsMonthlyReportService
    {
        /// 
        /// 企业安全数据统计月报
        /// 
        /// 企业安全数据统计月报Id
        /// 企业安全数据统计月报
        public static Model.Information_MillionsMonthlyReport GetMillionsMonthlyReportByMillionsMonthlyReportId(string MillionsMonthlyReportId)
        {
            return Funs.DB.Information_MillionsMonthlyReport.FirstOrDefault(e => e.MillionsMonthlyReportId == MillionsMonthlyReportId);
        }
        /// 
        /// 企业安全数据统计月报
        /// 
        /// 单位Id
        ///  年度  param >
        /// 月份
        /// 企业安全数据统计月报
        public static Model.Information_MillionsMonthlyReport GetMillionsMonthlyReportByUnitIdAndYearAndMonth(string unitId, int year, int month)
        {
            return Funs.DB.Information_MillionsMonthlyReport.FirstOrDefault(e => e.UnitId == unitId && e.Month == month && e.Year == year);
        }
        /// 
        /// 根据单位Id获取企业安全数据统计月报集合
        /// 
        /// 单位Id
        /// 企业安全数据统计月报集合
        public static List GetMillionsMonthlyReportsByUnitId(string UnitId)
        {
            return (from x in Funs.DB.View_Information_MillionsMonthlyReport where x.UnitId == UnitId orderby x.FillingDate descending select x).ToList();
        }
        /// 
        /// 增加企业安全数据统计月报
        /// 
        /// 企业安全数据统计月报实体
        public static void AddMillionsMonthlyReport(Model.Information_MillionsMonthlyReport MillionsMonthlyReport)
        {
            Model.Information_MillionsMonthlyReport newMillionsMonthlyReport = new Model.Information_MillionsMonthlyReport
            {
                MillionsMonthlyReportId = MillionsMonthlyReport.MillionsMonthlyReportId,
                Year = MillionsMonthlyReport.Year,
                Month = MillionsMonthlyReport.Month,
                UnitId = MillionsMonthlyReport.UnitId,
                FillingDate = MillionsMonthlyReport.FillingDate,
                DutyPerson = MillionsMonthlyReport.DutyPerson,
                RecordableIncidentRate = MillionsMonthlyReport.RecordableIncidentRate,
                LostTimeRate = MillionsMonthlyReport.LostTimeRate,
                LostTimeInjuryRate = MillionsMonthlyReport.LostTimeInjuryRate,
                DeathAccidentFrequency = MillionsMonthlyReport.DeathAccidentFrequency,
                AccidentMortality = MillionsMonthlyReport.AccidentMortality,
                FillingMan = MillionsMonthlyReport.FillingMan,
                UpState = MillionsMonthlyReport.UpState,
                HandleState = MillionsMonthlyReport.HandleState,
                HandleMan = MillionsMonthlyReport.HandleMan,
                InputCosts = MillionsMonthlyReport.InputCosts,
                TrainNum = MillionsMonthlyReport.TrainNum,
                GeneralHazardNum = MillionsMonthlyReport.GeneralHazardNum,
                MajorHazardNum = MillionsMonthlyReport.MajorHazardNum,
                NotProofLargeProjectNum = MillionsMonthlyReport.NotProofLargeProjectNum,
                ProofLargeProjectNum = MillionsMonthlyReport.ProofLargeProjectNum,
                FireLicenseNum = MillionsMonthlyReport.FireLicenseNum,
                LimitLicenseNum = MillionsMonthlyReport.LimitLicenseNum,
                HighLicenseNum = MillionsMonthlyReport.HighLicenseNum,
                HoistingLicenseNum = MillionsMonthlyReport.HoistingLicenseNum,
                BreakGroundLicenseNum = MillionsMonthlyReport.BreakGroundLicenseNum,
                ElectricityLicenseNum = MillionsMonthlyReport.ElectricityLicenseNum,
                RTLicenseNum = MillionsMonthlyReport.RTLicenseNum,
                KeyWorkNum = MillionsMonthlyReport.KeyWorkNum,
                KeyWorkOKNum = MillionsMonthlyReport.KeyWorkOKNum,
                KeyWorkOKRate = MillionsMonthlyReport.KeyWorkOKRate,
                NightLicenseNum = MillionsMonthlyReport.NightLicenseNum,
                CommissionerNum = MillionsMonthlyReport.CommissionerNum,
                SoleDutyNum = MillionsMonthlyReport.SoleDutyNum,
            };
            Funs.DB.Information_MillionsMonthlyReport.InsertOnSubmit(newMillionsMonthlyReport);
            Funs.DB.SubmitChanges();
        }
        /// 
        /// 修改企业安全数据统计月报
        /// 
        /// 企业安全数据统计月报实体
        public static void UpdateMillionsMonthlyReport(Model.Information_MillionsMonthlyReport MillionsMonthlyReport)
        {
            Model.Information_MillionsMonthlyReport newMillionsMonthlyReport = Funs.DB.Information_MillionsMonthlyReport.FirstOrDefault(e => e.MillionsMonthlyReportId == MillionsMonthlyReport.MillionsMonthlyReportId);
            if (newMillionsMonthlyReport != null)
            {
                newMillionsMonthlyReport.Year = MillionsMonthlyReport.Year;
                newMillionsMonthlyReport.Month = MillionsMonthlyReport.Month;
                newMillionsMonthlyReport.UnitId = MillionsMonthlyReport.UnitId;
                newMillionsMonthlyReport.FillingDate = MillionsMonthlyReport.FillingDate;
                newMillionsMonthlyReport.DutyPerson = MillionsMonthlyReport.DutyPerson;
                newMillionsMonthlyReport.RecordableIncidentRate = MillionsMonthlyReport.RecordableIncidentRate;
                newMillionsMonthlyReport.LostTimeRate = MillionsMonthlyReport.LostTimeRate;
                newMillionsMonthlyReport.LostTimeInjuryRate = MillionsMonthlyReport.LostTimeInjuryRate;
                newMillionsMonthlyReport.DeathAccidentFrequency = MillionsMonthlyReport.DeathAccidentFrequency;
                newMillionsMonthlyReport.AccidentMortality = MillionsMonthlyReport.AccidentMortality;
                newMillionsMonthlyReport.UpState = MillionsMonthlyReport.UpState;
                newMillionsMonthlyReport.HandleState = MillionsMonthlyReport.HandleState;
                newMillionsMonthlyReport.HandleMan = MillionsMonthlyReport.HandleMan;
                newMillionsMonthlyReport.InputCosts = MillionsMonthlyReport.InputCosts;
                newMillionsMonthlyReport.TrainNum = MillionsMonthlyReport.TrainNum;
                newMillionsMonthlyReport.GeneralHazardNum = MillionsMonthlyReport.GeneralHazardNum;
                newMillionsMonthlyReport.MajorHazardNum = MillionsMonthlyReport.MajorHazardNum;
                newMillionsMonthlyReport.NotProofLargeProjectNum = MillionsMonthlyReport.NotProofLargeProjectNum;
                newMillionsMonthlyReport.ProofLargeProjectNum = MillionsMonthlyReport.ProofLargeProjectNum;
                newMillionsMonthlyReport.FireLicenseNum = MillionsMonthlyReport.FireLicenseNum;
                newMillionsMonthlyReport.LimitLicenseNum = MillionsMonthlyReport.LimitLicenseNum;
                newMillionsMonthlyReport.HighLicenseNum = MillionsMonthlyReport.HighLicenseNum;
                newMillionsMonthlyReport.HoistingLicenseNum = MillionsMonthlyReport.HoistingLicenseNum;
                newMillionsMonthlyReport.BreakGroundLicenseNum = MillionsMonthlyReport.BreakGroundLicenseNum;
                newMillionsMonthlyReport.ElectricityLicenseNum = MillionsMonthlyReport.ElectricityLicenseNum;
                newMillionsMonthlyReport.RTLicenseNum = MillionsMonthlyReport.RTLicenseNum;
                newMillionsMonthlyReport.NightLicenseNum = MillionsMonthlyReport.NightLicenseNum;
                newMillionsMonthlyReport.CommissionerNum = MillionsMonthlyReport.CommissionerNum;
                newMillionsMonthlyReport.SoleDutyNum = MillionsMonthlyReport.SoleDutyNum;
                newMillionsMonthlyReport.KeyWorkNum = MillionsMonthlyReport.KeyWorkNum;
                newMillionsMonthlyReport.KeyWorkOKNum = MillionsMonthlyReport.KeyWorkOKNum;
                newMillionsMonthlyReport.KeyWorkOKRate = MillionsMonthlyReport.KeyWorkOKRate;
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据Id获取数据
        /// 
        /// 
        public static void DeleteMillionsMonthlyReportByMillionsMonthlyReportId(string MillionsMonthlyReportId)
        {
            Model.Information_MillionsMonthlyReport newMillionsMonthlyReport = Funs.DB.Information_MillionsMonthlyReport.FirstOrDefault(e => e.MillionsMonthlyReportId == MillionsMonthlyReportId);
            if (newMillionsMonthlyReport != null)
            {
                Funs.DB.Information_MillionsMonthlyReport.DeleteOnSubmit(newMillionsMonthlyReport);
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// 根据报表单位,报表时间判断是否存在
        /// 
        /// Id
        /// 
        public static Model.Information_MillionsMonthlyReport GetMillionsMonthlyReportByUnitIdDate(string unitId, int year, int Month)
        {
            return Funs.DB.Information_MillionsMonthlyReport.FirstOrDefault(e => e.UnitId == unitId && e.Year == year && e.Month == Month);
        }
    }
}