添加项目文件。
This commit is contained in:
141
ViewModels/RecordViewModel.cs
Normal file
141
ViewModels/RecordViewModel.cs
Normal file
@@ -0,0 +1,141 @@
|
||||
using CommunityToolkit.Mvvm.ComponentModel;
|
||||
using CommunityToolkit.Mvvm.Input;
|
||||
using HME_MoistureLossMeter.Models;
|
||||
using HME_MoistureLossMeter.Services;
|
||||
using System.Collections.ObjectModel;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using Serilog;
|
||||
using System;
|
||||
|
||||
namespace HME_MoistureLossMeter.ViewModels
|
||||
{
|
||||
public partial class RecordViewModel : ViewModelBase
|
||||
{
|
||||
private readonly IMesService _mesService;
|
||||
private readonly DeviceConfiguration _deviceConfig;
|
||||
|
||||
[ObservableProperty]
|
||||
private ObservableCollection<HistoryRecordModel> _records = new();
|
||||
|
||||
[ObservableProperty]
|
||||
private HistoryRecordModel _selectedRecord;
|
||||
|
||||
public RecordViewModel(IMesService mesService, DeviceConfiguration deviceConfig)
|
||||
{
|
||||
_mesService = mesService;
|
||||
_deviceConfig = deviceConfig;
|
||||
|
||||
// 加载测试数据
|
||||
LoadTestRecords();
|
||||
}
|
||||
|
||||
private void LoadTestRecords()
|
||||
{
|
||||
// 从本地存储或数据库加载历史记录
|
||||
// 这里使用示例数据,实际应从数据库读取
|
||||
Records.Add(new HistoryRecordModel
|
||||
{
|
||||
RecordId = 1,
|
||||
TestTime = DateTime.Now.AddHours(-1).ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
OperatorId = 1001,
|
||||
BatchNo = "BATCH-2024-001",
|
||||
ExperimentId = 1,
|
||||
InitialMass = 50.5f,
|
||||
FinalMass = 48.2f,
|
||||
MoistureLoss = 2.3f
|
||||
});
|
||||
|
||||
Records.Add(new HistoryRecordModel
|
||||
{
|
||||
RecordId = 2,
|
||||
TestTime = DateTime.Now.AddHours(-2).ToString("yyyy-MM-dd HH:mm:ss"),
|
||||
OperatorId = 1002,
|
||||
BatchNo = "BATCH-2024-002",
|
||||
ExperimentId = 2,
|
||||
InitialMass = 45.8f,
|
||||
FinalMass = 44.1f,
|
||||
MoistureLoss = 1.7f
|
||||
});
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private async Task SyncToMes()
|
||||
{
|
||||
try
|
||||
{
|
||||
IsBusy = true;
|
||||
StatusMessage = "正在同步历史数据到MES...";
|
||||
|
||||
var historyData = new HistoryDataModel
|
||||
{
|
||||
DeviceId = _deviceConfig.DeviceId,
|
||||
Records = Records.ToList()
|
||||
};
|
||||
|
||||
bool success = await _mesService.SendHistoryDataAsync(historyData);
|
||||
|
||||
if (success)
|
||||
{
|
||||
StatusMessage = "历史数据同步成功";
|
||||
Log.Information("历史数据同步到MES成功");
|
||||
MessageBox.Show("历史数据同步成功", "提示",
|
||||
MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
}
|
||||
else
|
||||
{
|
||||
StatusMessage = "历史数据同步失败";
|
||||
MessageBox.Show("历史数据同步失败,请检查网络连接", "错误",
|
||||
MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
StatusMessage = $"同步失败: {ex.Message}";
|
||||
Log.Error(ex, "同步历史数据到MES失败");
|
||||
MessageBox.Show($"同步失败: {ex.Message}", "错误",
|
||||
MessageBoxButton.OK, MessageBoxImage.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
IsBusy = false;
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void ClearRecords()
|
||||
{
|
||||
var result = MessageBox.Show("确定要清除所有历史记录吗?", "确认清除",
|
||||
MessageBoxButton.YesNo, MessageBoxImage.Warning);
|
||||
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
Records.Clear();
|
||||
StatusMessage = "历史记录已清除";
|
||||
Log.Information("历史记录已清除");
|
||||
}
|
||||
}
|
||||
|
||||
[RelayCommand]
|
||||
private void DeleteSelectedRecord()
|
||||
{
|
||||
if (SelectedRecord == null)
|
||||
{
|
||||
MessageBox.Show("请先选择要删除的记录", "提示",
|
||||
MessageBoxButton.OK, MessageBoxImage.Information);
|
||||
return;
|
||||
}
|
||||
|
||||
var result = MessageBox.Show($"确定要删除记录 #{SelectedRecord.RecordId} 吗?", "确认删除",
|
||||
MessageBoxButton.YesNo, MessageBoxImage.Warning);
|
||||
|
||||
if (result == MessageBoxResult.Yes)
|
||||
{
|
||||
Records.Remove(SelectedRecord);
|
||||
SelectedRecord = null;
|
||||
StatusMessage = "记录已删除";
|
||||
Log.Information("记录已删除");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user