|
|
|
@ -295,58 +295,61 @@ namespace SlnMesnac.WPF.ViewModel
|
|
|
|
|
/// 刷新生产计划
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <param name="list"></param>
|
|
|
|
|
private void RefreshPlanDataGrid(List<MesProductPlanDto> list)
|
|
|
|
|
private async void RefreshPlanDataGrid(List<MesProductPlanDto> list)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
PlanInfoDataGrid = new ObservableCollection<MesProductPlanDto>();
|
|
|
|
|
if (list != null)
|
|
|
|
|
|
|
|
|
|
await App.Current.Dispatcher.BeginInvoke((Action)(() =>
|
|
|
|
|
{
|
|
|
|
|
#region 按钮状态
|
|
|
|
|
// 假设初始状态所有计划的按钮状态
|
|
|
|
|
list.ForEach(plan =>
|
|
|
|
|
PlanInfoDataGrid = new ObservableCollection<MesProductPlanDto>();
|
|
|
|
|
if (list != null)
|
|
|
|
|
{
|
|
|
|
|
plan.StartEnable = true;
|
|
|
|
|
plan.StopEnable = false;
|
|
|
|
|
});
|
|
|
|
|
#region 按钮状态
|
|
|
|
|
// 假设初始状态所有计划的按钮状态
|
|
|
|
|
list.ForEach(plan =>
|
|
|
|
|
{
|
|
|
|
|
plan.StartEnable = true;
|
|
|
|
|
plan.StopEnable = false;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
// 查找是否存在正在执行的计划
|
|
|
|
|
var executingPlan = list.FirstOrDefault(x => x.PlanStatus == PlanStatusEnum.已开始);
|
|
|
|
|
if (executingPlan != null)
|
|
|
|
|
{
|
|
|
|
|
// 如果有正在执行的计划,只有该计划的暂停按钮可以点击,其他计划的按钮都不能点击
|
|
|
|
|
foreach (var plan in list)
|
|
|
|
|
// 查找是否存在正在执行的计划
|
|
|
|
|
var executingPlan = list.FirstOrDefault(x => x.PlanStatus == PlanStatusEnum.已开始);
|
|
|
|
|
if (executingPlan != null)
|
|
|
|
|
{
|
|
|
|
|
if (plan == executingPlan)
|
|
|
|
|
// 如果有正在执行的计划,只有该计划的暂停按钮可以点击,其他计划的按钮都不能点击
|
|
|
|
|
foreach (var plan in list)
|
|
|
|
|
{
|
|
|
|
|
plan.StopEnable = true; // 执行中的计划可以暂停
|
|
|
|
|
plan.StartEnable = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
plan.StartEnable = false; // 其他计划不能开始
|
|
|
|
|
if (plan == executingPlan)
|
|
|
|
|
{
|
|
|
|
|
plan.StopEnable = true; // 执行中的计划可以暂停
|
|
|
|
|
plan.StartEnable = false;
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
plan.StartEnable = false; // 其他计划不能开始
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
list.OrderByDescending(x => x.PlanStatus);
|
|
|
|
|
list.ForEach(
|
|
|
|
|
arg =>
|
|
|
|
|
{
|
|
|
|
|
PlanInfoDataGrid.Add(arg);
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
list.OrderByDescending(x => x.PlanStatus);
|
|
|
|
|
list.ForEach(
|
|
|
|
|
arg =>
|
|
|
|
|
{
|
|
|
|
|
PlanInfoDataGrid.Add(arg);
|
|
|
|
|
});
|
|
|
|
|
var info = list.Where(x => x.PlanStatus == PlanStatusEnum.已开始).ToList();
|
|
|
|
|
if (info.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
RefreshPlanExec(info.First());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var info = list.Where(x => x.PlanStatus == PlanStatusEnum.已开始).ToList();
|
|
|
|
|
if (info.Count > 0)
|
|
|
|
|
{
|
|
|
|
|
RefreshPlanExec(info.First());
|
|
|
|
|
}
|
|
|
|
|
}));
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|