CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/CQMS/ManageReport/WeekReportPrint.aspx.cs

1831 lines
107 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 && x.CNProfessionalId == BLL.Const.EQCNProfessionalId && x.EquipmentOrMatail == "设备" 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.CNProfessionalId == BLL.Const.EQCNProfessionalId && x.EquipmentOrMatail == "设备" && 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
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.EquipmentOrMatail == "材料"
&& x.InspectionDate >= Convert.ToDateTime(this.txtStartDate.Text)
&& x.InspectionDate <= Convert.ToDateTime(this.txtEndDate.Text)
&& x.UnitId == BLL.Const.UnitId_CWCEC
select x).Count();
this.txt5.Text = Uequipments.ToString();
var Tequipments = (from x in Funs.DB.Comprehensive_InspectionEquipment
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.EquipmentOrMatail == "材料"
&& x.UnitId == BLL.Const.UnitId_CWCEC
select x).Count();
this.txt6.Text = Tequipments.ToString();
var CUequipments = (from x in Funs.DB.Comprehensive_InspectionEquipment
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.EquipmentOrMatail == "材料"
&& x.InspectionDate >= Convert.ToDateTime(this.txtStartDate.Text)
&& x.InspectionDate <= Convert.ToDateTime(this.txtEndDate.Text)
&& x.UnitId != BLL.Const.UnitId_CWCEC
select x).Count();
this.txt7.Text = CUequipments.ToString();
var CTequipments = (from x in Funs.DB.Comprehensive_InspectionEquipment
where x.ProjectId == this.CurrUser.LoginProjectId
&& x.EquipmentOrMatail == "材料"
&& x.UnitId != BLL.Const.UnitId_CWCEC
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) + "&nbsp;至" + 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\">&nbsp;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\">&nbsp; 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>", "&nbsp;&nbsp;&nbsp;设备共计(" + 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>", "&nbsp;&nbsp;&nbsp;五环本周材料报验(" + txt5.Text + ")批,累计(" + txt6.Text + ")批;");
sb.Append("</tr>");
sb.Append("<tr>");
sb.AppendFormat("<td style = \"height: 32px;font-size: 10pt;\">{0}</td>", "&nbsp;&nbsp;&nbsp;分包商本周材料报验(" + txt7.Text + ")批,累计(" + txt8.Text + ")批");
sb.Append("</tr>");
sb.Append("<tr>");
sb.AppendFormat("<td style = \"height: 50px; font-size: 10pt;\">{0}</td>", "&nbsp;&nbsp;&nbsp;其它:" + 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\"> &nbsp; 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;\">&nbsp; 土建:</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;\">&nbsp; 设备:</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;\">&nbsp; 管道:</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;\">&nbsp; 电气:</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;\">&nbsp; 仪表:</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;\">&nbsp; 防腐:</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;\">&nbsp; 消防:</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;\"> &nbsp; 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;\"> &nbsp;4NCR统计 </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;\"> &nbsp;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;\"> &nbsp;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)
{
}
}
}