1672 lines
		
	
	
		
			74 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			1672 lines
		
	
	
		
			74 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.IO;
 | 
						|
using System.Linq;
 | 
						|
using System.Web;
 | 
						|
using System.Web.UI;
 | 
						|
using System.Web.UI.WebControls;
 | 
						|
 | 
						|
namespace FineUIPro.Web.TestRun.BeforeTestRun
 | 
						|
{
 | 
						|
    public partial class SysPipingDeviceImport : 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;
 | 
						|
            this.PageBase();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 数据显示
 | 
						|
        /// </summary>
 | 
						|
        public void PageBase()
 | 
						|
        {
 | 
						|
            zxtsc.Hidden = true;
 | 
						|
            zxtsxt.Hidden = true;
 | 
						|
            zz.Hidden = true;
 | 
						|
            gx.Hidden = true;
 | 
						|
            sxt.Hidden = true;
 | 
						|
            sszxt.Hidden = true;
 | 
						|
            var model = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == this.TreePreRunId);
 | 
						|
            if (model != null)
 | 
						|
            {
 | 
						|
                var ids = new List<string>();
 | 
						|
                if (!string.IsNullOrWhiteSpace(model.InstallationId)) ids.Add(model.InstallationId);
 | 
						|
                if (!string.IsNullOrWhiteSpace(model.ProcessesId)) ids.Add(model.ProcessesId);
 | 
						|
                if (!string.IsNullOrWhiteSpace(model.SystemId)) ids.Add(model.SystemId);
 | 
						|
                if (!string.IsNullOrWhiteSpace(model.SubsystemId)) ids.Add(model.SubsystemId);
 | 
						|
                var list = Funs.DB.PreRun_SysDevice.Where(p => ids.Contains(p.PreRunId)).ToList();
 | 
						|
 | 
						|
                if (list.Count(p => p.PreRunLevel == 1) > 0)
 | 
						|
                {
 | 
						|
                    zz.Hidden = false;
 | 
						|
                    lblzzbm.Text = list.FirstOrDefault(p => p.PreRunLevel == 1).PreRunCode;
 | 
						|
                    lblzzmc.Text = list.FirstOrDefault(p => p.PreRunLevel == 1).PreRunName;
 | 
						|
                }
 | 
						|
                if (list.Count(p => p.PreRunLevel == 2) > 0)
 | 
						|
                {
 | 
						|
                    gx.Hidden = false;
 | 
						|
                    lblgxmc.Text = list.FirstOrDefault(p => p.PreRunLevel == 2).PreRunName;
 | 
						|
                    lblgxbm.Text = list.FirstOrDefault(p => p.PreRunLevel == 2).PreRunCode;
 | 
						|
                }
 | 
						|
                if (list.Count(p => p.PreRunLevel == 3) > 0)
 | 
						|
                {
 | 
						|
                    sxt.Hidden = false;
 | 
						|
                    lblsxtmc.Text = list.FirstOrDefault(p => p.PreRunLevel == 3).PreRunName;
 | 
						|
                    lblsxtbm.Text = list.FirstOrDefault(p => p.PreRunLevel == 3).PreRunCode;
 | 
						|
                }
 | 
						|
                if (list.Count(p => p.PreRunLevel == 4) > 0)
 | 
						|
                {
 | 
						|
                    sszxt.Hidden = false;
 | 
						|
                    lblszxtmc.Text = list.FirstOrDefault(p => p.PreRunLevel == 4).PreRunName;
 | 
						|
                    lblszxtbm.Text = list.FirstOrDefault(p => p.PreRunLevel == 4).PreRunCode;
 | 
						|
                }
 | 
						|
 | 
						|
                //判断是否为S系统
 | 
						|
                if (model.PreRunLevel == 3)
 | 
						|
                {
 | 
						|
                    zxtsc.Hidden = false;
 | 
						|
                    ZxtgdBrid();
 | 
						|
                }
 | 
						|
 | 
						|
                //判断是否为SS系统
 | 
						|
                if (model.PreRunLevel == 4)
 | 
						|
                {
 | 
						|
                    hidSystemId.Text = model.SystemId;
 | 
						|
                    zxtsxt.Hidden = false;
 | 
						|
                    SubPropertyBrid();
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region IDP试车数据库
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// IDP试车数据库
 | 
						|
        /// </summary>
 | 
						|
        protected void btnIDPPreRunData_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            string window = $"IDPPreRunData.aspx";
 | 
						|
            PageContext.RegisterStartupScript(IdpWindow.GetSaveStateReference(this.hidSelectProperty.ClientID) + IdpWindow.GetShowReference(window));
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 从IDP选择管道数据
 | 
						|
        /// </summary>
 | 
						|
        protected void btnIDPSelectPiping_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            string window = $"SelectIDPPiping.aspx?SystemId={this.tvControlItem.SelectedNodeID}";
 | 
						|
            PageContext.RegisterStartupScript(IdpWindow2.GetShowReference(window, "从IDP选择管道数据"));
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 关闭
 | 
						|
        /// </summary>
 | 
						|
        protected void IdpWindow2_Close(object sender, WindowCloseEventArgs e)
 | 
						|
        {
 | 
						|
            ZxtgdBrid();
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 从IDP选择工艺设备数据
 | 
						|
        /// </summary>
 | 
						|
        protected void btnIDPSelectEquipment_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            string window = $"SelectIDPEquipment.aspx?SystemId={this.tvControlItem.SelectedNodeID}";
 | 
						|
            PageContext.RegisterStartupScript(IdpWindow3.GetShowReference(window, "从IDP选择工艺设备数据"));
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 关闭
 | 
						|
        /// </summary>
 | 
						|
        protected void IdpWindow3_Close(object sender, WindowCloseEventArgs e)
 | 
						|
        {
 | 
						|
            ZxtgyBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 从IDP选择仪表索引数据
 | 
						|
        /// </summary>
 | 
						|
        protected void btnIDPSelectInstrumentation_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            string window = $"SelectIDPInstrumentation.aspx?SystemId={this.tvControlItem.SelectedNodeID}";
 | 
						|
            PageContext.RegisterStartupScript(IdpWindow4.GetShowReference(window, "从IDP选择仪表索引数据"));
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 关闭
 | 
						|
        /// </summary>
 | 
						|
        protected void IdpWindow4_Close(object sender, WindowCloseEventArgs e)
 | 
						|
        {
 | 
						|
            ZxtybBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region S系统管道一览表导入
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定管道号
 | 
						|
        /// </summary>
 | 
						|
        public void ZxtgdBrid()
 | 
						|
        {
 | 
						|
            string strSql = @"select * from PreRun_PropertySysPiping where ProjectId=@ProjectId and SystemId=@SystemId order by Sort asc";
 | 
						|
            List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						|
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
 | 
						|
            listStr.Add(new SqlParameter("@SystemId", this.tvControlItem.SelectedNodeID));
 | 
						|
            SqlParameter[] parameter = listStr.ToArray();
 | 
						|
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | 
						|
            GridZxtgd.RecordCount = tb.Rows.Count;
 | 
						|
            var table = this.GetPagedDataTable(GridZxtgd, tb);
 | 
						|
            GridZxtgd.DataSource = table;
 | 
						|
            GridZxtgd.DataBind();
 | 
						|
            TabStrip1.ActiveTabIndex = 0;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 行按钮事件
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtgd_RowCommand(object sender, GridCommandEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.CommandName == "Delete")
 | 
						|
            {
 | 
						|
                string rowID = e.RowID;
 | 
						|
                var model = Funs.DB.PreRun_PropertySysPiping.FirstOrDefault(p => p.PropertyId == rowID);
 | 
						|
                Funs.DB.PreRun_PropertySysPiping.DeleteOnSubmit(model);
 | 
						|
                Funs.DB.SubmitChanges();
 | 
						|
                ZxtgdBrid();
 | 
						|
                ShowNotify("删除成功!");
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 分页
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtgd_PageIndexChange(object sender, GridPageEventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtgd.PageIndex = e.NewPageIndex;
 | 
						|
            ZxtgdBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 排序
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtgd_Sort(object sender, GridSortEventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtgd.SortDirection = e.SortDirection;
 | 
						|
            GridZxtgd.SortField = e.SortField;
 | 
						|
            ZxtgdBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 分页下拉框事件
 | 
						|
        /// </summary>
 | 
						|
        protected void ddlZxtgdPageSize_SelectedIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtgd.PageSize = Convert.ToInt32(ddlZxtgdPageSize.SelectedValue);
 | 
						|
            ZxtgdBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 导入管道一览表
 | 
						|
        /// </summary>
 | 
						|
        protected void btnZxtgdImport_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                if (this.fileData.HasFile == false)
 | 
						|
                {
 | 
						|
                    ShowNotify("请选择excel文件!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                string IsXls = Path.GetExtension(this.fileData.FileName).ToString().Trim().ToLower();
 | 
						|
                if (IsXls != ".xls" && IsXls != ".xlsx")
 | 
						|
                {
 | 
						|
                    fileData.Reset();
 | 
						|
                    ShowNotify("excel文件类型错误!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                string rootPath = Server.MapPath("~/");
 | 
						|
                string initFullPath = rootPath + Const.ExcelUrl;
 | 
						|
                if (!Directory.Exists(initFullPath))
 | 
						|
                {
 | 
						|
                    Directory.CreateDirectory(initFullPath);
 | 
						|
                }
 | 
						|
                //指定上传文件名称
 | 
						|
                string fileUrl = BLL.Funs.GetNewFileName() + IsXls;
 | 
						|
                //上传文件路径
 | 
						|
                string filePath = initFullPath + fileUrl;
 | 
						|
                //文件上传服务器
 | 
						|
                this.fileData.PostedFile.SaveAs(filePath);
 | 
						|
                //文件上传服务器后的名称
 | 
						|
                string fileName = rootPath + Const.ExcelUrl + fileUrl;
 | 
						|
                //读取Excel
 | 
						|
                DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out string message, false, false);
 | 
						|
                if (ds == null)
 | 
						|
                {
 | 
						|
                    fileData.Reset();
 | 
						|
                    ShowNotify("模板错误,请从系统下载正确的模板!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrWhiteSpace(message))
 | 
						|
                {
 | 
						|
                    ShowNotify(message, MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                //移除不正确的表格
 | 
						|
                List<string> removeAtt = new List<string>();
 | 
						|
                for (int i = 0; i < ds.Tables.Count; i++)
 | 
						|
                {
 | 
						|
                    var itemTb = ds.Tables[i];
 | 
						|
                    var fileVerify = PropertyVerifyFile(itemTb);
 | 
						|
                    if (!fileVerify) removeAtt.Add(ds.Tables[i].TableName);
 | 
						|
                }
 | 
						|
                if (removeAtt.Count > 0)
 | 
						|
                {
 | 
						|
                    foreach (var itemR in removeAtt)
 | 
						|
                    {
 | 
						|
                        ds.Tables.Remove(itemR);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (ds.Tables.Count == 0)
 | 
						|
                {
 | 
						|
                    fileData.Reset();
 | 
						|
                    ShowNotify("Excel模板格式不正确!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                var sortnum = Funs.DB.PreRun_PropertySysPiping.Count(x => x.SystemId == tvControlItem.SelectedNodeID);
 | 
						|
                List<PreRun_PropertySysPiping> list = new List<PreRun_PropertySysPiping>();
 | 
						|
                for (int i = 0; i < ds.Tables.Count; i++)
 | 
						|
                {
 | 
						|
                    var itemTb = ds.Tables[i];
 | 
						|
                    if (itemTb.Rows.Count > 6)
 | 
						|
                    {
 | 
						|
                        for (int j = 6; j < itemTb.Rows.Count; j++)
 | 
						|
                        {
 | 
						|
                            if (string.IsNullOrWhiteSpace(itemTb.Rows[j][1].ToString()) || string.IsNullOrWhiteSpace(itemTb.Rows[j][8].ToString())) continue;
 | 
						|
                            PreRun_PropertySysPiping model = new PreRun_PropertySysPiping();
 | 
						|
                            sortnum++;
 | 
						|
                            model.PropertyId = Guid.NewGuid().ToString();
 | 
						|
                            model.SystemId = tvControlItem.SelectedNodeID;
 | 
						|
                            model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                            model.PipingCode = itemTb.Rows[j][1].ToString();
 | 
						|
                            model.Diameter = itemTb.Rows[j][8].ToString();
 | 
						|
                            model.MaterialLevel = itemTb.Rows[j][10].ToString();
 | 
						|
                            model.AdiabatType = itemTb.Rows[j][15].ToString();
 | 
						|
                            model.AdiabatThickness = itemTb.Rows[j][18].ToString();
 | 
						|
                            model.MediumState = itemTb.Rows[j][20].ToString();
 | 
						|
                            model.DrawingNo = itemTb.Rows[j][22].ToString();
 | 
						|
                            model.PipingStart = itemTb.Rows[j][29].ToString();
 | 
						|
                            model.PipingEnd = itemTb.Rows[j][35].ToString();
 | 
						|
                            model.PipingLevel = itemTb.Rows[j][41].ToString();
 | 
						|
                            model.NormalTemperature = itemTb.Rows[j][43].ToString();
 | 
						|
                            model.NormalPressure = itemTb.Rows[j][45].ToString();
 | 
						|
                            model.DesignTemperature = itemTb.Rows[j][47].ToString();
 | 
						|
                            model.DesignPressure = itemTb.Rows[j][49].ToString();
 | 
						|
                            model.PaintLevel = itemTb.Rows[j][51].ToString();
 | 
						|
                            model.Remark = itemTb.Rows[j][54].ToString();
 | 
						|
                            model.AddUser = this.CurrUser.UserId;
 | 
						|
                            model.AddTime = DateTime.Now;
 | 
						|
                            model.Sort = sortnum;
 | 
						|
                            list.Add(model);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (list.Count > 0)
 | 
						|
                {
 | 
						|
                    //获取已经存在的数据
 | 
						|
                    var pipingCodes = list.ConvertAll(x => x.PipingCode);
 | 
						|
                    List<PreRun_PropertySysPiping> addList = new List<PreRun_PropertySysPiping>();
 | 
						|
                    var existPropertys = Funs.DB.PreRun_PropertySysPiping.Where(x => pipingCodes.Contains(x.PipingCode) && x.SystemId == tvControlItem.SelectedNodeID && x.ProjectId == this.CurrUser.LoginProjectId).ToList();
 | 
						|
                    if (existPropertys.Count == 0)
 | 
						|
                    {
 | 
						|
                        addList = list;
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        var existTags = existPropertys.ConvertAll(x => x.PipingCode);
 | 
						|
                        foreach (var item in list)
 | 
						|
                        {
 | 
						|
                            if (existTags.Count(a => a == item.PipingCode) > 0)
 | 
						|
                            {
 | 
						|
                                var upModel = existPropertys.FirstOrDefault(a => a.PipingCode == item.PipingCode);
 | 
						|
                                upModel.Diameter = item.Diameter;
 | 
						|
                                upModel.MaterialLevel = item.MaterialLevel;
 | 
						|
                                upModel.AdiabatType = item.AdiabatType;
 | 
						|
                                upModel.AdiabatThickness = item.AdiabatThickness;
 | 
						|
                                upModel.MediumState = item.MediumState;
 | 
						|
                                upModel.DrawingNo = item.DrawingNo;
 | 
						|
                                upModel.PipingStart = item.PipingStart;
 | 
						|
                                upModel.PipingEnd = item.PipingEnd;
 | 
						|
                                upModel.PipingLevel = item.PipingLevel;
 | 
						|
                                upModel.NormalTemperature = item.NormalTemperature;
 | 
						|
                                upModel.NormalPressure = item.NormalPressure;
 | 
						|
                                upModel.DesignTemperature = item.DesignTemperature;
 | 
						|
                                upModel.DesignPressure = item.DesignPressure;
 | 
						|
                                upModel.PaintLevel = item.PaintLevel;
 | 
						|
                                upModel.Remark = item.Remark;
 | 
						|
                                Funs.DB.SubmitChanges();
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                addList.Add(item);
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if (addList.Count > 0)
 | 
						|
                    {
 | 
						|
                        Funs.DB.PreRun_PropertySysPiping.InsertAllOnSubmit(addList);
 | 
						|
                        Funs.DB.SubmitChanges();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    fileData.Reset();
 | 
						|
                    ShowNotify("Excel模板无数据!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                fileData.Reset();
 | 
						|
                ZxtgdBrid();
 | 
						|
                ShowNotify("导入成功!", MessageBoxIcon.Success);
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                fileData.Reset();
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Warning);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 管道一览表保存
 | 
						|
        /// </summary>
 | 
						|
        protected void btnZxtgdSave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                JArray mergedData = GridZxtgd.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 propertyId = this.GridZxtgd.Rows[i].DataKeys[0].ToString();
 | 
						|
                    PreRun_PropertySysPiping model = Funs.DB.PreRun_PropertySysPiping.FirstOrDefault(x => x.PropertyId == propertyId);
 | 
						|
                    if (model == null) continue;
 | 
						|
 | 
						|
                    model.PipingCode = values.Value<string>("PipingCode");
 | 
						|
                    model.Diameter = values.Value<string>("Diameter");
 | 
						|
                    model.MaterialLevel = values.Value<string>("MaterialLevel");
 | 
						|
                    model.AdiabatType = values.Value<string>("AdiabatType");
 | 
						|
                    model.AdiabatThickness = values.Value<string>("AdiabatThickness");
 | 
						|
                    model.MediumState = values.Value<string>("MediumState");
 | 
						|
                    model.DrawingNo = values.Value<string>("DrawingNo");
 | 
						|
                    model.PipingStart = values.Value<string>("PipingStart");
 | 
						|
                    model.PipingEnd = values.Value<string>("PipingEnd");
 | 
						|
                    model.PipingLevel = values.Value<string>("PipingLevel");
 | 
						|
                    model.NormalTemperature = values.Value<string>("NormalTemperature");
 | 
						|
                    model.NormalPressure = values.Value<string>("NormalPressure");
 | 
						|
                    model.DesignTemperature = values.Value<string>("DesignTemperature");
 | 
						|
                    model.DesignPressure = values.Value<string>("DesignPressure");
 | 
						|
                    model.PaintLevel = values.Value<string>("PaintLevel");
 | 
						|
                    model.Remark = values.Value<string>("Remark");
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                ZxtgdBrid();
 | 
						|
                ShowNotify("修改成功!");
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Error);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 管道模板下载
 | 
						|
        /// </summary>
 | 
						|
        protected void btnGdDownLoad_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            PageContext.RegisterStartupScript(Confirm.GetShowReference("是否确认下载模板?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirmgd_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region S系统工艺设备一览表导入
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定工艺设备
 | 
						|
        /// </summary>
 | 
						|
        public void ZxtgyBrid()
 | 
						|
        {
 | 
						|
            string strSql = @"select * from PreRun_TechnologySysPiping where ProjectId=@ProjectId and SystemId=@SystemId order by Sort asc";
 | 
						|
            List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						|
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
 | 
						|
            listStr.Add(new SqlParameter("@SystemId", this.tvControlItem.SelectedNodeID));
 | 
						|
            SqlParameter[] parameter = listStr.ToArray();
 | 
						|
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | 
						|
            GridZxtgy.RecordCount = tb.Rows.Count;
 | 
						|
            var table = this.GetPagedDataTable(GridZxtgy, tb);
 | 
						|
            GridZxtgy.DataSource = table;
 | 
						|
            GridZxtgy.DataBind();
 | 
						|
            TabStrip1.ActiveTabIndex = 1;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 分页
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtgy_PageIndexChange(object sender, GridPageEventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtgy.PageIndex = e.NewPageIndex;
 | 
						|
            ZxtgyBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 排序
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtgy_Sort(object sender, GridSortEventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtgy.SortDirection = e.SortDirection;
 | 
						|
            GridZxtgy.SortField = e.SortField;
 | 
						|
            ZxtgyBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 行点击事件
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtgy_RowCommand(object sender, GridCommandEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.CommandName == "Delete")
 | 
						|
            {
 | 
						|
                string rowID = e.RowID;
 | 
						|
                var model = Funs.DB.PreRun_TechnologySysPiping.FirstOrDefault(p => p.TechnologyId == rowID);
 | 
						|
                Funs.DB.PreRun_TechnologySysPiping.DeleteOnSubmit(model);
 | 
						|
                Funs.DB.SubmitChanges();
 | 
						|
                ZxtgyBrid();
 | 
						|
                ShowNotify("删除成功!");
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 分页下拉框事件
 | 
						|
        /// </summary>
 | 
						|
        protected void ddlZxtgyPageSize_SelectedIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtgy.PageSize = Convert.ToInt32(ddlZxtgyPageSize.SelectedValue);
 | 
						|
            ZxtgyBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 工艺设备导入
 | 
						|
        /// </summary>
 | 
						|
        protected void btnZxtgyImport_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                if (this.filegyData.HasFile == false)
 | 
						|
                {
 | 
						|
                    ShowNotify("请选择excel文件!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                string IsXls = Path.GetExtension(this.filegyData.FileName).ToString().Trim().ToLower();
 | 
						|
                if (IsXls != ".xls" && IsXls != ".xlsx")
 | 
						|
                {
 | 
						|
                    filegyData.Reset();
 | 
						|
                    ShowNotify("excel文件类型错误!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                string rootPath = Server.MapPath("~/");
 | 
						|
                string initFullPath = rootPath + Const.ExcelUrl;
 | 
						|
                if (!Directory.Exists(initFullPath))
 | 
						|
                {
 | 
						|
                    Directory.CreateDirectory(initFullPath);
 | 
						|
                }
 | 
						|
                //指定上传文件名称
 | 
						|
                string fileUrl = BLL.Funs.GetNewFileName() + IsXls;
 | 
						|
                //上传文件路径
 | 
						|
                string filePath = initFullPath + fileUrl;
 | 
						|
                //文件上传服务器
 | 
						|
                this.filegyData.PostedFile.SaveAs(filePath);
 | 
						|
                //文件上传服务器后的名称
 | 
						|
                string fileName = rootPath + Const.ExcelUrl + fileUrl;
 | 
						|
                //读取Excel
 | 
						|
                DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out string message, false, false);
 | 
						|
                if (ds == null)
 | 
						|
                {
 | 
						|
                    filegyData.Reset();
 | 
						|
                    ShowNotify("模板错误,请从系统下载正确的模板!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrWhiteSpace(message))
 | 
						|
                {
 | 
						|
                    filegyData.Reset();
 | 
						|
                    ShowNotify(message, MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
 | 
						|
                //移除不正确的表格
 | 
						|
                List<string> removeAtt = new List<string>();
 | 
						|
                for (int i = 0; i < ds.Tables.Count; i++)
 | 
						|
                {
 | 
						|
                    var itemTb = ds.Tables[i];
 | 
						|
                    var fileVerify = TechnologyVerifyFile(itemTb);
 | 
						|
                    if (!fileVerify) removeAtt.Add(ds.Tables[i].TableName);
 | 
						|
                }
 | 
						|
                if (removeAtt.Count > 0)
 | 
						|
                {
 | 
						|
                    foreach (var itemR in removeAtt)
 | 
						|
                    {
 | 
						|
                        ds.Tables.Remove(itemR);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (ds.Tables.Count == 0)
 | 
						|
                {
 | 
						|
                    filegyData.Reset();
 | 
						|
                    ShowNotify("Excel模板格式不正确!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                var sortnum = Funs.DB.PreRun_TechnologySysPiping.Count(x => x.SystemId == tvControlItem.SelectedNodeID);
 | 
						|
                List<PreRun_TechnologySysPiping> list = new List<PreRun_TechnologySysPiping>();
 | 
						|
                for (int i = 0; i < ds.Tables.Count; i++)
 | 
						|
                {
 | 
						|
                    var itemTb = ds.Tables[i];
 | 
						|
                    if (itemTb.Rows.Count > 5)
 | 
						|
                    {
 | 
						|
                        string lastTagNumber = string.Empty;
 | 
						|
                        for (int j = 5; j < itemTb.Rows.Count; j++)
 | 
						|
                        {
 | 
						|
                            if (string.IsNullOrWhiteSpace(itemTb.Rows[j][1].ToString()) && string.IsNullOrWhiteSpace(itemTb.Rows[j][4].ToString()) && string.IsNullOrWhiteSpace(itemTb.Rows[j][9].ToString())) continue;
 | 
						|
                            if (!string.IsNullOrWhiteSpace(itemTb.Rows[j][1].ToString()) && string.IsNullOrWhiteSpace(itemTb.Rows[j][4].ToString()) && !string.IsNullOrWhiteSpace(itemTb.Rows[j][9].ToString())) continue;
 | 
						|
                            PreRun_TechnologySysPiping model = new PreRun_TechnologySysPiping();
 | 
						|
                            if (!string.IsNullOrWhiteSpace(itemTb.Rows[j][4].ToString()))
 | 
						|
                            {
 | 
						|
                                sortnum++;
 | 
						|
                                model.TechnologyId = Guid.NewGuid().ToString();
 | 
						|
                                model.SystemId = tvControlItem.SelectedNodeID;
 | 
						|
                                model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                                model.TagNumber = itemTb.Rows[j][4].ToString();
 | 
						|
                                model.NameSpecifications = itemTb.Rows[j][9].ToString();
 | 
						|
                                model.DrawingNo = itemTb.Rows[j][25].ToString();
 | 
						|
                                model.Materials = itemTb.Rows[j][33].ToString();
 | 
						|
                                model.NumOperate = itemTb.Rows[j][42].ToString();
 | 
						|
                                model.NumStandby = itemTb.Rows[j][44].ToString();
 | 
						|
                                model.WeightSingle = itemTb.Rows[j][46].ToString();
 | 
						|
                                model.WeightTotal = itemTb.Rows[j][49].ToString();
 | 
						|
                                model.Remark = itemTb.Rows[j][52].ToString();
 | 
						|
                                model.AddUser = this.CurrUser.UserId;
 | 
						|
                                model.AddTime = DateTime.Now;
 | 
						|
                                model.Sort = sortnum;
 | 
						|
                                list.Add(model);
 | 
						|
                                lastTagNumber = model.TagNumber;
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                if (list.Count(x => x.TagNumber == lastTagNumber) > 0)
 | 
						|
                                {
 | 
						|
                                    if (!string.IsNullOrWhiteSpace(itemTb.Rows[j][9].ToString()))
 | 
						|
                                    {
 | 
						|
                                        list.FirstOrDefault(x => x.TagNumber == lastTagNumber).NameSpecifications += "\n" + itemTb.Rows[j][9].ToString();
 | 
						|
                                    }
 | 
						|
                                    if (!string.IsNullOrWhiteSpace(itemTb.Rows[j][25].ToString()))
 | 
						|
                                    {
 | 
						|
                                        list.FirstOrDefault(x => x.TagNumber == lastTagNumber).DrawingNo += "\n" + itemTb.Rows[j][25].ToString();
 | 
						|
                                    }
 | 
						|
                                    if (!string.IsNullOrWhiteSpace(itemTb.Rows[j][33].ToString()))
 | 
						|
                                    {
 | 
						|
                                        list.FirstOrDefault(x => x.TagNumber == lastTagNumber).Materials += "\n" + itemTb.Rows[j][33].ToString();
 | 
						|
                                    }
 | 
						|
                                    if (!string.IsNullOrWhiteSpace(itemTb.Rows[j][52].ToString()))
 | 
						|
                                    {
 | 
						|
                                        list.FirstOrDefault(x => x.TagNumber == lastTagNumber).Remark += "\n" + itemTb.Rows[j][51].ToString();
 | 
						|
                                    }
 | 
						|
                                }
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (list.Count > 0)
 | 
						|
                {
 | 
						|
                    //获取已经存在的数据
 | 
						|
                    var pipingCodes = list.ConvertAll(x => x.TagNumber);
 | 
						|
                    List<PreRun_TechnologySysPiping> addList = new List<PreRun_TechnologySysPiping>();
 | 
						|
                    var existTechnologys = Funs.DB.PreRun_TechnologySysPiping.Where(x => pipingCodes.Contains(x.TagNumber) && x.SystemId == tvControlItem.SelectedNodeID && x.ProjectId == this.CurrUser.LoginProjectId).ToList();
 | 
						|
                    if (existTechnologys.Count == 0)
 | 
						|
                    {
 | 
						|
                        addList = list;
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        var existTags = existTechnologys.ConvertAll(x => x.TagNumber);
 | 
						|
                        foreach (var item in list)
 | 
						|
                        {
 | 
						|
                            if (existTags.Count(a => a == item.TagNumber) > 0)
 | 
						|
                            {
 | 
						|
                                var upModel = existTechnologys.FirstOrDefault(a => a.TagNumber == item.TagNumber);
 | 
						|
                                upModel.NameSpecifications = item.NameSpecifications;
 | 
						|
                                upModel.DrawingNo = item.DrawingNo;
 | 
						|
                                upModel.Materials = item.Materials;
 | 
						|
                                upModel.NumOperate = item.NumOperate;
 | 
						|
                                upModel.NumStandby = item.NumStandby;
 | 
						|
                                upModel.WeightSingle = item.WeightSingle;
 | 
						|
                                upModel.WeightTotal = item.WeightTotal;
 | 
						|
                                upModel.Remark = item.Remark;
 | 
						|
                                Funs.DB.SubmitChanges();
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                addList.Add(item);
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if (addList.Count > 0)
 | 
						|
                    {
 | 
						|
                        Funs.DB.PreRun_TechnologySysPiping.InsertAllOnSubmit(addList);
 | 
						|
                        Funs.DB.SubmitChanges();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    filegyData.Reset();
 | 
						|
                    ShowNotify("Excel模板无数据!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
 | 
						|
                filegyData.Reset();
 | 
						|
                ZxtgyBrid();
 | 
						|
                ShowNotify("导入成功!", MessageBoxIcon.Success);
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                filegyData.Reset();
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Warning);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 工艺设备保存
 | 
						|
        /// </summary>
 | 
						|
        protected void btnZxtgySave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                JArray mergedData = GridZxtgy.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 technologyId = this.GridZxtgy.Rows[i].DataKeys[0].ToString();
 | 
						|
                    PreRun_TechnologySysPiping model = Funs.DB.PreRun_TechnologySysPiping.FirstOrDefault(x => x.TechnologyId == technologyId);
 | 
						|
                    if (model == null) continue;
 | 
						|
                    model.TagNumber = values.Value<string>("TagNumber");
 | 
						|
                    model.NameSpecifications = values.Value<string>("NameSpecifications");
 | 
						|
                    model.DrawingNo = values.Value<string>("DrawingNo");
 | 
						|
                    model.Materials = values.Value<string>("Materials");
 | 
						|
                    model.NumOperate = values.Value<string>("NumOperate");
 | 
						|
                    model.NumStandby = values.Value<string>("NumStandby");
 | 
						|
                    model.WeightSingle = values.Value<string>("WeightSingle");
 | 
						|
                    model.WeightTotal = values.Value<string>("WeightTotal");
 | 
						|
                    model.Remark = values.Value<string>("Remark");
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                ZxtgyBrid();
 | 
						|
                ShowNotify("修改成功!");
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Error);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 工艺设备模板下载
 | 
						|
        /// </summary>
 | 
						|
        protected void btnGysbDownLoad_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            PageContext.RegisterStartupScript(Confirm.GetShowReference("是否确认下载模板?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirmgy_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 仪表索引导入
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定仪表索引
 | 
						|
        /// </summary>
 | 
						|
        public void ZxtybBrid()
 | 
						|
        {
 | 
						|
            string strSql = @"select * from PreRun_InstrumentSysPiping where ProjectId=@ProjectId and SystemId=@SystemId ";
 | 
						|
            List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						|
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
 | 
						|
            listStr.Add(new SqlParameter("@SystemId", this.tvControlItem.SelectedNodeID));
 | 
						|
            SqlParameter[] parameter = listStr.ToArray();
 | 
						|
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | 
						|
            GridZxtyb.RecordCount = tb.Rows.Count;
 | 
						|
            var table = this.GetPagedDataTable(GridZxtyb, tb);
 | 
						|
            GridZxtyb.DataSource = table;
 | 
						|
            GridZxtyb.DataBind();
 | 
						|
            TabStrip1.ActiveTabIndex = 2;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 分页
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtyb_PageIndexChange(object sender, GridPageEventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtyb.PageIndex = e.NewPageIndex;
 | 
						|
            ZxtybBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 排序
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtyb_Sort(object sender, GridSortEventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtyb.SortDirection = e.SortDirection;
 | 
						|
            GridZxtyb.SortField = e.SortField;
 | 
						|
            ZxtybBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 行点击事件
 | 
						|
        /// </summary>
 | 
						|
        protected void GridZxtyb_RowCommand(object sender, GridCommandEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.CommandName == "Delete")
 | 
						|
            {
 | 
						|
                string rowID = e.RowID;
 | 
						|
                var model = Funs.DB.PreRun_InstrumentSysPiping.FirstOrDefault(p => p.InstrumentId == rowID);
 | 
						|
                Funs.DB.PreRun_InstrumentSysPiping.DeleteOnSubmit(model);
 | 
						|
                Funs.DB.SubmitChanges();
 | 
						|
                ZxtybBrid();
 | 
						|
                ShowNotify("删除成功!");
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 分页下拉框事件
 | 
						|
        /// </summary>
 | 
						|
        protected void ddlZxtybPageSize_SelectedIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            GridZxtyb.PageSize = Convert.ToInt32(ddlZxtybPageSize.SelectedValue);
 | 
						|
            ZxtybBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 仪表索引导入
 | 
						|
        /// </summary>
 | 
						|
        protected void btnZxtybImport_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                if (this.fileybData.HasFile == false)
 | 
						|
                {
 | 
						|
                    ShowNotify("请选择excel文件!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                string IsXls = Path.GetExtension(this.fileybData.FileName).ToString().Trim().ToLower();
 | 
						|
                if (IsXls != ".xls" && IsXls != ".xlsx")
 | 
						|
                {
 | 
						|
                    fileybData.Reset();
 | 
						|
                    ShowNotify("excel文件类型错误!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                string rootPath = Server.MapPath("~/");
 | 
						|
                string initFullPath = rootPath + Const.ExcelUrl;
 | 
						|
                if (!Directory.Exists(initFullPath))
 | 
						|
                {
 | 
						|
                    Directory.CreateDirectory(initFullPath);
 | 
						|
                }
 | 
						|
                //指定上传文件名称
 | 
						|
                string fileUrl = BLL.Funs.GetNewFileName() + IsXls;
 | 
						|
                //上传文件路径
 | 
						|
                string filePath = initFullPath + fileUrl;
 | 
						|
                //文件上传服务器
 | 
						|
                this.fileybData.PostedFile.SaveAs(filePath);
 | 
						|
                //文件上传服务器后的名称
 | 
						|
                string fileName = rootPath + Const.ExcelUrl + fileUrl;
 | 
						|
                //读取Excel
 | 
						|
                DataSet ds = NPOIHelper.ExcelToDataSet(fileName, out string message, false, false);
 | 
						|
                if (ds == null)
 | 
						|
                {
 | 
						|
                    fileybData.Reset();
 | 
						|
                    ShowNotify("模板错误,请从系统下载正确的模板!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrWhiteSpace(message))
 | 
						|
                {
 | 
						|
                    ShowNotify(message, MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                //移除不正确的表格
 | 
						|
                List<string> removeAtt = new List<string>();
 | 
						|
                for (int i = 0; i < ds.Tables.Count; i++)
 | 
						|
                {
 | 
						|
                    var itemTb = ds.Tables[i];
 | 
						|
                    var fileVerify = InstrumentVerifyFile(itemTb);
 | 
						|
                    if (!fileVerify) removeAtt.Add(ds.Tables[i].TableName);
 | 
						|
                }
 | 
						|
                if (removeAtt.Count > 0)
 | 
						|
                {
 | 
						|
                    foreach (var itemR in removeAtt)
 | 
						|
                    {
 | 
						|
                        ds.Tables.Remove(itemR);
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (ds.Tables.Count == 0)
 | 
						|
                {
 | 
						|
                    fileybData.Reset();
 | 
						|
                    ShowNotify("Excel模板格式不正确!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                List<PreRun_InstrumentSysPiping> list = new List<PreRun_InstrumentSysPiping>();
 | 
						|
                for (int i = 0; i < ds.Tables.Count; i++)
 | 
						|
                {
 | 
						|
                    var itemTb = ds.Tables[i];
 | 
						|
                    if (itemTb.Rows.Count > 5)
 | 
						|
                    {
 | 
						|
                        for (int j = 5; j < itemTb.Rows.Count; j++)
 | 
						|
                        {
 | 
						|
                            if (string.IsNullOrWhiteSpace(itemTb.Rows[j][1].ToString())) continue;
 | 
						|
                            if (string.IsNullOrWhiteSpace(itemTb.Rows[j][28].ToString())) continue;
 | 
						|
                            if (itemTb.Rows[j][28].ToString().Trim() != "现场") continue;
 | 
						|
                            var model = new PreRun_InstrumentSysPiping();
 | 
						|
                            model.InstrumentId = Guid.NewGuid().ToString();
 | 
						|
                            model.SystemId = tvControlItem.SelectedNodeID;
 | 
						|
                            model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                            model.InstrumentTag = itemTb.Rows[j][1].ToString();
 | 
						|
                            model.UseTo = itemTb.Rows[j][7].ToString();
 | 
						|
                            model.InstrumentName = itemTb.Rows[j][18].ToString();
 | 
						|
                            model.Supplier = itemTb.Rows[j][25].ToString();
 | 
						|
                            model.InstallationPosition = itemTb.Rows[j][28].ToString();
 | 
						|
                            model.SignalType = itemTb.Rows[j][32].ToString();
 | 
						|
                            model.AssociatedSystem = itemTb.Rows[j][36].ToString();
 | 
						|
                            model.Cp25 = itemTb.Rows[j][40].ToString();
 | 
						|
                            model.In11 = itemTb.Rows[j][44].ToString();
 | 
						|
                            model.In40 = itemTb.Rows[j][48].ToString();
 | 
						|
                            model.Remark = itemTb.Rows[j][52].ToString();
 | 
						|
                            model.AddUser = this.CurrUser.UserId;
 | 
						|
                            model.AddTime = DateTime.Now;
 | 
						|
                            model.Sort = list.Count;
 | 
						|
                            list.Add(model);
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                if (list.Count > 0)
 | 
						|
                {
 | 
						|
                    //获取已经存在的数据
 | 
						|
                    var tags = list.ConvertAll(x => x.InstrumentTag);
 | 
						|
                    List<PreRun_InstrumentSysPiping> addList = new List<PreRun_InstrumentSysPiping>();
 | 
						|
                    var existInstrumens = Funs.DB.PreRun_InstrumentSysPiping.Where(x => tags.Contains(x.InstrumentTag) && x.SystemId == tvControlItem.SelectedNodeID && x.ProjectId == this.CurrUser.LoginProjectId).ToList();
 | 
						|
                    if (existInstrumens.Count == 0)
 | 
						|
                    {
 | 
						|
                        addList = list;
 | 
						|
                    }
 | 
						|
                    else
 | 
						|
                    {
 | 
						|
                        var existTags = existInstrumens.ConvertAll(x => x.InstrumentTag);
 | 
						|
                        foreach (var item in list)
 | 
						|
                        {
 | 
						|
                            if (existTags.Count(a => a == item.InstrumentTag) > 0)
 | 
						|
                            {
 | 
						|
                                var upModel = existInstrumens.FirstOrDefault(a => a.InstrumentTag == item.InstrumentTag);
 | 
						|
                                upModel.UseTo = item.UseTo;
 | 
						|
                                upModel.InstrumentName = item.InstrumentName;
 | 
						|
                                upModel.Supplier = item.Supplier;
 | 
						|
                                upModel.InstallationPosition = item.InstallationPosition;
 | 
						|
                                upModel.SignalType = item.SignalType;
 | 
						|
                                upModel.AssociatedSystem = item.AssociatedSystem;
 | 
						|
                                upModel.Cp25 = item.Cp25;
 | 
						|
                                upModel.In11 = item.In11;
 | 
						|
                                upModel.In40 = item.In40;
 | 
						|
                                upModel.Remark = item.Remark;
 | 
						|
                                Funs.DB.SubmitChanges();
 | 
						|
                            }
 | 
						|
                            else
 | 
						|
                            {
 | 
						|
                                addList.Add(item);
 | 
						|
                            }
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                    if (addList.Count > 0)
 | 
						|
                    {
 | 
						|
                        Funs.DB.PreRun_InstrumentSysPiping.InsertAllOnSubmit(addList);
 | 
						|
                        Funs.DB.SubmitChanges();
 | 
						|
                    }
 | 
						|
                }
 | 
						|
                else
 | 
						|
                {
 | 
						|
                    fileybData.Reset();
 | 
						|
                    ShowNotify("Excel模板无安装位置为“现场”的数据!", MessageBoxIcon.Warning);
 | 
						|
                    return;
 | 
						|
                }
 | 
						|
                fileybData.Reset();
 | 
						|
                ZxtybBrid();
 | 
						|
                ShowNotify("导入成功!", MessageBoxIcon.Success);
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                fileybData.Reset();
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Warning);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 仪表索引保存
 | 
						|
        /// </summary>
 | 
						|
        protected void btnZxtybSave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                JArray mergedData = GridZxtyb.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 instrumentId = this.GridZxtyb.Rows[i].DataKeys[0].ToString();
 | 
						|
                    PreRun_InstrumentSysPiping model = Funs.DB.PreRun_InstrumentSysPiping.FirstOrDefault(x => x.InstrumentId == instrumentId);
 | 
						|
                    if (model == null) continue;
 | 
						|
                    model.InstrumentTag = values.Value<string>("InstrumentTag");
 | 
						|
                    model.UseTo = values.Value<string>("UseTo");
 | 
						|
                    model.InstrumentName = values.Value<string>("InstrumentName");
 | 
						|
                    model.Supplier = values.Value<string>("Supplier");
 | 
						|
                    model.InstallationPosition = values.Value<string>("InstallationPosition");
 | 
						|
                    model.SignalType = values.Value<string>("SignalType");
 | 
						|
                    model.AssociatedSystem = values.Value<string>("AssociatedSystem");
 | 
						|
                    model.Cp25 = values.Value<string>("Cp25");
 | 
						|
                    model.In11 = values.Value<string>("In11");
 | 
						|
                    model.In40 = values.Value<string>("In40");
 | 
						|
                    model.Remark = values.Value<string>("Remark");
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                ZxtybBrid();
 | 
						|
                ShowNotify("修改成功!");
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Error);
 | 
						|
            }
 | 
						|
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 仪表索引下载模板
 | 
						|
        /// </summary>
 | 
						|
        protected void btnYbsyDownLoad_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            PageContext.RegisterStartupScript(Confirm.GetShowReference("是否确认下载模板?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirmyb_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SS子系统管道一览表选择
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定
 | 
						|
        /// </summary>
 | 
						|
        public void SubPropertyBrid(List<string> selectPropertys = null)
 | 
						|
        {
 | 
						|
            var datatb = new DataTable();
 | 
						|
            var addTb = new DataTable();
 | 
						|
            string strSql = @"select a.PropertyId,a.SystemId,a.ProjectId,a.PipingCode,a.Diameter,a.MaterialLevel,a.AdiabatType,a.AdiabatThickness,a.MediumState,a.DrawingNo,a.PipingStart,a.PipingEnd,a.PipingLevel,a.NormalTemperature,a.NormalPressure,a.DesignTemperature,a.DesignPressure,a.PaintLevel,a.Remark,a.AddUser,a.AddTime,a.Sort from PreRun_PropertySysPiping as a inner join PreRun_SubPropertySelect as b on a.PropertyId=b.PropertyId where 1=1 and a.ProjectId=@ProjectId and b.SubSystemId=@SubSystemId  order by a.Sort asc ";
 | 
						|
            List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						|
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
 | 
						|
            listStr.Add(new SqlParameter("@SubSystemId", this.tvControlItem.SelectedNodeID));
 | 
						|
            SqlParameter[] parameter = listStr.ToArray();
 | 
						|
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | 
						|
 | 
						|
            if (selectPropertys != null && selectPropertys.Count > 0)
 | 
						|
            {
 | 
						|
                var existPropertyIds = GetColumnValues<string>(tb, "PropertyId");
 | 
						|
                if (existPropertyIds.Count > 0) selectPropertys.RemoveAll(a => existPropertyIds.Contains(a));
 | 
						|
 | 
						|
                if (selectPropertys.Count > 0)
 | 
						|
                {
 | 
						|
                    var addtbRowSql = $"select a.PropertyId,a.SystemId,a.ProjectId,a.PipingCode,a.Diameter,a.MaterialLevel,a.AdiabatType,a.AdiabatThickness,a.MediumState,a.DrawingNo,a.PipingStart,a.PipingEnd,a.PipingLevel,a.NormalTemperature,a.NormalPressure,a.DesignTemperature,a.DesignPressure,a.PaintLevel,a.Remark,a.AddUser,a.AddTime,a.Sort from PreRun_PropertySysPiping as a where 1=1 and a.PropertyId in ('{string.Join("','", selectPropertys)}')  order by a.Sort asc ";
 | 
						|
                    addTb = SQLHelper.GetDataTableRunText(addtbRowSql);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            if (addTb.Rows.Count > 0) datatb.Load(addTb.CreateDataReader());
 | 
						|
            if (tb.Rows.Count > 0) datatb.Load(tb.CreateDataReader());
 | 
						|
            if (datatb.Rows.Count > 0)
 | 
						|
            {
 | 
						|
                var pids = GetColumnValues<string>(datatb, "PropertyId");
 | 
						|
                if (pids.Count > 0) hidSelectProperty.Text = string.Join(",", pids);
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                hidSelectProperty.Text = string.Empty;
 | 
						|
            }
 | 
						|
            gvSsxtgdxz.DataSource = datatb;
 | 
						|
            gvSsxtgdxz.DataBind();
 | 
						|
            TabStrip2.ActiveTabIndex = 0;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 排序
 | 
						|
        /// </summary>
 | 
						|
        protected void gvSsxtgdxz_Sort(object sender, GridSortEventArgs e)
 | 
						|
        {
 | 
						|
            gvSsxtgdxz.SortDirection = e.SortDirection;
 | 
						|
            gvSsxtgdxz.SortField = e.SortField;
 | 
						|
            SubPropertyBrid();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 行按钮事件
 | 
						|
        /// </summary>
 | 
						|
        protected void gvSsxtgdxz_RowCommand(object sender, GridCommandEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.CommandName == "Delete")
 | 
						|
            {
 | 
						|
                var ids = new List<string>();
 | 
						|
                string rowID = e.RowID;
 | 
						|
                var model = Funs.DB.PreRun_SubPropertySelect.FirstOrDefault(p => p.SubPropertyId == rowID);
 | 
						|
                if (model != null)
 | 
						|
                {
 | 
						|
                    Funs.DB.PreRun_SubPropertySelect.DeleteOnSubmit(model);
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrWhiteSpace(hidSelectTechnology.Text))
 | 
						|
                {
 | 
						|
                    ids = hidSelectProperty.Text.Split(',').ToList();
 | 
						|
                    ids.RemoveAll(a => a == rowID);
 | 
						|
                }
 | 
						|
                SubPropertyBrid(ids);
 | 
						|
                ShowNotify("删除成功!");
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 选择
 | 
						|
        /// </summary>
 | 
						|
        protected void btnSelect_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            string window = $"SelectProperty.aspx?SubSystemId={this.tvControlItem.SelectedNodeID}&SystemId={hidSystemId.Text}&SelectPropertyIds={hidSelectProperty.Text}";
 | 
						|
            PageContext.RegisterStartupScript(Window1.GetSaveStateReference(this.hidSelectProperty.ClientID) + Window1.GetShowReference(window));
 | 
						|
        }
 | 
						|
        
 | 
						|
        /// <summary>
 | 
						|
        /// 关闭
 | 
						|
        /// </summary>
 | 
						|
        protected void Window1_Close(object sender, WindowCloseEventArgs e)
 | 
						|
        {
 | 
						|
            var list = hidSelectProperty.Text.Split(',').ToList();
 | 
						|
            SubPropertyBrid(list);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 保存
 | 
						|
        /// </summary>
 | 
						|
        protected void btnSelectSave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                JArray mergedData = gvSsxtgdxz.GetMergedData();
 | 
						|
                List<PreRun_SubPropertySelect> list = new List<PreRun_SubPropertySelect>();
 | 
						|
                foreach (JObject mergedRow in mergedData)
 | 
						|
                {
 | 
						|
                    string status = mergedRow.Value<string>("status");
 | 
						|
                    JObject values = mergedRow.Value<JObject>("values");
 | 
						|
                    int i = mergedRow.Value<int>("index");
 | 
						|
                    var deleteSubs = Funs.DB.PreRun_SubPropertySelect.Where(x => x.SubSystemId == this.tvControlItem.SelectedNodeID);
 | 
						|
                    Funs.DB.PreRun_SubPropertySelect.DeleteAllOnSubmit(deleteSubs);
 | 
						|
                    var model = new PreRun_SubPropertySelect();
 | 
						|
                    model.SubPropertyId = Guid.NewGuid().ToString();
 | 
						|
                    model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                    model.SubSystemId = this.tvControlItem.SelectedNodeID;
 | 
						|
                    model.PropertyId = gvSsxtgdxz.DataKeys[i][0].ToString();
 | 
						|
                    model.AddUser = this.CurrUser.UserId;
 | 
						|
                    model.AddTime = DateTime.Now;
 | 
						|
                    model.Sort = i;
 | 
						|
                    list.Add(model);
 | 
						|
                }
 | 
						|
                if (list.Count > 0)
 | 
						|
                {
 | 
						|
                    Funs.DB.PreRun_SubPropertySelect.InsertAllOnSubmit(list);
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                SubPropertyBrid();
 | 
						|
                ShowNotify("保存成功!");
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Error);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SS系统工艺设备一览表选择
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定数据
 | 
						|
        /// </summary>
 | 
						|
        public void SubTechnologyBrid(List<string> selectTechnologys = null)
 | 
						|
        {
 | 
						|
            var datatb = new DataTable();
 | 
						|
            var addTb = new DataTable();
 | 
						|
            string strSql = @"select a.TechnologyId,a.SystemId,a.ProjectId,a.TagNumber,a.NameSpecifications,a.DrawingNo,a.Materials,a.NumOperate,a.NumStandby,a.WeightSingle,a.WeightTotal,a.Remark,a.AddUser,a.AddTime,a.Sort from PreRun_TechnologySysPiping as a inner join PreRun_SubTechnologySelect as b on a.TechnologyId=b.TechnologyId where 1=1 and a.ProjectId=@ProjectId and b.SubSystemId=@SubSystemId order by a.Sort asc";
 | 
						|
            List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						|
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
 | 
						|
            listStr.Add(new SqlParameter("@SubSystemId", this.tvControlItem.SelectedNodeID));
 | 
						|
            SqlParameter[] parameter = listStr.ToArray();
 | 
						|
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | 
						|
 | 
						|
            if (selectTechnologys != null && selectTechnologys.Count > 0)
 | 
						|
            {
 | 
						|
                var existTechnologyIds = GetColumnValues<string>(tb, "TechnologyId");
 | 
						|
                if (existTechnologyIds.Count > 0) selectTechnologys.RemoveAll(a => existTechnologyIds.Contains(a));
 | 
						|
                if (selectTechnologys.Count > 0)
 | 
						|
                {
 | 
						|
                    var addtbRowSql = $"select a.TechnologyId,a.SystemId,a.ProjectId,a.TagNumber,a.NameSpecifications,a.DrawingNo,a.Materials,a.NumOperate,a.NumStandby,a.WeightSingle,a.WeightTotal,a.Remark,a.AddUser,a.AddTime,a.Sort from PreRun_TechnologySysPiping as a where 1=1 and a.TechnologyId in ('{string.Join("','", selectTechnologys)}')  order by a.Sort asc";
 | 
						|
                    addTb = SQLHelper.GetDataTableRunText(addtbRowSql);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            if (addTb.Rows.Count > 0) datatb.Load(addTb.CreateDataReader());
 | 
						|
            if (tb.Rows.Count > 0) datatb.Load(tb.CreateDataReader());
 | 
						|
            if (datatb.Rows.Count > 0)
 | 
						|
            {
 | 
						|
                var tids = GetColumnValues<string>(datatb, "TechnologyId");
 | 
						|
                if (tids.Count > 0) hidSelectTechnology.Text = string.Join(",", tids);
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                hidSelectTechnology.Text = string.Empty;
 | 
						|
            }
 | 
						|
 | 
						|
            gvSsxtgyxz.DataSource = datatb;
 | 
						|
            gvSsxtgyxz.DataBind();
 | 
						|
            TabStrip2.ActiveTabIndex = 1;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 行事件
 | 
						|
        /// </summary>
 | 
						|
        protected void gvSsxtgyxz_RowCommand(object sender, GridCommandEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.CommandName == "Delete")
 | 
						|
            {
 | 
						|
                var ids = new List<string>();
 | 
						|
                string rowID = e.RowID;
 | 
						|
                var model = Funs.DB.PreRun_SubTechnologySelect.FirstOrDefault(p => p.TechnologyId == rowID);
 | 
						|
                if (model != null)
 | 
						|
                {
 | 
						|
                    Funs.DB.PreRun_SubTechnologySelect.DeleteOnSubmit(model);
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrWhiteSpace(hidSelectTechnology.Text))
 | 
						|
                {
 | 
						|
                    ids = hidSelectTechnology.Text.Split(',').ToList();
 | 
						|
                    ids.RemoveAll(a => a == rowID);
 | 
						|
                }
 | 
						|
                SubTechnologyBrid(ids);
 | 
						|
                ShowNotify("删除成功!");
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 关闭
 | 
						|
        /// </summary>
 | 
						|
        protected void Window2_Close(object sender, WindowCloseEventArgs e)
 | 
						|
        {
 | 
						|
            //var list = hidSystemId.Text.Split(',').ToList();
 | 
						|
            var list = hidSelectTechnology.Text.Split(',').ToList();
 | 
						|
            SubTechnologyBrid(list);
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 选择
 | 
						|
        /// </summary>
 | 
						|
        protected void btngySelect_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            //string window = $"SelectTechnology.aspx?SubSystemId={this.tvControlItem.SelectedNodeID}&SystemId={hidSystemId.Text}&SelectTechnologyIds={hidSelectTechnology.Text}";
 | 
						|
            string window = $"SelectTechnology.aspx?SubSystemId={this.tvControlItem.SelectedNodeID}&SystemId={hidSystemId.Text}";
 | 
						|
            PageContext.RegisterStartupScript(Window2.GetSaveStateReference(this.hidSelectTechnology.ClientID) + Window2.GetShowReference(window));
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 保存
 | 
						|
        /// </summary>
 | 
						|
        protected void btngySelectSave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                JArray mergedData = gvSsxtgyxz.GetMergedData();
 | 
						|
                List<PreRun_SubTechnologySelect> list = new List<PreRun_SubTechnologySelect>();
 | 
						|
                foreach (JObject mergedRow in mergedData)
 | 
						|
                {
 | 
						|
                    string status = mergedRow.Value<string>("status");
 | 
						|
                    JObject values = mergedRow.Value<JObject>("values");
 | 
						|
                    int i = mergedRow.Value<int>("index");
 | 
						|
                    var deleteSubs = Funs.DB.PreRun_SubTechnologySelect.Where(x => x.SubSystemId == this.tvControlItem.SelectedNodeID);
 | 
						|
                    Funs.DB.PreRun_SubTechnologySelect.DeleteAllOnSubmit(deleteSubs);
 | 
						|
                    var model = new PreRun_SubTechnologySelect();
 | 
						|
                    model.SubTechnologyId = Guid.NewGuid().ToString();
 | 
						|
                    model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                    model.SubSystemId = this.tvControlItem.SelectedNodeID;
 | 
						|
                    model.TechnologyId = gvSsxtgyxz.DataKeys[i][0].ToString();
 | 
						|
                    model.AddUser = this.CurrUser.UserId;
 | 
						|
                    model.AddTime = DateTime.Now;
 | 
						|
                    model.Sort = i;
 | 
						|
                    list.Add(model);
 | 
						|
                }
 | 
						|
                if (list.Count > 0)
 | 
						|
                {
 | 
						|
                    Funs.DB.PreRun_SubTechnologySelect.InsertAllOnSubmit(list);
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                SubTechnologyBrid();
 | 
						|
                ShowNotify("保存成功!");
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Error);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region SS系统仪表索引选择
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 绑定数据
 | 
						|
        /// </summary>
 | 
						|
        public void SubInstrumentBrid(List<string> selectInstrumentIds = null)
 | 
						|
        {
 | 
						|
            var datatb = new DataTable();
 | 
						|
            var addTb = new DataTable();
 | 
						|
            string strSql = @"select a.InstrumentId,a.SystemId,a.ProjectId,a.InstrumentTag,a.UseTo,a.InstrumentName,a.Supplier,a.InstallationPosition,a.SignalType,a.AssociatedSystem,a.Cp25,a.In11,a.In40,a.Remark,a.AddUser,a.AddTime,a.Sort from PreRun_InstrumentSysPiping as a inner join PreRun_SubInstrumentSelect as b on a.InstrumentId=b.InstrumentId where 1=1 and a.ProjectId=@ProjectId and b.SubSystemId=@SubSystemId order by a.Sort asc ";
 | 
						|
            List<SqlParameter> listStr = new List<SqlParameter>();
 | 
						|
            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
 | 
						|
            listStr.Add(new SqlParameter("@SubSystemId", this.tvControlItem.SelectedNodeID));
 | 
						|
            SqlParameter[] parameter = listStr.ToArray();
 | 
						|
            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
 | 
						|
            if (selectInstrumentIds != null && selectInstrumentIds.Count > 0)
 | 
						|
            {
 | 
						|
                var existInstrumentIdIds = GetColumnValues<string>(tb, "InstrumentId");
 | 
						|
                if (existInstrumentIdIds.Count > 0) selectInstrumentIds.RemoveAll(a => existInstrumentIdIds.Contains(a));
 | 
						|
                if (selectInstrumentIds.Count > 0)
 | 
						|
                {
 | 
						|
                    var addtbRowSql = $"select a.InstrumentId,a.SystemId,a.ProjectId,a.InstrumentTag,a.UseTo,a.InstrumentName,a.Supplier,a.InstallationPosition,a.SignalType,a.AssociatedSystem,a.Cp25,a.In11,a.In40,a.Remark,a.AddUser,a.AddTime,a.Sort from PreRun_InstrumentSysPiping as a where 1=1 and a.InstrumentId in ('{string.Join("','", selectInstrumentIds)}') order by a.Sort asc";
 | 
						|
                    addTb = SQLHelper.GetDataTableRunText(addtbRowSql);
 | 
						|
                }
 | 
						|
            }
 | 
						|
            if (addTb.Rows.Count > 0) datatb.Load(addTb.CreateDataReader());
 | 
						|
            if (tb.Rows.Count > 0) datatb.Load(tb.CreateDataReader());
 | 
						|
            if (datatb.Rows.Count > 0)
 | 
						|
            {
 | 
						|
                var tids = GetColumnValues<string>(datatb, "InstrumentId");
 | 
						|
                if (tids.Count > 0) hidSelectInstrument.Text = string.Join(",", tids);
 | 
						|
            }
 | 
						|
            else
 | 
						|
            {
 | 
						|
                hidSelectInstrument.Text = string.Empty;
 | 
						|
            }
 | 
						|
            gvSsxtybxz.DataSource = datatb;
 | 
						|
            gvSsxtybxz.DataBind();
 | 
						|
            TabStrip2.ActiveTabIndex = 2;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 行事件
 | 
						|
        /// </summary>
 | 
						|
        protected void gvSsxtybxz_RowCommand(object sender, GridCommandEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.CommandName == "Delete")
 | 
						|
            {
 | 
						|
                var ids = new List<string>();
 | 
						|
                string rowID = e.RowID;
 | 
						|
                var model = Funs.DB.PreRun_InstrumentSysPiping.FirstOrDefault(p => p.InstrumentId == rowID);
 | 
						|
                if (model != null)
 | 
						|
                {
 | 
						|
                    Funs.DB.PreRun_InstrumentSysPiping.DeleteOnSubmit(model);
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                if (!string.IsNullOrWhiteSpace(hidSelectInstrument.Text))
 | 
						|
                {
 | 
						|
                    ids = hidSelectInstrument.Text.Split(',').ToList();
 | 
						|
                    ids.RemoveAll(a => a == rowID);
 | 
						|
                }
 | 
						|
                SubInstrumentBrid(ids);
 | 
						|
                ShowNotify("删除成功!");
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 选择
 | 
						|
        /// </summary>
 | 
						|
        protected void btnybSelect_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            string window = $"SelectInstrument.aspx?SubSystemId={this.tvControlItem.SelectedNodeID}&SystemId={hidSystemId.Text}&SelectInstrumentIds={hidSelectInstrument.Text}";
 | 
						|
            PageContext.RegisterStartupScript(Window3.GetSaveStateReference(this.hidSelectInstrument.ClientID) + Window3.GetShowReference(window));
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 保存
 | 
						|
        /// </summary>
 | 
						|
        protected void btnybSelectSave_Click(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            try
 | 
						|
            {
 | 
						|
                JArray mergedData = gvSsxtybxz.GetMergedData();
 | 
						|
                List<PreRun_SubInstrumentSelect> list = new List<PreRun_SubInstrumentSelect>();
 | 
						|
                foreach (JObject mergedRow in mergedData)
 | 
						|
                {
 | 
						|
                    string status = mergedRow.Value<string>("status");
 | 
						|
                    JObject values = mergedRow.Value<JObject>("values");
 | 
						|
                    int i = mergedRow.Value<int>("index");
 | 
						|
                    var deleteSubs = Funs.DB.PreRun_SubInstrumentSelect.Where(x => x.SubSystemId == this.tvControlItem.SelectedNodeID);
 | 
						|
                    Funs.DB.PreRun_SubInstrumentSelect.DeleteAllOnSubmit(deleteSubs);
 | 
						|
                    var model = new PreRun_SubInstrumentSelect();
 | 
						|
                    model.SubInstrumentId = Guid.NewGuid().ToString();
 | 
						|
                    model.ProjectId = this.CurrUser.LoginProjectId;
 | 
						|
                    model.SubSystemId = this.tvControlItem.SelectedNodeID;
 | 
						|
                    model.InstrumentId = gvSsxtybxz.DataKeys[i][0].ToString();
 | 
						|
                    model.AddUser = this.CurrUser.UserId;
 | 
						|
                    model.AddTime = DateTime.Now;
 | 
						|
                    model.Sort = i;
 | 
						|
                    list.Add(model);
 | 
						|
                }
 | 
						|
                if (list.Count > 0)
 | 
						|
                {
 | 
						|
                    Funs.DB.PreRun_SubInstrumentSelect.InsertAllOnSubmit(list);
 | 
						|
                    Funs.DB.SubmitChanges();
 | 
						|
                }
 | 
						|
                SubInstrumentBrid();
 | 
						|
                ShowNotify("保存成功!");
 | 
						|
            }
 | 
						|
            catch (Exception ex)
 | 
						|
            {
 | 
						|
                ShowNotify(ex.Message, MessageBoxIcon.Error);
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 关闭
 | 
						|
        /// </summary>
 | 
						|
        protected void Window3_Close(object sender, WindowCloseEventArgs e)
 | 
						|
        {
 | 
						|
            var list = hidSelectInstrument.Text.Split(',').ToList();
 | 
						|
            SubInstrumentBrid(list);
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
 | 
						|
        #region 私有方法
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 验证管道模板是否正确
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        private bool PropertyVerifyFile(DataTable dt)
 | 
						|
        {
 | 
						|
            var result = true;
 | 
						|
 | 
						|
            if (dt.Rows[4][1].ToString() != "管道号") result = false;
 | 
						|
            if (dt.Rows[4][8].ToString() != "公称") result = false;
 | 
						|
            if (dt.Rows[4][10].ToString() != "管道材料等级") result = false;
 | 
						|
            if (dt.Rows[4][15].ToString() != "绝热伴热") result = false;
 | 
						|
            if (dt.Rows[4][20].ToString() != "介质") result = false;
 | 
						|
            if (!dt.Rows[4][22].ToString().Contains("图号")) result = false;
 | 
						|
            if (dt.Rows[4][29].ToString() != "管道起止点") result = false;
 | 
						|
            if (dt.Rows[4][41].ToString() != "管道") result = false;
 | 
						|
            if (dt.Rows[4][43].ToString() != "温度") result = false;
 | 
						|
            if (dt.Rows[4][45].ToString() != "压力") result = false;
 | 
						|
            if (dt.Rows[4][47].ToString() != "温度") result = false;
 | 
						|
            if (dt.Rows[4][49].ToString() != "压力") result = false;
 | 
						|
 | 
						|
 | 
						|
            return result;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 验证设备模板是否正确
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        private bool TechnologyVerifyFile(DataTable dt)
 | 
						|
        {
 | 
						|
            var result = true;
 | 
						|
 | 
						|
            if (dt.Rows[3][1].ToString() != "序号") result = false;
 | 
						|
            if (dt.Rows[3][4].ToString() != "设备位号") result = false;
 | 
						|
            if (dt.Rows[3][9].ToString() != "设备名称和规格") result = false;
 | 
						|
            if (dt.Rows[3][25].ToString() != "图号或型号") result = false;
 | 
						|
            if (dt.Rows[3][33].ToString() != "制造材料") result = false;
 | 
						|
            if (dt.Rows[4][42].ToString() != "操作") result = false;
 | 
						|
            if (dt.Rows[4][44].ToString() != "备用") result = false;
 | 
						|
            if (dt.Rows[4][46].ToString() != "单重") result = false;
 | 
						|
            if (dt.Rows[4][49].ToString() != "总重") result = false;
 | 
						|
            if (dt.Rows[3][52].ToString() != "备注") result = false;
 | 
						|
 | 
						|
            return result;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 验证仪表索引模板是否正确
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        private bool InstrumentVerifyFile(DataTable dt)
 | 
						|
        {
 | 
						|
            var result = true;
 | 
						|
 | 
						|
            if (dt.Rows[3][1].ToString() != "仪表位号") result = false;
 | 
						|
            if (dt.Rows[3][7].ToString() != "用途") result = false;
 | 
						|
            if (dt.Rows[3][18].ToString() != "仪表名称") result = false;
 | 
						|
            if (dt.Rows[3][25].ToString() != "供货方") result = false;
 | 
						|
            if (dt.Rows[3][28].ToString() != "安装位置") result = false;
 | 
						|
            if (dt.Rows[3][32].ToString() != "信号类型") result = false;
 | 
						|
            if (dt.Rows[3][36].ToString() != "关联系统") result = false;
 | 
						|
            if (dt.Rows[3][40].ToString() != "P&ID") result = false;
 | 
						|
            if (dt.Rows[3][44].ToString() != "数据表") result = false;
 | 
						|
            if (dt.Rows[3][48].ToString() != "仪表位置图") result = false;
 | 
						|
            if (dt.Rows[3][52].ToString() != "备注") result = false;
 | 
						|
 | 
						|
            return result;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 验证datatable某列是否存在重复
 | 
						|
        /// </summary>
 | 
						|
        /// <returns></returns>
 | 
						|
        public bool HasRepeatData(DataTable dt, string[] colName)
 | 
						|
        {
 | 
						|
            bool flag = false;
 | 
						|
            DataView myDataView = new DataView(dt);
 | 
						|
            if (myDataView.ToTable(true, colName).Rows.Count < dt.Rows.Count)
 | 
						|
            {
 | 
						|
                flag = true;
 | 
						|
            }
 | 
						|
            return flag;
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 获取某一列的所有值
 | 
						|
        /// </summary>
 | 
						|
        /// <typeparam name="T">列数据类型</typeparam>
 | 
						|
        /// <param name="dtSource">数据表</param>
 | 
						|
        /// <param name="filedName">列名</param>
 | 
						|
        /// <returns></returns>
 | 
						|
        public static List<T> GetColumnValues<T>(DataTable dtSource, string filedName)
 | 
						|
        {
 | 
						|
            return (from r in dtSource.AsEnumerable() select r.Field<T>(filedName)).ToList<T>();
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 导入管道,工艺,仪表索引tab选择
 | 
						|
        /// </summary>
 | 
						|
        protected void TabStrip1_TabIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (TabStrip1.ActiveTabIndex == 0)
 | 
						|
            {
 | 
						|
                //管道一览表
 | 
						|
                ZxtgdBrid();
 | 
						|
            }
 | 
						|
            else if (TabStrip1.ActiveTabIndex == 1)
 | 
						|
            {
 | 
						|
                //工艺设备一览表
 | 
						|
                ZxtgyBrid();
 | 
						|
            }
 | 
						|
            else if (TabStrip1.ActiveTabIndex == 2)
 | 
						|
            {
 | 
						|
                //仪表索引
 | 
						|
                ZxtybBrid();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 选择管道,工艺,仪表索引tab选择
 | 
						|
        /// </summary>
 | 
						|
        protected void TabStrip2_TabIndexChanged(object sender, EventArgs e)
 | 
						|
        {
 | 
						|
            if (TabStrip2.ActiveTabIndex == 0)
 | 
						|
            {
 | 
						|
                //管道
 | 
						|
                SubPropertyBrid();
 | 
						|
            }
 | 
						|
            else if (TabStrip2.ActiveTabIndex == 1)
 | 
						|
            {
 | 
						|
                //工艺设备
 | 
						|
                SubTechnologyBrid();
 | 
						|
            }
 | 
						|
            else if (TabStrip2.ActiveTabIndex == 2)
 | 
						|
            {
 | 
						|
                //仪表索引
 | 
						|
                SubInstrumentBrid();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 下载导入模板
 | 
						|
        /// </summary>
 | 
						|
        protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
 | 
						|
        {
 | 
						|
            if (e.EventArgument == "Confirmgd_OK" || e.EventArgument == "Confirmgy_OK" || e.EventArgument == "Confirmyb_OK")
 | 
						|
            {
 | 
						|
                string constUrl = string.Empty;
 | 
						|
                if (e.EventArgument == "Confirmgd_OK")
 | 
						|
                {
 | 
						|
                    constUrl = Const.PropertyUrl;
 | 
						|
                }
 | 
						|
                else if (e.EventArgument == "Confirmgy_OK")
 | 
						|
                {
 | 
						|
                    constUrl = Const.TechnologyUrl;
 | 
						|
                }
 | 
						|
                else if (e.EventArgument == "Confirmyb_OK")
 | 
						|
                {
 | 
						|
                    constUrl = Const.InstrumentUrl;
 | 
						|
                }
 | 
						|
                string rootPath = Server.MapPath("~/");
 | 
						|
                string uploadfilepath = rootPath + constUrl;
 | 
						|
                string filePath = constUrl;
 | 
						|
                string fileName = Path.GetFileName(filePath);
 | 
						|
                FileInfo info = new FileInfo(uploadfilepath);
 | 
						|
                long fileSize = info.Length;
 | 
						|
                Response.ClearContent();
 | 
						|
                Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8));
 | 
						|
                Response.ContentType = "excel/plain";
 | 
						|
                Response.ContentEncoding = System.Text.Encoding.UTF8;
 | 
						|
                Response.AddHeader("Content-Length", fileSize.ToString().Trim());
 | 
						|
                Response.TransmitFile(uploadfilepath, 0, fileSize);
 | 
						|
                Response.End();
 | 
						|
            }
 | 
						|
        }
 | 
						|
 | 
						|
        #endregion
 | 
						|
    }
 | 
						|
} |