This commit is contained in:
2024-04-22 00:36:04 +08:00
parent 0829c2c559
commit 1fe9772110
5 changed files with 887 additions and 552 deletions
@@ -1,9 +1,15 @@
using BLL;
using FineUIPro.Web.DataShow;
using FineUIPro.Web.ProjectData;
using Model;
using Newtonsoft.Json.Linq;
using NPOI.SS.Formula.Functions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices.ComTypes;
using System.Web;
using System.Web.Services.Description;
using System.Web.UI;
using System.Web.UI.WebControls;
@@ -15,17 +21,12 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// 日志
/// </summary>
public string RunningId { get { return (string)ViewState["RunningId"]; } set { ViewState["RunningId"] = value; } }
/// <summary>
/// 系统主键
/// </summary>
public string SystemId { get { return (string)ViewState["SystemId"]; } set { ViewState["SystemId"] = value; } }
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
this.RunningId = Request["RunningId"];
this.SystemId = Request["SystemId"];
PageBase();
}
}
@@ -35,6 +36,21 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </summary>
public void PageBase()
{
//获取系统
var syslist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3).ToList();
if (syslist.Count > 0)
{
int i = 0;
ListItem[] list = new ListItem[syslist.Count];
foreach (var item in syslist)
{
list[i] = new ListItem(item.PreRunName, item.PreRunId);
i++;
}
this.rdbOperation.DataSource = list;
this.rdbOperation.DataBind();
}
//获取人员
var userList = from user in Funs.DB.Sys_User
join projectrole in Funs.DB.Project_ProjectUser on user.UserId equals projectrole.UserId
@@ -63,93 +79,21 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
var model = Funs.DB.Running_LogManagement.FirstOrDefault(x => x.RunningId == this.RunningId);
if (model != null)
{
options.Add(model.SystemId);
txtJobNo.Text = model.JobNo;
ddlShiftUser.SelectedValue = model.ShiftUser;
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");
if (model.IsDesalinated == 1)
{
options.Add("1");
tys.Hidden = false;
txtDesalinatedSituation.Text = model.DesalinatedSituation;
txtDesalinatedRemarks.Text = model.DesalinatedRemarks;
}
else
{
tys.Hidden = true;
}
if (model.IsLoop == 1)
{
options.Add("2");
xhs.Hidden = false;
txtLoopSituation.Text = model.LoopSituation;
txtLoopRemarks.Text = model.LoopRemarks;
}
else
{
xhs.Hidden = true;
}
if (model.IsSteam == 1)
{
options.Add("3");
zq.Hidden = false;
txtSteamSituation.Text = model.SteamSituation;
txtSteamRemarks.Text = model.SteamRemarks;
}
else
{
zq.Hidden = true;
}
if (model.IsAirCompression == 1)
{
options.Add("4");
kyz.Hidden = false;
txtAirCompressionSituation.Text = model.AirCompressionSituation;
txtAirCompressionRemarks.Text = model.AirCompressionRemarks;
}
else
{
kyz.Hidden = true;
}
if (model.IsCompoundAmmonia == 1)
{
options.Add("5");
hca.Hidden = false;
txtCompoundAmmoniaSituation.Text = model.CompoundAmmoniaSituation;
txtCompoundAmmoniaRemarks.Text = model.CompoundAmmoniaRemarks;
}
else
{
hca.Hidden = true;
}
if (model.IsUrea == 1)
{
options.Add("6");
ns.Hidden = false;
txtUreaSituation.Text = model.UreaSituation;
txtUreaRemarks.Text = model.UreaRemarks;
}
else
{
ns.Hidden = true;
}
rdbOperation.SelectedValueArray = options.ToArray();
txtHandoverCare.Text = model.HandoverCare;
txtOperationReason.Text = model.OperationReason;
txtOperationHandle.Text = model.OperationHandle;
txtMaintenanceReason.Text = model.MaintenanceReason;
txtMaintenanceHandle.Text = model.MaintenanceHandle;
DataBrid();
gvOperationBrid();
gvMaintenanceBrid();
}
else
{
txtJobNo.Text = SQLHelper.RunProcNewId("SpGetNewCode5", "dbo.Running_LogManagement", "JobNo", "13022-PS81-");
tys.Hidden = true;
xhs.Hidden = true;
zq.Hidden = true;
kyz.Hidden = true;
hca.Hidden = true;
ns.Hidden = true;
}
}
@@ -158,13 +102,29 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </summary>
protected void rdbOperation_SelectedIndexChanged(object sender, EventArgs e)
{
var rdbArr = rdbOperation.SelectedValueArray;
tys.Hidden = rdbArr.Contains("1") ? false : true;
xhs.Hidden = rdbArr.Contains("2") ? false : true;
zq.Hidden = rdbArr.Contains("3") ? false : true;
kyz.Hidden = rdbArr.Contains("4") ? false : true;
hca.Hidden = rdbArr.Contains("5") ? false : true;
ns.Hidden = rdbArr.Contains("6") ? false : true;
var syslist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel == 3).ToList();
var rdbIdArr = rdbOperation.SelectedItemArray;
var list = gvSystemOptionLs();
foreach (var item in rdbIdArr)
{
if (list.Count(x => x.SystemId == item.Value) > 0) continue;
var itemsys = syslist.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 => !rdbOperation.SelectedValueArray.Contains(r.SystemId));
DataBrid(list);
}
/// <summary>
@@ -182,77 +142,370 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
ShowNotify("请选择继任职工!", MessageBoxIcon.Warning);
return;
}
var sysmodel = Funs.DB.PreRun_SysDevice.FirstOrDefault(x => x.PreRunId == this.SystemId);
if (sysmodel == null)
var list = gvSystemOptionLs();
if (list.Count == 0)
{
Alert.ShowInTop("系统参数错误!", MessageBoxIcon.Warning);
ShowNotify("请选择系统!", MessageBoxIcon.Warning);
return;
}
var optionlist = gvOperationLs();
if (optionlist.Count == 0)
{
ShowNotify("请添加操作问题!", MessageBoxIcon.Warning);
return;
}
var maintenancelist = gvMaintenanceLs();
if (maintenancelist.Count == 0)
{
ShowNotify("请添加维护问题!", MessageBoxIcon.Warning);
return;
}
var edata = DateTime.Parse(txtEndData.Text);
if (!string.IsNullOrWhiteSpace(this.RunningId))
var addlist = new List<Running_LogManagement>();
var addoptionlist = new List<Running_Operation>();
var addmaintenancelist = new List<Running_Maintenance>();
var ids = list.ConvertAll(x => x.RunningId);
var existlist = Funs.DB.Running_LogManagement.Where(x => ids.Contains(x.RunningId)).ToList();
foreach (var item in list)
{
if (Funs.DB.Running_LogManagement.Count(x => x.ShiftType == ddlShiftType.SelectedValue && x.SystemId == this.SystemId && x.EndData.Value.Year == edata.Year && x.EndData.Value.Month == edata.Month && x.EndData.Value.Day == edata.Day && x.RunningId != this.RunningId) > 0)
bool add = false;
var model = existlist.FirstOrDefault(x => x.RunningId == this.RunningId);
if (model == null)
{
Alert.ShowInTop($"{DateTime.Now.ToString("yyyy-MM-dd")}已添加{ddlShiftType.SelectedText}日志,无法继续添加!", MessageBoxIcon.Warning);
return;
add = true;
model = new Running_LogManagement();
model.RunningId = Guid.NewGuid().ToString();
model.ProjectId = this.CurrUser.LoginProjectId;
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
}
model.InstallationId = item.InstallationId;
model.ProcessesId = item.ProcessesId;
model.SystemId = item.SystemId;
model.JobNo = txtJobNo.Text;
model.HandoverCare = txtHandoverCare.Text;
model.ShiftType = ddlShiftType.SelectedValue;
model.ShiftUser = ddlShiftUser.SelectedValue;
model.SuccessionUser = ddlSuccessionUser.SelectedValue;
model.StartData = DateTime.Parse(txtStartData.Text);
model.EndData = DateTime.Parse(txtEndData.Text);
model.Situation = item.Situation;
model.Remarks = item.Remarks;
foreach (var itemoption in optionlist)
{
addoptionlist.Add(new Running_Operation()
{
OperationId = Guid.NewGuid().ToString(),
RunningId = model.RunningId,
InstallationId = item.InstallationId,
ProcessesId = item.ProcessesId,
SystemId = item.SystemId,
OperationReason = itemoption.OperationReason,
OperationHandle = itemoption.OperationHandle,
ProjectId = this.CurrUser.LoginProjectId,
AddUser = this.CurrUser.UserId,
AddTime = DateTime.Now,
});
}
foreach (var itemmain in maintenancelist)
{
addmaintenancelist.Add(new Running_Maintenance()
{
MaintenanceId = Guid.NewGuid().ToString(),
RunningId = model.RunningId,
InstallationId = item.InstallationId,
ProcessesId = item.ProcessesId,
SystemId = item.SystemId,
MaintenanceReason = itemmain.MaintenanceReason,
MaintenanceHandle = itemmain.MaintenanceHandle,
ProjectId = this.CurrUser.LoginProjectId,
AddUser = this.CurrUser.UserId,
AddTime = DateTime.Now,
});
}
if (add)
{
Funs.DB.SubmitChanges();
addlist.Add(model);
}
else
{
Funs.DB.SubmitChanges();
}
}
else
if (addlist.Count > 0) Funs.DB.Running_LogManagement.InsertAllOnSubmit(addlist);
var runIds = list.ConvertAll(x => x.RunningId);
var deleteOperas = Funs.DB.Running_Operation.Where(x => runIds.Contains(x.RunningId)).ToList();
if (deleteOperas.Count > 0)
{
if (Funs.DB.Running_LogManagement.Count(x => x.ShiftType == ddlShiftType.SelectedValue && x.SystemId == this.SystemId && x.EndData.Value.Year == edata.Year && x.EndData.Value.Month == edata.Month && x.EndData.Value.Day == edata.Day) > 0)
{
Alert.ShowInTop($"{DateTime.Now.ToString("yyyy-MM-dd")}已添加{ddlShiftType.SelectedText}日志,无法继续添加!", MessageBoxIcon.Warning);
return;
}
Funs.DB.Running_Operation.DeleteAllOnSubmit(deleteOperas);
Funs.DB.SubmitChanges();
}
bool add = false;
var model = Funs.DB.Running_LogManagement.FirstOrDefault(x => x.RunningId == this.RunningId);
if (model == null)
var deleteMaints = Funs.DB.Running_Maintenance.Where(x => runIds.Contains(x.RunningId)).ToList();
if (deleteMaints.Count > 0)
{
add = true;
model = new Model.Running_LogManagement();
model.RunningId = Guid.NewGuid().ToString();
model.ProjectId = this.CurrUser.LoginProjectId;
model.InstallationId = sysmodel.InstallationId;
model.ProcessesId = sysmodel.ProcessesId;
model.SystemId = this.SystemId;
model.AddUser = this.CurrUser.UserId;
model.AddTime = DateTime.Now;
Funs.DB.Running_Maintenance.DeleteAllOnSubmit(deleteMaints);
Funs.DB.SubmitChanges();
}
model.JobNo = txtJobNo.Text;
model.ShiftType = ddlShiftType.SelectedValue;
model.ShiftUser = ddlShiftUser.SelectedValue;
model.SuccessionUser = ddlSuccessionUser.SelectedValue;
model.StartData = DateTime.Parse(txtStartData.Text);
model.EndData = DateTime.Parse(txtEndData.Text);
model.IsDesalinated = rdbOperation.SelectedValueArray.Contains("1") ? 1 : 0;
model.DesalinatedSituation = txtDesalinatedSituation.Text;
model.DesalinatedRemarks = txtDesalinatedRemarks.Text;
model.IsLoop = rdbOperation.SelectedValueArray.Contains("2") ? 1 : 0;
model.LoopSituation = txtLoopSituation.Text;
model.LoopRemarks = txtLoopRemarks.Text;
model.IsSteam = rdbOperation.SelectedValueArray.Contains("3") ? 1 : 0;
model.SteamSituation = txtSteamSituation.Text;
model.SteamRemarks = txtSteamRemarks.Text;
model.IsAirCompression = rdbOperation.SelectedValueArray.Contains("4") ? 1 : 0;
model.AirCompressionSituation = txtAirCompressionSituation.Text;
model.AirCompressionRemarks = txtAirCompressionRemarks.Text;
model.IsCompoundAmmonia = rdbOperation.SelectedValueArray.Contains("5") ? 1 : 0;
model.CompoundAmmoniaSituation = txtCompoundAmmoniaSituation.Text;
model.CompoundAmmoniaRemarks = txtCompoundAmmoniaRemarks.Text;
model.IsUrea = rdbOperation.SelectedValueArray.Contains("6") ? 1 : 0;
model.UreaSituation = txtUreaSituation.Text;
model.UreaRemarks = txtUreaRemarks.Text;
model.HandoverCare = txtHandoverCare.Text;
model.OperationReason = txtOperationReason.Text;
model.OperationHandle = txtOperationHandle.Text;
model.MaintenanceReason = txtMaintenanceReason.Text;
model.MaintenanceHandle = txtMaintenanceHandle.Text;
if (add) Funs.DB.Running_LogManagement.InsertOnSubmit(model);
Funs.DB.Running_Operation.InsertAllOnSubmit(addoptionlist);
Funs.DB.Running_Maintenance.InsertAllOnSubmit(addmaintenancelist);
Funs.DB.SubmitChanges();
ShowNotify("操作成功!", MessageBoxIcon.Success);
PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference());
}
/// <summary>
/// 日志管理绑定
/// </summary>
public void DataBrid(List<Running_LogManagementDto> list = null)
{
if (list == null) list = new List<Running_LogManagementDto>();
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
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);
gvSystemOption.DataSource = list;
gvSystemOption.DataBind();
}
/// <summary>
/// 获取绑定集合
/// </summary>
private List<Running_LogManagementDto> gvSystemOptionLs()
{
List<Running_LogManagementDto> massQuestionLs = new List<Running_LogManagementDto>();
JArray mergedData = gvSystemOption.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.gvSystemOption.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(),
Situation = values.Value<string>("Situation"),
Remarks = values.Value<string>("Remarks"),
AddUser = CurrUser.UserId,
AddTime = DateTime.Now,
});
}
return massQuestionLs;
}
public class Running_LogManagementDto : Running_LogManagement
{
public string SystemName { get; set; }
}
#region
/// <summary>
/// 操作问题绑定
/// </summary>
public void gvOperationBrid()
{
var list = Funs.DB.Running_Operation.Where(x => x.RunningId == this.RunningId).ToList();
gvOperation.DataSource = list;
gvOperation.DataBind();
}
/// <summary>
/// 操作问题集合
/// </summary>
private List<Running_Operation> gvOperationLs()
{
List<Running_Operation> massQuestionLs = new List<Running_Operation>();
JArray mergedData = gvOperation.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_Operation
{
OperationId = IsStrVal(this.gvOperation.Rows[i].DataKeys[0]),
RunningId = IsStrVal(this.gvOperation.Rows[i].DataKeys[1]),
ProjectId = this.CurrUser.LoginProjectId,
InstallationId = IsStrVal(this.gvOperation.Rows[i].DataKeys[2]),
ProcessesId = IsStrVal(this.gvOperation.Rows[i].DataKeys[3]),
SystemId = IsStrVal(this.gvOperation.Rows[i].DataKeys[4]),
OperationReason = values.Value<string>("OperationReason"),
OperationHandle = values.Value<string>("OperationHandle"),
AddUser = CurrUser.UserId,
AddTime = DateTime.Now,
Sort = i
});
}
return massQuestionLs;
}
/// <summary>
/// 维护问题删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void gvOperation_RowCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
string rowID = e.RowID;
var model = Funs.DB.Running_Operation.FirstOrDefault(p => p.OperationId == rowID);
if (model != null)
{
Funs.DB.Running_Operation.DeleteOnSubmit(model);
Funs.DB.SubmitChanges();
gvOperationBrid();
ShowNotify("删除成功!");
}
else
{
var list = gvOperationLs();
list.RemoveAll(x => x.OperationId == rowID);
gvOperation.DataSource = list;
gvOperation.DataBind();
ShowNotify("删除成功!");
}
}
}
/// <summary>
/// 新增
/// </summary>
protected void btnOperationAdd_Click(object sender, EventArgs e)
{
var list = gvOperationLs();
Running_Operation model = new Running_Operation
{
OperationId = Guid.NewGuid().ToString()
};
list.Add(model);
this.gvOperation.DataSource = list;
this.gvOperation.DataBind();
}
#endregion
#region
/// <summary>
/// 维护问题绑定
/// </summary>
public void gvMaintenanceBrid()
{
var list = Funs.DB.Running_Maintenance.Where(x => x.RunningId == this.RunningId).ToList();
gvMaintenance.DataSource = list;
gvMaintenance.DataBind();
}
/// <summary>
/// 维护问题集合
/// </summary>
private List<Running_Maintenance> gvMaintenanceLs()
{
List<Running_Maintenance> massQuestionLs = new List<Running_Maintenance>();
JArray mergedData = gvMaintenance.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_Maintenance
{
MaintenanceId = IsStrVal(this.gvMaintenance.Rows[i].DataKeys[0]),
RunningId = IsStrVal(this.gvMaintenance.Rows[i].DataKeys[1]),
ProjectId = this.CurrUser.LoginProjectId,
InstallationId = IsStrVal(this.gvMaintenance.Rows[i].DataKeys[2]),
ProcessesId = IsStrVal(this.gvMaintenance.Rows[i].DataKeys[3]),
SystemId = IsStrVal(this.gvMaintenance.Rows[i].DataKeys[4]),
MaintenanceReason = values.Value<string>("MaintenanceReason"),
MaintenanceHandle = values.Value<string>("MaintenanceHandle"),
AddUser = CurrUser.UserId,
AddTime = DateTime.Now,
Sort = i
});
}
return massQuestionLs;
}
/// <summary>
/// 维护问题删除
/// </summary>
protected void gvMaintenance_RowCommand(object sender, GridCommandEventArgs e)
{
if (e.CommandName == "Delete")
{
string rowID = e.RowID;
var model = Funs.DB.Running_Maintenance.FirstOrDefault(p => p.MaintenanceId == rowID);
if (model != null)
{
Funs.DB.Running_Maintenance.DeleteOnSubmit(model);
Funs.DB.SubmitChanges();
gvMaintenanceBrid();
ShowNotify("删除成功!");
}
else
{
var list = gvMaintenanceLs();
list.RemoveAll(x => x.MaintenanceId == rowID);
gvMaintenance.DataSource = list;
gvMaintenance.DataBind();
ShowNotify("删除成功!");
}
}
}
/// <summary>
/// 新增
/// </summary>
protected void btnMaintenanceAdd_Click(object sender, EventArgs e)
{
var list = gvMaintenanceLs();
Running_Maintenance model = new Running_Maintenance
{
MaintenanceId = Guid.NewGuid().ToString()
};
list.Add(model);
this.gvMaintenance.DataSource = list;
this.gvMaintenance.DataBind();
}
#endregion
public string IsStrVal(object value)
{
var result = string.Empty;
if (value != null) result = value.ToString();
return result;
}
}
}