using com.steering.mes.zgmil.entity; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Core.StlMes.Client.ZGMil.Common; using Core.StlMes.Client.ZGMil.Entity; using CoreFS.CA06; 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.ZGMil.NodeResultQuery { public partial class SyncPro : FrmBase { private OpeBase ob; public OpeBase Ob { get { return ob; } set { ob = value; } } MilPlanEntity milplian = new MilPlanEntity(); MilFeedPlanEntity feedplan = new MilFeedPlanEntity(); ArrayList arr = new ArrayList(); string PlineCode = ""; string pline = ""; ArrayList listheatno = new ArrayList(); public SyncPro(OpeBase ob,string plinecode) { InitializeComponent(); foreach (UltraGridColumn ugc in ultraGridSync.DisplayLayout.Bands[0].Columns) { if (!ugc.Key.ToString().Equals("Check")) { ugc.CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; } } foreach (UltraGridColumn ugc in ultraGridSync.DisplayLayout.Bands[1].Columns) { ugc.CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; } foreach (UltraGridColumn ugc in ultraGridSyncHas.DisplayLayout.Bands[0].Columns) { if (!ugc.Key.ToString().Equals("Check")) { ugc.CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; } } foreach (UltraGridColumn ugc in ultraGridSyncHas.DisplayLayout.Bands[1].Columns) { ugc.CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; } this.Ob = ob; this.pline = plinecode; if (plinecode.Equals("C008")) { this.PlineCode = "250机组"; } if (plinecode.Equals("C010")) { this.PlineCode = "168机组"; } if (plinecode.Equals("C017")) { this.PlineCode = "460机组"; } if (plinecode.Equals("C009")) { this.PlineCode = "258机组"; } if (plinecode.Equals("C012")) { this.PlineCode = "ASSEL机组"; } } protected override void OnShown(EventArgs e) { base.OnShown(e); foreach (UltraGridColumn ugc in ultraGridSync.DisplayLayout.Bands[0].Columns) { ugc.SortIndicator = SortIndicator.Disabled; } foreach (UltraGridColumn ugc in ultraGridSyncHas.DisplayLayout.Bands[0].Columns) { ugc.SortIndicator = SortIndicator.Disabled; } } public ArrayList Getheatno() { ArrayList list = new ArrayList(); DataTable dt1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.GetSQLDate.PlanQuery2", new object[] { "2", pline }, this.ob); if (dt1.Rows.Count > 0) { for(int i=0;i 0) { //----修改对应字段值 for (int j = 0; j < dt1.Rows.Count;j++ ) { DataRow dr = dt1.Rows[j]; for (int i = 0; i < listheatno.Count; i++) { if (dr["judge_stove_no"].ToString().Equals(listheatno[i])) { dt1.Rows.Remove(dr); j = - 1; break; } } } } if(dt1.Rows.Count>0) { foreach (DataRow dr in dt1.Rows) { if (string.IsNullOrEmpty(dr["BRANCH"].ToString())) { dr["BRANCH"] = "0"; } else if (dr["BRANCH"].Equals("NULL")) { dr["BRANCH"] = "0"; } if (string.IsNullOrEmpty(dr["CUT_LENGTH"].ToString())) { dr["CUT_LENGTH"] = "0"; } else if (dr["CUT_LENGTH"].Equals("NULL")) { dr["CUT_LENGTH"] = "0"; } if (string.IsNullOrEmpty(dr["CUT_WEIGHT"].ToString())) { dr["CUT_WEIGHT"] = "0"; } else if (dr["CUT_WEIGHT"].Equals("NULL")) { dr["CUT_WEIGHT"] = "0"; } double dbz = (Convert.ToDouble(dr["管坯上料吨"].ToString()) - Convert.ToDouble(dr["CUT_WEIGHT"].ToString())) / Convert.ToDouble(dr["DB_NUM"].ToString()); dr["DB_HEIGHT"] = Math.Round(dbz, 3, MidpointRounding.AwayFromZero); } //------------------ GridHelper.CopyDataToDatatable(ref dt1, ref dtplan, true); //listheatno.Clear(); //listheatno = this.Getheatno(); //foreach (UltraGridRow ugr in ultraGridSync.DisplayLayout.Bands[0].Layout.Rows) //{ // for (int i = 0; i < listheatno.Count; i++) // { // if (ugr.Cells["judge_stove_no"].Value.ToString().Equals(listheatno[i])) // ugr.Appearance.BackColor = Color.YellowGreen; // } //} DataTable dt2 = ServerHelper.GetData("com.steering.mes.zgmil.coup.GetSQLDate.FeedQuery1", new object[] { flag, PlineCode }, this.ob); //----修改对应字段值 if (dt2.Rows.Count > 0) { for (int j = 0; j < dt2.Rows.Count; j++) { DataRow dr = dt2.Rows[j]; for (int i = 0; i < listheatno.Count; i++) { if (dr["judge_stove_no"].ToString().Equals(listheatno[i])) { dt2.Rows.Remove(dr); j = -1; break; } } } } if (dt2.Rows.Count > 0) { foreach (DataRow dr in dt2.Rows) { if (string.IsNullOrEmpty(dr["CUT_TARGET"].ToString())) { dr["CUT_TARGET"] = ""; } if (string.IsNullOrEmpty(dr["USE_LENGTH"].ToString())) { dr["USE_LENGTH"] = 0; } double dzz = Convert.ToDouble(dr["MAT_TOTAL_HEIGHT"].ToString()) / Convert.ToDouble(dr["FEED_NUM"].ToString()); dr["MAT_HEIGHT"] = Math.Round(dzz, 3, MidpointRounding.AwayFromZero); if (string.IsNullOrEmpty(dr["切余长度"].ToString())) { dr["CUT_LENGTH"] = 0; dr["NON_USE_LENGTH"] = 0; } else { double qyzc = Convert.ToDouble(dr["切余长度"].ToString()) * Convert.ToDouble(dr["FEED_NUM"].ToString()); dr["CUT_LENGTH"] = qyzc.ToString(); dr["NON_USE_LENGTH"] = qyzc.ToString(); } if (string.IsNullOrEmpty(dr["切余重"].ToString())) { dr["CUT_WEIGHT"] = 0; } else { double qyz = Convert.ToDouble(dr["切余重"].ToString()) * Convert.ToDouble(dr["FEED_NUM"].ToString()); dr["CUT_WEIGHT"] = Math.Round(qyz, 3, MidpointRounding.AwayFromZero); } double dbz = (Convert.ToDouble(dr["MAT_TOTAL_HEIGHT"].ToString()) - Convert.ToDouble(dr["CUT_WEIGHT"].ToString())) / (Convert.ToDouble(dr["管坯上料单倍尺支"].ToString()) * 1000); dbz = dbz / 1000; dr["DB_HEIGHT"] = Math.Round(dbz, 3, MidpointRounding.AwayFromZero); } } //------------------ GridHelper.CopyDataToDatatable(ref dt2, ref dtfeed, true); } } #endregion //foreach (UltraGridRow ugr in this.ultraGridSync.Rows) //{ // ugr.Cells["heatno"].Value = BaseMethod.getJudgeStoveNo(ugr.Cells["JUDGE_STOVE_NO"].Value.ToString()); //} } public void QueryOracle() { #region -------已同步计划---------- if (ultraTabControl1.Tabs[1].Visible == true) { //值查询已同步的并且未开始的计划 string flag = "2"; DataTable dt1 = ServerHelper.GetData("com.steering.mes.zgmil.coup.GetSQLDate.PlanQuery2", new object[] { flag, pline }, this.ob); if (dt1.Rows.Count > 0) { GridHelper.CopyDataToDatatable(ref dt1, ref dtPlanHas, true); //foreach (DataRow dr in dtPlanHas.Rows) //{ // dr["heatno"] = dr["JUDGE_STOVE_NO"].ToString().Substring(0, 6); //} } DataTable dt2 = ServerHelper.GetData("com.steering.mes.zgmil.coup.GetSQLDate.FeedQuery2", new object[] { flag, pline }, this.ob); if (dt2.Rows.Count > 0) { GridHelper.CopyDataToDatatable(ref dt2, ref dtFeedHas, true); //foreach (DataRow dr in dtFeedHas.Rows) //{ // dr["heatno"] = dr["JUDGE_STOVE_NO"].ToString().Substring(0, 6); //} } } #endregion //foreach (UltraGridRow ugr in this.ultraGridSyncHas.Rows) //{ // ugr.Cells["heatno"].Value = BaseMethod.getJudgeStoveNo(ugr.Cells["JUDGE_STOVE_NO"].Value.ToString()); //} } /// /// 计划接收 /// public void SysncPlan() { int result = 0; int count = 0; ultraGridSync.UpdateData(); foreach (UltraGridRow prow in ultraGridSync.DisplayLayout.Bands[0].Layout.Rows) { if (Convert.ToBoolean(prow.Cells["Check"].Text)==true) { result += 1; milplian.Clear(); milplian = NativeMethod.GetUltraGridRowToEntity(prow, ultraGridSync, milplian, 0); if (milplian.Type.ToString().Equals("正常计划")) { milplian.Type = "0"; } else { milplian.Type = "1"; } DataTable dthas = ServerHelper.GetData("com.steering.mes.zgmil.coup.GetSQLDate.CheckPlan", new object[] { milplian }, this.ob); if (dthas.Rows.Count > 0) { MessageBox.Show("炉号:【" + milplian.JudgeStoveNo.ToString().Substring(0,6) + "】已同步,请先回退后再同步。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } if (prow.HasChild()) { arr.Clear(); foreach (UltraGridRow crow in prow.ChildBands["Relation1"].Rows) { MilFeedPlanEntity feedplans = new MilFeedPlanEntity(); // feedplan.Clear(); feedplans = NativeMethod.GetUltraGridRowToEntity(crow, ultraGridSync, feedplans, 1); arr.Add(feedplans); } } int t = ServerHelper.SetData("com.steering.mes.zgmil.coup.GetSQLDate.SysncPlan", new object[] { milplian, arr }, this.ob); count += t; if (t > 0) { int counts= ServerHelper.SetData("com.steering.mes.zgmil.coup.GetSQLDate.AfterSysncPlan", new object[] { milplian, arr }, this.ob); if (counts < 1) { ServerHelper.SetData("com.steering.mes.zgmil.coup.GetSQLDate.AfterSysncPlanBack", new object[] { milplian, arr }, this.ob); MessageBox.Show("炉号:【" + milplian.JudgeStoveNo + "】同步失败,请查找原因后再次同步", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } } } if (result == count) { dtfeed.Rows.Clear(); dtplan.Rows.Clear(); QuerySql(); dtFeedHas.Rows.Clear(); dtPlanHas.Rows.Clear(); QueryOracle(); MessageBox.Show("所选计划同步完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); } } public void SysncPlanAll() { int result = 0; int count = 0; int counts = ServerHelper.SetData("com.steering.mes.zgmil.coup.GetSQLDate.DelOraclePlan", new object[] { pline }, this.ob); if (counts > 0) { foreach (UltraGridRow prow in ultraGridSync.DisplayLayout.Bands[0].Layout.Rows) { result += 1; milplian.Clear(); milplian = NativeMethod.GetUltraGridRowToEntity(prow, ultraGridSync, milplian, 0); if (prow.HasChild()) { arr.Clear(); foreach (UltraGridRow crow in prow.ChildBands["Relation1"].Rows) { MilFeedPlanEntity feedplans = new MilFeedPlanEntity(); //feedplans.Clear(); feedplans = NativeMethod.GetUltraGridRowToEntity(crow, ultraGridSync, feedplans, 1); arr.Add(feedplans); } } count += ServerHelper.SetData("com.steering.mes.zgmil.coup.GetSQLDate.SysncPlan", new object[] { milplian, arr }, this.ob); } } if (result == count) { dtfeed.Rows.Clear(); dtplan.Rows.Clear(); QuerySql(); dtFeedHas.Rows.Clear(); dtPlanHas.Rows.Clear(); QueryOracle(); MessageBox.Show("全部计划同步完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); } } /// /// 计划回退 /// public void SysncPlanBack() { arr.Clear(); ultraGridSyncHas.UpdateData(); foreach (UltraGridRow prow in ultraGridSyncHas.DisplayLayout.Bands[0].Layout.Rows) { if (prow.Cells["Check"].Value.ToString().Equals("True")) { MilPlanEntity milplians = new MilPlanEntity(); //milplians.Clear(); milplians = NativeMethod.GetUltraGridRowToEntity(prow, ultraGridSyncHas, milplians, 0); arr.Add(milplians); DataTable dthas = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.getBackSlabFlag", new object[] { milplians }, this.ob); if (dthas.Rows.Count > 0) { MessageBox.Show("炉号:【" + BaseMethod.getJudgeStoveNo(milplians.JudgeStoveNo.ToString()) + "】是回炉坯组炉炉号,请到【回炉坯】操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.GetSQLDate.SysncPlanBack", new object[] { arr }, this.ob); if (count > 0) { dtfeed.Rows.Clear(); dtplan.Rows.Clear(); QuerySql(); dtFeedHas.Rows.Clear(); dtPlanHas.Rows.Clear(); QueryOracle(); ServerHelper.SetData("com.steering.mes.zgmil.coup.GetSQLDate.AfterSysncPlanBack", new object[] { arr }, this.ob); MessageBox.Show("所选计划回退完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); } } public void SysncPlanBackAll() { arr.Clear(); foreach (UltraGridRow prow in ultraGridSyncHas.DisplayLayout.Bands[0].Layout.Rows) { MilPlanEntity milplians = new MilPlanEntity(); //milplians.Clear(); milplians = NativeMethod.GetUltraGridRowToEntity(prow, ultraGridSyncHas, milplians, 0); arr.Add(milplians); } int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.GetSQLDate.SysncPlanBack", new object[] { arr }, this.ob); if (count > 0) { MessageBox.Show("所选计划回退完成。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Information); } dtfeed.Rows.Clear(); dtplan.Rows.Clear(); QuerySql(); dtFeedHas.Rows.Clear(); dtPlanHas.Rows.Clear(); QueryOracle(); } private void BtnQuery_Click(object sender, EventArgs e) { dtfeed.Rows.Clear(); dtplan.Rows.Clear(); QuerySql(); dtFeedHas.Rows.Clear(); dtPlanHas.Rows.Clear(); QueryOracle(); } private void BtnSysnc_Click(object sender, EventArgs e) { SysncPlan(); } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (ultraTabControl1.SelectedTab==ultraTabControl1.Tabs[0]) { //ultraTabControl1.Tabs[1].Visible = false; dtfeed.Rows.Clear(); dtplan.Rows.Clear(); QuerySql(); BtnSysnc.Enabled = true; // BtnSysncAll.Enabled = true; BtnBack.Enabled = false; // BtnBackAll.Enabled = false; } if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1]) { //ultraTabControl1.Tabs[0].Visible = false; dtFeedHas.Rows.Clear(); dtPlanHas.Rows.Clear(); QueryOracle(); BtnSysnc.Enabled = false; // BtnSysncAll.Enabled = false; BtnBack.Enabled = true; //BtnBackAll.Enabled = true; } } private void BtnBack_Click(object sender, EventArgs e) { SysncPlanBack(); } private void BtnSysncAll_Click(object sender, EventArgs e) { SysncPlanAll(); } private void BtnBackAll_Click(object sender, EventArgs e) { SysncPlanBackAll(); } private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (this.ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { foreach (UltraGridRow prow in ultraGridSync.DisplayLayout.Bands[0].Layout.Rows) { prow.Cells["Check"].Value = true; } } if (this.ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1]) { foreach (UltraGridRow prow in ultraGridSyncHas.DisplayLayout.Bands[0].Layout.Rows) { prow.Cells["Check"].Value = true; } } } private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { if (this.ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { foreach (UltraGridRow prow in ultraGridSync.DisplayLayout.Bands[0].Layout.Rows) { prow.Cells["Check"].Value = false; } } if (this.ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1]) { foreach (UltraGridRow prow in ultraGridSyncHas.DisplayLayout.Bands[0].Layout.Rows) { prow.Cells["Check"].Value = false; } } } public void choose() { if (this.ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { foreach (UltraGridRow prow in ultraGridSync.DisplayLayout.Bands[0].Layout.Rows) { prow.Cells["Check"].Value = true; } } if (this.ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1]) { foreach (UltraGridRow prow in ultraGridSyncHas.DisplayLayout.Bands[0].Layout.Rows) { prow.Cells["Check"].Value = true; } } } public void unchoose() { if (this.ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { foreach (UltraGridRow prow in ultraGridSync.DisplayLayout.Bands[0].Layout.Rows) { prow.Cells["Check"].Value = false; } } if (this.ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1]) { foreach (UltraGridRow prow in ultraGridSyncHas.DisplayLayout.Bands[0].Layout.Rows) { prow.Cells["Check"].Value = false; } } } public void query() { dtfeed.Rows.Clear(); dtplan.Rows.Clear(); QuerySql(); dtFeedHas.Rows.Clear(); dtPlanHas.Rows.Clear(); QueryOracle(); } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch(e.Tool.Key) { case "query": query(); break; case "recevice": if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { SysncPlan(); } else { MessageBox.Show("当前显示计划为已接收计划,不允许进行计划接收操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } break; case "unrecevice": if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[1]) { SysncPlanBack(); } else { MessageBox.Show("当前显示计划为待接收计划,不允许进行计划回退操作。", "提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); } break; case "choose": choose(); break; case "unchoose": unchoose(); break; case "close": this.Close(); break; } } } }