using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.JGGXPln.Entity; using Core.StlMes.Client.PlnSaleOrd.JGGXPln.model; using CoreFS.CA06; using Infragistics.Win.UltraWinEditors; 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.PlnSaleOrd.JGGXPln { /// /// 接箍订单炉次作业工单计划 /// public partial class FrmJgMPlnZy : FrmBase { private UltraComboEditor comboJgMPline = null; private UltraComboEditor comboCodeJgBl = null; private UltraComboEditor comboPline = null; private int _splitterDistance1 = 0; private bool _groupBox1ExpandedChanged = false; public FrmJgMPlnZy() { this.IsLoadUserView = true; InitializeComponent(); EntityHelper.ShowGridCaption(ultraGridJgGxM.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGridJgGxProP.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGridPlnJgZy.DisplayLayout.Bands[0]); System.Threading.Thread t = new System.Threading.Thread(setGridColunmName); t.Start(); } private void setGridColunmName() { System.Threading.Thread.Sleep(3000); if (!this.IsDisposed) { EntityHelper.ShowGridCaption(ultraGridJgGxM.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGridJgGxProP.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGridPlnJgZy.DisplayLayout.Bands[0]); } } public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query": DoQuery(); break; case "ModifyJgM": DoModifyJgM(); break; case "BoundJg": DoBoundJg(); break; case "AddZyJg": DoAddZyJg(); break; case "CanCelZy": DoCanCelZy(); break; case "ModifyZyJg": DoModifyZyJg(); break; case "RefresDate": RefresDate(); break; case "Close": this.Close(); break; default: break; } } private void FrmJgMPlnZy_Load(object sender, EventArgs e) { Init(); RefresDate(); } private void Init() { PlanComm.setGridActivation(ultraGridJgGxM.DisplayLayout.Bands[0], "CHC", "PlineCode", "CodeJgBl"); PlanComm.setGridDigitalCol(ultraGridJgGxM.DisplayLayout.Bands[0], 5, 2, "Outdiameter", "Wallthick", "Aimlength", "Singleweight", "Diameter", "DiameterJg", "CheckJVal", "MinD", "MinH", "BlMinDOut", "BlMaxDIn", "AimlengthBl", "HeightJg", "DiameterPl", "HeightPl", "LengthMin", "LengthMax", "LengthJg", "WeightJg", "MinDCp", "MaxDCp", "LengthMin", "LengthMax", "MinHCp", "MaxHCp", "MinDJg", "MaxDJg"); PlanComm.setGridDigitalCol(ultraGridJgGxM.DisplayLayout.Bands[0], 5, 3, "BlWeight"); PlanComm.setGridDigitalCol(ultraGridJgGxM.DisplayLayout.Bands[0], 5, 0, "ProducedNum", "ZyplanNum", "BlNum", "PlanNum", "JgwtBlreq", "Buyplannum", "Matchnum"); PlanComm.setGridActivation(ultraGridJgGxProP.DisplayLayout.Bands[0]); PlanComm.setGridDigitalCol(ultraGridJgGxProP.DisplayLayout.Bands[0], 5, 3, "GroupBlWt"); PlanComm.setGridDigitalCol(ultraGridJgGxProP.DisplayLayout.Bands[0], 5, 0, "GroupNum", "SingleCutNun", "GroupBlNum", "ProducedNum"); PlanComm.setGridDigitalCol(ultraGridJgGxProP.DisplayLayout.Bands[0], 5, 2, "MinD", "MinH", "AimlengthBl", "AimCutLen", "LengthMin", "LengthMax"); PlanComm.setGridActivation(ultraGridPlnJgZy.DisplayLayout.Bands[0], "CHC", "IfOutCut", "IfOutCjg", "IfOutImpress", "IfOutLathe", "IfOutDetect", "IfOutBlast", "IfOutPltCu", "IfOutPhos"); comboJgMPline = new UltraComboEditor(); comboCodeJgBl = new UltraComboEditor(); comboPline = new UltraComboEditor(); this.Controls.Add(comboJgMPline); this.Controls.Add(comboCodeJgBl); this.Controls.Add(comboPline); comboJgMPline.Visible = false; comboCodeJgBl.Visible = false; comboPline.Visible = false; ultraGridJgGxM.DisplayLayout.Bands[0].Columns["PlineCode"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; ultraGridJgGxM.DisplayLayout.Bands[0].Columns["CodeJgBl"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList; } /// /// 刷新 /// private void RefresDate() { DataTable dtPine = ServerHelper.GetData("com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.getJgPine", new object[] { }, this.ob); comboPline.DataSource = dtPine; comboPline.ValueMember = "PLINE_CODE"; comboPline.DisplayMember = "PLINE_NAME"; ultraGridJgGxM.DisplayLayout.Bands[0].Columns["PlineCode"].EditorComponent = comboPline; DataTable dtDd = ServerHelper.GetData("com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.queryJgGxMNo", new object[] { }, this.ob); if (dtDd != null && dtDd.Rows.Count > 0) { DataRow dr = dtDd.NewRow(); dtDd.Rows.InsertAt(dr, 0); } ultraComboJgDdNo.DataSource = dtDd; ultraComboJgDdNo.DisplayMember = "PRO_PLAN_ID"; ultraComboJgDdNo.ValueMember = "PRO_PLAN_ID"; ultraComboJgDdNo.SelectedIndex = 0; if (dtPine != null && dtPine.Rows.Count > 0) { DataRow dr = dtPine.NewRow(); dtPine.Rows.InsertAt(dr, 0); } ultraComboJgPine.DataSource = dtPine; ultraComboJgPine.ValueMember = "PLINE_CODE"; ultraComboJgPine.DisplayMember = "PLINE_NAME"; ultraComboJgPine.SelectedIndex = 0; } /// /// 查询 /// private void DoQuery() { ArrayList paramJgM = new ArrayList(); if (checkBoxJgDdNo.Checked) { paramJgM.Add(ultraComboJgDdNo.Text.Trim()); } else { paramJgM.Add(""); } if (this.checkBoxJgPline.Checked) { paramJgM.Add(this.ultraComboJgPine.Value.ToString()); } else { paramJgM.Add(""); } if (this.checkBoxSpec.Checked) { paramJgM.Add(this.ultraTextEditorSpec.Text.Trim()); } else { paramJgM.Add(""); } if (this.checkBoxProduce.Checked) { paramJgM.Add(ultraTextEditorProduce.Text.Trim()); } else { paramJgM.Add(""); } if (this.checkBoxSteel.Checked) { paramJgM.Add(this.ultraTextEditorSteel.Text.Trim()); } else { paramJgM.Add(""); } if (this.checkBoxModel.Checked) { paramJgM.Add(this.ultraTextEditorModel.Text.Trim()); } else { paramJgM.Add(""); } bindingSourcePlnGxJgPropEntity.Clear(); bindingSourcePlnZyJgEntity.Clear(); List listSource1 = EntityHelper.GetData( "com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.queryGxJgM", new object[] { paramJgM }, this.ob); bindingSourcePlnGxJgMEntity.DataSource = listSource1; } /// /// 修改接箍订单 /// private void DoModifyJgM() { ultraGridJgGxM.UpdateData(); CoreClientParam ccp = null; ArrayList list = new ArrayList(); IQueryable ugrs = ultraGridJgGxM.Rows.AsQueryable().Where("CHC = 'True'"); if (ugrs.Count() == 0) { MessageUtil.ShowTips("未勾选任何接箍订单。"); return; } foreach (UltraGridRow ugr in ugrs) { PlnGxJgMEntity jgMEntity = new PlnGxJgMEntity(); jgMEntity.ProPlanId = ugr.Cells["ProPlanId"].Value.ToString(); jgMEntity.PlineCode = ugr.Cells["PlineCode"].Value.ToString(); jgMEntity.PlineName = ugr.Cells["PlineCode"].Text.Trim(); jgMEntity.CodeJgBl = ugr.Cells["CodeJgBl"].Value.ToString(); jgMEntity.CodeJg = ugr.Cells["CodeJg"].Value.ToString(); list.Add(JSONFormat.Format(jgMEntity)); } ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy"; ccp.MethodName = "doModifyJgM"; ccp.ServerParams = new object[] { list }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnObject != null) { MessageUtil.ShowTips(ccp.ReturnObject.ToString()); } } DoQuery(); } /// /// 接箍利库 /// private void DoBoundJg() { string proPlanId = ""; string jgGroupId = ""; UltraGridRow ugr = ultraGridJgGxProP.ActiveRow; if (ugr == null) { return; } FrmJgUseStock jgUseStock = null; DataTable dt = null; proPlanId = ugr.Cells["ProPlanId"].Value.ToString(); jgGroupId = ugr.Cells["JgGroupId"].Value.ToString(); dt = ServerHelper.GetData("com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.getPlnGxJgMStatus", new object[] { proPlanId, jgGroupId }, this.ob); if (dt == null || dt.Rows.Count < 0) { MessageUtil.ShowTips("未找到订单" + proPlanId + "。"); return; } if (!dt.Rows[0]["PLANSTATUS"].ToString().Trim().Equals("0")) { MessageUtil.ShowTips("订单:" + proPlanId + "已经下发了。"); return; } if (!dt.Rows[0]["GROUP_STATUS"].ToString().Trim().Equals("0")) { MessageUtil.ShowTips("订单:" + proPlanId + " 分组:" + jgGroupId + "不在计划状态。"); return; } jgUseStock = new FrmJgUseStock(proPlanId, jgGroupId, this.ob); jgUseStock.ShowDialog(); if (jgUseStock.IsChecked) { DoQuery(); return; } } /// /// 接箍炉次计划 /// private void DoAddZyJg() { string proPlanId = ""; string jgGroupId = ""; FrmMatZcM matZcM = null; int jgNum = 0;//接箍个数 int matchNum = 0;//利库个数 double lenJg = 0;//接箍长度 double lenBlsum = 0;//接箍料总长度 UltraGridRow ugr = ultraGridJgGxProP.ActiveRow; if (ugr == null) { return; } proPlanId = ugr.Cells["ProPlanId"].Value.ToString(); jgGroupId = ugr.Cells["JgGroupId"].Value.ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.getPlnGxJgMStatus", new object[] { proPlanId, jgGroupId }, this.ob); if (dt == null || dt.Rows.Count < 0) { MessageUtil.ShowTips("未找到订单" + proPlanId + "。"); return; } if (dt.Rows[0]["PLINE_CODE"].ToString().Trim().Equals("")) { MessageUtil.ShowTips("订单:" + proPlanId + "没有指定产线。"); return; } if (dt.Rows[0]["CODE_JG_BL"].ToString().Trim().Equals("")) { MessageUtil.ShowTips("订单:" + proPlanId + "没有找到对应接箍备料码。(接箍码" + dt.Rows[0]["CODE_JG"].ToString() + ")"); return; } if (dt.Rows[0]["GROUP_NUM"] == null || !int.TryParse(dt.Rows[0]["GROUP_NUM"].ToString(), out jgNum)) { MessageUtil.ShowTips("订单:" + proPlanId + " 分组" + ugr.Cells["JgGroupId"].Value.ToString() + "接箍个数未知。"); return; } if (dt.Rows[0]["LENGTH_JG"] == null || !double.TryParse(dt.Rows[0]["LENGTH_JG"].ToString(), out lenJg)) { MessageUtil.ShowTips("接箍" + dt.Rows[0]["CODE_JG"].ToString() + "的长度未知。"); return; } if (lenJg <= 0) { MessageUtil.ShowTips("接箍" + dt.Rows[0]["CODE_JG"].ToString() + "的长度必须大于零。"); return; } int.TryParse(dt.Rows[0]["MATCHNUM_JG"].ToString(), out matchNum); if (jgNum - matchNum > 0) { lenBlsum = (lenJg + 10) / 1000 * (jgNum - matchNum); } else { lenBlsum = 0; } matZcM = new FrmMatZcM(proPlanId, jgGroupId, this.ob); matZcM.UltraNumericLenBl.Value = lenBlsum; matZcM.ShowDialog(); if (matZcM.IsChecked) { DoQuery(); return; } } /// /// 修改炉次计划 /// private void DoModifyZyJg() { UltraGridRow ugr = ultraGridPlnJgZy.ActiveRow; if (ugr == null) { MessageUtil.ShowTips("没有指定修改的炉次计划。"); return; } int jgNum = 0;//接箍个数 double lenJg = 0;//接箍长度 int matchNum = 0;//利库个数 double lenBlsum = 0;//接箍料总长度 string zyPlanId = ugr.Cells["ZyPlanId"].Value.ToString(); string proPlanId = ugr.Cells["ProPlanId"].Value.ToString(); string jgGroupId = ugr.Cells["JgGroupId"].Value.ToString(); DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.getPlnGxJgMStatus", new object[] { proPlanId, jgGroupId }, this.ob); if (dt == null || dt.Rows.Count < 0) { MessageUtil.ShowTips("未找到订单" + proPlanId + "。"); return; } if (dt.Rows[0]["PLINE_CODE"].ToString().Trim().Equals("")) { MessageUtil.ShowTips("订单:" + proPlanId + "没有指定产线。"); return; } if (dt.Rows[0]["CODE_JG_BL"].ToString().Trim().Equals("")) { MessageUtil.ShowTips("订单:" + proPlanId + "没有找到对应接箍备料码。(接箍码" + dt.Rows[0]["CODE_JG"].ToString() + ")"); return; } if (dt.Rows[0]["GROUP_NUM"] == null || !int.TryParse(dt.Rows[0]["GROUP_NUM"].ToString(), out jgNum)) { MessageUtil.ShowTips("订单:" + proPlanId + " 分组" + ugr.Cells["JgGroupId"].Value.ToString() + "接箍个数未知。"); return; } if (dt.Rows[0]["LENGTH_JG"] == null || !double.TryParse(dt.Rows[0]["LENGTH_JG"].ToString(), out lenJg)) { MessageUtil.ShowTips("接箍" + dt.Rows[0]["CODE_JG"].ToString() + "的长度未知。"); return; } if (lenJg <= 0) { MessageUtil.ShowTips("接箍" + dt.Rows[0]["CODE_JG"].ToString() + "的长度必须大于零。"); return; } int.TryParse(dt.Rows[0]["MATCHNUM_JG"].ToString(), out matchNum); if (jgNum - matchNum > 0) { lenBlsum = (lenJg + 10) / 1000 * (jgNum - matchNum); } else { lenBlsum = 0; } FrmMatZcM matZcM = new FrmMatZcM(zyPlanId, this.ob); matZcM.UltraNumericLenBl.Value = lenBlsum; matZcM.ShowDialog(); if (matZcM.IsChecked) { DoQuery(); return; } } /// /// 取消炉次作业 /// private void DoCanCelZy() { ultraGridPlnJgZy.UpdateData(); ArrayList list = new ArrayList(); IQueryable ugrs = ultraGridPlnJgZy.Rows.AsQueryable().Where(" CHC = 'True' "); if (ugrs.Count() == 0) { MessageUtil.ShowTips("未勾选任何作业工单。"); return; } foreach (UltraGridRow ugr in ugrs) { list.Add(ugr.Cells["ZyPlanId"].Value.ToString()); } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy"; ccp.MethodName = "canCelJgZy"; ccp.ServerParams = new object[] { list }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnObject != null) { MessageUtil.ShowTips(ccp.ReturnObject.ToString()); } } DoQuery(); } /// /// 查询炉次作业 /// /// /// private void DoQueryZyJg(string proPlanId, string jgGroupId) { List listSource2 = EntityHelper.GetData( "com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.queryPlnZyJg", new object[] { proPlanId, jgGroupId }, this.ob); bindingSourcePlnZyJgEntity.DataSource = listSource2; } /// /// 接箍订单 /// private void DoBindJgMBLPine() { UltraGridRow ugr = ultraGridJgGxM.ActiveRow; if (ugr == null) { return; } string codeJg = ugr.Cells["CodeJg"].Value.ToString(); string codeBl = ugr.Cells["CodeJgBl"].Value.ToString(); DataTable dtBl = ServerHelper.GetData("com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.getPlnJgMBlCode", new object[] { codeJg, ugr.Cells["CustAlphaNo"].Value.ToString(), ugr.Cells["AlphaCode"].Value.ToString() }, this.ob); DataTable dtPine = ServerHelper.GetData("com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.getPlnJgMPine", new object[] { codeJg, codeBl }, this.ob); comboCodeJgBl.DataSource = dtBl; comboCodeJgBl.ValueMember = "PSC_BL"; comboCodeJgBl.DisplayMember = "PSC_BL"; ugr.Cells["CodeJgBl"].EditorComponent = comboCodeJgBl; comboJgMPline.DataSource = dtPine; comboJgMPline.ValueMember = "PLINE_CODE"; comboJgMPline.DisplayMember = "PLINE_NAME"; ugr.Cells["PlineCode"].EditorComponent = comboJgMPline; IQueryable urows = ultraGridJgGxM.Rows.AsQueryable().Where( "ProPlanId != '" + ugr.Cells["ProPlanId"].Value.ToString() + "'"); foreach (UltraGridRow urow in urows) { urow.Cells["PlineCode"].EditorComponent = comboPline; } } private void ultraGridJgGxM_CellChange(object sender, CellEventArgs e) { UltraGridRow ugr = e.Cell.Row; if (ugr == null) { return; } ugr.Update(); if (e.Cell.Column.Key.Equals("PlineCode")) { ugr.Cells["PlineName"].Value = ugr.Cells["PlineCode"].Text.Trim(); } if (e.Cell.Column.Key.Equals("CodeJgBl")) { string codeJg = ugr.Cells["CodeJg"].Value.ToString(); string codeBl = ugr.Cells["CodeJgBl"].Value.ToString(); DataTable dtPine = ServerHelper.GetData("com.steering.pss.plnsaleord.jggxpln.CoreJgMPlnZy.getPlnJgMPine", new object[] { codeJg, codeBl }, this.ob); comboJgMPline.DataSource = dtPine; comboJgMPline.ValueMember = "PLINE_CODE"; comboJgMPline.DisplayMember = "PLINE_NAME"; ugr.Cells["PlineCode"].EditorComponent = comboJgMPline; IQueryable urows = ultraGridJgGxM.Rows.AsQueryable().Where( "ProPlanId != '" + ugr.Cells["ProPlanId"].Value.ToString() + "'"); foreach (UltraGridRow urow in urows) { urow.Cells["PlineCode"].EditorComponent = comboPline; } } } private void ultraGridJgGxM_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGridJgGxM.ActiveRow; if (ugr == null) { return; } bindingSourcePlnGxJgPropEntity.DataSource = EntityHelper.GetData( "com.steering.pss.plnsaleord.jggxpln.CorePlnJgOrdToDd.queryJgGxProp", new object[] { ugr.Cells["ProPlanId"].Value.ToString() }, this.ob); DoBindJgMBLPine(); } #region 事件 private void checkBoxJgDdNo_CheckedChanged(object sender, EventArgs e) { if (checkBoxJgDdNo.Checked) { ultraComboJgDdNo.Enabled = true; } else { ultraComboJgDdNo.Enabled = false; } } private void checkBoxJgPline_CheckedChanged(object sender, EventArgs e) { if (checkBoxJgPline.Checked) { ultraComboJgPine.Enabled = true; } else { ultraComboJgPine.Enabled = false; } } private void checkBoxSpec_CheckedChanged(object sender, EventArgs e) { if (checkBoxSpec.Checked) { this.ultraTextEditorSpec.Enabled = true; } else { ultraTextEditorSpec.Enabled = false; } } private void checkBoxSteel_CheckedChanged(object sender, EventArgs e) { if (checkBoxSteel.Checked) { this.ultraTextEditorSteel.Enabled = true; } else { ultraTextEditorSteel.Enabled = false; } } private void checkBoxProduce_CheckedChanged(object sender, EventArgs e) { if (checkBoxProduce.Checked) { this.ultraTextEditorProduce.Enabled = true; } else { ultraTextEditorProduce.Enabled = false; } } private void checkBoxModel_CheckedChanged(object sender, EventArgs e) { if (checkBoxModel.Checked) { this.ultraTextEditorModel.Enabled = true; } else { ultraTextEditorModel.Enabled = false; } } private void ultraExpandableJgGxProP_ExpandedStateChanged(object sender, EventArgs e) { _groupBox1ExpandedChanged = true; if (ultraExpandableJgGxProP.Expanded == false) { splitContainer2.SplitterDistance = this.Width; } else { splitContainer2.SplitterDistance = _splitterDistance1; } _groupBox1ExpandedChanged = false; } private void splitContainer2_SplitterMoved(object sender, SplitterEventArgs e) { if (_groupBox1ExpandedChanged == false) { _splitterDistance1 = splitContainer2.SplitterDistance; if (splitContainer2.SplitterDistance < splitContainer2.Parent.Width - 35) { ultraExpandableJgGxProP.Expanded = true; } else { ultraExpandableJgGxProP.Expanded = false; } } } private void ultraGridJgGxM_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (UltraGridRow uRow in ultraGridJgGxM.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { uRow.Cells["CHC"].Value = true; } } } private void ultraGridPlnJgZy_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (UltraGridRow uRow in ultraGridPlnJgZy.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { uRow.Cells["CHC"].Value = true; } } } private void ultraGridJgGxProP_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGridJgGxProP.ActiveRow; if (ugr == null) { return; } DoQueryZyJg(ugr.Cells["ProPlanId"].Value.ToString(), ugr.Cells["JgGroupId"].Value.ToString()); } #endregion } }