322 lines
12 KiB
C#
322 lines
12 KiB
C#
|
using Aspose.Words.Lists;
|
|||
|
using BLL;
|
|||
|
using Model;
|
|||
|
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;
|
|||
|
|
|||
|
namespace FineUIPro.Web.TestRun.Report
|
|||
|
{
|
|||
|
public partial class PreRunSchedule : PageBase
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 点击树状主键
|
|||
|
/// </summary>
|
|||
|
public string TreePreRunId { get { return (string)ViewState["TreePreRunId"]; } set { ViewState["TreePreRunId"] = value; } }
|
|||
|
/// <summary>
|
|||
|
/// 子系统主键
|
|||
|
/// </summary>
|
|||
|
public string SsubSystemId { get { return (string)ViewState["SsubSystemId"]; } set { ViewState["SsubSystemId"] = value; } }
|
|||
|
|
|||
|
protected void Page_Load(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (!IsPostBack)
|
|||
|
{
|
|||
|
this.InitTreeMenu();//加载树
|
|||
|
TabStrip1.ActiveTabIndex = 0;
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#region 加载树
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 加载树
|
|||
|
/// </summary>
|
|||
|
private void InitTreeMenu()
|
|||
|
{
|
|||
|
this.tvControlItem.Nodes.Clear();
|
|||
|
TreeNode rootNode = new TreeNode();
|
|||
|
rootNode.Text = "系统划分";
|
|||
|
rootNode.NodeID = "0";
|
|||
|
rootNode.Expanded = true;
|
|||
|
rootNode.ToolTip = "";
|
|||
|
rootNode.EnableClickEvent = true;
|
|||
|
this.tvControlItem.Nodes.Add(rootNode);
|
|||
|
var allPreRunLs = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId).ToList();
|
|||
|
var onePreRunLs = allPreRunLs.Where(p => p.PreRunLevel == 1).OrderBy(x => x.Sort);
|
|||
|
foreach (var item in onePreRunLs)
|
|||
|
{
|
|||
|
TreeNode rootUnitNode = new TreeNode();//定义根节点
|
|||
|
rootUnitNode.NodeID = item.PreRunId;
|
|||
|
rootUnitNode.Text = item.PreRunName;
|
|||
|
rootUnitNode.ToolTip = item.PreRunName;
|
|||
|
rootUnitNode.CommandName = "";
|
|||
|
rootUnitNode.EnableClickEvent = true;
|
|||
|
rootUnitNode.EnableExpandEvent = true;
|
|||
|
rootNode.Nodes.Add(rootUnitNode);
|
|||
|
rootUnitNode.Expanded = true;
|
|||
|
var otherPreRunls = allPreRunLs.Where(p => p.PreRunLevel != 1).ToList();
|
|||
|
this.BindNodes(rootUnitNode, otherPreRunls, item.PreRunId);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 绑定树节点
|
|||
|
/// </summary>
|
|||
|
private void BindNodes(TreeNode node, List<PreRun_SysDevice> list, string parentId)
|
|||
|
{
|
|||
|
|
|||
|
var itemList = list.Where(p => p.ParentId == parentId).OrderBy(x => x.Sort).ToList();
|
|||
|
if (itemList.Count > 0)
|
|||
|
{
|
|||
|
foreach (var item in itemList)
|
|||
|
{
|
|||
|
TreeNode newNode = new TreeNode();
|
|||
|
newNode.Text = item.PreRunName;
|
|||
|
newNode.NodeID = item.PreRunId;
|
|||
|
newNode.ToolTip = item.PreRunName;
|
|||
|
newNode.CommandName = "";
|
|||
|
newNode.EnableClickEvent = true;
|
|||
|
node.Nodes.Add(newNode);
|
|||
|
BindNodes(newNode, list, item.PreRunId);
|
|||
|
}
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 数加载
|
|||
|
/// </summary>
|
|||
|
protected void tvControlItem_NodeExpand(object sender, TreeNodeEventArgs e)
|
|||
|
{
|
|||
|
if (e.Node.Nodes != null)
|
|||
|
{
|
|||
|
e.Node.Nodes.Clear();
|
|||
|
}
|
|||
|
var allPreRunLs = Funs.DB.PreRun_SysDevice.Where(p => p.ProjectId == this.CurrUser.LoginProjectId).ToList();
|
|||
|
this.BindNodes(e.Node, allPreRunLs, e.NodeID);
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 点击TreeView
|
|||
|
/// </summary>
|
|||
|
/// <param name="sender"></param>
|
|||
|
/// <param name="e"></param>
|
|||
|
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
|
|||
|
{
|
|||
|
this.TreePreRunId = tvControlItem.SelectedNodeID != "0" ? tvControlItem.SelectedNodeID : string.Empty;
|
|||
|
if (TabStrip1.ActiveTabIndex == 0)
|
|||
|
{
|
|||
|
PreRunBrid();
|
|||
|
}
|
|||
|
else if (TabStrip1.ActiveTabIndex == 1)
|
|||
|
{
|
|||
|
FourDecisionBrid();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 数据绑定
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 预试车绑定
|
|||
|
/// </summary>
|
|||
|
public void PreRunBrid()
|
|||
|
{
|
|||
|
var result = new List<ScheduleBridDto>();
|
|||
|
string strSql = "select a.WorkPackId,b.WorkPackName,b.Sort,SUM(case ISNULL(a.InspectIsClose,0) when 1 then 1 else 0 end) as ygbnum,SUM(case ISNULL(a.InspectIsClose,0) when 0 then 1 else 0 end) as wgbnum,COUNT(1) as allnum from PreRun_SubInspectTerm as a inner join PreRun_WorkPackage as b on a.WorkPackId=b.WorkPackId where 1=1 and a.ProjectId=@ProjectId ";
|
|||
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|||
|
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
|
|||
|
string installationName = "-";
|
|||
|
string processesName = "-";
|
|||
|
string systemName = "-";
|
|||
|
string subsystemName = "-";
|
|||
|
string columnames = string.Empty;
|
|||
|
if (!string.IsNullOrWhiteSpace(this.TreePreRunId))
|
|||
|
{
|
|||
|
var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == this.TreePreRunId);
|
|||
|
if (model.PreRunLevel == 1)
|
|||
|
{
|
|||
|
installationName = model.PreRunName;
|
|||
|
columnames = "a.InstallationId";
|
|||
|
}
|
|||
|
else if (model.PreRunLevel == 2)
|
|||
|
{
|
|||
|
processesName = model.PreRunName;
|
|||
|
columnames = "a.ProcessesId";
|
|||
|
}
|
|||
|
else if (model.PreRunLevel == 3)
|
|||
|
{
|
|||
|
systemName = model.PreRunName;
|
|||
|
columnames = "a.SystemId";
|
|||
|
}
|
|||
|
else if (model.PreRunLevel == 4)
|
|||
|
{
|
|||
|
subsystemName = model.PreRunName;
|
|||
|
columnames = "a.SubsystemId";
|
|||
|
}
|
|||
|
strSql += $"and {columnames}='{model.PreRunId}'";
|
|||
|
}
|
|||
|
strSql += "group by a.WorkPackId,b.WorkPackName,b.Sort order by b.Sort asc";
|
|||
|
SqlParameter[] parameter = listStr.ToArray();
|
|||
|
var dt = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|||
|
if (dt != null)
|
|||
|
{
|
|||
|
foreach (DataRow item in dt.Rows)
|
|||
|
{
|
|||
|
result.Add(new ScheduleBridDto()
|
|||
|
{
|
|||
|
WorkPackId = item["WorkPackId"].ToString(),
|
|||
|
WorkName = item["WorkPackName"].ToString(),
|
|||
|
InstallationName = installationName,
|
|||
|
ProcessesName = processesName,
|
|||
|
SystemName = systemName,
|
|||
|
SubsystemName = subsystemName,
|
|||
|
AllNum = item["allnum"].ToString(),
|
|||
|
NoCloseNum = item["wgbnum"].ToString(),
|
|||
|
CloseNum = item["ygbnum"].ToString()
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
GridPreRun.DataSource = result;
|
|||
|
GridPreRun.DataBind();
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 三查四定绑定
|
|||
|
/// </summary>
|
|||
|
public void FourDecisionBrid()
|
|||
|
{
|
|||
|
var result = new List<ScheduleBridDto>();
|
|||
|
string strSql = "select b.PreRunId,b.InstallationId,b.ProcessesId,b.SystemId,b.SubsystemId,b.Sort,SUM(case ISNULL(a.DecisionIsClose,0) when 1 then 1 else 0 end) as ygbnum,SUM(case ISNULL(a.DecisionIsClose,0) when 0 then 1 else 0 end) as wgbnum,COUNT(1) as allnum from PreRun_SubThreeChecksFourDecision as a inner join PreRun_SysDevice as b on a.SubSystemId=b.PreRunId where 1=1 and a.ProjectId=@ProjectId ";
|
|||
|
List<SqlParameter> listStr = new List<SqlParameter>();
|
|||
|
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
|
|||
|
string installationName = "-";
|
|||
|
string processesName = "-";
|
|||
|
string systemName = "-";
|
|||
|
string subsystemName = "-";
|
|||
|
string columnames = string.Empty;
|
|||
|
if (!string.IsNullOrWhiteSpace(this.TreePreRunId))
|
|||
|
{
|
|||
|
var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == this.TreePreRunId);
|
|||
|
if (model.PreRunLevel == 1)
|
|||
|
{
|
|||
|
installationName = model.PreRunName;
|
|||
|
columnames = "b.InstallationId";
|
|||
|
}
|
|||
|
else if (model.PreRunLevel == 2)
|
|||
|
{
|
|||
|
processesName = model.PreRunName;
|
|||
|
columnames = "b.ProcessesId";
|
|||
|
}
|
|||
|
else if (model.PreRunLevel == 3)
|
|||
|
{
|
|||
|
systemName = model.PreRunName;
|
|||
|
columnames = "b.SystemId";
|
|||
|
}
|
|||
|
else if (model.PreRunLevel == 4)
|
|||
|
{
|
|||
|
subsystemName = model.PreRunName;
|
|||
|
columnames = "b.SubsystemId";
|
|||
|
}
|
|||
|
strSql += $"and {columnames}='{model.PreRunId}'";
|
|||
|
}
|
|||
|
strSql += "group by b.PreRunId,b.InstallationId,b.ProcessesId,b.SystemId,b.SubsystemId,b.Sort order by b.Sort asc";
|
|||
|
SqlParameter[] parameter = listStr.ToArray();
|
|||
|
var dt = SQLHelper.GetDataTableRunText(strSql, parameter);
|
|||
|
if (dt != null)
|
|||
|
{
|
|||
|
foreach (DataRow item in dt.Rows)
|
|||
|
{
|
|||
|
result.Add(new ScheduleBridDto()
|
|||
|
{
|
|||
|
PreRunId = item["PreRunId"].ToString(),
|
|||
|
InstallationName = installationName,
|
|||
|
ProcessesName = processesName,
|
|||
|
SystemName = systemName,
|
|||
|
SubsystemName = subsystemName,
|
|||
|
AllNum = item["allnum"].ToString(),
|
|||
|
NoCloseNum = item["wgbnum"].ToString(),
|
|||
|
CloseNum = item["ygbnum"].ToString()
|
|||
|
});
|
|||
|
}
|
|||
|
}
|
|||
|
GridFourDecision.DataSource = result;
|
|||
|
GridFourDecision.DataBind();
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
#region 私有方法
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 点击tab
|
|||
|
/// </summary>
|
|||
|
protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
|
|||
|
{
|
|||
|
if (TabStrip1.ActiveTabIndex == 0)
|
|||
|
{
|
|||
|
PreRunBrid();
|
|||
|
}
|
|||
|
else if (TabStrip1.ActiveTabIndex == 1)
|
|||
|
{
|
|||
|
FourDecisionBrid();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
/// <summary>
|
|||
|
/// 预试车统计实体
|
|||
|
/// </summary>
|
|||
|
public class ScheduleBridDto
|
|||
|
{
|
|||
|
/// <summary>
|
|||
|
/// 工作包主键
|
|||
|
/// </summary>
|
|||
|
public string PreRunId { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 工作包主键
|
|||
|
/// </summary>
|
|||
|
public string WorkPackId { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 工作包名称
|
|||
|
/// </summary>
|
|||
|
public string WorkName { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 装置名称
|
|||
|
/// </summary>
|
|||
|
public string InstallationName { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 工序名称
|
|||
|
/// </summary>
|
|||
|
public string ProcessesName { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 系统名称
|
|||
|
/// </summary>
|
|||
|
public string SystemName { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 子系统名称
|
|||
|
/// </summary>
|
|||
|
public string SubsystemName { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 工作包数量
|
|||
|
/// </summary>
|
|||
|
public string AllNum { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 未关闭任务单数量
|
|||
|
/// </summary>
|
|||
|
public string NoCloseNum { get; set; }
|
|||
|
/// <summary>
|
|||
|
/// 已关闭任务单数量
|
|||
|
/// </summary>
|
|||
|
public string CloseNum { get; set; }
|
|||
|
}
|
|||
|
|
|||
|
#endregion
|
|||
|
|
|||
|
}
|
|||
|
}
|