using Khd.Core.Domain.Models; using Khd.Core.Wpf.dto; using System; using System.Collections.Generic; using System.Globalization; using System.Linq; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Media; namespace Khd.Core.Wpf.myConverter { [ValueConversion(typeof(int), typeof(string))] public class AgvTaskStatusConverter : IValueConverter { private readonly Dictionary> dic = new() { {2, new Dictionary(){ {-1,"人工创建" }, {0,"未下发" }, {1,"已下发" }, {2,"任务开始" }, {3,"已到起始地" }, {4,"起始地继续任务" }, {5,"已到目的地" }, {6,"任务结束" }, } }, { 4, new Dictionary(){ {-1,"人工创建" }, {0,"未下发" }, {1,"已下发" }, {2,"已开始" }, {3,"已到达起始地" }, {4,"起始地继续任务" }, {5,"已到达目的地" }, {6,"任务结束" } } }, { 5, new Dictionary(){ {-1,"人工创建" }, {0,"未下发" }, {1,"已下发" }, {2,"已开始" }, {3,"已到达起始地" }, {4,"起始地继续任务" }, {5,"已到达目的地" }, {6,"目的地等待完成" }, {7,"目的地捡料完成" }, {8,"任务结束" } } }, { 6, new Dictionary(){ {-1,"人工创建" }, {0,"未下发" }, {1,"已下发" }, {2,"已开始" }, {3,"已到达起始地" }, {4,"起始地继续任务" }, {5,"已到达目的地" }, {6,"任务结束" } } }, { 11, new Dictionary(){ {-1,"人工创建" }, {0,"未下发" }, {1,"已下发" }, {2,"已开始" }, {3,"已到达起始地" }, {4,"起始地继续任务" }, {5,"已到达目的地" }, {6,"任务结束" } } } }; private DataGridRow GetDataGridRow(DependencyObject dependencyObject) { if (dependencyObject == null) return null; var dataGridRow = dependencyObject as DataGridRow; if (dataGridRow != null) return dataGridRow; return GetDataGridRow(VisualTreeHelper.GetParent(dependencyObject)); } public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { taskModel? wcsTask = value as taskModel; if (wcsTask != null) { BaseEquip baseEquip = SystemData.BaseEquip.First(t => t.objid == wcsTask.nextPointId); if (dic.TryGetValue(baseEquip.equipType, out var taskStatusDic)) { if (taskStatusDic.TryGetValue(wcsTask.taskStatus, out var taskStatus)) { return taskStatus; } } } return "未知"; } public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return value; } } }