You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

119 lines
3.9 KiB
C#

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<long?, Dictionary<int?, string>> dic = new()
{
{2,
new Dictionary<int?,string>(){
{-1,"人工创建" },
{0,"未下发" },
{1,"已下发" },
{2,"任务开始" },
{3,"已到起始地" },
{4,"起始地继续任务" },
{5,"已到目的地" },
{6,"任务结束" },
}
},
{
4,
new Dictionary<int?, string>(){
{-1,"人工创建" },
{0,"未下发" },
{1,"已下发" },
{2,"已开始" },
{3,"已到达起始地" },
{4,"起始地继续任务" },
{5,"已到达目的地" },
{6,"任务结束" }
}
},
{
5,
new Dictionary<int?, string>(){
{-1,"人工创建" },
{0,"未下发" },
{1,"已下发" },
{2,"已开始" },
{3,"已到达起始地" },
{4,"起始地继续任务" },
{5,"已到达目的地" },
{6,"目的地等待完成" },
{7,"目的地捡料完成" },
{8,"任务结束" }
}
},
{
6,
new Dictionary<int?, string>(){
{-1,"人工创建" },
{0,"未下发" },
{1,"已下发" },
{2,"已开始" },
{3,"已到达起始地" },
{4,"起始地继续任务" },
{5,"已到达目的地" },
{6,"任务结束" }
}
},
{
11,
new Dictionary<int?, string>(){
{-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)
{
if (value is taskModel wcsTask)
{
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;
}
}
}