using ComponentFactory.Krypton.Toolkit;
using NXWMS.Client.Code.Extends;
using NXWMS.Client.Model.AppModels.Condition;
using NXWMS.Client.Model.AppModels.Condition.Monitor;
using NXWMS.Client.Model.AppModels.Result;
using NXWMS.Client.Model.AppModels.Result.Common;
using NXWMS.Client.Model.CoreModels;
using NXWMS.Commons;
using NXWMS.Services;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Web.UI.WebControls;
using System.Windows.Forms;
namespace NXWMS.Forms.Monitor
{
///
/// 设备状态监控窗体
///
public partial class frmWcsMotBasDevStatus : KryptonForm
{
///
/// 窗体构造函数
///
public frmWcsMotBasDevStatus()
{
InitializeComponent();
// 获取窗体的全类名
_CrrentClassName = System.Reflection.MethodBase.GetCurrentMethod().DeclaringType.FullName;
}
#region 全局变量
///
/// 客户端字段排序列表(收货记录)
///
private List _clientFieldOrderList;
///
/// 当前窗体类名
///
private string _CrrentClassName;
#endregion
#region 初始化数据
///
/// 窗体加载函数
///
///
///
private void frmWcsMotBasDevStatus_Load(object sender, EventArgs e)
{
var result = ConfigServices.configService.GetDataViewOrderList(new ClientFieldOrderCondition { SourceCode = $"{_CrrentClassName}" });
if (result.Status == OperateStatus.Success)
{
_clientFieldOrderList = result.Data;
}
InitComboBoxItemData();
}
///
/// 初始化下拉列表数据
///
private void InitComboBoxItemData()
{
/*
ToDo:后续把下拉列表转为 后台获取数据,目前是写死的。
*/
List results = new List();
#region 设备类型
var devtypeResult = WcsMonitorService.wcsBaseService.GetDevTypeData();
if (devtypeResult.Status == OperateStatus.Success)
{
kcmb_DevTypeMsg.Items.Clear();
kcmb_DevTypeMsg.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (var item in devtypeResult.Data.ToList())
{
kcmb_DevTypeMsg.Items.Add(new ListItem
{
Value = item.DEV_TYPE_CODE,
Text = item.DEV_TYPE_NAME,
});
}
kcmb_DevTypeMsg.SelectedIndex = 0;
}
else
{
kcmb_DevTypeMsg.Items.Clear();
KryptonMessageBox.Show(devtypeResult.Message);
}
#endregion
#region OPC变量类型
results = BasDictionaryUtil.basDictionaryResultLst.FindAll(x => x.DICTIONARY_CODE == "OpcItemTypeDesc");
if (results.Count > 0)
{
kcmb_OpcItemTypeMsg.Items.Clear();
kcmb_OpcItemTypeMsg.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (var item in results)
{
kcmb_OpcItemTypeMsg.Items.Add(new ListItem
{
Value = item.DICTIONARY_ITEM_CODE,
Text = item.DICTIONARY_ITEM_NAME,
});
}
kcmb_OpcItemTypeMsg.SelectedIndex = 0;
}
else
{
KryptonMessageBox.Show("未找到下架单类型的字典项数据!");
}
#endregion
#region 所属PLC
var wcsBasPlcResult = WcsMonitorService.wcsBaseService.GetWcsPlcData();
if (wcsBasPlcResult.Status == OperateStatus.Success)
{
kcmb_PlcMsg.Items.Clear();
kcmb_PlcMsg.Items.Add(new ListItem
{
Value = "",
Text = "请选择",
});
foreach (var item in wcsBasPlcResult.Data.ToList())
{
kcmb_PlcMsg.Items.Add(new ListItem
{
Value = item.PLC_CODE,
Text = item.PLC_NAME,
});
}
kcmb_PlcMsg.SelectedIndex = 0;
}
else
{
kcmb_PlcMsg.Items.Clear();
KryptonMessageBox.Show(wcsBasPlcResult.Message);
}
#endregion
}
#endregion
#region 按钮事件
///
/// 查询按钮事件
///
///
///
private void kbtnSearch_Click(object sender, EventArgs e)
{
var loadfrm = new frmLoading();
loadfrm.Show();
var message = loadfrm.EventCalExec(LoadWcsMotBasDevStatusData);
}
///
/// 调用服务端接口,请求设备状态监控数据
///
///
private string LoadWcsMotBasDevStatusData()
{
var result = WcsMonitorService.wcsMotManageService.GetWcsMotOpcItemStatusData(new WcsMotOpcItemStatusSearchMd
{
DevTypeMsg = ((ListItem)kcmb_DevTypeMsg.SelectedItem).Value,
DevMsg = ktb_DevMsg.Text,
OpcGroupMsg = ktb_OpcGroupMsg.Text,
OpcItemTypeMsg = ((ListItem)kcmb_OpcItemTypeMsg.SelectedItem).Value,
PlcMsg = ((ListItem)kcmb_PlcMsg.SelectedItem).Value,
OpcItemMsg = ktb_OpcItemMsg.Text,
PageNum =this.pageToolbar1.PageIndex,
EveryPageQty =this.pageToolbar1.PageSize,
});
if (result.Status == OperateStatus.Success)
{
kdgv_WcsMotBasDevStatus.Columns.Clear();
kdgv_WcsMotBasDevStatus.DataSource = result.Data;
kdgv_WcsMotBasDevStatus.BuildDataGridView(_clientFieldOrderList.GetFieldOrderDic(), true, false);
kdgv_WcsMotBasDevStatus.ClearSelection();
this.pageToolbar1.DataCount = result.DataCount;
return string.Empty;
}
else
{
return result.Message;
}
}
///
/// 重置查询条件
///
///
///
private void kbtnReset_Click(object sender, EventArgs e)
{
kcmb_OpcItemTypeMsg.SelectedIndex = 0;
ktb_DevMsg.Text = "";
kcmb_DevTypeMsg.SelectedIndex = 0;
ktb_OpcGroupMsg.Text = "";
kcmb_PlcMsg.SelectedIndex = 0;
ktb_OpcItemMsg.Text = "";
}
///
/// 导出设备状态监控数据
///
///
///
private void kbtnExport_Click(object sender, EventArgs e)
{
this.kdgv_WcsMotBasDevStatus.DataGridViewExport($"{AppConfig.CurrentMenu.FirstOrDefault().MenuName}列表" + DateTime.Now.ToString("yyyyMMddHH"));
}
///
/// 打印设备状态监控数据
///
///
///
private void kbtnPrint_Click(object sender, EventArgs e)
{
}
#endregion
private void pageToolbar1_OnPageChange(int PageIndex, int PageSzie)
{
this.kbtnSearch_Click(null, null);
}
}
}