using CommonFunc.Tools; using System; using System.Collections.Generic; using System.Data; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; using XGL.Data.DBService; using XGL.Tools; using System.Timers; namespace XGL.Views { /// /// DryingRoomUC.xaml 的交互逻辑 /// public partial class DryingRoomUC : UserControl { DringRoomService dringRoomService = new DringRoomService(); Timer timerDeciveState = new Timer(); string deviceCode = ""; public DryingRoomUC() { InitializeComponent(); } private void UserControl_Loaded(object sender, RoutedEventArgs e) { timerDeciveState.Interval = Utils.GetAppSetting("GetDeviceStateInterval") == "" ? 15000 : Convert.ToInt32(Utils.GetAppSetting("GetDeviceStateInterval")); timerDeciveState.Elapsed += TimerDeciveState_Elapsed; timerDeciveState.Start(); InitComBoboxData(); GetDringRoomData(); GetOutDringRoomData(); GetDeviceInfo(); } private void GetDeviceInfo() { TimerDeciveState_Elapsed(null,null); } private void TimerDeciveState_Elapsed(object sender, ElapsedEventArgs e) { DataTable dt = dringRoomService.GetTemperAndHumilly(deviceCode); if (dt == null) { //使用Dispatcher来在UI线程上更新UI this.Dispatcher.Invoke( new Action(() => { lbCurrTemperature.Content = "0"; lbCurrHumilly.Content = "0"; } ), System.Windows.Threading.DispatcherPriority.Render); } else { //使用Dispatcher来在UI线程上更新UI this.Dispatcher.Invoke( new Action(() => { lbCurrTemperature.Content = dt.Rows[0][0].ToString(); lbCurrHumilly.Content = dt.Rows[1][0].ToString(); } ), System.Windows.Threading.DispatcherPriority.Render); } //if (dt.Rows[0][0].ToString() == "1") //{ // this.Dispatcher.Invoke( // new Action(() => { LbDeviceState.Background = Brushes.Green; } // ), // System.Windows.Threading.DispatcherPriority.Render); //} //else //{ // this.Dispatcher.Invoke( // new Action(() => { LbDeviceState.Background = Brushes.Red; } // ), // System.Windows.Threading.DispatcherPriority.Render); //} } private void GetDringRoomData() { DringRoomListBox.ItemsSource = null; DringRoomListBox.Items.Clear(); DataTable dt = dringRoomService.GetDringRoomData(deviceCode, 1); if (dt == null) { return; } int index = 0; int i = 0; foreach (DataRow item in dt.Rows) { index = i++; string rfid = item["rfid_no"].ToString(); string workorder_code = item["workorder_code"].ToString(); string materialCode = item["material_code"].ToString(); string inTime = item["update_time"].ToString(); TimeSpan ts; ts = DateTime.Now - Convert.ToDateTime(inTime); int minuteDiff = Convert.ToInt32(ts.TotalMinutes); //string workorder_code = item["workorder_code"].ToString(); ModuleUC uc = new ModuleUC(index.ToString(), rfid, workorder_code, materialCode, minuteDiff); DringRoomListBox.Items.Add(uc); } //DringRoomListBox.ItemsSource = null; //DringRoomListBox.Items.Clear(); //DringRoomListBox.ItemsSource = dt.DefaultView; } private void GetOutDringRoomData() { DringRoomOuterListBox.ItemsSource = null; DringRoomOuterListBox.Items.Clear(); DataTable dt = dringRoomService.GetDringRoomData(deviceCode, 0); if (dt == null) { return; } int index = 0; int i = 0; foreach (DataRow item in dt.Rows) { index = i++; string rfid = item["rfid_no"].ToString(); string workorder_code = item["workorder_code"].ToString(); string materialCode = item["material_code"].ToString(); string inTime = item["update_time"].ToString(); TimeSpan ts; ts = DateTime.Now - Convert.ToDateTime(inTime); int minuteDiff = Convert.ToInt32(ts.TotalMinutes); //string workorder_code = item["workorder_code"].ToString(); ModuleUC uc = new ModuleUC(index.ToString(), rfid, workorder_code, materialCode, minuteDiff); DringRoomOuterListBox.Items.Add(uc); } } private void InitComBoboxData() { DataTable dt = dringRoomService.GetDringRoomInfo(Utils.GetAppSetting("DryingHouseList")); if (dt == null) { CustomMessageBox.Show("没有维护设备信息,请维护设备后重试!", CustomMessageBoxIcon.Warning); return; } List listEquip = Utils.ToDataList(dt); //comboDryRoomInfo.SelectedValuePath = "quipName"; //comboDryRoomInfo.DisplayMemberPath = "quipCode"; //comboDryRoomInfo.ItemsSource = listEquip; //绑定 comboDryRoomInfo.ItemsSource = listEquip; comboDryRoomInfo.SelectedValuePath = "quipCode"; comboDryRoomInfo.DisplayMemberPath = "quipName"; comboDryRoomInfo.SelectedIndex = 0; } private void comboDryRoomInfo_SelectionChanged(object sender, SelectionChangedEventArgs e) { string hfCode = comboDryRoomInfo.SelectedValue.ToString();//.Text; deviceCode = hfCode; GetDringRoomData(); GetOutDringRoomData(); GetDeviceInfo(); } private void btnRefrsh_Click(object sender, RoutedEventArgs e) { GetDringRoomData(); GetOutDringRoomData(); } } public class EquipmentMode { public int type { get; set; } public string quipCode { get; set; } public string quipName { get; set; } } }