123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233 |
- using NEIntelligentControl2.Models.Alarm;
- using NEIntelligentControl2.Models.Messages;
- using NEIntelligentControl2.Service.User;
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Configuration;
- 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.Shapes;
- namespace NEIntelligentControl2.Windows.Alarm
- {
- /// <summary>
- /// 设备报警详情
- /// </summary>
- public partial class DeviceDetailAlarmWindow : Window
- {
- /// <summary>
- /// 故障信息
- /// </summary>
- public FaultInfo FaultInfo { get; private set; }
- /// <summary>
- /// 是否需要确认
- /// </summary>
- public bool IsConfirm { get; set; }
- private WEBHelper _WEBHelper;
- private UserManager _UserManager;
- private string _Url;
- private List<DeviceAlarmInfo> _DeviceAlarmInfoList;
- public DeviceDetailAlarmWindow(WEBHelper web, UserManager um)
- {
- InitializeComponent();
- _WEBHelper = web;
- _UserManager = um;
- InitUrl();
- }
- private void InitUrl()
- {
- try
- {
- #if(DEBUG)
- _Url = ConfigurationManager.AppSettings["ServicePathDebug"];
- #else
- _Url = ConfigurationManager.AppSettings["ServicePath"];
- #endif
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- }
- private void Border_MouseDown(object sender, MouseButtonEventArgs e)
- {
- try
- {
- this.DragMove();
- }
- catch { }
- }
- private void ContentControl_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
- {
- switch (((FrameworkElement)sender).Tag)
- {
- case "close":
- this.Close();
- break;
- case "maximized":
- Maximized();
- break;
- default: return;
- }
- }
- private void Maximized()
- {
- if (this.WindowState == WindowState.Maximized)
- {
- this.WindowState = WindowState.Normal;
- }
- else
- {
- this.WindowState = WindowState.Maximized;
- }
- }
- /// <summary>
- /// 显示窗口
- /// </summary>
- internal static bool Show(FaultInfo faultInfo, bool isConfirm = false)
- {
- var ddaw = App.ServiceProvider.GetService(typeof(DeviceDetailAlarmWindow)) as DeviceDetailAlarmWindow; ;
- ddaw.FaultInfo = faultInfo;
- ddaw.IsConfirm = isConfirm;
- ddaw.Owner = Application.Current.MainWindow;
- ddaw._TBTitle.Text = $"设备报警详情 -- [{faultInfo.ObjectName}]";
- var b = ddaw.ShowDialog();
- return b == true;
- }
- private void window_Loaded(object sender, RoutedEventArgs e)
- {
- Task.Run(InitData);
- }
- private void InitData()
- {
- if (FaultInfo == null) return;
- string obj;
- if (FaultInfo.Category1 == "SYZ" || FaultInfo.Category1 == "STATION" || FaultInfo.Category1 == "GF")
- {
- obj = $"{FaultInfo.StationId}&cateGory1=SYZ";
- }
- else
- {
- obj = $"{FaultInfo.WindturbineId}&cateGory1=windturbine";
- }
- var url = $"{_Url}/alarm/real-time-alarm?objectId={obj}";
- var vs = _WEBHelper.HttpGetJSON<List<DeviceAlarmInfo>>(url);
- _DeviceAlarmInfoList = vs;
- Dispatcher.Invoke(() => _DGMain.ItemsSource = vs);
- }
- private void _DGMain_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
- {
- if (e.AddedCells.Count <= 0) return;
- var vv = e.AddedCells[0].Item as DeviceAlarmInfo;
- if (vv == null) return;
- foreach (var v in _DeviceAlarmInfoList)
- {
- v.IsSelected = v == vv;
- }
- }
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- switch (((Control)sender).Tag)
- {
- case "generate":// 生成缺陷单
- Generate();
- break;
- case "ok":// 确认
- Confrom();
- break;
- default: return;
- }
- }
- /// <summary>
- /// 确认
- /// </summary>
- private void Confrom()
- {
- SendConfirmInfo();
- }
- private DeviceAlarmInfo GetSelectedItem()
- {
- foreach (var v in _DeviceAlarmInfoList)
- {
- if (v.IsSelected) return v;
- }
- return null;
- }
- /// <summary>
- /// 生成缺陷单
- /// </summary>
- private void Generate()
- {
- SendConfirmInfo();
- }
- private void SendConfirmInfo()
- {
- if (!_UserManager.IsLogined)
- {
- bool b = _UserManager.TempLogin();
- if (!b) return;
- }
- this.Close();
- try
- {
- string s = _WEBHelper.HttpGetString($"{_Url}/alarm/confirm?snapID={FaultInfo.SnapID}&faultID={FaultInfo.Id}&userName={_UserManager.User.Name}");
- }catch(Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- }
- }
- class DeviceAlarmInfo : INotifyPropertyChanged
- {
- public long Id { get; set; }
- public string ObjectId { get; set; }
- public string ObjectName { get; set; }
- public long SnapId { get; set; }
- public DateTime LastUpdateTime { get; set; }
- public string AlertText { get; set; }
- public string RankName { get; set; }
- public string CategoryName { get; set; }
- public string FaultCause { get; set; }
- public string HaltType { get; set; }
- public string FaultCategory { get; set; }
- public string LastUpdateTimeString { get => LastUpdateTime.ToString("yyyy-MM-dd HH:mm:ss"); }
- private bool isSelected;
- public bool IsSelected { get => isSelected; set { isSelected = value; OnPropertyChanged(); } }
- public event PropertyChangedEventHandler PropertyChanged;
- protected void OnPropertyChanged([System.Runtime.CompilerServices.CallerMemberName] string name = null)
- {
- PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
- }
- }
- }
|