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 CoreFS.CA06; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinEditors; using Core.Mes.Client.Comm.Tool; using System.Collections; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; //先判断是否有成分理化,如果有取内控理化标准 namespace Core.StlMes.Client.Lims.Port { public partial class FrmMilConfirmItems : FrmBase { private string PlineCode = "";//产线 public FrmMilConfirmItems() { InitializeComponent(); } private void FrmMilConfirmItems_Load(object sender, EventArgs e) { dateBegin.Value = dateEnd.DateTime.AddDays(-6); InitColumnsDataTable(); PlineCode = PublicPort.GetPCode(this.ValidDataPurviewIds, ob);//获取 用户 对应的产线 } protected override void OnLoad(EventArgs e) { base.OnLoad(e); //ultraGrid1.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框 //ultraGrid2.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False; ultraGrid2.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid2_.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; //ultraGrid3.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;//不默认加载筛选条件框 ultraGrid4.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; ultraGrid4_.DisplayLayout.Override.AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False; } private void InitColumnsDataTable() { //生产批号、炉号队列 string[] arrColumnsLot = new string[] { "IS_CORRECT", "FLAG_DESC", "PRO_ORDER_NO", "ORDER_NO", "ORDER_SEQ", "ORDER_NO_SEQ", "DELIVERY_NO", "GO_TYPE", "GO_TYPE_DESC", "PROCESS_CODE_C", "PROCESS_DESC_C", "REQ_PROD_WT", "REQ_PROD_NUM", "OUTDIAMETER", "WALLTHICK", "AIMWALLTHICK", "DIAMETER_GP", "STEELNAME", "LENGTHMAX", "LENGTHMAX", "AIMLENGTH", "CRAFT_FILE_NO", "PLINE_CODE", "PLINE_NAME", "PASS_CODE", "PASS_NAME", "ORD_LN_DLY_PK", "CRAFT_SEQ", "DESGIN_KEY" }; string[] arrCaptionLot = new string[] { "状态", "状态", "轧管合同编号", "合同号", "合同行号", "合同号", "交货行号", "去向", "去向", "二级工序代码", "二级工序描述", "待生产量", "待生产支数", "外径", "壁厚", "控制壁厚", "管坯直径", "钢级", "最大长度", "最小长度", "控制长度", "工艺文件号", "产线代码", "产线描述", "孔型代码", "孔型描述", "交货行PK", "工艺序号", "DESGIN_KEY" }; PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable1); PublicPort.setColumnShowOrHidden(ultraGrid1, new string[] { "IS_CORRECT", "ORDER_NO", "ORDER_SEQ", "PLINE_CODE", "PASS_CODE", "ORD_LN_DLY_PK", "CRAFT_SEQ", "GO_TYPE", "PROCESS_CODE_C", "DESGIN_KEY" }, false);//不需要显示的行 PublicPort.InitColumns(arrColumnsLot, arrCaptionLot, dataTable3); PublicPort.setColumnShowOrHidden(ultraGrid3, new string[] { "IS_CORRECT", "ORDER_NO", "ORDER_SEQ", "PLINE_CODE", "PASS_CODE", "ORD_LN_DLY_PK", "CRAFT_SEQ", "GO_TYPE", "PROCESS_CODE_C", "DESGIN_KEY" }, false);//不需要显示的行 //取样要求队列 string[] arrColumnsSampleReq = new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "SAMPLE_STYLE", "DESC_SAMPLE_STYLE", "STD_CODE", "STD_NAME", "LENGTH", "DESC_LENGTH", "WIDTH", "RATE", "DESC_RATE", "BATCH_UNIT", "BATCH_CNT", "POSITION", "DESC_POSITION", "DESC_COUNT", "SAMPLE_COUNT" }; string[] arrCaptionSampleReq = new string[] { "检验项代码", "检验项", "取样码", "取样码描述", "试样码", "试样码描述", "样片类型", "样片类型", "标准代码", "标准名称", "取样长度代码", "取样长度", "取样宽度", "取样频率代码", "取样频率", "分批单位", "分批数量", "取样位置代码", "取样位置", "取样数量", "样条数" }; PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable2); PublicPort.setColumnShowOrHidden(ultraGrid2, new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "LENGTH", "RATE", "POSITION" }, false);//不需要显示的行 PublicPort.InitColumns(arrColumnsSampleReq, arrCaptionSampleReq, dataTable4); PublicPort.setColumnShowOrHidden(ultraGrid4, new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_STYLE", "STD_CODE", "STD_NAME", "LENGTH", "RATE", "POSITION" }, false);//不需要显示的行 //检验项目明细 string[] arrColumnsDetail = new string[] { "PHY_CODE_MAX", "PHY_NAME_MAX", "PHY_CODE_MIN", "PHY_NAME_MIN", "SAMPLE_KEY", "SAMPLE_KEY_DESC", "PHY_CODE", "PHY_NAME", "ITEM_CODE_F", "ITEM_NAME_F", "ITEM_CODE_W", "ITEM_NAME_W", "ITEM_CODE_S", "ITEM_NAME_S" }; string[] arrCaptionDetail = new string[] { "检验项代码", "检验项", "取样码", "取样码描述", "试样码", "试样码描述", "检验基础项代码", "检验基础项", "试验方向代码", "试验方向", "试验温度代码", "试验温度", "试样尺寸代码", "试样尺寸" }; PublicPort.InitColumns(arrColumnsDetail, arrCaptionDetail, dataTable2_); PublicPort.setColumnShowOrHidden(ultraGrid2_, new string[] { "SAMPLE_KEY_DESC", "PHY_NAME" }, true);//不需要显示的行 PublicPort.InitColumns(arrColumnsDetail, arrCaptionDetail, dataTable4_); PublicPort.setColumnShowOrHidden(ultraGrid4_, new string[] { "SAMPLE_KEY_DESC", "PHY_NAME" }, true);//不需要显示的行 } /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { //新增、修改修约值、审核、删除、退出 switch (ToolbarKey) { case "Query": if (ultraTabControl1.SelectedTab.Index == 0) { //查询轧管工序合同 QueryPln_Order_Zg(dataTable1, ultraGrid1, "0010"); } else if (ultraTabControl1.SelectedTab.Index == 1) { QueryPln_Order_Zg(dataTable4, ultraGrid3, "11"); } //else if (ultraTabControl1.SelectedTab.Index == 2) //{ // QueryLotNoAndStoveNo_LOG_LOG(); //} //else if (ultraTabControl1.SelectedTab.Index == 3) //{ // QueryLotNoAndStoveNo_LOG_LOG_LOG(); //} break; case "Confirm": ConfirmPhy();//确认检验项目是否合格 break; case "Cancel": CancelConfirmPhy(); break; case "Close": if (MessageUtil.ShowYesNoAndQuestion("是否确认关闭页面?") == DialogResult.Yes) { this.Close(); } break; } } //获取轧管工序合同 private void QueryPln_Order_Zg(DataTable dataTable, UltraGrid ultraGrid, string param) { try { ArrayList arrayList = new ArrayList(); //产线、批次号、炉号 arrayList.Add(param);//性能批号标志位 arrayList.Add(dateBegin.DateTime.ToShortDateString() + " 00:00:00"); arrayList.Add(dateEnd.DateTime.ToShortDateString() + " 23:59:59"); arrayList.Add(ultraQuerySTEELNAME.Text.Trim()); arrayList.Add(txtQueryORDER_NO.Text.Trim()); DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilConfirmItems.QueryPln_Order_Zg", new Object[] { arrayList, PlineCode }, ob); if (dt == null || dt.Rows.Count == 0) { dataTable.Rows.Clear(); return; } GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { try { dataTable2_.Rows.Clear();//取样码整改eeee dataTable2.Rows.Clear(); //先判断是否有成分理化 ArrayList arrayList = new ArrayList(); //产线、批次号、炉号 arrayList.Add(ultraGrid1.ActiveRow.Cells["ORDER_SEQ"].Text.Trim()); arrayList.Add(ultraGrid1.ActiveRow.Cells["ORDER_NO"].Text.Trim()); QueryGetSampleReq_Desgin_Process(arrayList, ultraGrid1); QueryGetSampleReq(arrayList, dataTable2, ultraGrid2); QueryGetSampleReqDetail_Phy(arrayList, dataTable2_, ultraGrid2_); //GridHelper.RefreshAndAutoSize(ultraGrid2);//刷新Grid if (chkChem.Checked == false) { MessageUtil.ShowWarning("轧制工序不经过成品成分工序点请注意是否维护有误!"); return; } else if ((chkChem.Checked == true || chkPhy.Checked == true) && dataTable2.Rows.Count == 0) { MessageUtil.ShowWarning("请维护取样码!"); return; } else if (chkPhy.Checked == true && dataTable2_.Rows.Count == 0) { MessageUtil.ShowTips("请维护内控标准检验项目!"); return; } } catch (Exception ex) { MessageUtil.ShowWarning(ex.Message); } } //查询合同轧制制程是否经过成分和理化 private void QueryGetSampleReq_Desgin_Process(ArrayList arrayList, UltraGrid ultraGrid) { DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilConfirmItems.QueryGetSampleReq_Desgin_Process", new Object[] { arrayList }, ob); if (dt != null && dt.Rows.Count > 0) { if (dt.Rows.Count == 1) { if (dt.Rows[0]["STATION_CODE"].ToString() == "40230" || dt.Rows[0]["STATION_DESC"].ToString() == "成品成分") { chkChem.Checked = true; chkPhy.Checked = false; } else { chkChem.Checked = false; chkPhy.Checked = true; } } else { chkChem.Checked = true; chkPhy.Checked = true; } } else { chkChem.Checked = false; chkPhy.Checked = false; } } //根据冶金规范查找MSC下的取样要求 COM_MSC_STD_PIC - BATCH_LOCA 组批位置 COM_BASE_SAMPLE - BATCH_CNT 每批支数 //1.通过PLN_ORDER_ZG - PRO_ORDER_NO轧管工序合同号找到交货行号ORD_LN_DLY_PK //2.通过ORD_LN_DLY_PK 找到 SLM_ORDER_LINE 里的MSC //3.通过MSC找到COM_MSC_STD_PIC 和 COM_MSC_PHY_SAMPLE 里的PIC //4.通过PIC找到COM_BASE_SAMPLE 找到 SIC 取样要求 //根据质量设计查找DESGIN_KEY下的取样要求 //1.通过PLN_ORDER_ZG - PRO_ORDER_NO轧管工序合同号找到交货行号ORD_LN_DLY_PK , CRAFT_ORD_DESIGN //2.通过交货行号ORD_LN_DLY_PK 找到 SLM_ORDER_LINE_DELIVERY里的ORD_LN_PK 通过 ORD_LN_PK 找到CRAFT_ORD_DESIGN里的DESGIN_KEY //3.通过DESGIN_KEY 找到 CRAFT_ORD_DESIGN_STD_PIC 里的检验项目 //4.通过DESGIN_KEY 找到 CRAFT_ORD_DESIGN_STD_PIC_SMP 里的取样要求 //通过轧管合同号找取样要求 private void QueryGetSampleReq(ArrayList arrayList, DataTable dataTable, UltraGrid ultraGrid) { //try //{ DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilConfirmItems.QueryGetSampleReq", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid //} //catch (Exception e) //{ // MessageUtil.ShowWarning(e.Message); //} } //查询检验项目明细 private void QueryGetSampleReqDetail_Phy(ArrayList arrayList, DataTable dataTable, UltraGrid ultraGrid) { //try //{ DataTable dt = PublicServer.GetData("com.steering.mes.port.mil.FrmMilConfirmItems.QueryGetSampleReqDetail_Phy", new Object[] { arrayList }, ob); if (dt == null || dt.Rows.Count == 0) { return; } GridHelper.CopyDataToDatatable(dt, dataTable, true);//把dt复制给dataTable1 GridHelper.RefreshAndAutoSize(ultraGrid);//刷新Grid //} //catch (Exception e) //{ // MessageUtil.ShowWarning(e.Message); //} } //确认检验项目是否正确 private void ConfirmPhy() { try { if (dataTable1 == null || dataTable1.Rows.Count == 0 || ultraGrid1.ActiveRow.Activated == false) { return; } if (ultraTabControl1.SelectedTab.Index != 0) { MessageUtil.ShowTips("只有选择了不合格页才能进行检验确认操作!"); return; } //if (MessageUtil.ShowYesNoAndQuestion("是否检验确认?") == DialogResult.Yes) //{ PhyItemsConfirmResult pc = new PhyItemsConfirmResult(); pc.ShowDialog(); if (pc.DialogResult != DialogResult.OK) { return; } string flag = pc.StrIS_CORRECT; string strPRO_ORDER_NO = ultraGrid1.ActiveRow.Cells["PRO_ORDER_NO"].Text.Trim(); //检验记录写在LOG表 做分批取样 ArrayList alAll = new ArrayList(); alAll.Add(this.Text + "确认" + (flag == "10" ? "不成立" : "成立") + "由于" + pc.StrRemark + "(" + UserInfo.GetUserName() + " " + DateTime.Now.ToString("yyyy-mm-dd hh:MM:ss") + ")"); alAll.Add(flag); alAll.Add("00"); alAll.Add(strPRO_ORDER_NO); PublicServer.SetData("com.steering.mes.port.mil.FrmMilConfirmItems.UpdatePln_Order_Zg", new Object[] { alAll }, this.ob); QueryPln_Order_Zg(dataTable1, ultraGrid1, "0010"); //QueryPln_Order_Zg(dataTable1, ultraGrid1, "11"); PublicPort.ActiveOperateRow(ultraGrid1, "PRO_ORDER_NO", strPRO_ORDER_NO); MessageUtil.ShowTips("检验确认成功!"); //} } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } private void ultraGrid4_AfterRowActivate(object sender, EventArgs e) { try { dataTable4.Rows.Clear(); dataTable4_.Rows.Clear(); ArrayList arrayList = new ArrayList(); //产线、批次号、炉号 arrayList.Add(ultraGrid4.ActiveRow.Cells["ORDER_SEQ"].Text.Trim()); arrayList.Add(ultraGrid4.ActiveRow.Cells["ORDER_NO"].Text.Trim()); QueryGetSampleReq(arrayList, dataTable4, ultraGrid4); QueryGetSampleReqDetail_Phy(arrayList, dataTable4_, ultraGrid4_); //GridHelper.RefreshAndAutoSize(ultraGrid4);//刷新Grid } catch (Exception ex) { MessageUtil.ShowWarning(ex.Message); } } //取消确认检验项目是否正确 private void CancelConfirmPhy() { try { if (dataTable4 == null || dataTable4.Rows.Count == 0 || ultraGrid3.ActiveRow.Activated == false) { return; } if (ultraTabControl1.SelectedTab.Index != 1) { MessageUtil.ShowTips("只有选择了已合格页才能进行取消检验确认操作!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否取消检验确认?") == DialogResult.Yes) { string strPRO_ORDER_NO = ultraGrid3.ActiveRow.Cells["PRO_ORDER_NO"].Text.Trim(); ArrayList alConfirmLogParams = new ArrayList();//历史记录表 alConfirmLogParams.Add("00"); alConfirmLogParams.Add(""); alConfirmLogParams.Add(ultraGrid3.ActiveRow.Cells["IS_CORRECT"].Text.Trim()); alConfirmLogParams.Add(strPRO_ORDER_NO); PublicServer.SetData("com.steering.mes.port.mil.FrmMilConfirmItems.UpdatePln_Order_Zg", new Object[] { alConfirmLogParams }, this.ob); QueryPln_Order_Zg(dataTable4, ultraGrid3, "11"); //QueryPln_Order_Zg(dataTable1, ultraGrid1, "0010"); //PublicPort.ActiveOperateRow(ultraGrid1, "PRO_ORDER_NO", strPRO_ORDER_NO); MessageUtil.ShowTips("取消确认成功!"); } } catch (Exception e) { MessageUtil.ShowWarning(e.Message); } } } }