using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Lims.Port.封装类.方法; using Core.StlMes.Client.Lims.Port.数据管理.实体类; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; using System; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace Core.StlMes.Client.Lims.Port { public partial class FrmVrpBatchSampleNew : FrmBase { public FrmVrpBatchSampleNew() { InitializeComponent(); } private string plineCode = "";//产线 List dtPlanM = null;//检验计划主信息 List dtPlanDetial = null;//检验计划从信息 List dtPlanM1 = null;//分批详细方案 int minBatchNum = 0;//最小分批数量 private string batchNoZ = "";//性能批号产线标识 private void FrmMilBatchSampleNew_Load(object sender, EventArgs e) { DateTime now = DateTime.Now; DateTime dt1 = new DateTime(now.Year, now.Month, 1);//当月第一天 DateTime dt2 = dt1.AddMonths(1).AddDays(-1);//当月最后一天 this.RegStartTime.Value = DateTime.Parse(dt1.ToString("yyyy-MM-dd") + " 00:00:00"); this.RegEndTime.Value = DateTime.Parse(dt2.ToString("yyyy-MM-dd") + " 23:59:59"); EntityHelper.ShowGridCaption(this.ultraGrid1.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid2.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid3.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid5.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid6.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid7.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid9.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid10.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid12.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid13.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid15.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid16.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid17.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid18.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(this.ultraGrid19.DisplayLayout.Bands[0]); plineCode = PublicPort.GetPCode(this.ValidDataPurviewIds, ob); } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": doQueryPlan(); break; case "QueryRepeate": doQueryRepeate(); break; case "BatchSeting": batchSeting(); break; case "CancelBatchSeting": cancelBatchSeting(); break; case "OprocessBatch": oprocessBatch(); break; case "CancelOprocessBatch": cancelBatch(); break; case "GetSample": getSample(); break; case "CancelGetSample": cancelGetSample(); break; case "Confirm": confirm(); break; case "CancelConfirm": cancelConfirm(); break; case "ReGetSample": reGetSample(); break; case "CancelReGetSample": cancelReGetSample(); break; case "RepeateFrim": repeateFrim(); break; case "CancelRepeateFrim": cancelRepeateFrim(); break; case "Print": printTrust(); break; case "PrintLable": printLable(); break; case "PrintReLable": printReLable(); break; case "PrintRe": printReTrust(); break; case "Close": close(); break; } } /// /// 撤销复取样 /// private void cancelReGetSample() { this.ultraGrid15.UpdateData(); this.ultraGrid17.UpdateData(); UltraGridRow uRow = this.ultraGrid15.ActiveRow; List lists = portVrpBatchSampleResultEntityBindingSource2.DataSource as List; if (uRow == null || lists.Count <= 0) { return; } PipeCheckconsignNoqualifiedEntity milPlans = (PipeCheckconsignNoqualifiedEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milPlans); List portMilEntity = lists.Where(p => p.ResamplePipeLenA != "" || p.ResamplePipeLenB != "").Select(JSONFormat.Format).ToList(); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "cancelReGetSample"; ccp.ServerParams = new object[] { milPlanEntity, portMilEntity }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("撤销成功!")) { doQueryRepeate(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 复取样 /// private void reGetSample() { this.ultraGrid15.UpdateData(); this.ultraGrid17.UpdateData(); UltraGridRow uRow = this.ultraGrid15.ActiveRow; List lists = portVrpBatchSampleResultEntityBindingSource2.DataSource as List; if (uRow == null || lists.Count <= 0) { return; } if (lists.Any(p => p.Chk == true && p.ResamplePipeLenA == "" && p.ResamplePipeLenB == "")) { MessageUtil.ShowTips("还有已选做样管未输入样管长度的管材,不允许进行复取样完成!"); return; } if (lists.Any(p => p.Chk == true && !StringUtil.IsInt32(p.ResamplePipeLenA) && !StringUtil.IsInt32(p.ResamplePipeLenB))) { MessageUtil.ShowTips("样管长度单位为毫米,请输入整数!"); return; } PipeCheckconsignNoqualifiedEntity milPlans = (PipeCheckconsignNoqualifiedEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milPlans); List portMilEntity = lists.Where(p => p.Chk).Select(JSONFormat.Format).ToList(); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "reGetSample"; ccp.ServerParams = new object[] { milPlanEntity, portMilEntity, UserInfo.GetUserName(), UserInfo.GetUserGroup(), UserInfo.GetUserOrder() }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("复取样完成!")) { doQueryRepeate(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 查询可复取样信息 /// private void doQueryRepeate() { string startTime = ""; string endTim = ""; string lotNo = ""; string judgeNo = ""; if (this.chkRegTime.Checked) { startTime = this.RegStartTime.Value.ToString(); endTim = this.RegEndTime.Value.ToString(); } if (chkLotNo.Checked && this.txtLotNo.Text.Trim() != "") { lotNo = this.txtLotNo.Text; } if (chkJudgeNo.Checked && this.txtJudgeNo.Text.Trim() != "") { judgeNo = this.txtJudgeNo.Text; } ArrayList parm = new ArrayList(); parm.Add(startTime); parm.Add(endTim); parm.Add(lotNo); parm.Add(judgeNo); if (ultraTabControl1.SelectedTab.Key == "4") { parm.Add("0"); } else if (ultraTabControl1.SelectedTab.Key == "5") { parm.Add("1"); } List listSource = EntityHelper.GetData( "com.steering.mes.port.mil.FrmMilBatchSampleNew.doQueryRepeate", new object[] { parm, plineCode }, this.ob); if (ultraTabControl1.SelectedTab.Key == "4") { pipeCheckconsignNoqualifiedEntityBindingSource.DataSource = listSource; } else if (ultraTabControl1.SelectedTab.Key == "5") { pipeCheckconsignNoqualifiedEntityBindingSource3.DataSource = listSource; } } /// /// 复取样委托 /// private void repeateFrim() { this.ultraGrid18.UpdateData(); this.ultraGrid20.UpdateData(); UltraGridRow uRow = this.ultraGrid18.ActiveRow; if (uRow == null) return; PipeCheckconsignNoqualifiedEntity pipeCheckEntity = (PipeCheckconsignNoqualifiedEntity)uRow.ListObject; string pipeTity = JSONFormat.Format(pipeCheckEntity); List> parmList = new List>(); foreach (UltraGridRow row in this.ultraGrid20.Rows) { List list = new List(); list.Add(row.Cells["PHY_BATCH_NO"].Text); list.Add(row.Cells["MAT_NO"].Text); list.Add(row.Cells["SAMPLE_PIPE_LEN"].Text); list.Add(row.Cells["SAMPLE_POSTION"].Text); for (int j = 5; j < dataTable5.Columns.Count; j++) { if (row.Cells[j].Value == "√") { list.Add(row.Cells[j].Column.Key); } } parmList.Add(list); } List> batchList = parmList.GroupBy(p => p[0]).Select(p => p.FirstOrDefault() ).ToList(); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "repeateFrim"; ccp.ServerParams = new object[] { pipeTity, parmList, batchList, UserInfo.GetUserName(), UserInfo.GetDepartment() }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("复取样委托成功!")) { doQueryRepeate(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 取消复取样委托 /// private void cancelRepeateFrim() { this.ultraGrid18.UpdateData(); UltraGridRow uRow = this.ultraGrid18.ActiveRow; if (uRow == null) return; PipeCheckconsignNoqualifiedEntity pipeNoTity = (PipeCheckconsignNoqualifiedEntity)uRow.ListObject; string pipeNoEntity = JSONFormat.Format(pipeNoTity); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "cancelRepeateFrim"; ccp.ServerParams = new object[] { pipeNoEntity }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("撤销复取样委托成功!")) { doQueryRepeate(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } private void printLable() { this.ultraGrid12.UpdateData(); UltraGridRow uRow = this.ultraGrid12.ActiveRow; if (uRow == null) return; string checkNo = uRow.Cells["CheckNo"].Text.Trim(); string strurl = ""; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepEntrustLabel.cpt&&format=pdf&__embed__=true" + "&CHECK_NO=" + checkNo + "&JUDGE_STOVE_NO=" + uRow.Cells["JudgeStoveNo"].Text.Trim() + "&PROCESS_CODE=E"; FrmRepExcel fBug = new FrmRepExcel(ob, strurl); fBug.AutoSize = true; fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fBug.WindowState = FormWindowState.Maximized; fBug.Text = "样管号标签"; fBug.Show(); } /// /// 打印复样标签 /// private void printReLable() { this.ultraGrid18.UpdateData(); UltraGridRow uRow = this.ultraGrid18.ActiveRow; if (uRow == null) return; this.ultraGrid19.UpdateData(); UltraGridRow uRow2 = this.ultraGrid19.ActiveRow; if (uRow2 == null) return; string checkNo = "F" + uRow.Cells["CheckNo"].Text.Trim(); string strurl = ""; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepEntrustLabel.cpt" + "&CHECK_NO=" + checkNo ; FrmRepExcel fBug = new FrmRepExcel(ob, strurl); fBug.AutoSize = true; fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fBug.WindowState = FormWindowState.Maximized; fBug.Text = "样管号标签"; fBug.Show(); } /// /// 打印 /// private void printTrust() { this.ultraGrid12.UpdateData(); UltraGridRow uRow = this.ultraGrid12.ActiveRow; if (uRow == null) return; this.ultraGrid13.UpdateData(); UltraGridRow uRow2 = this.ultraGrid13.ActiveRow; if (uRow2 == null) return; string checkNo = uRow.Cells["CheckNo"].Text.Trim(); string orderNo = uRow2.Cells["OrderNo"].Text.Trim(); string strurl = ""; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepLimsPortCheckConsignOrder.cpt&&format=pdf&__embed__=true" + "&CHECK_NO=" + checkNo + "&orderNo=" + orderNo; FrmRepExcel fBug = new FrmRepExcel(ob, strurl); fBug.AutoSize = true; fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fBug.WindowState = FormWindowState.Maximized; fBug.Text = "检验委托单"; fBug.Show(); } /// /// 打印复样委托单 /// private void printReTrust() { this.ultraGrid18.UpdateData(); UltraGridRow uRow = this.ultraGrid18.ActiveRow; if (uRow == null) return; string checkNo = "F" + uRow.Cells["CheckNo"].Text.Trim(); string orderNo = uRow.Cells["ContractNo"].Text.Trim(); string strurl = ""; strurl = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepLimsPortCheckConsignOrder.cpt&&format=pdf&__embed__=true" + "&CHECK_NO=" + checkNo + "&orderNo=" + orderNo; FrmRepExcel fBug = new FrmRepExcel(ob, strurl); fBug.AutoSize = true; fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fBug.WindowState = FormWindowState.Maximized; fBug.Text = "检验委托单"; fBug.Show(); } private void close() { this.Close(); } /// /// 分批取样完成 /// private void batchSeting() { this.ultraGrid1.UpdateData(); this.ultraGrid3.UpdateData(); UltraGridRow uRow = this.ultraGrid1.ActiveRow; List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; if (uRow == null || lists.Count <= 0) { return; } if (lists.Any(p => p.PhyBatchNo == "")) { MessageUtil.ShowTips("还有未分配批号管材,不允许进行分批完成!"); return; } if (lists.Any(p => p.Chk == true && p.SamplePipeLenA == "" && p.SamplePipeLenB == "")) { MessageUtil.ShowTips("还有已选做样管未输入样管长度的管材,不允许进行分批完成!"); return; } if (lists.Any(p => p.Chk == true && !StringUtil.IsInt32(p.SamplePipeLenA) && !StringUtil.IsInt32(p.SamplePipeLenB))) { MessageUtil.ShowTips("样管长度单位为毫米,请输入整数!"); return; } PlnZyDbkMEntity milPlans = (PlnZyDbkMEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milPlans); List portMilEntity = lists.Select(JSONFormat.Format).ToList(); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "batchSeting"; ccp.ServerParams = new object[] { milPlanEntity, portMilEntity,UserInfo.GetUserName(),UserInfo.GetUserGroup(),UserInfo.GetUserOrder() }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("分批取样完成!")) { doQueryPlan(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 撤销分批取样 /// private void cancelBatchSeting() { this.ultraGrid5.UpdateData(); UltraGridRow uRow = this.ultraGrid5.ActiveRow; if (uRow == null) return; PlnZyDbkMEntity milPlans = (PlnZyDbkMEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milPlans); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "cancelBatchSeting"; ccp.ServerParams = new object[] { milPlanEntity}; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("撤销成功!")) { doQueryPlan(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 分批完成 /// private void oprocessBatch() { this.ultraGrid1.UpdateData(); this.ultraGrid3.UpdateData(); UltraGridRow uRow = this.ultraGrid1.ActiveRow; List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; if (uRow == null || lists.Count <= 0) { return; } if (lists.Any(p => p.PhyBatchNo == "")) { MessageUtil.ShowTips("还有未分配批号管材,不允许进行分批完成!"); return; } PlnZyDbkMEntity milPlans = (PlnZyDbkMEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milPlans); List portMilEntity = lists.Select(JSONFormat.Format).ToList(); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "oprocessBatch"; ccp.ServerParams = new object[] { milPlanEntity, portMilEntity, UserInfo.GetUserName(), UserInfo.GetUserGroup(), UserInfo.GetUserOrder() }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("分批完成!")) { doQueryPlan(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 撤销分批 /// private void cancelBatch() { this.ultraGrid1.UpdateData(); this.ultraGrid3.UpdateData(); UltraGridRow uRow = this.ultraGrid1.ActiveRow; if (uRow == null) return; PlnZyDbkMEntity milPlans = (PlnZyDbkMEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milPlans); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "cancelBatch"; ccp.ServerParams = new object[] { milPlanEntity }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("撤销成功!")) { doQueryPlan(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 撤销取样完成 /// private void cancelGetSample() { this.ultraGrid5.UpdateData(); UltraGridRow uRow = this.ultraGrid5.ActiveRow; if (uRow == null) return; PlnZyDbkMEntity milPlans = (PlnZyDbkMEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milPlans); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "cancelGetSample"; ccp.ServerParams = new object[] { milPlanEntity }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("撤销成功!")) { doQueryPlan(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 取样完成 /// private void getSample() { this.ultraGrid1.UpdateData(); this.ultraGrid3.UpdateData(); UltraGridRow uRow = this.ultraGrid1.ActiveRow; List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; if (uRow == null || lists.Count <= 0) { return; } if (lists.Any(p => p.Chk == true && p.SamplePipeLenA == "" && p.SamplePipeLenB == "")) { MessageUtil.ShowTips("还有已选做样管未输入样管长度的管材,不允许进行取样完成!"); return; } if (lists.Any(p => p.Chk == true && !StringUtil.IsInt32(p.SamplePipeLenA) && !StringUtil.IsInt32(p.SamplePipeLenB))) { MessageUtil.ShowTips("样管长度单位为毫米,请输入整数!"); return; } PlnZyDbkMEntity milPlans = (PlnZyDbkMEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milPlans); List portMilEntity = lists.Select(JSONFormat.Format).ToList(); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "getSample"; ccp.ServerParams = new object[] { milPlanEntity, portMilEntity, UserInfo.GetUserName(), UserInfo.GetUserGroup(), UserInfo.GetUserOrder() }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("取样完成!")) { doQueryPlan(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 确认委托 /// private void confirm() { this.ultraGrid9.UpdateData(); this.ultraGrid10.UpdateData(); this.ultraGrid11.UpdateData(); UltraGridRow uRow = this.ultraGrid9.ActiveRow; if (uRow == null) return; // List chemSource = EntityHelper.GetData( //"com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryChem", new object[] { uRow.Cells["ProPlanId"].Text, uRow.Cells["GxPlanNo"].Text, uRow.Cells["JudgeStoveNo"].Text.Substring(0,6) }, this.ob);//查询成分详细信息 // List phySource = EntityHelper.GetData( //"com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryPhy", new object[] { uRow.Cells["ProPlanId"].Text, uRow.Cells["GxPlanNo"].Text, BaseMethod.getJudgeStoveNo(uRow.Cells["JudgeStoveNo"].Text) }, this.ob);//查询理化详细信息 PlnZyDbkMEntity milTity = (PlnZyDbkMEntity)uRow.ListObject; string milEntity = JSONFormat.Format(milTity); List> parmList = new List>(); foreach(UltraGridRow row in this.ultraGrid11.Rows) { int m = 0; List list = new List(); list.Add(row.Cells["PHY_BATCH_NO"].Text); list.Add(row.Cells["MAT_NO"].Text); list.Add(row.Cells["SAMPLE_PIPE_LEN"].Text); list.Add(row.Cells["SAMPLE_POSTION"].Text); for (int j = 5; j < dataTable3.Columns.Count; j++) { if (row.Cells[j].Value == "√") { list.Add(row.Cells[j].Column.Key); m = m + 1; } } if(m>0) { parmList.Add(list); } } List> batchList = parmList.GroupBy(p => p[0]).Select(p => p.FirstOrDefault() ).ToList(); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "confirm"; ccp.ServerParams = new object[] { milEntity, parmList, batchList, UserInfo.GetUserName(), UserInfo.GetDepartment() }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("委托成功!")) { doQueryPlan(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 取消确认 /// private void cancelConfirm() { this.ultraGrid12.UpdateData(); UltraGridRow uRow = this.ultraGrid12.ActiveRow; if (uRow == null) return; PlnZyDbkMEntity milTity = (PlnZyDbkMEntity)uRow.ListObject; string milPlanEntity = JSONFormat.Format(milTity); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew"; ccp.MethodName = "cancelConfirm"; ccp.ServerParams = new object[] { milPlanEntity }; ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnInfo.Equals("撤销委托成功!")) { doQueryPlan(); MessageUtil.ShowTips(ccp.ReturnInfo); } else { MessageUtil.ShowTips(ccp.ReturnInfo); } } } /// /// 查询炉计划 /// private void doQueryPlan() { string startTime = ""; string endTim = ""; string lotNo = ""; string judgeNo = ""; if (this.chkRegTime.Checked) { startTime = this.RegStartTime.Value.ToString(); endTim = this.RegEndTime.Value.ToString(); } if (chkLotNo.Checked && this.txtLotNo.Text.Trim() != "") { lotNo = this.txtLotNo.Text; } if (chkJudgeNo.Checked && this.txtJudgeNo.Text.Trim() != "") { judgeNo = this.txtJudgeNo.Text; } ArrayList parm = new ArrayList(); parm.Add(startTime); parm.Add(endTim); parm.Add(lotNo); parm.Add(judgeNo); if (this.ultraTabControl1.SelectedTab.Key == "0") { parm.Add("0"); } else if(this.ultraTabControl1.SelectedTab.Key == "1") { parm.Add("2"); } else if (this.ultraTabControl1.SelectedTab.Key == "2") { parm.Add("2"); } else if (this.ultraTabControl1.SelectedTab.Key == "3") { parm.Add("3"); } List listSource = EntityHelper.GetData( "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryPlan", new object[] { parm, plineCode }, this.ob); if (this.ultraTabControl1.SelectedTab.Key == "0") { plnZyDbkMEntityBindingSource1.Clear(); portVrpBatchSampleResultEntityBindingSource.Clear(); dataTable1.Clear(); plnZyDbkMEntityBindingSource.DataSource = listSource; } else if (this.ultraTabControl1.SelectedTab.Key == "1") { plnZyDbkMEntityBindingSource3.Clear(); portVrpBatchSampleResultEntityBindingSource1.Clear(); dataTable2.Clear(); plnZyDbkMEntityBindingSource2.DataSource = listSource; } else if (this.ultraTabControl1.SelectedTab.Key == "2") { plnZyDbkMEntityBindingSource5.Clear(); dataTable3.Clear(); plnZyDbkMEntityBindingSource4.DataSource = listSource; } else if (this.ultraTabControl1.SelectedTab.Key == "3") { plnZyDbkMEntityBindingSource7.Clear(); dataTable4.Clear(); plnZyDbkMEntityBindingSource6.DataSource = listSource; } } private void chkRegTime_CheckedChanged(object sender, EventArgs e) { this.RegStartTime.Enabled = this.RegEndTime.Enabled = this.chkRegTime.Checked; } private void chkLotNo_CheckedChanged(object sender, EventArgs e) { this.txtLotNo.Enabled = this.chkLotNo.Checked; } private void chkJudgeNo_CheckedChanged(object sender, EventArgs e) { this.txtJudgeNo.Enabled = this.chkJudgeNo.Checked; } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { this.ultraGrid1.UpdateData(); UltraGridRow uRow = this.ultraGrid1.ActiveRow; batchNoZ = doQueryBacthPline(uRow); doQueryBasePlan(uRow); doQueryRack(uRow); dtPlanDetial = doQueryCheckPlanDetila(uRow); if (dtPlanDetial != null && dtPlanDetial.Count() > 0) { var s = dtPlanDetial.Where(p => p.Rate == "408601" || p.Rate == "408608").ToList(); if (s.Any()) { dtPlanM = doQueryCheckPlan(uRow, "1"); } else { dtPlanM = doQueryCheckPlan(uRow, "0"); } } ultraGrid3.Update(); ultraGrid3.DataBind(); ultraGrid3_CellChange(null, null); if (dtPlanM == null || dtPlanDetial == null || dtPlanM.Count == 0 || dtPlanDetial.Count == 0) { txtBATCH_MIN.Text = ""; txtBATCH_MIN.Text = this.txtPIPE_NUM.Text;//参考批数; return; } //bool isFlag = dtPlanDetial.Any(p => p.Rate == "408607" || p.Rate == "408608" || p.Rate == "408601"); //if (isFlag) //{ //} //else //{ if (int.Parse(uRow.Cells["IsBatch"].Text) >= 1) { txt_BatchMax.Text = this.ultraGrid4.Rows[0].Cells["NUM"].Text; txtBATCH_MIN.Text = (Math.Ceiling(double.Parse(this.txtPIPE_NUM.Text) / int.Parse(this.txt_BatchMax.Text))).ToString(); } else { minBatchNum = dtPlanDetial.Min(p => p.BatchCnt == null ? int.Parse(this.txtPIPE_NUM.Text) : (int)(p.BatchCnt));//检验计划最小分批数量 txt_BatchMax.Text = minBatchNum.ToString();//分批上限 txtREMARK.Text = dtPlanM.Select(p => p.Remark).Distinct().Aggregate((a, b) => a + " " + b); if (minBatchNum == 0) { txtBATCH_MIN.Text = "0"; } else { txtBATCH_MIN.Text = (Math.Ceiling(double.Parse(this.txtPIPE_NUM.Text) / minBatchNum)).ToString();//参考批数 } ultraGrid3.Update(); ultraGrid3.DataBind(); ultraGrid3_CellChange(null, null); } //} } private string doQueryBacthPline(UltraGridRow uRow) { string ss = ""; DataTable ds = PublicServer.GetData("com.steering.mes.port.mil.FrmMilBatchSampleNew.doQueryBacthNo", new object[] { uRow.Cells["PlineCode"].Text }, ob); if (ds.Rows.Count > 0) { ss = ds.Rows[0][0].ToString(); } return ss; } private void initBindTable() { List lists = portVrpBatchSampleResultEntityBindingSource1.DataSource as List; dataTable2.Rows.Clear(); if (lists == null || lists.Count <= 0) return; foreach (var list in lists.Where(p => p.PhyBatchNo != "").GroupBy(p => p.PhyBatchNo)) { DataRow newRow; newRow = dataTable2.NewRow(); newRow["PHY_BATCH_NO"] = list.Key; newRow["START_SEQ"] = list.Min(p => p.Seq); newRow["END_SEQ"] = list.Max(p => p.Seq); newRow["NUM"] = list.Count(); newRow["SAMPLE_NUM"] = list.Count(p => p.SamplePipeLenA != "" || p.SamplePipeLenB != ""); dataTable2.Rows.Add(newRow); } ultraGrid8.Update(); } /// /// 自动分批 /// /// /// private void btnAuto_Click(object sender, EventArgs e) { this.ultraGrid4.UpdateData(); UltraGridRow row = this.ultraGrid1.ActiveRow; if(row == null)return; string target = row.Cells["Decision"].Text; List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; if (lists==null || lists.Count<=0) { MessageUtil.ShowTips("不存在有效管号队列,不允许进行分批!"); return; } if (dtPlanM == null || dtPlanM.Count <= 0) { MessageUtil.ShowTips("检验计划未确认,不能自动分批!"); return; } int maxBacthNum = int.Parse(this.txt_BatchMax.Text.ToString3());//分批上限 int maxBacth = dtPlanM.Max(p => p.BatchNo == null ? 1 : (int)(p.BatchNo));//取主表最大方案 string sampleLen = "";//样管长度 string sampleCount = "";//样管数量 //为批号赋值 for (int i = 0; i < int.Parse(this.txtBATCH_MIN.Text);i++) { var list = dtPlanM1.Where(p => p.BatchNo == (i+1 > maxBacth ? maxBacth : i+1)).ToList(); var listA = list.Where(p => p.Position == "401201").ToList(); var listB = list.Where(p => p.Position == "401202").ToList(); int m = 0; for (int k = 0; k < listA.Count; k++) { var crft = listA[k]; int a = (int)crft.SampleCount;//样管数量 for (int j = 0; j < a; j++,m++) { if (lists.Count > m + i * maxBacthNum) { lists[m + i * maxBacthNum].SamplePipeLenA = crft.SampleLength.ToString(); lists[m + i * maxBacthNum].PhyCodeGroup = crft.PhyCodeGroup.ToString(); lists[m + i * maxBacthNum].Chk = true; } } } m = 0; for (int k = 0; k < listB.Count; k++) { var crft = listB[k]; int a = (int)crft.SampleCount;//样管数量 for (int j = 0; j < a; j++, m++) { if (lists.Count > m + i * maxBacthNum) { lists[m + i * maxBacthNum].SamplePipeLenB = crft.SampleLength.ToString(); lists[m + i * maxBacthNum].PhyCodeGroupb = crft.PhyCodeGroup.ToString(); lists[m + i * maxBacthNum].Chk = true; } } } if (target == "C") { lists.Skip(i * maxBacthNum).Take((i + 1) * maxBacthNum).ToList().ForEach(p => p.PhyBatchNo = batchNoZ + "999"); }else { lists.Skip(i * maxBacthNum).Take((i + 1) * maxBacthNum).ToList().ForEach(p => p.PhyBatchNo = batchNoZ + (i + 1).ToString("000")); } } ultraGrid3.Update(); ultraGrid3.DataBind(); ultraGrid3_CellChange(null, null); } /// /// 人工分批 /// /// /// private void btnConfirm_Click(object sender, EventArgs e) { this.ultraGrid4.UpdateData(); UltraGridRow row = this.ultraGrid1.ActiveRow; if (row == null) return; string target = row.Cells["Decision"].Text; int sampleNum = 0; if (!StringUtil.IsInt32(this.txt_SampleNum.Text.Trim().ToString3())) { MessageUtil.ShowTips("样管数量需输入正整数!"); return; } else { sampleNum = int.Parse(this.txt_SampleNum.Text.Trim().ToString3()); } if (!StringUtil.IsInt32(txt_BatchMax.Text.ToString3()) || int.Parse(txt_BatchMax.Text.ToString3()) <= 0) { MessageUtil.ShowTips("人工分批输入的分批上限需为正整数!"); return; } List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; var m = lists.Where(p => p.PhyBatchNo == "").ToList();//判断是否还未分配性能批号集合数据 if (m.Count == 0) { return; } int Bathno = 1; for (int k = 0; k < int.Parse(this.txtBATCH_MIN.Text.ToString3()); k++) { int startSeq = int.Parse(ultraSTART_PIPE_NO.Text);//开始序号 int endSeq = int.Parse(ultraEND_PIPE_NO.Text);//结束序号 var lists1 = lists.Where(p => p.PhyBatchNo != "").ToList(); if (lists1.Any()) { Bathno = lists1.Max(p => int.Parse(p.PhyBatchNo.Substring(2, 3))) + 1; } if (target == "C") { m.Take(endSeq - startSeq + 1).ToList().ForEach(p => p.PhyBatchNo = batchNoZ + "999");//赋值批号 } else { m.Take(endSeq - startSeq + 1).ToList().ForEach(p => p.PhyBatchNo = batchNoZ + Bathno.ToString("000"));//赋值批号 } m.Take(sampleNum).ToList().ForEach(p => p.Chk = true); ultraSTART_PIPE_NO.Text = m.First().Seq.ToString();//初始序号 跳过已赋值批号数据 ultraEND_PIPE_NO.Text = m.Take(int.Parse(txt_BatchMax.Text)).Last().Seq.ToString();//结束序号 ultraGrid3.Update(); ultraGrid3.DataBind(); ultraGrid3_CellChange(null, null); m = lists.Where(p => p.PhyBatchNo == "").ToList();//判断是否还未分配性能批号集合数据 if (m.Count == 0) { return; } } } /// /// 查询检验计划子表 /// /// /// private List doQueryCheckPlanDetila(UltraGridRow uRow) { List listSource = EntityHelper.GetData( "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryCheckPlanDetial", new object[] { uRow.Cells["OrdLnPk"].Text, uRow.Cells["CraftFileNo"].Text, uRow.Cells["CraftSeq"].Text }, this.ob);//查询检验计划主表 return listSource; } /// /// 查询检验计划主表 /// /// private List doQueryCheckPlan(UltraGridRow uRow,string flag) { List listSource = EntityHelper.GetData( "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryCheckPlan", new object[] { uRow.Cells["OrdLnPk"].Text, uRow.Cells["CraftFileNo"].Text, uRow.Cells["CraftSeq"].Text,flag }, this.ob);//查询检验计划主表 return listSource; } /// /// 查询炉计划基础信息 /// /// private void doQueryBasePlan(UltraGridRow row) { List listSource = EntityHelper.GetData( "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryBasePlan", new object[] { row.Cells["HeatPlanNo"].Text, row.Cells["JudgeStoveNo"].Text }, this.ob); if (this.ultraTabControl1.SelectedTab.Key == "0") { plnZyDbkMEntityBindingSource1.DataSource = listSource; } else if (this.ultraTabControl1.SelectedTab.Key == "1") { plnZyDbkMEntityBindingSource3.DataSource = listSource; } else if (this.ultraTabControl1.SelectedTab.Key == "2") { plnZyDbkMEntityBindingSource5.DataSource = listSource; }else if(this.ultraTabControl1.SelectedTab.Key == "3") { plnZyDbkMEntityBindingSource7.DataSource = listSource; } } /// /// 查询管号队列 /// /// private void doQueryRack(UltraGridRow row) { List listSource = EntityHelper.GetData( "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryRack", new object[] { row.Cells["HeatPlanNo"].Text, row.Cells["JudgeStoveNo"].Text }, this.ob); if (this.ultraTabControl1.SelectedTab.Key == "0") { portVrpBatchSampleResultEntityBindingSource.DataSource = listSource; txtPIPE_NUM.Text = listSource.Count.ToString(); } else if (this.ultraTabControl1.SelectedTab.Key == "1") { List lists = listSource as List; lists.Where(p => p.IsSamplePipe == "1").ToList().ForEach(p => p.Chk = true); portVrpBatchSampleResultEntityBindingSource1.DataSource = lists; initBindTable(); } } private void txt_BatchMax_ValueChanged(object sender, EventArgs e) { UltraGridRow uRow = this.ultraGrid1.ActiveRow; if (uRow == null) return; if (!StringUtil.IsInt32(this.txt_BatchMax.Text.Trim())) { MessageUtil.ShowTips("分批上限请输入整数!"); return; } doQueryRack(uRow); dataTable1.Clear(); if (int.Parse(this.txt_BatchMax.Text) == 0) { txtBATCH_MIN.Text = "0"; }else { txtBATCH_MIN.Text = (Math.Ceiling(double.Parse(this.txtPIPE_NUM.Text) / int.Parse(this.txt_BatchMax.Text))).ToString(); } if (dtPlanDetial.Count > 0) { //bool isBacthFlag = dtPlanDetial.Any(p => p.Rate == "408601" || p.Rate == "408608");//判断是否试样组有生产批 //if (isBacthFlag) //{ //} //else //{ int maxBacth = dtPlanM.Max(p => p.BatchNum == null ? 1 : (int)(p.BatchNum));//取主表最大方案 int batchNum = int.Parse(txtBATCH_MIN.Text);//实际批数 dtPlanM1 = dtPlanM.Where(p => p.BatchNum == (batchNum > maxBacth ? maxBacth : batchNum)).ToList();//取具体方案 //} List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; if (lists == null || lists.Count() == 0) { return; } var lists1 = lists.Where(p => p.BatchNo == "").ToList(); if (lists1.Any()) { ultraSTART_PIPE_NO.Text = lists1.First().Seq.ToString(); ultraEND_PIPE_NO.Text = lists1.Take(int.Parse(txt_BatchMax.Text)).Last().Seq.ToString(); } else { ultraSTART_PIPE_NO.Text = ""; ultraEND_PIPE_NO.Text = ""; } /* ultraSTART_PIPE_NO.Text = lists.Where(p => p.BatchNo == "").First().Seq.ToString(); ultraEND_PIPE_NO.Text = lists.Where(p => p.BatchNo == "").Take(int.Parse(txt_BatchMax.Text)).Last().Seq.ToString();*/ } else { ultraSTART_PIPE_NO.Text = "1"; ultraEND_PIPE_NO.Text = this.txt_BatchMax.Text; } } private void ultraGrid3_CellChange(object sender, CellEventArgs e) { dataTable1.Rows.Clear(); ultraGrid3.Update(); ultraGrid3.UpdateData(); List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; if (lists == null || lists.Count() <= 0) return; foreach (var list in lists.Where(p => p.PhyBatchNo != "").GroupBy(p => p.PhyBatchNo)) { DataRow newRow; newRow = dataTable1.NewRow(); newRow["PHY_BATCH_NO"] = list.Key; newRow["START_SEQ"] = list.Min(p => int.Parse(p.Seq)); newRow["END_SEQ"] = list.Max(p => int.Parse(p.Seq)); newRow["NUM"] = list.Count(); newRow["SAMPLE_NUM"] = list.Count(p => p.Chk); dataTable1.Rows.Add(newRow); } ultraGrid4.Update(); } private void ultraGrid5_AfterRowActivate(object sender, EventArgs e) { this.ultraGrid5.UpdateData(); UltraGridRow uRow = this.ultraGrid5.ActiveRow; if (uRow == null) return; doQueryRack(uRow); doQueryBasePlan(uRow); } DataTable dtChem = new DataTable(); DataTable dtPhy = new DataTable(); private void ultraGrid9_AfterRowActivate(object sender, EventArgs e) { this.ultraGrid9.UpdateData(); UltraGridRow uRow = this.ultraGrid9.ActiveRow; if (uRow == null) return; doQuerySampleRack(uRow);//查询样管信息 doQueryBasePlan(uRow); doQueryPhyChem(uRow);//查询成分、理化项目明细 } private void ultraGrid12_AfterRowActivate(object sender, EventArgs e) { this.ultraGrid12.UpdateData(); UltraGridRow uRow = this.ultraGrid12.ActiveRow; if (uRow == null) return; doQueryBasePlan(uRow); doQuerySampleNo(uRow);//查询试样号信息 } /// /// 查询试样号信息 /// /// private void doQuerySampleNo(UltraGridRow uRow) { while (dataTable4.Columns.Count > 3) { dataTable4.Columns.RemoveAt(3); } DataTable dtSample = PublicServer.GetData("com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryDetialSampleNo", new Object[] { uRow.Cells["CheckNo"].Text }, ob); dataTable4.Rows.Clear(); dtSample.AsEnumerable().GroupBy(p => new { BatchNo = p["BATCH_NO"].ToString(), Sample = p["SAMPLE_NO"].ToString() }).ToList() .ForEach(p => { foreach (DataRow row in p) { if (!dataTable4.Columns.Contains(row["PHY_CODE_MAX"].ToString())) { DataColumn phyCloum = new DataColumn(); phyCloum.ColumnName = row["PHY_CODE_MAX"].ToString(); phyCloum.Caption = row["PHY_NAME_MAX"].ToString(); dataTable4.Columns.Add(phyCloum); } } DataRow dr = dataTable4.NewRow(); dr["PHY_BATCH_NO"] = p.Key.BatchNo; dr["SAMPLE_NO"] = p.Key.Sample; dr["SAMPLE_LEN"] = p.Max(q => q["SAMPLE_LEN"]); foreach (DataRow row in p) { dr[row["PHY_CODE_MAX"].ToString()] = row["SAMPLE_COUNT"].ToString(); } dataTable4.Rows.Add(dr); }); ultraGrid14.DataBind(); // GridHelper.CopyDataToDatatable(dtSample, dataTable4, true); GridHelper.RefreshAndAutoSize(ultraGrid14); } /// /// 查询成分理化项目明细 /// /// private void doQueryPhyChem(UltraGridRow uRow) { while (dataTable3.Columns.Count > 5) { dataTable3.Columns.RemoveAt(5); } dtChem = PublicServer.GetData("com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryChem", new Object[] { uRow.Cells["ProPlanId"].Text, uRow.Cells["GxPlanNo"].Text, BaseMethod.getJudgeStoveNo(uRow.Cells["JudgeStoveNo"].Text) }, ob);//查询成分明细 if (dtChem.Rows.Count > 0) { DataColumn hxCloum = new DataColumn(); hxCloum.ColumnName = "HX"; hxCloum.Caption = "化学"; dataTable3.Columns.Add(hxCloum); } dtPhy = PublicServer.GetData("com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryPhy", new Object[] { uRow.Cells["ProPlanId"].Text, uRow.Cells["GxPlanNo"].Text, BaseMethod.getJudgeStoveNo(uRow.Cells["JudgeStoveNo"].Text) }, ob);//查询理化明细 string[] phyMaxCode = null; ultraLabel3.Text = ""; List list = new List(); if (dtPhy.Rows.Count > 0) { dtPhy.AsEnumerable().Select(p => new { Code = p["PHY_CODE_MIN"].ToString(), Name = p["PHY_NAME_MIN"].ToString(), rate = p["RATE"].ToString(), rateName = p["DESC_RATE"].ToString() }).Distinct().ToList() .ForEach(p => { DataColumn phyCloum = new DataColumn(); phyCloum.ColumnName = p.Code; phyCloum.Caption = p.Name; dataTable3.Columns.Add(phyCloum); if (p.rate.Equals("408601") || p.rate.Equals("408608")) { ultraLabel3.Text = ultraLabel3.Text + p.Name + " 取样频次:" + p.rateName; list.Add(p.Code); } }); } foreach(DataRow dr in dataTable3.Rows) { string[] phyCodeGroup = dr["PHY_CODE_GROUP"].ToString().Split(','); for (int i = 5; i < dataTable3.Columns.Count; i++) { if (phyCodeGroup.Contains(dataTable3.Columns[i].ColumnName)) { dr[i] = "√"; } } } phyMaxCode = list.ToArray(); ultraGrid11.DataBind(); GridHelper.RefreshAndAutoSize(ultraGrid11); ultraLabel3.ForeColor = Color.Red; //if (phyMaxCode.Length > 0) //{ // doQueryPhyCodeMax(phyMaxCode, uRow.Cells["LotNo"].Text); //} } private void doQueryPhyCodeMax(string[] phyMaxCode, string lotNo) { List listSource = EntityHelper.GetData( "com.steering.mes.port.mil.FrmMilBatchSampleNew.doQueryPhyCodeMax", new object[] { lotNo, phyMaxCode }, this.ob); pipeCheckconsignDetailEntityBindingSource.DataSource = listSource; } /// /// 查询样管信息 /// private void doQuerySampleRack(UltraGridRow uRow) { DataTable dtBatchNo = PublicServer.GetData("com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQuerySampleInfo", new Object[] { uRow.Cells["HeatPlanNo"].Text, uRow.Cells["JudgeStoveNo"].Text }, ob); dataTable3.Rows.Clear(); foreach (DataRow row in dtBatchNo.Rows) { if (row["SAMPLE_PIPE_LEN_A"] != null && row["SAMPLE_PIPE_LEN_A"].ToString() != "") { DataRow newRowA = dataTable3.NewRow(); newRowA["PHY_BATCH_NO"] = row["PHY_BATCH_NO"].ToString(); newRowA["MAT_NO"] = row["MAT_NO"].ToString(); newRowA["SAMPLE_PIPE_LEN"] = row["SAMPLE_PIPE_LEN_A"].ToString(); newRowA["SAMPLE_POSTION"] = "A端"; newRowA["PHY_CODE_GROUP"] = row["PHY_CODE_GROUP"].ToString(); dataTable3.Rows.Add(newRowA); } if (row["SAMPLE_PIPE_LEN_B"] != null && row["SAMPLE_PIPE_LEN_B"].ToString() != "") { DataRow newRowA = dataTable3.NewRow(); newRowA["PHY_BATCH_NO"] = row["PHY_BATCH_NO"].ToString(); newRowA["MAT_NO"] = row["MAT_NO"].ToString(); newRowA["SAMPLE_PIPE_LEN"] = row["SAMPLE_PIPE_LEN_B"].ToString(); newRowA["SAMPLE_POSTION"] = "B端"; newRowA["PHY_CODE_GROUP"] = row["PHY_CODE_GROUPB"].ToString(); dataTable3.Rows.Add(newRowA); } } GridHelper.RefreshAndAutoSize(ultraGrid11); } private void ultraGrid11_ClickCell(object sender, ClickCellEventArgs e) { if (e.Cell.Column.Key != "PHY_BATCH_NO" && e.Cell.Column.Key != "MAT_NO" && e.Cell.Column.Key != "SAMPLE_PIPE_LEN" && e.Cell.Column.Key != "SAMPLE_POSTION") { if (e.Cell.Text.Trim() == "") { e.Cell.Value = "√"; } else { e.Cell.Value = ""; } } } private void FrmMilBatchSampleNew_Shown(object sender, EventArgs e) { if (toolMenu == null || toolMenu.Toolbars == null) return; if (toolMenu.Toolbars[0].Tools.Exists("CancelBatchSeting")) { toolMenu.Toolbars[0].Tools["CancelBatchSeting"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Confirm")) { toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelConfirm")) { toolMenu.Toolbars[0].Tools["CancelConfirm"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Print")) { toolMenu.Toolbars[0].Tools["Print"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintLable")) { toolMenu.Toolbars[0].Tools["PrintLable"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("QueryRepeate")) { toolMenu.Toolbars[0].Tools["QueryRepeate"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelGetSample")) { toolMenu.Toolbars[0].Tools["CancelGetSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("ReGetSample")) { toolMenu.Toolbars[0].Tools["ReGetSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelReGetSample")) { toolMenu.Toolbars[0].Tools["CancelReGetSample"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("RepeateFrim")) { toolMenu.Toolbars[0].Tools["RepeateFrim"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelRepeateFrim")) { toolMenu.Toolbars[0].Tools["CancelRepeateFrim"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintRe")) { toolMenu.Toolbars[0].Tools["PrintRe"].InstanceProps.Visible = DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintReLable")) { toolMenu.Toolbars[0].Tools["PrintReLable"].InstanceProps.Visible = DefaultableBoolean.False; } } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu == null || toolMenu.Toolbars == null) return; if (toolMenu.Toolbars[0].Tools.Exists("Query")) { toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 4 || this.ultraTabControl1.SelectedTab.Index == 5 ? DefaultableBoolean.False : DefaultableBoolean.True; } if (toolMenu.Toolbars[0].Tools.Exists("BatchSeting")) { toolMenu.Toolbars[0].Tools["BatchSeting"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 0 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelBatchSeting")) { toolMenu.Toolbars[0].Tools["CancelBatchSeting"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 1 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("OprocessBatch")) { toolMenu.Toolbars[0].Tools["OprocessBatch"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 0 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelOprocessBatch")) { toolMenu.Toolbars[0].Tools["CancelOprocessBatch"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 0 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("GetSample")) { toolMenu.Toolbars[0].Tools["GetSample"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 0 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelGetSample")) { toolMenu.Toolbars[0].Tools["CancelGetSample"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 1 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Confirm")) { toolMenu.Toolbars[0].Tools["Confirm"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 2 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelConfirm")) { toolMenu.Toolbars[0].Tools["CancelConfirm"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 3 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("Print")) { toolMenu.Toolbars[0].Tools["Print"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 3 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintLable")) { toolMenu.Toolbars[0].Tools["PrintLable"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 3 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("QueryRepeate")) { toolMenu.Toolbars[0].Tools["QueryRepeate"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 4 || this.ultraTabControl1.SelectedTab.Index == 5 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("ReGetSample")) { toolMenu.Toolbars[0].Tools["ReGetSample"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 4 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelReGetSample")) { toolMenu.Toolbars[0].Tools["CancelReGetSample"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 4 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintRe")) { toolMenu.Toolbars[0].Tools["PrintRe"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 5 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("PrintReLable")) { toolMenu.Toolbars[0].Tools["PrintReLable"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 5 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("RepeateFrim")) { toolMenu.Toolbars[0].Tools["RepeateFrim"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 5 ? DefaultableBoolean.True : DefaultableBoolean.False; } if (toolMenu.Toolbars[0].Tools.Exists("CancelRepeateFrim")) { toolMenu.Toolbars[0].Tools["CancelRepeateFrim"].InstanceProps.Visible = this.ultraTabControl1.SelectedTab.Index == 5 ? DefaultableBoolean.True : DefaultableBoolean.False; } } private void txtBATCH_MIN_ValueChanged(object sender, EventArgs e) { if (txtBATCH_MIN.Text == "") return; if (dtPlanM == null || dtPlanDetial == null || dtPlanM.Count == 0 || dtPlanDetial.Count == 0) { return; } //bool isBacthFlag = dtPlanDetial.Any(p => p.Rate == "408601" || p.Rate == "408608");//判断是否试样组有生产批 //if (isBacthFlag) //{ //} //else //{ int maxBacth = dtPlanM.Max(p => p.BatchNum == null ? 1 : (int)(p.BatchNum));//取主表最大方案 int batchNum = int.Parse(txtBATCH_MIN.Text);//实际批数 dtPlanM1 = dtPlanM.Where(p => p.BatchNum == (batchNum > maxBacth ? maxBacth : batchNum)).ToList();//取具体方案 //} } private void buttonBatchNo_Click(object sender, EventArgs e) { this.ultraGrid4.UpdateData(); UltraGridRow row = this.ultraGrid1.ActiveRow; if (row == null) return; string target = row.Cells["Decision"].Text; if (!StringUtil.IsInt32(txt_BatchMax.Text.ToString3()) || int.Parse(txt_BatchMax.Text.ToString3()) <= 0) { MessageUtil.ShowTips("人工分批输入的分批上限需为正整数!"); return; } List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; var m = lists.Where(p => p.PhyBatchNo == "").ToList();//判断是否还未分配性能批号集合数据 if (m.Count == 0) { return; } int Bathno = 1; int sampleNum = 0; for (int k = 0; k < int.Parse(this.txtBATCH_MIN.Text.ToString3()); k++) { int startSeq = int.Parse(ultraSTART_PIPE_NO.Text);//开始序号 int endSeq = int.Parse(ultraEND_PIPE_NO.Text);//结束序号 var lists1 = lists.Where(p => p.PhyBatchNo != "").ToList(); if (lists1.Any()) { Bathno = lists1.Max(p => int.Parse(p.PhyBatchNo.Substring(2, 3))) + 1; } if (target == "C") { m.Take(endSeq - startSeq + 1).ToList().ForEach(p => p.PhyBatchNo = batchNoZ + "999");//赋值批号 } else { m.Take(endSeq - startSeq + 1).ToList().ForEach(p => p.PhyBatchNo = batchNoZ + Bathno.ToString("000"));//赋值批号 } m.Take(sampleNum).ToList().ForEach(p => p.Chk = true); ultraSTART_PIPE_NO.Text = m.First().Seq.ToString();//初始序号 跳过已赋值批号数据 ultraEND_PIPE_NO.Text = m.Take(int.Parse(txt_BatchMax.Text.ToString3())).Last().Seq.ToString();//结束序号 ultraGrid3.Update(); ultraGrid3.DataBind(); ultraGrid3_CellChange(null, null); m = lists.Where(p => p.PhyBatchNo == "").ToList();//判断是否还未分配性能批号集合数据 if (m.Count == 0) { return; } } } private void buttonGetSample_Click(object sender, EventArgs e) { this.ultraGrid4.UpdateData(); int sampleNum = 0; List lists = portVrpBatchSampleResultEntityBindingSource.DataSource as List; var m = lists.Where(p => p.PhyBatchNo != "").ToList();//判断是否还未分配性能批号集合数据 if (m.Count == 0) { return; } if (dtPlanM1.Count() == 0) { if (!StringUtil.IsInt32(this.txt_SampleNum.Text.Trim().ToString3())) { MessageUtil.ShowTips("样管数量需输入正整数!"); return; } if (int.Parse(this.txt_SampleNum.Text.Trim().ToString3()) <= 0) { MessageUtil.ShowTips("取样时每批样管数应大于0"); return; } else { sampleNum = int.Parse(this.txt_SampleNum.Text.Trim().ToString3()); } foreach (var item in lists.GroupBy(p => p.PhyBatchNo)) { item.Take(sampleNum).ToList().ForEach(p => p.Chk = true); } } else { int maxBacthNum = int.Parse(this.ultraGrid4.Rows[0].Cells["NUM"].Text);//分批上限 int maxBacth = dtPlanM.Max(p => p.BatchNo == null ? 1 : (int)(p.BatchNo));//取主表最大方案 for (int i = 0; i < lists.GroupBy(p => p.PhyBatchNo).Count(); i++) { var list = dtPlanM1.Where(p => p.BatchNo == (i + 1 > maxBacth ? maxBacth : i + 1)).ToList(); var listA = list.Where(p => p.Position == "401201").ToList(); var listB = list.Where(p => p.Position == "401202").ToList(); int s = 0; for (int k = 0; k < listA.Count; k++) { var crft = list[k]; int a = (int)crft.SampleCount;//样管数量 for (int j = 0; j < a; j++, s++) { if (lists.Count > s + i * maxBacthNum) { lists[s + i * maxBacthNum].SamplePipeLenA = crft.SampleLength.ToString(); lists[s + i * maxBacthNum].PhyCodeGroup = crft.PhyCodeGroup.ToString(); lists[s + i * maxBacthNum].Chk = true; } } } s = 0; for (int k = 0; k < listB.Count; k++) { var crft = list[k]; int a = (int)crft.SampleCount;//样管数量 for (int j = 0; j < a; j++, s++) { if (lists.Count > s + i * maxBacthNum) { lists[s + i * maxBacthNum].SamplePipeLenB = crft.SampleLength.ToString(); lists[s + i * maxBacthNum].PhyCodeGroupb = crft.PhyCodeGroup.ToString(); lists[s + i * maxBacthNum].Chk = true; } } } } } ultraGrid3.Update(); ultraGrid3.DataBind(); ultraGrid3_CellChange(null, null); } /// /// 查询复取样样管信息 /// /// private void doQueryResampleRck(UltraGridRow uRow) { DataTable dtBatchNo = PublicServer.GetData("com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryResampleInfo", new Object[] { uRow.Cells["JudgeStoveNo"].Text }, ob); dataTable5.Rows.Clear(); foreach (DataRow row in dtBatchNo.Rows) { if (row["RESAMPLE_PIPE_LEN_A"] != null && row["RESAMPLE_PIPE_LEN_A"].ToString() != "") { DataRow newRowA = dataTable5.NewRow(); newRowA["PHY_BATCH_NO"] = row["PHY_BATCH_NO"].ToString(); newRowA["MAT_NO"] = row["MAT_NO"].ToString(); newRowA["SAMPLE_PIPE_LEN"] = row["RESAMPLE_PIPE_LEN_A"].ToString(); newRowA["SAMPLE_POSTION"] = "A端"; newRowA["PHY_CODE_GROUP"] = row["REPHY_CODE_GROUP"].ToString(); dataTable5.Rows.Add(newRowA); } if (row["RESAMPLE_PIPE_LEN_B"] != null && row["RESAMPLE_PIPE_LEN_B"].ToString() != "") { DataRow newRowA = dataTable5.NewRow(); newRowA["PHY_BATCH_NO"] = row["PHY_BATCH_NO"].ToString(); newRowA["MAT_NO"] = row["MAT_NO"].ToString(); newRowA["SAMPLE_PIPE_LEN"] = row["RESAMPLE_PIPE_LEN_B"].ToString(); newRowA["SAMPLE_POSTION"] = "B端"; newRowA["PHY_CODE_GROUP"] = row["REPHY_CODE_GROUPB"].ToString(); dataTable5.Rows.Add(newRowA); } } GridHelper.RefreshAndAutoSize(ultraGrid20); } private void ultraGrid15_AfterRowActivate(object sender, EventArgs e) { this.ultraGrid15.UpdateData(); UltraGridRow uRow = this.ultraGrid15.ActiveRow; if (uRow == null) return; List listSource = EntityHelper.GetData( "com.steering.mes.port.mil.FrmMilBatchSampleNew.doQueryRepeateInformation", new object[] { uRow.Cells["CheckNo"].Text, uRow.Cells["JudgeStoveNo"].Text }, this.ob); pipeCheckconsignNoqualifiedEntityBindingSource2.DataSource = listSource; List listSource1 = EntityHelper.GetData( "com.steering.mes.port.vrp.FrmVrpBatchSaplmeNew.doQueryRepeatRack", new object[] { uRow.Cells["JudgeStoveNo"].Text }, this.ob); portVrpBatchSampleResultEntityBindingSource2.DataSource = listSource1; foreach (UltraGridRow row in this.ultraGrid17.Rows) { if (row.Cells["IsSamplePipe"].Text == "1") { row.RowSelectorAppearance.BackColor = Color.Red; } } } private void ultraGrid18_AfterRowActivate(object sender, EventArgs e) { UltraGridRow uRow = this.ultraGrid18.ActiveRow; if (uRow == null) return; List listSource = EntityHelper.GetData( "com.steering.mes.port.mil.FrmMilBatchSampleNew.doQueryRepeateInformation", new object[] { uRow.Cells["CheckNo"].Text, uRow.Cells["JudgeStoveNo"].Text }, this.ob); pipeCheckconsignNoqualifiedEntityBindingSource4.DataSource = listSource; doQueryResampleRck(uRow); doQueryChemPhy(uRow); doQueryResampleNo(uRow);//复取样委托信息 } /// /// 查询复取样委托信息 /// /// private void doQueryResampleNo(UltraGridRow uRow) { while (dataTable6.Columns.Count > 3) { dataTable6.Columns.RemoveAt(3); } DataTable dtSample = PublicServer.GetData("com.steering.mes.port.mil.FrmMilBatchSampleNew.doQueryReDetialSampleNo", new Object[] { uRow.Cells["CheckNo"].Text, "2","E" }, ob); dataTable6.Rows.Clear(); dtSample.AsEnumerable().GroupBy(p => new { BatchNo = p["BATCH_NO"].ToString(), Sample = p["SAMPLE_NO"].ToString() }).ToList() .ForEach(p => { foreach (DataRow row in p) { if (!dataTable6.Columns.Contains(row["PHY_CODE_MAX"].ToString())) { DataColumn phyCloum = new DataColumn(); phyCloum.ColumnName = row["PHY_CODE_MAX"].ToString(); phyCloum.Caption = row["PHY_NAME_MAX"].ToString(); dataTable6.Columns.Add(phyCloum); } } DataRow dr = dataTable6.NewRow(); dr["PHY_BATCH_NO"] = p.Key.BatchNo; dr["SAMPLE_NO"] = p.Key.Sample; dr["SAMPLE_LEN"] = p.Max(q => q["SAMPLE_LEN"]); foreach (DataRow row in p) { dr[row["PHY_CODE_MAX"].ToString()] = row["SAMPLE_COUNT"].ToString(); } dataTable6.Rows.Add(dr); }); ultraGrid21.DataBind(); GridHelper.RefreshAndAutoSize(ultraGrid21); } /// /// 查询复取样试样组 /// /// private void doQueryChemPhy(UltraGridRow uRow) { while (dataTable5.Columns.Count > 5) { dataTable5.Columns.RemoveAt(5); } dtPhy = PublicServer.GetData("com.steering.mes.port.mil.FrmMilBatchSampleNew.doQueryReChemPhy", new Object[] { uRow.Cells["LotNo"].Text, uRow.Cells["JudgeStoveNo"].Text, uRow.Cells["CheckNo"].Text }, ob);//查询复取样试样组 List list = new List(); if (dtPhy.Rows.Count > 0) { dtPhy.AsEnumerable().Select(p => new { Code = p["PHY_CODE_MAX"].ToString(), Name = p["PHY_NAME_MAX"].ToString() }).Distinct().ToList() .ForEach(p => { DataColumn phyCloum = new DataColumn(); phyCloum.ColumnName = p.Code; phyCloum.Caption = p.Name; dataTable5.Columns.Add(phyCloum); }); } //foreach (DataRow dr in dataTable5.Rows) //{ // string[] phyCodeGroup = dr["PHY_CODE_GROUP"].ToString().Split(','); // for (int i = 5; i < dataTable5.Columns.Count; i++) // { // if (phyCodeGroup.Contains(dataTable5.Columns[i].ColumnName)) // { // dr[i] = "√"; // } // } //} ultraGrid20.DataBind(); GridHelper.RefreshAndAutoSize(ultraGrid20); } private void ultraGrid20_ClickCell(object sender, ClickCellEventArgs e) { if (e.Cell.Column.Key != "PHY_BATCH_NO" && e.Cell.Column.Key != "MAT_NO" && e.Cell.Column.Key != "SAMPLE_PIPE_LEN" && e.Cell.Column.Key != "SAMPLE_POSTION") { if (e.Cell.Text.Trim() == "") { e.Cell.Value = "√"; } else { e.Cell.Value = ""; } } } } }