CNCEC_SUBQHSE_WUHUAN/SGGL/FineUIPro.Web/TestRun/BeforeTestRun/DeviceRunEdit.aspx.cs

305 lines
13 KiB
C#

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
{
/// <summary>
/// 上级主键
/// </summary>
public string ParentId
{
get { return (string)ViewState["ParentId"]; }
set { ViewState["ParentId"] = value; }
}
/// <summary>
/// 主键
/// </summary>
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();
}
}
/// <summary>
/// 绑定数据
/// </summary>
/// <param name="runId">主键</param>
/// <param name="parentId">上级主键</param>
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 = "装置编码";
}
}
}
}
/// <summary>
/// 保存
/// </summary>
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
/// <summary>
/// 根据主键获取所有节点
/// </summary>
/// <returns></returns>
public List<PreRun_SysDevice> GetAllDevices(string parentId)
{
var result = new List<PreRun_SysDevice>();
var ids = new List<string>();
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
}
}