运行日志调整提交

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

View File

@ -62,21 +62,21 @@
</f:FormRow>
<f:FormRow>
<Items>
<f:CheckBoxList ID="rdbOperation" AutoPostBack="true" OnSelectedIndexChanged="rdbOperation_SelectedIndexChanged" DataTextField="Text" DataValueField="Value"
Label="系统选项" ColumnNumber="3" runat="server" ShowRedStar="true" Required="true" DisplayType="Switch" SwitchTextVisible="true">
</f:CheckBoxList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel4" Title="系统项" ShowBorder="true" BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true"
<f:ContentPanel ID="ContentPanel4" Title="装置运行情况" ShowBorder="true" BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true"
runat="server">
<f:Form ID="Form5" ShowBorder="false" ShowHeader="false" AutoScroll="true"
BodyPadding="10px" runat="server" RedStarPosition="BeforeText" LabelAlign="Right">
<Rows>
<f:FormRow>
<Items>
<f:Grid ID="gvSystemOption" ShowBorder="true" ShowHeader="false" runat="server" Height="400px"
<f:CheckBoxList ID="rdbEngineeringOperation" AutoPostBack="true" OnSelectedIndexChanged="rdbEngineeringOperation_SelectedIndexChanged" DataTextField="Text" DataValueField="Value"
Label="公用工程" ColumnNumber="3" runat="server" DisplayType="Switch" SwitchTextVisible="true">
</f:CheckBoxList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Grid ID="gvEngineeringOption" ShowBorder="true" ShowHeader="false" runat="server" Height="300px"
AllowCellEditing="true" ClicksToEdit="1" DataIDField="RunningId" ForceFit="true"
DataKeyNames="RunningId,InstallationId,ProcessesId,SystemId,SystemName" EnableMultiSelect="false" ShowGridHeader="true"
EnableColumnLines="true">
@ -102,12 +102,48 @@
</f:Grid>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:CheckBoxList ID="rdbDeviceOption" AutoPostBack="true" OnSelectedIndexChanged="rdbDeviceOption_SelectedIndexChanged" DataTextField="Text" DataValueField="Value"
Label="工艺装置" ColumnNumber="3" runat="server" DisplayType="Switch" SwitchTextVisible="true">
</f:CheckBoxList>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:Grid ID="gvDeviceOption" ShowBorder="true" ShowHeader="false" runat="server" Height="300px"
AllowCellEditing="true" ClicksToEdit="1" DataIDField="RunningId" ForceFit="true"
DataKeyNames="RunningId,InstallationId,ProcessesId,SystemId,SystemName" EnableMultiSelect="false" ShowGridHeader="true"
EnableColumnLines="true">
<Columns>
<f:RowNumberField EnablePagingNumber="true" HeaderText="序号" Width="50px" HeaderTextAlign="Center"
TextAlign="Center" />
<f:RenderField Width="150px" ColumnID="SystemName" DataField="SystemName" HeaderText="系统名称"
HeaderTextAlign="Center" TextAlign="Left">
</f:RenderField>
<f:RenderField Width="300px" ColumnID="Situation" DataField="Situation" FieldType="String"
HeaderText="运行情况" HeaderTextAlign="Center" TextAlign="Left">
<Editor>
<f:TextArea runat="server" ID="TextArea1"></f:TextArea>
</Editor>
</f:RenderField>
<f:RenderField Width="300px" ColumnID="Remarks" DataField="Remarks" FieldType="String"
HeaderText="备注" HeaderTextAlign="Center" TextAlign="Left">
<Editor>
<f:TextArea runat="server" ID="TextArea2"></f:TextArea>
</Editor>
</f:RenderField>
</Columns>
</f:Grid>
</Items>
</f:FormRow>
</Rows>
</f:Form>
</f:ContentPanel>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel5" Title="交班注意" ShowBorder="true" BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true"
@ -126,7 +162,6 @@
</f:ContentPanel>
</Items>
</f:FormRow>
<f:FormRow>
<Items>
<f:ContentPanel ID="ContentPanel1" Title="操作问题" ShowBorder="true" BodyPadding="10px" EnableCollapse="true" ShowHeader="true" AutoScroll="true"
@ -240,9 +275,9 @@
//验证检查结果
function isValid() {
var gvOption = F('<%= gvSystemOption.ClientID %>');
var valid = true, modifiedData = gvOption.getMergedData();
//公用工程
var gvEngOption = F('<%= gvEngineeringOption.ClientID %>');
var valid = true, modifiedData = gvEngOption.getMergedData();
$.each(modifiedData, function (index, rowData) {
if (rowData.status === 'deleted') {
return true;
@ -252,7 +287,7 @@
F.alert({
message: '请输入运行情况!',
ok: function () {
gvOption.startEdit(rowData.id, 'Situation');
gvEngOption.startEdit(rowData.id, 'Situation');
}
});
valid = false;
@ -263,14 +298,45 @@
F.alert({
message: '请输入备注!',
ok: function () {
gvOption.startEdit(rowData.id, 'Remarks');
gvEngOption.startEdit(rowData.id, 'Remarks');
}
});
valid = false;
return false;
}
});
if (valid == false) return valid;
//工艺装置
var gvDeviceOption = F('<%= gvDeviceOption.ClientID %>');
var valid = true, modifiedData = gvDeviceOption.getMergedData();
$.each(modifiedData, function (index, rowData) {
if (rowData.status === 'deleted') {
return true;
}
var situation = rowData.values['Situation'];
if (typeof (situation) != 'undefined' && $.trim(situation) == '') {
F.alert({
message: '请输入运行情况!',
ok: function () {
gvDeviceOption.startEdit(rowData.id, 'Situation');
}
});
valid = false;
return false;
}
var remarks = rowData.values['Remarks'];
if (typeof (remarks) != 'undefined' && $.trim(remarks) == '') {
F.alert({
message: '请输入备注!',
ok: function () {
gvDeviceOption.startEdit(rowData.id, 'Remarks');
}
});
valid = false;
return false;
}
});
if (valid == false) return valid;
//操作问题
var gvOperation = F('<%= gvOperation.ClientID %>');
var valid = true, modifiedData = gvOperation.getMergedData();
@ -301,7 +367,7 @@
return false;
}
});
if (valid == false) return valid;
//维护问题
var gvMaintenance = F('<%= gvMaintenance.ClientID %>');
var valid = true, modifiedData = gvMaintenance.getMergedData();

View File

@ -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,

View File

@ -140,15 +140,6 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </remarks>
protected global::FineUIPro.DatePicker txtEndData;
/// <summary>
/// rdbOperation 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.CheckBoxList rdbOperation;
/// <summary>
/// ContentPanel4 控件。
/// </summary>
@ -168,13 +159,22 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
protected global::FineUIPro.Form Form5;
/// <summary>
/// gvSystemOption 控件。
/// rdbEngineeringOperation 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid gvSystemOption;
protected global::FineUIPro.CheckBoxList rdbEngineeringOperation;
/// <summary>
/// gvEngineeringOption 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid gvEngineeringOption;
/// <summary>
/// txtSituation 控件。
@ -194,6 +194,42 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </remarks>
protected global::FineUIPro.TextArea txtRemarks;
/// <summary>
/// rdbDeviceOption 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.CheckBoxList rdbDeviceOption;
/// <summary>
/// gvDeviceOption 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Grid gvDeviceOption;
/// <summary>
/// TextArea1 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea TextArea1;
/// <summary>
/// TextArea2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.TextArea TextArea2;
/// <summary>
/// ContentPanel5 控件。
/// </summary>

View File

@ -44,6 +44,11 @@
white-space: normal;
word-break: break-all;
}
.customlabel span {
color: red;
font-weight: bold;
}
</style>
</head>
<body>
@ -52,18 +57,8 @@
<f:Panel ID="Panel1" runat="server" Margin="5px" BodyPadding="5px" ShowBorder="false"
ShowHeader="false" Layout="Region" BoxConfigAlign="Stretch">
<Items>
<f:Panel runat="server" ID="panelLeftRegion" RegionPosition="Left" RegionSplit="true"
EnableCollapse="true" Width="300px" Title="巡检记录" ShowBorder="true" Layout="VBox"
ShowHeader="false" AutoScroll="true" BodyPadding="5px" IconFont="ArrowCircleLeft">
<Items>
<f:Tree ID="tvControlItem" ShowHeader="false" Title="工作包" OnNodeCommand="tvControlItem_NodeCommand"
runat="server" ShowBorder="false" EnableCollapse="true" EnableSingleClickExpand="true"
AutoLeafIdentification="true" EnableSingleExpand="false">
</f:Tree>
</Items>
</f:Panel>
<f:Grid ID="Grid1" ShowBorder="true" EnableAjax="false" ShowHeader="false" Title="运行日志管理" EnableCollapse="true"
runat="server" BoxFlex="1" DataKeyNames="RunningId" AllowCellEditing="true" ClicksToEdit="2" DataIDField="RunningId" AllowSorting="true" SortField="AddTime" SortDirection="DESC" OnSort="Grid1_Sort" EnableColumnLines="true" ForceFit="true" AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange" EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" AllowFilters="true" EnableTextSelection="True" EnableMultiSelect="false" EnableCheckBoxSelect="true">
runat="server" BoxFlex="1" DataKeyNames="RunningId" AllowCellEditing="true" ClicksToEdit="2" DataIDField="RunningId" AllowSorting="true" OnSort="Grid1_Sort" EnableColumnLines="true" ForceFit="true" AllowPaging="true" IsDatabasePaging="true" PageSize="10" OnPageIndexChange="Grid1_PageIndexChange" EnableRowDoubleClickEvent="true" OnRowDoubleClick="Grid1_RowDoubleClick" AllowFilters="true" EnableTextSelection="True" EnableMultiSelect="false" EnableCheckBoxSelect="true">
<Toolbars>
<f:Toolbar ID="Toolbar1" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
@ -72,8 +67,21 @@
<f:ListItem Text="白班" Value="1" />
<f:ListItem Text="夜班" Value="2" />
</f:DropDownList>
<f:DatePicker runat="server" Required="true" DateFormatString="yyyy-MM-dd" Label="开始日期" LabelAlign="Right" EmptyText="请选择开始日期"
ID="txtStartData">
</f:DatePicker>
<f:DatePicker ID="txtEndData" Required="true" Readonly="false" CompareControl="txtStartData" LabelAlign="Right" DateFormatString="yyyy-MM-dd"
CompareOperator="GreaterThan" CompareMessage="结束日期应该大于开始日期" Label="结束日期"
runat="server">
</f:DatePicker>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnQuery" ToolTip="查询" Text="查询" Icon="SystemSearch" runat="server" OnClick="btnQuery_Click"></f:Button>
</Items>
</f:Toolbar>
<f:Toolbar ID="Toolbar2" Position="Top" runat="server" ToolbarAlign="Left">
<Items>
<f:Label runat="server" ID="lblminTime" CssClass="customlabel"></f:Label>
<f:ToolbarFill runat="server"></f:ToolbarFill>
<f:Button ID="btnQuery" ToolTip="查询" Icon="SystemSearch" runat="server" OnClick="btnQuery_Click"></f:Button>
<f:Button ID="btnAdd" Icon="Add" Text="添加" ToolTip="处理" runat="server" OnClick="btnAdd_Click"></f:Button>
<f:Button ID="btnModify" Text="修改" ToolTip="修改" Icon="Pencil" runat="server" OnClick="btnModify_Click"></f:Button>
<f:Button ID="btnDel" Text="删除" ToolTip="删除" Icon="Delete" runat="server" OnClick="btnDel_Click" ConfirmText="是否确认删除?"></f:Button>
@ -84,7 +92,7 @@
<Columns>
<f:RowNumberField />
<f:RenderField ColumnID="ProjectName" DataField="ProjectName" HeaderText="项目名称" HeaderTextAlign="Center">
</f:RenderField>
</f:RenderField>
<f:RenderField ColumnID="InstallationName" DataField="InstallationName" HeaderText="装置名称" HeaderTextAlign="Center">
</f:RenderField>
<f:RenderField ColumnID="ProcessesName" DataField="ProcessesName" HeaderText="工序名称" HeaderTextAlign="Center">

View File

@ -24,82 +24,10 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
if (!IsPostBack)
{
//绑定数据
InitTreeMenu();
BindGrid();
}
}
#region
/// <summary>
/// 加载树
/// </summary>
private void InitTreeMenu()
{
this.tvControlItem.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "检查表";
rootNode.NodeID = "0";
rootNode.Expanded = true;
rootNode.ToolTip = "";
rootNode.EnableClickEvent = true;
this.tvControlItem.Nodes.Add(rootNode);
var alllist = Funs.DB.PreRun_SysDevice.Where(x => x.ProjectId == this.CurrUser.LoginProjectId && x.PreRunLevel != 4).ToList();
if (alllist.Count() > 0)
{
var onelist = alllist.Where(x => x.PreRunLevel == 1).ToList();
foreach (var itemOne in onelist)
{
TreeNode rootOneNode = new TreeNode();
rootOneNode.NodeID = itemOne.PreRunId;
rootOneNode.Text = itemOne.PreRunName;
rootOneNode.ToolTip = itemOne.PreRunName;
rootOneNode.CommandName = "";
rootOneNode.EnableClickEvent = true;
rootOneNode.EnableExpandEvent = false;
rootNode.Nodes.Add(rootOneNode);
rootOneNode.Expanded = true;
var twolist = alllist.Where(x => x.PreRunLevel == 2 && x.ParentId == itemOne.PreRunId).ToList();
foreach (var itemTwo in twolist)
{
TreeNode rootTwoNode = new TreeNode();
rootTwoNode.NodeID = itemOne.PreRunId + "|" + itemTwo.PreRunId;
rootTwoNode.Text = itemTwo.PreRunName;
rootTwoNode.ToolTip = itemTwo.PreRunName;
rootTwoNode.CommandName = "";
rootTwoNode.EnableClickEvent = true;
rootTwoNode.EnableExpandEvent = false;
rootOneNode.Nodes.Add(rootTwoNode);
rootTwoNode.Expanded = true;
var threelist = alllist.Where(x => x.PreRunLevel == 3 && x.ParentId == itemTwo.PreRunId).ToList();
foreach (var itemThree in threelist)
{
TreeNode rootThreeNode = new TreeNode();
rootThreeNode.NodeID = itemOne.PreRunId + "|" + itemTwo.PreRunId + "|" + itemThree.PreRunId;
rootThreeNode.Text = itemThree.PreRunName;
rootThreeNode.ToolTip = itemThree.PreRunName;
rootThreeNode.CommandName = "";
rootThreeNode.EnableClickEvent = true;
rootThreeNode.EnableExpandEvent = false;
rootTwoNode.Nodes.Add(rootThreeNode);
rootThreeNode.Expanded = true;
}
}
}
}
}
/// <summary>
/// 点击TreeView
/// </summary>
protected void tvControlItem_NodeCommand(object sender, TreeCommandEventArgs e)
{
this.BindGrid();
}
#endregion
#region
/// <summary>
@ -107,42 +35,42 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </summary>
public void BindGrid()
{
var years = DateTime.Now.Year;
string strSql = @"select a.RunningId,a.ProjectId,project.ProjectName as ProjectName,a.InstallationId,a.ProcessesId,a.SystemId,inst.PreRunName as InstallationName,proce.PreRunName as ProcessesName,syst.PreRunName as SystemName,a.JobNo,a.ShiftType,(case a.ShiftType when 1 then '白班' else '夜班' end) as ShiftTypeName,a.ShiftUser,shiftuser.UserName as ShiftUserName,a.SuccessionUser,successuser.UserName as SuccessionUserName,a.StartData,a.EndData,a.AddUser,a.AddTime,a.Sort from Running_LogManagement as a inner join Sys_User as shiftuser on shiftuser.UserId=a.ShiftUser inner join Sys_User as successuser on successuser.UserId=a.SuccessionUser inner join Base_Project as project on project.ProjectId=a.ProjectId inner join PreRun_SysDevice as inst on inst.PreRunId=a.InstallationId inner join PreRun_SysDevice as proce on proce.PreRunId=a.ProcessesId inner join PreRun_SysDevice as syst on syst.PreRunId=a.SystemId where a.ProjectId=@ProjectId ";
List<SqlParameter> listStr = new List<SqlParameter>();
listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId));
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 0)
if (!string.IsNullOrWhiteSpace(txtStartData.Text))
{
var installationId = this.tvControlItem.SelectedNodeID.Split('|').First();
if (installationId != "0" && !string.IsNullOrWhiteSpace(installationId))
{
strSql += " and a.InstallationId=@InstallationId";
listStr.Add(new SqlParameter("@InstallationId", installationId));
}
strSql += " and a.StartData>=@StartData";
listStr.Add(new SqlParameter("@StartData", DateTime.Parse(txtStartData.Text).ToString("yyyy-MM-dd") + " 00:00:00"));
years = DateTime.Parse(txtStartData.Text).Year;
}
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 1)
if (!string.IsNullOrWhiteSpace(txtEndData.Text))
{
var processesId = this.tvControlItem.SelectedNodeID.Split('|')[1];
strSql += " and a.ProcessesId=@ProcessesId";
listStr.Add(new SqlParameter("@ProcessesId", processesId));
}
if (this.tvControlItem.SelectedNodeID.Split('|').Length > 2)
{
var systemId = this.tvControlItem.SelectedNodeID.Split('|').Last();
strSql += " and a.SystemId=@SystemId";
listStr.Add(new SqlParameter("@SystemId", systemId));
strSql += " and a.EndData<=@EndData";
listStr.Add(new SqlParameter("@EndData", DateTime.Parse(txtEndData.Text).ToString("yyyy-MM-dd") + " 23:59:59"));
}
if (!string.IsNullOrWhiteSpace(ddlShiftType.SelectedValue))
{
strSql += " and a.ShiftType=@ShiftType";
listStr.Add(new SqlParameter("@ShiftType", ddlShiftType.SelectedValue));
}
strSql += " order by a.AddTime asc";
strSql += " order by inst.PreRunLevel,inst.Sort,proce.Sort,syst.Sort asc";
SqlParameter[] parameter = listStr.ToArray();
DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter);
Grid1.RecordCount = tb.Rows.Count;
var table = this.GetPagedDataTable(Grid1, tb);
Grid1.DataSource = table;
Grid1.DataBind();
if (Funs.DB.Running_LogManagement.Count(x => x.StartData.Value.Year == years) > 0)
{
var minTime = Funs.DB.Running_LogManagement.Where(x => x.StartData.Value.Year == years).Min(m => m.StartData);
lblminTime.Text = $"{years}年日志最小日期:{minTime.Value.ToString("yyyy-MM-dd")}";
}
else
{
lblminTime.Text = $"{years}年无日志信息";
}
}
/// <summary>

View File

@ -41,24 +41,6 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </remarks>
protected global::FineUIPro.Panel Panel1;
/// <summary>
/// panelLeftRegion 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Panel panelLeftRegion;
/// <summary>
/// tvControlItem 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Tree tvControlItem;
/// <summary>
/// Grid1 控件。
/// </summary>
@ -86,6 +68,24 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </remarks>
protected global::FineUIPro.DropDownList ddlShiftType;
/// <summary>
/// txtStartData 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtStartData;
/// <summary>
/// txtEndData 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.DatePicker txtEndData;
/// <summary>
/// btnQuery 控件。
/// </summary>
@ -95,6 +95,24 @@ namespace FineUIPro.Web.TestRun.ProduceTestRun
/// </remarks>
protected global::FineUIPro.Button btnQuery;
/// <summary>
/// Toolbar2 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Toolbar Toolbar2;
/// <summary>
/// lblminTime 控件。
/// </summary>
/// <remarks>
/// 自动生成的字段。
/// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。
/// </remarks>
protected global::FineUIPro.Label lblminTime;
/// <summary>
/// btnAdd 控件。
/// </summary>