| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147 |
- using LocalhostMES.DataBase;
- using LocalhostMES.Core;
- using LocalhostMES.Models;
- using LocalhostMES.ViewModels.Services;
- using Prism.Commands;
- using Prism.Mvvm;
- using System;
- using System.Collections.ObjectModel;
- using System.ComponentModel;
- using System.Windows;
- namespace LocalhostMES.ViewModels.Tabs
- {
- public class ProcessRecordsViewModel : BindableBase
- {
- private readonly IMesWorkspace _workspace;
- public ProcessRecordsViewModel(IMesWorkspace workspace)
- {
- _workspace = workspace;
- _workspace.Initialize();
- RefreshProcessRecords();
- MesDataChangedNotifier.Changed += OnDataChanged;
- if (_workspace is INotifyPropertyChanged npc)
- {
- npc.PropertyChanged += OnWorkspacePropertyChanged;
- }
- }
- private ObservableCollection<ProcessRecord> _dgProcessRecords = new ObservableCollection<ProcessRecord>();
- public ObservableCollection<ProcessRecord> DgProcessRecords
- {
- get => _dgProcessRecords;
- set => SetProperty(ref _dgProcessRecords, value);
- }
- private ProcessRecord _selectProcessRecord;
- public ProcessRecord SelectProcessRecord
- {
- get => _selectProcessRecord;
- set
- {
- if (SetProperty(ref _selectProcessRecord, value) && value != null)
- {
- SearchSn = value.Sn;
- }
- }
- }
- private DelegateCommand _refreshProcessRecordsCommand;
- public DelegateCommand RefreshProcessRecordsCommand =>
- _refreshProcessRecordsCommand ?? (_refreshProcessRecordsCommand = new DelegateCommand(RefreshProcessRecords));
- private DelegateCommand _clearProcessRecordsCommand;
- public DelegateCommand ClearProcessRecordsCommand =>
- _clearProcessRecordsCommand ?? (_clearProcessRecordsCommand = new DelegateCommand(ClearProcessRecords));
- private string _searchSn;
- public string SearchSn
- {
- get => _searchSn;
- set => SetProperty(ref _searchSn, value);
- }
- private DelegateCommand _searchBySnCommand;
- public DelegateCommand SearchBySnCommand =>
- _searchBySnCommand ?? (_searchBySnCommand = new DelegateCommand(SearchBySn));
- private void RefreshProcessRecords()
- {
- try
- {
- var sn = (SearchSn ?? string.Empty).Trim();
- var response = string.IsNullOrEmpty(sn)
- ? DatabaseHelper.SelectProcessRecord()
- : DatabaseHelper.SelectProcessRecord(sn);
- if (response.Count != 0)
- {
- DgProcessRecords = new ObservableCollection<ProcessRecord>(response);
- _workspace.ShowStatus(string.IsNullOrEmpty(sn)
- ? $"已加载 {response.Count} 条加工记录"
- : $"按SN查询到 {response.Count} 条加工记录", false);
- }
- else
- {
- _workspace.ShowStatus(string.IsNullOrEmpty(sn) ? "暂无加工记录" : $"未查询到SN={sn}的加工记录", true);
- }
- }
- catch (Exception ex)
- {
- _workspace.ShowStatus($"刷新失败: {ex.Message}", true);
- }
- }
- private void SearchBySn()
- {
- RefreshProcessRecords();
- }
- private void ClearProcessRecords()
- {
- var result = MessageBox.Show("确定要清空所有加工记录吗?",
- "确认清空", MessageBoxButton.YesNo, MessageBoxImage.Warning);
- if (result == MessageBoxResult.Yes)
- {
- try
- {
- DatabaseHelper.DeleteProcessRecord();
- DgProcessRecords.Clear();
- _workspace.ShowStatus("加工记录已清空", false);
- }
- catch (Exception ex)
- {
- _workspace.ShowStatus($"清空失败: {ex.Message}", true);
- }
- }
- }
- private void OnDataChanged(object sender, MesDataChangedEventArgs e)
- {
- if (!e.Has(MesDataScope.ProcessRecord))
- {
- return;
- }
- Application.Current?.Dispatcher.Invoke(RefreshProcessRecords);
- }
- private void OnWorkspacePropertyChanged(object sender, PropertyChangedEventArgs e)
- {
- if (e.PropertyName == nameof(IMesWorkspace.CrossPageSn) ||
- e.PropertyName == nameof(IMesWorkspace.SelectedTabIndex))
- {
- if (_workspace.SelectedTabIndex == 6)
- {
- var sn = (_workspace.CrossPageSn ?? string.Empty).Trim();
- if (!string.IsNullOrEmpty(sn))
- {
- SearchSn = sn;
- Application.Current?.Dispatcher.Invoke(RefreshProcessRecords);
- }
- }
- }
- }
- }
- }
|