private void InitCommand()
        {
            DirectorySelectBaseCommand = new DelegateCommand((obj) =>
            {
                // 导出目录选择
                System.Windows.Forms.FolderBrowserDialog fbd = new System.Windows.Forms.FolderBrowserDialog();

                if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                {
                    HostConfig.HostValue = fbd.SelectedPath;
                    var result           = CommonService.SaveHostConfig(HostConfig);
                    if (result)
                    {
                        HostConfig = CommonService.GetHostConfig(Menu.ID, HostName, User.ID);
                    }
                }
            });

            ExportBaseCommand = new DelegateCommand((obj) =>
            {
                if (Directory.Exists(HostConfig.HostValue))
                {
                    ExportView view = new ExportView(Menu.ID, 3);// Menu.ID-SJExportViewTypedColumn中的ViewGroupId; 3 - 第几个radioButton被默认选中从1开始
                    //Export((type - 导出1 取消0, outputEntity 界面选中的radiobuttion 同上, checkBoxValue 选择分类导出的情况下,选择的类别和, orderedColumns 选择分类导出的情况下,选择类别的顺序列表)
                    (view.DataContext as ExportViewModel).Export((type, outputEntity, checkBoxValue, orderedColumns) =>
                    {
                        view.Close();
                        if (type == 1)
                        {
                            if (outputEntity == 3)
                            {
                                DataTable datatable = _service.GetSJBatchBomRequestDeliveryExportData(GeneralParameter.ParamBeginDate.Value, string.Join(",", orderedColumns));
                                if (datatable.Rows.Count > 0)
                                {
                                    ExportHelper.ExportDeliveryDataToExcel(GeneralParameter.ParamBeginDate.Value, datatable, HostConfig.HostValue, HostConfig.TypeDesciption + CommonService.GetQueryParameterValueString(GeneralParameter)
                                                                           , outputEntity, orderedColumns, true, "$$$发料单", true);
                                    MessageBox.Show("导出成功");
                                }
                                else
                                {
                                    MessageBox.Show($"【{GeneralParameter.ParamBeginDate.Value}】 没有可导出的数据");
                                }
                            }
                            else
                            {
                                DataTable datatable = _service.GeSJBatchBOMSummaryExportData(GeneralParameter.ParamBeginDate.Value);
                                if (datatable.Rows.Count > 0)
                                {
                                    ExportHelper.ExportDataTableToExcel(datatable, HostConfig.HostValue, "物料需求" + CommonService.GetQueryParameterValueString(GeneralParameter), outputEntity, null, false, "物料需求", false);
                                    MessageBox.Show("导出成功");
                                }
                                else
                                {
                                    MessageBox.Show($"【{GeneralParameter.ParamBeginDate.Value}】 没有可导出的数据");
                                }
                            }
                        }
                    });
                    view.ShowDialog();
                }
                else
                {
                    MessageBox.Show("目录不存在,请先选择导出的目录");
                    DirectorySelectBaseCommand.Execute(null);
                }
                CommonService.WriteActionLog(new ActionOperationLogModel {
                    ActionName = "ExportBaseCommand", ActionDesc = HostConfig.TypeDesciption + HostConfig.TypeId.ToString(), UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName
                });
            });

            MaterialRequestGenerateCommand = new DelegateCommand((obj) =>
            {
                _service.SplitBatchBomRequest(GeneralParameter.ParamBeginDate.Value);
                QueryBaseCommand.Execute(null);
                CommonService.WriteActionLog(new ActionOperationLogModel {
                    ActionName = "MaterialRequestGenerateCommand", ActionDesc = "生成物料需求", UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName
                });
            });

            WorkshopInventoryRefreshCommand = new DelegateCommand((obj) =>
            {
                BatchBomRequestSummaryLists.Clear();
                _service.RefreshWorkshopInventoryQty(CommonService.GetSqlWhereString(Filter));
                QueryBaseCommand.Execute(null);
                CommonService.WriteActionLog(new ActionOperationLogModel {
                    ActionName = "WorkshopInventoryRefreshCommand", ActionDesc = "获取现场库存", UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName
                });
            });

            QueryBaseCommand = new DelegateCommand((obj) =>
            {
                BatchBomRequestSummaryLists.Clear();
                InventoryLists.Clear();
                DeliverTransferLists.Clear();
                _service.GetBatchBomRequestDetailSummaryLists(CommonService.GetSqlWhereString(Filter)).ForEach(x => BatchBomRequestSummaryLists.Add(x));
            });

            DeliverCommand = new DelegateCommand((obj) =>
            {
                if (BatchBomRequestSummarySelectedItem != null)
                {
                    if (InventorySelectedItem != null && InventorySelectedItem.TransferingWeight > 0 && InventorySelectedItem.TransferingWeight <= InventorySelectedItem.TotalWeight)
                    {
                        if (_service.InsertDeliverTransfer(InventorySelectedItem))
                        {
                            DeliverTransferLists.Clear();
                            _service.GetDeliverTransferLists(BatchBomRequestSummarySelectedItem).ForEach(x => DeliverTransferLists.Add(x));
                            BatchBomRequestSummarySelectedItem.QtyTransfering = DeliverTransferLists.Where(x => string.IsNullOrEmpty(x.TransferedBillNo)).Sum(x => x.TransferingWeight).Value;
                        }
                    }
                    else
                    {
                        MessageBox.Show("发料数量必须大于0且小于总重量");
                    }
                }
                else
                {
                    MessageBox.Show("先选择主表行数据");
                }
                CommonService.WriteActionLog(new ActionOperationLogModel {
                    ActionName = "DeliverCommand", ActionDesc = "发料", UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName
                });
            });

            DeliveryDeleteCommand = new DelegateCommand((obj) =>
            {
                int id = -1;
                if (BatchBomRequestSummarySelectedItem != null)
                {
                    var selectedLists = ((obj as DataGrid).SelectedItems).Cast <MaterialTimelyInventoryModel>().ToList();
                    if (selectedLists.Count == 1)
                    {
                        var model = selectedLists.First();
                        if (_service.DeleteDeliverTransfer(model.Id))
                        {
                            id = model.Id;
                            DeliverTransferLists.Clear();
                            _service.GetDeliverTransferLists(BatchBomRequestSummarySelectedItem).ForEach(x => DeliverTransferLists.Add(x));
                            BatchBomRequestSummarySelectedItem.QtyTransfering = DeliverTransferLists.Sum(x => x.TransferingWeight).Value;
                        }
                    }
                    else
                    {
                        MessageBox.Show("每次必须选中且删除一行记录");
                    }
                }
                else
                {
                    MessageBox.Show("先选择主表行数据");
                }
                CommonService.WriteActionLog(new ActionOperationLogModel {
                    ActionName = "DeliveryDeleteCommand", ActionDesc = "删除发料", UserId = User.ID, MainMenuId = Menu.ID, PKId = id, HostName = HostName
                });
            });

            TransferDeleteCommand = new DelegateCommand((obj) =>
            {
                if (BatchBomRequestSummarySelectedItem != null)
                {
                    var selectedLists = ((obj as DataGrid).SelectedItems).Cast <MaterialTimelyInventoryModel>().ToList();
                    if (selectedLists.Count == 1)
                    {
                        var model = selectedLists.First();
                        if (!_service.ExistsK3Bill(model.TransferedBillNo))
                        {
                            if (_service.DeleteDeliverTransfer(model.TransferedBillNo))
                            {
                                //重新加载主表格
                                QueryBaseCommand.Execute(null);
                            }
                        }
                        else
                        {
                            MessageBox.Show("请先将选择的调拨单号,在K3里面删除");
                        }
                    }
                    else
                    {
                        MessageBox.Show("每次必须选中且删除一行记录");
                    }
                }
                else
                {
                    MessageBox.Show("先选择主表行数据");
                }
                CommonService.WriteActionLog(new ActionOperationLogModel {
                    ActionName = "TransferDeleteCommand", ActionDesc = "删除调拨单", UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName
                });
            });

            SelectionChangedCommand = new DelegateCommand((obj) =>
            {
                if (BatchBomRequestSummarySelectedItem == null)
                {
                    return;
                }
                InventoryLists.Clear();
                _service.GetGetMaterialTimelyInventoryLists(BatchBomRequestSummarySelectedItem.MaterialId, BatchBomRequestSummarySelectedItem.ProductionDate, BatchBomRequestSummarySelectedItem.BatchTypeId, BatchBomRequestSummarySelectedItem.StockId).ForEach(x => InventoryLists.Add(x));
                DeliverTransferLists.Clear();
                _service.GetDeliverTransferLists(BatchBomRequestSummarySelectedItem).ForEach(x => DeliverTransferLists.Add(x));
            });

            BatchNoQtyK3InsertCommand = new DelegateCommand((obj) =>
            {
                // 获取当天所有已发料未调拨数据  var selectedLists = ((obj as DataGrid).SelectedItems).Cast<MaterialTimelyInventoryModel>().ToList();
                var selectedLists = _service.GetK3InsertData(GeneralParameter.ParamBeginDate.Value);
                if (selectedLists.Count > 0)
                {
                    var emp = K3ApiFKService.GetEmployeeByUserName(User.UserName);
                    if (emp != null)
                    {
                        TransferMainModel main = new TransferMainModel
                        {
                            FBillerID = new BaseNumberNameModelX {
                                FNumber = emp.FName, FName = emp.FName
                            },
                            FFManagerID = emp, // BaseNumberNameModelX { FNumber = "111", FName = "吴强" },
                            FSManagerID = emp, // new BaseNumberNameModelX { FNumber = "111", FName = "吴强" },
                            FRefType    = new BaseNumberNameModelX {
                                FNumber = "01", FName = "成本调拨"
                            },
                            FClassTypeID = 41,
                            FDate        = DateTime.Now.Date.ToString("yyyy-MM-dd")
                        };

                        List <TransferSonModel> sons = new List <TransferSonModel>();

                        foreach (MaterialTimelyInventoryModel item in selectedLists)
                        {
                            sons.Add(new TransferSonModel
                            {
                                FItemID = new BaseNumberNameModelX {
                                    FNumber = item.MaterialNumber, FName = item.MaterialName
                                },                                                                                              // K3ApiFKService.GetMaterialById
                                FChkPassItem = new BaseNumberNameModelX {
                                    FNumber = "Y", FName = "是"
                                },
                                FPlanMode = new BaseNumberNameModelX {
                                    FNumber = "MTS", FName = "MTS计划模式"
                                },
                                FDCStockID1 = new BaseNumberNameModelX {
                                    FNumber = item.ParentStockNumber, FName = item.ParentStockName
                                },                                                                                                        //K3ApiFKService.GetStockById(item.ParentStockId),
                                FSCStockID1 = new BaseNumberNameModelX {
                                    FNumber = item.StockNumber, FName = item.StockName
                                },
                                FUnitID = new BaseNumberNameModelX {
                                    FNumber = "kg", FName = "kg"
                                },
                                FAuxQty  = item.TransferingWeight.Value,
                                FQty     = item.TransferingWeight.Value,
                                FBatchNo = item.BatchNo,
                            });
                        }
                        var requestModel = new K3ApiInsertRequestModel <TransferMainModel, TransferSonModel>()
                        {
                            Data = new K3ApiInsertDataRequestModel <TransferMainModel, TransferSonModel>()
                            {
                                Page1 = new List <TransferMainModel> {
                                    main
                                },
                                Page2 = sons
                            }
                        };

                        string postJson = JsonHelper.ObjectToJson(requestModel);
                        K3ApiInsertResponseModel response = K3ApiService.Insert("Transfer", postJson);
                        if (response.StatusCode == 200)
                        {
                            //double totalQty = selectedLists.Sum(x => x.TransferingWeight).Value;
                            string ids = string.Join(",", selectedLists.Select(x => x.Id));
                            if (_service.UpdateBillNo(ids, response.Data.BillNo))
                            {
                                QueryBaseCommand.Execute(null);
                            }
                            else
                            {
                                MessageBox.Show($"插入K3调拨单,更新发料表失败,请联系管理员");
                            }
                        }
                        else
                        {
                            MessageBox.Show($"{response.Message}");
                        }
                    }
                    else
                    {
                        MessageBox.Show($"【{User.UserName}】 在K3里面不存在,或不一致");
                    }
                }
                else
                {
                    MessageBox.Show($"【{GeneralParameter.ParamBeginDate.Value}】 没有已发料且未调拨的数据");
                }

                CommonService.WriteActionLog(new ActionOperationLogModel {
                    ActionName = "BatchNoQtyK3InsertCommand", ActionDesc = "生成调拨单", UserId = User.ID, MainMenuId = Menu.ID, PKId = -1, HostName = HostName
                });
            });
        }
Beispiel #2
0
 private void Awake()
 {
     inventoryLists = GameObject.FindGameObjectWithTag("Player").GetComponent <InventoryLists>();
     hungerDecay    = GameObject.FindGameObjectWithTag("Player").GetComponent <HungerDecay>();
 }