Beispiel #1
0
        private void tracker_bar_textBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == System.Convert.ToChar(13))
            {
                if (this.tracker_bar_textBox.Text.Trim() == "")
                {
                    this.tracker_bar_textBox.Focus();
                    MessageBox.Show("追踪条码的内容为空,请检查!");
                    return;
                }

                try
                {
                    if (Untils.isTimeError(testdatetextBox.Text.Trim()))
                    {
                        this.bomdownload.Enabled = false;
                    }

                    Untils.deleteFile("D:\\fru\\", "BOM.bat");
                    Untils.deleteFile("D:\\fru\\", "BOM.NSH");
                    Untils.deleteFile("D:\\fru\\", "DPK.TXT");

                    SqlConnection mConn = new SqlConnection(Constlist.ConStr);
                    mConn.Open();

                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection  = mConn;
                    cmd.CommandType = CommandType.Text;

                    cmd.CommandText = "select station from stationInformation where track_serial_no='" + this.tracker_bar_textBox.Text.Trim() + "'";

                    SqlDataReader querySdr = cmd.ExecuteReader();
                    string        station  = "";
                    while (querySdr.Read())
                    {
                        station = querySdr[0].ToString();
                    }
                    querySdr.Close();

                    if (station != "维修" && station != "BGA")
                    {
                        MessageBox.Show("板子已经经过站别" + station);
                        mConn.Close();
                        this.tracker_bar_textBox.Focus();
                        this.tracker_bar_textBox.SelectAll();
                        return;
                    }

                    cmd.CommandText = "select track_serial_no,product from repair_record_table where track_serial_no='" + this.tracker_bar_textBox.Text.Trim() + "'";

                    querySdr                 = cmd.ExecuteReader();
                    track_serial_no          = ""; product = "";
                    this.bomdownload.Enabled = false; this.buffertest.Enabled = false; this.isburn.Enabled = false;
                    if (querySdr.HasRows == false)
                    {
                        querySdr.Close();
                        MessageBox.Show("本条形码不在维修表中,现在检查buffer表!");

                        cmd.CommandText = "select track_serial_no,product from mb_out_stock where track_serial_no='" + this.tracker_bar_textBox.Text.Trim() + "'";
                        querySdr        = cmd.ExecuteReader();
                        if (querySdr.HasRows == false)
                        {
                            MessageBox.Show("本条形码不在buffer出库表中,请检查!");
                            querySdr.Close();
                            mConn.Close();
                            return;
                        }
                        else
                        {
                            while (querySdr.Read())
                            {
                                track_serial_no = querySdr[0].ToString();
                                product         = querySdr[1].ToString();
                            }
                            querySdr.Close();
                            existBuffer             = true;
                            this.buffertest.Enabled = true;
                            this.isburn.Enabled     = true;
                        }
                    }
                    else
                    {
                        while (querySdr.Read())
                        {
                            track_serial_no = querySdr[0].ToString();
                            product         = querySdr[1].ToString();
                        }
                        querySdr.Close();
                        this.bomdownload.Enabled = true;
                        existRepair = true;
                    }

                    if (existRepair)
                    {
                        cmd.CommandText = "select top 1 _status from bga_wait_record_table where track_serial_no='" + this.tracker_bar_textBox.Text.Trim() + "' order by Id desc";

                        querySdr = cmd.ExecuteReader();
                        string bgastatus = "";
                        while (querySdr.Read())
                        {
                            bgastatus = querySdr[0].ToString();
                        }
                        querySdr.Close();

                        if (bgastatus == "BGA不良")
                        {
                            MessageBox.Show("BGA的维修记录不对,请检查!");
                            querySdr.Close();
                            mConn.Close();
                            return;
                        }
                    }

                    if (product != "" && product != "LBG")//TBG, DT, AIO
                    {
                        if (track_serial_no != "")
                        {
                            customMaterialNo = ""; vendor_serail_no = ""; mac = ""; uuid = ""; custom_serial_no = ""; mb_brief = "";
                            if (existRepair)
                            {
                                cmd.CommandText = "select custommaterialNo, vendor_serail_no,mac,uuid,custom_serial_no,mb_brief  from DeliveredTable where track_serial_no='" + this.tracker_bar_textBox.Text.Trim() + "'";
                                querySdr        = cmd.ExecuteReader();
                                while (querySdr.Read())
                                {
                                    customMaterialNo = querySdr[0].ToString();
                                    vendor_serail_no = querySdr[1].ToString();

                                    mac              = querySdr[2].ToString();
                                    uuid             = querySdr[3].ToString();
                                    custom_serial_no = querySdr[4].ToString();
                                    mb_brief         = querySdr[5].ToString();
                                }
                                querySdr.Close();
                            }
                            else if (existBuffer)
                            {
                                cmd.CommandText = "select custommaterialNo, vendor_serial_no,custom_serial_no,mb_brief from mb_out_stock where track_serial_no='" + this.tracker_bar_textBox.Text.Trim() + "'";
                                querySdr        = cmd.ExecuteReader();
                                while (querySdr.Read())
                                {
                                    customMaterialNo = querySdr[0].ToString();
                                    vendor_serail_no = querySdr[1].ToString();

                                    custom_serial_no = querySdr[2].ToString();
                                    mb_brief         = querySdr[3].ToString();
                                }
                                querySdr.Close();
                            }

                            if (customMaterialNo != "")
                            {
                                cpu_type        = ""; cpu_freq = ""; dpk_type = ""; dpkpn = ""; mpn = "";
                                cmd.CommandText = "select cpu_type,cpu_freq,dpk_type,dpkpn, mpn from MBMaterialCompare where custommaterialNo='" + customMaterialNo + "'";

                                querySdr = cmd.ExecuteReader();

                                while (querySdr.Read())
                                {
                                    cpu_type = querySdr[0].ToString();
                                    cpu_freq = querySdr[1].ToString();
                                    dpk_type = querySdr[2].ToString();
                                    dpkpn    = querySdr[3].ToString();
                                    mpn      = querySdr[4].ToString();
                                }
                                querySdr.Close();

                                this.cpuTypetextBox.Text  = cpu_type;
                                this.cpuFreqtextBox.Text  = cpu_freq;
                                this.testerTextBox.Text   = LoginForm.currentUser;
                                this.testdatetextBox.Text = DateTime.Now.ToString("yyyy/MM/dd");

                                KEYID = ""; KEYSERIAL = "";
                                if (dpk_type != "NOK" && dpkpn != "")//此时需要查找导入的dpk表格,查找对应的KEYI KEYSERIAL
                                {
                                    //首先判断这个板子有没有来过,若来过则重新拿号给他,否则去新的
                                    cmd.CommandText = "select burn_date,KEYID,KEYSERIAL from DPK_table where custom_serial_no='" + custom_serial_no + "'";
                                    querySdr        = cmd.ExecuteReader();
                                    string burn_date = "";
                                    while (querySdr.Read())
                                    {
                                        burn_date = querySdr[0].ToString();
                                        KEYID     = querySdr[1].ToString();
                                        KEYSERIAL = querySdr[2].ToString();
                                    }
                                    querySdr.Close();

                                    if (burn_date != "" && Untils.in90Days(burn_date)) //不为空且在90天内
                                    {
                                        //KEYID,KEYSERIAL按之前的序列号,其他内容不变
                                    }
                                    else//不存在或超过90天,则分配新的东西
                                    {
                                        cmd.CommandText = "select KEYID,KEYSERIAL,Id from DPK_table where KEYPN='" + dpkpn + "' and _status ='未使用' order by Id asc";

                                        querySdr = cmd.ExecuteReader();
                                        bool   exist = false;
                                        string id    = "";
                                        while (querySdr.Read())
                                        {
                                            exist     = true;
                                            KEYID     = querySdr[0].ToString();
                                            KEYSERIAL = querySdr[1].ToString();
                                            id        = querySdr[2].ToString();
                                            break;
                                        }
                                        querySdr.Close();

                                        if (exist == false)
                                        {
                                            MessageBox.Show("此DPKPN" + dpkpn + "的序列号已经使用完毕或不存在!");
                                            mConn.Close();
                                            return;
                                        }
                                        else
                                        {
                                            //更新烧录日期与custom_serial_no与使用状态
                                            cmd.CommandText = "update DPK_table set _status = '已使用', burn_date = '" + DateTime.Now.ToString("yyyy/MM/dd") + "',custom_serial_no = '" + custom_serial_no + "' where Id = '" + id + "'";
                                            cmd.ExecuteNonQuery();
                                        }
                                    }
                                }
                                else
                                {
                                    KEYID     = "NOK";
                                    KEYSERIAL = "NOK";
                                }

                                this.keyidtextBox.Text = KEYID;

                                tempKeySerial = KEYSERIAL;
                                this.KEYSERIALtextBox.Text = KEYSERIAL;
                                if (KEYID != "NOK")
                                {
                                    int lastEm = tempKeySerial.LastIndexOf('-');
                                    this.KEYSERIALtextBox.Text = "XXXXX-XXXXX-XXXXX-XXXXX-" + tempKeySerial.Substring(lastEm + 1, 5);
                                }
                            }
                            else
                            {
                                this.tracker_bar_textBox.Focus();
                                this.tracker_bar_textBox.SelectAll();
                                MessageBox.Show("追踪条码的内容不在收货表中,请检查!");
                                mConn.Close();
                                return;
                            }
                        }
                        else
                        {
                            MessageBox.Show("此追踪条码没有维修记录!");
                            mConn.Close();
                            return;
                        }
                    }
                    else
                    {
                        if (product == "")
                        {
                            MessageBox.Show("此追踪条码没有维修记录!");
                            mConn.Close();
                            return;
                        }
                        else
                        {
                            MessageBox.Show("此追踪条码对应的客户别不是TBG, DT, AIO !");
                            mConn.Close();
                            return;
                        }
                    }
                    mConn.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
            }
        }