Exemplo n.º 1
0
        private void ToolStripMenuItem_ERPMoreMtl_Click(object sender, EventArgs e)
        {
            ProgressRuning       = true;
            ProgressBarBot.Value = 0;
            List <Entity.ERP.Model.Part> datas = new List <Entity.ERP.Model.Part>();

            Task.Run(() =>
            {
                try
                {
                    using (Entity.PLM.PLMDbContext PLMDB = new Entity.PLM.PLMDbContext(SysConfig.PLMConn))
                    {
                        var MPART      = PLMDB.MPART.Where(o => o.DEL == false).ToList();
                        var MATERIAL   = PLMDB.MATERIAL.Where(o => o.DEL == false).ToList();
                        var PRODUCT    = PLMDB.PRODUCT.Where(o => o.DEL == false).ToList();
                        var MTL        = PLMDB.MTL.Where(o => o.DEL == false).ToList();
                        var MACH       = PLMDB.MACH.Where(o => o.DEL == false).ToList();
                        var PLMAllPart = PLM.ConvertMPART(MPART, MATERIAL, PRODUCT, MTL, MACH);
                        foreach (var item in BasicDatas.ErpPart)
                        {
                            if (PLMAllPart.Where(o => o.PartNum == item.PartNum).ToList().Count() <= 0)
                            {
                                datas.Add(item);
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    ProgressRuning       = false;
                    ProgressBarBot.Value = 100;
                    MessageBox.Show(ex.StackTrace);
                    throw;
                }
                this.BeginInvoke(new Action(() =>
                {
                    dataGridViewMain.DataSource     = datas;
                    StatusLabelInfo.Text            = "共获取" + datas.Count + "条数据";
                    tabControlMain.SelectedTab.Text = "ERP多余数据";
                    tabControlMain.SelectedIndex    = 0;
                    CurrentDgv           = dataGridViewMain;
                    ProgressRuning       = false;
                    ProgressBarBot.Value = 100;
                }));
            });
        }
        private void buttonUpdate_Click(object sender, EventArgs e)
        {
            progressBarSync.Value = 0;
            labelPecent.Text      = "0%";
            labelSyncStatus.Text  = "";

            string contents = rtboxPartNums.Text.Trim();

            if (!string.IsNullOrEmpty(contents))
            {
                string[] PartNums = contents.Split(new string[] { "\r\n" }, StringSplitOptions.None);
                if (PartNums.Length > 0)
                {
                    labelSyncStatus.Text   = "物料数据开始更新";
                    progressBarSync.Value += 10;
                    Task.Run(() =>
                    {
                        string MM = (DateTime.Now.Hour * 3600 + DateTime.Now.Minute * 60 + DateTime.Now.Second).ToString();
                        FileHelper.CreateDir("DMT" + MM, Application.StartupPath + @"\ExcelImport");
                        SaveFolderPath = Application.StartupPath + @"\ExcelImport\DMT" + MM;
                        DataTable dt   = new DataTable();

                        var dataPart     = BasicDatas.PLM_MPART.Where(o => PartNums.Contains(o.NO)).ToList();
                        var dataMaterial = BasicDatas.PLM_MATERIAL.Where(o => PartNums.Contains(o.NO)).ToList();
                        var dataProduct  = BasicDatas.PLM_PRODUCT.Where(o => PartNums.Contains(o.NO)).ToList();
                        var dataMtl      = BasicDatas.PLM_MTL.Where(o => PartNums.Contains(o.NO)).ToList();
                        var dataMach     = BasicDatas.PLM_MACH.Where(o => PartNums.Contains(o.NO)).ToList();
                        var lists        = PLM.ConvertMPART(dataPart, dataMaterial, dataProduct, dataMtl, dataMach);

                        List <ExportDto.MPART> data = Utilities.MapTo <List <ExportDto.MPART> >(lists);
                        foreach (var it in data)
                        {
                            it.NonStock               = Utilities.CheckNonStock(it.PartNum).ToString().ToUpper();
                            it.PartPlant_NonStock     = it.NonStock;
                            it.TrackLots              = "TRUE";
                            it.PartPlant_CostMethod   = it.CostMethod;
                            it.PartWhse_WarehouseCode = "YJK";
                        }
                        dt = Utility.ListToDataTable(data, "_", "#");
                        Utility.ExportExcel(dt, SaveFolderPath + "\\PART_UPDATE.xls");

                        this.BeginInvoke(new Action(() =>
                        {
                            dgvMain.DataSource     = data;
                            labelSyncStatus.Text   = "物料数据准备就绪";
                            progressBarSync.Value += 40;
                            labelPecent.Text       = progressBarSync.Value + "%";
                            if (data.Count > 0)
                            {
                                StartSync();
                            }
                            else
                            {
                                labelPecent.Text      = "0%";
                                labelSyncStatus.Text  = "无物料数据";
                                progressBarSync.Value = 0;
                            }
                        }));
                    });
                }
            }
            else
            {
                rtboxPartNums.Focus();
                MessageBox.Show("请输入物料编码!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }