using NPOI.SS.Formula; using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using UAS_MES_NEW.CustomControl.ButtonUtil; using UAS_MES_NEW.DataOperate; using UAS_MES_NEW.Entity; using UAS_MES_NEW.PublicMethod; namespace UAS_MES_NEW.Make { public partial class Make_PcbClean : Form { public Make_PcbClean() { InitializeComponent(); } LogStringBuilder sql = new LogStringBuilder(); DataTable Dbfind; DataHelper dh; DataTable dt; private void Make_BurnInfo_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); } LineVal.Items.Clear(); sql.Clear(); sql.Append($@"SELECT dl_linecode FROM deviceline WHERE dl_statuscode = 'STARTED' AND dl_macode = '{ma_code.Text.Trim()}' ORDER BY substr(dl_linecode, 0, 3) DESC, substr(dl_linecode,length(dl_linecode) - 1)"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count > 0) { foreach(DataRow item in dt.Rows) { LineVal.Items.Add(item["dl_linecode"].ToString()); } if(dt.Rows.Count > 1) { LineVal.SelectedIndex = 0; } else { LineVal.SelectedIndex = -1; } } else { ShowMsg(0, $"工单:{ma_code.Text} 未找到启动线体"); return; } dt = (DataTable)dh.ExecuteSql($@"SELECT sn, work_order, line, side, update_time, update_name FROM sn_clean WHERE work_order = '{ma_code.Text}'", "select"); if (dt.Rows.Count > 0) { DataBox.DataSource = dt; } } private void SnVal_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Enter) return; SnVal.Text = SnVal.Text.Trim(); if (string.IsNullOrEmpty(ma_code.Text)) { ShowMsg(0, $"请选择清洗归属工单号"); return; } if (LineVal.SelectedIndex == -1) { ShowMsg(0, $"请选择清洗归属线体"); return; } if (SideVal.SelectedIndex == -1) { ShowMsg(0, $"请选择清洗面别"); return; } sql.Clear(); sql.Append($@"select * from smtbind where sb_barcode = '{SnVal.Text}'"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count == 0) { ShowMsg(0, $"序列号:{SnVal.Text} 未进行拼板绑定"); return; } dh.ExecuteSql($@"INSERT INTO sn_clean (CLEAN_ID,SN,WORK_ORDER,LINE,SIDE,UPDATE_TIME,UPDATE_NAME) VALUES (CLEAN_ID_SEQ.NEXTVAL, '{SnVal.Text}','{ma_code.Text}','{LineVal.Text}','{SideVal.Text}',sysdate,'{User.UserName}')", "insert"); ShowMsg(1, $"序列号:{SnVal.Text} 已记录清洗"); SnVal.Focus(); SnVal.SelectAll(); SnVal.Text = ""; dt = (DataTable)dh.ExecuteSql($@"SELECT sn, work_order, line, side, update_time, update_name FROM sn_clean WHERE work_order = '{ma_code.Text}'", "select"); if (dt.Rows.Count > 0) { DataBox.DataSource = dt; } } private void ClearMsg_Click(object sender, EventArgs e) { OperateResult.Clear(); } private void ShowMsg(int type, string msg) { string fullDateTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); if (type == 0) { OperateResult.AppendText($"{fullDateTime}: {msg}\n", Color.Red); } else if (type == 1) { OperateResult.AppendText($"{fullDateTime}: {msg}\n", Color.Green); } } } }