using DevExpress.Printing.Core.PdfExport.Metafile; using NPOI.SS.Formula.Eval; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Configuration.Assemblies; using System.Data; using System.Diagnostics; using System.Drawing; using System.IO; using System.Linq; using System.Text; using System.Windows.Forms; using System.Xml; using UAS_MES_NEW.DataOperate; using UAS_MES_NEW.Entity; using UAS_MES_NEW.PublicMethod; namespace UAS_MES_NEW.Make { public partial class Make_BurnInspection : Form { StringBuilder SQL = new StringBuilder(); LogStringBuilder sql = new LogStringBuilder(); DataHelper dh = new DataHelper(); DataTable Dbfind; DataTable dt = new DataTable(); string SN,WO = ""; string burnId; public Make_BurnInspection() { InitializeComponent(); } private void Make_WirelessTest_Load(object sender, EventArgs e) { //设置锁定工单 LockMakeCode.GetMakeCodeCtl(ma_code); ma_code.SetLockCheckBox(LockMakeCode); //工单号放大镜配置 ma_code.TableName = "make left join product on ma_prodcode=pr_code"; ma_code.SelectField = "ma_code # 工单号,pr_code # 产品编号,pr_detail # 产品名称"; ma_code.FormName = Name; ma_code.SetValueField = new string[] { "ma_code", "pr_code", "pr_detail" }; ma_code.Condition = "ma_statuscode='STARTED'"; ma_code.DbChange += Ma_code_DbChange; dh = SystemInf.dh; } private void Ma_code_DbChange(object sender, EventArgs e) { Dbfind = ma_code.ReturnData; BaseUtil.SetFormValue(this.Controls, Dbfind); //获取工单的其他信息 sql.Clear(); sql.Append("select ma_code,nvl(mcd_okqty,0) mcd_okqty,ma_prodcode as pr_code ,pr_detail,"); sql.Append("pr_spec,ma_qty - nvl(mcd_inqty, 0) mcd_remainqty,ma_qty from make left join makecraftdetail on "); sql.Append("mcd_maid=ma_id left join product on pr_code=ma_prodcode where ma_code='" + ma_code.Text + "'"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { BaseUtil.SetFormValue(this.Controls, dt); } SQL.Clear(); if (!string.IsNullOrEmpty(ma_code.Text)) { SQL.Append($"AND a.work_order = '{ma_code.Text}'"); } dt = (DataTable)dh.ExecuteSql($@"SELECT a.burn_id,a.burn_lotno,a.work_order, a.line,a.burn_software,a.check_code, a.dot_detail,b.inspect_time,b.inspect_name,b.inspect_res FROM burn_info a LEFT JOIN burn_inspect b ON a.burn_id = b.burn_id WHERE 1 = 1 {SQL.ToString()}", "select"); if (dt.Rows.Count > 0) { DataBox.DataSource = dt; } ShowMsg(1, $"工单: {ma_code.Text} 已找到{dt.Rows.Count}条烧录记录"); } private void ClearMsg_Click(object sender, EventArgs e) { OperatResult.Clear(); } private void OK_Click(object sender, EventArgs e) { PassStation("OK"); } private void NG_Click(object sender, EventArgs e) { PassStation("NG"); } private void PassStation(string testResult) { BurnLotnoVal.Text = BurnLotnoVal.Text.Trim(); if (string.IsNullOrEmpty(EmployeeVal.Text)) { ShowMsg(0, $"请填写抽检人员"); return; } if (DataBox.Rows.Count == 0) { ShowMsg(0, $"请选择工单筛选出烧录信息"); return; } if (string.IsNullOrEmpty(BurnLotnoVal.Text)) { ShowMsg(0, $"请扫描烧录批号"); return; } foreach (DataGridViewRow item in DataBox.Rows) { string currLotNo = item.Cells["burn_lotno"].Value.ToString(); if (currLotNo == BurnLotnoVal.Text.Trim()) { burnId = item.Cells["BURN_ID"].Value.ToString(); } } if (string.IsNullOrEmpty(burnId)) { ShowMsg(0, $"请抽检所查询中烧录批号"); return; } dt = (DataTable)dh.ExecuteSql($@"select * from burn_inspect where burn_lotno = '{BurnLotnoVal.Text}'", "select"); if (dt.Rows.Count > 0) { ShowMsg(0, $"批号 {BurnLotnoVal.Text}已抽检"); return; } SQL.Clear(); SQL.Append($@"INSERT INTO burn_inspect (burn_inspect_id,BURNLOTNO,BURNID, inspect_res,inspect_time,inspect_name) VALUES (burn_inspect_seq.NEXTVAL, '{BurnLotnoVal.Text}',{burnId}, '{testResult}',sysdate,'{User.UserName}')"); dh.ExecuteSql(SQL.ToString(), "insert"); ShowMsg(1, $"{BurnLotnoVal.Text} 记录抽检结果{testResult} 成功"); BurnLotnoVal.Focus(); BurnLotnoVal.SelectAll(); } private void BurnLotnoVal_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Enter) return; if (OkBox.Checked) { PassStation("OK"); } else { PassStation("NG"); } } private void OkBox_Click(object sender, EventArgs e) { NgBox.Checked = false; } private void NgBox_Click(object sender, EventArgs e) { OkBox.Checked = false; } private void ShowMsg(int type, string msg) { string fullDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); if (type == 0) { OperatResult.AppendText($"{fullDateTime}: {msg}\n", Color.Red); } else if (type == 1) { OperatResult.AppendText($"{fullDateTime}: {msg}\n", Color.Green); } else if (type == 1) { OperatResult.AppendText($"{fullDateTime}: {msg}\n", Color.YellowGreen); } } } }