示例#1
0
        private void UpdateCurrentModelEffNorm()
        {
            if (dataGridViewLg.Rows.Count > 0)
            {
                LedLeftovers ledLeftovers = (LedLeftovers)dataGridViewLg.Rows[0].Cells["ColumnButtonLed"].Tag;
                int          headsUsed    = 2;
                if (ledLeftovers.RankA.Count() > 0)
                {
                    headsUsed = ledLeftovers.RankA.Count * 2;
                }

                string model      = dataGridViewLg.Rows[0].Cells["ColumnModel"].Value.ToString();
                double orderedQty = double.Parse(dataGridViewLg.Rows[0].Cells["ColumnQty"].Value.ToString());
                var    norm       = EfficiencyCalculation.CalculateModelNormPerHour(model, smtLine, headsUsed);

                labelLgModelName.Text     = $"Czas cyklu: {norm.lineCT}sek";
                labelLgNormPerH.Text      = $"Norma szt/h: {norm.outputPerHour}";
                labelLgLotNorm.Text       = $"Norma na LOT: {Math.Round(orderedQty * 60 / norm.outputPerHour,0)}min";
                labelLgHeadCount.Text     = $"Używane głowice: {headsUsed}";
                labelLgNormModelName.Text = $"Norma modelu: {norm.modelSpec.model12Nc}";
            }
        }
示例#2
0
        private void MstSaveOrder_Click(object sender, EventArgs e)
        {
            if (currentMstOrder.OrderNumber.Trim() != "")
            {
                timerMstUpdate.Enabled = false;
                using (FinishMstOrder finishForm = new FinishMstOrder(ref currentMstOrder, smtLine))
                {
                    if (finishForm.ShowDialog() == DialogResult.OK)
                    {
                        if (currentMstOrder.RecordId > 0)
                        {
                            SqlOperations.UpdateCurrentMstOrderQuantity(currentMstOrder.MadeQty, currentMstOrder.RecordId);
                        }
                        else
                        {
                            SqlOperations.SaveRecordToDb(currentMstOrder.DateStart, DateTime.Now, smtLine, currentMstOrder.Oper, currentMstOrder.OrderNumber, currentMstOrder.Nc10, currentMstOrder.MadeQty.ToString(), "0", "0", "check", "", currentMstOrder.Stencil, "MST", 0);
                        }

                        double efficiency = Math.Round(EfficiencyCalculation.CalculateEfficiency(currentMstOrder.DateStart, DateTime.Now, currentMstOrder.Nc10, currentMstOrder.MadeQty, true) * 100, 0);

                        dataGridViewMstOrders.Rows.Insert(0, currentMstOrder.DateStart, DateTime.Now, currentMstOrder.OrderNumber, currentMstOrder.Nc10.Insert(4, " ").Insert(8, " "), currentMstOrder.MadeQty, efficiency + "%", currentMstOrder.ModelName);
                        currentMstOrder = new CurrentMstOrder("Brak", "Brak", 0, 0, DateTime.Now, "Brak", "0000000000", DateTime.Now, 0, 0, 0, 0, new List <ledReelData>(), "Brak", 0, 0);
                        dataGridViewMstLedReels.Rows.Clear();
                        dataGridViewLedTrash.Rows.Clear();
                        UpdateMstLabels();
                        DgvTools.CleanUpMstDgv(dataGridViewMstOrders);
                        var eff = Math.Round(MstCurrentShiftEfficiency.CalculateCurrentShiftEff(currentMstOrder, dataGridViewMstOrders), 0);
                        angularGauge1.Value = Math.Min(100, eff);
                        labelCurrentShiftEfficiency.Text = $"Wydajność aktualnej zmiany: {eff}%";
                    }
                    else
                    {
                        timerMstUpdate.Enabled = true;
                    }
                }
            }
        }
示例#3
0
        private void LoadMstOrdersFromDb(int recordsQuantity)
        {
            var       nc       = MST.MES.SqlOperations.ConnectDB.Nc12ToModelFullDict();
            DataTable sqlTable = SqlOperations.GetMstSmtRecordsFromDb(recordsQuantity, smtLine);
            var       smto     = MST.MES.SqlDataReaderMethods.SMT.GetOneOrder("");

            dataGridViewMstOrders.Columns["MstOrdersStart"].DefaultCellStyle.Format = "HH:mm dd-MMM";
            dataGridViewMstOrders.Columns["MstOrdersEnd"].DefaultCellStyle.Format   = "HH:mm dd-MMM";

            List <EfficiencyCalculation.OrderDataForEfficiencyStructure> ordersEff = new List <EfficiencyCalculation.OrderDataForEfficiencyStructure>();

            if (sqlTable.Rows.Count > 0)
            {
                HashSet <string> nc12ToModelList = new HashSet <string>();
                foreach (DataRow row in sqlTable.Rows)
                {
                    DateTime startDate = DateTime.Parse(row["DataCzasStart"].ToString().Trim());
                    DateTime endDate   = DateTime.Parse(row["DataCzasKoniec"].ToString().Trim());

                    string nc10       = row["Model"].ToString();
                    double qty        = 0;
                    string orderNo    = row["NrZlecenia"].ToString();
                    double efficiency = 0;

                    if (double.TryParse(row["IloscWykonana"].ToString(), out qty))
                    {
                        efficiency = Math.Round(EfficiencyCalculation.CalculateEfficiency(startDate, endDate, nc10, qty, true) * 100, 0);
                    }
                    string name = nc.ContainsKey(nc10 + "00") ? nc[nc10 + "00"] : nc10;
                    dataGridViewMstOrders.Rows.Insert(0, startDate, endDate, orderNo, nc10.Insert(4, " ").Insert(8, " "), qty, efficiency + "%", name);
                    nc12ToModelList.Add(nc10 + "00");

                    ordersEff.Add(new EfficiencyCalculation.OrderDataForEfficiencyStructure()
                    {
                        start = startDate, end = endDate, qty = qty, modelId = nc10
                    });

                    var owningShift  = DateTools.GetOrderOwningShift(startDate, endDate);
                    var currentShift = DateTools.whatDayShiftIsit(DateTime.Now);
                    //1878856
                    if (orderNo == "1878856")
                    {
                        ;
                    }
                    if (owningShift.fixedDate != currentShift.fixedDate)
                    {
                        if (owningShift.fixedDate.Date == currentShift.fixedDate.Date)
                        {
                            DgvTools.ColorDgvRow(dataGridViewMstOrders.Rows[0], Color.LightGray);
                        }
                        else
                        {
                            DgvTools.ColorDgvRow(dataGridViewMstOrders.Rows[0], Color.Silver);
                        }
                    }
                }
                //Dictionary<string, string> nc12toName = SqlOperations.nc12ToModelDict(nc12ToModelList.ToArray());

                //foreach (DataGridViewRow row in dataGridViewMstOrders.Rows)
                //{
                //    string nc12 = row.Cells["Column12NC"].Value.ToString().Replace(" ","") + "00";
                //    row.Cells["ColumnName"].Value = nc12toName[nc12];
                //}

                DgvTools.AutoSizeColumns(dataGridViewMstOrders, DataGridViewAutoSizeColumnMode.AllCells);

                EfficiencyRecordsForOrdersHistory.FillOutListView(lVMstEfficiencyRecord, ordersEff);
            }

            var eff = Math.Round(MstCurrentShiftEfficiency.CalculateCurrentShiftEff(currentMstOrder, dataGridViewMstOrders), 0);

            angularGauge1.Value = Math.Min(100, eff);
            labelCurrentShiftEfficiency.Text = $"Wydajność aktualnej zmiany: {eff}%";
        }
示例#4
0
        private void textBoxOrderNumber_Leave(object sender, EventArgs e)
        {
            labelModelInfo.Text = "";
            //DataTable lotTable = MST.MES.SqlOperations.Kitting.GetKittingTableForLots(new string[] { textBoxOrderNumber.Text });
            var kittingInfo = MST.MES.SqlDataReaderMethods.Kitting.GetKittingDataForOrders(new string[] { textBoxOrderNumber.Text });

            if (kittingInfo.Count > 0)
            {
                var orderInfo = kittingInfo[textBoxOrderNumber.Text];
                currentMstOrderData.OrderNumber = textBoxOrderNumber.Text;
                string modelId = orderInfo.modelId;
                currentMstOrderData.Nc10      = modelId;
                currentMstOrderData.ModelName = orderInfo.ModelName;;
                DataTable modelInfoTable = MST.MES.SqlOperations.MesModels.GetMstModelInfo(modelId);

                var effPerHour = EfficiencyCalculation.CalculateModelNormPerHour(modelId, smtLine);

                currentMstOrderData.OrderedQty  = (int)orderInfo.orderedQty;
                currentMstOrderData.OrderNumber = textBoxOrderNumber.Text;
                currentMstOrderData.PcbOnMb     = TryParseNullableCell(modelInfoTable.Rows[0]["SMT_Carrier_QTY"].ToString());
                currentMstOrderData.ResQty      = TryParseNullableCell(modelInfoTable.Rows[0]["Resistor_Qty"].ToString());
                currentMstOrderData.ConnQty     = TryParseNullableCell(modelInfoTable.Rows[0]["Conn_Qty"].ToString());
                currentMstOrderData.LedQty      = TryParseNullableCell(modelInfoTable.Rows[0]["PKG_SUM_QTY"].ToString());
                currentMstOrderData.BinQty      = (int)orderInfo.numberOfBins;
                currentMstOrderData.NormPerHour = Math.Round(effPerHour.outputPerHour, 0);
                textBoxOrderNumber.BackColor    = Color.Lime;
                labelModelInfo.Text            += currentMstOrderData.Nc10.Insert(4, " ").Insert(8, " ") + Environment.NewLine +
                                                  currentMstOrderData.ModelName + Environment.NewLine +
                                                  "Ilość zlecona: " + currentMstOrderData.OrderedQty;

                var previousSmtRecords = MST.MES.SqlDataReaderMethods.SMT.GetOneOrder(textBoxOrderNumber.Text);
                if (previousSmtRecords.totalManufacturedQty > 0)
                {
                    labelPreviousSmtInfo.Text = "Kontynuacja zlecenia." + Environment.NewLine +
                                                $"Do tej pory wykonano: {previousSmtRecords.totalManufacturedQty} szt." + Environment.NewLine +
                                                $"Pozostało do wykonania: {currentMstOrderData.OrderedQty - previousSmtRecords.totalManufacturedQty} szt.";
                    currentMstOrderData.PreviouslyManufacturedQty = previousSmtRecords.totalManufacturedQty;
                }
                else
                {
                    labelPreviousSmtInfo.Text = "";
                }

                if (currentMstOrderData.Nc10.Contains("-"))
                {
                    labelPreviousSmtInfo.Text = "To jest zlecenie LG, zmień zakładkę na LGIT!";
                }
            }
            else
            {
                labelModelInfo.Text = "Nieprawidłowy numer zlecenia - Brak zlecenia w bazie Kitting!";
            }


            //if (MST.MES.SqlOperations.SMT.SmtLots(new string[] { textBoxOrderNumber.Text }).Rows.Count > 0)
            //{
            //    labelModelInfo.Text = "Ten numer zlecenia nie istnieje w bazie SMT";
            //}
            //if (lotTable.Rows.Count > 0)
            //{
            //    currentMstOrderData.OrderNumber = textBoxOrderNumber.Text;
            //    string modelId = lotTable.Rows[0]["NC12_wyrobu"].ToString();
            //    currentMstOrderData.Nc10 = modelId;
            //    currentMstOrderData.ModelName = MST.MES.SqlOperations.ConnectDB.NC12ToModelName(modelId + "00");
            //    DataTable modelInfoTable = MST.MES.SqlOperations.MesModels.GetMstModelInfo(modelId);

            //    var effPerHour = EfficiencyCalculation.CalculateModelNormPerHour(modelId, smtLine);

            //    currentMstOrderData.OrderedQty = TryParseNullableCell(lotTable.Rows[0]["Ilosc_wyrobu_zlecona"].ToString());
            //    currentMstOrderData.OrderNumber = textBoxOrderNumber.Text;
            //    currentMstOrderData.PcbOnMb = TryParseNullableCell(modelInfoTable.Rows[0]["SMT_Carrier_QTY"].ToString());
            //    currentMstOrderData.ResQty = TryParseNullableCell(modelInfoTable.Rows[0]["Resistor_Qty"].ToString());
            //    currentMstOrderData.ConnQty = TryParseNullableCell(modelInfoTable.Rows[0]["Conn_Qty"].ToString());
            //    currentMstOrderData.LedQty = TryParseNullableCell(modelInfoTable.Rows[0]["PKG_SUM_QTY"].ToString());
            //    currentMstOrderData.BinQty = TryParseNullableCell(lotTable.Rows[0]["IloscKIT"].ToString());
            //    currentMstOrderData.NormPerHour = Math.Round(effPerHour.outputPerHour, 0);
            //    textBoxOrderNumber.BackColor = Color.Lime;
            //    labelModelInfo.Text += currentMstOrderData.Nc10.Insert(4, " ").Insert(8, " ") + Environment.NewLine +
            //        currentMstOrderData.ModelName + Environment.NewLine +
            //        "Ilość zlecona: " + currentMstOrderData.OrderedQty;

            //    var previousSmtRecords = MST.MES.SqlDataReaderMethods.SMT.GetOneOrder(textBoxOrderNumber.Text);
            //    if (previousSmtRecords.totalManufacturedQty > 0)
            //    {
            //        labelPreviousSmtInfo.Text = "Kontynuacja zlecenia." + Environment.NewLine +
            //            $"Do tej pory wykonano: {previousSmtRecords.totalManufacturedQty} szt." + Environment.NewLine +
            //            $"Pozostało do wykonania: {currentMstOrderData.OrderedQty - previousSmtRecords.totalManufacturedQty} szt.";
            //        currentMstOrderData.PreviouslyManufacturedQty = previousSmtRecords.totalManufacturedQty;
            //    }
            //    else
            //    {
            //        labelPreviousSmtInfo.Text = "";
            //    }

            //    if (currentMstOrderData.Nc10.Contains("-"))
            //    {
            //        labelPreviousSmtInfo.Text = "To jest zlecenie LG, zmień zakładkę na LGIT!";
            //    }
            //}
            //else
            //{
            //    labelModelInfo.Text = "Nieprawidłowy numer zlecenia - Brak zlecenia w bazie Kitting!";
            //}
        }