using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.Input; using MaterialDesignThemes.Wpf; using System; using System.Collections.Generic; using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; using WPFWCSDemo.Models; using WPFWCSDemo.Schedules; using WPFWCSDemo.StateCode; using WPFWCSDemo.Utilities; using WPFWCSDemo.Views; namespace WPFWCSDemo.ViewModels.Settings { public partial class SystemViewModel:ObservableObject { /// /// 选中删除任务数据 /// [ObservableProperty] bool _isTaskDataDelete; /// /// 选中删除报警数据 /// [ObservableProperty] bool _isAlarmDataDelete; /// /// 实垛A线显示文本 /// [ObservableProperty] string _lineAStr = "重置A线请求标志"; /// /// 实垛B线显示文本 /// [ObservableProperty] string _lineBStr = "重置B线请求标志"; /// /// 实垛C线显示文本 /// [ObservableProperty] string _lineCStr = "重置C线请求标志"; /// /// 实垛D线显示文本 /// [ObservableProperty] string _lineDStr = "重置D线请求标志"; /// /// 实垛AB线显示文本 /// [ObservableProperty] string _lineABStr = "重置AB线请求标志"; /// /// 实垛CD线显示文本 /// [ObservableProperty] string _lineCDStr = "重置CD线请求标志"; /// /// 是否限制实垛A线生成任务 0-解禁 1-禁止 /// [ObservableProperty] bool _lineAIsEnable = true; /// /// 是否限制实垛B线生成任务 0-解禁 1-禁止 /// [ObservableProperty] bool _lineBIsEnable = true; /// /// 是否限制实垛C线生成任务 0-解禁 1-禁止 /// [ObservableProperty] bool _lineCIsEnable = true; /// /// 是否限制实垛D线生成任务 0-解禁 1-禁止 /// [ObservableProperty] bool _lineDIsEnable = true; /// /// 是否限制空托AB线生成任务 0-解禁 1-禁止 /// [ObservableProperty] bool _lineABIsEnable = true; /// /// 是否限制空托CD线生成任务 0-解禁 1-禁止 /// [ObservableProperty] bool _lineCDIsEnable = true; /// /// A手动允许下发标志 /// public static bool lineAIsEnable = true; /// /// B手动允许下发标志 /// public static bool lineBIsEnable = true; /// /// C手动允许下发标志 /// public static bool lineCIsEnable = true; /// /// D手动允许下发标志 /// public static bool lineDIsEnable = true; /// /// AB手动允许下发标志 /// public static bool lineABIsEnable = true; /// /// CD手动允许下发标志 /// public static bool lineCDIsEnable = true; /// /// 手动备份当前数据库 /// [RelayCommand] void GetSqlDBBackup() { if (MessageBox.Show("确定创建备份文件吗(此操作会生成一份备份文件)?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { SqlDatabaseMaintenance.SQLBackup(); } else { MessageBox.Show("操作已取消"); } } /// /// 清除近3个月之外所有任务记录(保留最近3个月内数据) /// [RelayCommand] void DeleteDataOutOfTreeMouths() { if (MessageBox.Show("确定删除数据吗(此操作会保留最近3个月内的数据,且删除最近3个月之外的数据)?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { SqlHelper.ExecuteNonQuery("DELETE FROM TASK_HISTORY WHERE FINISHTIME<@FinishTime", new SqlParameter("@FinishTime", DateTime.Now.AddMonths(-3).ToString("yyyy-MM")) ); } } /// /// 调度任务备份 /// [RelayCommand] void TaskBackup() { if (MessageBox.Show("确定创建备份文件吗?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { if (IsTaskDataDelete) { if (MessageBox.Show("将删除已备份的【调度任务历史记录】数据,是否继续?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { SqlDatabaseMaintenance.SQLTaskBackup("Month", -6, IsTaskDataDelete); } else { MessageBox.Show("备份操作已取消"); } } else { //选择仅备份不删除数据 SqlDatabaseMaintenance.SQLTaskBackup("Month", -6, false); } } } /// /// 历史报警备份 /// [RelayCommand] void AlarmBackup() { if (MessageBox.Show("确定创建备份文件吗?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { if (IsAlarmDataDelete) { if (MessageBox.Show("将删除已备份的【报警历史记录】数据,是否继续?", "提示", MessageBoxButton.YesNo) == MessageBoxResult.Yes) { SqlDatabaseMaintenance.SQLAlarmBackup("Month", -6, IsAlarmDataDelete); } else { MessageBox.Show("备份操作已取消"); } } else { //选择仅备份不删除数据 SqlDatabaseMaintenance.SQLAlarmBackup("Month", -6, false); } } } /// /// 货位初始化 /// [RelayCommand] void CargoInitialize() { string result = Microsoft.VisualBasic.Interaction.InputBox("Enter something:", "Input Dialog", ""); MessageBox.Show("You entered: " + result); CargoTableInitialize.CargoSpaceInit(10,50,5); } /// /// 手动控制输送线是否允许下发任务 true-允许 false-禁止 /// /// 实垛:A,B,C,D 空托:AB,CD [RelayCommand] void LineIsEnabled(string lineName) { switch (lineName) { case "A": if (LineAIsEnable) { if (MessageBox.Show("是否禁止A线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineAIsEnable = false; lineAIsEnable = false; LineAStr = "禁止下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineAStr}】", "USER"); } } else { if (MessageBox.Show("是否允许A线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineAIsEnable = true; lineAIsEnable = true; LineAStr = "允许下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineAStr}】", "USER"); } } break; case "B": if (LineBIsEnable) { if (MessageBox.Show("是否禁止B线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineBIsEnable = false; lineBIsEnable = false; LineBStr = "禁止下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineBStr}】", "USER"); } } else { if (MessageBox.Show("是否允许B线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineBIsEnable = true; lineBIsEnable = true; LineBStr = "允许下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineBStr}】", "USER"); } } break; case "C": if (LineCIsEnable) { if (MessageBox.Show("是否禁止C线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineCIsEnable = false; lineCIsEnable = false; LineCStr = "禁止下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineCStr}】", "USER"); } } else { if (MessageBox.Show("是否允许C线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineCIsEnable = true; lineCIsEnable = true; LineCStr = "允许下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineCStr}】", "USER"); } } break; case "D": if (LineDIsEnable) { if (MessageBox.Show("是否禁止D线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineDIsEnable = false; lineDIsEnable = false; LineDStr = "禁止下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineDStr}】", "USER"); } } else { if (MessageBox.Show("是否允许D线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineDIsEnable = true; lineDIsEnable = true; LineDStr = "允许下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineDStr}】", "USER"); } } break; case "AB": if (LineABIsEnable) { if (MessageBox.Show("是否禁止AB线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineABIsEnable = false; lineABIsEnable = false; LineABStr = "禁止下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineABStr}】", "USER"); } } else { if (MessageBox.Show("是否允许AB线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineABIsEnable = true; lineABIsEnable = true; LineABStr = "允许下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineABStr}】", "USER"); } } break; case "CD": if (LineCDIsEnable) { if (MessageBox.Show("是否禁止CD线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineCDIsEnable = false; lineCDIsEnable = false; LineCDStr = "禁止下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineCDStr}】", "USER"); } } else { if (MessageBox.Show("是否允许CD线生成任务?", "警告", MessageBoxButton.OKCancel) == MessageBoxResult.OK) { LineCDIsEnable = true; lineCDIsEnable = true; LineCDStr = "允许下发"; SqlHelper.NewEventLog($"人工完成任务:{lineName}线切换为【{LineCDStr}】", "USER"); } } break; } } } }