1 Commits

Author SHA1 Message Date
97c6787f9c LIN SCH DIALOG 更改 2026-03-02 23:05:24 +08:00

View File

@@ -15,11 +15,12 @@ namespace CapMachine.Wpf.ViewModels
{ {
public class DialogLINSchConfigViewModel : DialogViewModel public class DialogLINSchConfigViewModel : DialogViewModel
{ {
public DialogLINSchConfigViewModel(IFreeSql freeSql, IMapper mapper) public DialogLINSchConfigViewModel(IFreeSql freeSql, IMapper mapper, LinDriveService linDriveService)
{ {
Title = "调度表 LIN 配置"; Title = "调度表 LIN 配置";
FreeSql = freeSql; FreeSql = freeSql;
Mapper = mapper; Mapper = mapper;
LinDriveService = linDriveService;
//默认只能用1号调度器 //默认只能用1号调度器
SchTabIndexCbxItems = new ObservableCollection<CbxItems>() SchTabIndexCbxItems = new ObservableCollection<CbxItems>()
@@ -53,6 +54,7 @@ namespace CapMachine.Wpf.ViewModels
public IFreeSql FreeSql { get; } public IFreeSql FreeSql { get; }
public IMapper Mapper { get; } public IMapper Mapper { get; }
public LinDriveService LinDriveService { get; }
private string name; private string name;
/// <summary> /// <summary>
@@ -413,45 +415,17 @@ namespace CapMachine.Wpf.ViewModels
/// </summary> /// </summary>
private void LoadSch() private void LoadSch()
{ {
if (ListMsg == null || ListMsg.Count == 0) var ListLINScheduleConfig = LinDriveService.ToomossLinDrive.GetLINScheduleConfigs();
{ ListLINScheduleConfigDto.Clear();
MessageBox.Show("当前没有可配置的消息帧ListMsg 为空)", "提示", MessageBoxButton.OK, MessageBoxImage.Hand); //先清空
return;
}
// 覆盖当前配置程序的调度表(系统层面的调度表,来源于 UI 选择的消息帧集合)
FreeSql.Delete<LINScheduleConfig>() FreeSql.Delete<LINScheduleConfig>()
.Where(a => a.CanLinConfigProId == SelectCanLinConfigProId) .Where(a => a.CanLinConfigProId == SelectCanLinConfigProId)
.ExecuteAffrows(); .ExecuteAffrows();
var schTabName = "Default"; foreach (var item in ListLINScheduleConfig)
var schTabIndex = 0;
var defaultCycle = 100;
var idx = 0;
foreach (var msg in ListMsg.Where(a => !string.IsNullOrWhiteSpace(a)).Distinct(StringComparer.Ordinal))
{ {
var dto = new LINScheduleConfigDto ListLINScheduleConfigDto.Add(Mapper.Map<LINScheduleConfigDto>(item));
{
CanLinConfigProId = SelectCanLinConfigProId,
SchTabName = schTabName,
SchTabIndex = schTabIndex,
MsgName = msg,
MsgNameIndex = idx++,
Cycle = defaultCycle,
IsActive = true,
IsMsgActived = true,
};
FreeSql.InsertOrUpdate<LINScheduleConfig>()
.SetSource(Mapper.Map<LINScheduleConfig>(dto))
.ExecuteAffrows();
} }
ListLINScheduleConfigDto = new ObservableCollection<LINScheduleConfigDto>(
Mapper.Map<List<LINScheduleConfigDto>>(
FreeSql.Select<LINScheduleConfig>().Where(a => a.CanLinConfigProId == SelectCanLinConfigProId).ToList()));
// 重新构建树 // 重新构建树
BuildTree(); BuildTree();
} }