private void MainPage_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            if (e.Key == Key.Escape || e.Key == Key.Back)
            {
                if (MessageBox.Show("是否关机", "警告", MessageBoxButton.YesNo) == MessageBoxResult.Yes)
                {
                    ProcessStartInfo ps = new ProcessStartInfo();
                    ps.FileName  = "shutdown.exe";
                    ps.Arguments = "-s -t 600";
                    Process.Start(ps);
                }
            }


            switch (e.Key)
            {
            case Key.Left:
                RemoveBorderThickness(FocusIndex);
                FocusIndex = (FocusIndex - 1).Equals(-1) ? (ItemsCount - 1) : (FocusIndex - 1);
                AddBorderThickness(FocusIndex);
                break;

            case Key.Right:
                RemoveBorderThickness(FocusIndex);
                FocusIndex = (FocusIndex + 1).Equals(ItemsCount) ? 0 : (FocusIndex + 1);
                AddBorderThickness(FocusIndex);
                break;

            case Key.Up:
                var positionA = PlanCardScrollViewer.VerticalOffset;
                PlanCardScrollViewer.ScrollToVerticalOffset(positionA - 60);
                break;

            case Key.Down:
                var positionB = PlanCardScrollViewer.VerticalOffset;
                PlanCardScrollViewer.ScrollToVerticalOffset(positionB + 60);
                break;

            case Key.Enter:
                //保存当前所选计划
                var obj  = PlanCardItems.Items[FocusIndex];
                var attr = obj.GetType().GetProperty("Tag");
                StoreInfoModel.ProducePlanInfo = attr.GetValue(obj, null) as ProducePlanInfoModel.DataModel;

                //下料
                if (StoreInfoModel.WorkGroupInfo.GetWorkGroup.DepartID.Equals("0218" /*"0209"*/))
                {
                    NavigationService.GetNavigationService(this).Navigate(new Uri(@"View/BlankingRecordPage.xaml", UriKind.Relative));
                }
                //非下料车间 需要 看图纸
                else
                {
                    var temp = BLL.Helpers.ClientHelper.RecordOperateLog(string.Format(@"用户【{0}】选择了生产计划ID为【{1}】、项目名称为【{2}】的生产计划!",
                                                                                       StoreInfoModel.UserName, StoreInfoModel.ProducePlanInfo.GetProjectProduceDetial.ID, StoreInfoModel.ProducePlanInfo.GetProject.ProjectName));

                    //初始化-加载该生产计划所需物料详情
                    var getMaterialInfo = new BLL.ExtraBLL.MaterialInfoBLL().GetMaterialDetail();
                    if (!getMaterialInfo.Result)
                    {
                        MessageBox.Show(getMaterialInfo.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }
                    //下载图纸文件
                    var drawResult = new BLL.ExtraBLL.ProducePlanInfoBLL().DownLoadDrawing();
                    if (!drawResult.Result)
                    {
                        MessageBox.Show(drawResult.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                    }

                    NavigationService.GetNavigationService(this).Navigate(new Uri(@"View/ProduceProcePage.xaml", UriKind.Relative));
                }
                break;

            default: break;
            }

            e.Handled = true;
        }
        private void MainPage_PreviewKeyDown(object sender, KeyEventArgs e)
        {
            switch (e.Key)
            {
            case Key.Up:
                var positionA = PlanCardScrollViewer.VerticalOffset;
                PlanCardScrollViewer.ScrollToVerticalOffset(positionA - 60);
                break;

            case Key.Down:
                var positionB = PlanCardScrollViewer.VerticalOffset;
                PlanCardScrollViewer.ScrollToVerticalOffset(positionB + 60);
                break;

            case Key.Left:
                RemoveBorderThickness(FocusIndex);
                FocusIndex = (FocusIndex - 1).Equals(-1) ? (ItemsCount - 1) : (FocusIndex - 1);
                AddBorderThickness(FocusIndex);
                break;

            case Key.Right:
                RemoveBorderThickness(FocusIndex);
                FocusIndex = (FocusIndex + 1).Equals(ItemsCount) ? 0 : (FocusIndex + 1);
                AddBorderThickness(FocusIndex);
                break;

            case Key.Enter:
                if (FocusIndex.Equals(0))
                {
                    var temp = BLL.Helpers.ClientHelper.RecordOperateLog(string.Format(@"用户【{0}】在设备保养计划页面选择了“返回”!", Model.StoreInfoModel.UserName));
                    NavigationService.GetNavigationService(this).Navigate(new Uri(@"View/ProducePlanPage.xaml", UriKind.Relative));
                }
                else
                {
                    //保存当前所选计划
                    var obj  = PlanCardItems.Items[FocusIndex];
                    var attr = obj.GetType().GetProperty("Tag");
                    StoreInfoModel.EquipmentInfo = attr.GetValue(obj, null) as EquipmentInfoModel.DataModel;

                    //是否正在保养,是将结束
                    if (StoreInfoModel.EquipmentInfo.GetEquipmentMaintenancePlan.ActualStartTime != null)
                    {
                        //if (MessageBox.Show("是否立即结束?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)
                        //{
                        ResultModel result = new BLL.ExtraBLL.EquipmentInfoBLL().EQPMaintenancePlan(1);
                        //结束保养成功
                        if (result.Result)
                        {
                            var temp = BLL.Helpers.ClientHelper.RecordOperateLog(new List <string>()
                            {
                                string.Format(@"用户【{0}】选择了设备【{1}】的保养计划!", StoreInfoModel.UserName, StoreInfoModel.EquipmentInfo.GetEquipment.EquipmentName),
                                string.Format(@"用户【{0}】结束了设备【{1}】的保养计划!", StoreInfoModel.UserName, StoreInfoModel.EquipmentInfo.GetEquipment.EquipmentName)
                            });

                            StoreInfoModel.EquipmentInfos.RemoveAt(FocusIndex - 1);
                            //planGridIndex = 0;
                            //planInfoContainer.Children.Clear();
                        }
                        else
                        {
                            MessageBox.Show(result.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);

                            var temp = BLL.Helpers.ClientHelper.RecordOperateLog(new List <string>()
                            {
                                string.Format(@"用户【{0}】选择了设备【{1}】的保养计划!", StoreInfoModel.UserName, StoreInfoModel.EquipmentInfo.GetEquipment.EquipmentName),
                                string.Format(@"用户【{0}】想要结束设备【{1}】的保养计划,但是失败了!", StoreInfoModel.UserName, StoreInfoModel.EquipmentInfo.GetEquipment.EquipmentName)
                            });
                        }
                        //}
                    }
                    //是否正在保养,否将开始
                    else
                    {
                        //if (MessageBox.Show("是否立即开始?", "提示", MessageBoxButton.YesNo, MessageBoxImage.Question, MessageBoxResult.No) == MessageBoxResult.Yes)
                        //{
                        ResultModel result = new BLL.ExtraBLL.EquipmentInfoBLL().EQPMaintenancePlan(0);
                        //开始保养成功
                        if (result.Result)
                        {
                            ContentPresenter cp  = PlanCardItems.ItemContainerGenerator.ContainerFromIndex(FocusIndex) as ContentPresenter;
                            List <Border>    gds = Helpers.WpfHelper.FindVisualChildren <Border>(cp);
                            List <TextBlock> tbs = Helpers.WpfHelper.FindVisualChildren <TextBlock>(cp);

                            gds[0].Background = new SolidColorBrush(Color.FromRgb(250, 92, 60));
                            tbs[1].Text       = StoreInfoModel.EquipmentInfo.GetEquipmentMaintenancePlan.MaintenanceName + "(已开始)";

                            var temp = BLL.Helpers.ClientHelper.RecordOperateLog(new List <string>()
                            {
                                string.Format(@"用户【{0}】选择了设备【{1}】的保养计划!", StoreInfoModel.UserName, StoreInfoModel.EquipmentInfo.GetEquipment.EquipmentName),
                                string.Format(@"用户【{0}】开始了设备【{1}】的保养计划!", StoreInfoModel.UserName, StoreInfoModel.EquipmentInfo.GetEquipment.EquipmentName)
                            });
                        }
                        else
                        {
                            MessageBox.Show(result.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);

                            var temp = BLL.Helpers.ClientHelper.RecordOperateLog(new List <string>()
                            {
                                string.Format(@"用户【{0}】选择了设备【{1}】的保养计划!", StoreInfoModel.UserName, StoreInfoModel.EquipmentInfo.GetEquipment.EquipmentName),
                                string.Format(@"用户【{0}】想要开始设备【{1}】的保养计划,但是失败了!", StoreInfoModel.UserName, StoreInfoModel.EquipmentInfo.GetEquipment.EquipmentName)
                            });
                        }
                        //}
                    }

                    FocusIndex = 0;
                    new BLL.ExtraBLL.EquipmentInfoBLL().GetEquipmentInfo();
                    PageMaintainPlan_Loaded(null, null);
                }

                break;

            default: break;
            }

            e.Handled = true;
        }