using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Data;
using Newtonsoft.Json.Linq;
using BLL;
namespace FineUIPro.Web.HJGL.TestPackageManage
{
public partial class TestPackageManage : PageBase
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.InitTreeMenu();//加载树
}
}
#region 绑定树节点
///
/// 加载树
///
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "施工号-试压包号";
rootNode.ToolTip = "施工号";
rootNode.NodeID = "0";
rootNode.Expanded = true;
this.tvControlItem.Nodes.Add(rootNode);
List projects = BLL.Base_ProjectService.GetOnProjectListByUserId(this.CurrUser.UserId, "1");
foreach (var item in projects)
{
TreeNode rootProjectNode = new TreeNode();//定义根节点
rootProjectNode.Text = item.ProjectCode;
rootProjectNode.NodeID = item.ProjectId;
//rootProjectNode.Expanded = true;
rootProjectNode.EnableExpandEvent = true;
rootProjectNode.ToolTip = "施工号";
rootNode.Nodes.Add(rootProjectNode);
TreeNode tn = new TreeNode();
tn.NodeID = "temp";
tn.Text = "正在加载...";
rootProjectNode.Nodes.Add(tn);
}
}
private void BindNodes(TreeNode node)
{
var iso = (from x in Funs.DB.HJGL_PW_IsoInfo
where x.ProjectId == node.NodeID
select x.PressureTestPackageNo).Distinct();
if (iso.Count() > 0)
{
foreach (var packageNo in iso)
{
if (!string.IsNullOrEmpty(packageNo))
{
TreeNode newNode = new TreeNode();
newNode.Text = packageNo + "(" + node.Text + ")";
newNode.NodeID = packageNo + "(" + node.Text + ")";
newNode.CommandName = packageNo;
newNode.EnableClickEvent = true;
node.Nodes.Add(newNode);
}
}
}
}
#endregion
///
///
///
DataTable data2 = null;
#region 绑定数据
///
/// 绑定数据
///
private void BindGrid2()
{
string strSql = @"select pro.ProjectCode, ISO_ID,ISO_IsoNo,[dbo].[HJGL_Fun_GetBatchByIso](ISO_ID) as BatchCode,
(SELECT ISNULL(SUM(jot.JOT_Size),0) FROM dbo.HJGL_PW_JointInfo jot WHERE jot.ISO_ID=iso.ISO_ID) AS TotalSize,
(SELECT ISNULL(SUM(jot.JOT_Size),0) FROM dbo.HJGL_PW_JointInfo jot WHERE jot.ISO_ID=iso.ISO_ID
AND jot.DReportID IS NULL) AS NoSize
from dbo.HJGL_PW_IsoInfo iso
left join Base_Project pro on pro.ProjectId=iso.ProjectId
WHERE iso.ProjectId=@ProjectId ";
List listStr = new List();
if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID))
{
strSql += " AND PressureTestPackageNo = @PressureTestPackageNo";
listStr.Add(new SqlParameter("@PressureTestPackageNo", tvControlItem.SelectedNode.CommandName));
listStr.Add(new SqlParameter("@ProjectId", tvControlItem.SelectedNode.ParentNode.NodeID));
}
SqlParameter[] parameter = listStr.ToArray();
data2 = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
//Grid2.RecordCount = data2.Rows.Count;
//data2 = GetFilteredTable(Grid2.FilteredData, data2);
//var table = this.GetPagedDataTable(Grid2, data2);
var table = GetSortTable(Grid2, data2);
Grid2.DataSource = table;
Grid2.DataBind();
}
private void OutputSummaryData()
{
float totalSize = 0.0f;
float noSize = 0.0f;
foreach (DataRow row in data2.Rows)
{
totalSize += Convert.ToInt32(row["TotalSize"]);
noSize += Convert.ToInt32(row["NoSize"]);
}
JObject summary = new JObject();
summary.Add("ProjectCode", "合计:");
summary.Add("TotalSize", totalSize.ToString("F2"));
summary.Add("NoSize", noSize.ToString("F2"));
Grid2.SummaryData = summary;
}
private void BindGrid1()
{
string strSql = @"select project.ProjectCode, v.BatchId,batch.BatchCode,ty.JOTY_Name,rate.NDTR_Name,
batch.SubmitAskDate, batch.AskCompleteDate,
(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,
(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.PressureTestPackageNo=@PressureTestPackageNo
and iso.ProjectId=@ProjectId) 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";
List listStr = new List();
if (!string.IsNullOrEmpty(tvControlItem.SelectedNodeID))
{
listStr.Add(new SqlParameter("@PressureTestPackageNo", tvControlItem.SelectedNode.CommandName));
listStr.Add(new SqlParameter("@ProjectId", tvControlItem.SelectedNode.ParentNode.NodeID));
}
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
// 2.获取当前分页数据
//var table = this.GetPagedDataTable(Grid1, tb1);
//Grid1.RecordCount = tb.Rows.Count;
//tb = GetFilteredTable(Grid1.FilteredData, tb);
//var table = this.GetPagedDataTable(Grid1, tb);
var table = GetSortTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
}
#endregion
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
data2 = null;
List batchLists = (from x in Funs.DB.HJGL_BO_Batch
where x.ProjectId == tvControlItem.SelectedNode.ParentNode.NodeID && !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 == tvControlItem.SelectedNode.ParentNode.NodeID
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 == tvControlItem.SelectedNode.ParentNode.NodeID
select x;
foreach (var item in batchLists)
{
bool isCheck = true;
var batchdetail = from x in batchdetails where x.BatchId == item.BatchId select x.BatchDetailId;
var trust = BLL.HJGL_TrustManageEditService.GetTrustByBatchId(item.BatchId);
var ndtr = BLL.HJGL_DetectionService.GetNDTRateByNDTRID(item.NDTR_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.Where(x => x.States != "2").Count() > 0)
{
isCheck = false;
}
}
//检测合格,更新要求完成日期
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);
}
}
BindGrid1();
BindGrid2();
OutputSummaryData();
}
protected void tvControlItem_NodeExpand(object sender, TreeNodeEventArgs e)
{
if (e.Node.Nodes != null)
{
e.Node.Nodes.Clear();
}
this.BindNodes(e.Node);
}
protected void Grid1_Sort(object sender, GridSortEventArgs e)
{
BindGrid1();
BindGrid2();
}
protected void Grid2_Sort(object sender, GridSortEventArgs e)
{
data2 = null;
BindGrid1();
BindGrid2();
OutputSummaryData();
}
protected void Window1_Close(object sender, EventArgs e)
{
BindGrid1();
BindGrid2();
}
}
}