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 Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Mcp.Control.Base; using Core.StlMes.Client.Mcp.Control.Entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using ColumnStyle = Infragistics.Win.UltraWinGrid.ColumnStyle; namespace Core.StlMes.Client.Mcp.Treatment.Report { public partial class FrmHttControlLogReport : FrmBase { public FrmHttControlLogReport() { InitializeComponent(); this.IsLoadUserView = true; } private string ProDate = ""; private string[] plineCodes = null; private string ProcessCode = ""; private string station = ""; //工序点 /// /// 重写基类方法 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": if (utbMain.SelectedTab.Key == "0") doQuery0(); else if (utbMain.SelectedTab.Key == "1") doQuery1(); else if (utbMain.SelectedTab.Key == "2") doQuery2(); else if (utbMain.SelectedTab.Key == "3") doQuery3(); break; case "ExportTotal": GridHelper.ulGridToExcel(ugTotalStop, "月汇总数据"); break; case "Export": if (utbMain.SelectedTab.Key == "0") GridHelper.ulGridToExcel(ultraGrid1, "生产数据明细"); else if (utbMain.SelectedTab.Key == "1") GridHelper.ulGridToExcel(ugStopDetail, "停机数据明细"); else if (utbMain.SelectedTab.Key == "2") GridHelper.ulGridToExcel(ultraGrid2, "月汇总数据"); else if (utbMain.SelectedTab.Key == "3") GridHelper.ulGridToExcel(ugHours, "小时能力"); break; case "UpdateHours": UpdateHours(); break; case "Close": this.Close(); break; } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); ProcessCode = this.CustomInfo.ToString2(); if (ProcessCode == "") ProcessCode = "F"; plineCodes = comm.InitDropPlinePower(ProcessCode, cboPline, this.ValidDataPurviewIds, ob); plineCodes = comm.InitDropPlinePower(ProcessCode, cboPline1, this.ValidDataPurviewIds, ob); plineCodes = comm.InitDropPlinePower(ProcessCode, cboPline2, this.ValidDataPurviewIds, ob); plineCodes = comm.InitDropPlinePower(ProcessCode, cboPline3, this.ValidDataPurviewIds, ob); comm.InitDroProStation(ProcessCode, new List() { uceFactory, uceFactory1, uceFactory2, uceFactory3 }, this.ValidDataPurviewIds, ob); if (plineCodes == null || plineCodes.Length <= 0) { MessageBox.Show("无数据权限!"); this.Close(); } EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ugHours.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGrid2.DisplayLayout.Bands[0]); //EntityHelper.ShowGridCaption(ultraGrid4.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ugStopDetail.DisplayLayout.Bands[0]); ugStopDetail.DisplayLayout.Bands[0].Columns["ProductTime"].Header.Caption = "停机时间(s)"; ugTotalStop.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False; ugTotalStop.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default; ugTotalStop.DisplayLayout.Override.AllowColMoving = AllowColMoving.NotAllowed; ugTotalStop.DisplayLayout.Override.ActiveRowAppearance.FontData.Bold = DefaultableBoolean.False; cmbDate.Value = DateTime.Now; cmbEndDate.Value = DateTime.Now; cmbDate1.Value = DateTime.Now; cmbDate1.Value = cmbDate1.Value.AddDays(1 - cmbDate1.Value.Day); cmbEndDate1.Value = DateTime.Now; cmbDate2.Value = DateTime.Now; cmbDate3.Value = DateTime.Now; statisticalControlNew1.DisableFiltering(); var list2 = new ValueList(); string FailCode = ""; if (ProcessCode == "F") { list2.ValueListItems.Add("000000", "所有"); list2.ValueListItems.Add("600202", "高温炉"); list2.ValueListItems.Add("600203", "淬火"); list2.ValueListItems.Add("600204", "低温炉"); list2.ValueListItems.Add("600205", "定径"); list2.ValueListItems.Add("600206", "热矫"); list2.ValueListItems.Add("600207", "冷矫"); list2.ValueListItems.Add("600208", "表面检验"); list2.ValueListItems.Add("600209", "探伤"); FailCode = "6006"; ultraSTATION2.Visible = false; ultraSTATION4.Visible = false; ultraSTATION6.Visible = false; } else { list2.ValueListItems.Add("000000", "所有"); list2.ValueListItems.Add("701302", "探伤"); list2.ValueListItems.Add("701303", "切管"); list2.ValueListItems.Add("701304", "车丝"); list2.ValueListItems.Add("701306", "拧接"); list2.ValueListItems.Add("701307", "通径"); list2.ValueListItems.Add("701308", "水压"); list2.ValueListItems.Add("701309", "倒棱"); list2.ValueListItems.Add("701310", "测量点"); FailCode = "7025"; ultraSTATION1.Visible = false; ultraSTATION3.Visible = false; ultraSTATION5.Visible = false; } //ultraGrid4.DisplayLayout.Bands[0].Columns["StationCode"].ValueList = list2; var list1 = new ValueList(); var list3 = new ValueList(); var dt = TubeRoll.GetComBaseInfo(FailCode, ob); foreach (DataRow row in dt.Rows) { list1.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); list3.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); } ultraGrid2.DisplayLayout.Bands[0].Columns["StopType"].ValueList = list3; //egpGroupBox1.Expanded = false; } public void doQuery0() { if (!chkDate.Checked && !ucePlineCode.Checked && !uceOrder.Checked && !uceJudgeStoveNo.Checked) { MessageBox.Show("请选择一个条件查询!"); return; } if (ProcessCode == "F") { station = ultraSTATION1.Value.ToString(); } if (ProcessCode == "G") { station = ultraSTATION2.Value.ToString(); } List listEntity1 = EntityHelper.GetData(ProcessCode == "G" ? "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryControlLogProTotalG" : "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryControlLogProTotal", new object[] { chkDate.Checked?cmbDate.Value.ToString("yyyyMMdd"):"", chkDate.Checked?cmbEndDate.Value.ToString("yyyyMMdd"):"", ucePlineCode.Checked && cboPline.CheckedItems.Count>0? cboPline.CheckedItems.Select(p => p.DataValue.ToString()).ToArray():plineCodes, uceOrder.Checked? txtOrder.Text:"", uceJudgeStoveNo.Checked? txtJudgeStoveNo.Text:"", chkBc.Checked && cmbBc.SelectedIndex>=0? cmbBc.SelectedItem.DataValue.ToString():"", chkBz.Checked && cmbBz.SelectedIndex>=0? cmbBz.SelectedItem.DataValue.ToString():"", chkFactory.Checked && uceFactory.CheckedItems.Count>0? uceFactory.CheckedItems.Select(p => p.DataValue.ToString()).ToArray(): new string[]{}, station, }, ob); httControlLogEntityPlusBindingSource.DataSource = listEntity1; HeatTreatment.comm.RefreshAndAutoSize(ultraGrid1, new string[] { }); } public void doQuery1() { if (ProcessCode == "F") { station = ultraSTATION3.Value.ToString(); } if (ProcessCode == "G") { station = ultraSTATION4.Value.ToString(); } List listEntity1 = EntityHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doQueryControlLogStopTotal", new object[] { chkDate1.Checked?cmbDate1.Value.ToString("yyyyMMdd"):"", chkDate1.Checked?cmbEndDate1.Value.ToString("yyyyMMdd"):"", ucePlineCode1.Checked && cboPline1.CheckedItems.Count>0? cboPline1.CheckedItems.Select(p => p.DataValue.ToString()).ToArray():plineCodes, chkBc1.Checked && cmbBc1.SelectedIndex>=0? cmbBc1.SelectedItem.DataValue.ToString():"", chkBz1.Checked && cmbBz1.SelectedIndex>=0? cmbBz1.SelectedItem.DataValue.ToString():"", chkFactory1.Checked && uceFactory1.CheckedItems.Count>0? uceFactory1.CheckedItems.Select(p => p.DataValue.ToString()).ToArray(): new string[]{}, station, }, ob); httControlLogDetailEntityPlusBindingSource.DataSource = listEntity1; HeatTreatment.comm.RefreshAndAutoSize(ugStopDetail, new string[] { }); } public void doQuery2() { if (ProcessCode == "F") { station = ultraSTATION5.Value.ToString(); } if (ProcessCode == "G") { station = ultraSTATION6.Value.ToString(); } List ListClass = new List(); int days = System.Threading.Thread.CurrentThread.CurrentUICulture.Calendar.GetDaysInMonth(cmbDate2.Value.Year, cmbDate2.Value.Month); ProDate = cmbDate2.Value.ToString("yyyyMM"); while (dataTable1.Columns.Count > 2) { dataTable1.Columns.RemoveAt(2); } dataTable1.Columns.Add(new DataColumn("STOVE_STOP_TIME") { Caption = "停机汇总" }); dataTable1.Columns.Add(new DataColumn("TITLE") { Caption = "标题" }); ugTotalStop.DisplayLayout.Bands[0].Columns["TITLE"].Hidden = true; dataTable1.Columns.Add(new DataColumn("STOVE_NUM") { Caption = "炉数" }); ugTotalStop.DisplayLayout.Bands[0].Columns["STOVE_NUM"].Hidden = true; dataTable1.Columns.Add(new DataColumn("PRO_NUM") { Caption = "生产支" }); ugTotalStop.DisplayLayout.Bands[0].Columns["PRO_NUM"].Hidden = true; dataTable1.Columns.Add(new DataColumn("PRO_WT") { Caption = "生产吨" }); ugTotalStop.DisplayLayout.Bands[0].Columns["PRO_WT"].Hidden = true; dataTable1.Columns.Add(new DataColumn("TOTAL_TIME") { Caption = "总时间" }); ugTotalStop.DisplayLayout.Bands[0].Columns["TOTAL_TIME"].Hidden = true; dataTable1.Columns.Add(new DataColumn("STOP_TIME") { Caption = "总停机" }); ugTotalStop.DisplayLayout.Bands[0].Columns["STOP_TIME"].Hidden = true; dataTable1.Columns.Add(new DataColumn("STOP_NORMAL") { Caption = "正常停机" }); ugTotalStop.DisplayLayout.Bands[0].Columns["STOP_NORMAL"].Hidden = true; dataTable1.Columns.Add(new DataColumn("STOP_ABNORMAL") { Caption = "异常停机" }); ugTotalStop.DisplayLayout.Bands[0].Columns["STOP_ABNORMAL"].Hidden = true; dataTable1.Columns.Add(new DataColumn("PRO_INCREMENT") { Caption = "生产增量" }); ugTotalStop.DisplayLayout.Bands[0].Columns["PRO_INCREMENT"].Hidden = true; dataTable1.Columns.Add(new DataColumn("MonthOperatingRate") { Caption = "月作业率" }); TubeRoll.GridColumnSum(ugTotalStop, new string[] { "STOVE_STOP_TIME" }); for (int i = 0; i < days; i++) { string key = "DAY" + (i + 1); string name = (i + 1) + "日"; dataTable1.Columns.Add(new DataColumn(key) { Caption = name }); string key1 = "FLAGDAY" + (i + 1); string name1 = (i + 1) + "日标识"; dataTable1.Columns.Add(new DataColumn(key1) { Caption = name1 }); TubeRoll.GridColumnSum(ugTotalStop, new string[] { key }); ugTotalStop.DisplayLayout.Bands[0].Columns[key1].Hidden = true; } DataTable dt = ServerHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doMinutesQueryNew", new object[] { ProDate, days.ToString(), ucePlineCode2.Checked && cboPline2.CheckedItems.Count > 0 ? cboPline2.CheckedItems.Select(p => p.DataValue.ToString()).ToArray() : plineCodes, chkFactory2.Checked && uceFactory2.CheckedItems.Count>0? uceFactory2.CheckedItems.Select(p => p.DataValue.ToString()).ToArray(): new string[]{}, station, }, this.ob); GridHelper.CopyDataToDatatable(ref dt, ref dataTable1, true); ugTotalStop.DisplayLayout.Override.ActiveRowAppearance.FontData.Bold = DefaultableBoolean.Default; foreach (UltraGridRow urg in ugTotalStop.Rows) { double MonthCount = 0; foreach (UltraGridColumn column in ugTotalStop.DisplayLayout.Bands[0].Columns) { column.Width = 20; column.CellActivation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; column.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right; if (column.Key.StartsWith("DAY")) { column.Style = ColumnStyle.Button; urg.Cells[column.Key].Value = (double.Parse(urg.Cells[column.Key].Value.ToString()) / 60).ToString("f2"); if (double.Parse(urg.Cells[column.Key].Value.ToString()) >= 2.0 && double.Parse(urg.Cells[column.Key].Value.ToString()) < 4.0) { urg.Cells[column.Key].Appearance.BackColor = lbColor1.BackColor; urg.Cells[column.Key].Appearance.FontData.Bold = DefaultableBoolean.True; } else if (double.Parse(urg.Cells[column.Key].Value.ToString()) >= 4.0) { urg.Cells[column.Key].Appearance.BackColor = lbColor2.BackColor; urg.Cells[column.Key].Appearance.FontData.Bold = DefaultableBoolean.True; } else if (double.Parse(urg.Cells[column.Key].Value.ToString()) > 0.0001) { urg.Cells[column.Key].Appearance.BackColor = lbColor0.BackColor; urg.Cells[column.Key].Appearance.FontData.Bold = DefaultableBoolean.True; } if (dataTable1.Columns.Contains("FLAG" + column.Key) && uceShow.Checked) { if (urg.Cells["FLAG" + column.Key].Value == null || string.IsNullOrWhiteSpace(urg.Cells["FLAG" + column.Key].Value.ToString())) { urg.Cells[column.Key].Appearance.BackColor = lbColorData1.BackColor; } else if (urg.Cells["FLAG" + column.Key].Value.ToString() == "0") { urg.Cells[column.Key].Appearance.BackColor = lbColorData0.BackColor; } } } } StatisticalClassNew entity = new StatisticalClassNew() { Title = urg.Cells["TITLE"].Value.ToString2(), StoveNum = decimal.Parse(urg.Cells["STOVE_NUM"].Value.ToString3()), ProNum = decimal.Parse(urg.Cells["PRO_NUM"].Value.ToString3()), ProWt = decimal.Parse(urg.Cells["PRO_WT"].Value.ToString3()), TotalTime = decimal.Parse(urg.Cells["TOTAL_TIME"].Value.ToString3()), StoveStopTime = decimal.Parse(urg.Cells["STOVE_STOP_TIME"].Value.ToString3()), StopTime = decimal.Parse(urg.Cells["STOP_TIME"].Value.ToString3()), StopNormal = decimal.Parse(urg.Cells["STOP_NORMAL"].Value.ToString3()), StopAbnormal = decimal.Parse(urg.Cells["STOP_ABNORMAL"].Value.ToString3()), ProIncrement = decimal.Parse(urg.Cells["PRO_INCREMENT"].Value.ToString3()) }; ListClass.Add(entity); urg.Cells["MonthOperatingRate"].Value = entity.RealOperatingRate; } statisticalControlNew1.SetDat(ListClass); HeatTreatment.comm.RefreshAndAutoSize(ugTotalStop, new string[] { "PLINE_NAME" }); } public void doQuery3() { List listEntity1 = EntityHelper.GetData(ProcessCode == "G" ? "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryControlHoursG" : "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryControlHours", new object[] { ckBAL_YEAR_MONTH.Checked?cmbDate3.Value.ToString("yyyyMM"):"", ucePline2.Checked && cboPline3.CheckedItems.Count>0? cboPline3.CheckedItems.Select(p => p.DataValue.ToString()).ToArray():plineCodes, chkFactory3.Checked && uceFactory3.CheckedItems.Count>0? uceFactory3.CheckedItems.Select(p => p.DataValue.ToString()).ToArray(): new string[]{}, }, ob); slmBaseMaterialFPlEntityBindingSource.DataSource = listEntity1; HeatTreatment.comm.RefreshAndAutoSize(ugHours, new string[] { }); } public void UpdateHours() { List listEntity1 = slmBaseMaterialFPlEntityBindingSource.DataSource as List; if (listEntity1 == null || !listEntity1.Any()) { MessageBox.Show("无数据!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认回报小时能力?") == DialogResult.No) return; var ccp = new CoreClientParam(); ccp.ServerName = "com.steering.mes.mcp.Report.FrmHttControlLog"; ccp.MethodName = ProcessCode == "G" ? "UpdateHoursG" : "UpdateHours"; ccp.ServerParams = new object[] { listEntity1.Select(JSONFormat.Format).ToList() }; ccp = ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("回报成功!")) { doQuery3(); } } } private void ultraGrid4_InitializeRow(object sender, InitializeRowEventArgs e) { var entity = e.Row.ListObject as HttControlLogDetailEntity; if (entity == null) return; var list1 = new ValueList(); var dt = TubeRoll.GetComBaseInfo(entity.StopType, ob); foreach (DataRow row in dt.Rows) list1.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Row.Cells["StopSmall"].ValueList = list1; var list2 = new ValueList(); var dt2 = TubeRoll.GetComBaseInfo(entity.StopSmall, ob); foreach (DataRow row in dt2.Rows) list2.ValueListItems.Add(row["BASECODE"].ToString(), row["BASENAME"].ToString()); e.Row.Cells["StopReason"].ValueList = list2; } private void ultraGrid2_InitializeRow(object sender, InitializeRowEventArgs e) { try { var entity = e.Row.ListObject as HttControlLogEntity; if (entity == null) return; var list1 = new ValueList(); var dt = TubeRoll.GetComBaseInfo(entity.StopType, ob); if (entity.ProType == "停机") e.Row.Cells["ProType"].Appearance.BackColor = Color.Pink; DateTime dtBegin, dtEnd; if (DateTime.TryParse(entity.LogsBeg, out dtBegin) && DateTime.TryParse(entity.LogsEnd, out dtEnd)) if (dtBegin > dtEnd) e.Row.Cells["LogsEnd"].Appearance.BackColor = Color.Red; else e.Row.Cells["LogsEnd"].Appearance.ResetBackColor(); ultraGrid2.Refresh(); } catch (Exception) { } } private void ultraGrid2_AfterRowActivate(object sender, EventArgs e) { if (ultraGrid2.ActiveRow == null) return; var entity = ultraGrid2.ActiveRow.ListObject as HttControlLogEntity; if (entity == null) return; if (entity.ProType == "停机") { //egpGroupBox1.Expanded = true; var lists = EntityHelper.GetData( "com.steering.mes.mcp.Report.FrmHttControlLog.doQueryDetail", new object[] { entity.ControlId }, ob); lists.ForEach(p => p.Chk = true); httControlLogDetailEntityBindingSource1.DataSource = lists; } else { //egpGroupBox1.Expanded = false; httControlLogDetailEntityBindingSource1.DataSource = new List(); } } private void ugTotalStop_ClickCellButton(object sender, CellEventArgs e) { string Day = ""; if (ProcessCode == "F") { station = ultraSTATION5.Value.ToString(); } if (ProcessCode == "G") { station = ultraSTATION6.Value.ToString(); } if (e.Cell.Column.Key.StartsWith("DAY")) { Day = e.Cell.Column.Key.Replace("DAY", "").PadLeft(2, '0'); } List listEntity = EntityHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doQueryTotal", new object[] {ProDate, Day==""?"":(ProDate+Day) , e.Cell.Row.Cells["PLINE_CODE"].Value.ToString3() }, ob); statisticalControlNew1.SetDat(listEntity); ultraExpandableGroupBox1.Text = e.Cell.Row.Cells["PLINE_NAME"].Value.ToString3() + " " + ProDate + (Day == "" ? "当月记录" : (Day + "当天记录")); List listEntity1 = EntityHelper.GetData("com.steering.mes.mcp.Report.FrmHttControlLog.doQueryPlanNew", new object[] { Day==""?"":(ProDate+Day) , ProDate , e.Cell.Row.Cells["PLINE_CODE"].Value.ToString3(),station }, ob); httControlLogEntityBindingSource1.DataSource = listEntity1; HeatTreatment.comm.RefreshAndAutoSize(ultraGrid2, new[] { "LogsBeg", "LogsEnd", "Memo" }); } private void uceShow_CheckedChanged(object sender, EventArgs e) { foreach (UltraGridRow urg in ugTotalStop.Rows) { double MonthCount = 0; foreach (UltraGridColumn column in ugTotalStop.DisplayLayout.Bands[0].Columns) { if (column.Key.StartsWith("DAY")) { if (double.Parse(urg.Cells[column.Key].Value.ToString()) >= 2.0 && double.Parse(urg.Cells[column.Key].Value.ToString()) < 4.0) { urg.Cells[column.Key].Appearance.BackColor = lbColor1.BackColor; urg.Cells[column.Key].Appearance.FontData.Bold = DefaultableBoolean.True; } else if (double.Parse(urg.Cells[column.Key].Value.ToString()) >= 4.0) { urg.Cells[column.Key].Appearance.BackColor = lbColor2.BackColor; urg.Cells[column.Key].Appearance.FontData.Bold = DefaultableBoolean.True; } else if (double.Parse(urg.Cells[column.Key].Value.ToString()) > 0.0001) { urg.Cells[column.Key].Appearance.BackColor = lbColor0.BackColor; urg.Cells[column.Key].Appearance.FontData.Bold = DefaultableBoolean.True; } else { urg.Cells[column.Key].Appearance.ResetBackColor(); } if (dataTable1.Columns.Contains("FLAG" + column.Key) && uceShow.Checked) { if (urg.Cells["FLAG" + column.Key].Value == null || string.IsNullOrWhiteSpace(urg.Cells["FLAG" + column.Key].Value.ToString())) { urg.Cells[column.Key].Appearance.BackColor = lbColorData1.BackColor; } else if (urg.Cells["FLAG" + column.Key].Value.ToString() == "0") { urg.Cells[column.Key].Appearance.BackColor = lbColorData0.BackColor; } } } } } } private void utbMain_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu == null) return; if (toolMenu.Toolbars[0].Tools.Exists("UpdateHours")) toolMenu.Toolbars[0].Tools["UpdateHours"].InstanceProps.Visible = utbMain.SelectedTab.Index == 3 ? DefaultableBoolean.True : DefaultableBoolean.False; if (toolMenu.Toolbars[0].Tools.Exists("ExportTotal")) toolMenu.Toolbars[0].Tools["ExportTotal"].InstanceProps.Visible = utbMain.SelectedTab.Index == 2 ? DefaultableBoolean.True : DefaultableBoolean.False; } private void FrmHttControlLogReport_Shown(object sender, EventArgs e) { utbMain_SelectedTabChanged(null, null); } } }