2023-11-13 11:52:43 +08:00
|
|
|
|
using log4net;
|
|
|
|
|
using Prism.Commands;
|
|
|
|
|
using Prism.Events;
|
|
|
|
|
using Prism.Mvvm;
|
|
|
|
|
using Prism.Regions;
|
|
|
|
|
using Prism.Services.Dialogs;
|
|
|
|
|
using SqlSugar;
|
|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Configuration;
|
|
|
|
|
using System.Linq;
|
|
|
|
|
using System.Text;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
using System.Windows;
|
|
|
|
|
using System.Windows.Controls;
|
|
|
|
|
using DM_Weight.Models;
|
|
|
|
|
using DM_Weight.Port;
|
|
|
|
|
using DM_Weight.util;
|
|
|
|
|
using DM_Weight.Views;
|
|
|
|
|
using System.Timers;
|
|
|
|
|
using Unity;
|
|
|
|
|
using System.Windows.Threading;
|
|
|
|
|
using Newtonsoft.Json.Linq;
|
2023-11-27 15:13:42 +08:00
|
|
|
|
using DM_Weight.msg;
|
2024-06-24 17:30:26 +08:00
|
|
|
|
using System.Threading;
|
2025-01-14 15:37:05 +08:00
|
|
|
|
using DM_Weight.Common;
|
2025-03-12 17:47:00 +08:00
|
|
|
|
using System.Windows.Media;
|
2025-05-27 10:27:47 +08:00
|
|
|
|
using MaterialDesignThemes.Wpf;
|
2023-11-13 11:52:43 +08:00
|
|
|
|
|
|
|
|
|
namespace DM_Weight.ViewModels
|
|
|
|
|
{
|
|
|
|
|
public class HomeWindowViewModel : BindableBase, IConfirmNavigationRequest, IRegionMemberLifetime
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
private readonly ILog logger = LogManager.GetLogger(typeof(HomeWindowViewModel));
|
|
|
|
|
private readonly IDialogService _dialogService;
|
|
|
|
|
private UserList? _userList;
|
|
|
|
|
private UserList? _userList2;
|
2024-07-08 11:44:31 +08:00
|
|
|
|
|
|
|
|
|
|
2024-06-24 17:30:26 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 冰箱温度
|
|
|
|
|
/// </summary>
|
|
|
|
|
private string _wd = "恒温冷藏抽屉当前温度2.8(非真实数据)";
|
|
|
|
|
public string WD { get => _wd; set => SetProperty(ref _wd, value); }
|
2025-03-12 17:47:00 +08:00
|
|
|
|
|
2025-03-13 10:14:36 +08:00
|
|
|
|
private SolidColorBrush _alertColor = Brushes.White;
|
2025-03-12 17:47:00 +08:00
|
|
|
|
public SolidColorBrush AlertColor
|
|
|
|
|
{
|
2025-03-13 10:14:36 +08:00
|
|
|
|
get => _alertColor;
|
2025-03-12 17:47:00 +08:00
|
|
|
|
set => SetProperty(ref _alertColor, value);
|
|
|
|
|
}
|
2024-06-24 17:30:26 +08:00
|
|
|
|
|
2024-07-06 15:17:15 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 是否有冰箱抽屉
|
|
|
|
|
/// </summary>
|
2024-07-08 11:44:31 +08:00
|
|
|
|
private string hasFridge = ConfigurationManager.AppSettings["hasFridge"].ToString().Equals("1") ? "Visible" : "Collapsed";
|
|
|
|
|
public string HasFridge { get => hasFridge; set => SetProperty(ref hasFridge, value); }
|
2023-11-13 11:52:43 +08:00
|
|
|
|
|
2025-03-12 17:47:00 +08:00
|
|
|
|
//温度区间
|
|
|
|
|
private string TemperatureRange = CommonClass.ReadAppSetting("temperatureRange").ToString();
|
|
|
|
|
//温度不在区间计时器(超过配置文件中的时间后要报警)
|
|
|
|
|
public DateTime? FridgeTime { get; set; }
|
|
|
|
|
//冰箱是否异常状态:0正常,1异常
|
|
|
|
|
//public string FridgeWorkingState = ConfigurationManager.AppSettings["FridgeworkingState"].ToString();
|
|
|
|
|
//冰箱开关状态:0开,1关
|
|
|
|
|
public string FridgeState = ConfigurationManager.AppSettings["FridgeState"].ToString();
|
|
|
|
|
//冰箱渡不在区间超时时间
|
|
|
|
|
private string _outRangeTime = ConfigurationManager.AppSettings["OutRangeTime"].ToString();
|
|
|
|
|
public string OutRangeTime { get => _outRangeTime; set => SetProperty(ref _outRangeTime, value); }
|
|
|
|
|
|
2023-11-13 11:52:43 +08:00
|
|
|
|
private int loginMode = Convert.ToInt32(ConfigurationManager.AppSettings["loginMode"]?.ToString() ?? "1");
|
|
|
|
|
public bool MultiLogin
|
|
|
|
|
{
|
|
|
|
|
get => loginMode == 2;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private PremissionDm? _selectedMenu;
|
|
|
|
|
|
|
|
|
|
private PremissionDm? _selectedChildMenu;
|
|
|
|
|
|
|
|
|
|
private List<PremissionDm>? _premissionDmList;
|
|
|
|
|
|
|
|
|
|
public PremissionDm? SelectedChildMenu
|
|
|
|
|
{
|
|
|
|
|
get { return _selectedChildMenu; }
|
|
|
|
|
set
|
|
|
|
|
{
|
2024-11-05 15:37:54 +08:00
|
|
|
|
//if (!_portUtil.Operate)
|
|
|
|
|
//{
|
|
|
|
|
// if (value != null)
|
|
|
|
|
// {
|
|
|
|
|
// if (value.PremissionPath.Equals("TakeRecordWindow"))
|
|
|
|
|
// {
|
|
|
|
|
// //定义传参变量
|
|
|
|
|
// NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
// //添加参数,键值对格式
|
|
|
|
|
// keys.Add("Type", 2);
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
|
|
|
|
// }
|
|
|
|
|
// else if (value.PremissionPath.Equals("AddRecordWindow"))
|
|
|
|
|
// {
|
|
|
|
|
// //定义传参变量
|
|
|
|
|
// NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
// //添加参数,键值对格式
|
|
|
|
|
// keys.Add("Type", 1);
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
|
|
|
|
// }
|
|
|
|
|
// else if (value.PremissionPath.Equals("ReturnRecordWindow"))
|
|
|
|
|
// {
|
|
|
|
|
// //定义传参变量
|
|
|
|
|
// NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
// //添加参数,键值对格式
|
|
|
|
|
// keys.Add("Type", 3);
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
|
|
|
|
// }
|
|
|
|
|
// else if (value.PremissionPath.Equals("RetrunEmptyRecordWindow"))
|
|
|
|
|
// {
|
|
|
|
|
// //定义传参变量
|
|
|
|
|
// NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
// //添加参数,键值对格式
|
|
|
|
|
// keys.Add("Type", 3);
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", value.PremissionPath, keys);
|
|
|
|
|
// }
|
|
|
|
|
// else if (value.PremissionPath.Equals("CheckRecordWindow"))
|
|
|
|
|
// {
|
|
|
|
|
// //定义传参变量
|
|
|
|
|
// NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
// //添加参数,键值对格式
|
|
|
|
|
// keys.Add("Type", 4);
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// if (value.PremissionPath.Equals("ReturnDrugWindow") || value.PremissionPath.Equals("ReturnDrugWindow2"))
|
|
|
|
|
// {
|
|
|
|
|
// if (ConfigurationManager.AppSettings["returnDrugMode"].ToString().Equals("1"))
|
|
|
|
|
// {
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow2");
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// else if (value.PremissionPath.Equals("SettingMainWindow") || value.PremissionPath.Equals("SettingWindow"))
|
|
|
|
|
// {
|
|
|
|
|
// //if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"])>0)
|
|
|
|
|
// //{
|
|
|
|
|
// // _regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
|
|
|
|
|
// //}
|
|
|
|
|
// //else
|
|
|
|
|
// {
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "SettingWindow");
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", value.PremissionPath);
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
2024-12-22 09:22:37 +08:00
|
|
|
|
SetProperty(ref _selectedChildMenu, value);
|
2024-11-05 15:37:54 +08:00
|
|
|
|
//}
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public PremissionDm? SelectedMenu
|
|
|
|
|
{
|
|
|
|
|
get { return _selectedMenu; }
|
|
|
|
|
set
|
|
|
|
|
{
|
2023-11-27 15:13:42 +08:00
|
|
|
|
//if (value != null)
|
|
|
|
|
//{
|
|
|
|
|
// if (value.PremissionName == "退出")
|
|
|
|
|
// {
|
|
|
|
|
// logger.Info($"用户【{Operator?.Nickname}】退出登录");
|
|
|
|
|
// Operator = null;
|
|
|
|
|
// Reviewer = null;
|
|
|
|
|
// _regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// SelectedChildMenu = value.Children[0];
|
|
|
|
|
// }
|
|
|
|
|
//}
|
2023-11-13 11:52:43 +08:00
|
|
|
|
SetProperty(ref _selectedMenu, value);
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-12-22 09:22:37 +08:00
|
|
|
|
PremissionDm? PreSelectedMenu;
|
2024-11-05 15:37:54 +08:00
|
|
|
|
#region 父菜单点击事件
|
2023-11-13 11:52:43 +08:00
|
|
|
|
|
2024-11-05 15:37:54 +08:00
|
|
|
|
#endregion
|
|
|
|
|
private DelegateCommand _selectionCommon;
|
|
|
|
|
public DelegateCommand SelectionCommon
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
2024-11-05 15:37:54 +08:00
|
|
|
|
get => _selectionCommon ?? (_selectionCommon = new DelegateCommand(SelectionMethod));
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
2024-11-05 15:37:54 +08:00
|
|
|
|
private void SelectionMethod()
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
2024-12-22 09:22:37 +08:00
|
|
|
|
|
|
|
|
|
if (SelectedMenu != null && SelectedMenu.PremissionName != "退出")
|
|
|
|
|
{
|
|
|
|
|
PreSelectedMenu = SelectedMenu;
|
|
|
|
|
}
|
|
|
|
|
if (_portUtil.Operate)
|
|
|
|
|
{
|
|
|
|
|
if (PreSelectedMenu != null)
|
|
|
|
|
{
|
|
|
|
|
SelectedMenu = PreSelectedMenu;
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-11-05 15:37:54 +08:00
|
|
|
|
//SelectedMenu = viewName.SelectedItem as PremissionDm;
|
|
|
|
|
//if (SelectedMenu.PremissionName == "退出")
|
|
|
|
|
//{
|
|
|
|
|
|
|
|
|
|
// _chkFunction.HIKStopDVRRecord();
|
|
|
|
|
// logger.Info($"用户【{Operator?.Nickname}】退出登录");
|
|
|
|
|
// Operator = null;
|
|
|
|
|
// Reviewer = null;
|
|
|
|
|
// _regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
|
|
|
|
//}
|
|
|
|
|
//else
|
|
|
|
|
//{
|
|
|
|
|
// //SelectedMenu.Children = SelectedMenu.Children;
|
|
|
|
|
// SelectedChildMenu = SelectedMenu.Children[0];
|
|
|
|
|
//}
|
|
|
|
|
logger.Info("开始进入父菜单");
|
2024-12-22 09:22:37 +08:00
|
|
|
|
if (SelectedMenu != null && SelectedMenu.PremissionName == "退出" && !_portUtil.Operate)
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
|
|
|
|
logger.Info($"用户【{Operator?.Nickname}】退出登录");
|
|
|
|
|
Operator = null;
|
|
|
|
|
Reviewer = null;
|
2024-11-05 15:52:25 +08:00
|
|
|
|
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2024-11-05 15:37:54 +08:00
|
|
|
|
if (!_portUtil.Operate)
|
|
|
|
|
{
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", SelectedMenu.Children[0].PremissionPath);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
logger.Info("结束父菜单");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#region
|
|
|
|
|
private DelegateCommand _selectionChildCommon;
|
|
|
|
|
public DelegateCommand SelectionChildCommon
|
|
|
|
|
{
|
|
|
|
|
get => _selectionChildCommon ?? (_selectionChildCommon = new DelegateCommand(SelectionChildMethod));
|
|
|
|
|
}
|
|
|
|
|
private void SelectionChildMethod()
|
|
|
|
|
{
|
|
|
|
|
SelectChildNavigate(SelectedChildMenu);
|
|
|
|
|
}
|
|
|
|
|
private void SelectChildNavigate(PremissionDm SelectedChildMenu)
|
|
|
|
|
{
|
|
|
|
|
if (!_portUtil.Operate)
|
|
|
|
|
{
|
|
|
|
|
if (SelectedChildMenu != null)
|
|
|
|
|
{
|
|
|
|
|
if (SelectedChildMenu.PremissionPath.Equals("TakeRecordWindow"))
|
|
|
|
|
{
|
|
|
|
|
//定义传参变量
|
|
|
|
|
NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
//添加参数,键值对格式
|
|
|
|
|
keys.Add("Type", 2);
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
|
|
|
|
}
|
|
|
|
|
else if (SelectedChildMenu.PremissionPath.Equals("AddRecordWindow"))
|
|
|
|
|
{
|
|
|
|
|
//定义传参变量
|
|
|
|
|
NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
//添加参数,键值对格式
|
|
|
|
|
keys.Add("Type", 1);
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
|
|
|
|
}
|
|
|
|
|
else if (SelectedChildMenu.PremissionPath.Equals("ReturnRecordWindow"))
|
|
|
|
|
{
|
|
|
|
|
//定义传参变量
|
|
|
|
|
NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
//添加参数,键值对格式
|
|
|
|
|
keys.Add("Type", 3);
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
|
|
|
|
}
|
|
|
|
|
else if (SelectedChildMenu.PremissionPath.Equals("RetrunEmptyRecordWindow"))
|
|
|
|
|
{
|
|
|
|
|
//定义传参变量
|
|
|
|
|
NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
//添加参数,键值对格式
|
|
|
|
|
keys.Add("Type", 3);
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath, keys);
|
|
|
|
|
}
|
|
|
|
|
else if (SelectedChildMenu.PremissionPath.Equals("CheckRecordWindow"))
|
|
|
|
|
{
|
|
|
|
|
//定义传参变量
|
|
|
|
|
NavigationParameters keys = new NavigationParameters();
|
|
|
|
|
|
|
|
|
|
//添加参数,键值对格式
|
|
|
|
|
keys.Add("Type", 4);
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", "MachineRecordWindow", keys);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (SelectedChildMenu.PremissionPath.Equals("ReturnDrugWindow") || SelectedChildMenu.PremissionPath.Equals("ReturnDrugWindow2"))
|
|
|
|
|
{
|
|
|
|
|
if (ConfigurationManager.AppSettings["returnDrugMode"].ToString().Equals("1"))
|
|
|
|
|
{
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow2");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", "ReturnDrugWindow");
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-01-14 15:37:05 +08:00
|
|
|
|
//else if (SelectedChildMenu.PremissionPath.Equals("SettingMainWindow") || SelectedChildMenu.PremissionPath.Equals("SettingWindow"))
|
|
|
|
|
//{
|
|
|
|
|
// if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 0)
|
|
|
|
|
// {
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "SettingMainWindow");
|
|
|
|
|
// }
|
|
|
|
|
// else
|
|
|
|
|
// {
|
|
|
|
|
// _regionManager.RequestNavigate("ContentRegion", "SettingWindow");
|
|
|
|
|
// }
|
|
|
|
|
//}
|
2024-11-05 15:37:54 +08:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", SelectedChildMenu.PremissionPath);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-11-05 15:37:54 +08:00
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
2023-11-13 11:52:43 +08:00
|
|
|
|
public List<PremissionDm> PremissionDmList { get { return _premissionDmList; } set { SetProperty(ref _premissionDmList, value); } }
|
|
|
|
|
|
|
|
|
|
public UserList UserList { get { return _userList; } set { SetProperty(ref _userList, value); } }
|
|
|
|
|
public UserList UserList2 { get { return _userList2; } set { SetProperty(ref _userList2, value); } }
|
|
|
|
|
|
|
|
|
|
public static UserList? Operator;
|
|
|
|
|
public static UserList? Reviewer;
|
|
|
|
|
|
|
|
|
|
IRegionManager _regionManager;
|
|
|
|
|
IUnityContainer _container;
|
|
|
|
|
|
|
|
|
|
private bool _is16Drawer;
|
|
|
|
|
public bool Is16Drawer { get => _is16Drawer; set => SetProperty(ref _is16Drawer, value); }
|
|
|
|
|
public bool KeepAlive => false;
|
|
|
|
|
private PortUtil _portUtil;
|
2024-12-22 11:23:57 +08:00
|
|
|
|
//private CHKFunction _chkFunction;
|
2023-11-27 15:13:42 +08:00
|
|
|
|
IEventAggregator _eventAggregator;
|
2025-01-14 15:37:05 +08:00
|
|
|
|
bool IsLeave = false;
|
2024-12-22 11:23:57 +08:00
|
|
|
|
public HomeWindowViewModel(IRegionManager iRegionManager, PortUtil portUtil, IDialogService dialogService, IUnityContainer container, IEventAggregator eventAggregator)
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
|
|
|
|
_portUtil = portUtil;
|
|
|
|
|
_regionManager = iRegionManager;
|
|
|
|
|
_dialogService = dialogService;
|
|
|
|
|
_container = container;
|
2023-11-27 15:13:42 +08:00
|
|
|
|
this._eventAggregator = eventAggregator;
|
2024-12-22 11:23:57 +08:00
|
|
|
|
//_chkFunction = cHKFunction;
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public DelegateCommand<string> OpenFingerDialog
|
|
|
|
|
{
|
|
|
|
|
get => new DelegateCommand<string>((string Type) =>
|
|
|
|
|
{
|
|
|
|
|
DialogParameters dialogParameters = new DialogParameters();
|
|
|
|
|
dialogParameters.Add("User", Type.Equals("Operator") ? Operator : Reviewer);
|
|
|
|
|
DialogServiceExtensions.ShowDialogHost(_dialogService, "FingerprintDialog", dialogParameters, DoDialogResult, "RootDialog");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public DelegateCommand OpenRecoverCommand
|
|
|
|
|
{
|
|
|
|
|
get => new DelegateCommand(async () =>
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
_portUtil.WindowName = "HomeWindow";
|
|
|
|
|
_portUtil.Operate = true;
|
|
|
|
|
await _portUtil.OpenStorage();
|
|
|
|
|
_portUtil.ResetData();
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
logger.Info($"OpenRecoverCommand异常{ex.Message}");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public DelegateCommand<string> OpenEditPasswordDialog
|
|
|
|
|
{
|
|
|
|
|
get => new DelegateCommand<string>((string Type) =>
|
|
|
|
|
{
|
|
|
|
|
DialogParameters dialogParameters = new DialogParameters();
|
|
|
|
|
dialogParameters.Add("EditPass", true);
|
|
|
|
|
dialogParameters.Add("User", Type.Equals("Operator") ? Operator : Reviewer);
|
|
|
|
|
DialogServiceExtensions.ShowDialogHost(_dialogService, "EditUserDialog", dialogParameters, DoDialogResult, "RootDialog");
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
private void DoDialogResult(IDialogResult dialogResult)
|
|
|
|
|
{
|
|
|
|
|
// 委托 被动执行 被子窗口执行
|
|
|
|
|
// dialogResult 第一方面可以拿到任意参数 第二方面 可判断关闭状态
|
|
|
|
|
if (dialogResult.Result == ButtonResult.OK)
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public void FindDrawerCount()
|
|
|
|
|
{
|
2023-11-14 14:49:22 +08:00
|
|
|
|
int count = 0;
|
|
|
|
|
if (ConfigurationManager.AppSettings["MultiBatch"].ToString().Equals("1"))
|
|
|
|
|
{
|
|
|
|
|
count = SqlSugarHelper.Db.Queryable<ChannelList>().Where(cs => cs.DrawerType != 3)
|
2023-11-13 11:52:43 +08:00
|
|
|
|
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).GroupBy(cs => cs.DrawerNo).Select(cs => SqlFunc.AggregateCount(cs.DrawerNo)).Count();
|
2023-11-14 14:49:22 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
count = SqlSugarHelper.Db.Queryable<ChannelStock>().Where(cs => cs.DrawerType != 3)
|
|
|
|
|
.Where(cs => cs.MachineId.Equals(ConfigurationManager.AppSettings["machineId"] ?? "DM1")).GroupBy(cs => cs.DrawerNo).Select(cs => SqlFunc.AggregateCount(cs.DrawerNo)).Count();
|
|
|
|
|
}
|
2023-11-13 11:52:43 +08:00
|
|
|
|
Is16Drawer = count == 16;
|
|
|
|
|
}
|
2024-06-24 17:30:26 +08:00
|
|
|
|
/// <summary>
|
|
|
|
|
/// 获取温度信息
|
|
|
|
|
/// </summary>
|
|
|
|
|
private async void GetWD(object sender, ElapsedEventArgs e)
|
|
|
|
|
{
|
|
|
|
|
if (!_portUtil.FridgeOperate)
|
|
|
|
|
{
|
|
|
|
|
string retStr = string.Empty;
|
|
|
|
|
byte[] data = null;
|
2024-06-27 16:49:04 +08:00
|
|
|
|
float retT = await _portUtil.GetFridgeTemperature(1);
|
2024-06-24 17:30:26 +08:00
|
|
|
|
Thread.Sleep(80);
|
2025-01-14 15:37:05 +08:00
|
|
|
|
WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT), 2)}℃";
|
2024-06-24 17:30:26 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private async void GetWD()
|
|
|
|
|
{
|
2025-03-13 11:13:12 +08:00
|
|
|
|
if (!_portUtil.FridgeOperate && FridgeState.Equals("0"))
|
2024-06-24 17:30:26 +08:00
|
|
|
|
{
|
|
|
|
|
string retStr = string.Empty;
|
|
|
|
|
byte[] data = null;
|
2024-12-22 09:22:37 +08:00
|
|
|
|
float retT = await _portUtil.GetFridgeTemperature(1);
|
2024-06-24 17:30:26 +08:00
|
|
|
|
Thread.Sleep(80);
|
2025-01-14 15:37:05 +08:00
|
|
|
|
WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT), 2)}℃";
|
|
|
|
|
logger.Info(WD);
|
|
|
|
|
//if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 1)
|
|
|
|
|
//{
|
|
|
|
|
// float retTemp = await _portUtil.GetFridgeTemperature(2);
|
|
|
|
|
// Thread.Sleep(80);
|
|
|
|
|
// WD += $"{retTemp}℃";
|
|
|
|
|
//}
|
2024-06-24 17:30:26 +08:00
|
|
|
|
}
|
2025-03-13 11:13:12 +08:00
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
AlertMsg alertMsg = new AlertMsg
|
|
|
|
|
{
|
|
|
|
|
Message = $"正在获取冰箱温度或已关闭冰箱制冷功能!!!",
|
|
|
|
|
Type = MsgType.ERROR
|
|
|
|
|
};
|
|
|
|
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
|
|
|
|
}
|
2024-06-24 17:30:26 +08:00
|
|
|
|
}
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 将收到的返回转换成具体温度数值
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="receiveData"></param>
|
|
|
|
|
/// <returns></returns>
|
|
|
|
|
public string GetResultWD(string receiveData)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
//string newStrWD = receiveData.Substring(10, 4);
|
|
|
|
|
|
|
|
|
|
//logger.Info($"截取后数据newStrWD:{newStrWD}");
|
|
|
|
|
int iWD = Convert.ToInt32(receiveData, 16);
|
|
|
|
|
logger.Info($"截取后数据iWD:{iWD}");
|
|
|
|
|
float fWD = 0;
|
|
|
|
|
if (iWD != 0)
|
|
|
|
|
{
|
|
|
|
|
fWD = iWD * 1.0f / 10;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
logger.Info($"截取后数据fWD:{fWD}");
|
|
|
|
|
string strRet = $"恒温冷藏抽屉当前温度:{fWD}℃;";
|
2023-11-13 11:52:43 +08:00
|
|
|
|
|
2024-06-24 17:30:26 +08:00
|
|
|
|
return strRet;
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
logger.Info("GetResultWD异常", new Exception($"{ex.ToString()}"));
|
|
|
|
|
}
|
|
|
|
|
return "数据异常";
|
|
|
|
|
}
|
2024-06-27 16:49:04 +08:00
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// 查看冰箱温度
|
|
|
|
|
/// </summary>
|
|
|
|
|
public DelegateCommand CheckWDCommand { get => new DelegateCommand(CheckAction); }
|
|
|
|
|
private void CheckAction()
|
|
|
|
|
{
|
|
|
|
|
GetWD();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
2023-11-13 11:52:43 +08:00
|
|
|
|
//这个方法用于拦截请求,continuationCallback(true)就是不拦截,continuationCallback(false)拦截本次操作
|
|
|
|
|
public void ConfirmNavigationRequest(NavigationContext navigationContext, Action<bool> continuationCallback)
|
|
|
|
|
{
|
|
|
|
|
continuationCallback(true);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//接收导航传过来的参数
|
|
|
|
|
public void OnNavigatedTo(NavigationContext navigationContext)
|
|
|
|
|
{
|
2024-06-24 17:30:26 +08:00
|
|
|
|
_portUtil.dateTime = DateTime.Now;
|
2023-11-13 11:52:43 +08:00
|
|
|
|
//取出user
|
|
|
|
|
UserList = navigationContext.Parameters.GetValue<UserList>("operator");
|
|
|
|
|
Operator = UserList;
|
|
|
|
|
logger.Info($"发药人【{Operator.Nickname}】登录");
|
|
|
|
|
if (navigationContext.Parameters.ContainsKey("reviewer"))
|
|
|
|
|
{
|
|
|
|
|
UserList2 = navigationContext.Parameters.GetValue<UserList>("reviewer");
|
|
|
|
|
Reviewer = UserList2;
|
|
|
|
|
logger.Info($"审核人【{Reviewer.Nickname}】登录");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
List<PremissionDm> premissions = UserList.Role.Permissions;
|
2023-11-27 15:13:42 +08:00
|
|
|
|
if (premissions.Count <= 0)
|
|
|
|
|
{
|
|
|
|
|
Operator = null;
|
|
|
|
|
Reviewer = null;
|
|
|
|
|
Application.Current.Dispatcher.Invoke(() =>
|
|
|
|
|
{
|
|
|
|
|
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
|
|
|
|
});
|
|
|
|
|
AlertMsg alertMsg = new AlertMsg
|
|
|
|
|
{
|
|
|
|
|
Message = $"用户{UserList.Nickname}或还未设置权限,请联系管理员",
|
|
|
|
|
Type = MsgType.ERROR
|
|
|
|
|
};
|
|
|
|
|
_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
|
|
|
|
return;
|
|
|
|
|
}
|
2023-11-13 11:52:43 +08:00
|
|
|
|
//SqlSugarHelper.Db.SqlQueryable<PremissionDm>(sql)
|
|
|
|
|
//.ToTree(pd => pd.Children, pd => pd.ParentId, 0);
|
|
|
|
|
PremissionDmList = premissions;
|
|
|
|
|
SelectedMenu = premissions[0];
|
2025-01-14 15:37:05 +08:00
|
|
|
|
PreSelectedMenu = premissions[0];
|
2023-11-27 15:13:42 +08:00
|
|
|
|
SelectedChildMenu = premissions[0].Children[0];
|
2024-11-05 15:37:54 +08:00
|
|
|
|
_regionManager.RequestNavigate("ContentRegion", premissions[0].Children[0].PremissionPath);
|
2023-11-13 11:52:43 +08:00
|
|
|
|
FindDrawerCount();
|
|
|
|
|
int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
|
|
|
|
|
if (autoExit > 0)
|
|
|
|
|
{
|
2024-12-28 12:56:13 +08:00
|
|
|
|
//int interval = autoExit * 1000;
|
|
|
|
|
new PromiseUtil<int>().taskAsyncLoop(1000, 0, async (options, next, stop) =>
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
2024-12-28 12:56:13 +08:00
|
|
|
|
try
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
2024-12-28 12:56:13 +08:00
|
|
|
|
if (!_portUtil.Operate)
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
2024-12-28 12:56:13 +08:00
|
|
|
|
// 无人操作鼠标键盘
|
|
|
|
|
if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
|
2023-11-13 11:52:43 +08:00
|
|
|
|
{
|
2024-12-31 14:48:57 +08:00
|
|
|
|
logger.Info($"设备{autoExit}内无人操作,用户【{Operator?.Nickname}】自动退出登录,_portUtil.Operate:{_portUtil.Operate},totalSecond:{(DateTime.Now - _portUtil.dateTime).TotalSeconds},lastInputTime:{CheckComputerFreeState.GetLastInputTime()},autoExit:{autoExit}");
|
2025-01-14 15:37:05 +08:00
|
|
|
|
|
2024-12-28 12:56:13 +08:00
|
|
|
|
Operator = null;
|
|
|
|
|
Reviewer = null;
|
|
|
|
|
//Application.Current.Dispatcher.Invoke(() =>
|
|
|
|
|
//{
|
|
|
|
|
stop();
|
|
|
|
|
System.Windows.Application.Current.Dispatcher.Invoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
|
|
|
|
{
|
2025-05-27 10:27:47 +08:00
|
|
|
|
|
|
|
|
|
DialogHost.Close("RootDialog");
|
2024-12-28 12:56:13 +08:00
|
|
|
|
_regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
|
|
|
|
}));
|
|
|
|
|
//});
|
|
|
|
|
//timer.Dispose();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (Operator == null)
|
|
|
|
|
{
|
|
|
|
|
stop();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
next();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
_portUtil.dateTime = DateTime.Now;
|
|
|
|
|
next();
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-12-28 12:56:13 +08:00
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
logger.Info($"自动退出异常:{ex.Message}");
|
|
|
|
|
}
|
|
|
|
|
});
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
2024-12-28 12:56:13 +08:00
|
|
|
|
//int autoExit = Convert.ToInt32(ConfigurationManager.AppSettings["autoExit"] ?? "0");
|
|
|
|
|
//int stopRecord = Convert.ToInt32(ConfigurationManager.AppSettings["stopRecord"] ?? "0");
|
|
|
|
|
//if (autoExit > 0)
|
|
|
|
|
//{
|
|
|
|
|
// System.Timers.Timer timer = new System.Timers.Timer();
|
|
|
|
|
// timer.Interval = 1000;
|
|
|
|
|
// timer.Elapsed += (sender, e) =>
|
|
|
|
|
// {
|
|
|
|
|
// // 串口无人操作
|
|
|
|
|
// if (!_portUtil.Operate)
|
|
|
|
|
// {
|
|
|
|
|
// // 30秒内无人操作鼠标键盘
|
|
|
|
|
// if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > autoExit && CheckComputerFreeState.GetLastInputTime() > autoExit)
|
|
|
|
|
// {
|
|
|
|
|
// logger.Info($"设备30秒内无人操作,用户【{Operator?.Nickname}】自动退出登录,_portUtil.Operate:{_portUtil.Operate},totalSecond:{(DateTime.Now - _portUtil.dateTime).TotalSeconds},lastInputTime:{CheckComputerFreeState.GetLastInputTime()},autoExit:{autoExit}");
|
|
|
|
|
// //_chkFunction.HIKStopDVRRecord();
|
|
|
|
|
// Operator = null;
|
|
|
|
|
// Reviewer = null;
|
|
|
|
|
// Application.Current.Dispatcher.Invoke(() =>
|
|
|
|
|
// {
|
|
|
|
|
// _regionManager.RequestNavigate("MainRegion", "LoginWindow");
|
|
|
|
|
// timer.Stop();
|
|
|
|
|
// });
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// };
|
|
|
|
|
// timer.Start();
|
|
|
|
|
//}
|
2024-06-27 16:49:04 +08:00
|
|
|
|
//#region 温度查询定时
|
|
|
|
|
//int interval = Convert.ToInt32(ConfigurationManager.AppSettings["Interval"]);
|
|
|
|
|
//if (interval > 0)
|
|
|
|
|
//{
|
|
|
|
|
// WDTimer = new System.Timers.Timer();
|
|
|
|
|
|
|
|
|
|
// WDTimer.Elapsed += new System.Timers.ElapsedEventHandler(GetWD);
|
|
|
|
|
// WDTimer.Interval = interval;
|
|
|
|
|
// //WDTimer.Start();
|
|
|
|
|
// //WDTimer.AutoReset = true;
|
|
|
|
|
// //WDTimer.Enabled = true;
|
|
|
|
|
//}
|
|
|
|
|
//#endregion
|
|
|
|
|
//GetWD();
|
2024-12-22 11:23:57 +08:00
|
|
|
|
//if (stopRecord > 0)
|
|
|
|
|
//{
|
|
|
|
|
// System.Timers.Timer timer = new System.Timers.Timer();
|
|
|
|
|
// timer.Interval = 1000;
|
|
|
|
|
// timer.Elapsed += (sender, e) =>
|
|
|
|
|
// {
|
|
|
|
|
|
|
|
|
|
// //指定时间内无人操作鼠标键盘则停止录像
|
|
|
|
|
// if (!_portUtil.Operate && CheckComputerFreeState.GetLastInputTime() > stopRecord)
|
|
|
|
|
// {
|
|
|
|
|
// _chkFunction.HIKStopDVRRecord();
|
|
|
|
|
// }
|
|
|
|
|
// };
|
|
|
|
|
// timer.Start();
|
|
|
|
|
//}
|
|
|
|
|
//logger.Info($"当前时间:{DateTime.Now}\r\n获取录像机的时间");
|
|
|
|
|
////获取录像机的时间
|
|
|
|
|
//_chkFunction.HIK_DVR_TIME();
|
|
|
|
|
//_chkFunction.HIKStartDVRRecord();
|
2025-03-13 10:14:36 +08:00
|
|
|
|
GetFridgeTemperature();
|
|
|
|
|
|
|
|
|
|
_eventAggregator.GetEvent<FridgeEvent>().Subscribe(GetFridgeTemperature);
|
|
|
|
|
}
|
|
|
|
|
//获取冰箱温度定时
|
|
|
|
|
private void GetFridgeTemperature()
|
|
|
|
|
{
|
|
|
|
|
|
2025-03-12 17:47:00 +08:00
|
|
|
|
string[] tempRange = TemperatureRange.Split('-');
|
|
|
|
|
new PromiseUtil<int>().taskAsyncLoop(10000, 0, async (options, next, stop) =>
|
2025-01-14 15:37:05 +08:00
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
2025-03-14 09:45:33 +08:00
|
|
|
|
FridgeState = CommonClass.ReadAppSetting("FridgeState");
|
2025-03-12 17:47:00 +08:00
|
|
|
|
if (!_portUtil.FridgeOperate && FridgeState.Equals("0"))
|
2025-01-14 15:37:05 +08:00
|
|
|
|
{
|
|
|
|
|
string retStr = string.Empty;
|
|
|
|
|
byte[] data = null;
|
|
|
|
|
float retT = await _portUtil.GetFridgeTemperature(1);
|
|
|
|
|
Thread.Sleep(80);
|
2025-03-12 17:47:00 +08:00
|
|
|
|
WD = $"恒温冷藏抽屉当前温度:{Math.Round((retT), 2)}℃;";
|
2025-03-13 11:13:12 +08:00
|
|
|
|
AlertColor = Brushes.White;
|
2025-01-14 15:37:05 +08:00
|
|
|
|
logger.Info(WD);
|
2025-03-12 17:47:00 +08:00
|
|
|
|
if (tempRange != null && tempRange.Count() >= 2)
|
2025-01-14 15:37:05 +08:00
|
|
|
|
{
|
2025-03-12 17:47:00 +08:00
|
|
|
|
if (retT < Convert.ToSingle(tempRange[0]) || retT > Convert.ToSingle(tempRange[1]))
|
|
|
|
|
{
|
|
|
|
|
//查询制冷片温度
|
|
|
|
|
float retT2 = await _portUtil.GetFridgeTemperature2();
|
|
|
|
|
if (retT2 > 65)
|
|
|
|
|
{
|
|
|
|
|
if (!FridgeState.Equals("1"))
|
|
|
|
|
{
|
|
|
|
|
//停掉冰箱
|
|
|
|
|
await _portUtil.FridgeOff(1);
|
|
|
|
|
CommonClass.SaveAppSetting("FridgeState", "1");
|
2025-03-13 10:14:36 +08:00
|
|
|
|
//AlertMsg alertMsg = new AlertMsg
|
|
|
|
|
//{
|
|
|
|
|
// Message = $"冰箱制冷片温度超过65度,已关闭冰箱制冷功能!!!",
|
|
|
|
|
// Type = MsgType.ERROR
|
|
|
|
|
//};
|
|
|
|
|
//_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
|
|
|
|
|
|
|
|
|
System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
2025-03-12 17:47:00 +08:00
|
|
|
|
{
|
2025-03-13 10:14:36 +08:00
|
|
|
|
DialogParameters dialogParameters = new DialogParameters();
|
|
|
|
|
dialogParameters.Add("warnMessage", "冰箱制冷片温度超过65度,已关闭冰箱制冷功能!!!");
|
|
|
|
|
DialogServiceExtensions.ShowDialogHost(_dialogService, "WarnDialog", dialogParameters, DoDialogResult, "RootDialog");
|
|
|
|
|
|
|
|
|
|
}));
|
2025-03-12 17:47:00 +08:00
|
|
|
|
}
|
|
|
|
|
logger.Info($"制冷片温度超过65度");
|
|
|
|
|
Thread.Sleep(100);
|
|
|
|
|
//给出提示
|
|
|
|
|
WD += "冰箱温度异常,已关闭冰箱制冷功能";
|
2025-03-13 10:14:36 +08:00
|
|
|
|
AlertColor = Brushes.Red;
|
2025-03-12 17:47:00 +08:00
|
|
|
|
FridgeTime = null;
|
|
|
|
|
stop();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (FridgeTime == null)
|
|
|
|
|
{
|
|
|
|
|
FridgeTime = DateTime.Now;
|
|
|
|
|
//温度不在范围,但没有超过时间
|
|
|
|
|
if (IsLeave)
|
|
|
|
|
{
|
|
|
|
|
FridgeTime = null;
|
|
|
|
|
stop();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
next();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if ((DateTime.Now - FridgeTime.Value).TotalMinutes > Convert.ToInt32(OutRangeTime))
|
|
|
|
|
{
|
|
|
|
|
logger.Info($"冰箱温度不在范围内,超过{OutRangeTime}分钟");
|
|
|
|
|
//停掉冰箱
|
|
|
|
|
await _portUtil.FridgeOff(1);
|
|
|
|
|
Thread.Sleep(100);
|
|
|
|
|
CommonClass.SaveAppSetting("FridgeState", "0");
|
|
|
|
|
//给出提示
|
|
|
|
|
WD += "冰箱温度异常,已关闭冰箱制冷功能;";
|
|
|
|
|
AlertColor = Brushes.Red;
|
|
|
|
|
FridgeState = "1";
|
|
|
|
|
CommonClass.SaveAppSetting("FridgeState", "1");
|
2025-03-13 10:14:36 +08:00
|
|
|
|
//AlertMsg alertMsg = new AlertMsg
|
|
|
|
|
//{
|
|
|
|
|
// Message = $"冰箱温度异常,已关闭冰箱制冷功能!!!",
|
|
|
|
|
// Type = MsgType.ERROR
|
|
|
|
|
//};
|
|
|
|
|
//_eventAggregator.GetEvent<SnackbarEvent>().Publish(alertMsg);
|
|
|
|
|
System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
|
2025-03-12 17:47:00 +08:00
|
|
|
|
{
|
2025-03-13 10:14:36 +08:00
|
|
|
|
DialogParameters dialogParameters = new DialogParameters();
|
|
|
|
|
dialogParameters.Add("warnMessage", "冰箱温度异常,已关闭冰箱制冷功能!!!");
|
|
|
|
|
DialogServiceExtensions.ShowDialogHost(_dialogService, "WarnDialog", dialogParameters, DoDialogResult, "RootDialog");
|
|
|
|
|
|
|
|
|
|
}));
|
2025-03-12 17:47:00 +08:00
|
|
|
|
FridgeTime = null;
|
|
|
|
|
stop();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
//温度不在范围,但没有超过时间
|
|
|
|
|
if (IsLeave)
|
|
|
|
|
{
|
|
|
|
|
FridgeTime = null;
|
|
|
|
|
stop();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
next();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
if (IsLeave)
|
|
|
|
|
{
|
|
|
|
|
FridgeTime = null;
|
|
|
|
|
stop();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
next();
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-01-14 15:37:05 +08:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-03-12 17:47:00 +08:00
|
|
|
|
logger.Info($"获取冰箱温度范围有误{TemperatureRange}");
|
|
|
|
|
|
|
|
|
|
//if (Convert.ToInt32(ConfigurationManager.AppSettings["hasFridge"]) > 1)
|
|
|
|
|
//{
|
|
|
|
|
// float retTemp = await _portUtil.GetFridgeTemperature(2);
|
|
|
|
|
// Thread.Sleep(80);
|
|
|
|
|
// WD += $"{retTemp}℃";
|
|
|
|
|
//}
|
|
|
|
|
if (IsLeave)
|
|
|
|
|
{
|
|
|
|
|
FridgeTime = null;
|
|
|
|
|
stop();
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
next();
|
|
|
|
|
}
|
2025-01-14 15:37:05 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
2025-03-12 17:47:00 +08:00
|
|
|
|
WD = $"恒温冷藏抽屉串口关闭或冰箱制冷异常制冷关闭!!!";
|
|
|
|
|
AlertColor = Brushes.Red;
|
|
|
|
|
FridgeTime = null;
|
2025-01-14 15:37:05 +08:00
|
|
|
|
stop();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
logger.Info($"获取冰箱异常:{ex.Message}");
|
|
|
|
|
next();
|
|
|
|
|
}
|
|
|
|
|
});
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//每次导航的时候,该实列用不用重新创建,true是不重新创建,false是重新创建
|
|
|
|
|
public bool IsNavigationTarget(NavigationContext navigationContext)
|
|
|
|
|
{
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//这个方法用于拦截请求
|
|
|
|
|
public void OnNavigatedFrom(NavigationContext navigationContext)
|
|
|
|
|
{
|
2025-01-14 15:37:05 +08:00
|
|
|
|
IsLeave = true;
|
|
|
|
|
navigationContext.NavigationService.Region.RegionManager.Regions.Remove(PrismManager.SettingViewRegionName);
|
2025-03-13 10:14:36 +08:00
|
|
|
|
|
|
|
|
|
_eventAggregator.GetEvent<FridgeEvent>().Unsubscribe(GetFridgeTemperature);
|
2023-11-13 11:52:43 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|