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; SpecVal.Enabled = false; } 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(); dt = (DataTable)dh.ExecuteSql($@"SELECT * FROM line WHERE li_wccode = 'SMT' AND li_status = '已审核' ORDER BY substr(li_code, 0, 1) DESC,substr(li_code,length(li_code) - 1)", "select"); if (dt.Rows.Count > 0) { foreach(DataRow item in dt.Rows) { LineVal.Items.Add(item["li_code"].ToString()); } } else { ShowMsg(0, $"工单:{ma_code.Text} 未找到启动线体"); return; } dt = (DataTable)dh.ExecuteSql($@"select * from make,product where ma_code = '{ma_code.Text}' and ma_prodcode = pr_code", "select"); SpecVal.Text = dt.Rows[0]["PR_SPEC"].ToString(); 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; } if (string.IsNullOrEmpty(EmployeeVal.Text)) { ShowMsg(0, $"请输入操作人员"); return; } sql.Clear(); sql.Append($@"select * from smtbind where sb_barcode = '{SnVal.Text}' and sb_makecode = '{ma_code.Text}'"); dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select"); if (dt.Rows.Count == 0) { ShowMsg(0, $"工单中:{ma_code.Text} 中序列号:{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,'{EmployeeVal.Text}')", "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); } } } }