using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web.UI;
using System.Web.UI.WebControls;
using BLL;
using Newtonsoft.Json.Linq;
namespace FineUIPro.Web.CQMS.ManageReportNew
{
    public partial class MonthReportNewEdit : PageBase
    {
        #region 定义项
        /// 
        /// 主键
        /// 
        public string ReportId
        {
            get
            {
                return (string)ViewState["ReportId"];
            }
            set
            {
                ViewState["ReportId"] = value;
            }
        }
        public string AddOrUpdate
        {
            get
            {
                return (string)ViewState["AddOrUpdate"];
            }
            set
            {
                ViewState["AddOrUpdate"] = value;
            }
        }
        #endregion
        #region 列表集合
        private static List detailsGrid1 = new List();
        /// 
        /// 18.本月质量问题处理情况
        /// (1)原材料问题
        /// 
        private static List rowMaterialProblemLists = new List();
        /// 
        /// 18.本月质量问题处理情况
        /// (2)施工过程问题
        /// 
        private static List constructionProblemsLists = new List();
        /// 
        /// 19.下月质量控制重点
        /// 
        private static List nextQualityControlLists = new List();
        #endregion
        #region 加载页面
        /// 
        /// 加载页面
        /// 
        /// 
        /// 
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                this.EnableViewState = true;
                this.lblProjectName.Text = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName;
                BLL.UnitService.InitUnitNameByProjectIdUnitTypeDropDownList(this.drpUnitId, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false);
                this.ReportId = Request.Params["reportId"];
                if (!string.IsNullOrEmpty(Request.Params["view"]))
                {
                    this.Button1.Visible = false;
                    this.Button2.Visible = false;
                }
                if (!string.IsNullOrEmpty(this.ReportId))
                {
                    Model.Report_WeekAndMonthReport_New weekAndMonthReport = WeekAndMonthReportNewService.Detail(this.ReportId);
                    if (weekAndMonthReport != null)
                    {
                        if (weekAndMonthReport.SortId != null)
                        {
                            this.txtPeriod.Text = Convert.ToString(weekAndMonthReport.SortId);
                        }
                        if (weekAndMonthReport.StartDate != null)
                        {
                            this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", weekAndMonthReport.StartDate);
                        }
                        if (weekAndMonthReport.EndDate != null)
                        {
                            this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", weekAndMonthReport.EndDate);
                        }
                    }
                    AddOrUpdate = "update";
                    #region 加载本月质量目标管理情况
                    detailsGrid1.Clear();
                    detailsGrid1 = (from x in Funs.DB.Report_CqmsTarget
                                    where x.ReportId == this.ReportId
                                    orderby x.SortId
                                    select x).ToList();
                    if (detailsGrid1.Count > 0)
                    {
                        Grid1.Hidden = false;
                        Grid1.DataSource = detailsGrid1;
                        Grid1.DataBind();
                    }
                    #endregion
                    #region 加载18.本月质量问题处理情况
                    //(1)原材料问题
                    rowMaterialProblemLists.Clear();
                    rowMaterialProblemLists = (from x in Funs.DB.Report_RowMaterialProblem
                                               where x.ReportId == this.ReportId
                                               select x).ToList();
                    if (rowMaterialProblemLists.Count > 0)
                    {
                        gvRowMaterialProblem.Hidden = false;
                        gvRowMaterialProblem.DataSource = rowMaterialProblemLists;
                        gvRowMaterialProblem.DataBind();
                    }
                    //(2)施工过程问题
                    constructionProblemsLists.Clear();
                    constructionProblemsLists = (from x in Funs.DB.Report_ConstructionProblems
                                                 where x.ReportId == this.ReportId
                                                 select x).ToList();
                    if (constructionProblemsLists.Count > 0)
                    {
                        gvConstructionProblems.Hidden = false;
                        gvConstructionProblems.DataSource = constructionProblemsLists;
                        gvConstructionProblems.DataBind();
                    }
                    #endregion
                    #region 加载19.下月质量控制重点
                    nextQualityControlLists.Clear();
                    nextQualityControlLists = (from x in Funs.DB.Report_NextQualityControl
                                               where x.ReportId == this.ReportId
                                               select x).ToList();
                    if (nextQualityControlLists.Count > 0)
                    {
                        gvNextQualityControl.Hidden = false;
                        gvNextQualityControl.DataSource = nextQualityControlLists;
                        gvNextQualityControl.DataBind();
                    }
                    #endregion
                    #region 加载文本框内容
                    var txtReportList = Funs.DB.Report_TextBoxContent.Where(x => x.ReportId == ReportId).ToList();
                    txtAre0.Text = txtReportList.FirstOrDefault(x => x.ContentType == "0").ContentText;
                    txtAre1.Text = txtReportList.FirstOrDefault(x => x.ContentType == "1").ContentText;
                    txtAre2.Text = txtReportList.FirstOrDefault(x => x.ContentType == "2").ContentText;
                    txtAre20.Text = txtReportList.FirstOrDefault(x => x.ContentType == "20").ContentText;
                    txtAre21.Text = txtReportList.FirstOrDefault(x => x.ContentType == "21").ContentText;
                    txtAre22.Text = txtReportList.FirstOrDefault(x => x.ContentType == "22").ContentText;
                    #endregion
                    //加载所有grid
                    lodAllGrid("1");
                }
                else
                {
                    this.txtStartDate.Text = string.IsNullOrEmpty(Request.Params["startdate"]) ? string.Format("{0:yyyy-MM-dd}", DateTime.Now) : Request.Params["startdate"];
                    this.txtEndDate.Text = string.IsNullOrEmpty(Request.Params["enddate"]) ? string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(this.txtStartDate.Text).AddMonths(1).AddDays(-1)) : Request.Params["enddate"];
                    //给个新的主键
                    ReportId = Guid.NewGuid().ToString();
                    AddOrUpdate = "add";
                    //加载所有grid
                    lodAllGrid("0");
                }
                hidReportId.Value = ReportId;
            }
        }
        #endregion
        #region 时间选择事件
        /// 
        /// 开始时间选择事件
        /// 
        /// 
        /// 
        protected void txtStartDate_TextChanged(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(this.txtStartDate.Text.Trim()))
            {
                string url = Request.Url.ToString();
                if (url.Contains("?"))
                {
                    url = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('?'));
                }
                Response.Redirect(url + "?startdate=" + txtStartDate.Text + "&enddate=" + txtEndDate.Text);
            }
        }
        #endregion
        #region 本月质量目标管理情况 Grid1方法
        protected void btnAddGrid1_Click(object sender, EventArgs e)
        {
            Grid1.Hidden = false;
            JArray teamGroupData = Grid1.GetMergedData();
            List list = new List();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                values.Add("Id", teamGroupRow.Value("id"));
                list.Add(values);
            }
            JObject defaultObj = new JObject
                {   { "Id",Guid.NewGuid() },
                    { "ReportId", ReportId },
                    { "ProStage", "" },
                    { "ProDescribe",""},
                    { "TargetValue", "" },
                    { "MonthPer","" },
                    { "Remarks", "" },
                    { "SortId","" },
                    { "Delete1", String.Format(" ", GetDeleteScriptGrid1(), IconHelper.GetResolvedIconUrl(Icon.Delete)) }
                };
            list.Add(defaultObj);
            Grid1.DataSource = list;
            Grid1.DataBind();
        }
        protected void Grid1_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = Grid1.FindColumn("Delete1") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteScriptGrid1();
        }
        /// 
        /// 删除提示
        /// 
        /// 
        private string GetDeleteScriptGrid1()
        {
            return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty);
        }
        #endregion
        #region 保存
        /// 
        /// 保存按钮
        /// 
        /// 
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Model.Report_WeekAndMonthReport_New report = new Model.Report_WeekAndMonthReport_New();
            report.Id = ReportId;
            report.ProjectId = this.CurrUser.LoginProjectId;
            if (!string.IsNullOrEmpty(this.txtPeriod.Text.Trim()))
            {
                try
                {
                    report.SortId = this.txtPeriod.Text.Trim();
                }
                catch (Exception)
                {
                    ScriptManager.RegisterStartupScript(this, typeof(string), "_alert", "alert('周期输入格式不正确,请重新输入!')", true);
                    return;
                }
            }
            if (!string.IsNullOrEmpty(this.txtStartDate.Text))
            {
                report.StartDate = Convert.ToDateTime(this.txtStartDate.Text);
            }
            if (!string.IsNullOrEmpty(this.txtEndDate.Text))
            {
                report.EndDate = Convert.ToDateTime(this.txtEndDate.Text);
            }
            report.CreateDate = DateTime.Now;
            report.CreateMan = CurrUser.UserId;
            #region 删除所有子表
            //本月质量目标管理情况 
            CqmsTargetService.Delete(ReportId);
            //所有文本框表
            TextBoxContentService.Delete(ReportId);
            // 15.质量巡检情况 16.质量专项检查情况 17.质量文件上报情况
            //BLL.Report_CQMS_MonthReportItemService.DeleteReportItemByReportId(ReportId);
            //18.本月质量问题处理情况(1)原材料问题
            BLL.RowMaterialProblemService.DeleteRowMaterialProbleByReportId(ReportId);
            //18.本月质量问题处理情况(2)施工过程问题
            BLL.ConstructionProblemsService.DeleteConstructionProblemsByReportId(ReportId);
            //19.下月质量控制重点
            BLL.NextQualityControlService.DeleteNextQualityControlByReportId(ReportId);
            #endregion
            #region 保存所有子表
            //保存本月质量目标管理情况
            saveTarget();
            //保存文本框
            saveTxtContent();
            //保存9.计量器具报验管理情况
            saveMeasuringInspection();
            //保存10.现场质量共检数据
            saveTjInspection();
            saveSbInspection();
            saveGDInspection();
            saveDQInspection();
            saveYBInspection();
            saveFFInspection();
            saveXFInspection();
            saveInspectionDataInspection();
            //保存11.压力管道监检情况
            savePressureInspection();
            //保存12.管道试压包管理情况
            savePipingInspection();
            //保存13.特种设备监检情况
            saveSpecialInspection();
            //保存14.NCR管理情况
            saveNcrManagementInspection();
            //保存15.质量巡检情况
            saveQualityInspection();
            //保存16.质量专项检查情况
            saveSpecialCheck();
            //保存17.质量文件上报情况
            saveFileReport();
            //保存18.(1)原材料问题
            saveRowMaterialProblem();
            //保存18.(2)施工过程问题
            saveConstructionProblems();
            //保存19.下月质量控制重点
            saveNextQualityControl();
            #endregion
            if (AddOrUpdate == "add")
            {
                WeekAndMonthReportNewService.Insert(report);
            }
            else
            {
                WeekAndMonthReportNewService.Update(report);
            }
            ShowNotify("编辑成功!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
        #region 保存本月质量目标管理情况 
        void saveTarget()
        {
            List detailLists = new List();
            JArray teamGroupData = Grid1.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CqmsTarget newDetail = new Model.Report_CqmsTarget
                {
                    //Id = values.Value("Id"),
                    ReportId = ReportId,
                    ProStage = values.Value("ProStage"),
                    ProDescribe = values.Value("ProDescribe"),
                    TargetValue = values.Value("TargetValue"),
                    MonthPer = values.Value("MonthPer"),
                    Remarks = values.Value("Remarks"),
                    SortId = rowIndex + 1
                };
                if (Grid1.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = Grid1.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CqmsTarget.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        /// 
        /// 保存文本框内容
        /// 
        void saveTxtContent()
        {
            var txtContentList = new List();
            #region 给实体赋值
            var model0 = new Model.Report_TextBoxContent();
            model0.Id = Guid.NewGuid().ToString();
            model0.ReportId = ReportId;
            model0.ContentType = "0";
            model0.ContentText = txtAre0.Text;
            txtContentList.Add(model0);
            var model1 = new Model.Report_TextBoxContent();
            model1.Id = Guid.NewGuid().ToString();
            model1.ReportId = ReportId;
            model1.ContentType = "1";
            model1.ContentText = txtAre1.Text;
            txtContentList.Add(model1);
            var model2 = new Model.Report_TextBoxContent();
            model2.Id = Guid.NewGuid().ToString();
            model2.ReportId = ReportId;
            model2.ContentType = "2";
            model2.ContentText = txtAre2.Text;
            txtContentList.Add(model2);
            var model20 = new Model.Report_TextBoxContent();
            model20.Id = Guid.NewGuid().ToString();
            model20.ReportId = ReportId;
            model20.ContentType = "20";
            model20.ContentText = txtAre20.Text;
            txtContentList.Add(model20);
            var model21 = new Model.Report_TextBoxContent();
            model21.Id = Guid.NewGuid().ToString();
            model21.ReportId = ReportId;
            model21.ContentType = "21";
            model21.ContentText = txtAre21.Text;
            txtContentList.Add(model21);
            var model22 = new Model.Report_TextBoxContent();
            model22.Id = Guid.NewGuid().ToString();
            model22.ReportId = ReportId;
            model22.ContentType = "22";
            model22.ContentText = txtAre22.Text;
            txtContentList.Add(model22);
            #endregion
            Funs.DB.Report_TextBoxContent.InsertAllOnSubmit(txtContentList);
            Funs.DB.SubmitChanges();
        }
        #endregion
        void lodAllGrid(string objType)
        {
            //加载9.计量器具报验管理情况
            loadMeasuringInspection(objType);
            //加载10.现场质量共检数据
            loadInspectionDataInspection(objType);
            //加载11.压力管道监检情况
            loadPressureInspection(objType);
            //加载12.管道试压包管理情况
            loadPipingInspection(objType);
            //加载13.特种设备监检情况
            loadSpecialInspection(objType);
            ////加载14.NCR管理情况
            loadNcrManagementInspection(objType);
            //加载15.质量巡检情况
            loadQualityInspection(objType);
            //加载16.质量专项检查情况
            loadSpecialCheck(objType);
            //加载17.质量文件上报情况
            loadFileReport(objType);
        }
        #region 9.计量器具报验管理情况 gvMeasuringInspection方法
        /// 
        /// 计量器具报验管理情况
        /// 
        void loadMeasuringInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_InspectionMachine
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId && c.InspectionType.Equals("计量")
                            select new
                            {
                                c.InspectionDate,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName
                            };
                var AllList = query.ToList();
                var monethCount = query
                    .Where(x => (x.InspectionDate >= Convert.ToDateTime(startDate) && x.InspectionDate <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.MonthsCount = monethCount.Count();
                model.ProjectCount = AllList.Count();
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "9");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity1Sum += monethCount.Count();
                Quantity2Sum += AllList.Count();
                i++;
            }
            gvMeasuringInspection.DataSource = list;
            gvMeasuringInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvMeasuringInspection.SummaryData = summary;
        }
        #endregion
        #region 10.现场质量共检数据 gvInspectionDataInspection方法 
        /// 
        /// 现场质量共检数据
        /// 
        void loadInspectionDataInspection(string objType)
        {
            CheckLotBindStatisc("CV");//检验批统计:土建
            CheckLotBindStatisc("EQ");//检验批统计:设备
            CheckLotBindStatisc("PP");//检验批统计:管道
            CheckLotBindStatisc("EL");//检验批统计:电气
            CheckLotBindStatisc("IN");//检验批统计:仪表
            CheckLotBindStatisc("FF");//检验批统计:反腐
            CheckLotBindStatisc("XF");//检验批统计:消防
            #region 现场质量共检数据合计
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.View_CQMS_InspectionManagementDetail
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.CheckDate,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName
                            };
                var AllList = query.ToList();
                var monethCount = query
                    .Where(x => (x.CheckDate >= Convert.ToDateTime(startDate) && x.CheckDate <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.MonthsCount = monethCount.Count();
                model.ProjectCount = AllList.Count();
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "10");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity1Sum += monethCount.Count();
                Quantity2Sum += AllList.Count();
                i++;
            }
            gvInspectionDataInspection.DataSource = list;
            gvInspectionDataInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvInspectionDataInspection.SummaryData = summary;
            #endregion
        }
        public void CheckLotBindStatisc(string cNProfessionalCode)
        {
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            DateTime projectStartDate = Convert.ToDateTime("2015-01-01");
            List StatisticsList = new List();
            Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
            int CheckNum = 0;
            int TotalCheckNum = 0;
            int OKNum = 0;
            int TotalOKNum = 0;
            string OneOKRate = string.Empty;
            string TotalOneOKRate = string.Empty;
            if (project != null)
            {
                if (project.StartDate != null)
                {
                    projectStartDate = Convert.ToDateTime(project.StartDate);
                }
            }
            //int i = 1;
            string cNProfessionalId = (from x in Funs.DB.Base_CNProfessional where x.CNProfessionalCode == cNProfessionalCode select x.CNProfessionalId).FirstOrDefault();
            List workNames = new List();
            //专业下所有集合
            List totalManagementList = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, projectStartDate, endDate, false);
            //专业下当期集合
            List managementList = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, startDate, endDate, false);
            workNames = totalManagementList.Select(x => x.UnitWorkId).DefaultIfEmpty().Distinct()?.ToList();
            foreach (string item in workNames)
            {
                Model.WBS_UnitWork ins = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(item);
                if (ins != null)
                {
                    Model.CheckStatisc checkStatisc = new Model.CheckStatisc();
                    checkStatisc.Id = Guid.NewGuid().ToString();
                    checkStatisc.WorkName = ins.UnitWorkName;
                    checkStatisc.CheckNum = managementList.Count(x => x.UnitWorkId == item);
                    checkStatisc.TotalCheckNum = totalManagementList.Count(x => x.UnitWorkId == item);
                    checkStatisc.OKNum = managementList.Count(x => x.UnitWorkId == item && x.IsOnceQualified == true);
                    checkStatisc.TotalOKNum = totalManagementList.Count(x => x.UnitWorkId == item && x.IsOnceQualified == true);
                    StatisticsList.Add(checkStatisc);
                }
            }
            foreach (var item in StatisticsList)
            {
                if (item.CheckNum != 0)//被除数不能为零
                {
                    item.OneOKRate = Math.Round((double)item.OKNum / (double)item.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
                }
                else
                {
                    item.OneOKRate = "0%";
                }
                if (item.TotalCheckNum != 0)//被除数不能为零
                {
                    item.TotalOneOKRate = Math.Round((double)item.TotalOKNum / (double)item.TotalCheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
                }
                else
                {
                    item.TotalOneOKRate = "0%";
                }
                CheckNum += item.CheckNum;
                TotalCheckNum += item.TotalCheckNum;
                OKNum += item.OKNum;
                TotalOKNum += item.TotalOKNum;
            }
            if (CheckNum != 0)//被除数不能为零
            {
                OneOKRate = Math.Round((double)OKNum / (double)CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
            }
            else
            {
                OneOKRate = "0%";
            }
            if (TotalCheckNum != 0)//被除数不能为零
            {
                TotalOneOKRate = Math.Round((double)TotalOKNum / (double)TotalCheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
            }
            else
            {
                TotalOneOKRate = "0%";
            }
            //检验批统计:土建
            if (cNProfessionalCode == "CV")
            {
                this.gvTj.DataSource = StatisticsList;
                this.gvTj.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                gvTj.SummaryData = summary;
            }
            //检验批统计:设备
            if (cNProfessionalCode == "EQ")
            {
                this.GvSb.DataSource = StatisticsList;
                this.GvSb.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvSb.SummaryData = summary;
            }
            //检验批统计:管道
            if (cNProfessionalCode == "PP")
            {
                this.GvGD.DataSource = StatisticsList;
                this.GvGD.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvGD.SummaryData = summary;
            }
            //检验批统计:电气
            if (cNProfessionalCode == "EL")
            {
                this.GvDq.DataSource = StatisticsList;
                this.GvDq.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvDq.SummaryData = summary;
            }
            //检验批统计:仪表
            if (cNProfessionalCode == "IN")
            {
                this.GvYb.DataSource = StatisticsList;
                this.GvYb.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvYb.SummaryData = summary;
            }
            //检验批统计:反腐
            if (cNProfessionalCode == "FF")
            {
                this.GvFf.DataSource = StatisticsList;
                this.GvFf.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvFf.SummaryData = summary;
            }
            //检验批统计:消防
            if (cNProfessionalCode == "XF")
            {
                this.GvXf.DataSource = StatisticsList;
                this.GvXf.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数  
                GvXf.SummaryData = summary;
            }
        }
        #endregion
        #region 11.压力管道监检情况 gvPressureInspection方法
        /// 
        /// 压力管道监检情况
        /// 
        void loadPressureInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity0Sum = 0;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_PressurePipe
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.Projctid == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.ReportTime,
                                c.Projctid,
                                u.UnitId,
                                u.UnitName,
                                c.ActualNumber,
                                c.PressurePipeNumber
                            };
                var AllList = query.ToList();
                var monethCount = query
                   .Where(x => (x.ReportTime >= Convert.ToDateTime(startDate) && x.ReportTime <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.MonthsCount = Convert.ToInt32(monethCount.Sum(o => o.PressurePipeNumber));
                model.ProjectCount = Convert.ToInt32(AllList.Sum(o => o.PressurePipeNumber));
                model.TotalNoBackCount = Convert.ToInt32(monethCount.Sum(o => o.ActualNumber));//总数
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "11");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity0Sum += Convert.ToInt32(AllList.Sum(o => o.ActualNumber));
                Quantity1Sum += Convert.ToInt32(monethCount.Sum(o => o.PressurePipeNumber));
                Quantity2Sum += Convert.ToInt32(AllList.Sum(o => o.PressurePipeNumber));
                i++;
            }
            gvPressureInspection.DataSource = list;
            gvPressureInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("TotalNoBackCount", Quantity0Sum.ToString());//总数
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvPressureInspection.SummaryData = summary;
        }
        #endregion
        #region 12.管道试压包管理情况 gvPipingInspection方法
        /// 
        /// 管道试压包管理情况
        /// 
        void loadPipingInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity0Sum = 0;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_PressurePipe
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.Projctid == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.ReportTime,
                                c.Projctid,
                                u.UnitId,
                                u.UnitName,
                                c.PackageNumber,
                                c.IssuedReportNumber
                            };
                var AllList = query.ToList();
                var monethCount = query
                   .Where(x => (x.ReportTime >= Convert.ToDateTime(startDate) && x.ReportTime <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.TotalNoBackCount = Convert.ToInt32(monethCount.Sum(o => o.PackageNumber));
                model.MonthsCount = Convert.ToInt32(monethCount.Sum(o => o.IssuedReportNumber));
                model.ProjectCount = Convert.ToInt32(AllList.Sum(o => o.IssuedReportNumber));
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "11");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity0Sum += Convert.ToInt32(monethCount.Sum(o => o.PackageNumber));
                Quantity1Sum += Convert.ToInt32(monethCount.Sum(o => o.IssuedReportNumber));
                Quantity2Sum += Convert.ToInt32(AllList.Sum(o => o.IssuedReportNumber));
                i++;
            }
            gvPipingInspection.DataSource = list;
            gvPipingInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("TotalNoBackCount", Quantity0Sum.ToString());
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvPipingInspection.SummaryData = summary;
        }
        #endregion
        #region 13.特种设备监检情况 gvSpecialInspection方法
        /// 
        /// 特种设备监检情况
        /// 
        void loadSpecialInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity0Sum = 0;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_SpecialEquipment
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.ReportTime,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName,
                                c.SunNumber,
                                c.MonitoringReportNumber
                            };
                var AllList = query.ToList();
                var monethCount = query
                .Where(x => (x.ReportTime >= Convert.ToDateTime(startDate) && x.ReportTime <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.TotalNoBackCount = Convert.ToInt32(monethCount.Sum(o => o.SunNumber));
                model.MonthsCount = Convert.ToInt32(monethCount.Sum(o => o.MonitoringReportNumber));
                model.ProjectCount = Convert.ToInt32(AllList.Sum(o => o.MonitoringReportNumber));
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "13");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity0Sum += Convert.ToInt32(monethCount.Sum(o => o.SunNumber));
                Quantity1Sum += Convert.ToInt32(monethCount.Sum(o => o.MonitoringReportNumber));
                Quantity2Sum += Convert.ToInt32(AllList.Sum(o => o.MonitoringReportNumber));
                i++;
            }
            gvSpecialInspection.DataSource = list;
            gvSpecialInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("TotalNoBackCount", Quantity0Sum.ToString());
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvSpecialInspection.SummaryData = summary;
        }
        #endregion
        #region 14.NCR管理情况 gvNcrManagementInspection方法
        /// 
        /// NCR管理情况
        /// 
        void loadNcrManagementInspection(string objType)
        {
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            List StatisticsList = new List();
            int i = 1;
            int CurrentPeriodOkNumSum = 0;
            int OKNumSum = 0;
            int CheckNumSum = 0;
            string OKRateSum = string.Empty;
            var project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
            DateTime projectStartDate = Convert.ToDateTime("2000-01-01");
            if (project != null && project.StartDate != null)
            {
                projectStartDate = project.StartDate.Value;
            }
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitType == BLL.Const.ProjectUnitType_2
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            var db = Funs.DB;
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_NCRManagement
                            join u in db.Base_Unit on c.SendUnit equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.ReceiveUnit == item.UnitId
                            select new
                            {
                                c.NCRManagementId,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName,
                                c.IssuedDate,
                                c.Status,
                                c.ImplementationFrontState,
                            };
                var AllList = query.ToList();
                var unitNCRStatic = query
                    .Where(x => (x.IssuedDate >= Convert.ToDateTime(startDate) && x.IssuedDate <= Convert.ToDateTime(endDate)));
                Model.NCRReportStatisc NCRStatisc = new Model.NCRReportStatisc();
                NCRStatisc.Id = Guid.NewGuid().ToString();
                NCRStatisc.WorkName = item.UnitName;
                //NCRStatisc.CurrentPeriodOkNum = unitNCRStatic.Count(x => x.Status == "3");
                //NCRStatisc.OKNum = AllList.Count(x => x.Status == "3");
                //NCRStatisc.CurrentPeriodOkNum = unitNCRStatic.Where(x => x.ImplementationFrontState.Trim().Equals("已闭合")).Count();
                //NCRStatisc.OKNum = AllList.Where(x => x.ImplementationFrontState.Trim().Equals("已闭合")).Count();
                NCRStatisc.CurrentPeriodOkNum = unitNCRStatic.Where(x => x.ImplementationFrontState == "已闭合").Count();
                NCRStatisc.OKNum = AllList.Where(x => x.ImplementationFrontState == "已闭合").Count();
                NCRStatisc.CheckNum = AllList.Count();
                if (NCRStatisc.CheckNum != 0)//被除数不能为零
                {
                    NCRStatisc.OKRate = Math.Round((double)NCRStatisc.OKNum / (double)NCRStatisc.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
                }
                else
                {
                    NCRStatisc.OKRate = "0%";
                }
                StatisticsList.Add(NCRStatisc);
                CurrentPeriodOkNumSum += NCRStatisc.CurrentPeriodOkNum;
                OKNumSum += NCRStatisc.OKNum;
                CheckNumSum += NCRStatisc.CheckNum;
                i++;
            }
            if (CheckNumSum != 0)//被除数不能为零
            {
                OKRateSum = Math.Round((double)OKNumSum / (double)CheckNumSum * 100, 2) + "%";//保留两位小数、后四舍五入
            }
            else
            {
                OKRateSum = "0%";
            }
            this.gvNcrManagementInspection.DataSource = StatisticsList;
            this.gvNcrManagementInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("WorkName", "合计");
            summary.Add("CurrentPeriodOkNum", CurrentPeriodOkNumSum.ToString());
            summary.Add("OKNum", OKNumSum.ToString());
            summary.Add("CheckNum", CheckNumSum.ToString());
            summary.Add("OKRate", OKRateSum.ToString());
            gvNcrManagementInspection.SummaryData = summary;
        }
        #endregion
        #region 15.质量巡检情况 gvQualityInspection方法
        /// 
        /// 加载质量巡检情况
        /// 
        void loadQualityInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Check_CheckControl
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.CheckDate,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName
                            };
                var AllList = query.ToList();
                var monethCount = query
                    .Where(x => (x.CheckDate >= Convert.ToDateTime(startDate) && x.CheckDate <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.MonthsCount = monethCount.Count();
                model.ProjectCount = AllList.Count();
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "1");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity1Sum += monethCount.Count();
                Quantity2Sum += AllList.Count();
                i++;
            }
            gvQualityInspection.DataSource = list;
            gvQualityInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvQualityInspection.SummaryData = summary;
        }
        #endregion
        #region 16.质量专项检查情况 gvSpecialCheck方法
        /// 
        /// 加载质量专项检查情况
        /// 
        void loadSpecialCheck(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载检查类别
            var lists = BLL.JointCheckService.GetCheckTypeList();
            foreach (var item in lists)
            {
                var query = from c in db.Check_JointCheck
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.CheckType == item.Key.ToString()
                            select new
                            {
                                c.CheckDate,
                                c.ProjectId,
                                c.CheckType
                            };
                var AllList = query.ToList();
                var monethCount = query
                    .Where(x => (x.CheckDate >= Convert.ToDateTime(startDate) && x.CheckDate <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.Value;
                model.MonthsCount = monethCount.Count();
                model.ProjectCount = AllList.Count();
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.Value && x.ReType == "2");
                    if (NewModel != null)
                    {
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity1Sum += monethCount.Count();
                Quantity2Sum += AllList.Count();
                i++;
            }
            gvSpecialCheck.DataSource = list;
            gvSpecialCheck.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvSpecialCheck.SummaryData = summary;
        }
        #endregion
        #region 17.质量文件上报情况 gvFileReport方法
        /// 
        /// 加载质量文件上报情况
        /// 
        void loadFileReport(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            int Quantity3Sum = 0;
            int Quantity4Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                //var query = from c in db.Check_CheckControl
                //            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                //            from u in unitJoin.DefaultIfEmpty()
                //            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                //            select new
                //            {
                //                c.CheckDate,
                //                c.ProjectId,
                //                u.UnitId,
                //                u.UnitName
                //            };
                //var AllList = query.ToList();//项目数
                //本月数
                //var monethCount = query.Where(x => (x.CheckDate >= Convert.ToDateTime(startDate) && x.CheckDate <= Convert.ToDateTime(endDate)));
                //var yzCount = 0;//本月业主/ 监理返回数量
                //var NoBackCount = 0;//累计未返回数量
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                //model.MonthsCount = monethCount.Count();
                //model.ProjectCount = AllList.Count();
                //model.MonthsBackCount =;
                //model.TotalNoBackCount =;
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "3");
                    if (NewModel != null)
                    {
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                //Quantity1Sum += monethCount.Count();
                //Quantity2Sum += AllList.Count();
                //Quantity3Sum += yzCount.Count();
                //Quantity4Sum += NoBackCount.Count();
                i++;
            }
            gvFileReport.DataSource = list;
            gvFileReport.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            summary.Add("MonthsBackCount", Quantity3Sum.ToString());
            summary.Add("TotalNoBackCount", Quantity4Sum.ToString());
            gvFileReport.SummaryData = summary;
        }
        #endregion
        #region 18.本月质量问题处理情况
        #region gvRowMaterialProblem 事件
        /// 
        /// 增加原材料问题
        /// 
        /// 
        /// 
        protected void btnRowMaterialProblem_Click(object sender, EventArgs e)
        {
            gvRowMaterialProblem.Hidden = false;
            JArray teamGroupData = gvRowMaterialProblem.GetMergedData();
            List list = new List();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                values.Add("Id", teamGroupRow.Value("id"));
                list.Add(values);
            }
            JObject defaultObj = new JObject
                {   { "RowMaterialProblemId",Guid.NewGuid().ToString() },
                    { "ReportId", ReportId },
                    { "UnitId", "" },
                    { "ProblemDesrioption",""},
                    { "TreatmentMeasures", "" },
                    { "ProcessingResults","" },
                    { "Remark", "" },
                    { "delRowMaterialProblem", String.Format("
", GetDeleteScriptGrid1(), IconHelper.GetResolvedIconUrl(Icon.Delete)) }
                };
            list.Add(defaultObj);
            Grid1.DataSource = list;
            Grid1.DataBind();
        }
        protected void Grid1_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = Grid1.FindColumn("Delete1") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteScriptGrid1();
        }
        /// 
        /// 删除提示
        /// 
        /// 
        private string GetDeleteScriptGrid1()
        {
            return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, Grid1.GetDeleteSelectedRowsReference(), String.Empty);
        }
        #endregion
        #region 保存
        /// 
        /// 保存按钮
        /// 
        /// 
        /// 
        protected void btnSave_Click(object sender, EventArgs e)
        {
            Model.Report_WeekAndMonthReport_New report = new Model.Report_WeekAndMonthReport_New();
            report.Id = ReportId;
            report.ProjectId = this.CurrUser.LoginProjectId;
            if (!string.IsNullOrEmpty(this.txtPeriod.Text.Trim()))
            {
                try
                {
                    report.SortId = this.txtPeriod.Text.Trim();
                }
                catch (Exception)
                {
                    ScriptManager.RegisterStartupScript(this, typeof(string), "_alert", "alert('周期输入格式不正确,请重新输入!')", true);
                    return;
                }
            }
            if (!string.IsNullOrEmpty(this.txtStartDate.Text))
            {
                report.StartDate = Convert.ToDateTime(this.txtStartDate.Text);
            }
            if (!string.IsNullOrEmpty(this.txtEndDate.Text))
            {
                report.EndDate = Convert.ToDateTime(this.txtEndDate.Text);
            }
            report.CreateDate = DateTime.Now;
            report.CreateMan = CurrUser.UserId;
            #region 删除所有子表
            //本月质量目标管理情况 
            CqmsTargetService.Delete(ReportId);
            //所有文本框表
            TextBoxContentService.Delete(ReportId);
            // 15.质量巡检情况 16.质量专项检查情况 17.质量文件上报情况
            //BLL.Report_CQMS_MonthReportItemService.DeleteReportItemByReportId(ReportId);
            //18.本月质量问题处理情况(1)原材料问题
            BLL.RowMaterialProblemService.DeleteRowMaterialProbleByReportId(ReportId);
            //18.本月质量问题处理情况(2)施工过程问题
            BLL.ConstructionProblemsService.DeleteConstructionProblemsByReportId(ReportId);
            //19.下月质量控制重点
            BLL.NextQualityControlService.DeleteNextQualityControlByReportId(ReportId);
            #endregion
            #region 保存所有子表
            //保存本月质量目标管理情况
            saveTarget();
            //保存文本框
            saveTxtContent();
            //保存9.计量器具报验管理情况
            saveMeasuringInspection();
            //保存10.现场质量共检数据
            saveTjInspection();
            saveSbInspection();
            saveGDInspection();
            saveDQInspection();
            saveYBInspection();
            saveFFInspection();
            saveXFInspection();
            saveInspectionDataInspection();
            //保存11.压力管道监检情况
            savePressureInspection();
            //保存12.管道试压包管理情况
            savePipingInspection();
            //保存13.特种设备监检情况
            saveSpecialInspection();
            //保存14.NCR管理情况
            saveNcrManagementInspection();
            //保存15.质量巡检情况
            saveQualityInspection();
            //保存16.质量专项检查情况
            saveSpecialCheck();
            //保存17.质量文件上报情况
            saveFileReport();
            //保存18.(1)原材料问题
            saveRowMaterialProblem();
            //保存18.(2)施工过程问题
            saveConstructionProblems();
            //保存19.下月质量控制重点
            saveNextQualityControl();
            #endregion
            if (AddOrUpdate == "add")
            {
                WeekAndMonthReportNewService.Insert(report);
            }
            else
            {
                WeekAndMonthReportNewService.Update(report);
            }
            ShowNotify("编辑成功!", MessageBoxIcon.Success);
            PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
        }
        #region 保存本月质量目标管理情况 
        void saveTarget()
        {
            List detailLists = new List();
            JArray teamGroupData = Grid1.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CqmsTarget newDetail = new Model.Report_CqmsTarget
                {
                    //Id = values.Value("Id"),
                    ReportId = ReportId,
                    ProStage = values.Value("ProStage"),
                    ProDescribe = values.Value("ProDescribe"),
                    TargetValue = values.Value("TargetValue"),
                    MonthPer = values.Value("MonthPer"),
                    Remarks = values.Value("Remarks"),
                    SortId = rowIndex + 1
                };
                if (Grid1.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = Grid1.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CqmsTarget.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        /// 
        /// 保存文本框内容
        /// 
        void saveTxtContent()
        {
            var txtContentList = new List();
            #region 给实体赋值
            var model0 = new Model.Report_TextBoxContent();
            model0.Id = Guid.NewGuid().ToString();
            model0.ReportId = ReportId;
            model0.ContentType = "0";
            model0.ContentText = txtAre0.Text;
            txtContentList.Add(model0);
            var model1 = new Model.Report_TextBoxContent();
            model1.Id = Guid.NewGuid().ToString();
            model1.ReportId = ReportId;
            model1.ContentType = "1";
            model1.ContentText = txtAre1.Text;
            txtContentList.Add(model1);
            var model2 = new Model.Report_TextBoxContent();
            model2.Id = Guid.NewGuid().ToString();
            model2.ReportId = ReportId;
            model2.ContentType = "2";
            model2.ContentText = txtAre2.Text;
            txtContentList.Add(model2);
            var model20 = new Model.Report_TextBoxContent();
            model20.Id = Guid.NewGuid().ToString();
            model20.ReportId = ReportId;
            model20.ContentType = "20";
            model20.ContentText = txtAre20.Text;
            txtContentList.Add(model20);
            var model21 = new Model.Report_TextBoxContent();
            model21.Id = Guid.NewGuid().ToString();
            model21.ReportId = ReportId;
            model21.ContentType = "21";
            model21.ContentText = txtAre21.Text;
            txtContentList.Add(model21);
            var model22 = new Model.Report_TextBoxContent();
            model22.Id = Guid.NewGuid().ToString();
            model22.ReportId = ReportId;
            model22.ContentType = "22";
            model22.ContentText = txtAre22.Text;
            txtContentList.Add(model22);
            #endregion
            Funs.DB.Report_TextBoxContent.InsertAllOnSubmit(txtContentList);
            Funs.DB.SubmitChanges();
        }
        #endregion
        void lodAllGrid(string objType)
        {
            //加载9.计量器具报验管理情况
            loadMeasuringInspection(objType);
            //加载10.现场质量共检数据
            loadInspectionDataInspection(objType);
            //加载11.压力管道监检情况
            loadPressureInspection(objType);
            //加载12.管道试压包管理情况
            loadPipingInspection(objType);
            //加载13.特种设备监检情况
            loadSpecialInspection(objType);
            ////加载14.NCR管理情况
            loadNcrManagementInspection(objType);
            //加载15.质量巡检情况
            loadQualityInspection(objType);
            //加载16.质量专项检查情况
            loadSpecialCheck(objType);
            //加载17.质量文件上报情况
            loadFileReport(objType);
        }
        #region 9.计量器具报验管理情况 gvMeasuringInspection方法
        /// 
        /// 计量器具报验管理情况
        /// 
        void loadMeasuringInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_InspectionMachine
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId && c.InspectionType.Equals("计量")
                            select new
                            {
                                c.InspectionDate,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName
                            };
                var AllList = query.ToList();
                var monethCount = query
                    .Where(x => (x.InspectionDate >= Convert.ToDateTime(startDate) && x.InspectionDate <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.MonthsCount = monethCount.Count();
                model.ProjectCount = AllList.Count();
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "9");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity1Sum += monethCount.Count();
                Quantity2Sum += AllList.Count();
                i++;
            }
            gvMeasuringInspection.DataSource = list;
            gvMeasuringInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvMeasuringInspection.SummaryData = summary;
        }
        #endregion
        #region 10.现场质量共检数据 gvInspectionDataInspection方法 
        /// 
        /// 现场质量共检数据
        /// 
        void loadInspectionDataInspection(string objType)
        {
            CheckLotBindStatisc("CV");//检验批统计:土建
            CheckLotBindStatisc("EQ");//检验批统计:设备
            CheckLotBindStatisc("PP");//检验批统计:管道
            CheckLotBindStatisc("EL");//检验批统计:电气
            CheckLotBindStatisc("IN");//检验批统计:仪表
            CheckLotBindStatisc("FF");//检验批统计:反腐
            CheckLotBindStatisc("XF");//检验批统计:消防
            #region 现场质量共检数据合计
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.View_CQMS_InspectionManagementDetail
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.CheckDate,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName
                            };
                var AllList = query.ToList();
                var monethCount = query
                    .Where(x => (x.CheckDate >= Convert.ToDateTime(startDate) && x.CheckDate <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.MonthsCount = monethCount.Count();
                model.ProjectCount = AllList.Count();
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "10");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity1Sum += monethCount.Count();
                Quantity2Sum += AllList.Count();
                i++;
            }
            gvInspectionDataInspection.DataSource = list;
            gvInspectionDataInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvInspectionDataInspection.SummaryData = summary;
            #endregion
        }
        public void CheckLotBindStatisc(string cNProfessionalCode)
        {
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            DateTime projectStartDate = Convert.ToDateTime("2015-01-01");
            List StatisticsList = new List();
            Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
            int CheckNum = 0;
            int TotalCheckNum = 0;
            int OKNum = 0;
            int TotalOKNum = 0;
            string OneOKRate = string.Empty;
            string TotalOneOKRate = string.Empty;
            if (project != null)
            {
                if (project.StartDate != null)
                {
                    projectStartDate = Convert.ToDateTime(project.StartDate);
                }
            }
            //int i = 1;
            string cNProfessionalId = (from x in Funs.DB.Base_CNProfessional where x.CNProfessionalCode == cNProfessionalCode select x.CNProfessionalId).FirstOrDefault();
            List workNames = new List();
            //专业下所有集合
            List totalManagementList = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, projectStartDate, endDate, false);
            //专业下当期集合
            List managementList = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, startDate, endDate, false);
            workNames = totalManagementList.Select(x => x.UnitWorkId).DefaultIfEmpty().Distinct()?.ToList();
            foreach (string item in workNames)
            {
                Model.WBS_UnitWork ins = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(item);
                if (ins != null)
                {
                    Model.CheckStatisc checkStatisc = new Model.CheckStatisc();
                    checkStatisc.Id = Guid.NewGuid().ToString();
                    checkStatisc.WorkName = ins.UnitWorkName;
                    checkStatisc.CheckNum = managementList.Count(x => x.UnitWorkId == item);
                    checkStatisc.TotalCheckNum = totalManagementList.Count(x => x.UnitWorkId == item);
                    checkStatisc.OKNum = managementList.Count(x => x.UnitWorkId == item && x.IsOnceQualified == true);
                    checkStatisc.TotalOKNum = totalManagementList.Count(x => x.UnitWorkId == item && x.IsOnceQualified == true);
                    StatisticsList.Add(checkStatisc);
                }
            }
            foreach (var item in StatisticsList)
            {
                if (item.CheckNum != 0)//被除数不能为零
                {
                    item.OneOKRate = Math.Round((double)item.OKNum / (double)item.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
                }
                else
                {
                    item.OneOKRate = "0%";
                }
                if (item.TotalCheckNum != 0)//被除数不能为零
                {
                    item.TotalOneOKRate = Math.Round((double)item.TotalOKNum / (double)item.TotalCheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
                }
                else
                {
                    item.TotalOneOKRate = "0%";
                }
                CheckNum += item.CheckNum;
                TotalCheckNum += item.TotalCheckNum;
                OKNum += item.OKNum;
                TotalOKNum += item.TotalOKNum;
            }
            if (CheckNum != 0)//被除数不能为零
            {
                OneOKRate = Math.Round((double)OKNum / (double)CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
            }
            else
            {
                OneOKRate = "0%";
            }
            if (TotalCheckNum != 0)//被除数不能为零
            {
                TotalOneOKRate = Math.Round((double)TotalOKNum / (double)TotalCheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
            }
            else
            {
                TotalOneOKRate = "0%";
            }
            //检验批统计:土建
            if (cNProfessionalCode == "CV")
            {
                this.gvTj.DataSource = StatisticsList;
                this.gvTj.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                gvTj.SummaryData = summary;
            }
            //检验批统计:设备
            if (cNProfessionalCode == "EQ")
            {
                this.GvSb.DataSource = StatisticsList;
                this.GvSb.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvSb.SummaryData = summary;
            }
            //检验批统计:管道
            if (cNProfessionalCode == "PP")
            {
                this.GvGD.DataSource = StatisticsList;
                this.GvGD.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvGD.SummaryData = summary;
            }
            //检验批统计:电气
            if (cNProfessionalCode == "EL")
            {
                this.GvDq.DataSource = StatisticsList;
                this.GvDq.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvDq.SummaryData = summary;
            }
            //检验批统计:仪表
            if (cNProfessionalCode == "IN")
            {
                this.GvYb.DataSource = StatisticsList;
                this.GvYb.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvYb.SummaryData = summary;
            }
            //检验批统计:反腐
            if (cNProfessionalCode == "FF")
            {
                this.GvFf.DataSource = StatisticsList;
                this.GvFf.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数 
                GvFf.SummaryData = summary;
            }
            //检验批统计:消防
            if (cNProfessionalCode == "XF")
            {
                this.GvXf.DataSource = StatisticsList;
                this.GvXf.DataBind();
                //合计
                JObject summary = new JObject();
                summary.Add("WorkName", "合计");
                summary.Add("CheckNum", CheckNum.ToString());        //当前检查点数
                summary.Add("TotalCheckNum", TotalCheckNum.ToString());//累计点数
                summary.Add("OKNum", OKNum.ToString());//当前合格点数
                summary.Add("TotalOKNum", TotalOKNum.ToString());//累计合格点数
                summary.Add("OneOKRate", OneOKRate.ToString());//本周合格点数
                summary.Add("TotalOneOKRate", TotalOneOKRate.ToString());//本周累计合格点数  
                GvXf.SummaryData = summary;
            }
        }
        #endregion
        #region 11.压力管道监检情况 gvPressureInspection方法
        /// 
        /// 压力管道监检情况
        /// 
        void loadPressureInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity0Sum = 0;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_PressurePipe
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.Projctid == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.ReportTime,
                                c.Projctid,
                                u.UnitId,
                                u.UnitName,
                                c.ActualNumber,
                                c.PressurePipeNumber
                            };
                var AllList = query.ToList();
                var monethCount = query
                   .Where(x => (x.ReportTime >= Convert.ToDateTime(startDate) && x.ReportTime <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.MonthsCount = Convert.ToInt32(monethCount.Sum(o => o.PressurePipeNumber));
                model.ProjectCount = Convert.ToInt32(AllList.Sum(o => o.PressurePipeNumber));
                model.TotalNoBackCount = Convert.ToInt32(monethCount.Sum(o => o.ActualNumber));//总数
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "11");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity0Sum += Convert.ToInt32(AllList.Sum(o => o.ActualNumber));
                Quantity1Sum += Convert.ToInt32(monethCount.Sum(o => o.PressurePipeNumber));
                Quantity2Sum += Convert.ToInt32(AllList.Sum(o => o.PressurePipeNumber));
                i++;
            }
            gvPressureInspection.DataSource = list;
            gvPressureInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("TotalNoBackCount", Quantity0Sum.ToString());//总数
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvPressureInspection.SummaryData = summary;
        }
        #endregion
        #region 12.管道试压包管理情况 gvPipingInspection方法
        /// 
        /// 管道试压包管理情况
        /// 
        void loadPipingInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity0Sum = 0;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_PressurePipe
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.Projctid == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.ReportTime,
                                c.Projctid,
                                u.UnitId,
                                u.UnitName,
                                c.PackageNumber,
                                c.IssuedReportNumber
                            };
                var AllList = query.ToList();
                var monethCount = query
                   .Where(x => (x.ReportTime >= Convert.ToDateTime(startDate) && x.ReportTime <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.TotalNoBackCount = Convert.ToInt32(monethCount.Sum(o => o.PackageNumber));
                model.MonthsCount = Convert.ToInt32(monethCount.Sum(o => o.IssuedReportNumber));
                model.ProjectCount = Convert.ToInt32(AllList.Sum(o => o.IssuedReportNumber));
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "11");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity0Sum += Convert.ToInt32(monethCount.Sum(o => o.PackageNumber));
                Quantity1Sum += Convert.ToInt32(monethCount.Sum(o => o.IssuedReportNumber));
                Quantity2Sum += Convert.ToInt32(AllList.Sum(o => o.IssuedReportNumber));
                i++;
            }
            gvPipingInspection.DataSource = list;
            gvPipingInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("TotalNoBackCount", Quantity0Sum.ToString());
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvPipingInspection.SummaryData = summary;
        }
        #endregion
        #region 13.特种设备监检情况 gvSpecialInspection方法
        /// 
        /// 特种设备监检情况
        /// 
        void loadSpecialInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity0Sum = 0;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_SpecialEquipment
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.ReportTime,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName,
                                c.SunNumber,
                                c.MonitoringReportNumber
                            };
                var AllList = query.ToList();
                var monethCount = query
                .Where(x => (x.ReportTime >= Convert.ToDateTime(startDate) && x.ReportTime <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.TotalNoBackCount = Convert.ToInt32(monethCount.Sum(o => o.SunNumber));
                model.MonthsCount = Convert.ToInt32(monethCount.Sum(o => o.MonitoringReportNumber));
                model.ProjectCount = Convert.ToInt32(AllList.Sum(o => o.MonitoringReportNumber));
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "13");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity0Sum += Convert.ToInt32(monethCount.Sum(o => o.SunNumber));
                Quantity1Sum += Convert.ToInt32(monethCount.Sum(o => o.MonitoringReportNumber));
                Quantity2Sum += Convert.ToInt32(AllList.Sum(o => o.MonitoringReportNumber));
                i++;
            }
            gvSpecialInspection.DataSource = list;
            gvSpecialInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("TotalNoBackCount", Quantity0Sum.ToString());
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvSpecialInspection.SummaryData = summary;
        }
        #endregion
        #region 14.NCR管理情况 gvNcrManagementInspection方法
        /// 
        /// NCR管理情况
        /// 
        void loadNcrManagementInspection(string objType)
        {
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            List StatisticsList = new List();
            int i = 1;
            int CurrentPeriodOkNumSum = 0;
            int OKNumSum = 0;
            int CheckNumSum = 0;
            string OKRateSum = string.Empty;
            var project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId);
            DateTime projectStartDate = Convert.ToDateTime("2000-01-01");
            if (project != null && project.StartDate != null)
            {
                projectStartDate = project.StartDate.Value;
            }
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitType == BLL.Const.ProjectUnitType_2
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            var db = Funs.DB;
            foreach (var item in units)
            {
                var query = from c in db.Comprehensive_NCRManagement
                            join u in db.Base_Unit on c.SendUnit equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.ReceiveUnit == item.UnitId
                            select new
                            {
                                c.NCRManagementId,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName,
                                c.IssuedDate,
                                c.Status,
                                c.ImplementationFrontState,
                            };
                var AllList = query.ToList();
                var unitNCRStatic = query
                    .Where(x => (x.IssuedDate >= Convert.ToDateTime(startDate) && x.IssuedDate <= Convert.ToDateTime(endDate)));
                Model.NCRReportStatisc NCRStatisc = new Model.NCRReportStatisc();
                NCRStatisc.Id = Guid.NewGuid().ToString();
                NCRStatisc.WorkName = item.UnitName;
                //NCRStatisc.CurrentPeriodOkNum = unitNCRStatic.Count(x => x.Status == "3");
                //NCRStatisc.OKNum = AllList.Count(x => x.Status == "3");
                //NCRStatisc.CurrentPeriodOkNum = unitNCRStatic.Where(x => x.ImplementationFrontState.Trim().Equals("已闭合")).Count();
                //NCRStatisc.OKNum = AllList.Where(x => x.ImplementationFrontState.Trim().Equals("已闭合")).Count();
                NCRStatisc.CurrentPeriodOkNum = unitNCRStatic.Where(x => x.ImplementationFrontState == "已闭合").Count();
                NCRStatisc.OKNum = AllList.Where(x => x.ImplementationFrontState == "已闭合").Count();
                NCRStatisc.CheckNum = AllList.Count();
                if (NCRStatisc.CheckNum != 0)//被除数不能为零
                {
                    NCRStatisc.OKRate = Math.Round((double)NCRStatisc.OKNum / (double)NCRStatisc.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入
                }
                else
                {
                    NCRStatisc.OKRate = "0%";
                }
                StatisticsList.Add(NCRStatisc);
                CurrentPeriodOkNumSum += NCRStatisc.CurrentPeriodOkNum;
                OKNumSum += NCRStatisc.OKNum;
                CheckNumSum += NCRStatisc.CheckNum;
                i++;
            }
            if (CheckNumSum != 0)//被除数不能为零
            {
                OKRateSum = Math.Round((double)OKNumSum / (double)CheckNumSum * 100, 2) + "%";//保留两位小数、后四舍五入
            }
            else
            {
                OKRateSum = "0%";
            }
            this.gvNcrManagementInspection.DataSource = StatisticsList;
            this.gvNcrManagementInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("WorkName", "合计");
            summary.Add("CurrentPeriodOkNum", CurrentPeriodOkNumSum.ToString());
            summary.Add("OKNum", OKNumSum.ToString());
            summary.Add("CheckNum", CheckNumSum.ToString());
            summary.Add("OKRate", OKRateSum.ToString());
            gvNcrManagementInspection.SummaryData = summary;
        }
        #endregion
        #region 15.质量巡检情况 gvQualityInspection方法
        /// 
        /// 加载质量巡检情况
        /// 
        void loadQualityInspection(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                var query = from c in db.Check_CheckControl
                            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                            from u in unitJoin.DefaultIfEmpty()
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                            select new
                            {
                                c.CheckDate,
                                c.ProjectId,
                                u.UnitId,
                                u.UnitName
                            };
                var AllList = query.ToList();
                var monethCount = query
                    .Where(x => (x.CheckDate >= Convert.ToDateTime(startDate) && x.CheckDate <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                model.MonthsCount = monethCount.Count();
                model.ProjectCount = AllList.Count();
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "1");
                    if (NewModel != null)
                    {
                        model.RectificationRate = NewModel.RectificationRate;
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity1Sum += monethCount.Count();
                Quantity2Sum += AllList.Count();
                i++;
            }
            gvQualityInspection.DataSource = list;
            gvQualityInspection.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvQualityInspection.SummaryData = summary;
        }
        #endregion
        #region 16.质量专项检查情况 gvSpecialCheck方法
        /// 
        /// 加载质量专项检查情况
        /// 
        void loadSpecialCheck(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            //加载检查类别
            var lists = BLL.JointCheckService.GetCheckTypeList();
            foreach (var item in lists)
            {
                var query = from c in db.Check_JointCheck
                            where c.ProjectId == this.CurrUser.LoginProjectId && c.CheckType == item.Key.ToString()
                            select new
                            {
                                c.CheckDate,
                                c.ProjectId,
                                c.CheckType
                            };
                var AllList = query.ToList();
                var monethCount = query
                    .Where(x => (x.CheckDate >= Convert.ToDateTime(startDate) && x.CheckDate <= Convert.ToDateTime(endDate)));
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.Value;
                model.MonthsCount = monethCount.Count();
                model.ProjectCount = AllList.Count();
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.Value && x.ReType == "2");
                    if (NewModel != null)
                    {
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                Quantity1Sum += monethCount.Count();
                Quantity2Sum += AllList.Count();
                i++;
            }
            gvSpecialCheck.DataSource = list;
            gvSpecialCheck.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            gvSpecialCheck.SummaryData = summary;
        }
        #endregion
        #region 17.质量文件上报情况 gvFileReport方法
        /// 
        /// 加载质量文件上报情况
        /// 
        void loadFileReport(string objType)
        {
            var db = Funs.DB;
            DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
            DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
            var list = new List();
            int i = 1;
            int Quantity1Sum = 0;
            int Quantity2Sum = 0;
            int Quantity3Sum = 0;
            int Quantity4Sum = 0;
            //加载所有单位
            var units = from x in Funs.DB.Project_ProjectUnit
                        join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId
                        where x.ProjectId == this.CurrUser.LoginProjectId && (x.UnitType == BLL.Const.ProjectUnitType_2 || x.UnitType == BLL.Const.ProjectUnitType_1)
                        orderby y.UnitCode
                        select new { x.UnitId, y.UnitName };
            foreach (var item in units)
            {
                //var query = from c in db.Check_CheckControl
                //            join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
                //            from u in unitJoin.DefaultIfEmpty()
                //            where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId
                //            select new
                //            {
                //                c.CheckDate,
                //                c.ProjectId,
                //                u.UnitId,
                //                u.UnitName
                //            };
                //var AllList = query.ToList();//项目数
                //本月数
                //var monethCount = query.Where(x => (x.CheckDate >= Convert.ToDateTime(startDate) && x.CheckDate <= Convert.ToDateTime(endDate)));
                //var yzCount = 0;//本月业主/ 监理返回数量
                //var NoBackCount = 0;//累计未返回数量
                Model.Report_CQMS_MonthReportItem model = new Model.Report_CQMS_MonthReportItem();
                model.Id = Guid.NewGuid().ToString();
                model.ContentName = item.UnitName;
                //model.MonthsCount = monethCount.Count();
                //model.ProjectCount = AllList.Count();
                //model.MonthsBackCount =;
                //model.TotalNoBackCount =;
                model.ReportId = ReportId;
                //如果是修改,查询表中数据
                if (objType == "1")
                {
                    var NewModel = db.Report_CQMS_MonthReportItem.FirstOrDefault(x => x.ReportId == ReportId && x.ContentName == item.UnitName && x.ReType == "3");
                    if (NewModel != null)
                    {
                        model.Remarks = NewModel.Remarks;
                    }
                }
                list.Add(model);
                //Quantity1Sum += monethCount.Count();
                //Quantity2Sum += AllList.Count();
                //Quantity3Sum += yzCount.Count();
                //Quantity4Sum += NoBackCount.Count();
                i++;
            }
            gvFileReport.DataSource = list;
            gvFileReport.DataBind();
            //合计
            JObject summary = new JObject();
            summary.Add("ContentName", "合计");
            summary.Add("MonthsCount", Quantity1Sum.ToString());
            summary.Add("ProjectCount", Quantity2Sum.ToString());
            summary.Add("MonthsBackCount", Quantity3Sum.ToString());
            summary.Add("TotalNoBackCount", Quantity4Sum.ToString());
            gvFileReport.SummaryData = summary;
        }
        #endregion
        #region 18.本月质量问题处理情况
        #region gvRowMaterialProblem 事件
        /// 
        /// 增加原材料问题
        /// 
        /// 
        /// 
        protected void btnRowMaterialProblem_Click(object sender, EventArgs e)
        {
            gvRowMaterialProblem.Hidden = false;
            JArray teamGroupData = gvRowMaterialProblem.GetMergedData();
            List list = new List();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                values.Add("Id", teamGroupRow.Value("id"));
                list.Add(values);
            }
            JObject defaultObj = new JObject
                {   { "RowMaterialProblemId",Guid.NewGuid().ToString() },
                    { "ReportId", ReportId },
                    { "UnitId", "" },
                    { "ProblemDesrioption",""},
                    { "TreatmentMeasures", "" },
                    { "ProcessingResults","" },
                    { "Remark", "" },
                    { "delRowMaterialProblem", String.Format(" ", GetDeleteRowMaterialProblem(), IconHelper.GetResolvedIconUrl(Icon.Delete)) }
                };
            list.Add(defaultObj);
            gvRowMaterialProblem.DataSource = list;
            gvRowMaterialProblem.DataBind();
        }
        /// 
        /// 绑定数据前事件
        /// 
        /// 
        /// 
        protected void gvRowMaterialProblem_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = gvRowMaterialProblem.FindColumn("delRowMaterialProblem") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteRowMaterialProblem();
        }
        /// 
        /// 删除提示
        /// 
        /// 
        private string GetDeleteRowMaterialProblem()
        {
            return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, gvRowMaterialProblem.GetDeleteSelectedRowsReference(), String.Empty);
        }
        #endregion
        #region gvConstructionProblems 事件
        /// 
        /// 增加施工过程问题
        /// 
        /// 
        /// 
        protected void btnAddConstructionProblems_Click(object sender, EventArgs e)
        {
            gvConstructionProblems.Hidden = false;
            JArray teamGroupData = gvConstructionProblems.GetMergedData();
            List list = new List();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                values.Add("Id", teamGroupRow.Value("id"));
                list.Add(values);
            }
            JObject defaultObj = new JObject
                {   { "ConstructionProblemsId",Guid.NewGuid() },
                    { "ReportId", ReportId },
                    { "UnitId", "" },
                    { "ProblemDesrioption",""},
                    { "TreatmentMeasures", "" },
                    { "ProcessingResults","" },
                    { "Remark", "" },
                    { "delConstructionProblems", String.Format("
", GetDeleteRowMaterialProblem(), IconHelper.GetResolvedIconUrl(Icon.Delete)) }
                };
            list.Add(defaultObj);
            gvRowMaterialProblem.DataSource = list;
            gvRowMaterialProblem.DataBind();
        }
        /// 
        /// 绑定数据前事件
        /// 
        /// 
        /// 
        protected void gvRowMaterialProblem_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = gvRowMaterialProblem.FindColumn("delRowMaterialProblem") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteRowMaterialProblem();
        }
        /// 
        /// 删除提示
        /// 
        /// 
        private string GetDeleteRowMaterialProblem()
        {
            return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, gvRowMaterialProblem.GetDeleteSelectedRowsReference(), String.Empty);
        }
        #endregion
        #region gvConstructionProblems 事件
        /// 
        /// 增加施工过程问题
        /// 
        /// 
        /// 
        protected void btnAddConstructionProblems_Click(object sender, EventArgs e)
        {
            gvConstructionProblems.Hidden = false;
            JArray teamGroupData = gvConstructionProblems.GetMergedData();
            List list = new List();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                values.Add("Id", teamGroupRow.Value("id"));
                list.Add(values);
            }
            JObject defaultObj = new JObject
                {   { "ConstructionProblemsId",Guid.NewGuid() },
                    { "ReportId", ReportId },
                    { "UnitId", "" },
                    { "ProblemDesrioption",""},
                    { "TreatmentMeasures", "" },
                    { "ProcessingResults","" },
                    { "Remark", "" },
                    { "delConstructionProblems", String.Format(" ", GetDeleteConstructionProblems(), IconHelper.GetResolvedIconUrl(Icon.Delete)) }
                };
            list.Add(defaultObj);
            gvConstructionProblems.DataSource = list;
            gvConstructionProblems.DataBind();
        }
        /// 
        /// 绑定数据前事件
        /// 
        /// 
        /// 
        protected void gvConstructionProblems_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = gvConstructionProblems.FindColumn("delConstructionProblems") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteConstructionProblems();
        }
        /// 
        /// 删除提示
        /// 
        /// 
        private string GetDeleteConstructionProblems()
        {
            return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, gvConstructionProblems.GetDeleteSelectedRowsReference(), String.Empty);
        }
        #endregion
        #endregion
        #region 19.下月质量控制重点
        /// 
        /// gvNextQualityControl加载前事件
        /// 
        /// 
        /// 
        protected void gvNextQualityControl_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = gvNextQualityControl.FindColumn("delNextQualityControl") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteNextQualityControl();
        }
        /// 
        /// 增加
        /// 
        /// 
        /// 
        protected void btnAddNextControl_Click(object sender, EventArgs e)
        {
            gvNextQualityControl.Hidden = false;
            JArray teamGroupData = gvNextQualityControl.GetMergedData();
            List list = new List();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                values.Add("Id", teamGroupRow.Value("id"));
                list.Add(values);
            }
            JObject defaultObj = new JObject
                {   { "NextQualityControlId",Guid.NewGuid().ToString() },
                    { "ReportId", ReportId },
                    { "NextQualityControlContent", "" },
                    { "delNextQualityControl", String.Format("
", GetDeleteConstructionProblems(), IconHelper.GetResolvedIconUrl(Icon.Delete)) }
                };
            list.Add(defaultObj);
            gvConstructionProblems.DataSource = list;
            gvConstructionProblems.DataBind();
        }
        /// 
        /// 绑定数据前事件
        /// 
        /// 
        /// 
        protected void gvConstructionProblems_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = gvConstructionProblems.FindColumn("delConstructionProblems") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteConstructionProblems();
        }
        /// 
        /// 删除提示
        /// 
        /// 
        private string GetDeleteConstructionProblems()
        {
            return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, gvConstructionProblems.GetDeleteSelectedRowsReference(), String.Empty);
        }
        #endregion
        #endregion
        #region 19.下月质量控制重点
        /// 
        /// gvNextQualityControl加载前事件
        /// 
        /// 
        /// 
        protected void gvNextQualityControl_PreDataBound(object sender, EventArgs e)
        {
            // 设置LinkButtonField的点击客户端事件
            LinkButtonField deleteField = gvNextQualityControl.FindColumn("delNextQualityControl") as LinkButtonField;
            deleteField.OnClientClick = GetDeleteNextQualityControl();
        }
        /// 
        /// 增加
        /// 
        /// 
        /// 
        protected void btnAddNextControl_Click(object sender, EventArgs e)
        {
            gvNextQualityControl.Hidden = false;
            JArray teamGroupData = gvNextQualityControl.GetMergedData();
            List list = new List();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                values.Add("Id", teamGroupRow.Value("id"));
                list.Add(values);
            }
            JObject defaultObj = new JObject
                {   { "NextQualityControlId",Guid.NewGuid().ToString() },
                    { "ReportId", ReportId },
                    { "NextQualityControlContent", "" },
                    { "delNextQualityControl", String.Format(" ", GetDeleteNextQualityControl(), IconHelper.GetResolvedIconUrl(Icon.Delete)) }
                };
            list.Add(defaultObj);
            gvNextQualityControl.DataSource = list;
            gvNextQualityControl.DataBind();
        }
        /// 
        /// 删除提示
        /// 
        /// 
        private string GetDeleteNextQualityControl()
        {
            return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, gvNextQualityControl.GetDeleteSelectedRowsReference(), String.Empty);
        }
        #endregion
        #region 保存方法 
        #region 9.计量器具报验管理情况
        void saveMeasuringInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvMeasuringInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "9",
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvMeasuringInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvMeasuringInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 10.现场质量共检数据
        void saveTjInspection()  //检验批统计:土建
        {
            List detailLists = new List();
            JArray teamGroupData = gvTj.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-1",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (gvTj.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvTj.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveSbInspection() //检验批统计:设备
        {
            List detailLists = new List();
            JArray teamGroupData = GvSb.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-2",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvSb.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvSb.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveGDInspection() //检验批统计:管道
        {
            List detailLists = new List();
            JArray teamGroupData = GvGD.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-3",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvGD.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvGD.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveDQInspection() //检验批统计:电气
        {
            List detailLists = new List();
            JArray teamGroupData = GvDq.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-4",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvDq.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvDq.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveYBInspection() //检验批统计:仪表
        {
            List detailLists = new List();
            JArray teamGroupData = GvYb.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-5",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvYb.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvYb.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveFFInspection()  //检验批统计:防腐
        {
            List detailLists = new List();
            JArray teamGroupData = GvFf.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-6",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvFf.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvFf.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveXFInspection()  //检验批统计:消防
        {
            List detailLists = new List();
            JArray teamGroupData = GvXf.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-7",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvXf.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvXf.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveInspectionDataInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvInspectionDataInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10",
                    ContentName = values.Value("WorkName"),
                    RectificationRate = values.Value("OneOKRate"),
                    TotationRate = values.Value("TotalOneOKRate"),
                    Remarks = values.Value("Remarks"),
                };
                if (gvInspectionDataInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvInspectionDataInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 11.压力管道监检情况
        void savePressureInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvPressureInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "11",
                    TotalNoBackCount = values.Value("TotalNoBackCount"),
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvPressureInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvPressureInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 12.管道试压包管理情况
        void savePipingInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvPipingInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "12",
                    TotalNoBackCount = values.Value("TotalNoBackCount"),
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvPipingInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvPipingInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 13.特种设备监检情况
        void saveSpecialInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvSpecialInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "13",
                    TotalNoBackCount = values.Value("TotalNoBackCount"),
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvSpecialInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvSpecialInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 14.NCR管理情况
        void saveNcrManagementInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvNcrManagementInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "14",
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvNcrManagementInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvNcrManagementInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 15.质量巡检情况 
        /// 
        /// 15.质量巡检情况
        /// 
        void saveQualityInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvQualityInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "1",
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvQualityInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvQualityInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 16.质量专项检查情况 
        /// 
        /// 16.质量专项检查情况
        /// 
        void saveSpecialCheck()
        {
            List detailLists = new List();
            JArray teamGroupData = gvSpecialCheck.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "2",
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    Remarks = values.Value("Remarks")
                };
                if (gvSpecialCheck.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvSpecialCheck.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 17.质量文件上报情况 
        /// 
        /// 17.质量文件上报情况
        /// 
        void saveFileReport()
        {
            List detailLists = new List();
            JArray teamGroupData = gvFileReport.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "3",
                    ContentName = values.Value("ContentName"),
                    //MonthsCount = Funs.GetNewInt(values.Value("MonthsCount").ToString()),
                    //ProjectCount = Funs.GetNewInt(values.Value("ProjectCount").ToString()),
                    //MonthsBackCount = Funs.GetNewInt(values.Value("MonthsBackCount").ToString()),
                    //TotalNoBackCount = Funs.GetNewInt(values.Value("TotalNoBackCount").ToString())
                };
                if (gvFileReport.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvFileReport.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 18.本月质量问题处理情况
        /// 
        /// (1)原材料问题
        /// 
        void saveRowMaterialProblem()
        {
            List detailLists = new List();
            JArray teamGroupData = gvRowMaterialProblem.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_RowMaterialProblem newDetail = new Model.Report_RowMaterialProblem
                {
                    ReportId = ReportId,
                    UnitId = values.Value("UnitId"),
                    ProblemDesrioption = values.Value("ProblemDesrioption"),
                    TreatmentMeasures = values.Value("TreatmentMeasures"),
                    ProcessingResults = values.Value("ProcessingResults"),
                    Remark = values.Value("Remark")
                };
                if (gvRowMaterialProblem.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.RowMaterialProblemId = gvRowMaterialProblem.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_RowMaterialProblem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// (2)施工过程问题
        /// 
        void saveConstructionProblems()
        {
            List detailLists = new List();
            JArray teamGroupData = gvConstructionProblems.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_ConstructionProblems newDetail = new Model.Report_ConstructionProblems
                {
                    ReportId = ReportId,
                    UnitId = values.Value("UnitId"),
                    ProblemDesrioption = values.Value("ProblemDesrioption"),
                    TreatmentMeasures = values.Value("TreatmentMeasures"),
                    ProcessingResults = values.Value("ProcessingResults"),
                    Remark = values.Value("Remark")
                };
                if (gvConstructionProblems.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.ConstructionProblemsId = gvConstructionProblems.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_ConstructionProblems.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 19.下月质量控制重点
        /// 
        /// 下月质量控制重点
        /// 
        void saveNextQualityControl()
        {
            List detailLists = new List();
            JArray teamGroupData = gvNextQualityControl.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_NextQualityControl newDetail = new Model.Report_NextQualityControl
                {
                    ReportId = ReportId,
                    NextQualityControlContent = values.Value("NextQualityControlContent")
                };
                if (gvNextQualityControl.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.NextQualityControlId = gvNextQualityControl.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_NextQualityControl.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #endregion
    }
}
", GetDeleteNextQualityControl(), IconHelper.GetResolvedIconUrl(Icon.Delete)) }
                };
            list.Add(defaultObj);
            gvNextQualityControl.DataSource = list;
            gvNextQualityControl.DataBind();
        }
        /// 
        /// 删除提示
        /// 
        /// 
        private string GetDeleteNextQualityControl()
        {
            return Confirm.GetShowReference("删除选中行?", String.Empty, MessageBoxIcon.Question, gvNextQualityControl.GetDeleteSelectedRowsReference(), String.Empty);
        }
        #endregion
        #region 保存方法 
        #region 9.计量器具报验管理情况
        void saveMeasuringInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvMeasuringInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "9",
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvMeasuringInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvMeasuringInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 10.现场质量共检数据
        void saveTjInspection()  //检验批统计:土建
        {
            List detailLists = new List();
            JArray teamGroupData = gvTj.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-1",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (gvTj.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvTj.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveSbInspection() //检验批统计:设备
        {
            List detailLists = new List();
            JArray teamGroupData = GvSb.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-2",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvSb.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvSb.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveGDInspection() //检验批统计:管道
        {
            List detailLists = new List();
            JArray teamGroupData = GvGD.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-3",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvGD.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvGD.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveDQInspection() //检验批统计:电气
        {
            List detailLists = new List();
            JArray teamGroupData = GvDq.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-4",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvDq.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvDq.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveYBInspection() //检验批统计:仪表
        {
            List detailLists = new List();
            JArray teamGroupData = GvYb.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-5",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvYb.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvYb.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveFFInspection()  //检验批统计:防腐
        {
            List detailLists = new List();
            JArray teamGroupData = GvFf.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-6",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvFf.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvFf.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveXFInspection()  //检验批统计:消防
        {
            List detailLists = new List();
            JArray teamGroupData = GvXf.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10-7",
                    ContentName = values.Value("WorkName"),
                    MonthsCount = values.Value("CheckNum"),  //当前检查点数
                    MonthsBackCount = values.Value("TotalCheckNum"),//累计点数
                    ProjectCount = values.Value("OKNum"),//当前合格点数
                    TotalNoBackCount = values.Value("TotalOKNum"),//累计合格点数
                    RectificationRate = values.Value("OneOKRate"),//本月合格点数
                    Remarks = values.Value("TotalOneOKRate"),//本月累计合格点数 
                };
                if (GvXf.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = GvXf.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        void saveInspectionDataInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvInspectionDataInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "10",
                    ContentName = values.Value("WorkName"),
                    RectificationRate = values.Value("OneOKRate"),
                    TotationRate = values.Value("TotalOneOKRate"),
                    Remarks = values.Value("Remarks"),
                };
                if (gvInspectionDataInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvInspectionDataInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 11.压力管道监检情况
        void savePressureInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvPressureInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "11",
                    TotalNoBackCount = values.Value("TotalNoBackCount"),
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvPressureInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvPressureInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 12.管道试压包管理情况
        void savePipingInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvPipingInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "12",
                    TotalNoBackCount = values.Value("TotalNoBackCount"),
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvPipingInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvPipingInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 13.特种设备监检情况
        void saveSpecialInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvSpecialInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "13",
                    TotalNoBackCount = values.Value("TotalNoBackCount"),
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvSpecialInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvSpecialInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 14.NCR管理情况
        void saveNcrManagementInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvNcrManagementInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "14",
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    //RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvNcrManagementInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvNcrManagementInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 15.质量巡检情况 
        /// 
        /// 15.质量巡检情况
        /// 
        void saveQualityInspection()
        {
            List detailLists = new List();
            JArray teamGroupData = gvQualityInspection.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "1",
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    RectificationRate = values.Value("RectificationRate"),
                    Remarks = values.Value("Remarks")
                };
                if (gvQualityInspection.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvQualityInspection.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 16.质量专项检查情况 
        /// 
        /// 16.质量专项检查情况
        /// 
        void saveSpecialCheck()
        {
            List detailLists = new List();
            JArray teamGroupData = gvSpecialCheck.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "2",
                    ContentName = values.Value("ContentName"),
                    MonthsCount = values.Value("MonthsCount"),
                    ProjectCount = values.Value("ProjectCount"),
                    Remarks = values.Value("Remarks")
                };
                if (gvSpecialCheck.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvSpecialCheck.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 17.质量文件上报情况 
        /// 
        /// 17.质量文件上报情况
        /// 
        void saveFileReport()
        {
            List detailLists = new List();
            JArray teamGroupData = gvFileReport.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_CQMS_MonthReportItem newDetail = new Model.Report_CQMS_MonthReportItem
                {
                    ReportId = ReportId,
                    ReType = "3",
                    ContentName = values.Value("ContentName"),
                    //MonthsCount = Funs.GetNewInt(values.Value("MonthsCount").ToString()),
                    //ProjectCount = Funs.GetNewInt(values.Value("ProjectCount").ToString()),
                    //MonthsBackCount = Funs.GetNewInt(values.Value("MonthsBackCount").ToString()),
                    //TotalNoBackCount = Funs.GetNewInt(values.Value("TotalNoBackCount").ToString())
                };
                if (gvFileReport.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.Id = gvFileReport.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_CQMS_MonthReportItem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 18.本月质量问题处理情况
        /// 
        /// (1)原材料问题
        /// 
        void saveRowMaterialProblem()
        {
            List detailLists = new List();
            JArray teamGroupData = gvRowMaterialProblem.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_RowMaterialProblem newDetail = new Model.Report_RowMaterialProblem
                {
                    ReportId = ReportId,
                    UnitId = values.Value("UnitId"),
                    ProblemDesrioption = values.Value("ProblemDesrioption"),
                    TreatmentMeasures = values.Value("TreatmentMeasures"),
                    ProcessingResults = values.Value("ProcessingResults"),
                    Remark = values.Value("Remark")
                };
                if (gvRowMaterialProblem.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.RowMaterialProblemId = gvRowMaterialProblem.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_RowMaterialProblem.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        /// 
        /// (2)施工过程问题
        /// 
        void saveConstructionProblems()
        {
            List detailLists = new List();
            JArray teamGroupData = gvConstructionProblems.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_ConstructionProblems newDetail = new Model.Report_ConstructionProblems
                {
                    ReportId = ReportId,
                    UnitId = values.Value("UnitId"),
                    ProblemDesrioption = values.Value("ProblemDesrioption"),
                    TreatmentMeasures = values.Value("TreatmentMeasures"),
                    ProcessingResults = values.Value("ProcessingResults"),
                    Remark = values.Value("Remark")
                };
                if (gvConstructionProblems.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.ConstructionProblemsId = gvConstructionProblems.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_ConstructionProblems.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #region 19.下月质量控制重点
        /// 
        /// 下月质量控制重点
        /// 
        void saveNextQualityControl()
        {
            List detailLists = new List();
            JArray teamGroupData = gvNextQualityControl.GetMergedData();
            foreach (JObject teamGroupRow in teamGroupData)
            {
                JObject values = teamGroupRow.Value("values");
                int rowIndex = teamGroupRow.Value("index");
                Model.Report_NextQualityControl newDetail = new Model.Report_NextQualityControl
                {
                    ReportId = ReportId,
                    NextQualityControlContent = values.Value("NextQualityControlContent")
                };
                if (gvNextQualityControl.Rows[rowIndex].DataKeys.Length > 0)
                {
                    newDetail.NextQualityControlId = gvNextQualityControl.Rows[rowIndex].DataKeys[0].ToString();
                }
                detailLists.Add(newDetail);
            }
            if (detailLists.Count > 0)
            {
                Funs.DB.Report_NextQualityControl.InsertAllOnSubmit(detailLists);
                Funs.DB.SubmitChanges();
            }
        }
        #endregion
        #endregion
    }
}