613 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			C#
		
	
	
	
		
		
			
		
	
	
			613 lines
		
	
	
		
			27 KiB
		
	
	
	
		
			C#
		
	
	
	
| 
								 | 
							
								using BLL;
							 | 
						|||
| 
								 | 
							
								using Model;
							 | 
						|||
| 
								 | 
							
								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.TestRunManage
							 | 
						|||
| 
								 | 
							
								{
							 | 
						|||
| 
								 | 
							
								    public partial class DeviceRun : PageBase
							 | 
						|||
| 
								 | 
							
								    {
							 | 
						|||
| 
								 | 
							
								        protected void Page_Load(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (!IsPostBack)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                DataBrid();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 数据绑定和事件
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 数据绑定
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        public void DataBrid()
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            string strSql = @"select a.PreRunId,a.PreRunCode,a.PreRunName,b.ProjectId,b.ProjectName,a.PreRunLevel,
							 | 
						|||
| 
								 | 
							
								                                    (case a.PreRunLevel when 1 then '装置' when 2 then '工序' when 3 then 'S系统' else '' end) as RunLevelName,
							 | 
						|||
| 
								 | 
							
								                                    a.ParentId,a.Remark,a.OperateTime,a.Sort 
							 | 
						|||
| 
								 | 
							
								                                    from PreRun_SysDevice as a 
							 | 
						|||
| 
								 | 
							
								                                    inner join Base_Project as b on a.ProjectId=b.ProjectId where a.PreRunLevel!=4 and a.ProjectId=@ProjectId order by a.Sort,a.PreRunLevel asc";
							 | 
						|||
| 
								 | 
							
								            List<SqlParameter> listStr = new List<SqlParameter>();
							 | 
						|||
| 
								 | 
							
								            listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
							 | 
						|||
| 
								 | 
							
								            if (!string.IsNullOrEmpty(sRunName.Text.Trim()))
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                strSql += " and a.PreRunName=@PreRunName";
							 | 
						|||
| 
								 | 
							
								                listStr.Add(new SqlParameter("@PreRunName", this.sRunName.Text.Trim()));
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            SqlParameter[] parameter = listStr.ToArray();
							 | 
						|||
| 
								 | 
							
								            DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
							 | 
						|||
| 
								 | 
							
								            Grid1.DataSource = tb;
							 | 
						|||
| 
								 | 
							
								            Grid1.DataBind();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 行加载事件
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void Grid1_RowDataBound(object sender, GridRowEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 按钮
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 搜索
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void btnSearch_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            DataBrid();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 新增
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void btnAdd_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            PageContext.RegisterStartupScript(Window1.GetShowReference($"DeviceRunEdit.aspx?RunId=&ParentId=", "新增"));
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 添加子级
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void btnParentAdd_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (Grid1.SelectedRowIndexArray.Length == 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("请选择一条数据!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var rowIndex = Grid1.SelectedRowIndex;
							 | 
						|||
| 
								 | 
							
								            var rowId = Grid1.DataKeys[rowIndex][0].ToString();
							 | 
						|||
| 
								 | 
							
								            var runLevel = Grid1.DataKeys[rowIndex][2] != null ? Convert.ToInt32(Grid1.DataKeys[rowIndex][2]) : 1;
							 | 
						|||
| 
								 | 
							
								            if (runLevel > 2)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("最小节点无子节点!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            PageContext.RegisterStartupScript(Window1.GetShowReference($"DeviceRunEdit.aspx?RunId=&ParentId={rowId}", "添加子级"));
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 编辑
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void btnEdit_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (Grid1.SelectedRowIndexArray.Length == 0)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                ShowNotify("请选择一条数据!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                return;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            var rowIndex = Grid1.SelectedRowIndex;
							 | 
						|||
| 
								 | 
							
								            var rowId = Grid1.DataKeys[rowIndex][0].ToString();
							 | 
						|||
| 
								 | 
							
								            var parentId = Grid1.DataKeys[rowIndex][1] != null ? Grid1.DataKeys[rowIndex][1].ToString() : string.Empty;
							 | 
						|||
| 
								 | 
							
								            PageContext.RegisterStartupScript(Window1.GetShowReference($"DeviceRunEdit.aspx?RunId={rowId}&ParentId={parentId}", "编辑"));
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 关闭
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void Window1_Close(object sender, WindowCloseEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            DataBrid();
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 导入
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void btnImport_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")
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.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);
							 | 
						|||
| 
								 | 
							
								                if (ds == null)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("模板错误,请从系统下载正确的模板!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                    return;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (!string.IsNullOrWhiteSpace(message))
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ShowNotify(message, MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                    return;
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                if (ds.Tables[0].Rows.Count > 1)
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    var fileVerify = VerifyFile(ds);
							 | 
						|||
| 
								 | 
							
								                    if (!fileVerify)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                        ShowNotify("请获取正确模板!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                        return;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    int index = 1;
							 | 
						|||
| 
								 | 
							
								                    List<SysDeviceDto> list = new List<SysDeviceDto>();
							 | 
						|||
| 
								 | 
							
								                    foreach (DataRow item in ds.Tables[0].Rows)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        SysDeviceDto model = new SysDeviceDto();
							 | 
						|||
| 
								 | 
							
								                        if (index == 1)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            index++;
							 | 
						|||
| 
								 | 
							
								                            continue;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (StrIsNumm(item[0]) || StrIsNumm(item[1]))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                            ShowNotify($"{index}行装置编码或名称为空!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                            break;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                        //判断是否为装置
							 | 
						|||
| 
								 | 
							
								                        if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && StrIsNumm(item[2]) && StrIsNumm(item[3]) && StrIsNumm(item[4]) && StrIsNumm(item[5]))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            model.InstallationCode = item[0].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.InstallationName = item[1].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.Level = 1;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        //判断是否为工序
							 | 
						|||
| 
								 | 
							
								                        else if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && !StrIsNumm(item[2]) && !StrIsNumm(item[3]) && StrIsNumm(item[4]) && StrIsNumm(item[5]))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            model.InstallationCode = item[0].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.InstallationName = item[1].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.ProcessesCode = item[2].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.ProcessesName = item[3].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.Level = 2;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        //判断是否为系统
							 | 
						|||
| 
								 | 
							
								                        else if (!StrIsNumm(item[0]) && !StrIsNumm(item[1]) && !StrIsNumm(item[2]) && !StrIsNumm(item[3]) && !StrIsNumm(item[4]) && !StrIsNumm(item[5]))
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            model.InstallationCode = item[0].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.InstallationName = item[1].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.ProcessesCode = item[2].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.ProcessesName = item[3].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.SystemCode = item[4].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.SystemName = item[5].ToString();
							 | 
						|||
| 
								 | 
							
								                            model.Level = 3;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        else
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                            ShowNotify($"{index}行数据存在错误,数据格式具体见模板说明为空!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                            break;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        list.Add(model);
							 | 
						|||
| 
								 | 
							
								                        index++;
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #region 数据验证
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //验证装置编码
							 | 
						|||
| 
								 | 
							
								                    if (list.Count(x => x.Level == 1) > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var installationCodes = list.Where(x => x.Level == 1).Select(a => a.InstallationCode);
							 | 
						|||
| 
								 | 
							
								                        var importCodes = installationCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList();
							 | 
						|||
| 
								 | 
							
								                        if (importCodes.Count > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                            ShowNotify($"EXCEL中装置编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                            return;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        installationCodes = installationCodes.Distinct();
							 | 
						|||
| 
								 | 
							
								                        if (installationCodes.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var existInstallations = Funs.DB.PreRun_SysDevice.Where(a => installationCodes.Contains(a.PreRunCode) && a.PreRunLevel == 1 && a.ProjectId == this.CurrUser.LoginProjectId).ToList();
							 | 
						|||
| 
								 | 
							
								                            if (existInstallations.Count > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                                ShowNotify($"装置编码({string.Join(",", existInstallations.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                                return;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //验证工序编码
							 | 
						|||
| 
								 | 
							
								                    if (list.Count(x => x.Level == 2) > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var processesCodes = list.Where(x => x.Level == 2).Select(a => a.ProcessesCode);
							 | 
						|||
| 
								 | 
							
								                        var importCodes = processesCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList();
							 | 
						|||
| 
								 | 
							
								                        if (importCodes.Count > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                            ShowNotify($"EXCEL中工序编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                            return;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        processesCodes = processesCodes.Distinct();
							 | 
						|||
| 
								 | 
							
								                        if (processesCodes.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var existProcessess = Funs.DB.PreRun_SysDevice.Where(a => processesCodes.Contains(a.PreRunCode) && a.PreRunLevel == 2 && a.ProjectId == this.CurrUser.LoginProjectId).ToList();
							 | 
						|||
| 
								 | 
							
								                            if (existProcessess.Count > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                                ShowNotify($"工序编码({string.Join(",", existProcessess.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                                return;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //验证系统编码
							 | 
						|||
| 
								 | 
							
								                    if (list.Count(x => x.Level == 3) > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var systemCodes = list.Where(x => x.Level == 3).Select(a => a.SystemCode);
							 | 
						|||
| 
								 | 
							
								                        var importCodes = systemCodes.GroupBy(x => x).Where(x => x.Count() > 1).Select(x => x.Key).ToList();
							 | 
						|||
| 
								 | 
							
								                        if (importCodes.Count > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                            ShowNotify($"EXCEL中系统编码{string.Join(",", importCodes)}重复,请调整模板数据!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                            return;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        systemCodes = systemCodes.Distinct().ToList();
							 | 
						|||
| 
								 | 
							
								                        if (systemCodes.Count() > 0)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            var existSystems = Funs.DB.PreRun_SysDevice.Where(a => systemCodes.Contains(a.PreRunCode) && a.PreRunLevel == 3 && a.ProjectId == this.CurrUser.LoginProjectId).ToList();
							 | 
						|||
| 
								 | 
							
								                            if (existSystems.Count > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                                ShowNotify($"系统编码({string.Join(",", existSystems.ConvertAll(s => s.PreRunCode))})已存在!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                                return;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #region 数据处理
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var installationData = new List<PreRun_SysDevice>();
							 | 
						|||
| 
								 | 
							
								                    var processesData = new List<PreRun_SysDevice>();
							 | 
						|||
| 
								 | 
							
								                    var systemData = new List<PreRun_SysDevice>();
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    //处理装置
							 | 
						|||
| 
								 | 
							
								                    if (list.Count(x => x.Level == 1) > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        list.Where(x => x.Level == 1).ToList().ForEach(a =>
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            a.InstallationId = Guid.NewGuid().ToString();
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //处理工序
							 | 
						|||
| 
								 | 
							
								                    if (list.Count(x => x.Level == 2) > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var codes = list.ConvertAll(a => a.InstallationCode).Distinct();
							 | 
						|||
| 
								 | 
							
								                        installationData = Funs.DB.PreRun_SysDevice.Where(x => x.PreRunLevel == 1 && codes.Contains(x.PreRunCode)).ToList();
							 | 
						|||
| 
								 | 
							
								                        list.Where(x => x.Level == 2).ToList().ForEach(a =>
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            //装置
							 | 
						|||
| 
								 | 
							
								                            if (list.Count(p => p.InstallationCode == a.InstallationCode && p.Level == 1) > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                a.InstallationId = list.FirstOrDefault(p => p.InstallationCode == a.InstallationCode && p.Level == 1).InstallationId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else if (installationData.Count(p => p.PreRunCode == a.InstallationCode) > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                a.InstallationId = installationData.FirstOrDefault(p => p.PreRunCode == a.InstallationCode).PreRunId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            //上级编码
							 | 
						|||
| 
								 | 
							
								                            a.ParentId = a.InstallationId;
							 | 
						|||
| 
								 | 
							
								                            //工序
							 | 
						|||
| 
								 | 
							
								                            a.ProcessesId = Guid.NewGuid().ToString();
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                    //处理系统
							 | 
						|||
| 
								 | 
							
								                    if (list.Count(x => x.Level == 3) > 0)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var codes = list.ConvertAll(a => a.ProcessesCode).Distinct();
							 | 
						|||
| 
								 | 
							
								                        processesData = Funs.DB.PreRun_SysDevice.Where(x => x.PreRunLevel == 2 && codes.Contains(x.PreRunCode)).ToList();
							 | 
						|||
| 
								 | 
							
								                        list.Where(x => x.Level == 3).ToList().ForEach(a =>
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            //装置
							 | 
						|||
| 
								 | 
							
								                            if (list.Count(p => p.InstallationCode == a.InstallationCode && p.Level == 1) > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                a.InstallationId = list.FirstOrDefault(p => p.InstallationCode == a.InstallationCode && p.Level == 1).InstallationId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else if (installationData.Count(p => p.PreRunCode == a.InstallationCode) > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                a.InstallationId = installationData.FirstOrDefault(p => p.PreRunCode == a.InstallationCode).PreRunId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            //工序
							 | 
						|||
| 
								 | 
							
								                            if (list.Count(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2) > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                a.ProcessesId = list.FirstOrDefault(p => p.ProcessesCode == a.ProcessesCode && p.Level == 2).ProcessesId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            else if (processesData.Count(p => p.PreRunCode == a.ProcessesCode) > 0)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                a.ProcessesId = processesData.FirstOrDefault(p => p.PreRunCode == a.ProcessesCode).PreRunId;
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                            //上级编码
							 | 
						|||
| 
								 | 
							
								                            a.ParentId = a.ProcessesId;
							 | 
						|||
| 
								 | 
							
								                            //系统
							 | 
						|||
| 
								 | 
							
								                            a.SystemId = Guid.NewGuid().ToString();
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #region 数据入库
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    var listData = new List<PreRun_SysDevice>();
							 | 
						|||
| 
								 | 
							
								                    int oneIndex = 1;
							 | 
						|||
| 
								 | 
							
								                    int twoIndex = 1;
							 | 
						|||
| 
								 | 
							
								                    int threeIndex = 1;
							 | 
						|||
| 
								 | 
							
								                    foreach (var itemData in list)
							 | 
						|||
| 
								 | 
							
								                    {
							 | 
						|||
| 
								 | 
							
								                        var model = new PreRun_SysDevice();
							 | 
						|||
| 
								 | 
							
								                        model.ProjectId = this.CurrUser.LoginProjectId;
							 | 
						|||
| 
								 | 
							
								                        model.PreRunLevel = itemData.Level;
							 | 
						|||
| 
								 | 
							
								                        if (itemData.Level == 1)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            model.PreRunId = itemData.InstallationId;
							 | 
						|||
| 
								 | 
							
								                            model.PreRunCode = itemData.InstallationCode;
							 | 
						|||
| 
								 | 
							
								                            model.PreRunName = itemData.InstallationName;
							 | 
						|||
| 
								 | 
							
								                            model.ParentId = itemData.ParentId;
							 | 
						|||
| 
								 | 
							
								                            model.AddUser = CurrUser.Account;
							 | 
						|||
| 
								 | 
							
								                            model.OperateTime = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                            model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + oneIndex;
							 | 
						|||
| 
								 | 
							
								                            oneIndex++;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (itemData.Level == 2)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            model.PreRunId = itemData.ProcessesId;
							 | 
						|||
| 
								 | 
							
								                            model.ProcessesId = itemData.ProcessesId;
							 | 
						|||
| 
								 | 
							
								                            model.PreRunCode = itemData.ProcessesCode;
							 | 
						|||
| 
								 | 
							
								                            model.PreRunName = itemData.ProcessesName;
							 | 
						|||
| 
								 | 
							
								                            model.InstallationId = itemData.InstallationId;
							 | 
						|||
| 
								 | 
							
								                            model.ParentId = itemData.ParentId;
							 | 
						|||
| 
								 | 
							
								                            model.AddUser = CurrUser.Account;
							 | 
						|||
| 
								 | 
							
								                            model.OperateTime = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                            model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + twoIndex;
							 | 
						|||
| 
								 | 
							
								                            twoIndex++;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        if (itemData.Level == 3)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            model.PreRunId = itemData.SystemId;
							 | 
						|||
| 
								 | 
							
								                            model.SystemId = itemData.SystemId;
							 | 
						|||
| 
								 | 
							
								                            model.PreRunCode = itemData.SystemCode;
							 | 
						|||
| 
								 | 
							
								                            model.PreRunName = itemData.SystemName;
							 | 
						|||
| 
								 | 
							
								                            model.InstallationId = itemData.InstallationId;
							 | 
						|||
| 
								 | 
							
								                            model.ProcessesId = itemData.ProcessesId;
							 | 
						|||
| 
								 | 
							
								                            model.ParentId = itemData.ParentId;
							 | 
						|||
| 
								 | 
							
								                            model.AddUser = CurrUser.Account;
							 | 
						|||
| 
								 | 
							
								                            model.OperateTime = DateTime.Now;
							 | 
						|||
| 
								 | 
							
								                            model.Sort = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId) + threeIndex;
							 | 
						|||
| 
								 | 
							
								                            threeIndex++;
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                        listData.Add(model);
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    Funs.DB.PreRun_SysDevice.InsertAllOnSubmit(listData);
							 | 
						|||
| 
								 | 
							
								                    Funs.DB.SubmitChanges();
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("导入成功!", MessageBoxIcon.Success);
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								                    #endregion
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                else
							 | 
						|||
| 
								 | 
							
								                {
							 | 
						|||
| 
								 | 
							
								                    ShowNotify("文件无数据!", MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								                DataBrid();
							 | 
						|||
| 
								 | 
							
								                this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            catch (Exception ex)
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                this.fileData.Reset();
							 | 
						|||
| 
								 | 
							
								                ShowNotify(ex.Message, MessageBoxIcon.Warning);
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 下载模板
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void btnDownLoad_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            PageContext.RegisterStartupScript(Confirm.GetShowReference("是否确认下载模板?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel")));
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 下载导入模板
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void PageManager1_CustomEvent(object sender, CustomEventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            if (e.EventArgument == "Confirm_OK")
							 | 
						|||
| 
								 | 
							
								            {
							 | 
						|||
| 
								 | 
							
								                string rootPath = Server.MapPath("~/");
							 | 
						|||
| 
								 | 
							
								                string uploadfilepath = rootPath + Const.TestRunUrl;
							 | 
						|||
| 
								 | 
							
								                string filePath = Const.TestRunUrl;
							 | 
						|||
| 
								 | 
							
								                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();
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 右击修改
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void btnMenuModify_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            btnEdit_Click(sender, e);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 右击新增子级别
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        protected void btnMenuParentAdd_Click(object sender, EventArgs e)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            btnParentAdd_Click(sender, e);
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #region 私有方法
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 验证管道模板是否正确
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <param name="ds"></param>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        private bool VerifyFile(DataSet ds)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            var result = true;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][0].ToString().Contains("装置编码")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][1].ToString().Contains("装置名称")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][2].ToString().Contains("工序编码")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][3].ToString().Contains("工序名称")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][4].ToString().Contains("系统编码")) result = false;
							 | 
						|||
| 
								 | 
							
								            if (ds.Tables[0].Rows[1][5].ToString().Contains("系统名称")) 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>
							 | 
						|||
| 
								 | 
							
								        /// 判断是否为空
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        /// <returns></returns>
							 | 
						|||
| 
								 | 
							
								        public bool StrIsNumm(object value)
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            bool result = false;
							 | 
						|||
| 
								 | 
							
								            if (value == null) result = true;
							 | 
						|||
| 
								 | 
							
								            if (string.IsNullOrWhiteSpace(value.ToString())) result = true;
							 | 
						|||
| 
								 | 
							
								            return result;
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        /// <summary>
							 | 
						|||
| 
								 | 
							
								        /// 试车装置信息
							 | 
						|||
| 
								 | 
							
								        /// </summary>
							 | 
						|||
| 
								 | 
							
								        public class SysDeviceDto
							 | 
						|||
| 
								 | 
							
								        {
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 上级主键
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string ParentId { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 主键编码
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string InstallationId { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 装置编码
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string InstallationCode { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 装置名称
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string InstallationName { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 工序主键
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string ProcessesId { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 工序编码
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string ProcessesCode { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 工序名称
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string ProcessesName { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 系统主键
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string SystemId { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 系统编码
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string SystemCode { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 系统名称
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public string SystemName { get; set; }
							 | 
						|||
| 
								 | 
							
								            /// <summary>
							 | 
						|||
| 
								 | 
							
								            /// 级别1:装置 2:工序 3:系统
							 | 
						|||
| 
								 | 
							
								            /// </summary>
							 | 
						|||
| 
								 | 
							
								            public int Level { get; set; }
							 | 
						|||
| 
								 | 
							
								        }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        #endregion
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								}
							 |