ZHJA_HJGL/HJGL_ZH/FineUIPro.Web/common/mainGdaz.aspx.cs

398 lines
19 KiB
C#

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<Model.HJGL_BO_Batch> 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<Model.HJGL_BO_Batch> 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<Model.HJGL_BO_Batch> batchLists3= new List<Model.HJGL_BO_Batch>();
//List<Model.HJGL_BO_Batch> 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
/// <summary>
/// 绑定项目数据
/// </summary>
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();
}
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<SqlParameter> listStr = new List<SqlParameter>();
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();
}
///// <summary>
///// 绑定半年内未焊焊工
///// </summary>
//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();
//}
/// <summary>
/// 绑定焊工资质过期提醒
/// </summary>
//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
/// <summary>
/// 项目连接
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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。
/// <summary>
/// 导出方法
/// </summary>
/// <param name="grid"></param>
/// <returns></returns>
private string GetGridTableHtml(Grid grid)
#pragma warning restore CS0108 // “PersonList.GetGridTableHtml(Grid)”隐藏继承的成员“PageBase.GetGridTableHtml(Grid)”。如果是有意隐藏,请使用关键字 new。
{
StringBuilder sb = new StringBuilder();
sb.Append("<meta http-equiv=\"content-type\" content=\"application/excel; charset=UTF-8\"/>");
sb.Append("<table cellspacing=\"0\" rules=\"all\" border=\"1\" style=\"border-collapse:collapse;\">");
sb.Append("<tr>");
foreach (GridColumn column in grid.Columns)
{
sb.AppendFormat("<td>{0}</td>", column.HeaderText);
}
sb.Append("</tr>");
foreach (GridRow row in grid.Rows)
{
sb.Append("<tr>");
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("<td style='vnd.ms-excel.numberformat:@;width:140px;'>{0}</td>", html);
}
sb.Append("</tr>");
}
sb.Append("</table>");
return sb.ToString();
}
#endregion
protected void Window1_Close(object sender, EventArgs e)
{
BindBatch();
}
}
}