private void PageProduceProce_Loaded(object sender, RoutedEventArgs e)
        {
            #region 加载基本数据

            //lblProjectName.Content = StoreInfoModel.ProducePlanInfo.GetProject.ProjectName;

            #endregion

            #region 加载工步列表

            List <object> WorkStepList = new List <object>();
            workStepCount = StoreInfoModel.ProducePlanInfo.GetProcessWorkSteps.Count;
            for (int i = 0; i < StoreInfoModel.ProducePlanInfo.GetProcessWorkSteps.Count; i++)
            {
                WorkStepList.Add(new
                {
                    WorkStepsTitle = string.Format("工步{0}", ToUpper(i + 1)),
                    WorkStepsName  = StoreInfoModel.ProducePlanInfo.GetProcessWorkSteps[i].WorkStepsName,
                    WorkStepsInfo  = StoreInfoModel.ProducePlanInfo.GetProcessWorkSteps[i].WorkStepsContent
                });

                dataContext.WorkSteps.Add(new WorkStepModel()
                {
                    LineNum       = (i + 1),
                    WorkStepsName = StoreInfoModel.ProducePlanInfo.GetProcessWorkSteps[i].WorkStepsName,
                    WorkStepsInfo = StoreInfoModel.ProducePlanInfo.GetProcessWorkSteps[i].WorkStepsContent
                });
            }

            dataContext.ProjectName = StoreInfoModel.ProducePlanInfo.GetProject.ProjectName;
            dataContext.WorkStep    = dataContext.WorkSteps.Count > 0 ? dataContext.WorkSteps[0] : new WorkStepModel();
            this.DataContext        = dataContext;

            //var aaaaa = WorkStepsList.DataContext;
            //
            //ContentPresenter cp = WorkStepsList.ItemContainerGenerator.ContainerFromIndex(0) as ContentPresenter;
            //List<Border> gds = Helpers.WpfHelper.FindVisualChildren<Border>(WorkStepsList);

            //ContentPresenter cp = PlanCardItems.ItemContainerGenerator.ContainerFromIndex(FocusIndex) as ContentPresenter;
            //List<Border> gds = Helpers.WpfHelper.FindVisualChildren<Border>(cp);
            //List<TextBlock> tbs = Helpers.WpfHelper.FindVisualChildren<TextBlock>(cp);
            //WorkStepBar.ItemsSource = WorkStepList;

            #endregion

            #region 图纸列表

            List <object> DrawList    = new List <object>();
            string[]      fileTypeArr = new string[] { ".jpg", ".JPG", ".png", ".PNG", ".dwg", ".DWG", ".pdf", ".PDF" };

            for (int i = 0; i < StoreInfoModel.ProducePlanInfo.GetQualityReportDocs.Count; i++)
            {
                QMS_QualityReportDoc qrd = StoreInfoModel.ProducePlanInfo.GetQualityReportDocs[i];
                if (fileTypeArr.Contains(System.IO.Path.GetExtension(qrd.FileName)))
                {
                    drawingCount++;
                    drawFilePaths.Add(string.Format(@"{0}\{1}", ConfigInfoModel.DocDirName, qrd.FileName));
                    DrawList.Add(new { DrawName = qrd.FileName });
                }
            }

            for (int i = 0; i < StoreInfoModel.ProducePlanInfo.GetProcessFigures.Count; i++)
            {
                PRS_ProcessFigure pf = StoreInfoModel.ProducePlanInfo.GetProcessFigures[i];
                if (fileTypeArr.Contains(System.IO.Path.GetExtension(pf.FileName)))
                {
                    drawingCount++;
                    drawFilePaths.Add(string.Format(@"{0}\{1}", ConfigInfoModel.DocDirName, pf.FileName));
                    DrawList.Add(new { DrawName = pf.FileName });
                }
            }

            //drawingCount = StoreInfoModel.ProducePlanInfo.GetPartFiles.Count;
            //for (int i = 0; i < drawingCount; i++)
            //{
            //    drawFilePaths.Add(string.Format(@"{0}\{1}", ConfigInfoModel.DocDirName, StoreInfoModel.ProducePlanInfo.GetPartFiles[drawingIndex].FileName));
            //    //DrawList.Add(new { DrawName = string.Format("图{0}", ToUpper(i + 1)) });
            //    DrawList.Add(new { DrawName = StoreInfoModel.ProducePlanInfo.GetPartFiles[i].FileName });
            //}
            //for (int i = 0; i < StoreInfoModel.ProducePlanInfo.GetQualityReportDocs.Count; i++)
            //{
            //    if (new string[] { ".jpg", ".JPG", ".png", ".PNG", ".dwg", ".DWG", ".pdf", ".PDF" }.Contains(System.IO.Path.GetExtension(StoreInfoModel.ProducePlanInfo.GetQualityReportDocs[i].FileName)))
            //    {
            //        drawingCount++;
            //        drawFilePaths.Add(string.Format(@"{0}\{1}", ConfigInfoModel.DocDirName, StoreInfoModel.ProducePlanInfo.GetQualityReportDocs[drawingIndex].FileName));
            //        DrawList.Add(new { DrawName = StoreInfoModel.ProducePlanInfo.GetQualityReportDocs[i].FileName });
            //    }
            //}

            DrawCardItems.ItemsSource = DrawList;

            #endregion

            #region 图纸展示

            ((System.ComponentModel.ISupportInitialize)axMxDrawX).BeginInit();
            System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost()
            {
                Child = axMxDrawX
            };
            ((System.ComponentModel.ISupportInitialize)axMxDrawX).EndInit();

            axMxDrawX.ShowCommandWindow = false;
            axMxDrawX.ShowModelBar      = false;
            axMxDrawX.ShowStatusBar     = false;
            axMxDrawX.ShowToolBars      = false;
            axMxDrawX.Padding           = new System.Windows.Forms.Padding(0);
            axMxDrawX.Margin            = new System.Windows.Forms.Padding(0);
            axMxDrawX.IsFirstRunPan     = true;
            axMxDrawX.IsDrawCoord       = false;

            mxDraw.Children.Add(host);

            //if (StoreInfoModel.ProducePlanInfo.GetPartFiles.Count > 0)
            //{
            //    axMxDrawX.OpenDwgFile(string.Format(@"{0}\{1}", ConfigInfoModel.DocDirName, StoreInfoModel.ProducePlanInfo.GetPartFiles[0].FileName));
            //    axMxDrawX.GetMcDbDatabaseBound(ref pLbx, ref pLby, ref pRtx, ref pRty);
            //    pointX = (pRtx - pLbx) / 2;
            //    pointY = (pRty - pLby) / 2;
            //    axMxDrawX.ZoomCenter(pointX, pointY);
            //    axMxDrawX.ZoomScale(0.08);
            //}

            if (drawingCount > 0)
            {
                axMxDrawX.OpenDwgFile(drawFilePaths[0]);
                axMxDrawX.GetMcDbDatabaseBound(ref pLbx, ref pLby, ref pRtx, ref pRty);
                pointX = (pRtx - pLbx) / 2;
                pointY = (pRty - pLby) / 2;
                axMxDrawX.ZoomCenter(pointX, pointY);
                axMxDrawX.ZoomScale(0.08);
            }

            #endregion

            #region 录入生产日志,录入计划开始时间

            #region 录入生产日志

            //记录生产日志
            ResultModel logResult = new BLL.ExtraBLL.ProducePlanInfoBLL().ProduceLog(BLL.ExtraBLL.ProducePlanInfoBLL.ProduceLogTypeEnum.Start);

            #endregion

            #region 录入计划开始时间

            //录入计划实际开始时间
            ResultModel actualDateResult = new BLL.ExtraBLL.ProducePlanInfoBLL().ActualProducePlanDate(BLL.ExtraBLL.ProducePlanInfoBLL.ProducePlanStateEnum.Start);

            #endregion

            #region 加载物料信息

            materielItems.ItemsSource = GetMaterielItems();

            //List<object> materielData = new List<object>();
            //if (StoreInfoModel.MaterialChildInfos.Count <= 0)
            //{
            //    materielData.Add(new
            //    {
            //        PartCode = StoreInfoModel.MaterialInfo.GetMaterialDetail.PartCode,
            //        PartName = StoreInfoModel.MaterialInfo.GetMaterialDetail.PartName,
            //        PartQuantity = StoreInfoModel.MaterialInfo.GetMaterialDetail.PartQuantity
            //    });
            //}
            //else
            //{
            //    foreach (var item in StoreInfoModel.MaterialChildInfos)
            //    {
            //        materielData.Add(new
            //        {
            //            PartCode = item.GetMaterialDetail.PartCode,
            //            PartName = item.GetMaterialDetail.PartName,
            //            PartQuantity = item.GetMaterialDetail.PartQuantity
            //        });
            //    }
            //}
            //materielItems.ItemsSource = materielData;

            #endregion

            #endregion

            #region 默认焦点区域、选择项

            switch (focusArea)
            {
            case FocusAreaEnum.LeftFocus:
                RemoveTabBorder(tbDrawingList);
                AddTabBorder(tbWorkStepsInfo);
                break;

            case FocusAreaEnum.CenterFocus:
                RemoveTabBorder(tbWorkStepsInfo);
                AddTabBorder(mxDraw);
                break;

            case FocusAreaEnum.RightFocus:
                RemoveTabBorder(mxDraw);
                AddTabBorder(materielList);
                break;

            case FocusAreaEnum.DownFocus:
                RemoveTabBorder(materielList);
                AddTabBorder(tbDrawingList);
                break;

            default: break;
            }

            #endregion

            InputMethod.SetIsInputMethodEnabled(MainPage, false);
            InputMethod.SetPreferredImeState(MainPage, InputMethodState.Off);

            ShowWorkStepsInfo();
            MainPage.Focus();

            var temp = BLL.Helpers.ClientHelper.RecordOperateLog(string.Format(@"用户【{0}】进入了开始生产、查看图纸的页面!", StoreInfoModel.UserName));
        }
Exemplo n.º 2
0
        /// <summary>
        /// 页面加载事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Page_Loaded(object sender, RoutedEventArgs e)
        {
            #region 加载基本数据

            //要加工的零件本体
            StoreInfoModel.MaterialInfo = StoreInfoModel.MaterialInfos.FirstOrDefault(item => item.GetPart.PartCode.Equals(StoreInfoModel.ProducePlanInfo.GetProjectProduceDetial.PartCode));
            //要加工的零件子集
            StoreInfoModel.MaterialChildInfos = StoreInfoModel.MaterialInfos.Where(item => !item.GetPart.PartCode.Equals(StoreInfoModel.ProducePlanInfo.GetProjectProduceDetial.PartCode)).ToList();

            #region 加载物料详情



            for (int i = 0; i < StoreInfoModel.MaterialChildInfos.Count; i++)
            {
                Viewbox viewbox = new Viewbox();

                Grid grid = new Grid();
                grid.Margin     = new Thickness(5);
                grid.Background = new SolidColorBrush(Color.FromRgb(60, 60, 60));
                grid.Width      = 200;
                grid.Height     = 100;

                grid.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(24)
                });
                grid.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(24)
                });
                grid.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(24)
                });
                grid.RowDefinitions.Add(new RowDefinition()
                {
                    Height = new GridLength(28)
                });

                grid.ColumnDefinitions.Add(new ColumnDefinition()
                {
                    Width = new GridLength(60)
                });
                grid.ColumnDefinitions.Add(new ColumnDefinition()
                {
                    Width = new GridLength(140)
                });

                Label lblA = new Label()
                {
                    HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Center, Foreground = new SolidColorBrush(Color.FromRgb(0, 140, 255)), Content = "零件编码:"
                };
                Label lblB = new Label()
                {
                    HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center, Foreground = new SolidColorBrush(Color.FromRgb(0, 140, 255)), Content = StoreInfoModel.MaterialChildInfos[i].GetMaterialDetail.PartCode
                };
                Label lblC = new Label()
                {
                    HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Center, Foreground = new SolidColorBrush(Color.FromRgb(140, 255, 26)), Content = "零件名称:"
                };
                Label lblD = new Label()
                {
                    HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center, Foreground = new SolidColorBrush(Color.FromRgb(140, 255, 26)), Content = StoreInfoModel.MaterialChildInfos[i].GetMaterialDetail.PartName
                };
                Label lblE = new Label()
                {
                    HorizontalAlignment = HorizontalAlignment.Right, VerticalAlignment = VerticalAlignment.Center, Foreground = new SolidColorBrush(Color.FromRgb(255, 128, 0)), Content = "已录数量:"
                };
                Label lblF = new Label()
                {
                    HorizontalAlignment = HorizontalAlignment.Left, VerticalAlignment = VerticalAlignment.Center, Foreground = new SolidColorBrush(Color.FromRgb(255, 128, 0)), Content = "0/0"
                };
                TextBox txtPartCode = new TextBox()
                {
                    HorizontalAlignment = HorizontalAlignment.Stretch, VerticalAlignment = VerticalAlignment.Center, Padding = new Thickness(6, 2, 6, 2), Margin = new Thickness(5, 0, 5, 0)
                };

                grid.Children.Add(lblA);
                grid.Children.Add(lblB);
                grid.Children.Add(lblC);
                grid.Children.Add(lblD);
                grid.Children.Add(lblE);
                grid.Children.Add(lblF);
                grid.Children.Add(txtPartCode);

                Grid.SetColumn(lblA, 0);
                Grid.SetColumn(lblB, 1);
                Grid.SetColumn(lblC, 0);
                Grid.SetColumn(lblD, 1);
                Grid.SetColumn(lblE, 0);
                Grid.SetColumn(lblF, 1);
                Grid.SetColumnSpan(txtPartCode, 2);
                Grid.SetColumn(txtPartCode, 0);

                Grid.SetRow(lblA, 0);
                Grid.SetRow(lblB, 0);
                Grid.SetRow(lblC, 1);
                Grid.SetRow(lblD, 1);
                Grid.SetRow(lblE, 2);
                Grid.SetRow(lblF, 2);
                Grid.SetRow(txtPartCode, 3);

                viewbox.Child = grid;

                MaterialInfoContainer.Children.Add(viewbox);
            }

            #endregion

            #region 加载图纸显示

            lblProjectName.Content = StoreInfoModel.ProducePlanInfo.GetProject.ProjectName;

            ((System.ComponentModel.ISupportInitialize)axMxDrawX).BeginInit();
            System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost()
            {
                Child = axMxDrawX
            };
            ((System.ComponentModel.ISupportInitialize)axMxDrawX).EndInit();

            axMxDrawX.ShowCommandWindow = false;
            axMxDrawX.ShowModelBar      = false;
            axMxDrawX.ShowStatusBar     = false;
            axMxDrawX.ShowToolBars      = false;
            axMxDrawX.Padding           = new System.Windows.Forms.Padding(0);
            axMxDrawX.Margin            = new System.Windows.Forms.Padding(0);
            axMxDrawX.IsFirstRunPan     = true;
            axMxDrawX.IsDrawCoord       = false;

            mxDraw.Children.Add(host);

            if (StoreInfoModel.ProducePlanInfo.GetPartFiles.Count > 0)
            {
                axMxDrawX.OpenDwgFile(string.Format(@"{0}\{1}", ConfigInfoModel.DocDirName, StoreInfoModel.ProducePlanInfo.GetPartFiles[0].FileName));
                axMxDrawX.GetMcDbDatabaseBound(ref pLbx, ref pLby, ref pRtx, ref pRty);
                pointX = (pRtx - pLbx) / 2;
                pointY = (pRty - pLby) / 2;
                axMxDrawX.ZoomCenter(pointX, pointY);
                axMxDrawX.ZoomScale(0.08);
            }

            #endregion

            #region 加载图纸列表

            for (int i = 0; i < StoreInfoModel.ProducePlanInfo.GetPartFiles.Count + 1; i++)
            {
                RowDefinition row = new RowDefinition();
                row.Height = new GridLength(i.Equals(0) ? 60 : 80);
                drawingListContainer.RowDefinitions.Add(row);

                gridDrawings[i] = new Grid();
                Grid.SetRow(gridDrawings[i], i);

                Binding binding = new Binding()
                {
                    RelativeSource = RelativeSource.Self,
                    Path           = new PropertyPath("FontSize")
                };
                TextBlock textBlock = new TextBlock
                {
                    TextWrapping      = TextWrapping.Wrap,
                    Foreground        = new SolidColorBrush(Color.FromRgb(240, 240, 240)),
                    VerticalAlignment = VerticalAlignment.Center,
                    Text = i.Equals(0) ? "详情" : ("图纸" + i)
                };
                textBlock.SetBinding(WidthProperty, binding);

                gridDrawings[i].Children.Add(textBlock);

                drawingListContainer.Children.Add(gridDrawings[i]);
            }

            //******************************************************************************//
            //默认显示详情
            Grid pInfoGrid = new Grid()
            {
                Margin     = new Thickness(0, 1, 0, 0),
                Background = new SolidColorBrush(Color.FromRgb(65, 65, 65))
            };
            TextBlock pInfoTextBlock = new TextBlock()
            {
                Foreground   = new SolidColorBrush(Color.FromRgb(240, 240, 240)),
                Margin       = new Thickness(5),
                FontSize     = 14,
                TextWrapping = TextWrapping.Wrap,
                Text         = StoreInfoModel.ProducePlanInfo.GetProductProcessRoute.ProcessDesc
            };
            pInfoGrid.Children.Add(pInfoTextBlock);
            projectInfo.Children.Add(pInfoGrid);
            //******************************************************************************//

            #endregion

            #endregion

            #region 录入生产日志,录入计划开始时间

            #region 录入生产日志

            //记录生产日志
            ResultModel logResult = new BLL.ExtraBLL.ProducePlanInfoBLL().ProduceLog(BLL.ExtraBLL.ProducePlanInfoBLL.ProduceLogTypeEnum.Start);

            #endregion

            #region 录入计划开始时间

            //录入计划实际开始时间
            ResultModel actualDateResult = new BLL.ExtraBLL.ProducePlanInfoBLL().ActualProducePlanDate(BLL.ExtraBLL.ProducePlanInfoBLL.ProducePlanStateEnum.Start);

            #endregion

            #endregion

            #region 默认焦点在左边

            Border border = new Border();
            border.BorderBrush     = new SolidColorBrush(Color.FromRgb(0, 255, 255));
            border.BorderThickness = new Thickness(2);
            tbMaterialInfo.Children.Add(border);

            #endregion
        }
        public void MxDrawOperate(object obj)
        {
            //https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.input.key?view=netframework-4.5

            switch (obj)
            {
            case Key.Enter:

                if (WindowHelper.WorkShopType.Equals(EnumManager.WorkShopTypeEnum.BlankingShop))
                {
                    //弹出选择 完工/暂停/取消 窗口
                    WindowPlanExecuteState window = new WindowPlanExecuteState();
                    window.ShowDialog();

                    //完工
                    if (window.SelectState.Equals(0))
                    {
                        var resultB = ApiManager.SetActualProducePlanDate(EnumManager.ProducePlanStateEnum.End);
                        var resultC = ApiManager.SetProduceLog(EnumManager.ProduceLogTypeEnum.End, window.SelectNum);

                        WindowHelper.ShowPagePlanCard();
                    }
                    //暂停
                    else if (window.SelectState.Equals(1))
                    {
                        ResultModel resultC = ApiManager.SetProduceLog(EnumManager.ProduceLogTypeEnum.Pause, window.SelectNum, (EnumManager.PauseResonEnum)window.PauseReson);
                        if (resultC.Result)
                        {
                            WindowHelper.ShowPagePlanCard();
                        }
                        else
                        {
                            MessageBox.Show(resultC.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                        }
                    }
                    //取消
                    else
                    {
                    }
                    return;
                }

                //弹出扫码界面
                WindowHelper.MaterialScanWindow = new WindowMaterialScan();
                WindowHelper.MaterialScanWindow.ShowDialog();
                new SerialPortScanCode().Start();
                WindowHelper.IsOpenMaterialScanWindow = false;

                //重加载物料数据
                ResetMaterial();

                if ((WindowHelper.MaterialScanWindow as WindowMaterialScan).OperateType.Equals(0))
                {
                    //不操作
                }
                else
                {
                    //弹出选择 完工/暂停/取消 窗口
                    WindowPlanExecuteState window = new WindowPlanExecuteState();
                    window.ShowDialog();

                    //完工
                    if (window.SelectState.Equals(0))
                    {
                        ResultModel resultA = ApiManager.IsLastProcess();
                        if (resultA.Result)
                        {
                            //是最后一道工序
                            if (Convert.ToBoolean(resultA.Data))
                            {
                                //判断物料是否扫码完成
                                bool isComplete = true;
                                foreach (var item in Maintains)
                                {
                                    if (!item.TotalQuantity.Equals(item.AlreadyScanQuantity))
                                    {
                                        isComplete = false;
                                        break;
                                    }
                                }

                                if (!isComplete)
                                {
                                    MessageBox.Show(@"物料未扫完,禁止完工!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                                }
                                else
                                {
                                    #region 弃用的打印功能

                                    /*//提示打码
                                     * MessageBoxResult boxResult = MessageBox.Show("是否打码?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question);
                                     * if (boxResult == MessageBoxResult.OK)
                                     * {
                                     *  //获取条码
                                     *  ResultModel resultE = ApiManager.GenerateBarCode();
                                     *  if (resultE.Result)
                                     *  {
                                     *      int PointX = -25;//起始点X坐标
                                     *      int PointY = 0;//起始点Y坐标
                                     *                     //string PrintName = "Honeywell PC42t (203 dpi) - DP";//打印机名称
                                     *      string PrintName = ConfigInfo.PrintMachineName;//打印机名称
                                     *      string ContractName = StoreInfo.CurrentWorkingTicket.ContractCode; //合同
                                     *      string ProductName = StoreInfo.CurrentWorkingTicket.ProductName; //产品
                                     *      string PartCode = StoreInfo.CurrentWorkingTicket.FigureNo; //零件图号
                                     *      string PartName = StoreInfo.CurrentWorkingTicket.PartName; //零件名称
                                     *      string MaterialName = StoreInfo.MaterialOneSelf.MaterialInfo.MaterialCode; //材质
                                     *      string BarCode = resultE.Data.ToString();//条码
                                     *      bool isOK = CsBarCodePrint.BarCodePrint(PrintName, PointX, PointY, ContractName, ProductName, PartCode, PartName, MaterialName, BarCode);
                                     *
                                     *      if (isOK)
                                     *      {
                                     *          MessageBox.Show("打印成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Asterisk);
                                     *
                                     *          var resultB = ApiManager.SetActualProducePlanDate(EnumManager.ProducePlanStateEnum.End);
                                     *          var resultC = ApiManager.SetProduceLog(EnumManager.ProduceLogTypeEnum.End, window.SelectNum);
                                     *
                                     *          WindowHelper.ShowPagePlanCard();
                                     *      }
                                     *      else
                                     *      {
                                     *          MessageBox.Show("打印失败!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                                     *      }
                                     *  }
                                     *  else
                                     *  {
                                     *      MessageBox.Show(resultE.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                                     *  }
                                     * }*/
                                    #endregion

                                    var resultB = ApiManager.SetActualProducePlanDate(EnumManager.ProducePlanStateEnum.End);
                                    var resultC = ApiManager.SetProduceLog(EnumManager.ProduceLogTypeEnum.End, window.SelectNum);

                                    WindowHelper.ShowPagePlanCard();
                                }
                            }
                            //不是最后一道工序
                            else
                            {
                                var resultB = ApiManager.SetActualProducePlanDate(EnumManager.ProducePlanStateEnum.End);
                                var resultC = ApiManager.SetProduceLog(EnumManager.ProduceLogTypeEnum.End, window.SelectNum);

                                WindowHelper.ShowPagePlanCard();
                            }
                        }
                        else
                        {
                            MessageBox.Show(resultA.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                        }
                    }
                    //暂停
                    else if (window.SelectState.Equals(1))
                    {
                        ResultModel resultC = ApiManager.SetProduceLog(EnumManager.ProduceLogTypeEnum.Pause, window.SelectNum, (EnumManager.PauseResonEnum)window.PauseReson);
                        if (resultC.Result)
                        {
                            WindowHelper.ShowPagePlanCard();
                        }
                        else
                        {
                            MessageBox.Show(resultC.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                        }
                    }
                    //取消
                    else
                    {
                    }
                }

                break;

            case Key.Up:
                pointY -= drawMoveOffset;
                axMxDrawX.ZoomCenter(pointX, pointY);
                break;

            case Key.Down:
                pointY += drawMoveOffset;
                axMxDrawX.ZoomCenter(pointX, pointY);
                break;

            case Key.Left:
                pointX += drawMoveOffset;
                axMxDrawX.ZoomCenter(pointX, pointY);
                break;

            case Key.Right:
                pointX -= drawMoveOffset;
                axMxDrawX.ZoomCenter(pointX, pointY);
                break;

            case Key.OemPlus:          //+
            case Key.Add:              //+
            case Key.OemCloseBrackets: //}
                SimulationUserCommon.MouseSimulateWheelEvent(ConfigInfo.ZoomIn);
                break;

            case Key.OemMinus:        //-
            case Key.Subtract:        //-
            case Key.OemOpenBrackets: //{
                SimulationUserCommon.MouseSimulateWheelEvent(ConfigInfo.ZoomOut);
                break;

            default: break;
            }
        }
Exemplo n.º 4
0
        //梦想CAD控件操作
        public void MxDrawOperate(object obj)
        {
            //https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.input.key?view=netframework-4.5

            switch (obj)
            {
            case Key.Enter:

                //弹出扫码界面
                //WindowMaterialScan windowA = new WindowMaterialScan();
                //windowA.ShowDialog();
                WindowHelper.MaterialScanWindow = new WindowMaterialScan();
                WindowHelper.MaterialScanWindow.ShowDialog();
                new SerialPortScanCode().Start();
                WindowHelper.IsOpenMaterialScanWindow = false;

                //重加载物料数据
                new MaterialInfoBLL().GetMaterialDetail();
                Maintains = ConvertCommon.ToObservable(GetMaintainData());
                if (Maintains.Count > 0)
                {
                    SelectMaintainIndex = 0;
                }

                if ((WindowHelper.MaterialScanWindow as WindowMaterialScan).OperateType.Equals(0))
                {
                    //不操作
                }
                else
                {
                    //弹出选择 完工/暂停/取消 窗口
                    WindowProceState windowB = new WindowProceState();
                    windowB.ShowDialog();

                    //完工
                    if (windowB.SelectState.Equals(0))
                    {
                        ResultModel resultA = ProduceProceInfoBLL.IsLastProcess();
                        if (resultA.Result)
                        {
                            //是最后一道工序
                            if (Convert.ToBoolean(resultA.Data))
                            {
                                //判断物料是否扫码完成
                                bool isComplete = true;
                                foreach (var item in Maintains)
                                {
                                    if (!item.PartQuantity.Equals(item.PartAlreadyScanQuantity))
                                    {
                                        isComplete = false;
                                        break;
                                    }
                                }

                                if (!isComplete)
                                {
                                    MessageBox.Show(@"物料未扫完,禁止完工!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                                }
                                else
                                {
                                    //提示打码
                                    MessageBoxResult boxResult = MessageBox.Show("是否打码?", "提示", MessageBoxButton.OKCancel, MessageBoxImage.Question);
                                    if (boxResult == MessageBoxResult.OK)
                                    {
                                        //获取条码
                                        ResultModel resultE = ProduceProceInfoBLL.GenerateBarCode(StoreInfoModel.MaterialInfo.GetProcessBom.InventoryCode);
                                        if (resultE.Result)
                                        {
                                            int PointX = -25;                                                                          //起始点X坐标
                                            int PointY = 0;                                                                            //起始点Y坐标
                                            //string PrintName = "Honeywell PC42t (203 dpi) - DP";//打印机名称
                                            string PrintName    = ConfigInfoModel.PrintMachineName;                                    //打印机名称
                                            string ContractName = StoreInfoModel.ProducePlanInfo.GetProjectProduceDetial.ContractCode; //合同
                                            string ProductName  = StoreInfoModel.ProducePlanInfo.GetProjectDetail.ProductName;         //产品
                                            string PartCode     = StoreInfoModel.MaterialInfo.GetProcessBom.PartFigureCode;            //零件图号
                                            string PartName     = StoreInfoModel.MaterialInfo.GetProcessBom.PartName;                  //零件名称
                                            string MaterialName = StoreInfoModel.MaterialInfo.GetProcessBom.MaterialCode;              //材质
                                            string BarCode      = resultE.Data.ToString();                                             //条码
                                            bool   isOK         = CsBarCodePrint.BarCodePrint(PrintName, PointX, PointY, ContractName, ProductName, PartCode, PartName, MaterialName, BarCode);

                                            if (isOK)
                                            {
                                                MessageBox.Show("打印成功!", "提示", MessageBoxButton.OK, MessageBoxImage.Asterisk);

                                                ResultModel resultD = ProduceProceInfoBLL.ProduceProceResult(0, windowB.SelectNum, ProduceProceInfoBLL.ProduceProceStateEnum.CompleteTask);
                                                if (resultD.Result)
                                                {
                                                    WindowHelper.ShowPageProducePlan();
                                                }
                                                else
                                                {
                                                    MessageBox.Show(resultD.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                                                }
                                            }
                                            else
                                            {
                                                MessageBox.Show("打印失败!", "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                                            }
                                        }
                                        else
                                        {
                                            MessageBox.Show(resultE.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                                        }
                                    }
                                }
                            }
                            //不是最后一道工序
                            else
                            {
                                ResultModel resultB = ProduceProceInfoBLL.ProduceProceResult(0, windowB.SelectNum, ProduceProceInfoBLL.ProduceProceStateEnum.CompleteTask);
                                if (resultB.Result)
                                {
                                    WindowHelper.ShowPageProducePlan();
                                }
                                else
                                {
                                    MessageBox.Show(resultB.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                                }
                            }
                        }
                        else
                        {
                            MessageBox.Show(resultA.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                        }
                    }
                    //暂停
                    else if (windowB.SelectState.Equals(1))
                    {
                        ResultModel resultC = ProduceProceInfoBLL.ProduceProceResult(windowB.PauseReson, 0, ProduceProceInfoBLL.ProduceProceStateEnum.PauseTask);
                        if (resultC.Result)
                        {
                            WindowHelper.ShowPageProducePlan();
                        }
                        else
                        {
                            MessageBox.Show(resultC.Msg, "提示", MessageBoxButton.OK, MessageBoxImage.Warning);
                        }
                    }
                    //取消
                    else
                    {
                    }
                }

                break;

            case Key.Up:
                pointY -= drawMoveOffset;
                axMxDrawX.ZoomCenter(pointX, pointY);
                break;

            case Key.Down:
                pointY += drawMoveOffset;
                axMxDrawX.ZoomCenter(pointX, pointY);
                break;

            case Key.Left:
                pointX += drawMoveOffset;
                axMxDrawX.ZoomCenter(pointX, pointY);
                break;

            case Key.Right:
                pointX -= drawMoveOffset;
                axMxDrawX.ZoomCenter(pointX, pointY);
                break;

            case Key.OemPlus:          //+
            case Key.Add:              //+
            case Key.OemCloseBrackets: //}
                MouseSimulateWheelEvent(150);
                break;

            case Key.OemMinus:        //-
            case Key.Subtract:        //-
            case Key.OemOpenBrackets: //{
                MouseSimulateWheelEvent(-120);
                break;

            default: break;
            }
        }