using BLL; using Model; using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace FineUIPro.Web.TestRun.BeforeTestRun { public partial class DeviceRunEdit : PageBase { /// /// 上级主键 /// public string ParentId { get { return (string)ViewState["ParentId"]; } set { ViewState["ParentId"] = value; } } /// /// 主键 /// public string RunId { get { return (string)ViewState["RunId"]; } set { ViewState["RunId"] = value; } } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { this.RunId = Request.Params["RunId"]; this.ParentId = Request.Params["ParentId"]; //绑定数据 PageIn(); } } /// /// 绑定数据 /// /// 主键 /// 上级主键 public void PageIn() { var num = 0; if (!string.IsNullOrWhiteSpace(this.ParentId)) { var parenLs = GetAllDevices(this.ParentId); if (parenLs.Count > 0) { var itemModel = parenLs.FirstOrDefault(p => p.PreRunId == this.ParentId); if (itemModel != null) { if (itemModel.PreRunLevel == 1) { zz.Hidden = false; var oneModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 1); if (oneModel != null) { lblzzmc.Text = oneModel.PreRunName; lblzzbm.Text = oneModel.PreRunCode; if (string.IsNullOrWhiteSpace(this.RunId)) { num = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == this.CurrUser.LoginProjectId && p.PreRunLevel == 2) + 1; txtRunCode.Text = string.Format("PA{0}", string.Format("{0:d2}", num)); txtSort.Text = num.ToString(); } txtRunName.Label = "工序名称"; txtRunCode.Label = "工序编码"; } } else if (itemModel.PreRunLevel == 2) { zz.Hidden = false; gx.Hidden = false; var oneModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 1); if (oneModel != null) { lblzzmc.Text = oneModel.PreRunName; lblzzbm.Text = oneModel.PreRunCode; } var twoModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 2); if (twoModel != null) { lblgxmc.Text = twoModel.PreRunName; lblgxbm.Text = twoModel.PreRunCode; } if (string.IsNullOrWhiteSpace(this.RunId)) { num = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == this.CurrUser.LoginProjectId && p.PreRunLevel == 3) + 1; txtRunCode.Text = string.Format("S{0}", string.Format("{0:d2}", num)); txtSort.Text = num.ToString(); } txtRunName.Label = "S系统名称"; txtRunCode.Label = "S系统编码"; } else if (itemModel.PreRunLevel == 3) { zz.Hidden = false; gx.Hidden = false; sxt.Hidden = false; var oneModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 1); if (oneModel != null) { lblzzmc.Text = oneModel.PreRunName; lblzzbm.Text = oneModel.PreRunCode; } var twoModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 2); if (twoModel != null) { lblgxmc.Text = twoModel.PreRunName; lblgxbm.Text = twoModel.PreRunCode; } var threeModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 3); if (threeModel != null) { lblsxtmc.Text = threeModel.PreRunName; lblsxtbm.Text = threeModel.PreRunCode; } if (string.IsNullOrWhiteSpace(this.RunId)) { num = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == this.CurrUser.LoginProjectId && p.PreRunLevel == 4) + 1; txtRunCode.Text = string.Format("SS{0}", string.Format("{0:d2}", num)); txtSort.Text = num.ToString(); } txtRunName.Label = "SS子系统名称"; txtRunCode.Label = "SS子系统编码"; } } } } else { if (string.IsNullOrWhiteSpace(this.RunId)) { txtRunName.Label = "装置名称"; txtRunCode.Label = "装置编码"; num = Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == this.CurrUser.LoginProjectId && p.PreRunLevel == 1) + 1; txtRunCode.Text = string.Format("P{0}", string.Format("{0:d2}", num)); txtSort.Text = num.ToString(); } } if (!string.IsNullOrWhiteSpace(this.RunId)) { var deviceModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == this.RunId); if (deviceModel != null) { txtRunCode.Text = deviceModel.PreRunCode; txtRunName.Text = deviceModel.PreRunName; txtRemark.Text = deviceModel.Remark; txtSort.Text = deviceModel.Sort.ToString(); if (deviceModel.PreRunLevel == 1) { txtRunName.Label = "装置名称"; txtRunCode.Label = "装置编码"; } else if (deviceModel.PreRunLevel == 2) { txtRunName.Label = "工序名称"; txtRunCode.Label = "工序编码"; } else if (deviceModel.PreRunLevel == 3) { txtRunName.Label = "S系统名称"; txtRunCode.Label = "S系统编码"; } else if (deviceModel.PreRunLevel == 4) { txtRunName.Label = "SS子系统名称"; txtRunCode.Label = "SS子系统编码"; } else { txtRunName.Label = "装置名称"; txtRunCode.Label = "装置编码"; } } } } /// /// 保存 /// protected void btnSave_Click(object sender, EventArgs e) { var model = new PreRun_SysDevice(); model.PreRunId = Guid.NewGuid().ToString(); var deviceId = string.Empty; var processesId = string.Empty; var systemIdId = string.Empty; if (!string.IsNullOrWhiteSpace(this.RunId)) { model = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == this.RunId); } if (model == null) { ShowNotify("传递参数错误!", MessageBoxIcon.Error); return; } model.ProjectId = CurrUser.LoginProjectId; if (!string.IsNullOrWhiteSpace(this.ParentId)) { var parenLs = GetAllDevices(this.ParentId); if (parenLs.Count > 0) { var oneModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 1); if (oneModel != null) { model.InstallationId = oneModel.PreRunId; model.ParentId = oneModel.PreRunId; model.ProcessesId = model.PreRunId; model.PreRunLevel = 2; } var twoModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 2); if (twoModel != null) { model.ProcessesId = twoModel.PreRunId; model.ParentId = twoModel.PreRunId; model.SystemId = model.PreRunId; model.PreRunLevel = 3; } var threeModel = parenLs.FirstOrDefault(p => p.PreRunLevel == 3); if (threeModel != null) { model.SystemId = threeModel.PreRunId; model.ParentId = threeModel.PreRunId; model.SubsystemId = model.PreRunId; model.PreRunLevel = 4; } } } else { model.PreRunLevel = 1; } model.AddUser = CurrUser.Account; model.OperateTime = DateTime.Now; model.Sort = !string.IsNullOrEmpty(txtSort.Text) ? int.Parse(txtSort.Text) : Funs.DB.PreRun_SysDevice.Count(p => p.ProjectId == CurrUser.LoginProjectId && p.PreRunLevel == model.PreRunLevel) + 1; model.PreRunCode = txtRunCode.Text; model.PreRunName = txtRunName.Text; model.Remark = txtRemark.Text; if (string.IsNullOrWhiteSpace(this.RunId)) { if (Funs.DB.PreRun_SysDevice.Count(p => p.PreRunCode == txtRunCode.Text.Trim() && p.ProjectId == this.CurrUser.LoginProjectId) > 0) { ShowNotify($"编码{txtRunCode.Text.Trim()}已存在!", MessageBoxIcon.Error); return; } Funs.DB.PreRun_SysDevice.InsertOnSubmit(model); } else { if (Funs.DB.PreRun_SysDevice.Count(p => p.PreRunCode == txtRunCode.Text.Trim() && p.PreRunId != model.PreRunId && p.ProjectId == this.CurrUser.LoginProjectId) > 0) { ShowNotify($"编码{txtRunCode.Text.Trim()}已存在!", MessageBoxIcon.Error); return; } } Funs.DB.SubmitChanges(); ShowNotify("保存成功!", MessageBoxIcon.Success); PageContext.RegisterStartupScript(ActiveWindow.GetHideRefreshReference()); } #region 私有方法 /// /// 根据主键获取所有节点 /// /// public List GetAllDevices(string parentId) { var result = new List(); var ids = new List(); var itemDevice = Funs.DB.PreRun_SysDevice.FirstOrDefault(p => p.PreRunId == parentId); if (itemDevice != null) { ids.Add(itemDevice.PreRunId); if (!string.IsNullOrWhiteSpace(itemDevice.InstallationId)) { ids.Add(itemDevice.InstallationId); } if (!string.IsNullOrWhiteSpace(itemDevice.ProcessesId)) { ids.Add(itemDevice.ProcessesId); } if (!string.IsNullOrWhiteSpace(itemDevice.SystemId)) { ids.Add(itemDevice.SystemId); } result = Funs.DB.PreRun_SysDevice.Where(p => ids.Contains(p.PreRunId)).ToList(); } return result; } #endregion } }