using System; using System.Collections.Generic; using System.Linq; using System.Data; using System.Data.SqlClient; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using BLL; using System.Text; using System.Threading.Tasks; namespace FineUIPro.Web.common { public partial class mainGdaz : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { ddlPageSize.SelectedValue = GridProject.PageSize.ToString(); this.drpProject.DataTextField = "ProjectCode"; this.drpProject.DataValueField = "ProjectId"; this.drpProject.DataSource = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "1"); this.drpProject.DataBind(); Funs.FineUIPleaseSelect(this.drpProject); this.drpProject.SelectedValue = this.CurrUser.LoginProjectId; //委托单不为null且 对应批明细的委托单明细状态为2 List Allbatch = (from x in Funs.DB.HJGL_BO_Batch where x.ProjectId == this.drpProject.SelectedValue && !x.AskCompleteDate.HasValue select x).ToList(); var batchdetails = from x in Funs.DB.HJGL_BO_BatchDetail join y in Funs.DB.HJGL_BO_Batch on x.BatchId equals y.BatchId where y.ProjectId == this.drpProject.SelectedValue && !y.AskCompleteDate.HasValue select x; //获取所以批明细 var trustdetails = from x in Funs.DB.HJGL_CH_TrustItem join y in Funs.DB.HJGL_BO_BatchDetail on x.BatchDetailId equals y.BatchDetailId join z in Funs.DB.HJGL_BO_Batch on y.BatchId equals z.BatchId where z.ProjectId == this.drpProject.SelectedValue && !z.AskCompleteDate.HasValue select x; //获取所有批明细对应委托明细 List batchLists2 = (from x in Allbatch join m in Funs.DB.HJGL_BS_NDTRate on x.NDTR_ID equals m.NDTR_ID join n in Funs.DB.HJGL_CH_Trust on x.BatchId equals n.BatchId into g from t in g.DefaultIfEmpty() where m.NDTR_Rate.Value==0 && t==null select x).Distinct().ToList(); //获取委托单为null且检测比例是0的 var batchLists = (from x in Allbatch join n in Funs.DB.HJGL_CH_Trust on x.BatchId equals n.BatchId into g select x).Distinct().ToList(); var batchdetailsList = batchdetails.ToList(); var trustdetailsList = trustdetails.ToList(); var batchLists4 = ( from x in batchLists join y in batchdetailsList on x.BatchId equals y.BatchId join m in trustdetailsList on y.BatchDetailId equals m.BatchDetailId group new { x, m } by x into g where g.All(item => item.m.States == "2") select g.First().x ).Distinct().ToList(); batchLists2.AddRange(batchLists4); batchLists2= batchLists2.Distinct().ToList(); foreach (var item in batchLists2) { var batchdetail = from x in batchdetails where x.BatchId == item.BatchId select x.BatchDetailId; //获取批次详情ID var trustdetail = from x in trustdetails where batchdetail.Contains(x.BatchDetailId) orderby x.FeedbackDate descending select x; //检测合格,更新要求完成日期 if ( item.BatchIsClosed == true) { DateTime date = DateTime.Now; if (trustdetail.Count() > 0) { if (trustdetail.FirstOrDefault().FeedbackDate != null) { date = trustdetail.FirstOrDefault().FeedbackDate.Value; } } item.AskCompleteDate = date; BLL.HJGL_BO_BatchService.UpdateBatch(item); } } #region 旧代码 //List batchLists3= new List(); //List batchLists = (from x in Funs.DB.HJGL_BO_Batch // where x.ProjectId == this.drpProject.SelectedValue && !x.AskCompleteDate.HasValue // select x).ToList(); //var batchdetails = from x in Funs.DB.HJGL_BO_BatchDetail // join y in Funs.DB.HJGL_BO_Batch on x.BatchId equals y.BatchId // where y.ProjectId == this.drpProject.SelectedValue // select x; //获取所以批明细 //var trustdetails = from x in Funs.DB.HJGL_CH_TrustItem // join y in Funs.DB.HJGL_BO_BatchDetail on x.BatchDetailId equals y.BatchDetailId // join z in Funs.DB.HJGL_BO_Batch on y.BatchId equals z.BatchId // where z.ProjectId == this.drpProject.SelectedValue // select x; //获取所有批明细对应委托明细 //foreach (var item in batchLists) //{ // bool isCheck = true; // var batchdetail = from x in batchdetails where x.BatchId == item.BatchId select x.BatchDetailId; //获取批次详情ID // //var trust = BLL.HJGL_TrustManageEditService.GetTrustByBatchId(item.BatchId); //根据批Id获取委托信息 // var trust = Funs.DB.HJGL_CH_Trust.FirstOrDefault(x => x.BatchId == item.BatchId); //根据批Id获取委托信息 // var ndtr = Funs.DB.HJGL_BS_NDTRate.FirstOrDefault(x => x.NDTR_ID == item.NDTR_ID); //根据探伤比例Id获取探伤比例 // var trustdetail = from x in trustdetails where batchdetail.Contains(x.BatchDetailId) orderby x.FeedbackDate descending select x; // if (trust == null && ndtr.NDTR_Rate.Value != 0) // { // isCheck = false; // } // else // { // if (trustdetail.Any(x => x.States != "2")) // { // isCheck = false; // } // } // if (isCheck) // { // batchLists3.Add(item); // } // //检测合格,更新要求完成日期 // if (isCheck && item.BatchIsClosed == true) // { // DateTime date = DateTime.Now; // if (trustdetail.Count() > 0) // { // if (trustdetail.FirstOrDefault().FeedbackDate != null) // { // date = trustdetail.FirstOrDefault().FeedbackDate.Value; // } // } // item.AskCompleteDate = date; // BLL.HJGL_BO_BatchService.UpdateBatch(item); // } //} #endregion BindProject(); BindBatch(); //BindGetWelder(); //BindGetWelderLimitDate(); //BindPointNoTrust(); //BindTrustNoAudit(); //BindTrustNoCheck(); //BindCheckNoAudit(); } } #region 绑定数据 /// /// 绑定项目数据 /// private void BindProject() { var project = BLL.Base_ProjectService.GetOnProjectListByUser(this.CurrUser.UserId, "1"); if (!string.IsNullOrEmpty(txtProjectCode.Text)) { project = project.Where(e => e.ProjectCode.Contains(txtProjectCode.Text.Trim())).ToList(); } if (!string.IsNullOrEmpty(txtProjectName.Text)) { project = project.Where(e => e.ProjectName.Contains(txtProjectName.Text.Trim())).ToList(); } GridProject.RecordCount = project.Count; var table = GetPagedDataTable(GridProject, project); this.GridProject.DataSource = table; this.GridProject.DataBind(); } protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) { GridProject.PageSize = Convert.ToInt32(ddlPageSize.SelectedValue); BindProject(); } protected void GridProject_PageIndexChange(object sender, GridPageEventArgs e) { GridProject.PageIndex = e.NewPageIndex; BindProject(); } protected void btnSelect_Click(object sender, EventArgs e) { BindProject(); } protected void btnSelect2_Click(object sender, EventArgs e) { BindBatch(); } private void BindBatch() { //string strSql = @"SELECT p.ProjectCode,v1.BatchId,b.BatchCode,b.AskCompleteDate // FROM // (SELECT DISTINCT(v.BatchId) AS BatchId // from // (SELECT trust.BatchId, // (select TestingReportPrintId from HJGL_CH_TestingReportPrint as report // where report.ISO_ID =joint.ISO_ID // and report.Specifications = joint.JOT_JointDesc // and report.NDT_ID = trust.CH_NDTMethod // and report.BatchId = trust.BatchId // and report.Printer is not null // and report.PrintTime is not null) AS TestingReportPrintId // from dbo.HJGL_CH_TrustItem trustItem // left join dbo.HJGL_CH_Trust trust on trust.CH_TrustID=trustItem.CH_TrustID // left join dbo.HJGL_BO_Batch batch on trust.BatchId=batch.BatchId // left join dbo.HJGL_PW_JointInfo joint on joint.JOT_ID=trustItem.JOT_ID // WHERE batch.AskCompleteDate IS NOT NULL)v // WHERE v.TestingReportPrintId IS NULL )v1 // left join dbo.HJGL_BO_Batch b on b.BatchId=v1.BatchId // left join dbo.Base_Project p on p.ProjectId=b.ProjectId"; //DataTable dt = SQLHelper.GetDataTableRunText(strSql, null); // 这个字段不要了 //(case when(select Count(*) from dbo.HJGL_CH_TrustItem item // --left // join dbo.HJGL_BO_BatchDetail batchDetail on batchDetail.BatchDetailId = item.BatchDetailId // -- where item.States != '2' and batchDetail.BatchId = v.BatchId) > 0 OR // --(SELECT COUNT(*) FROM dbo.HJGL_BO_Batch b WHERE b.BatchId = v.BatchId AND b.BatchIsClosed = 1) = 0 // -- THEN '否' else '是' end) as IsPass, string strSql = @"select project.ProjectCode, v.BatchId,batch.BatchCode,ty.JOTY_Name,rate.NDTR_Name, batch.SubmitAskDate, batch.AskCompleteDate, (select ReportFeedback from dbo.HJGL_BO_Batch d where d.BatchId=v.BatchId) as ReportFeedback from (select distinct detail.BatchId from dbo.HJGL_BO_BatchDetail detail left join dbo.HJGL_PW_IsoInfo iso on detail.ISO_ID=iso.ISO_ID WHERE iso.ProjectId=@ProjectId and (select count(*) from HJGL_CH_Trust t where t.BatchId=detail.BatchId)>0) as v left join dbo.HJGL_BO_Batch batch on batch.BatchId=v.BatchId LEFT JOIN dbo.HJGL_BS_JointType ty ON ty.JOTY_ID = batch.JOTY_ID LEFT JOIN dbo.HJGL_BS_NDTRate rate ON rate.NDTR_ID = batch.NDTR_ID left join dbo.Base_Project project on project.ProjectId=batch.ProjectId order by batch.AskCompleteDate desc"; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.drpProject.SelectedValue)); SqlParameter[] parameter = listStr.ToArray(); DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); DataTable newTB = new DataTable(); newTB = tb.Copy(); newTB.Rows.Clear(); if (this.cbIsReportFeedback.Checked) { foreach (DataRow dr in tb.Rows) { if (!string.IsNullOrEmpty(dr["ReportFeedback"].ToString())) { newTB.ImportRow(dr); } } } else { foreach (DataRow dr in tb.Rows) { if (string.IsNullOrEmpty(dr["ReportFeedback"].ToString())) { newTB.ImportRow(dr); } } } this.GridBatch.DataSource = newTB; this.GridBatch.DataBind(); } protected void GridBatch_Sort(object sender, FineUIPro.GridSortEventArgs e) { BindBatch(); } ///// ///// 绑定半年内未焊焊工 ///// //private void BindGetWelder() //{ // SqlParameter[] value = new SqlParameter[] // { // new SqlParameter("@project",this.CurrUser.LoginProjectId), // }; // DataTable dt1 = BLL.SQLHelper.GetDataTableRunProc("HJGL_SpGetWelder", value); // this.GridGetWelder.DataSource = dt1; // this.GridGetWelder.DataBind(); //} /// /// 绑定焊工资质过期提醒 /// //private void BindGetWelderLimitDate() //{ // SqlParameter[] welderLimitPara = new SqlParameter[] // { // new SqlParameter("@project",this.CurrUser.LoginProjectId), // }; // DataTable dt = BLL.SQLHelper.GetDataTableRunProc("HJGL_SpGetWelderLimitDate", welderLimitPara); // this.GridGetWelderLimitDate.DataSource = dt; // this.GridGetWelderLimitDate.DataBind(); //} #endregion /// /// 项目连接 /// /// /// protected void GridProject_RowCommand(object sender, GridCommandEventArgs e) { if (e.CommandName == "project") { string projectId = GridProject.DataKeys[e.RowIndex][0].ToString(); if (!string.IsNullOrEmpty(projectId)) { PageBase.ZXRefresh(ResolveUrl("~/default.aspx?ispop=1&menuModule=" + BLL.Const.System_3 + "&projectId=" + projectId)); } else { PageBase.ZXRefresh(ResolveUrl("~/default.aspx?ispop=1&menuModule=" + BLL.Const.System_2 + "&projectId=" + projectId)); } } } #region 导出按钮 /// 导出按钮 /// /// /// protected void btnOut_Click(object sender, EventArgs e) { Response.ClearContent(); string filename = Funs.GetNewFileName(); Response.AddHeader("content-disposition", "attachment; filename=" + System.Web.HttpUtility.UrlEncode("检测报告编辑提示及反馈" + filename, System.Text.Encoding.UTF8) + ".xls"); Response.ContentType = "application/excel"; Response.ContentEncoding = System.Text.Encoding.UTF8; //this.Grid1.PageSize = this.; this.GridBatch.PageSize = 10000; //BindBatch(); Response.Write(GetGridTableHtml(GridBatch)); Response.End(); } #pragma warning disable CS0108 // “PersonList.GetGridTableHtml(Grid)”隐藏继承的成员“PageBase.GetGridTableHtml(Grid)”。如果是有意隐藏,请使用关键字 new。 /// /// 导出方法 /// /// /// private string GetGridTableHtml(Grid grid) #pragma warning restore CS0108 // “PersonList.GetGridTableHtml(Grid)”隐藏继承的成员“PageBase.GetGridTableHtml(Grid)”。如果是有意隐藏,请使用关键字 new。 { StringBuilder sb = new StringBuilder(); sb.Append(""); sb.Append(""); sb.Append(""); foreach (GridColumn column in grid.Columns) { sb.AppendFormat("", column.HeaderText); } sb.Append(""); foreach (GridRow row in grid.Rows) { sb.Append(""); foreach (GridColumn column in grid.Columns) { string html = row.Values[column.ColumnIndex].ToString(); if (column.ColumnID == "AskCompleteDate") { var date = Funs.GetNewDateTime(html); if (date != null) { html = string.Format("{0:yyyy-MM-dd}", date); } else { html = string.Empty; } } sb.AppendFormat("", html); } sb.Append(""); } sb.Append("
{0}
{0}
"); return sb.ToString(); } #endregion protected void Window1_Close(object sender, EventArgs e) { BindBatch(); } } }