using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BLL; namespace FineUIPro.Web.CQMS.ManageReport { public partial class WeekReportPrint :PageBase { #region 定义项 /// <summary> /// 主键 /// </summary> public string ReportId { get { return (string)ViewState["ReportId"]; } set { ViewState["ReportId"] = value; } } /// <summary> /// 定义本周主要工作内容集合 /// </summary> public static List<Model.Report_ThisWeekOrMonthContent> thisWeekOrMonthContentLists = new List<Model.Report_ThisWeekOrMonthContent>(); /// <summary> /// 定义原材料问题集合 /// </summary> public static List<Model.Report_RowMaterialProblem> rowMaterialProblemLists = new List<Model.Report_RowMaterialProblem>(); /// <summary> /// 定义施工过程问题 /// </summary> public static List<Model.View_Report_ConstructionProblems> constructionProblemsLists = new List<Model.View_Report_ConstructionProblems>(); /// <summary> /// 定义下周质量控制重点集合 /// </summary> public static List<Model.Report_NextQualityControl> nextQualityControlLists = new List<Model.Report_NextQualityControl>(); #endregion /// <summary> /// 加载页面 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.txtProjectName.Text = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName; this.ReportId = Request.Params["reportId"]; if (!string.IsNullOrEmpty(this.ReportId)) { Model.Report_WeekAndMonthReport weekAndMonthReport = BLL.WeekAndMonthReportService.GetWeekAndMonthReportById(this.ReportId); if (weekAndMonthReport != null) { if (weekAndMonthReport.Period != null) { this.txtPeriod.Text = Convert.ToString(weekAndMonthReport.Period); } 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); } } GetThisWeekOrMonthContentList(this.ReportId);//本周主要工作内容 GetRowMaterialProblemList(this.ReportId);//原材料问题 GetConstructionProblemsList(this.ReportId);//施工过程问题 GetNextQualityControlList(this.ReportId);//下周质量控制重点 } CheckLotBindStatisc("CV");//检验批统计:土建 CheckLotBindStatisc("EQ");//检验批统计:设备 CheckLotBindStatisc("PP");//检验批统计:管道 CheckLotBindStatisc("EL");//检验批统计:电气 CheckLotBindStatisc("IN");//检验批统计:仪表 CheckLotBindStatisc("FF");//检验批统计:反腐 CheckLotBindStatisc("XF");//检验批统计:消防 GetComprehensive();//综合管理 BindStatisc();//无损检测统计 NCRBindStatisc();//NCR统计 DesignChangeOrderBindStatisc();//设计变更统计 PassWelderBindStatisc();//合格焊工统计 } } /// <summary> /// 本周主要工作内容 /// </summary> private void GetThisWeekOrMonthContentList(string reportId) { thisWeekOrMonthContentLists = BLL.ThisWeekOrMonthContentService.GetThisWeekOrMonthContentByReportId(reportId); this.gvThisWeekOrMonthContent.DataSourceID = null; this.gvThisWeekOrMonthContent.DataSource = thisWeekOrMonthContentLists; this.gvThisWeekOrMonthContent.DataBind(); } /// <summary> /// 原材料问题 /// </summary> /// <param name="reportId"></param> private void GetRowMaterialProblemList(string reportId) { rowMaterialProblemLists = BLL.RowMaterialProblemService.GetRowMaterialProblemByReportId(reportId); this.gvRowMaterialProblem.DataSourceID = null; this.gvRowMaterialProblem.DataSource = rowMaterialProblemLists; this.gvRowMaterialProblem.DataBind(); } /// <summary> /// 施工过程问题 /// </summary> /// <param name="p"></param> private void GetConstructionProblemsList(string reportId) { constructionProblemsLists = BLL.ConstructionProblemsService.GetConstructionProblemsViewListByReportId(reportId); this.gvConstructionProblems.DataSourceID = null; this.gvConstructionProblems.DataSource = constructionProblemsLists; this.gvConstructionProblems.DataBind(); } /// <summary> /// 综合管理 /// </summary> private void GetComprehensive() { decimal? count = 0; var inspectionEquipments = (from x in Funs.DB.Comprehensive_InspectionEquipment where x.ProjectId == this.CurrUser.LoginProjectId select x).ToList(); foreach (var item in inspectionEquipments) { //count += item.Counts; } this.txt3.Text = Convert.ToString(count); decimal? thisWeekCount = 0; var equpments = (from x in Funs.DB.Comprehensive_InspectionEquipment where x.ProjectId == this.CurrUser.LoginProjectId && x.InspectionDate >= Convert.ToDateTime(this.txtStartDate.Text) && x.InspectionDate <= Convert.ToDateTime(this.txtEndDate.Text) select x).ToList(); foreach (var item in equpments) { //thisWeekCount += item.Counts; } this.txt2.Text = Convert.ToString(thisWeekCount); var Uequipments = (from x in Funs.DB.Comprehensive_InspectionEquipment join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == this.CurrUser.LoginProjectId && x.InspectionDate >= Convert.ToDateTime(this.txtStartDate.Text) && x.InspectionDate <= Convert.ToDateTime(this.txtEndDate.Text) && y.UnitAttribute == "1" select x).Count(); this.txt5.Text = Uequipments.ToString(); var Tequipments = (from x in Funs.DB.Comprehensive_InspectionEquipment join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == this.CurrUser.LoginProjectId && y.UnitAttribute == "1" select x).Count(); this.txt6.Text = Tequipments.ToString(); var CUequipments = (from x in Funs.DB.Comprehensive_InspectionEquipment join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == this.CurrUser.LoginProjectId && x.InspectionDate >= Convert.ToDateTime(this.txtStartDate.Text) && x.InspectionDate <= Convert.ToDateTime(this.txtEndDate.Text) && y.UnitAttribute == "2" select x).Count(); this.txt7.Text = CUequipments.ToString(); var CTequipments = (from x in Funs.DB.Comprehensive_InspectionEquipment join y in Funs.DB.Base_Unit on x.UnitId equals y.UnitId where x.ProjectId == this.CurrUser.LoginProjectId && y.UnitAttribute == "2" select x).Count(); this.txt8.Text = CTequipments.ToString(); if (this.ReportId != null) { var q = BLL.ComprehensiveService.GetComprehensiveByReportId(this.ReportId); if (q != null) { this.txt1.Text = q.TotalCount.HasValue ? q.TotalCount.Value.ToString() : ""; this.txt4.Text = q.EquipmentRate; this.txt9.Text = q.Others; } else { this.txt1.Text = string.Empty; this.txt4.Text = string.Empty; this.txt9.Text = string.Empty; } } } #region 检验批统计 /// <summary> /// 绑定数据 /// </summary> /// <param name="cNProfessionalCode"></param> 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<Model.CheckStatisc> StatisticsList = new List<Model.CheckStatisc>(); Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); 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<string> workNames = new List<string>(); //专业下所有集合 List<Model.View_CQMS_InspectionManagementDetail> totalManagementList = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, projectStartDate, endDate, false); //专业下当期集合 List<Model.View_CQMS_InspectionManagementDetail> managementList = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, startDate, endDate, false); if (cNProfessionalId == BLL.Const.CNProfessionalCVId) //土建按单位工程统计 { foreach (var item in totalManagementList) { Model.WBS_BreakdownProject breakdownProject = BLL.BreakdownProjectService.GetBreakdownProjectById(item.ControlPointType); if (breakdownProject != null) { Model.WBS_DivisionProject divisionProject = BLL.DivisionProjectService.GetDivisionProjectById(breakdownProject.DivisionProjectId); if (divisionProject != null) { Model.WBS_UnitWork ins = BLL.UnitWorkService.getUnitWorkByUnitWorkId(divisionProject.UnitWorkId); if (ins != null) { if (!workNames.Contains(ins.UnitWorkName)) //新增记录 { Model.CheckStatisc checkStatisc = new Model.CheckStatisc(); checkStatisc.Num = i; checkStatisc.WorkName = ins.UnitWorkName; workNames.Add(ins.UnitWorkName); checkStatisc.CheckNum = managementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc.TotalCheckNum = totalManagementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc.OKNum = managementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); StatisticsList.Add(checkStatisc); i++; } else //更新已有记录 { Model.CheckStatisc checkStatisc1 = StatisticsList.FirstOrDefault(x => x.WorkName == ins.UnitWorkName); checkStatisc1.CheckNum += managementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc1.TotalCheckNum += totalManagementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc1.OKNum += managementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); checkStatisc1.TotalOKNum += totalManagementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); } } } } } } else { foreach (var item in totalManagementList) { Model.WBS_BreakdownProject breakdownProject = BLL.BreakdownProjectService.GetBreakdownProjectById(item.ControlPointType); if (breakdownProject != null) { Model.WBS_DivisionProject divisionProject = BLL.DivisionProjectService.GetDivisionProjectById(breakdownProject.DivisionProjectId); if (divisionProject != null) { if (!workNames.Contains(divisionProject.DivisionName)) //新增记录 { Model.CheckStatisc checkStatisc = new Model.CheckStatisc(); checkStatisc.Num = i; checkStatisc.WorkName = divisionProject.DivisionName; workNames.Add(divisionProject.DivisionName); checkStatisc.CheckNum = managementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc.TotalCheckNum = totalManagementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc.OKNum = managementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); StatisticsList.Add(checkStatisc); i++; } else //更新已有记录 { Model.CheckStatisc checkStatisc1 = StatisticsList.FirstOrDefault(x => x.WorkName == divisionProject.DivisionName); checkStatisc1.CheckNum += managementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc1.TotalCheckNum += totalManagementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc1.OKNum += managementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); checkStatisc1.TotalOKNum += totalManagementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); } } } } } 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%"; } } if (StatisticsList.Count() > 0) //增加总计 { Model.CheckStatisc StatisticsLast = new Model.CheckStatisc(); StatisticsLast.Num = StatisticsList.Count() + 1; StatisticsLast.WorkName = "合计"; foreach (Model.CheckStatisc item in StatisticsList) { StatisticsLast.CheckNum += item.CheckNum; StatisticsLast.TotalCheckNum += item.TotalCheckNum; StatisticsLast.OKNum += item.OKNum; StatisticsLast.TotalOKNum += item.TotalOKNum; } if (StatisticsLast.CheckNum != 0)//被除数不能为零 { StatisticsLast.OneOKRate = Math.Round((double)StatisticsLast.OKNum / (double)StatisticsLast.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { StatisticsLast.OneOKRate = "0%"; } if (StatisticsLast.TotalCheckNum != 0)//被除数不能为零 { StatisticsLast.TotalOneOKRate = Math.Round((double)StatisticsLast.TotalOKNum / (double)StatisticsLast.TotalCheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { StatisticsLast.TotalOneOKRate = "0%"; } StatisticsList.Add(StatisticsLast); } if (cNProfessionalCode == "CV") { this.gvTJ.DataSource = StatisticsList; this.gvTJ.DataBind(); } if (cNProfessionalCode == "EQ") { this.gvSB.DataSource = StatisticsList; this.gvSB.DataBind(); } if (cNProfessionalCode == "PP") { this.gvGD.DataSource = StatisticsList; this.gvGD.DataBind(); } if (cNProfessionalCode == "EL") { this.gvDQ.DataSource = StatisticsList; this.gvDQ.DataBind(); } if (cNProfessionalCode == "IN") { this.gvYB.DataSource = StatisticsList; this.gvYB.DataBind(); } if (cNProfessionalCode == "FF") { this.gvFF.DataSource = StatisticsList; this.gvFF.DataBind(); } if (cNProfessionalCode == "XF") { this.gvXF.DataSource = StatisticsList; this.gvXF.DataBind(); } } /// <summary> /// GridView创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvTJ_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#工作名称#检查(点) 本周,累计#合格(点) 本周,累计#一次合格率 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } /// <summary> /// GridView创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvSB_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#工作名称#检查(点) 本周,累计#合格(点) 本周,累计#一次合格率 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } /// <summary> /// GridView创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvGD_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#工作名称#检查(点) 本周,累计#合格(点) 本周,累计#一次合格率 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } /// <summary> /// GridView创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvDQ_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#工作名称#检查(点) 本周,累计#合格(点) 本周,累计#一次合格率 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } /// <summary> /// GridView创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvYB_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#工作名称#检查(点) 本周,累计#合格(点) 本周,累计#一次合格率 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } /// <summary> /// GridView创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvFF_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#工作名称#检查(点) 本周,累计#合格(点) 本周,累计#一次合格率 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } /// <summary> /// GridView创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvXF_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#工作名称#检查(点) 本周,累计#合格(点) 本周,累计#一次合格率 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } #endregion #region 无损检测统计 #region 绑定GridView /// <summary> /// 绑定 /// </summary> /// <param name="cNProfessionalId"></param> public void BindStatisc() { DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); SqlParameter[] values = new SqlParameter[] { new SqlParameter("@projectId", this.CurrUser.LoginProjectId), new SqlParameter("@startDate",startDate), new SqlParameter("@endDate",endDate) }; DataTable dt = BLL.SQLHelper.GetDataTableRunProc("Sp_ProcessControl_NondestructiveTestStatisc", values); this.gvHJGLStatisc.DataSourceID = null; this.gvHJGLStatisc.DataSource = dt; this.gvHJGLStatisc.DataBind(); } #endregion /// <summary> /// 无损检测创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvHJGLStatisc_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#分包商#探伤部位#RT数量 本周,累计#一次合格 本周,累计#一次合格率 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } #endregion #region NCR统计 #region 绑定GridView /// <summary> /// 绑定 /// </summary> /// <param name="cNProfessionalId"></param> public void NCRBindStatisc() { DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); List<Model.NCRReportStatisc> StatisticsList = new List<Model.NCRReportStatisc>(); int i = 1; 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; } //所有集合 List<Model.Comprehensive_NCRManagement> totalManagementList = BLL.NCRManagementService.GetNCRManagementListByDate(this.CurrUser.LoginProjectId, startDate, endDate); List<string> unitNames = (from x in totalManagementList select x.ReceiveUnit).Distinct().ToList(); foreach (var item in unitNames) { //当期集合 List<Model.Comprehensive_NCRManagement> managementList = BLL.NCRManagementService.GetNCRManagementListByUnitNameAndDate(this.CurrUser.LoginProjectId, item, startDate, endDate); //累计集合 List<Model.Comprehensive_NCRManagement> sumManagementList = BLL.NCRManagementService.GetNCRManagementListByUnitNameAndDate(this.CurrUser.LoginProjectId, item, projectStartDate, endDate); Model.NCRReportStatisc NCRStatisc = new Model.NCRReportStatisc(); NCRStatisc.Num = i; NCRStatisc.WorkName = BLL.UnitService.getUnitNamesUnitIds(item); NCRStatisc.OKNum = managementList.Count(x => x.CompleteDate != null); NCRStatisc.CheckNum = sumManagementList.Count(x => x.CompleteDate != null); if (NCRStatisc.CheckNum != 0)//被除数不能为零 { NCRStatisc.OKRate = Math.Round((double)NCRStatisc.OKNum / (double)NCRStatisc.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { NCRStatisc.OKRate = "0%"; } StatisticsList.Add(NCRStatisc); i++; } if (StatisticsList.Count() > 0) //增加总计 { Model.NCRReportStatisc StatisticsLast = new Model.NCRReportStatisc(); StatisticsLast.Num = StatisticsList.Count() + 1; StatisticsLast.WorkName = "合计"; foreach (Model.NCRReportStatisc item in StatisticsList) { StatisticsLast.OKNum += item.OKNum; StatisticsLast.CheckNum += item.CheckNum; } if (StatisticsLast.CheckNum != 0)//被除数不能为零 { StatisticsLast.OKRate = Math.Round((double)StatisticsLast.OKNum / (double)StatisticsLast.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { StatisticsLast.OKRate = "0%"; } StatisticsList.Add(StatisticsLast); } this.gvNCRStatisc.DataSource = StatisticsList; this.gvNCRStatisc.DataBind(); } #endregion /// <summary> /// NCR行创建时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvNCRStatisc_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#接收单位#本周已完成#累计已完成#累计完成比例"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } #endregion #region 设计变更统计 #region 绑定GridView /// <summary> /// 绑定 /// </summary> /// <param name="cNProfessionalId"></param> public void DesignChangeOrderBindStatisc() { DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); DateTime projectStartDate = Convert.ToDateTime("2015-01-01"); List<Model.CheckStatisc> StatisticsList = new List<Model.CheckStatisc>(); Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); if (project != null) { if (project.StartDate != null) { projectStartDate = Convert.ToDateTime(project.StartDate); } } int i = 1; var cNProfessionals = from x in Funs.DB.Base_CNProfessional orderby x.SortIndex select x; foreach (var item in cNProfessionals) { //专业下所有集合 List<Model.Comprehensive_DesignChangeOrder> totalManagementList = BLL.DesignChangeOrderService.GetDesignChangeOrderListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, item.CNProfessionalId, projectStartDate, endDate); //专业下当期集合 List<Model.Comprehensive_DesignChangeOrder> managementList = BLL.DesignChangeOrderService.GetDesignChangeOrderListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, item.CNProfessionalId, startDate, endDate); Model.CheckStatisc checkStatisc = new Model.CheckStatisc(); checkStatisc.Num = i; checkStatisc.WorkName = item.ProfessionalName; checkStatisc.CheckNum = managementList.Count(); checkStatisc.TotalCheckNum = totalManagementList.Count(); checkStatisc.OKNum = managementList.Count(x => x.ApprovalDate != null); checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ApprovalDate != null); checkStatisc.OneOKRate = managementList.Count(x => x.HandleState == "3").ToString(); //当期完成数 checkStatisc.TotalOneOKRate = totalManagementList.Count(x => x.HandleState == "3").ToString(); //累计完成数 if (checkStatisc.CheckNum > 0 || checkStatisc.TotalCheckNum > 0 || checkStatisc.OKNum > 0 || checkStatisc.TotalOKNum > 0) { StatisticsList.Add(checkStatisc); i++; } } if (StatisticsList.Count() > 0) //增加总计 { Model.CheckStatisc StatisticsLast = new Model.CheckStatisc(); StatisticsLast.Num = StatisticsList.Count() + 1; StatisticsLast.WorkName = "合计"; foreach (Model.CheckStatisc item in StatisticsList) { StatisticsLast.CheckNum += item.CheckNum; StatisticsLast.TotalCheckNum += item.TotalCheckNum; StatisticsLast.OKNum += item.OKNum; StatisticsLast.TotalOKNum += item.TotalOKNum; StatisticsLast.OneOKRate = (Convert.ToInt32(StatisticsLast.OneOKRate) + Convert.ToInt32(item.OneOKRate)).ToString(); StatisticsLast.TotalOneOKRate = (Convert.ToInt32(StatisticsLast.TotalOneOKRate) + Convert.ToInt32(item.TotalOneOKRate)).ToString(); } StatisticsList.Add(StatisticsLast); } this.gvCheckStatisc.DataSource = StatisticsList; this.gvCheckStatisc.DataBind(); } #endregion /// <summary> /// 设计变更统计创建行时激发 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvCheckStatisc_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#专业#发布数量 本周,累计#业主批准数量 本周,累计#完成情况 本周,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } #endregion #region 合格焊工统计 #region 绑定GridView /// <summary> /// 绑定 /// </summary> /// <param name="cNProfessionalId"></param> public void PassWelderBindStatisc() { DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); DateTime projectStartDate = Convert.ToDateTime("2015-01-01"); List<Model.PassWelderStatisc> StatisticsList = new List<Model.PassWelderStatisc>(); Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); if (project != null) { if (project.StartDate != null) { projectStartDate = Convert.ToDateTime(project.StartDate); } } int i = 1; 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 }; foreach (var item in units) { //单位下所有集合 List<Model.BS_Welder> totalWelderList = BLL.PersonManageService.GetWelderListByUnitId(this.CurrUser.LoginProjectId, item.UnitId); List<Model.BS_Welder> welderList = BLL.PersonManageService.GetWelderListByUnitIdAndDate(this.CurrUser.LoginProjectId, item.UnitId, startDate, endDate); Model.PassWelderStatisc passWelderStatisc = new Model.PassWelderStatisc(); passWelderStatisc.Num = i; passWelderStatisc.UnitName = item.UnitName; passWelderStatisc.PipeMountGuard = welderList.Count(x => x.WED_Remark == "管道"); passWelderStatisc.PipeTotal = totalWelderList.Count(x => x.WED_Remark == "管道"); passWelderStatisc.SteelStructureMountGuard = welderList.Count(x => x.WED_Remark == "钢结构"); passWelderStatisc.SteelStructureTotal = totalWelderList.Count(x => x.WED_Remark == "钢结构"); passWelderStatisc.EquipmentMountGuard = welderList.Count(x => x.WED_Remark == "设备"); passWelderStatisc.EquipmentTotal = totalWelderList.Count(x => x.WED_Remark == "设备"); passWelderStatisc.OtherMountGuard = welderList.Count(x => x.WED_Remark == "其他"); passWelderStatisc.OtherTotal = totalWelderList.Count(x => x.WED_Remark == "其他"); StatisticsList.Add(passWelderStatisc); i++; } if (StatisticsList.Count() > 0)//增加总计 { Model.PassWelderStatisc passWelderStatisc = new Model.PassWelderStatisc(); passWelderStatisc.Num = StatisticsList.Count() + 1; passWelderStatisc.UnitName = "合计"; foreach (Model.PassWelderStatisc item in StatisticsList) { passWelderStatisc.PipeMountGuard += item.PipeMountGuard; passWelderStatisc.PipeTotal += item.PipeTotal; passWelderStatisc.SteelStructureMountGuard += item.SteelStructureMountGuard; passWelderStatisc.SteelStructureTotal += item.SteelStructureTotal; passWelderStatisc.EquipmentMountGuard += item.EquipmentMountGuard; passWelderStatisc.EquipmentTotal += item.EquipmentTotal; passWelderStatisc.OtherMountGuard += item.OtherMountGuard; passWelderStatisc.OtherTotal += item.OtherTotal; } StatisticsList.Add(passWelderStatisc); } this.gvPassWelder.DataSource = StatisticsList; this.gvPassWelder.DataBind(); } #endregion /// <summary> /// 合格焊工统计 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void gvPassWelder_RowCreated(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.Header) { string headerStr = "序号#分包商#管道焊工 本周上岗,累计#钢结构焊工 本周上岗,累计#设备焊工 本周上岗,累计#其他 本周上岗,累计"; DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler(); dHelper.SplitTableHeader(e.Row, headerStr); } } #endregion /// <summary> /// 下周质量控制重点 /// </summary> /// <param name="p"></param> private void GetNextQualityControlList(string reportId) { nextQualityControlLists = BLL.NextQualityControlService.GetNextQualityControlByReportId(reportId); this.gvNextQualityControl.DataSourceID = null; this.gvNextQualityControl.DataSource = nextQualityControlLists; this.gvNextQualityControl.DataBind(); } #region 导出 protected void btnExport_Click(object sender, ImageClickEventArgs e) { ToFiles(); } private void ToFiles() { string strFileName = DateTime.Now.ToString("yyyyMMdd-hhmmss") + "周报"; System.Web.HttpContext HC = System.Web.HttpContext.Current; HC.Response.Clear(); HC.Response.Buffer = true; HC.Response.ContentEncoding = System.Text.Encoding.UTF8;//设置输出流为简体中文 //---导出为Word文件 HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".doc"); HC.Response.ContentType = "application/ms-word";//设置输出文件类型为word文件。 //System.IO.StringWriter sw = new System.IO.StringWriter(); //System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); //this.Table5.RenderControl(htw); string htmlStr = GetHtml(); HC.Response.Write(htmlStr); HC.Response.End(); } /// <summary> /// 导出方法 /// </summary> /// <param name="grid"></param> /// <returns></returns> public string GetHtml() { StringBuilder sb = new StringBuilder(); Model.Report_WeekAndMonthReport weekAndMonthReport = BLL.WeekAndMonthReportService.GetWeekAndMonthReportById(this.ReportId); if (weekAndMonthReport != null) { sb.Append("<meta http-equiv=\"content-type\" content=\"application/word; charset=UTF-8\"/>"); sb.Append("<table runat=\"server\" width=\"100 %\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\" border = \"0\" > "); sb.Append("<tr>"); sb.AppendFormat("<td> "); sb.Append("<table width=\"100% \" cellspacing=\"0\" border=\"0\" bordercolor = \"#000000\" bordercolordark = \"#000000\" bordercolorlight =\"#000000\" > "); sb.Append("<tr >"); string imgStr = "<img width='100' height='100' src='" + Funs.SGGLUrl + "Images/Logo.jpg".Replace('\\', '/') + "'/>"; sb.AppendFormat("<td align=\"center\" rowspan=\"2\" style=\"width: 24 %; height: 75px; border: 1px solid #000000; border-right: none\">{0}</td> ", imgStr); sb.AppendFormat("<td style=\"width: 44 %; height: 30px; vertical - align: middle; border: 1px solid #000000; border-right: none; text-align: center;\">{0}</td> ", BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName); sb.AppendFormat("<td align=\"left\" style=\"width: 32 %; vertical - align: bottom; border: 1px solid #000000;\" rowspan = \"2\" >{0}</td> ", "第(" + Convert.ToString(weekAndMonthReport.Period) + ")期"); sb.Append("</tr>"); sb.Append("<tr >"); sb.AppendFormat("<td style=\"width: 44 %; height: 50px; vertical - align: middle; border: 1px solid #000000; border-right: none; text-align: center;\">施工质量周报</td> "); sb.Append("</tr>"); sb.Append("</table>"); sb.AppendFormat("</td> "); sb.Append("</tr>"); sb.Append("<tr >"); sb.AppendFormat("<td> "); sb.Append("<table runat=\"server\" width=\"100 %\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\" frame = \"vsides\" bordercolor = \"#000000\" > "); sb.Append("<tr style=\"height: 32px\">"); sb.AppendFormat("<td align=\"right\" style=\"width: 15 %; border: 1px solid #000000; border-top: none;\">时间段</td> "); sb.AppendFormat("<td align=\"left\" style=\"border-right: 1px solid #000000; border-bottom: 1px solid #000000; border-left-style: none; border-left-color: inherit; border-left-width: medium; border-top-style: none; border-top-color: inherit; border-top-width: medium;\">{0}</td> ", string.Format("{0:yyyy-MM-dd}", weekAndMonthReport.StartDate) + " 至" + string.Format("{0:yyyy-MM-dd}", weekAndMonthReport.EndDate)); sb.Append("</tr>"); sb.Append("</table>"); sb.AppendFormat("</td> "); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"width: 50%; height: 32px; font-size: 10pt; font-weight: bold\"> 1、本周主要工作内容</td> "); sb.Append("</tr>"); if (thisWeekOrMonthContentLists.Count > 0) { sb.Append("<table runat = \"server\" width = \"100%\" cellpadding = \"0\" cellspacing = \"0\" border = \"1\">"); sb.Append("<tr>"); sb.Append("<td >序号</td>"); sb.Append("<td >本周主要工作内容</td>"); sb.Append("</ tr >"); int num = 1; foreach (var item in thisWeekOrMonthContentLists) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.Contents); sb.Append("</ tr >"); num++; } sb.Append("</table>"); } sb.Append("</td>"); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table runat = \"server\" width = \"100%\" cellpadding = \"0\" cellspacing = \"0\">"); sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"width: 50%; height: 32px; font-size: 10pt; font - weight: bold\">2、本周质量问题处理情况</td> "); sb.Append("</tr>"); sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"width: 50%; height: 32px; font-size: 9pt;font - weight: bold\"> 1)原材料问题</td>"); sb.Append("</tr>"); if (rowMaterialProblemLists.Count > 0) { sb.Append("<table runat =\"server\" width =\"100%\" cellpadding = \"0\" cellspacing = \"0\" border = \"1\">"); sb.Append("<tr>"); sb.Append("<td >序号</td>"); sb.Append("<td >供应商</td>"); sb.Append("<td >问题描述</td>"); sb.Append("<td >处理措施</td>"); sb.Append("<td >处理结果</td>"); sb.Append("<td >备注</td>"); sb.Append("</tr>"); int num = 1; foreach (var item in rowMaterialProblemLists) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.UnitId); sb.AppendFormat("<td>{0}</td> ", item.ProblemDesrioption); sb.AppendFormat("<td>{0}</td> ", item.TreatmentMeasures); sb.AppendFormat("<td>{0}</td> ", item.ProcessingResults); sb.AppendFormat("<td>{0}</td> ", item.Remark); sb.Append("</tr>"); num++; } sb.Append("</table>"); } sb.Append("</td>"); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table runat = \"server\" width = \"100%\" cellpadding = \"0\" cellspacing = \"0\">"); sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"width: 50%; height: 32px; font-size: 10pt; font - weight: bold\">3、本周质量控制</td> "); sb.Append("</tr>"); sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table runat = \"server\" width =\"100%\" cellpadding = \"0\" cellspacing =\"0\">"); sb.Append("<tr>"); sb.Append("<td align = \"left\" valign =\"middle\" style =\"font-size: 9pt; height: 32px; font-weight: bold\"> 1)综合管理</ td > "); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style =\"height: 50px; width: 100% \">"); sb.Append("<table width =\"100 % \">"); sb.Append("<tr>"); sb.AppendFormat("<td style = \"height: 32px; font-size: 10pt;\">{0}</td>", " 设备共计(" + txt1.Text + ")台,本周报验(" + txt2.Text + ")台,累计报验(" + txt3.Text + ")台,完成比率(" + txt4.Text + ")"); sb.Append("</tr>"); sb.Append("<tr>"); sb.AppendFormat("<td style = \"height: 32px; font-size: 10pt;\">{0}</td>", " 公司本周材料报验(" + txt5.Text + ")批,累计(" + txt6.Text + ")批;"); sb.Append("</tr>"); sb.Append("<tr>"); sb.AppendFormat("<td style = \"height: 32px;font-size: 10pt;\">{0}</td>", " 分包商本周材料报验(" + txt7.Text + ")批,累计(" + txt8.Text + ")批"); sb.Append("</tr>"); sb.Append("<tr>"); sb.AppendFormat("<td style = \"height: 50px; font-size: 10pt;\">{0}</td>", " 其它:" + txt9.Text); sb.Append("</tr>"); sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold\"> 2)检验批统计</td> "); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold; height: 32px;\"> 土建:</td> "); sb.Append("</tr>"); var StatisticsList = GetStatisticsList("CV"); if (StatisticsList.Count > 0) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">工作名称</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">检查(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">合格(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格率</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in StatisticsList) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.TotalCheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKNum); sb.AppendFormat("<td>{0}</td> ", item.TotalOKNum); sb.AppendFormat("<td>{0}</td> ", item.OneOKRate); sb.AppendFormat("<td>{0}</td> ", item.TotalOneOKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold; height: 32px;\"> 设备:</td> "); sb.Append("</tr>"); var StatisticsList1 = GetStatisticsList("EQ"); if (StatisticsList1.Count > 0) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">工作名称</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">检查(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">合格(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格率</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in StatisticsList1) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.TotalCheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKNum); sb.AppendFormat("<td>{0}</td> ", item.TotalOKNum); sb.AppendFormat("<td>{0}</td> ", item.OneOKRate); sb.AppendFormat("<td>{0}</td> ", item.TotalOneOKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold; height: 32px;\"> 管道:</td> "); sb.Append("</tr>"); var StatisticsList2 = GetStatisticsList("PP"); if (StatisticsList2.Count > 0) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">工作名称</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">检查(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">合格(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格率</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in StatisticsList2) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.TotalCheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKNum); sb.AppendFormat("<td>{0}</td> ", item.TotalOKNum); sb.AppendFormat("<td>{0}</td> ", item.OneOKRate); sb.AppendFormat("<td>{0}</td> ", item.TotalOneOKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold; height: 32px;\"> 电气:</td> "); sb.Append("</tr>"); var StatisticsList3 = GetStatisticsList("EL"); if (StatisticsList3.Count > 0) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">工作名称</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">检查(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">合格(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格率</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in StatisticsList3) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.TotalCheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKNum); sb.AppendFormat("<td>{0}</td> ", item.TotalOKNum); sb.AppendFormat("<td>{0}</td> ", item.OneOKRate); sb.AppendFormat("<td>{0}</td> ", item.TotalOneOKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold; height: 32px;\"> 仪表:</td> "); sb.Append("</tr>"); var StatisticsList4 = GetStatisticsList("IN"); if (StatisticsList4.Count > 0) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">工作名称</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">检查(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">合格(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格率</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in StatisticsList4) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.TotalCheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKNum); sb.AppendFormat("<td>{0}</td> ", item.TotalOKNum); sb.AppendFormat("<td>{0}</td> ", item.OneOKRate); sb.AppendFormat("<td>{0}</td> ", item.TotalOneOKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold; height: 32px;\"> 防腐:</td> "); sb.Append("</tr>"); var StatisticsList5 = GetStatisticsList("EF"); if (StatisticsList5.Count > 0) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">工作名称</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">检查(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">合格(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格率</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in StatisticsList5) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.TotalCheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKNum); sb.AppendFormat("<td>{0}</td> ", item.TotalOKNum); sb.AppendFormat("<td>{0}</td> ", item.OneOKRate); sb.AppendFormat("<td>{0}</td> ", item.TotalOneOKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold; height: 32px;\"> 消防:</td> "); sb.Append("</tr>"); var StatisticsList6 = GetStatisticsList("XF"); if (StatisticsList6.Count > 0) { sb.Append("<tr>"); sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">工作名称</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">检查(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">合格(点)</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格率</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in StatisticsList6) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.TotalCheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKNum); sb.AppendFormat("<td>{0}</td> ", item.TotalOKNum); sb.AppendFormat("<td>{0}</td> ", item.OneOKRate); sb.AppendFormat("<td>{0}</td> ", item.TotalOneOKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold;\"> 3)无损检测统计 </td> "); sb.Append("</tr>"); DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); SqlParameter[] values = new SqlParameter[] { new SqlParameter("@projectId", this.CurrUser.LoginProjectId), new SqlParameter("@startDate",startDate), new SqlParameter("@endDate",endDate) }; DataTable dt = BLL.SQLHelper.GetDataTableRunProc("Sp_ProcessControl_NondestructiveTestStatisc", values); if (dt.Rows.Count > 0) { sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">分包商</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">探伤部位</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">RT数量</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">一次合格率</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; for (int i = 0; i < dt.Rows.Count; i++) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", dt.Rows[i][0].ToString()); sb.AppendFormat("<td>{0}</td> ", dt.Rows[i][1].ToString()); sb.AppendFormat("<td>{0}</td> ", dt.Rows[i][2].ToString()); sb.AppendFormat("<td>{0}</td> ", dt.Rows[i][3].ToString()); sb.AppendFormat("<td>{0}</td> ", dt.Rows[i][4].ToString()); sb.AppendFormat("<td>{0}</td> ", dt.Rows[i][5].ToString()); sb.AppendFormat("<td>{0}</td> ", dt.Rows[i][6].ToString()); sb.AppendFormat("<td>{0}</td> ", dt.Rows[i][7].ToString()); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold;\"> 4)NCR统计 </td> "); sb.Append("</tr>"); var NCRReportStatisc = getNCRReportStatiscList(); if (NCRReportStatisc.Count > 0) { sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">接收单位</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周已完成</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计完成比例</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in NCRReportStatisc) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold;\"> 5)设计变更统计 </td> "); sb.Append("</tr>"); var DesginStatisticsList = GetDesginStatisticsList(); if (DesginStatisticsList.Count > 0) { sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">专业</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">发布数量</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">业主批准数量</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">完成情况</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in DesginStatisticsList) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.WorkName); sb.AppendFormat("<td>{0}</td> ", item.CheckNum); sb.AppendFormat("<td>{0}</td> ", item.TotalCheckNum); sb.AppendFormat("<td>{0}</td> ", item.OKNum); sb.AppendFormat("<td>{0}</td> ", item.TotalOKNum); sb.AppendFormat("<td>{0}</td> ", item.OneOKRate); sb.AppendFormat("<td>{0}</td> ", item.TotalOneOKRate); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align = \"left\" valign = \"middle\" style = \"font-size: 9pt; height: 32px; font-weight: bold;\"> 6)合格焊工统计 </td> "); sb.Append("</tr>"); var PassWelderStatiscList = GetPassWelderStatiscList(); if (PassWelderStatiscList.Count > 0) { sb.Append("<td>"); sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">序号</th>"); sb.Append("<th align = \"center\" rowspan=\"2\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">分包商</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">管道焊工</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">钢结构焊工</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">设备焊工</th>"); sb.Append("<th align = \"center\" colspan=\"2\" rowspan=\"1\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">其他</th>"); sb.Append("</tr><tr><th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周上岗</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周上岗</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周上岗</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">本周上岗</th>"); sb.Append("<th align = \"center\" style=\"background-color:#ECF5FF;border:1px solid #000000;\">累计</th>"); sb.Append("</tr>"); int num = 1; foreach (var item in PassWelderStatiscList) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.UnitName); sb.AppendFormat("<td>{0}</td> ", item.PipeMountGuard); sb.AppendFormat("<td>{0}</td> ", item.PipeTotal); sb.AppendFormat("<td>{0}</td> ", item.SteelStructureMountGuard); sb.AppendFormat("<td>{0}</td> ", item.SteelStructureTotal); sb.AppendFormat("<td>{0}</td> ", item.EquipmentMountGuard); sb.AppendFormat("<td>{0}</td> ", item.EquipmentTotal); sb.AppendFormat("<td>{0}</td> ", item.OtherMountGuard); sb.AppendFormat("<td>{0}</td> ", item.OtherTotal); sb.Append("</tr>"); num++; } sb.Append("</table>"); sb.Append("</td>"); sb.Append("</tr>"); } sb.Append("<tr>"); sb.Append("<td align=\"left\" valign=\"middle\" style=\"width: 50 %; height: 32px; font - size: 10pt;font - weight: bold\">4、下周质量控制重点 </td> "); sb.Append("</tr>"); sb.Append("<tr>"); sb.Append("<td>"); if (nextQualityControlLists.Count > 0) { sb.Append("<table cellspacing =\"0\" align = \"Justify\" rules = \"all\" border = \"1\" style = \"width:100%;border-collapse:collapse; \">"); sb.Append("<tr>"); sb.Append("<td >序号</td>"); sb.Append("<td >下周控制量重点</td>"); sb.Append("</tr>"); int num = 1; foreach (var item in nextQualityControlLists) { sb.Append("<tr>"); sb.AppendFormat("<td>{0}</td> ", num); sb.AppendFormat("<td>{0}</td> ", item.NextQualityControlContent); sb.Append("</tr>"); num++; } sb.Append("</table>"); } sb.Append("</td>"); sb.Append("</tr>"); sb.Append("</table>"); } return sb.ToString(); } public List<Model.CheckStatisc> GetStatisticsList(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<Model.CheckStatisc> StatisticsList = new List<Model.CheckStatisc>(); Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); 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<string> workNames = new List<string>(); //专业下所有集合 List<Model.View_CQMS_InspectionManagementDetail> totalManagementList = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, projectStartDate, endDate, false); //专业下当期集合 List<Model.View_CQMS_InspectionManagementDetail> managementList = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, startDate, endDate, false); if (cNProfessionalId == BLL.Const.CNProfessionalCVId) //土建按单位工程统计 { foreach (var item in totalManagementList) { Model.WBS_BreakdownProject breakdownProject = BLL.BreakdownProjectService.GetBreakdownProjectById(item.ControlPointType); if (breakdownProject != null) { Model.WBS_DivisionProject divisionProject = BLL.DivisionProjectService.GetDivisionProjectById(breakdownProject.DivisionProjectId); if (divisionProject != null) { Model.WBS_UnitWork ins = BLL.UnitWorkService.getUnitWorkByUnitWorkId(divisionProject.UnitWorkId); if (ins != null) { if (!workNames.Contains(ins.UnitWorkName)) //新增记录 { Model.CheckStatisc checkStatisc = new Model.CheckStatisc(); checkStatisc.Num = i; checkStatisc.WorkName = ins.UnitWorkName; workNames.Add(ins.UnitWorkName); checkStatisc.CheckNum = managementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc.TotalCheckNum = totalManagementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc.OKNum = managementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); StatisticsList.Add(checkStatisc); i++; } else //更新已有记录 { Model.CheckStatisc checkStatisc1 = StatisticsList.FirstOrDefault(x => x.WorkName == ins.UnitWorkName); checkStatisc1.CheckNum += managementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc1.TotalCheckNum += totalManagementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc1.OKNum += managementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); checkStatisc1.TotalOKNum += totalManagementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); } } } } } } else { foreach (var item in totalManagementList) { Model.WBS_BreakdownProject breakdownProject = BLL.BreakdownProjectService.GetBreakdownProjectById(item.ControlPointType); if (breakdownProject != null) { Model.WBS_DivisionProject divisionProject = BLL.DivisionProjectService.GetDivisionProjectById(breakdownProject.DivisionProjectId); if (divisionProject != null) { if (!workNames.Contains(divisionProject.DivisionName)) //新增记录 { Model.CheckStatisc checkStatisc = new Model.CheckStatisc(); checkStatisc.Num = i; checkStatisc.WorkName = divisionProject.DivisionName; workNames.Add(divisionProject.DivisionName); checkStatisc.CheckNum = managementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc.TotalCheckNum = totalManagementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc.OKNum = managementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); StatisticsList.Add(checkStatisc); i++; } else //更新已有记录 { Model.CheckStatisc checkStatisc1 = StatisticsList.FirstOrDefault(x => x.WorkName == divisionProject.DivisionName); checkStatisc1.CheckNum += managementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc1.TotalCheckNum += totalManagementList.Count(x => x.ControlPointType == item.ControlPointType); checkStatisc1.OKNum += managementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); checkStatisc1.TotalOKNum += totalManagementList.Count(x => x.ControlPointType == item.ControlPointType && x.IsOnceQualified == true); } } } } } 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%"; } } if (StatisticsList.Count() > 0) //增加总计 { Model.CheckStatisc StatisticsLast = new Model.CheckStatisc(); StatisticsLast.Num = StatisticsList.Count() + 1; StatisticsLast.WorkName = "合计"; foreach (Model.CheckStatisc item in StatisticsList) { StatisticsLast.CheckNum += item.CheckNum; StatisticsLast.TotalCheckNum += item.TotalCheckNum; StatisticsLast.OKNum += item.OKNum; StatisticsLast.TotalOKNum += item.TotalOKNum; } if (StatisticsLast.CheckNum != 0)//被除数不能为零 { StatisticsLast.OneOKRate = Math.Round((double)StatisticsLast.OKNum / (double)StatisticsLast.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { StatisticsLast.OneOKRate = "0%"; } if (StatisticsLast.TotalCheckNum != 0)//被除数不能为零 { StatisticsLast.TotalOneOKRate = Math.Round((double)StatisticsLast.TotalOKNum / (double)StatisticsLast.TotalCheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { StatisticsLast.TotalOneOKRate = "0%"; } StatisticsList.Add(StatisticsLast); } return StatisticsList; } /// <summary> /// 获取NCR /// </summary> /// <returns></returns> public List<Model.NCRReportStatisc> getNCRReportStatiscList() { DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); List<Model.NCRReportStatisc> StatisticsList = new List<Model.NCRReportStatisc>(); int i = 1; 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; } //所有集合 List<Model.Comprehensive_NCRManagement> totalManagementList = BLL.NCRManagementService.GetNCRManagementListByDate(this.CurrUser.LoginProjectId, startDate, endDate); List<string> unitNames = (from x in totalManagementList select x.ReceiveUnit).Distinct().ToList(); foreach (var item in unitNames) { //当期集合 List<Model.Comprehensive_NCRManagement> managementList = BLL.NCRManagementService.GetNCRManagementListByUnitNameAndDate(this.CurrUser.LoginProjectId, item, startDate, endDate); //累计集合 List<Model.Comprehensive_NCRManagement> sumManagementList = BLL.NCRManagementService.GetNCRManagementListByUnitNameAndDate(this.CurrUser.LoginProjectId, item, projectStartDate, endDate); Model.NCRReportStatisc NCRStatisc = new Model.NCRReportStatisc(); NCRStatisc.Num = i; NCRStatisc.WorkName = BLL.UnitService.getUnitNamesUnitIds(item); NCRStatisc.OKNum = managementList.Count(x => x.CompleteDate != null); NCRStatisc.CheckNum = sumManagementList.Count(x => x.CompleteDate != null); if (NCRStatisc.CheckNum != 0)//被除数不能为零 { NCRStatisc.OKRate = Math.Round((double)NCRStatisc.OKNum / (double)NCRStatisc.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { NCRStatisc.OKRate = "0%"; } StatisticsList.Add(NCRStatisc); i++; } if (StatisticsList.Count() > 0) //增加总计 { Model.NCRReportStatisc StatisticsLast = new Model.NCRReportStatisc(); StatisticsLast.Num = StatisticsList.Count() + 1; StatisticsLast.WorkName = "合计"; foreach (Model.NCRReportStatisc item in StatisticsList) { StatisticsLast.OKNum += item.OKNum; StatisticsLast.CheckNum += item.CheckNum; } if (StatisticsLast.CheckNum != 0)//被除数不能为零 { StatisticsLast.OKRate = Math.Round((double)StatisticsLast.OKNum / (double)StatisticsLast.CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { StatisticsLast.OKRate = "0%"; } StatisticsList.Add(StatisticsLast); } return StatisticsList; } /// <summary> /// 获取设计变更统计 /// </summary> /// <returns></returns> public List<Model.CheckStatisc> GetDesginStatisticsList() { DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); DateTime projectStartDate = Convert.ToDateTime("2015-01-01"); List<Model.CheckStatisc> StatisticsList = new List<Model.CheckStatisc>(); Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); if (project != null) { if (project.StartDate != null) { projectStartDate = Convert.ToDateTime(project.StartDate); } } int i = 1; var cNProfessionals = from x in Funs.DB.Base_CNProfessional orderby x.SortIndex select x; foreach (var item in cNProfessionals) { //专业下所有集合 List<Model.Comprehensive_DesignChangeOrder> totalManagementList = BLL.DesignChangeOrderService.GetDesignChangeOrderListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, item.CNProfessionalId, projectStartDate, endDate); //专业下当期集合 List<Model.Comprehensive_DesignChangeOrder> managementList = BLL.DesignChangeOrderService.GetDesignChangeOrderListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, item.CNProfessionalId, startDate, endDate); Model.CheckStatisc checkStatisc = new Model.CheckStatisc(); checkStatisc.Num = i; checkStatisc.WorkName = item.ProfessionalName; checkStatisc.CheckNum = managementList.Count(); checkStatisc.TotalCheckNum = totalManagementList.Count(); checkStatisc.OKNum = managementList.Count(x => x.ApprovalDate != null); checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ApprovalDate != null); checkStatisc.OneOKRate = managementList.Count(x => x.HandleState == "3").ToString(); //当期完成数 checkStatisc.TotalOneOKRate = totalManagementList.Count(x => x.HandleState == "3").ToString(); //累计完成数 if (checkStatisc.CheckNum > 0 || checkStatisc.TotalCheckNum > 0 || checkStatisc.OKNum > 0 || checkStatisc.TotalOKNum > 0) { StatisticsList.Add(checkStatisc); i++; } } if (StatisticsList.Count() > 0) //增加总计 { Model.CheckStatisc StatisticsLast = new Model.CheckStatisc(); StatisticsLast.Num = StatisticsList.Count() + 1; StatisticsLast.WorkName = "合计"; foreach (Model.CheckStatisc item in StatisticsList) { StatisticsLast.CheckNum += item.CheckNum; StatisticsLast.TotalCheckNum += item.TotalCheckNum; StatisticsLast.OKNum += item.OKNum; StatisticsLast.TotalOKNum += item.TotalOKNum; StatisticsLast.OneOKRate = (Convert.ToInt32(StatisticsLast.OneOKRate) + Convert.ToInt32(item.OneOKRate)).ToString(); StatisticsLast.TotalOneOKRate = (Convert.ToInt32(StatisticsLast.TotalOneOKRate) + Convert.ToInt32(item.TotalOneOKRate)).ToString(); } StatisticsList.Add(StatisticsLast); } return StatisticsList; } /// <summary> /// 获取合格焊工统计 /// </summary> /// <returns></returns> public List<Model.PassWelderStatisc> GetPassWelderStatiscList() { DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); DateTime projectStartDate = Convert.ToDateTime("2015-01-01"); List<Model.PassWelderStatisc> StatisticsList = new List<Model.PassWelderStatisc>(); Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); if (project != null) { if (project.StartDate != null) { projectStartDate = Convert.ToDateTime(project.StartDate); } } int i = 1; 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 }; foreach (var item in units) { //单位下所有集合 List<Model.BS_Welder> totalWelderList = BLL.PersonManageService.GetWelderListByUnitId(this.CurrUser.LoginProjectId, item.UnitId); List<Model.BS_Welder> welderList = BLL.PersonManageService.GetWelderListByUnitIdAndDate(this.CurrUser.LoginProjectId, item.UnitId, startDate, endDate); Model.PassWelderStatisc passWelderStatisc = new Model.PassWelderStatisc(); passWelderStatisc.Num = i; passWelderStatisc.UnitName = item.UnitName; passWelderStatisc.PipeMountGuard = welderList.Count(x => x.WED_Remark == "管道"); passWelderStatisc.PipeTotal = totalWelderList.Count(x => x.WED_Remark == "管道"); passWelderStatisc.SteelStructureMountGuard = welderList.Count(x => x.WED_Remark == "钢结构"); passWelderStatisc.SteelStructureTotal = totalWelderList.Count(x => x.WED_Remark == "钢结构"); passWelderStatisc.EquipmentMountGuard = welderList.Count(x => x.WED_Remark == "设备"); passWelderStatisc.EquipmentTotal = totalWelderList.Count(x => x.WED_Remark == "设备"); passWelderStatisc.OtherMountGuard = welderList.Count(x => x.WED_Remark == "其他"); passWelderStatisc.OtherTotal = totalWelderList.Count(x => x.WED_Remark == "其他"); StatisticsList.Add(passWelderStatisc); i++; } if (StatisticsList.Count() > 0)//增加总计 { Model.PassWelderStatisc passWelderStatisc = new Model.PassWelderStatisc(); passWelderStatisc.Num = StatisticsList.Count() + 1; passWelderStatisc.UnitName = "合计"; foreach (Model.PassWelderStatisc item in StatisticsList) { passWelderStatisc.PipeMountGuard += item.PipeMountGuard; passWelderStatisc.PipeTotal += item.PipeTotal; passWelderStatisc.SteelStructureMountGuard += item.SteelStructureMountGuard; passWelderStatisc.SteelStructureTotal += item.SteelStructureTotal; passWelderStatisc.EquipmentMountGuard += item.EquipmentMountGuard; passWelderStatisc.EquipmentTotal += item.EquipmentTotal; passWelderStatisc.OtherMountGuard += item.OtherMountGuard; passWelderStatisc.OtherTotal += item.OtherTotal; } StatisticsList.Add(passWelderStatisc); } return StatisticsList; } #endregion /// <summary> /// 重载VerifyRenderingInServerForm方法,否则运行的时候会出现如下错误提示:“类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内” /// </summary> /// <param name="control"></param> public override void VerifyRenderingInServerForm(Control control) { } } }