using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
    public class CheckMonthService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        private static int count
        {
            get;
            set;
        }
        /// 
        /// 定义变量
        /// 
        public static IQueryable qq = from x in db.Check_CheckMonth orderby x.Months descending select x;
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable GetListData(string projectId, int startRowIndex, int maximumRows)
        {
            IQueryable q = qq;
            if (!string.IsNullOrEmpty(projectId))
            {
                q = q.Where(e => e.ProjectId == projectId);
            }
            count = q.Count();
            if (count == 0)
            {
                return new object[] { "" };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.CheckMonthId,
                       x.ProjectId,
                       x.ThisRectifyNum,
                       x.ThisOKRectifyNum,
                       x.TotalRectifyNum,
                       x.TotalOKRectifyNum,
                       x.ThisSpotCheckNum,
                       x.TotalSpotCheckNum,
                       x.TotalCompletedRate,
                       x.OnesOKRate,
                       CompileMan = (from y in db.Sys_User where y.UserId == x.CompileMan select y.UserName).First(),
                       x.CompileDate,
                       Months = Convert.ToDateTime(x.Months).Year.ToString() + "-" + Convert.ToDateTime(x.Months).Month.ToString(),
                   };
        }
        /// 
        /// 获取列表数
        /// 
        /// 
        /// 
        /// 
        public static int GetListCount(string projectId)
        {
            return count;
        }
        /// 
        /// 添加质量月报
        /// 
        /// 
        public static void AddCheckMonth(Model.Check_CheckMonth CheckMonth)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Check_CheckMonth newCheckMonth = new Model.Check_CheckMonth();
            newCheckMonth.CheckMonthId = CheckMonth.CheckMonthId;
            newCheckMonth.ProjectId = CheckMonth.ProjectId;
            newCheckMonth.Months = CheckMonth.Months;
            newCheckMonth.ThisRectifyNum = CheckMonth.ThisRectifyNum;
            newCheckMonth.ThisOKRectifyNum = CheckMonth.ThisOKRectifyNum;
            newCheckMonth.TotalRectifyNum = CheckMonth.TotalRectifyNum;
            newCheckMonth.TotalOKRectifyNum = CheckMonth.TotalOKRectifyNum;
            newCheckMonth.ThisSpotCheckNum = CheckMonth.ThisSpotCheckNum;
            newCheckMonth.TotalSpotCheckNum = CheckMonth.TotalSpotCheckNum;
            newCheckMonth.TotalCompletedRate = CheckMonth.TotalCompletedRate;
            newCheckMonth.OnesOKRate = CheckMonth.OnesOKRate;
            newCheckMonth.CompileMan = CheckMonth.CompileMan;
            newCheckMonth.CompileDate = CheckMonth.CompileDate;
            newCheckMonth.ManagementOverview = CheckMonth.ManagementOverview;
            newCheckMonth.AccidentSituation = CheckMonth.AccidentSituation;
            newCheckMonth.ConstructionData = CheckMonth.ConstructionData;
            newCheckMonth.NextMonthPlan = CheckMonth.NextMonthPlan;
            newCheckMonth.NeedSolved = CheckMonth.NeedSolved;
            db.Check_CheckMonth.InsertOnSubmit(newCheckMonth);
            db.SubmitChanges();
        }
        /// 
        /// 修改质量月报
        /// 
        /// 
        public static void UpdateCheckMonth(Model.Check_CheckMonth CheckMonth)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Check_CheckMonth newCheckMonth = db.Check_CheckMonth.First(e => e.CheckMonthId == CheckMonth.CheckMonthId);
            newCheckMonth.ThisRectifyNum = CheckMonth.ThisRectifyNum;
            newCheckMonth.ThisOKRectifyNum = CheckMonth.ThisOKRectifyNum;
            newCheckMonth.TotalRectifyNum = CheckMonth.TotalRectifyNum;
            newCheckMonth.TotalOKRectifyNum = CheckMonth.TotalOKRectifyNum;
            newCheckMonth.ThisSpotCheckNum = CheckMonth.ThisSpotCheckNum;
            newCheckMonth.TotalSpotCheckNum = CheckMonth.TotalSpotCheckNum;
            newCheckMonth.TotalCompletedRate = CheckMonth.TotalCompletedRate;
            newCheckMonth.OnesOKRate = CheckMonth.OnesOKRate;
            newCheckMonth.ManagementOverview = CheckMonth.ManagementOverview;
            newCheckMonth.AccidentSituation = CheckMonth.AccidentSituation;
            newCheckMonth.ConstructionData = CheckMonth.ConstructionData;
            newCheckMonth.NextMonthPlan = CheckMonth.NextMonthPlan;
            newCheckMonth.NeedSolved = CheckMonth.NeedSolved;
            db.SubmitChanges();
        }
        /// 
        /// 根据质量月报Id删除一个质量月报信息
        /// 
        /// 
        public static void DeleteCheckMonth(string CheckMonthId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Check_CheckMonth CheckMonth = db.Check_CheckMonth.First(e => e.CheckMonthId == CheckMonthId);
            db.Check_CheckMonth.DeleteOnSubmit(CheckMonth);
            db.SubmitChanges();
        }
        /// 
        /// 根据质量月报Id获取一个质量月报信息
        /// 
        /// 
        public static Model.Check_CheckMonth GetCheckMonth(string CheckMonthId)
        {
            return Funs.DB.Check_CheckMonth.FirstOrDefault(e => e.CheckMonthId == CheckMonthId);
        }
        /// 
        /// 根据月份获取一个质量月报信息
        /// 
        /// 月份
        public static Model.Check_CheckMonth GetCheckMonthByMonths(DateTime months, string projectId)
        {
            return Funs.DB.Check_CheckMonth.FirstOrDefault(e => e.Months == months && e.ProjectId == projectId);
        }
    }
}