1009 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			1009 lines
		
	
	
		
			49 KiB
		
	
	
	
		
			C#
		
	
	
	
using BLL;
 | 
						|
using Model;
 | 
						|
using Newtonsoft.Json.Linq;
 | 
						|
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.BeforeTestRun
 | 
						|
{
 | 
						|
    public partial class SubInspectTerm : PageBase
 | 
						|
    {
 | 
						|
        protected void Page_Load(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (!IsPostBack)
 | 
						|
            {
 | 
						|
                Toolbar3.Hidden = true;
 | 
						|
                this.InitTreeMenu();//加载树
 | 
						|
                PageInit();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #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 list = from a in Funs.DB.PreRun_SysDevice
 | 
						|
                       join b in Funs.DB.PreRun_SubSysWorkPackage on a.PreRunId equals b.SubSystemId
 | 
						|
                       join c in Funs.DB.PreRun_WorkPackage on b.WorkPackId equals c.WorkPackId
 | 
						|
                       where a.ProjectId == this.CurrUser.LoginProjectId
 | 
						|
                       orderby a.Sort, a.PreRunLevel
 | 
						|
                       select new { a.PreRunId, a.SystemId, a.PreRunCode, a.PreRunName, a.ProjectId, c.WorkPackId, c.WorkPackName, b.WorkPackCode, a.Sort };
 | 
						|
 | 
						|
            if (list.Count() > 0)
 | 
						|
            {
 | 
						|
                var subSystemIds = list.Select(x => x.PreRunId).ToList();
 | 
						|
                var workPackIds = list.Select(x => x.WorkPackId).ToList();
 | 
						|
                var selectlist = YscInspectItems(workPackIds, subSystemIds);
 | 
						|
                var systemIds = list.Select(x => x.SystemId).ToList();
 | 
						|
                var syslist = Funs.DB.PreRun_SysDevice.Where(x => systemIds.Contains(x.PreRunId)).OrderBy(o => o.Sort).ThenBy(t => t.PreRunLevel);
 | 
						|
                foreach (var itemSys in syslist)
 | 
						|
                {
 | 
						|
                    TreeNode rootFirstNode = new TreeNode();//定义根节点
 | 
						|
                    rootFirstNode.NodeID = itemSys.PreRunId;
 | 
						|
                    rootFirstNode.Text = itemSys.PreRunName;
 | 
						|
                    rootFirstNode.ToolTip = itemSys.PreRunName;
 | 
						|
                    rootFirstNode.CommandName = "";
 | 
						|
                    rootFirstNode.EnableClickEvent = false;
 | 
						|
                    rootFirstNode.EnableExpandEvent = false;
 | 
						|
                    rootNode.Nodes.Add(rootFirstNode);
 | 
						|
                    rootFirstNode.Expanded = true;
 | 
						|
                    var subList = list.Where(g => g.SystemId == itemSys.PreRunId).GroupBy(x => new { x.PreRunId, x.SystemId, x.PreRunCode, x.PreRunName, x.Sort });
 | 
						|
                    foreach (var item in subList.OrderBy(o => o.Key.Sort))
 | 
						|
                    {
 | 
						|
                        TreeNode rootUnitNode = new TreeNode();//定义根节点
 | 
						|
                        rootUnitNode.NodeID = item.Key.PreRunId;
 | 
						|
                        rootUnitNode.Text = item.Key.PreRunName;
 | 
						|
                        rootUnitNode.ToolTip = item.Key.PreRunName;
 | 
						|
                        rootUnitNode.CommandName = "";
 | 
						|
                        rootUnitNode.EnableClickEvent = false;
 | 
						|
                        rootUnitNode.EnableExpandEvent = false;
 | 
						|
                        rootFirstNode.Nodes.Add(rootUnitNode);
 | 
						|
                        rootUnitNode.Expanded = true;
 | 
						|
                        var worklist = list.Where(a => a.PreRunId == item.Key.PreRunId).GroupBy(x => new { x.WorkPackId, x.WorkPackName, x.WorkPackCode }).ToList();
 | 
						|
                        if (worklist.Count > 0)
 | 
						|
                        {
 | 
						|
                            foreach (var itemWork in worklist.OrderBy(o => o.Key.WorkPackCode))
 | 
						|
                            {
 | 
						|
                                TreeNode newNode = new TreeNode();
 | 
						|
                                newNode.Text = itemWork.Key.WorkPackName;
 | 
						|
                                newNode.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId;
 | 
						|
                                newNode.ToolTip = itemWork.Key.WorkPackName;
 | 
						|
                                newNode.CommandName = "";
 | 
						|
                                newNode.Expanded = true;
 | 
						|
                                newNode.EnableClickEvent = true;
 | 
						|
                                var workselects = selectlist.Where(x => x.SubSystemId == item.Key.PreRunId && x.WorkPackId == itemWork.Key.WorkPackId);
 | 
						|
                                if (workselects.Count() > 0)
 | 
						|
                                {
 | 
						|
                                    newNode.EnableExpandEvent = false;
 | 
						|
                                    rootUnitNode.Nodes.Add(newNode);
 | 
						|
                                    foreach (var itemSelect in workselects)
 | 
						|
                                    {
 | 
						|
                                        TreeNode newNodeSelect = new TreeNode();
 | 
						|
                                        newNodeSelect.Text = itemSelect.Code.Length > 10 ? $"{itemSelect.Code.Substring(0, 10)}......" : itemSelect.Code;
 | 
						|
                                        newNodeSelect.NodeID = itemWork.Key.WorkPackId + "|" + item.Key.PreRunId + "|" + itemSelect.Id;
 | 
						|
                                        newNodeSelect.ToolTip = itemSelect.Code;
 | 
						|
                                        newNodeSelect.CommandName = "";
 | 
						|
                                        newNodeSelect.EnableClickEvent = true;
 | 
						|
                                        newNodeSelect.EnableExpandEvent = true;
 | 
						|
                                        newNode.Nodes.Add(newNodeSelect);
 | 
						|
                                        newNodeSelect.Expanded = true;
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                                else
 | 
						|
                                {
 | 
						|
                                    newNode.EnableClickEvent = true;
 | 
						|
                                    newNode.EnableExpandEvent = true;
 | 
						|
                                    rootUnitNode.Nodes.Add(newNode);
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定下拉框
 | 
						|
        /// </summary>
 | 
						|
        public void PageInit()
 | 
						|
        {
 | 
						|
            //检查人绑定
 | 
						|
            var userList = from user in Funs.DB.Sys_User
 | 
						|
                           join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId
 | 
						|
                           where projectrole.ProjectId == this.CurrUser.LoginProjectId
 | 
						|
                           select user;
 | 
						|
            var userids = new List<string>() { Const.sysglyId, Const.hfnbdId, Const.sedinId };
 | 
						|
            var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId));
 | 
						|
            var users = userList.ToList();
 | 
						|
            if (addUserList.Count() > 0)
 | 
						|
            {
 | 
						|
                users.AddRange(addUserList);
 | 
						|
            }
 | 
						|
            if (users.Count() > 0)
 | 
						|
            {
 | 
						|
                ddlfbs.DataTextField = "UserName";
 | 
						|
                ddlfbs.DataValueField = "UserId";
 | 
						|
                ddlfbs.DataSource = users;
 | 
						|
                ddlfbs.DataBind();
 | 
						|
 | 
						|
                ddlcbs.DataTextField = "UserName";
 | 
						|
                ddlcbs.DataValueField = "UserId";
 | 
						|
                ddlcbs.DataSource = users;
 | 
						|
                ddlcbs.DataBind();
 | 
						|
 | 
						|
                ddljl.DataTextField = "UserName";
 | 
						|
                ddljl.DataValueField = "UserId";
 | 
						|
                ddljl.DataSource = users;
 | 
						|
                ddljl.DataBind();
 | 
						|
 | 
						|
                ddlyz.DataTextField = "UserName";
 | 
						|
                ddlyz.DataValueField = "UserId";
 | 
						|
                ddlyz.DataSource = users;
 | 
						|
                ddlyz.DataBind();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 点击TreeView
 | 
						|
        /// </summary>
 | 
						|
        protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
 | 
						|
        {
 | 
						|
            this.BindGrid();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 数据绑定
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定数据
 | 
						|
        /// </summary>
 | 
						|
        public void BindGrid(bool typechange = true)
 | 
						|
        {
 | 
						|
            var result = new List<PreRun_SubInspectTermItem>();
 | 
						|
            var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
 | 
						|
            var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
 | 
						|
            var subInspectId = string.Empty;
 | 
						|
            if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
 | 
						|
            {
 | 
						|
                subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
 | 
						|
            }
 | 
						|
            var workPage = Funs.DB.PreRun_WorkPackage.FirstOrDefault(x => x.WorkPackId == workPackId);
 | 
						|
            if (workPage.SpecialWorkPack == 0)
 | 
						|
            {
 | 
						|
                Toolbar3.Hidden = true;
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                Toolbar3.Hidden = false;
 | 
						|
            }
 | 
						|
            if (typechange)
 | 
						|
            {
 | 
						|
                var propertyTechnologyIds = string.Empty;
 | 
						|
                var selectStr = string.Empty;
 | 
						|
 | 
						|
                var inspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).ToList();
 | 
						|
                if (!string.IsNullOrWhiteSpace(subInspectId))
 | 
						|
                {
 | 
						|
                    var selectItem = inspectItems.FirstOrDefault(x => x.SubInspectId == subInspectId);
 | 
						|
                    if (selectItem != null)
 | 
						|
                    {
 | 
						|
                        selectStr = selectItem.PropertyTechnologyId;
 | 
						|
                    }
 | 
						|
                    inspectItems.RemoveAll(x => x.SubInspectId == subInspectId);
 | 
						|
                }
 | 
						|
 | 
						|
                if (inspectItems.Count > 0) propertyTechnologyIds = string.Join(",", inspectItems.ConvertAll(x => x.PropertyTechnologyId));
 | 
						|
 | 
						|
                if (workPage != null)
 | 
						|
                {
 | 
						|
                    //加载类型
 | 
						|
                    if (workPage.WorkPackType == 0)
 | 
						|
                    {
 | 
						|
                        ddlWorkPackType.Items.Clear();
 | 
						|
                        ddlWorkPackType.Items.Insert(0, new ListItem("管道", "1"));
 | 
						|
                        ddlWorkPackType.Items.Insert(1, new ListItem("设备", "2"));
 | 
						|
                        ddlWorkPackType.SelectedValue = "1";
 | 
						|
                    }
 | 
						|
                    if (workPage.WorkPackType == 1)
 | 
						|
                    {
 | 
						|
                        ddlWorkPackType.Items.Clear();
 | 
						|
                        ddlWorkPackType.Items.Insert(0, new ListItem("管道", "1"));
 | 
						|
                        ddlWorkPackType.SelectedValue = "1";
 | 
						|
                    }
 | 
						|
                    if (workPage.WorkPackType == 2)
 | 
						|
                    {
 | 
						|
                        ddlWorkPackType.Items.Clear();
 | 
						|
                        ddlWorkPackType.Items.Insert(0, new ListItem("设备", "2"));
 | 
						|
                        ddlWorkPackType.SelectedValue = "2";
 | 
						|
                    }
 | 
						|
                    if (workPage.WorkPackType == 3)
 | 
						|
                    {
 | 
						|
                        ddlWorkPackType.Items.Clear();
 | 
						|
                        ddlWorkPackType.Items.Insert(0, new ListItem("仪表索引", "3"));
 | 
						|
                        ddlWorkPackType.SelectedValue = "3";
 | 
						|
                    }
 | 
						|
                    //加载数据
 | 
						|
                    PipingBrid(ddlWorkPackType.SelectedValue, subSystemId, propertyTechnologyIds, selectStr);
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            //获取子系统
 | 
						|
            var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId);
 | 
						|
            //获取主表数据
 | 
						|
            var workPackType = int.Parse(ddlWorkPackType.SelectedValue);
 | 
						|
            var subModel = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
 | 
						|
            if (subModel != null)
 | 
						|
            {
 | 
						|
                if (subModel.WorkPackType != null)
 | 
						|
                {
 | 
						|
                    ddlWorkPackType.SelectedValue = subModel.WorkPackType.ToString();
 | 
						|
                    ddlWorkPackType.Enabled = false;
 | 
						|
                }
 | 
						|
                ddlfbs.SelectedValue = subModel.Subcontractor;
 | 
						|
                ddlcbs.SelectedValue = subModel.Contractor;
 | 
						|
                ddljl.SelectedValue = subModel.Supervision;
 | 
						|
                ddlyz.SelectedValue = subModel.Owner;
 | 
						|
 | 
						|
                labSubcontractor.Hidden = false;
 | 
						|
                labSubcontractor.Text = subModel.SubcontractorIsAllPass == null ? "(待确认)" : subModel.SubcontractorIsAllPass == 0 ? "(不通过)" : subModel.SubcontractorIsAllPass == 1 ? "(通过)" : "(待确认)";
 | 
						|
                labSubcontractor.CssClass = subModel.SubcontractorIsAllPass == null ? "unconfirm" : subModel.SubcontractorIsAllPass == 0 ? "notpass" : subModel.SubcontractorIsAllPass == 1 ? "pass" : "unconfirm";
 | 
						|
 | 
						|
                labContractor.Hidden = false;
 | 
						|
                labContractor.Text = subModel.ContractorIsAllPass == null ? "(待确认)" : subModel.ContractorIsAllPass == 0 ? "(不通过)" : subModel.ContractorIsAllPass == 1 ? "(通过)" : "(待确认)";
 | 
						|
                labContractor.CssClass = subModel.ContractorIsAllPass == null ? "unconfirm" : subModel.ContractorIsAllPass == 0 ? "notpass" : subModel.ContractorIsAllPass == 1 ? "pass" : "unconfirm";
 | 
						|
 | 
						|
                labSupervision.Hidden = false;
 | 
						|
                labSupervision.Text = subModel.SupervisionIsAllPass == null ? "(待确认)" : subModel.SupervisionIsAllPass == 0 ? "(不通过)" : subModel.SupervisionIsAllPass == 1 ? "(通过)" : "(待确认)";
 | 
						|
                labSupervision.CssClass = subModel.SupervisionIsAllPass == null ? "unconfirm" : subModel.SupervisionIsAllPass == 0 ? "notpass" : subModel.SupervisionIsAllPass == 1 ? "pass" : "unconfirm";
 | 
						|
 | 
						|
                labOwner.Hidden = false;
 | 
						|
                labOwner.Text = subModel.OwnerIsAllPass == null ? "(待确认)" : subModel.OwnerIsAllPass == 0 ? "(不通过)" : subModel.OwnerIsAllPass == 1 ? "(通过)" : "(待确认)";
 | 
						|
                labOwner.CssClass = subModel.OwnerIsAllPass == null ? "unconfirm" : subModel.OwnerIsAllPass == 0 ? "notpass" : subModel.OwnerIsAllPass == 1 ? "pass" : "unconfirm";
 | 
						|
 | 
						|
 | 
						|
                //if (subModel.SubcontractorIsAllPass == null)
 | 
						|
                //{
 | 
						|
                //    labSupervision.Text = "(待确认)";
 | 
						|
                //    labSupervision.CssClass = "unconfirm";
 | 
						|
                //}
 | 
						|
                //else if (subModel.SubcontractorIsAllPass == 0)
 | 
						|
                //{
 | 
						|
                //    labSupervision.Text = "(通过)";
 | 
						|
                //    labSupervision.CssClass = "notpass";
 | 
						|
                //}
 | 
						|
                //else if (subModel.SubcontractorIsAllPass == 1)
 | 
						|
                //{
 | 
						|
                //    labSupervision.Text = "(不通过)";
 | 
						|
                //    labSupervision.CssClass = "pass";
 | 
						|
                //}
 | 
						|
 | 
						|
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                ddlfbs.SelectedValue = string.Empty;
 | 
						|
                ddlcbs.SelectedValue = string.Empty;
 | 
						|
                ddljl.SelectedValue = string.Empty;
 | 
						|
                ddlyz.SelectedValue = string.Empty;
 | 
						|
            }
 | 
						|
            var list = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).OrderBy(x => x.Sort).ToList();
 | 
						|
            if (list.Count > 0)
 | 
						|
            {
 | 
						|
                foreach (var item in list)
 | 
						|
                {
 | 
						|
                    var model = new PreRun_SubInspectTermItem();
 | 
						|
                    model.TermItemId = item.TermItemId;
 | 
						|
                    model.SubItemId = item.SubItemId;
 | 
						|
                    model.ProjectId = item.ProjectId;
 | 
						|
                    model.WorkPackId = item.WorkPackId;
 | 
						|
                    model.WorkInspectId = item.WorkInspectId;
 | 
						|
                    model.WorkInspectName = item.WorkInspectName;
 | 
						|
                    model.InstallationId = subSysModel.InstallationId;
 | 
						|
                    model.ProcessesId = subSysModel.ProcessesId;
 | 
						|
                    model.SystemId = subSysModel.SystemId;
 | 
						|
                    model.SubSystemId = subSysModel.PreRunId;
 | 
						|
                    model.InspectedUser = item.InspectedUser;
 | 
						|
                    model.InspectionResults = item.InspectionResults;
 | 
						|
                    model.InspectionIllustrate = item.InspectionIllustrate;
 | 
						|
                    model.Sort = item.Sort;
 | 
						|
                    result.Add(model);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                //获取预加载的数据
 | 
						|
                var defaultDatas = Funs.DB.PreRun_WorkInspectTemplate.Where(s => s.WorkPackId == workPackId).OrderBy(x => x.Sort).ToList();
 | 
						|
                if (defaultDatas.Count > 0)
 | 
						|
                {
 | 
						|
                    int index = list.Count + 1;
 | 
						|
                    foreach (var item in defaultDatas)
 | 
						|
                    {
 | 
						|
                        var model = new PreRun_SubInspectTermItem();
 | 
						|
                        model.TermItemId = Guid.NewGuid().ToString();
 | 
						|
                        model.SubItemId = Guid.NewGuid().ToString();
 | 
						|
                        model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                        model.WorkPackId = item.WorkPackId;
 | 
						|
                        model.WorkInspectId = item.WorkInspectId;
 | 
						|
                        model.WorkInspectName = item.WorkInspectName;
 | 
						|
                        model.InstallationId = subSysModel.InstallationId;
 | 
						|
                        model.ProcessesId = subSysModel.ProcessesId;
 | 
						|
                        model.SystemId = subSysModel.SystemId;
 | 
						|
                        model.SubSystemId = subSysModel.PreRunId;
 | 
						|
                        model.Sort = index + 1;
 | 
						|
                        result.Add(model);
 | 
						|
                        index++;
 | 
						|
                    }
 | 
						|
                }
 | 
						|
            }
 | 
						|
            Grid1.DataSource = result;
 | 
						|
            Grid1.DataBind();
 | 
						|
            //检查人绑定
 | 
						|
            var userList = from user in Funs.DB.Sys_User join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId where projectrole.ProjectId == this.CurrUser.LoginProjectId select user;
 | 
						|
 | 
						|
            var userids = new List<string>() { Const.sysglyId, Const.hfnbdId, Const.sedinId };
 | 
						|
            var addUserList = Funs.DB.Sys_User.Where(x => userids.Contains(x.UserId));
 | 
						|
            var data = userList.ToList();
 | 
						|
            if (addUserList.Count() > 0)
 | 
						|
            {
 | 
						|
                data.AddRange(addUserList);
 | 
						|
            }
 | 
						|
            DropDownList ddlInspectedUser = Grid1.FindColumn("InspectedUser").FindControl("ddlInspectedUser") as DropDownList;
 | 
						|
            ddlInspectedUser.DataTextField = "UserName";
 | 
						|
            ddlInspectedUser.DataValueField = "UserId";
 | 
						|
            ddlInspectedUser.DataSource = data;
 | 
						|
            ddlInspectedUser.DataBind();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 排序
 | 
						|
        /// </summary>
 | 
						|
        protected void Grid1_Sort(object sender, GridSortEventArgs e)
 | 
						|
        {
 | 
						|
            Grid1.SortDirection = e.SortDirection;
 | 
						|
            Grid1.SortField = e.SortField;
 | 
						|
            BindGrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 行按钮事件
 | 
						|
        /// </summary>
 | 
						|
        protected void Grid1_RowCommand(object sender, GridCommandEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.CommandName == "Delete")
 | 
						|
            {
 | 
						|
                string rowID = e.RowID;
 | 
						|
                var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(p => p.TermItemId == rowID);
 | 
						|
                if (model != null)
 | 
						|
                {
 | 
						|
                    if (model.InspectionResults != null)
 | 
						|
                    {
 | 
						|
                        ShowNotify("已存在检查结果,无法删除!", MessageBoxIcon.Warning);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                    Funs.DB.PreRun_SubInspectTermItem.DeleteOnSubmit(model);
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                    BindGrid();
 | 
						|
                    ShowNotify("删除成功!");
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var list = gvList();
 | 
						|
                    list.RemoveAll(x => x.TermItemId == rowID);
 | 
						|
                    Grid1.DataSource = list;
 | 
						|
                    Grid1.DataBind();
 | 
						|
                    ShowNotify("删除成功!");
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 保存
 | 
						|
        /// </summary>
 | 
						|
        protected void btnSave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                if (ddbSysPiping.Values.Length == 0)
 | 
						|
                {
 | 
						|
                    ShowNotify("请选择设备!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
 | 
						|
                var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
 | 
						|
                var subInspectId = string.Empty;
 | 
						|
                if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
 | 
						|
                {
 | 
						|
                    subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
 | 
						|
                }
 | 
						|
                var workPackType = int.Parse(ddlWorkPackType.SelectedValue);
 | 
						|
                var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId);
 | 
						|
                var workPackModel = Funs.DB.PreRun_WorkPackage.FirstOrDefault(x => x.WorkPackId == workPackId);
 | 
						|
                if (workPackModel.SpecialWorkPack == 0)
 | 
						|
                {
 | 
						|
                    if (string.IsNullOrWhiteSpace(ddlfbs.SelectedValue))
 | 
						|
                    {
 | 
						|
                        ShowNotify("请选择分包商!", MessageBoxIcon.Warning);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                    if (string.IsNullOrWhiteSpace(ddlcbs.SelectedValue))
 | 
						|
                    {
 | 
						|
                        ShowNotify("请选择承包商!", MessageBoxIcon.Warning);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                    if (string.IsNullOrWhiteSpace(ddljl.SelectedValue))
 | 
						|
                    {
 | 
						|
                        ShowNotify("请选择监理!", MessageBoxIcon.Warning);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                    if (string.IsNullOrWhiteSpace(ddlyz.SelectedValue))
 | 
						|
                    {
 | 
						|
                        ShowNotify("请选择业主!", MessageBoxIcon.Warning);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                    List<PreRun_SubInspectTerm> subTrems = new List<PreRun_SubInspectTerm>();
 | 
						|
                    List<PreRun_SubInspectTermItem> subTremItems = new List<PreRun_SubInspectTermItem>();
 | 
						|
                    var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
 | 
						|
                    var termItems = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).ToList();
 | 
						|
                    if (termItems.Count > 0 && termItems.Count(x => x.InspectionResults == null) == 0)
 | 
						|
                    {
 | 
						|
                        ShowNotify("所有检查项已存在检查结果,无法保存!", MessageBoxIcon.Warning);
 | 
						|
                        return;
 | 
						|
                    }
 | 
						|
                    JArray mergedData = Grid1.GetMergedData();
 | 
						|
                    foreach (JObject mergedRow in mergedData)
 | 
						|
                    {
 | 
						|
                        string status = mergedRow.Value<string>("status");
 | 
						|
                        JObject values = mergedRow.Value<JObject>("values");
 | 
						|
                        int i = mergedRow.Value<int>("index");
 | 
						|
                        var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
 | 
						|
                        var subItemId = this.Grid1.Rows[i].DataKeys[1].ToString();
 | 
						|
                        var workInspectId = this.Grid1.Rows[i].DataKeys[2].ToString();
 | 
						|
 | 
						|
                        //获取子系统信息
 | 
						|
                        var list = new List<PreRun_SubInspectTermItem>();
 | 
						|
                        if (subSysModel != null)
 | 
						|
                        {
 | 
						|
                            //获取子系统工作包检查表,如果不存在则添加
 | 
						|
                            if (subTrem == null)
 | 
						|
                            {
 | 
						|
                                subTrem = new PreRun_SubInspectTerm();
 | 
						|
                                subTrem.SubInspectId = Guid.NewGuid().ToString();
 | 
						|
                                subTrem.WorkPackId = workPackId;
 | 
						|
                                subTrem.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                                subTrem.InstallationId = subSysModel.InstallationId;
 | 
						|
                                subTrem.ProcessesId = subSysModel.ProcessesId;
 | 
						|
                                subTrem.SystemId = subSysModel.SystemId;
 | 
						|
                                subTrem.SubSystemId = subSysModel.PreRunId;
 | 
						|
                                subTrem.Subcontractor = ddlfbs.SelectedValue;
 | 
						|
                                subTrem.Contractor = ddlcbs.SelectedValue;
 | 
						|
                                subTrem.Supervision = ddljl.SelectedValue;
 | 
						|
                                subTrem.Owner = ddlyz.SelectedValue;
 | 
						|
                                subTrem.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values);
 | 
						|
                                subTrem.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue);
 | 
						|
                                subTrem.AddUser = this.CurrUser.UserId;
 | 
						|
                                subTrem.AddTime = DateTime.Now;
 | 
						|
                                subTrems.Add(subTrem);
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                subTrem.Subcontractor = ddlfbs.SelectedValue;
 | 
						|
                                subTrem.Contractor = ddlcbs.SelectedValue;
 | 
						|
                                subTrem.Supervision = ddljl.SelectedValue;
 | 
						|
                                subTrem.Owner = ddlyz.SelectedValue;
 | 
						|
                                Funs.DB.SubmitChanges();
 | 
						|
                            }
 | 
						|
                            var model = Funs.DB.PreRun_SubInspectTermItem.FirstOrDefault(x => x.TermItemId == termItemId);
 | 
						|
                            if (model == null)
 | 
						|
                            {
 | 
						|
                                model = new PreRun_SubInspectTermItem();
 | 
						|
                                model.TermItemId = termItemId;
 | 
						|
                                model.SubItemId = subItemId;
 | 
						|
                                model.SubInspectId = subTrem.SubInspectId;
 | 
						|
                                model.WorkPackId = workPackId;
 | 
						|
                                model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                                model.WorkInspectId = workInspectId;
 | 
						|
                                model.WorkInspectName = values.Value<string>("WorkInspectName");
 | 
						|
                                model.InstallationId = subSysModel.InstallationId;
 | 
						|
                                model.ProcessesId = subSysModel.ProcessesId;
 | 
						|
                                model.SystemId = subSysModel.SystemId;
 | 
						|
                                model.SubSystemId = subSysModel.PreRunId;
 | 
						|
                                model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value<string>("InspectedUser")) ? values.Value<string>("InspectedUser") : string.Empty;
 | 
						|
                                model.Subcontractor = ddlfbs.SelectedValue;
 | 
						|
                                model.Contractor = ddlcbs.SelectedValue;
 | 
						|
                                model.Supervision = ddljl.SelectedValue;
 | 
						|
                                model.Owner = ddlyz.SelectedValue;
 | 
						|
                                model.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values);
 | 
						|
                                model.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue);
 | 
						|
                                model.AddUser = this.CurrUser.UserId;
 | 
						|
                                model.AddTime = DateTime.Now;
 | 
						|
                                model.Sort = i + 1;
 | 
						|
                                subTremItems.Add(model);
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value<string>("InspectedUser")) ? values.Value<string>("InspectedUser") : string.Empty;
 | 
						|
                                model.WorkInspectName = values.Value<string>("WorkInspectName");
 | 
						|
                                Funs.DB.SubmitChanges();
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
 | 
						|
                    if (subTrems != null) Funs.DB.PreRun_SubInspectTerm.InsertAllOnSubmit(subTrems);
 | 
						|
                    if (subTremItems.Count > 0) Funs.DB.PreRun_SubInspectTermItem.InsertAllOnSubmit(subTremItems);
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                    if (Funs.DB.PreRun_SubInspectTermItem.Count(x => x.SubInspectId == subTrem.SubInspectId && x.InspectionResults.GetValueOrDefault() != 1) == 0)
 | 
						|
                    {
 | 
						|
                        subTrem.InspectionIsAllPass = 1;
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        subTrem.InspectionIsAllPass = 0;
 | 
						|
                    }
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                    this.InitTreeMenu();
 | 
						|
                    BindGrid();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var subTrem = Funs.DB.PreRun_SubInspectTerm.FirstOrDefault(x => x.SubInspectId == subInspectId);
 | 
						|
                    if (subTrem == null)
 | 
						|
                    {
 | 
						|
                        subTrem = new PreRun_SubInspectTerm();
 | 
						|
                        subTrem.SubInspectId = Guid.NewGuid().ToString();
 | 
						|
                        subTrem.WorkPackId = workPackId;
 | 
						|
                        subTrem.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                        subTrem.InstallationId = subSysModel.InstallationId;
 | 
						|
                        subTrem.ProcessesId = subSysModel.ProcessesId;
 | 
						|
                        subTrem.SystemId = subSysModel.SystemId;
 | 
						|
                        subTrem.SubSystemId = subSysModel.PreRunId;
 | 
						|
                        subTrem.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values);
 | 
						|
                        subTrem.WorkPackType = int.Parse(ddlWorkPackType.SelectedValue);
 | 
						|
                        subTrem.InspectionIsAllPass = 1;
 | 
						|
                        subTrem.IsSiteImplement = 1;
 | 
						|
                        subTrem.AddUser = this.CurrUser.UserId;
 | 
						|
                        subTrem.AddTime = DateTime.Now;
 | 
						|
                        Funs.DB.PreRun_SubInspectTerm.InsertOnSubmit(subTrem);
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        subTrem.PropertyTechnologyId = string.Join(",", ddbSysPiping.Values);
 | 
						|
                    }
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                    this.InitTreeMenu();
 | 
						|
                    BindGrid();
 | 
						|
                }
 | 
						|
 | 
						|
                ShowNotify("保存成功!");
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Error);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 新增
 | 
						|
        /// </summary>
 | 
						|
        protected void btnAdd_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            var list = gvList();
 | 
						|
            var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
 | 
						|
            var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
 | 
						|
            var subInspectId = string.Empty;
 | 
						|
            if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
 | 
						|
            {
 | 
						|
                subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
 | 
						|
                var termItems = Funs.DB.PreRun_SubInspectTermItem.Where(x => x.SubInspectId == subInspectId).ToList();
 | 
						|
                if (termItems.Count(x => x.InspectionResults == null) == 0)
 | 
						|
                {
 | 
						|
                    ShowNotify("所有检查项已存在检查结果,无法新增!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
            }
 | 
						|
            //获取子系统
 | 
						|
            var subSysModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == subSystemId);
 | 
						|
            if (subSysModel != null)
 | 
						|
            {
 | 
						|
                var model = new PreRun_SubInspectTermItem();
 | 
						|
                model.TermItemId = Guid.NewGuid().ToString();
 | 
						|
                model.SubItemId = Guid.NewGuid().ToString();
 | 
						|
                model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                model.WorkPackId = workPackId;
 | 
						|
                model.WorkInspectId = string.Empty;
 | 
						|
                model.WorkInspectName = string.Empty;
 | 
						|
                model.InstallationId = subSysModel.InstallationId;
 | 
						|
                model.ProcessesId = subSysModel.ProcessesId;
 | 
						|
                model.SystemId = subSysModel.SystemId;
 | 
						|
                model.SubSystemId = subSysModel.PreRunId;
 | 
						|
                model.Sort = list.Count + 1;
 | 
						|
                list.Add(model);
 | 
						|
            }
 | 
						|
            Grid1.DataSource = list;
 | 
						|
            Grid1.DataBind();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 入场人员培训及特种作业报验人数集合
 | 
						|
        /// </summary>
 | 
						|
        private List<PreRun_SubInspectTermItem> gvList()
 | 
						|
        {
 | 
						|
            List<PreRun_SubInspectTermItem> list = new List<PreRun_SubInspectTermItem>();
 | 
						|
            JArray mergedData = Grid1.GetMergedData();
 | 
						|
            foreach (JObject mergedRow in mergedData)
 | 
						|
            {
 | 
						|
                string status = mergedRow.Value<string>("status");
 | 
						|
                JObject values = mergedRow.Value<JObject>("values");
 | 
						|
                int i = mergedRow.Value<int>("index");
 | 
						|
                var termItemId = this.Grid1.Rows[i].DataKeys[0].ToString();
 | 
						|
                var subItemId = this.Grid1.Rows[i].DataKeys[1].ToString();
 | 
						|
                var workInspectId = this.Grid1.Rows[i].DataKeys[2] != null ? this.Grid1.Rows[i].DataKeys[2].ToString() : string.Empty; ;
 | 
						|
                var subInspectId = this.Grid1.Rows[i].DataKeys[3] != null ? this.Grid1.Rows[i].DataKeys[3].ToString() : string.Empty;
 | 
						|
                var workPackId = this.Grid1.Rows[i].DataKeys[4].ToString();
 | 
						|
                var installationId = this.Grid1.Rows[i].DataKeys[5].ToString();
 | 
						|
                var processesId = this.Grid1.Rows[i].DataKeys[6].ToString();
 | 
						|
                var systemId = this.Grid1.Rows[i].DataKeys[7].ToString();
 | 
						|
                var subSystemId = this.Grid1.Rows[i].DataKeys[8].ToString();
 | 
						|
 | 
						|
                var model = new PreRun_SubInspectTermItem();
 | 
						|
                model.TermItemId = termItemId;
 | 
						|
                model.SubItemId = subItemId;
 | 
						|
                model.SubInspectId = subInspectId;
 | 
						|
                model.WorkPackId = workPackId;
 | 
						|
                model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                model.WorkInspectId = workInspectId;
 | 
						|
                model.WorkInspectName = values.Value<string>("WorkInspectName");
 | 
						|
                model.InstallationId = installationId;
 | 
						|
                model.ProcessesId = processesId;
 | 
						|
                model.SystemId = systemId;
 | 
						|
                model.SubSystemId = subSystemId;
 | 
						|
                model.InspectedUser = !string.IsNullOrWhiteSpace(values.Value<string>("InspectedUser")) ? values.Value<string>("InspectedUser") : string.Empty;
 | 
						|
                model.AddUser = this.CurrUser.UserId;
 | 
						|
                model.AddTime = DateTime.Now;
 | 
						|
                model.Sort = i + 1;
 | 
						|
                list.Add(model);
 | 
						|
            }
 | 
						|
            return list;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 检测结果
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public string Results(object value)
 | 
						|
        {
 | 
						|
            var result = string.Empty;
 | 
						|
 | 
						|
            if (value != null)
 | 
						|
            {
 | 
						|
                var intVal = int.Parse(value.ToString());
 | 
						|
                if (intVal == 1)
 | 
						|
                {
 | 
						|
                    result = "通过";
 | 
						|
                }
 | 
						|
                else if (intVal == 0)
 | 
						|
                {
 | 
						|
                    result = "未通过";
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
            return result;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 类型
 | 
						|
        /// </summary>
 | 
						|
        protected void ddlWorkPackType_SelectedIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            var selectStr = string.Empty;
 | 
						|
            var propertyTechnologyIds = string.Empty;
 | 
						|
            var workPackId = this.tvControlItem.SelectedNodeID.Split('|')[0];
 | 
						|
            var subSystemId = this.tvControlItem.SelectedNodeID.Split('|')[1];
 | 
						|
            var subInspectId = string.Empty;
 | 
						|
            if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
 | 
						|
            {
 | 
						|
                subInspectId = this.tvControlItem.SelectedNodeID.Split('|').Last();
 | 
						|
            }
 | 
						|
            var inspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => x.WorkPackId == workPackId && x.SubSystemId == subSystemId).ToList();
 | 
						|
            if (!string.IsNullOrWhiteSpace(subInspectId))
 | 
						|
            {
 | 
						|
                var selectItem = inspectItems.FirstOrDefault(x => x.SubInspectId == subInspectId);
 | 
						|
                if (selectItem != null)
 | 
						|
                {
 | 
						|
                    selectStr = selectItem.PropertyTechnologyId;
 | 
						|
                }
 | 
						|
                inspectItems.RemoveAll(x => x.SubInspectId == subInspectId);
 | 
						|
            }
 | 
						|
            if (inspectItems.Count > 0) propertyTechnologyIds = string.Join(",", inspectItems.ConvertAll(x => x.PropertyTechnologyId));
 | 
						|
            PipingBrid(ddlWorkPackType.SelectedValue, subSystemId, propertyTechnologyIds, selectStr);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 设备选择
 | 
						|
        /// </summary>
 | 
						|
        protected void ddlSysPiping_SelectedIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            BindGrid(false);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 已生成检查表的管道/设备
 | 
						|
        /// </summary>
 | 
						|
        private List<SelectPropertyTechnology> YscInspectItems(List<string> workPackIds, List<string> subSystemIds)
 | 
						|
        {
 | 
						|
            List<SelectPropertyTechnology> yczData = new List<SelectPropertyTechnology>();
 | 
						|
            var yscInspectItems = Funs.DB.PreRun_SubInspectTerm.Where(x => workPackIds.Contains(x.WorkPackId) && subSystemIds.Contains(x.SubSystemId)).ToList();
 | 
						|
            if (yscInspectItems.Count > 0)
 | 
						|
            {
 | 
						|
                var selectPtids = string.Join(",", yscInspectItems.ConvertAll(x => x.PropertyTechnologyId)).Split(',').ToList();
 | 
						|
                var listPros = Funs.DB.PreRun_PropertySysPiping.Where(x => selectPtids.Contains(x.PropertyId)).ToList();
 | 
						|
                var listTechno = Funs.DB.PreRun_TechnologySysPiping.Where(x => selectPtids.Contains(x.TechnologyId)).ToList();
 | 
						|
                var listInstrument = Funs.DB.PreRun_InstrumentSysPiping.Where(x => selectPtids.Contains(x.InstrumentId)).ToList();
 | 
						|
 | 
						|
                foreach (var itemYsc in yscInspectItems)
 | 
						|
                {
 | 
						|
                    var codeStr = string.Empty;
 | 
						|
                    var ids = itemYsc.PropertyTechnologyId.Split(',');
 | 
						|
                    var itemPros = listPros.Where(x => ids.Contains(x.PropertyId)).ToList();
 | 
						|
                    if (itemPros.Count > 0)
 | 
						|
                    {
 | 
						|
                        codeStr = $"管道:{string.Join(",", itemPros.ConvertAll(x => x.PipingCode))}";
 | 
						|
                        yczData.Add(new SelectPropertyTechnology()
 | 
						|
                        {
 | 
						|
                            Id = itemYsc.SubInspectId,
 | 
						|
                            Code = codeStr,
 | 
						|
                            WorkPackId = itemYsc.WorkPackId,
 | 
						|
                            SubSystemId = itemYsc.SubSystemId
 | 
						|
                        });
 | 
						|
                    }
 | 
						|
                    var itemTechno = listTechno.Where(x => ids.Contains(x.TechnologyId)).ToList();
 | 
						|
                    if (itemTechno.Count > 0)
 | 
						|
                    {
 | 
						|
                        codeStr = $"设备:{string.Join(",", itemTechno.ConvertAll(x => x.TagNumber))}";
 | 
						|
                        yczData.Add(new SelectPropertyTechnology()
 | 
						|
                        {
 | 
						|
                            Id = itemYsc.SubInspectId,
 | 
						|
                            Code = codeStr,
 | 
						|
                            WorkPackId = itemYsc.WorkPackId,
 | 
						|
                            SubSystemId = itemYsc.SubSystemId
 | 
						|
                        });
 | 
						|
                    }
 | 
						|
                    var itemInstrument = listInstrument.Where(x => ids.Contains(x.InstrumentId)).ToList();
 | 
						|
                    if (itemInstrument.Count > 0)
 | 
						|
                    {
 | 
						|
                        codeStr = $"仪表:{string.Join(",", itemInstrument.ConvertAll(x => x.InstrumentTag))}";
 | 
						|
                        yczData.Add(new SelectPropertyTechnology()
 | 
						|
                        {
 | 
						|
                            Id = itemYsc.SubInspectId,
 | 
						|
                            Code = codeStr,
 | 
						|
                            WorkPackId = itemYsc.WorkPackId,
 | 
						|
                            SubSystemId = itemYsc.SubSystemId
 | 
						|
                        });
 | 
						|
                    }
 | 
						|
 | 
						|
                }
 | 
						|
            }
 | 
						|
            return yczData;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 管道,设备,仪表索引绑定
 | 
						|
        /// </summary>
 | 
						|
        public void PipingBrid(string WorkPackType, string subSystemId, string propertyTechnologyIds, string selectStr)
 | 
						|
        {
 | 
						|
            var sysPipingData = new List<SelectPropertyTechnology>();
 | 
						|
            if (WorkPackType == "1")
 | 
						|
            {
 | 
						|
                if (string.IsNullOrWhiteSpace(propertyTechnologyIds))
 | 
						|
                {
 | 
						|
                    var sysData = from proper in Funs.DB.PreRun_PropertySysPiping
 | 
						|
                                  join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
 | 
						|
                                  where selectproper.SubSystemId == subSystemId
 | 
						|
                                  select new SelectPropertyTechnology()
 | 
						|
                                  {
 | 
						|
                                      Id = proper.PropertyId,
 | 
						|
                                      Code = $"管道:({proper.PipingCode})"
 | 
						|
                                  };
 | 
						|
                    sysPipingData = sysData.ToList();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var ids = propertyTechnologyIds.Split(',');
 | 
						|
                    var sysData = from proper in Funs.DB.PreRun_PropertySysPiping
 | 
						|
                                  join selectproper in Funs.DB.PreRun_SubPropertySelect on proper.PropertyId equals selectproper.PropertyId
 | 
						|
                                  where selectproper.SubSystemId == subSystemId && !ids.Contains(proper.PropertyId)
 | 
						|
                                  select new SelectPropertyTechnology()
 | 
						|
                                  {
 | 
						|
                                      Id = proper.PropertyId,
 | 
						|
                                      Code = $"管道:({proper.PipingCode})"
 | 
						|
                                  };
 | 
						|
                    sysPipingData = sysData.ToList();
 | 
						|
                }
 | 
						|
 | 
						|
                if (sysPipingData.Count > 0)
 | 
						|
                {
 | 
						|
                    cbSysPiping.DataTextField = "Code";
 | 
						|
                    cbSysPiping.DataValueField = "Id";
 | 
						|
                    cbSysPiping.DataSource = sysPipingData;
 | 
						|
                    cbSysPiping.DataBind();
 | 
						|
                    List<string> values = new List<string>();
 | 
						|
                    List<string> texts = new List<string>();
 | 
						|
                    if (!string.IsNullOrWhiteSpace(selectStr))
 | 
						|
                    {
 | 
						|
                        var selectIds = selectStr.Split(',').ToList();
 | 
						|
                        var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList();
 | 
						|
                        if (selectData.Count() > 0)
 | 
						|
                        {
 | 
						|
                            values = selectData.ConvertAll(x => x.Id);
 | 
						|
                            texts = selectData.ConvertAll(x => x.Code);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    ddbSysPiping.Values = values.ToArray();
 | 
						|
                    ddbSysPiping.Texts = texts.ToArray();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    ddbSysPiping.Values = null;
 | 
						|
                    ddbSysPiping.Texts = null;
 | 
						|
                    cbSysPiping.Items.Clear();
 | 
						|
                    cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
 | 
						|
                }
 | 
						|
            }
 | 
						|
            if (WorkPackType == "2")
 | 
						|
            {
 | 
						|
                if (string.IsNullOrWhiteSpace(propertyTechnologyIds))
 | 
						|
                {
 | 
						|
                    var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping
 | 
						|
                                  join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
 | 
						|
                                  where selecttechnology.SubSystemId == subSystemId
 | 
						|
                                  select new SelectPropertyTechnology()
 | 
						|
                                  {
 | 
						|
                                      Id = technology.TechnologyId,
 | 
						|
                                      Code = $"设备:({technology.TagNumber})"
 | 
						|
                                  };
 | 
						|
                    sysPipingData = sysData.ToList();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var ids = propertyTechnologyIds.Split(',');
 | 
						|
                    var sysData = from technology in Funs.DB.PreRun_TechnologySysPiping
 | 
						|
                                  join selecttechnology in Funs.DB.PreRun_SubTechnologySelect on technology.TechnologyId equals selecttechnology.TechnologyId
 | 
						|
                                  where selecttechnology.SubSystemId == subSystemId && !ids.Contains(technology.TechnologyId)
 | 
						|
                                  select new SelectPropertyTechnology()
 | 
						|
                                  {
 | 
						|
                                      Id = technology.TechnologyId,
 | 
						|
                                      Code = $"设备:({technology.TagNumber})"
 | 
						|
                                  };
 | 
						|
                    sysPipingData = sysData.ToList();
 | 
						|
                }
 | 
						|
                if (sysPipingData.Count() > 0)
 | 
						|
                {
 | 
						|
                    cbSysPiping.DataTextField = "Code";
 | 
						|
                    cbSysPiping.DataValueField = "Id";
 | 
						|
                    cbSysPiping.DataSource = sysPipingData;
 | 
						|
                    cbSysPiping.DataBind();
 | 
						|
                    List<string> values = new List<string>();
 | 
						|
                    List<string> texts = new List<string>();
 | 
						|
                    if (!string.IsNullOrWhiteSpace(selectStr))
 | 
						|
                    {
 | 
						|
                        var selectIds = selectStr.Split(',').ToList();
 | 
						|
                        var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList();
 | 
						|
                        if (selectData.Count() > 0)
 | 
						|
                        {
 | 
						|
                            values = selectData.ConvertAll(x => x.Id);
 | 
						|
                            texts = selectData.ConvertAll(x => x.Code);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    ddbSysPiping.Values = values.ToArray();
 | 
						|
                    ddbSysPiping.Texts = texts.ToArray();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    ddbSysPiping.Values = null;
 | 
						|
                    ddbSysPiping.Texts = null;
 | 
						|
                    cbSysPiping.Items.Clear();
 | 
						|
                    cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
 | 
						|
                }
 | 
						|
            }
 | 
						|
            if (WorkPackType == "3")
 | 
						|
            {
 | 
						|
                if (string.IsNullOrWhiteSpace(propertyTechnologyIds))
 | 
						|
                {
 | 
						|
                    var sysData = from instrument in Funs.DB.PreRun_InstrumentSysPiping
 | 
						|
                                  join selectinstrument in Funs.DB.PreRun_SubInstrumentSelect on instrument.InstrumentId equals selectinstrument.InstrumentId
 | 
						|
                                  where selectinstrument.SubSystemId == subSystemId
 | 
						|
                                  select new SelectPropertyTechnology()
 | 
						|
                                  {
 | 
						|
                                      Id = instrument.InstrumentId,
 | 
						|
                                      Code = $"仪表:({instrument.InstrumentTag})"
 | 
						|
                                  };
 | 
						|
                    sysPipingData = sysData.ToList();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    var ids = propertyTechnologyIds.Split(',');
 | 
						|
                    var sysData = from instrument in Funs.DB.PreRun_InstrumentSysPiping
 | 
						|
                                  join selectinstrument in Funs.DB.PreRun_SubInstrumentSelect on instrument.InstrumentId equals selectinstrument.InstrumentId
 | 
						|
                                  where selectinstrument.SubSystemId == subSystemId && !ids.Contains(instrument.InstrumentId)
 | 
						|
                                  select new SelectPropertyTechnology()
 | 
						|
                                  {
 | 
						|
                                      Id = instrument.InstrumentId,
 | 
						|
                                      Code = $"仪表:({instrument.InstrumentTag})"
 | 
						|
                                  };
 | 
						|
                    sysPipingData = sysData.ToList();
 | 
						|
                }
 | 
						|
                if (sysPipingData.Count() > 0)
 | 
						|
                {
 | 
						|
                    cbSysPiping.DataTextField = "Code";
 | 
						|
                    cbSysPiping.DataValueField = "Id";
 | 
						|
                    cbSysPiping.DataSource = sysPipingData;
 | 
						|
                    cbSysPiping.DataBind();
 | 
						|
                    List<string> values = new List<string>();
 | 
						|
                    List<string> texts = new List<string>();
 | 
						|
                    if (!string.IsNullOrWhiteSpace(selectStr))
 | 
						|
                    {
 | 
						|
                        var selectIds = selectStr.Split(',').ToList();
 | 
						|
                        var selectData = sysPipingData.Where(x => selectIds.Contains(x.Id)).ToList();
 | 
						|
                        if (selectData.Count() > 0)
 | 
						|
                        {
 | 
						|
                            values = selectData.ConvertAll(x => x.Id);
 | 
						|
                            texts = selectData.ConvertAll(x => x.Code);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    ddbSysPiping.Values = values.ToArray();
 | 
						|
                    ddbSysPiping.Texts = texts.ToArray();
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    ddbSysPiping.Values = null;
 | 
						|
                    ddbSysPiping.Texts = null;
 | 
						|
                    cbSysPiping.Items.Clear();
 | 
						|
                    cbSysPiping.Items.Insert(0, new CheckItem("==无数据==", ""));
 | 
						|
                }
 | 
						|
            }
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 子系统选择的管道/设备
 | 
						|
        /// </summary>
 | 
						|
        public class SelectPropertyTechnology
 | 
						|
        {
 | 
						|
            /// <summary>
 | 
						|
            /// 主键
 | 
						|
            /// </summary>
 | 
						|
            public string Id { get; set; }
 | 
						|
            /// <summary>
 | 
						|
            /// 编码
 | 
						|
            /// </summary>
 | 
						|
            public string Code { get; set; }
 | 
						|
            /// <summary>
 | 
						|
            /// 工作包主键
 | 
						|
            /// </summary>
 | 
						|
            public string WorkPackId { get; set; }
 | 
						|
            /// <summary>
 | 
						|
            /// 子系统主键
 | 
						|
            /// </summary>
 | 
						|
            public string SubSystemId { get; set; }
 | 
						|
        }
 | 
						|
    }
 | 
						|
} |