1420 lines
68 KiB
C#
1420 lines
68 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Web;
|
|
using System.Web.UI;
|
|
using System.Web.UI.WebControls;
|
|
using BLL;
|
|
using SgManager.AI;
|
|
using AspNet = System.Web.UI.WebControls;
|
|
namespace FineUIPro.Web.CQMS.ManageReport
|
|
{
|
|
public partial class MonthReportEdit : 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.Report_ConstructionProblems> constructionProblemsLists = new List<Model.Report_ConstructionProblems>();
|
|
|
|
/// <summary>
|
|
/// 定义下周质量控制重点集合
|
|
/// </summary>
|
|
public static List<Model.Report_NextQualityControl> nextQualityControlLists = new List<Model.Report_NextQualityControl>();
|
|
#endregion
|
|
|
|
#region 加载页面
|
|
/// <summary>
|
|
/// 加载页面
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void Page_Load(object sender, EventArgs e)
|
|
{
|
|
if (!IsPostBack)
|
|
{
|
|
this.EnableViewState=true;
|
|
this.lblProjectName.Text = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId).ProjectName;
|
|
this.ReportId = Request.Params["reportId"];
|
|
if (!string.IsNullOrEmpty(Request.Params["view"]))
|
|
{
|
|
this.btnSave.Visible = false;
|
|
this.btnPrint.Visible = false;
|
|
}
|
|
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);
|
|
}
|
|
}
|
|
//this.txtPeriod.ReadOnly = true;
|
|
//this.txtStartDate.Enabled = false;
|
|
//this.txtEndDate.Enabled = false;
|
|
GetThisWeekOrMonthContentList(this.ReportId);//本月主要工作内容
|
|
GetRowMaterialProblemList(this.ReportId);//原材料问题
|
|
GetConstructionProblemsList(this.ReportId);//施工过程问题
|
|
GetNextQualityControlList(this.ReportId);//下月质量控制重点
|
|
}
|
|
else
|
|
{
|
|
|
|
this.txtStartDate.Text = string.IsNullOrEmpty(Request.Params["startdate"])? string.Format("{0:yyyy-MM-dd}", DateTime.Now): Request.Params["startdate"];
|
|
this.txtEndDate.Text = string.IsNullOrEmpty(Request.Params["enddate"]) ? string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(this.txtStartDate.Text).AddMonths(1).AddDays(-1)): Request.Params["enddate"];
|
|
//this.txtStartDate.Text = string.Format("{0:yyyy-MM-dd}", "2022-11-02 01:01:00");
|
|
//this.txtEndDate.Text = string.Format("{0:yyyy-MM-dd}", "2023-10-18 01:01:00");
|
|
}
|
|
CheckLotBindStatisc("CV");//检验批统计:土建
|
|
CheckLotBindStatisc("EQ");//检验批统计:设备
|
|
CheckLotBindStatisc("PP");//检验批统计:管道
|
|
CheckLotBindStatisc("EL");//检验批统计:电气
|
|
CheckLotBindStatisc("IN");//检验批统计:仪表
|
|
CheckLotBindStatisc("FF");//检验批统计:反腐
|
|
CheckLotBindStatisc("XF");//检验批统计:消防
|
|
GetComprehensive();//综合管理
|
|
BindStatisc();//无损检测统计
|
|
NCRBindStatisc();//NCR统计
|
|
DesignChangeOrderBindStatisc();//设计变更统计
|
|
PassWelderBindStatisc();//合格焊工统计
|
|
ConstructionStatisticsr();//施工方案统计
|
|
}
|
|
}
|
|
|
|
/// <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 += Funs.GetNewIntOrZero(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 += Funs.GetNewIntOrZero(item.Counts);
|
|
}
|
|
this.txt2.Text = Convert.ToString(thisWeekCount);
|
|
//if (Convert.ToDecimal(this.txt3.Text.Trim()) > 0)
|
|
//{
|
|
// this.txt4.Text = Math.Round((double)(Convert.ToDecimal(this.txt2.Text.Trim()) / Convert.ToDecimal(this.txt3.Text.Trim())) * 100, 2) + "%";
|
|
//}
|
|
//else
|
|
//{
|
|
// this.txt4.Text = "0";
|
|
//}
|
|
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;
|
|
}
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 计算设备报验比率
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void txt1_TextChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
int i = Convert.ToInt32(this.txt3.Text.Trim());
|
|
if (txt1.Text != "0" && txt1.Text != string.Empty)
|
|
{
|
|
this.txt4.Text = Math.Round((double)(i / (double)Convert.ToInt32(this.txt1.Text.Trim())) * 100, 2) + "%";
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
ScriptManager.RegisterStartupScript(this, typeof(string), "_alert", "alert('输入格式错误,【台数】必须是整数!')", true);
|
|
return;
|
|
}
|
|
}
|
|
|
|
/// <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.GetConstructionProblemsByReportId(reportId);
|
|
this.gvConstructionProblems.DataSourceID = null;
|
|
this.gvConstructionProblems.DataSource = constructionProblemsLists;
|
|
this.gvConstructionProblems.DataBind();
|
|
}
|
|
|
|
/// <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();
|
|
}
|
|
#endregion
|
|
|
|
#region 本月主要内容
|
|
/// <summary>
|
|
/// 增加本月主要内容
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnAddThisWeekAndMonthContent_Click(object sender, ImageClickEventArgs e)
|
|
{
|
|
thisWeekOrMonthContentLists.Clear();
|
|
saveThisWeekAndMonthContent();
|
|
Model.Report_ThisWeekOrMonthContent newThisWeekOrMonthContent = new Model.Report_ThisWeekOrMonthContent();
|
|
newThisWeekOrMonthContent.ContentId = SQLHelper.GetNewID(typeof(Model.Report_ThisWeekOrMonthContent));
|
|
thisWeekOrMonthContentLists.Add(newThisWeekOrMonthContent);
|
|
this.gvThisWeekOrMonthContent.DataSourceID = null;
|
|
this.gvThisWeekOrMonthContent.DataSource = thisWeekOrMonthContentLists;
|
|
this.gvThisWeekOrMonthContent.DataBind();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检查并保存本月主要内容集合
|
|
/// </summary>
|
|
private void saveThisWeekAndMonthContent()
|
|
{
|
|
thisWeekOrMonthContentLists.Clear();
|
|
for (int i = 0; i < gvThisWeekOrMonthContent.Rows.Count; i++)
|
|
{
|
|
Model.Report_ThisWeekOrMonthContent newThisWeekOrMonthContent = new Model.Report_ThisWeekOrMonthContent();
|
|
AspNet.TextBox txtContents = (AspNet.TextBox)(this.gvThisWeekOrMonthContent.Rows[i].FindControl("txtContents"));
|
|
AspNet.Label lblContentId = (AspNet.Label)(this.gvThisWeekOrMonthContent.Rows[i].FindControl("lblContentId"));
|
|
newThisWeekOrMonthContent.Contents = txtContents.Text.Trim();
|
|
newThisWeekOrMonthContent.ContentId = lblContentId.Text.Trim();
|
|
thisWeekOrMonthContentLists.Add(newThisWeekOrMonthContent);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 本月主要内容行点击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void gvThisWeekOrMonthContent_RowCommand(object sender, GridViewCommandEventArgs e)
|
|
{
|
|
saveThisWeekAndMonthContent();
|
|
string contentId = e.CommandArgument.ToString();
|
|
if (e.CommandName == "del")
|
|
{
|
|
foreach (Model.Report_ThisWeekOrMonthContent item in thisWeekOrMonthContentLists)
|
|
{
|
|
if (item.ContentId == contentId)
|
|
{
|
|
thisWeekOrMonthContentLists.Remove(item);
|
|
break;
|
|
}
|
|
}
|
|
this.gvThisWeekOrMonthContent.DataSourceID = null;
|
|
this.gvThisWeekOrMonthContent.DataSource = thisWeekOrMonthContentLists;
|
|
this.gvThisWeekOrMonthContent.DataBind();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 原材料问题
|
|
/// <summary>
|
|
/// 增加原材料问题
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnAddRowMaterialProblem_Click(object sender, ImageClickEventArgs e)
|
|
{
|
|
rowMaterialProblemLists.Clear();
|
|
saveRowMaterialProblem();
|
|
Model.Report_RowMaterialProblem newRowMaterialProblem = new Model.Report_RowMaterialProblem();
|
|
newRowMaterialProblem.RowMaterialProblemId = SQLHelper.GetNewID(typeof(Model.Report_RowMaterialProblem));
|
|
rowMaterialProblemLists.Add(newRowMaterialProblem);
|
|
this.gvRowMaterialProblem.DataSourceID = null;
|
|
this.gvRowMaterialProblem.DataSource = rowMaterialProblemLists;
|
|
this.gvRowMaterialProblem.DataBind();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检查并保存原材料问题集合
|
|
/// </summary>
|
|
private void saveRowMaterialProblem()
|
|
{
|
|
rowMaterialProblemLists.Clear();
|
|
for (int i = 0; i < gvRowMaterialProblem.Rows.Count; i++)
|
|
{
|
|
Model.Report_RowMaterialProblem newRowMaterialProblem = new Model.Report_RowMaterialProblem();
|
|
AspNet.TextBox txtUnit = (AspNet.TextBox)(this.gvRowMaterialProblem.Rows[i].FindControl("txtUnit"));
|
|
AspNet.TextBox txtProblemDesrioption = (AspNet.TextBox)(this.gvRowMaterialProblem.Rows[i].FindControl("txtProblemDesrioption"));
|
|
AspNet.TextBox txtTreatmentMeasures = (AspNet.TextBox)(this.gvRowMaterialProblem.Rows[i].FindControl("txtTreatmentMeasures"));
|
|
AspNet.TextBox txtProcessingResults = (AspNet.TextBox)(this.gvRowMaterialProblem.Rows[i].FindControl("txtProcessingResults"));
|
|
AspNet.TextBox txtRemark = (AspNet.TextBox)(this.gvRowMaterialProblem.Rows[i].FindControl("txtRemark"));
|
|
AspNet.Label lblRowMaterialProblemId = (AspNet.Label)(this.gvRowMaterialProblem.Rows[i].FindControl("lblRowMaterialProblemId"));
|
|
|
|
newRowMaterialProblem.UnitId = txtUnit.Text.Trim();
|
|
newRowMaterialProblem.ProblemDesrioption = txtProblemDesrioption.Text.Trim();
|
|
newRowMaterialProblem.TreatmentMeasures = txtTreatmentMeasures.Text.Trim();
|
|
newRowMaterialProblem.ProcessingResults = txtProcessingResults.Text.Trim();
|
|
newRowMaterialProblem.Remark = txtRemark.Text.Trim();
|
|
newRowMaterialProblem.RowMaterialProblemId = lblRowMaterialProblemId.Text.Trim();
|
|
rowMaterialProblemLists.Add(newRowMaterialProblem);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 原材料问题行点击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void gvRowMaterialProblem_RowCommand(object sender, GridViewCommandEventArgs e)
|
|
{
|
|
saveRowMaterialProblem();
|
|
string rowMaterialProblemId = e.CommandArgument.ToString();
|
|
if (e.CommandName == "del")
|
|
{
|
|
foreach (Model.Report_RowMaterialProblem item in rowMaterialProblemLists)
|
|
{
|
|
if (item.RowMaterialProblemId == rowMaterialProblemId)
|
|
{
|
|
rowMaterialProblemLists.Remove(item);
|
|
break;
|
|
}
|
|
}
|
|
this.gvRowMaterialProblem.DataSourceID = null;
|
|
this.gvRowMaterialProblem.DataSource = rowMaterialProblemLists;
|
|
this.gvRowMaterialProblem.DataBind();
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 施工过程问题
|
|
/// <summary>
|
|
/// 增加施工过程问题
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnAddConstructionProblems_Click(object sender, ImageClickEventArgs e)
|
|
{
|
|
constructionProblemsLists.Clear();
|
|
saveConstructionProblems();
|
|
Model.Report_ConstructionProblems newConstructionProblems = new Model.Report_ConstructionProblems();
|
|
newConstructionProblems.ConstructionProblemsId = SQLHelper.GetNewID(typeof(Model.Report_ConstructionProblems));
|
|
constructionProblemsLists.Add(newConstructionProblems);
|
|
this.gvConstructionProblems.DataSourceID = null;
|
|
this.gvConstructionProblems.DataSource = constructionProblemsLists;
|
|
this.gvConstructionProblems.DataBind();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检查并保存施工过程问题集合
|
|
/// </summary>
|
|
private void saveConstructionProblems()
|
|
{
|
|
constructionProblemsLists.Clear();
|
|
for (int i = 0; i < this.gvConstructionProblems.Rows.Count; i++)
|
|
{
|
|
Model.Report_ConstructionProblems newConstructionProblems = new Model.Report_ConstructionProblems();
|
|
AspNet.DropDownList drpUnitId = (AspNet.DropDownList)(this.gvConstructionProblems.Rows[i].FindControl("drpUnitId"));
|
|
AspNet.TextBox txtProblemDesrioption = (AspNet.TextBox)(this.gvConstructionProblems.Rows[i].FindControl("txtProblemDesrioption"));
|
|
AspNet.TextBox txtTreatmentMeasures = (AspNet.TextBox)(this.gvConstructionProblems.Rows[i].FindControl("txtTreatmentMeasures"));
|
|
AspNet.TextBox txtProcessingResults = (AspNet.TextBox)(this.gvConstructionProblems.Rows[i].FindControl("txtProcessingResults"));
|
|
AspNet.TextBox txtRemark = (AspNet.TextBox)(this.gvConstructionProblems.Rows[i].FindControl("txtRemark"));
|
|
AspNet.Label lblConstructionProblemsId = (AspNet.Label)(this.gvConstructionProblems.Rows[i].FindControl("lblConstructionProblemsId"));
|
|
if (drpUnitId.SelectedValue != "0")
|
|
{
|
|
newConstructionProblems.UnitId = drpUnitId.SelectedValue;
|
|
}
|
|
newConstructionProblems.ProblemDesrioption = txtProblemDesrioption.Text.Trim();
|
|
newConstructionProblems.TreatmentMeasures = txtTreatmentMeasures.Text.Trim();
|
|
newConstructionProblems.ProcessingResults = txtProcessingResults.Text.Trim();
|
|
newConstructionProblems.Remark = txtRemark.Text.Trim();
|
|
newConstructionProblems.ConstructionProblemsId = lblConstructionProblemsId.Text.Trim();
|
|
constructionProblemsLists.Add(newConstructionProblems);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 施工过程问题行点击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void gvConstructionProblems_RowCommand(object sender, GridViewCommandEventArgs e)
|
|
{
|
|
saveConstructionProblems();
|
|
string constructionProblemsId = e.CommandArgument.ToString();
|
|
if (e.CommandName == "del")
|
|
{
|
|
foreach (Model.Report_ConstructionProblems item in constructionProblemsLists)
|
|
{
|
|
if (item.ConstructionProblemsId == constructionProblemsId)
|
|
{
|
|
constructionProblemsLists.Remove(item);
|
|
break;
|
|
}
|
|
}
|
|
this.gvConstructionProblems.DataSourceID = null;
|
|
this.gvConstructionProblems.DataSource = constructionProblemsLists;
|
|
this.gvConstructionProblems.DataBind();
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 绑定行后激发
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void gvConstructionProblems_RowDataBound(object sender, GridViewRowEventArgs e)
|
|
{
|
|
for (int i = 0; i < this.gvConstructionProblems.Rows.Count; i++)
|
|
{
|
|
AspNet.DropDownList drpUnitId = (AspNet.DropDownList)(this.gvConstructionProblems.Rows[i].FindControl("drpUnitId"));
|
|
AspNet.HiddenField hdUnitId = (AspNet.HiddenField)(this.gvConstructionProblems.Rows[i].FindControl("hdUnitId"));
|
|
Funs.PleaseSelect(drpUnitId);
|
|
drpUnitId.Items.AddRange(BLL.UnitService.drpUnitItemListByProjectId(this.CurrUser.LoginProjectId));
|
|
if (!string.IsNullOrEmpty(hdUnitId.Value))
|
|
{
|
|
drpUnitId.SelectedValue = hdUnitId.Value;
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 检验批统计
|
|
#region 绑定GridView
|
|
/// <summary>
|
|
/// 绑定
|
|
/// </summary>
|
|
/// <param name="cNProfessionalId"></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);
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/*if (cNProfessionalId == BLL.Const.CNProfessionalCVId) //土建按单位工程统计
|
|
{
|
|
|
|
}
|
|
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);
|
|
}
|
|
else //新增本周/月无验收数据的也需要列出表格
|
|
{
|
|
|
|
Model.CheckStatisc StatisticsLast = new Model.CheckStatisc();
|
|
StatisticsLast.Num = StatisticsList.Count() + 1;
|
|
StatisticsLast.WorkName = "合计";
|
|
StatisticsLast.CheckNum =0;
|
|
StatisticsLast.TotalCheckNum = 0;
|
|
StatisticsLast.OKNum = 0;
|
|
StatisticsLast.TotalOKNum = 0;
|
|
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();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
/// <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.CurrentPeriodOkNum = managementList.Count(x => x.CompleteDate != null);
|
|
NCRStatisc.OKNum = sumManagementList.Count(x => x.CompleteDate != null);
|
|
NCRStatisc.CheckNum = sumManagementList.Count;
|
|
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.CurrentPeriodOkNum += item.CurrentPeriodOkNum;
|
|
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 = "序号#接收单位#本月已完成#累计已完成#NCR总数#累计完成比例";
|
|
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 };
|
|
var db = Funs.DB;
|
|
foreach (var item in units)
|
|
{
|
|
|
|
var query = from c in db.Comprehensive_InspectionPerson
|
|
|
|
join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin
|
|
|
|
from u in unitJoin.DefaultIfEmpty()
|
|
join cn in db.Base_CNProfessional on c.CNProfessionalId equals cn.CNProfessionalId into cnJoin
|
|
|
|
from cn in cnJoin.DefaultIfEmpty()
|
|
join p in db.Base_Post on c.PostId equals p.PostId into postJoin
|
|
|
|
from p in postJoin.DefaultIfEmpty()
|
|
where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId== item.UnitId
|
|
select new
|
|
|
|
{
|
|
c.InspectionPersonId,
|
|
c.ProjectId,
|
|
u.UnitId,
|
|
u.UnitName,
|
|
c.PersonName,
|
|
c.ApprovalTime,
|
|
cn.ProfessionalName,
|
|
p.PostName
|
|
|
|
};
|
|
|
|
//单位下所有集合
|
|
// 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);
|
|
var totalWelderList = query.ToList();
|
|
var welderList = query
|
|
.Where(x=> (x.ApprovalTime >= Convert.ToDateTime(startDate) && x.ApprovalTime <= Convert.ToDateTime(endDate)));
|
|
Model.PassWelderStatisc passWelderStatisc = new Model.PassWelderStatisc();
|
|
passWelderStatisc.Num = i;
|
|
passWelderStatisc.UnitName = item.UnitName;
|
|
passWelderStatisc.PipeMountGuard = welderList.Count(x => x.ProfessionalName == "管道"&&x.PostName== "焊工");
|
|
passWelderStatisc.PipeTotal = totalWelderList.Count(x => x.ProfessionalName == "管道" && x.PostName == "焊工");
|
|
passWelderStatisc.SteelStructureMountGuard = welderList.Count(x => x.ProfessionalName == "土建" && x.PostName == "焊工");
|
|
passWelderStatisc.SteelStructureTotal = totalWelderList.Count(x => x.ProfessionalName == "土建" && x.PostName == "焊工");
|
|
passWelderStatisc.EquipmentMountGuard = welderList.Count(x => x.ProfessionalName == "设备" && x.PostName == "焊工");
|
|
passWelderStatisc.EquipmentTotal = totalWelderList.Count(x => x.ProfessionalName == "设备" && x.PostName == "焊工");
|
|
passWelderStatisc.OtherMountGuard = welderList.Count(x => x.ProfessionalName != "管道" && x.ProfessionalName != "土建" && x.ProfessionalName != "设备" && x.PostName == "焊工");
|
|
passWelderStatisc.OtherTotal = totalWelderList.Count(x => x.ProfessionalName != "管道" && x.ProfessionalName != "土建" && x.ProfessionalName != "设备" && x.PostName == "焊工");
|
|
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
|
|
|
|
#region 施工方案统计
|
|
public void ConstructionStatisticsr()
|
|
{
|
|
var db = Funs.DB;
|
|
DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim());
|
|
DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim());
|
|
DateTime projectStartDate = Convert.ToDateTime("2015-01-01");
|
|
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 q = from x in db.Solution_CQMSConstructSolution
|
|
where x.CompileDate >= Convert.ToDateTime(startDate) && x.CompileDate <= Convert.ToDateTime(endDate)
|
|
group x by new { x.UnitId, State = x.State == "3", ProjectId = x.ProjectId == project.ProjectId }
|
|
into g
|
|
select new
|
|
{
|
|
UnitName=BLL.UnitService.GetUnitNameByUnitId(g.Key.UnitId),
|
|
Count = g.Key.UnitId.Count(),
|
|
};
|
|
var result = q.ToList().Select((item, index) => new
|
|
{
|
|
Index = index + 1,
|
|
item.UnitName,
|
|
item.Count
|
|
|
|
});
|
|
if (result.Count()>0) //增加总计
|
|
{
|
|
int totalCount = result.Sum(item => item.Count);
|
|
result = result.Concat(new[]
|
|
{
|
|
new
|
|
{
|
|
Index = result.Count() + 1,
|
|
UnitName = "合计",
|
|
Count = totalCount
|
|
|
|
}
|
|
});
|
|
}
|
|
|
|
this.gvConstructionStatistics.DataSource = result;
|
|
this.gvConstructionStatistics.DataBind();
|
|
|
|
}
|
|
|
|
protected void gvConstructionStatistics_RowCreated(object sender, GridViewRowEventArgs e)
|
|
{
|
|
if (e.Row.RowType == DataControlRowType.Header)
|
|
{
|
|
string headerStr = "序号#报审单位#完成数量";
|
|
DynamicTHeaderHepler dHelper = new DynamicTHeaderHepler();
|
|
dHelper.SplitTableHeader(e.Row, headerStr);
|
|
}
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 下月质量控制重点
|
|
/// <summary>
|
|
/// 增加下月质量控制重点
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnNextQualityControl_Click(object sender, ImageClickEventArgs e)
|
|
{
|
|
nextQualityControlLists.Clear();
|
|
saveNextQualityControl();
|
|
Model.Report_NextQualityControl newNextQualityControl = new Model.Report_NextQualityControl();
|
|
newNextQualityControl.NextQualityControlId = SQLHelper.GetNewID(typeof(Model.Report_NextQualityControl));
|
|
nextQualityControlLists.Add(newNextQualityControl);
|
|
this.gvNextQualityControl.DataSourceID = null;
|
|
this.gvNextQualityControl.DataSource = nextQualityControlLists;
|
|
this.gvNextQualityControl.DataBind();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 检查并保存集合
|
|
/// </summary>
|
|
private void saveNextQualityControl()
|
|
{
|
|
nextQualityControlLists.Clear();
|
|
for (int i = 0; i < this.gvNextQualityControl.Rows.Count; i++)
|
|
{
|
|
Model.Report_NextQualityControl newNextQualityControl = new Model.Report_NextQualityControl();
|
|
AspNet.TextBox txtNextQualityControlContent = (AspNet.TextBox)(this.gvNextQualityControl.Rows[i].FindControl("txtNextQualityControlContent"));
|
|
AspNet.Label lblNextQualityControlId = (AspNet.Label)(this.gvNextQualityControl.Rows[i].FindControl("lblNextQualityControlId"));
|
|
newNextQualityControl.NextQualityControlContent = txtNextQualityControlContent.Text.Trim();
|
|
newNextQualityControl.NextQualityControlId = lblNextQualityControlId.Text.Trim();
|
|
nextQualityControlLists.Add(newNextQualityControl);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// Grid行点击事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void gvNextQualityControl_RowCommand(object sender, GridViewCommandEventArgs e)
|
|
{
|
|
saveNextQualityControl();
|
|
string nextQualityControlId = e.CommandArgument.ToString();
|
|
if (e.CommandName == "del")
|
|
{
|
|
foreach (Model.Report_NextQualityControl item in nextQualityControlLists)
|
|
{
|
|
if (item.NextQualityControlId == nextQualityControlId)
|
|
{
|
|
nextQualityControlLists.Remove(item);
|
|
break;
|
|
}
|
|
}
|
|
this.gvNextQualityControl.DataSourceID = null;
|
|
this.gvNextQualityControl.DataSource = nextQualityControlLists;
|
|
this.gvNextQualityControl.DataBind();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 时间选择事件
|
|
/// <summary>
|
|
/// 开始时间选择事件
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void txtStartDate_TextChanged(object sender, EventArgs e)
|
|
{
|
|
if (!string.IsNullOrEmpty(this.txtStartDate.Text.Trim()))
|
|
{
|
|
//CheckLotBindStatisc("CV");//检验批统计:土建
|
|
//CheckLotBindStatisc("EQ");//检验批统计:设备
|
|
//CheckLotBindStatisc("PP");//检验批统计:管道
|
|
//CheckLotBindStatisc("EL");//检验批统计:电气
|
|
//CheckLotBindStatisc("IN");//检验批统计:仪表
|
|
//CheckLotBindStatisc("FF");//检验批统计:反腐
|
|
//CheckLotBindStatisc("XF");//检验批统计:消防
|
|
//GetComprehensive();//综合管理
|
|
//BindStatisc();//无损检测统计
|
|
//NCRBindStatisc();//NCR统计
|
|
//DesignChangeOrderBindStatisc();//设计变更统计
|
|
//PassWelderBindStatisc();//合格焊工统计
|
|
//ConstructionStatisticsr();//施工方案统计
|
|
//Response.AddHeader("Refresh", "0");
|
|
string url = Request.Url.ToString();
|
|
if (url.Contains("?"))
|
|
{
|
|
url = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('?'));
|
|
}
|
|
Response.Redirect(url + "?startdate="+txtStartDate.Text+"&enddate="+txtEndDate.Text);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 保存
|
|
/// <summary>
|
|
/// 保存按钮
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnSave_Click(object sender, ImageClickEventArgs e)
|
|
{
|
|
Model.Report_WeekAndMonthReport report = new Model.Report_WeekAndMonthReport();
|
|
report.ProjectId = this.CurrUser.LoginProjectId;
|
|
if (!string.IsNullOrEmpty(this.txtPeriod.Text.Trim()))
|
|
{
|
|
try
|
|
{
|
|
report.Period = Convert.ToInt32(this.txtPeriod.Text.Trim());
|
|
}
|
|
catch (Exception)
|
|
{
|
|
ScriptManager.RegisterStartupScript(this, typeof(string), "_alert", "alert('周期输入格式不正确,请重新输入!')", true);
|
|
return;
|
|
}
|
|
}
|
|
if (!string.IsNullOrEmpty(this.txtStartDate.Text))
|
|
{
|
|
report.StartDate = Convert.ToDateTime(this.txtStartDate.Text);
|
|
}
|
|
if (!string.IsNullOrEmpty(this.txtEndDate.Text))
|
|
{
|
|
report.EndDate = Convert.ToDateTime(this.txtEndDate.Text);
|
|
}
|
|
report.ReportType = "2";
|
|
|
|
BLL.ThisWeekOrMonthContentService.DeleteThisWeekOrMonthContentByReportId(this.ReportId);
|
|
BLL.RowMaterialProblemService.DeleteRowMaterialProbleByReportId(this.ReportId);
|
|
BLL.ConstructionProblemsService.DeleteConstructionProblemsByReportId(this.ReportId);
|
|
BLL.NextQualityControlService.DeleteNextQualityControlByReportId(this.ReportId);
|
|
|
|
if (!string.IsNullOrEmpty(this.ReportId))
|
|
{
|
|
report.ReportId = this.ReportId;
|
|
BLL.WeekAndMonthReportService.UpdateWeekAndMonthReport(report);
|
|
}
|
|
else
|
|
{
|
|
this.ReportId = SQLHelper.GetNewID(typeof(Model.Report_WeekAndMonthReport));
|
|
report.ReportId = this.ReportId;
|
|
BLL.WeekAndMonthReportService.AddWeekAndMonthReport(report);
|
|
}
|
|
//本月主要工作内容
|
|
saveThisWeekAndMonthContent();
|
|
foreach (var item in thisWeekOrMonthContentLists)
|
|
{
|
|
item.ReportId = report.ReportId;
|
|
BLL.ThisWeekOrMonthContentService.AddThisWeekOrMonthContent(item);
|
|
}
|
|
//原材料问题
|
|
saveRowMaterialProblem();
|
|
foreach (var item in rowMaterialProblemLists)
|
|
{
|
|
item.ReportId = report.ReportId;
|
|
BLL.RowMaterialProblemService.AddRowMaterialProblem(item);
|
|
}
|
|
//施工过程问题
|
|
saveConstructionProblems();
|
|
foreach (var item in constructionProblemsLists)
|
|
{
|
|
item.ReportId = report.ReportId;
|
|
BLL.ConstructionProblemsService.AddConstructionProblems(item);
|
|
}
|
|
|
|
// 综合
|
|
BLL.ComprehensiveService.DeleteComprehensiveByReportId(ReportId);
|
|
|
|
Model.Report_Comprehensive comprehensive = new Model.Report_Comprehensive();
|
|
comprehensive.ComprehensiveId = SQLHelper.GetNewID(typeof(Model.Report_Comprehensive));
|
|
comprehensive.ReportId = this.ReportId;
|
|
if (this.txt1.Text != string.Empty)
|
|
{
|
|
comprehensive.TotalCount = Convert.ToInt32(this.txt1.Text.Trim());
|
|
}
|
|
comprehensive.EquipmentRate = this.txt4.Text.Trim();
|
|
comprehensive.Others = this.txt9.Text.Trim();
|
|
BLL.ComprehensiveService.AddComprehensive(comprehensive);
|
|
|
|
//下月质量控制重点
|
|
saveNextQualityControl();
|
|
foreach (var item in nextQualityControlLists)
|
|
{
|
|
item.ReportId = report.ReportId;
|
|
BLL.NextQualityControlService.AddNextQualityControl(item);
|
|
}
|
|
ShowNotify("保存成功!", MessageBoxIcon.Success);
|
|
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
|
|
//ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script type='text/javascript'>WindowClose('OK');</script>");
|
|
}
|
|
#endregion
|
|
|
|
#region 打印
|
|
/// <summary>
|
|
/// 打印按钮
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
protected void btnPrint_Click(object sender, ImageClickEventArgs e)
|
|
{
|
|
if (!string.IsNullOrEmpty(ReportId))
|
|
{
|
|
ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript", "<script type='text/javascript'>ShowPrint('" + ReportId + "')</script>");
|
|
}
|
|
else
|
|
{
|
|
ScriptManager.RegisterStartupScript(this, typeof(string), "_alert", "alert('请先保存后再打印!')", true);
|
|
return;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
}
|
|
} |