运行日志调整提交

This commit is contained in:
2024-05-04 00:43:11 +08:00
parent 02ee4be036
commit 9a7c5aae14
6 changed files with 400 additions and 184 deletions
@@ -37,18 +37,44 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
public void PageBase()
{
//获取系统
var syslist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3).ToList();
if (syslist.Count > 0)
var alllist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
if (alllist.Count > 0)
{
int i = 0;
ListItem[] list = new ListItem[syslist.Count];
foreach (var item in syslist)
var engineeringModel = alllist.FirstOrDefault(x => x.PreRunLevel == 1 && x.PreRunName.Trim() == "公用工程");
if (engineeringModel != null)
{
list[i] = new ListItem(item.PreRunName, item.PreRunId);
i++;
var engsyslist = alllist.Where(x => x.PreRunLevel == 3 && x.InstallationId == engineeringModel.PreRunId).ToList();
if (engsyslist.Count > 0)
{
int i = 0;
ListItem[] list = new ListItem[engsyslist.Count];
foreach (var item in engsyslist)
{
list[i] = new ListItem(item.PreRunName, item.PreRunId);
i++;
}
this.rdbEngineeringOperation.DataSource = list;
this.rdbEngineeringOperation.DataBind();
}
}
var deviceModel = alllist.FirstOrDefault(x => x.PreRunLevel == 1 && x.PreRunName.Trim() == "工艺装置");
if (deviceModel != null)
{
var devicesyslist = alllist.Where(x => x.PreRunLevel == 3 && x.InstallationId == deviceModel.PreRunId).ToList();
if (devicesyslist.Count > 0)
{
int i = 0;
ListItem[] list = new ListItem[devicesyslist.Count];
foreach (var item in devicesyslist)
{
list[i] = new ListItem(item.PreRunName, item.PreRunId);
i++;
}
this.rdbDeviceOption.DataSource = list;
this.rdbDeviceOption.DataBind();
}
}
this.rdbOperation.DataSource = list;
this.rdbOperation.DataBind();
}
//获取人员
@@ -85,9 +111,18 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
ddlSuccessionUser.SelectedValue = model.SuccessionUser;
txtStartData.Text = model.StartData.Value.ToString("yyyy-MM-dd HH:mm:ss");
txtEndData.Text = model.EndData.Value.ToString("yyyy-MM-dd HH:mm:ss");
rdbOperation.SelectedValueArray = options.ToArray();
txtHandoverCare.Text = model.HandoverCare;
DataBrid();
var dataInstall = alllist.FirstOrDefault(x => x.PreRunId == model.InstallationId);
if (dataInstall.PreRunName == "公用工程")
{
rdbEngineeringOperation.SelectedValueArray = options.ToArray();
EngineeringDataBrid();
}
if (dataInstall.PreRunName == "工艺装置")
{
rdbDeviceOption.SelectedValueArray = options.ToArray();
DriveDataBrid();
}
gvOperationBrid();
gvMaintenanceBrid();
}
@@ -98,17 +133,23 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
}
/// <summary>
/// 选择项
/// 公用工程选择项
/// </summary>
protected void rdbOperation_SelectedIndexChanged(object sender, EventArgs e)
protected void rdbEngineeringOperation_SelectedIndexChanged(object sender, EventArgs e)
{
var syslist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3).ToList();
var rdbIdArr = rdbOperation.SelectedItemArray;
var list = gvSystemOptionLs();
var alllist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
if (alllist.Count == 0) return;
var engineeringModel = alllist.FirstOrDefault(x => x.PreRunLevel == 1 && x.PreRunName.Trim() == "公用工程");
if (engineeringModel == null) return;
var engsyslist = alllist.Where(x => x.PreRunLevel == 3 && x.InstallationId == engineeringModel.PreRunId).ToList();
if (engsyslist.Count == 0) return;
var rdbIdArr = rdbEngineeringOperation.SelectedItemArray;
var list = gvEngineeringSystemOptionLs();
foreach (var item in rdbIdArr)
{
if (list.Count(x => x.SystemId == item.Value) > 0) continue;
var itemsys = syslist.FirstOrDefault(x => x.PreRunId == item.Value);
var itemsys = engsyslist.FirstOrDefault(x => x.PreRunId == item.Value);
list.Add(new Running_LogManagementDto
{
RunningId = Guid.NewGuid().ToString(),
@@ -123,8 +164,44 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
AddTime = DateTime.Now,
});
}
list.RemoveAll(r => !rdbOperation.SelectedValueArray.Contains(r.SystemId));
DataBrid(list);
list.RemoveAll(r => !rdbEngineeringOperation.SelectedValueArray.Contains(r.SystemId));
EngineeringDataBrid(list);
}
/// <summary>
/// 工艺装置选择项
/// </summary>
protected void rdbDeviceOption_SelectedIndexChanged(object sender, EventArgs e)
{
var alllist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).ToList();
if (alllist.Count == 0) return;
var deviceModel = alllist.FirstOrDefault(x => x.PreRunLevel == 1 && x.PreRunName.Trim() == "工艺装置");
if (deviceModel == null) return;
var drivesyslist = alllist.Where(x => x.PreRunLevel == 3 && x.InstallationId == deviceModel.PreRunId).ToList();
if (drivesyslist.Count == 0) return;
var rdbIdArr = rdbDeviceOption.SelectedItemArray;
var list = gvDeviceSystemOptionLs();
foreach (var item in rdbIdArr)
{
if (list.Count(x => x.SystemId == item.Value) > 0) continue;
var itemsys = drivesyslist.FirstOrDefault(x => x.PreRunId == item.Value);
list.Add(new Running_LogManagementDto
{
RunningId = Guid.NewGuid().ToString(),
ProjectId = this.CurrUser.LoginProjectId,
InstallationId = itemsys.InstallationId,
ProcessesId = itemsys.ProcessesId,
SystemId = itemsys.SystemId,
SystemName = itemsys.PreRunName,
Situation = "",
Remarks = "",
AddUser = CurrUser.UserId,
AddTime = DateTime.Now,
});
}
list.RemoveAll(r => !rdbDeviceOption.SelectedValueArray.Contains(r.SystemId));
DriveDataBrid(list);
}
/// <summary>
@@ -132,6 +209,7 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </summary>
protected void btnSave_Click(object sender, EventArgs e)
{
List<Running_LogManagementDto> list = new List<Running_LogManagementDto>();
if (string.IsNullOrWhiteSpace(ddlShiftUser.SelectedValue))
{
ShowNotify("请选择轮班职工!", MessageBoxIcon.Warning);
@@ -142,10 +220,13 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
ShowNotify("请选择继任职工!", MessageBoxIcon.Warning);
return;
}
var list = gvSystemOptionLs();
var englist = gvEngineeringSystemOptionLs();
if (englist.Count > 0) list.AddRange(englist);
var devlist = gvDeviceSystemOptionLs();
if (devlist.Count > 0) list.AddRange(devlist);
if (list.Count == 0)
{
ShowNotify("请选择系统!", MessageBoxIcon.Warning);
ShowNotify("请选择公用工程或工艺装置的系统!", MessageBoxIcon.Warning);
return;
}
var optionlist = gvOperationLs();
@@ -257,14 +338,21 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
}
/// <summary>
/// 日志管理绑定
/// 公用工程日志管理绑定
/// </summary>
public void DataBrid(List<Running_LogManagementDto> list = null)
public void EngineeringDataBrid(List<Running_LogManagementDto> list = null)
{
if (list == null) list = new List<Running_LogManagementDto>();
var engineeringModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && x.PreRunName.Trim() == "公用工程");
if (engineeringModel == null)
{
gvEngineeringOption.DataSource = list;
gvEngineeringOption.DataBind();
return;
}
var query = from a in Funs.DB.Running_LogManagement
join b in Funs.DB.PreRun_SysDevice on a.SystemId equals b.PreRunId
where a.RunningId == this.RunningId
where a.RunningId == this.RunningId && a.InstallationId == engineeringModel.PreRunId
select new Running_LogManagementDto
{
RunningId = a.RunningId,
@@ -288,17 +376,17 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
var data = query.ToList();
if (data.Count > 0) list.AddRange(data);
gvSystemOption.DataSource = list;
gvSystemOption.DataBind();
gvEngineeringOption.DataSource = list;
gvEngineeringOption.DataBind();
}
/// <summary>
/// 获取绑定集合
/// 获取公用工程绑定集合
/// </summary>
private List<Running_LogManagementDto> gvSystemOptionLs()
private List<Running_LogManagementDto> gvEngineeringSystemOptionLs()
{
List<Running_LogManagementDto> massQuestionLs = new List<Running_LogManagementDto>();
JArray mergedData = gvSystemOption.GetMergedData();
JArray mergedData = gvEngineeringOption.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
@@ -306,12 +394,84 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
int i = mergedRow.Value<int>("index");
massQuestionLs.Add(new Running_LogManagementDto
{
RunningId = this.gvSystemOption.Rows[i].DataKeys[0].ToString(),
RunningId = this.gvEngineeringOption.Rows[i].DataKeys[0].ToString(),
ProjectId = this.CurrUser.LoginProjectId,
InstallationId = this.gvSystemOption.Rows[i].DataKeys[1].ToString(),
ProcessesId = this.gvSystemOption.Rows[i].DataKeys[2].ToString(),
SystemId = this.gvSystemOption.Rows[i].DataKeys[3].ToString(),
SystemName = this.gvSystemOption.Rows[i].DataKeys[4].ToString(),
InstallationId = this.gvEngineeringOption.Rows[i].DataKeys[1].ToString(),
ProcessesId = this.gvEngineeringOption.Rows[i].DataKeys[2].ToString(),
SystemId = this.gvEngineeringOption.Rows[i].DataKeys[3].ToString(),
SystemName = this.gvEngineeringOption.Rows[i].DataKeys[4].ToString(),
Situation = values.Value<string>("Situation"),
Remarks = values.Value<string>("Remarks"),
AddUser = CurrUser.UserId,
AddTime = DateTime.Now,
});
}
return massQuestionLs;
}
/// <summary>
/// 工艺装置日志管理绑定
/// </summary>
public void DriveDataBrid(List<Running_LogManagementDto> list = null)
{
if (list == null) list = new List<Running_LogManagementDto>();
var deviceModel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 1 && x.PreRunName.Trim() == "工艺装置");
if (deviceModel == null)
{
gvDeviceOption.DataSource = list;
gvDeviceOption.DataBind();
return;
}
var query = from a in Funs.DB.Running_LogManagement
join b in Funs.DB.PreRun_SysDevice on a.SystemId equals b.PreRunId
where a.RunningId == this.RunningId && a.InstallationId == deviceModel.PreRunId
select new Running_LogManagementDto
{
RunningId = a.RunningId,
ProjectId = a.ProjectId,
InstallationId = a.InstallationId,
ProcessesId = a.ProcessesId,
SystemId = a.SystemId,
SystemName = b.PreRunName,
JobNo = a.JobNo,
ShiftType = a.ShiftType,
ShiftUser = a.ShiftUser,
SuccessionUser = a.SuccessionUser,
StartData = a.StartData,
EndData = a.EndData,
Situation = a.Situation,
Remarks = a.Remarks,
HandoverCare = a.HandoverCare,
AddUser = a.AddUser,
AddTime = a.AddTime
};
var data = query.ToList();
if (data.Count > 0) list.AddRange(data);
gvDeviceOption.DataSource = list;
gvDeviceOption.DataBind();
}
/// <summary>
/// 获取工艺装置绑定集合
/// </summary>
private List<Running_LogManagementDto> gvDeviceSystemOptionLs()
{
List<Running_LogManagementDto> massQuestionLs = new List<Running_LogManagementDto>();
JArray mergedData = gvDeviceOption.GetMergedData();
foreach (JObject mergedRow in mergedData)
{
string status = mergedRow.Value<string>("status");
JObject values = mergedRow.Value<JObject>("values");
int i = mergedRow.Value<int>("index");
massQuestionLs.Add(new Running_LogManagementDto
{
RunningId = this.gvDeviceOption.Rows[i].DataKeys[0].ToString(),
ProjectId = this.CurrUser.LoginProjectId,
InstallationId = this.gvDeviceOption.Rows[i].DataKeys[1].ToString(),
ProcessesId = this.gvDeviceOption.Rows[i].DataKeys[2].ToString(),
SystemId = this.gvDeviceOption.Rows[i].DataKeys[3].ToString(),
SystemName = this.gvDeviceOption.Rows[i].DataKeys[4].ToString(),
Situation = values.Value<string>("Situation"),
Remarks = values.Value<string>("Remarks"),
AddUser = CurrUser.UserId,