using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Threading; using Infragistics.Win.UltraWinGrid; using System.Collections; using CoreFS.CA06; using System.Data.OleDb; using Core.StlMes.Client.LgCommon; //using Core.LgMes.Client.LgJobMgt; namespace Core.StlMes.Client.LgIntegrationQuery { public partial class frmSchedulingQuery : frmStyleBase { string strHeatNo = ""; //炉号 public string workShopNo = "";//体系号 public frmSchedulingQuery() { InitializeComponent(); } private void frmSchedulingQuery_Load(object sender, EventArgs e) { string[] strKey = this.Key.Split('@'); if (strKey.Length > 1) { if (strKey[1] == "DD") ultraToolbarsManager1.Tools["ModifySpec"].SharedProps.Visible = true; } workShopNo = this.CustomInfo; cboCcmID.Enabled = false; cobbof.Enabled = false; ultracboState.Enabled = false; txtHeatNo.Enabled = false; uldtBeginTime.Value = System.DateTime.Now.AddHours(-6).ToString(); uldtEndTime.Value = System.DateTime.Today.AddDays(1).ToString("yyyy-MM-dd") + " 23:59"; chkCcmID.Checked = false; chkState.Checked = false; chkHeatNo.Checked = false; //setGrid1View(); cboCcmID.SelectedIndex = 0; cobbof.SelectedIndex = 0; InitSteel(); initWidget(); StartGetDataThread(); label3.BackColor = Color.White; label4.BackColor = Color.LightGreen; label5.BackColor = Color.FromArgb(192, 255, 255); chkAutoRefresh.Checked = true; GetJobData(""); ultracboState.SelectedIndex = 0; } // 根据体系初始化控件 /// /// 根据体系初始化控件 /// private void initWidget() { try { if (workShopNo == "1") { cboCcmID.Items.Clear(); cboCcmID.Items.Add("1", "1#铸机"); cboCcmID.Items.Add("2", "2#铸机"); cobbof.Items.Clear(); cobbof.Items.Add("1", "1#转炉"); cobbof.Items.Add("2", "2#转炉"); } else { cboCcmID.Items.Clear(); cboCcmID.Items.Add("3", "3#铸机"); cboCcmID.Items.Add("4", "4#铸机"); //cboCcmID.Items.Add("5", "5#铸机"); cobbof.Items.Clear(); cobbof.Items.Add("3", "3#转炉"); cobbof.Items.Add("4", "4#转炉"); //cobbof.Items.Add("5", "5#转炉"); } } catch { } } // 初始化Grind牌号 /// /// 初始化Grind牌号 /// private void InitSteel() { try { string strErr = ""; ultraGrid1.DisplayLayout.ValueLists.Add("SteelCode"); ArrayList arry = new ArrayList(); arry.Add("ElementsSteel.Query");//此ID为XML文件ID CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet dsSteel = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && dsSteel != null) { //初始经Grid牌号字段数据集 for (int i = 0; i < dsSteel.Tables[0].Rows.Count; i++) { ultraGrid1.DisplayLayout.ValueLists["SteelCode"].ValueListItems.Add(dsSteel.Tables[0].Rows[i]["SteelCode"].ToString(), dsSteel.Tables[0].Rows[i]["Steel"].ToString()); } //绑定单位 ultraGrid1.DisplayLayout.Bands[0].Columns["AIM_GRADE_CODE"].ValueList = ultraGrid1.DisplayLayout.ValueLists["SteelCode"]; } } catch { } } // 获取浇次计划信息 /// /// 获取浇次计划信息 /// private void GetCastPlan() { int i = 0; string strStartTime = ""; string strEndTime = ""; string strstatus = ""; string ccmID = ""; if (Convert.ToDateTime(uldtBeginTime.Value) > Convert.ToDateTime(uldtEndTime.Value)) { MessageBox.Show("时间条件的开始时间不能大于结束时间!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } else { strStartTime = this.uldtBeginTime.DateTime.ToString("yyyy-MM-dd"); strEndTime = this.uldtEndTime.DateTime.ToString("yyyy-MM-dd"); } strstatus = " and prodline='1011LG" + workShopNo + "'"; //状态 if (chkState.Checked) { //if (ultracboState.Value.ToString() == "03") // strstatus += " and status>='03'"; //else if (ultracboState.Value.ToString() == "04" || ultracboState.Value.ToString() == "09") // strstatus += " and status='" + ultracboState.Value.ToString() + "'"; if (ultracboState.Value.ToString() == "00") { strstatus += " and status>='02'"; } else if (ultracboState.Value.ToString() == "09") { strstatus += " and status>='09' and status<='10'"; } else { strstatus += " and status='" + ultracboState.Value.ToString() + "'"; } } else strstatus += " and status>='02'"; //铸机号 if (chkCcmID.Checked) { ccmID = Convert.ToString(cboCcmID.SelectedIndex+1); } //炉号 if (chkHeatNo.Checked) { if (txtHeatNo.Text.Length == 0) { MessageBox.Show("炉号不能为空!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } } ArrayList arry = new ArrayList(); ArrayList sqlList = new ArrayList(); arry.Add("GetCastPlan.select"); arry.Add(strStartTime); arry.Add(strEndTime); sqlList.Add(strstatus); arry.Add(ccmID); arry.Add(ccmID); arry.Add(strStartTime); arry.Add(strEndTime); sqlList.Add(strstatus); arry.Add(ccmID); arry.Add(ccmID); CoreFS.CA06.FrmBase fr = new FrmBase(); fr.ob = ob; CoreClientParam CCP_Query = new CoreClientParam(); DataTable dt = new DataTable(); CCP_Query.ServerName = "Core.LgMes.Server.Common.ComDBQuery"; CCP_Query.MethodName = "doQuery"; CCP_Query.ServerParams = new object[] { arry, sqlList }; CCP_Query.SourceDataTable = dt; fr.ExecuteSortResultByQueryToDataTable(CCP_Query, CoreInvokeType.Internal); DataSet ds = new DataSet(); ds.Tables.Add(dt.Copy()); ultraDataSource3.Rows.Clear(); if (ds != null) { if (ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { ultraDataSource3.Rows.Add(new object[] {dr["V_CAST_NO"].ToString(), dr["CAST_NO"].ToString(), dr["CAST_ID"].ToString()+"#铸机", dr["HEAT_NUM"].ToString(), dr["STATUS"].ToString(), dr["WEIGHT"].ToString(), dr["STR_TIME"].ToString(), dr["END_TIME"].ToString(), dr["MAKETIME"].ToString(), dr["BATCHPLANNO"].ToString(), //dr["MEMO"].ToString(), dr["REMARK"].ToString() }); //执行状态 string status = dr["STATUS"].ToString(); if (status == "生产") { foreach (UltraGridCell cell in ultraGrid4.Rows[i].Cells) cell.Appearance.BackColor = Color.LightGreen;//在生产用颜色区分 } else if (status == "完成") { foreach (UltraGridCell cell in ultraGrid4.Rows[i].Cells) cell.Appearance.BackColor = Color.LightCyan;//连铸结束 } else if (status == "计划") { foreach (UltraGridCell cell in ultraGrid4.Rows[i].Cells) cell.Appearance.BackColor = Color.White;//计划状态 } else if (status == "取消") { foreach (UltraGridCell cell in ultraGrid4.Rows[i].Cells) cell.Appearance.BackColor = Color.LightGray;//取消状态 } i = i + 1; } } } if (!chkAutoRefresh.Checked) { if (ds.Tables[0].Rows.Count == 0) { ultraDataSource1.Rows.Clear(); ultraDataSource2.Rows.Clear(); } } PublicMethod.RefreshAndAutoSize(ultraGrid4); } else MessageBox.Show("查询失败!!!", "提示"); } // 获取作业计划信息 /// /// 获取作业计划信息 /// private void GetJobData(string strCast_No) { //开发时删除 //return; int i = 0; string strStartTime = ""; string strEndTime = ""; string strCastNo = ""; string strCAST_ID = ""; string strHeatNo = ""; string strGW = ""; string sqlWhere = ""; if (strCast_No.Trim().Length > 0) strCastNo = strCast_No; strStartTime = this.uldtBeginTime.DateTime.ToString("yyyy-MM-dd"); strEndTime = this.uldtEndTime.DateTime.ToString("yyyy-MM-dd"); sqlWhere = " and prodline='1011LG" + workShopNo + "'"; //状态 if (chkState.Checked) { if (ultracboState.Value.ToString() == "00") { sqlWhere += " and heat_state>='02'"; } else if (ultracboState.Value.ToString() == "09") { sqlWhere += " and heat_state>='09' and heat_state<='10'"; } else { sqlWhere += " and heat_state='" + ultracboState.Value.ToString() + "'"; } } else { sqlWhere += " and heat_state>='02'"; } //铸机 if (chkCcmID.Checked) { strCAST_ID = Convert.ToString(cboCcmID.Value.ToString()); sqlWhere += " and CAST_ID='" + strCAST_ID + "'"; } // 炉号 if (chkHeatNo.Checked) { if (txtHeatNo.Text.Length == 0) { return; } strHeatNo = txtHeatNo.Text.Trim(); sqlWhere += " and HeatNo='" + strHeatNo + "'"; } // 炉座 if (chkbof.Checked) { strGW = Convert.ToString(cobbof.Value); sqlWhere += " and substr(PLAN_ROUTE,6,1)= '" + strGW + "'"; } ArrayList arry = new ArrayList(); ArrayList sqlList = new ArrayList(); arry.Add("GetAllJobPlan.select"); arry.Add(strCastNo); arry.Add(strCastNo); arry.Add(strStartTime); arry.Add(strEndTime); sqlList.Add(sqlWhere); //调用服务端方法 CoreClientParam CCP_LgEts = new CoreClientParam(); DataTable dt = new DataTable(); CCP_LgEts.ServerName = "Core.LgMes.Server.Common.ComDBQuery"; CCP_LgEts.MethodName = "doQuery"; CCP_LgEts.ServerParams = new object[] { arry, sqlList }; CCP_LgEts.SourceDataTable = dt; this.ExecuteSortResultByQueryToDataTable(CCP_LgEts, CoreInvokeType.Internal); DataSet ds = new DataSet(); ds.Tables.Add(dt.Copy()); ultraDataSource1.Rows.Clear(); if (ds.Tables[0].Rows.Count == 0) { ultraDataSource2.Rows.Clear(); } if (ds != null) { if (ds.Tables.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { ultraDataSource1.Rows.Add(new object[] {dr["V_HEAT_ID"].ToString(), dr["CAST_SEQ"].ToString(), dr["HEAT_NUM"].ToString(), ClsBusinessPack.analysPlan_Lines(dr["PLAN_LINES"].ToString()), dr["PLAN_IRON_QTY"].ToString(), dr["AIM_STEEL_QTY"].ToString(), dr["AIM_GRADE_CODE"].ToString(), dr["PLAN_HMP_STR_TIME"].ToString(), dr["PLAN_HMP_END_TIME"].ToString(), dr["PLAN_VD_STR_TIME"].ToString(), dr["PLAN_VD_ENT_TIME"].ToString(), dr["PLAN_BOF_STR_TIME"].ToString(), dr["PLAN_BOF_END_TIME"].ToString(), dr["PLAN_AR_STR_TIME"].ToString(), dr["PLAN_AR_END_TIME"].ToString(), dr["PLAN_LF_STR_TIME"].ToString(), dr["PLAN_LF_END_TIME"].ToString(), dr["PLAN_RH_STR_TIME"].ToString(), dr["PLAN_RH_ENT_TIME"].ToString(), dr["PLAN_CCM_STR_TIME"].ToString(), dr["PLAN_CCM_END_TIME"].ToString(), dr["BILLETQTY"].ToString(), dr["STD_CODE"].ToString(), (dr["HOT_ROLL_FLAG"].ToString()=="0"?"下线":"热送"), dr["CAST_ID"].ToString()+"#铸机", dr["PLAN_MAKING_TIME"].ToString(), dr["PLAN_MAKER"].ToString(), (dr["SURPLUS_FLAG"].ToString()=="0"?"否":"是"), dr["HEATNO"].ToString(), ClsBusinessPack.analysPath(dr["PLAN_ROUTE"].ToString()), ClsBusinessPack.analysPath(dr["FACT_ROUTE"].ToString()), dr["CAST_NO"].ToString(), dr["ORD_GON_ID"].ToString(), dr["CUSTOMER_KEY"].ToString(), dr["BATCHPLANNO"].ToString(), dr["LEN"].ToString(), dr["WIDTH"].ToString(), dr["THICK"].ToString(), dr["HEAT_STATE"].ToString(), dr["STD_NAME"].ToString(), dr["CHANGEFLAG"].ToString(), dr["VANFLAG"].ToString(), dr["HEAT_SEQ"].ToString(), dr["VANHEATNO"].ToString(), dr["SEND_CCM_FLG"].ToString() , dr["REMARK"].ToString(), dr["TSYQ"].ToString() }); //执行状态 string status = dr["HEAT_STATE"].ToString(); if (dr["TSYQ"].ToString() == "Y") ultraGrid1.Rows[i].Cells["TSYQ"].Appearance.ForeColor = Color.Red; if (status.Length >= 2 && string.Compare(status, "03") == 1 && string.Compare(status, "10") == -1) { foreach (UltraGridCell cell in ultraGrid1.Rows[i].Cells) cell.Appearance.BackColor = Color.LightGreen;//在生产用颜色区分 } else if (status.Length >= 2 && status == "10") { foreach (UltraGridCell cell in ultraGrid1.Rows[i].Cells) cell.Appearance.BackColor = Color.FromArgb(192, 255, 255); //cell.Appearance.BackColor = Color.LightCyan;//连铸结束 } else if (status.Length >= 2 && status == "03") { foreach (UltraGridCell cell in ultraGrid1.Rows[i].Cells) cell.Appearance.BackColor = Color.White;//计划状态 } i = i + 1; } } PublicMethod.RefreshAndAutoSize(ultraGrid1); } else MessageBox.Show("查询失败!!!", "提示"); } // 获取切割计划信息 /// /// 获取切割计划信息 /// /// 浇次号 /// 浇次顺序号 /// 熔炼号 private void GetCutingData(string strFurnaceNo) { string strErr = ""; int iRow = 0; Color clrCurr = Color.MintCream, clrPre = Color.LightGreen; string strCurrAIM_LTH = "", strPreAIM_LTH = ""; ArrayList arry = new ArrayList(); arry.Add("GetCutingData.select"); arry.Add(strFurnaceNo); arry.Add(strFurnaceNo); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); ultraDataSource2.Rows.Clear(); if (ds != null) { foreach (DataRow dr in ds.Tables[0].Rows) { ultraDataSource2.Rows.Add(new object[] {dr["BILLET_XN"].ToString(), //坯料号 dr["CAST_NO"].ToString(), //浇次号 dr["SEQUENCEINCAST"].ToString(), //浇次顺序号 dr["SEQUENCENO"].ToString(), //炉内顺序号 dr["FURNACENO"].ToString(), //炉号 dr["CUTTASKCODE"].ToString(), //铸机号 dr["SC"].ToString(), //流号 dr["SLABHEIGHT"].ToString(), //坯料厚度 dr["SLABWIDTH"].ToString(), //坯料宽度 dr["SLABLENGTH"].ToString(), //坯料长度 dr["CUTSEQUENCE"].ToString(), //计划切割顺序号 (dr["DIRECTIONTYPE"].ToString()=="0"?"下线":(dr["DIRECTIONTYPE"].ToString()=="1"?"棒材":"炼钢")), //去向类型 dr["ROLLPLANCODE"].ToString(), //热送轧制计划号 (dr["CUTFINISHFLAG"].ToString()=="0"?"否":"是"), //切割是否完成 dr["THEROYWEIGHT"].ToString(), //理论重量 Convert.ToDateTime(dr["PLANMAKETIME"]).ToString("yyyy-MM-dd hh:mm:ss"),//计划制定时间 // dr["PLANMAKETIME"].ToString(), // dr["LSTEELCODE"].ToString(), //冶炼牌号(大牌号) dr["STEELCODE"].ToString(), //牌号 dr["HARDNESS"].ToString(), //硬度 (dr["SURPLUSFLAG"].ToString()=="0"?"否":"是"), //是否余材 dr["PRODORDERNO"].ToString(), //生产订单号 dr["ORDERNO"].ToString(), //订单行号 dr["BATCHPLANNO"].ToString(), //批量计划序号 dr["INDEXINLOTNO"].ToString(), //批量内序号 dr["CRAFTCODE_LG"].ToString(), //炼钢工艺码 dr["CUSTOMER_KEY"].ToString(), //客户参数号 dr["SEQUENCEINBATCH"].ToString(), //单元内顺序号 dr["CUTSTARTTIME"].ToString(), //切割开始时间 dr["CUTENDTIME"].ToString(), //切割结束时间 dr["MAKEMAN"].ToString(), //制定人 dr["STANDARDSCODE"].ToString(), dr["STANDARDREMAK"].ToString(), dr["BILLETWEIGHT"].ToString(), dr["PDTSTYLE"].ToString(), dr["SPECDESCRIPTION"].ToString(), dr["FOREIGN_TRADE"].ToString(), dr["SAPPRODORDERNO"].ToString()//SAP生产订单号 }); strCurrAIM_LTH = Convert.ToString(dr["SLABLENGTH"]); if (strCurrAIM_LTH != strPreAIM_LTH) { if (clrPre == Color.MintCream) clrCurr = Color.LightGreen; else if (clrPre == Color.LightGreen) clrCurr = Color.MintCream; clrPre = clrCurr; strPreAIM_LTH = strCurrAIM_LTH; } this.ultraGrid3.Rows[iRow].CellAppearance.BackColor = clrCurr; iRow += 1; } PublicMethod.RefreshAndAutoSize(ultraGrid3); } else MessageBox.Show("查询失败!!!", "提示"); } // 重置炉次计划 /// /// 重置炉次计划 /// private void RollbackHeatNo() { try { if (this.ultraGrid1.Rows.Count == 0) { MessageBox.Show("没有可选的炉次计划!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (this.ultraGrid1.ActiveRow == null) { MessageBox.Show("请选择炉次计划!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } UltraGridRow ugr = this.ultraGrid1.ActiveRow; string status = ugr.Cells["HEAT_STATE"].Value.ToString(); if (status != "10") { MessageBox.Show("炉号:" + ugr.Cells["HeatNo"].Value.ToString() + "没有生产完成不允许重置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } bool bSuccess = true; string strMsg = ""; string heatno = ugr.Cells["HEATNO"].Value.ToString(); string strSql = "select cutfinished from STL_HEATNO_ASSIST where heatno='"+heatno+"'"; DataSet Cutds = ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob); if (Cutds.Tables[0].Rows.Count > 0) { if (Cutds.Tables[0].Rows[0][0].ToString() == "1") { MessageBox.Show("炉号:" + heatno + "已经切割完成不允许重置!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } } string strSme = heatno; string strPath = ugr.Cells["Fact_route"].Value.ToString(); string workshopno = ""; try { string strno = heatno.Substring(2, 1); if (strno == "1" || strno == "2") { workshopno = "1"; } if (strno == "3" || strno == "4" || strno == "5") { workshopno = "2"; } } catch { } if (workshopno == "") return; FrmCcmResetStatus frm = new FrmCcmResetStatus(); //frm.Location = GetChildWindowLocation(frm.Size); frm.WorkShopN0 = workshopno; frm.ShowDialog(); string strSet = frm._strSet; string strSta = frm._strSta; string str_set = strSet; if (strSet == "") return; ArrayList ar = new ArrayList(); if (strSet == "LFS01") strSme = "E0101" + strSme; else if (strSet == "LFS02") strSme = "E0201" + strSme; else if (strSet == "LFS03") strSme = "E0301" + strSme; else if (strSet == "CCM01") strSme = "G0101" + strSme; else if (strSet == "CCM02") strSme = "G0201" + strSme; else if (strSet == "CCM03") strSme = "G0301" + strSme; else if (strSet == "CCM04") strSme = "G0401" + strSme; else if (strSet == "CCM05") strSme = "G0501" + strSme; ar.Add(strSet); //objectpos ar.Add(strSme); //objectid ar.Add(strSta); //devicestates string strRecorder = this.UserInfo.GetUserName(); string strDev = (string)ar[0]; string sqlstr = ""; string strDisposalTime = ""; string strPnewHeatId = ""; string strPoldHeatID = ""; int intCount = 0; DataSet ds = null; string strErr = ""; if (strDev == string.Empty) { MessageBox.Show("请选择重置去向", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (strDev.Substring(0, 3) == "LFS")//精炼 { ArrayList arry = new ArrayList(); arry.Add("getLFSJudgeData.select"); arry.Add(strSet + "_FRONT"); arry.Add(strSet + "_BACK"); arry.Add(strSet + "_DEVICE"); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); ArrayList arryCount = new ArrayList(); arryCount.Add("getLFSCountData.select"); arryCount.Add(heatno); arryCount.Add(strDev.Substring(3,2)); arryCount.Add(heatno); arryCount.Add(strDev.Substring(3, 2)); CommonClientToServer cctos1 = new CommonClientToServer(); cctos1.ob = this.ob; DataSet dsCount = cctos1.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arryCount, out strErr); if (dsCount != null && dsCount.Tables[0].Rows.Count > 0) { strDisposalTime = "0" + Convert.ToString(Convert.ToInt16(dsCount.Tables[0].Rows[0][0]) + 1); } strPnewHeatId = strSme.Substring(0, 3) + strDisposalTime + ClsBusinessPack.getSmeltingID(strSme); } else if (strDev.Substring(0, 3) == "CCM")//连铸机 { ArrayList arry = new ArrayList(); arry.Add("getCCMJudgeData.select"); arry.Add(ar[0] + "_FRONT"); arry.Add(ar[0] + "_DEVICE"); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); ArrayList arryCount = new ArrayList(); arryCount.Add("getCCMCountData.select"); arryCount.Add(heatno); arryCount.Add(strDev.Substring(3, 2)); arryCount.Add(heatno); arryCount.Add(strDev.Substring(3, 2)); CommonClientToServer cctos2 = new CommonClientToServer(); cctos2.ob = this.ob; DataSet dsCount = cctos2.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arryCount, out strErr); if (dsCount != null && dsCount.Tables[0].Rows.Count > 0) { intCount = Convert.ToInt16(dsCount.Tables[0].Rows[0][0]); } strDisposalTime = "01"; strPnewHeatId = ar[1].ToString(); } strPoldHeatID = "C0" + strPnewHeatId.Substring(7, 1) + "01" + strPnewHeatId.Substring(5, 8); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { string strPos = ""; //重置位置 foreach (DataRow drPos in ds.Tables[0].Rows) { if (string.IsNullOrEmpty(drPos["OBJECTID"].ToString())) { strPos = drPos["OBJECTPOS"].ToString(); break; } } if (strPos == "") { MessageBox.Show("重置目标位置已经存在炉号!"); return; } ArrayList arry = new ArrayList(); arry.Add("UpdateOBJECTID.select"); arry.Add(strPnewHeatId); arry.Add(ar[2]); arry.Add(Convert.ToInt16(strDisposalTime)); arry.Add(strPos); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; string info = cctos.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strErr); if (strErr == "") { //精炼有记录在处理次数加1 if (strDev.Substring(0, 3) == "LFS") CreateLfs_CCM_JobInfo(strPnewHeatId, strPoldHeatID); //连铸机有记录不再生成记录 if (strDev.Substring(0, 3) == "CCM" && intCount == 0) CreateLfs_CCM_JobInfo(strPnewHeatId, strPoldHeatID); // string strHeatID = ClsBusinessPack.getSmeltingID(ar[1].ToString()); //add on 2009-04-23 加入日志 RecordLog(strRecorder, heatno, "01", strDev); //add on 2009-04-23 加入日志 } //清除OVER位数据 if (strDev.Substring(0, 3) == "CCM") { ArrayList arryOver = new ArrayList(); arryOver.Add("UpdateOverData.select"); arryOver.Add(ar[0] + "_OVER"); arryOver.Add(ar[1]); CommonClientToServer cctos3 = new CommonClientToServer(); cctos3.ob = this.ob; string dsOb = cctos3.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arryOver, out strErr); } if (strErr == "") { MessageBox.Show("炉号重置成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); this.ultraDataSource2.Rows.Clear(); if (chkAutoRefresh.Checked) { GetJobData(""); } else { GetCastPlan(); } return; } else MessageBox.Show("设置失败,请检查重置岗位处理位是否有炉号!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch { } } // 作业计划标准查询 /// /// 作业计划标准查询 /// /// /// private void ultraGrid1_DoubleClickRow(object sender, DoubleClickRowEventArgs e) { try { //string strIsNoY = ultraGrid1.ActiveRow.Cells["TSYQ"].Text.Trim(); //string szLH = ultraGrid1.Rows[e.Row.Index].Cells["HEATNO"].Value.ToString(); //string szPH = ultraGrid1.Rows[e.Row.Index].Cells["AIM_GRADE_CODE"].Value.ToString(); //if (strIsNoY == "Y") //{ // frmLgEleDetail Azhupi = new frmLgEleDetail(szLH, frmLgEleDetail.strSteelCode, "ZYJH", ob); // Azhupi.ultrgridRow = ultraGrid1.ActiveRow; // Azhupi.ShowDialog(this); //} } catch { } } #region " Auto Refresh " 自动刷新 private Thread _getDataThread; private bool On_Off_GetDataThread = false; private delegate void getDataFromAllDelegate(string str); private void StartGetDataThread() { ThreadStart ts = new ThreadStart(GetDataThread); _getDataThread = new Thread(ts); _getDataThread.Name = "GetDataThread_SH "; _getDataThread.Start(); } private void GetDataThread() { ReStartGetDataThread: while (true) { if (!On_Off_GetDataThread)//this.On_Off_Thread { System.Threading.Thread.Sleep(500); continue; } try { this.Invoke(new getDataFromAllDelegate(GetJobData), ""); //GetData(); System.Threading.Thread.Sleep(10000); } catch (Exception ex) { string msg = ex.Message; } goto ReStartGetDataThread; } } #endregion private void chkAutoRefresh_CheckedChanged(object sender, EventArgs e) { On_Off_GetDataThread = this.chkAutoRefresh.Checked; if (chkAutoRefresh.Checked) { ultraGroupBox3.Visible = false; splitContainer1.Panel1Collapsed = true; } else { ultraGroupBox3.Visible = true; splitContainer1.Panel1Collapsed = false; } } /// /// 系统功能 /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": //查询 { this.ultraDataSource2.Rows.Clear(); if (chkAutoRefresh.Checked) { GetJobData(""); } else { GetCastPlan(); } break; } case "Rollback": //重置 RollbackHeatNo(); break; case "Exit": this.Close(); break; case "ModifySpec": //修改规格 { UltraGridRow ultraRow = this.ultraGrid3.ActiveRow; if (ultraRow == null) MessageBox.Show("请在切割计划详细网格中选取要修改规格的切割计划!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); else { } break; } default: break; } } private void RecordLog(string strRecorder, string strHeatNo, string strFlag,string strPos) //add on 2009-04-23 计划事件日志 { string strErr = ""; try { string station=""; try { if (strPos.Substring(0, 3) == "LFS") station = "E"; else if (strPos.Substring(0, 3) == "CMM") station = "G"; station += station + strPos.Substring(3, 2); } catch { } ArrayList arry = new ArrayList(); arry.Add("TPM_MODIFYLOG_Save.select"); arry.Add(strHeatNo); arry.Add(station); arry.Add(strRecorder); arry.Add(strFlag); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; string info = cctos.NoQueryFunctions("Core.LgMes.Server.Common.ComDBSave", "doSimpleSave", arry, out strErr); } catch { } } /// /// 计划重置时创建作业信息(精炼、连铸机) /// /// 重置之后的新加热处理号 /// 旧加热处理号(对应炉号的转炉加热处理号) /// public bool CreateLfs_CCM_JobInfo(string strPnewHeatId, string strPoldHeatId) { try { string strError = ""; string strSqlID = ""; if (strPnewHeatId.Substring(0, 1) == "E") strSqlID = "CreateLFSjob.Update"; if (strPnewHeatId.Substring(0, 1) == "G") strSqlID = "CreateCcmjob.Update"; Hashtable hashtb = new Hashtable(); hashtb.Add("I1", strPnewHeatId); //重置新炉号 hashtb.Add("I2", strPoldHeatId); //原始炉号 CommonClientToServer ccTs = new CommonClientToServer(); ccTs.ob = ob; string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.Common.ComDBProcedure", "executeProcedure", strSqlID, hashtb, out strError); if (strError != "") { return (true); } return false; } catch (Exception ex) { return true; } } private void chkState_CheckedChanged(object sender, EventArgs e) { if (chkState.Checked) ultracboState.Enabled = true; else ultracboState.Enabled = false; } private void chkHeatNo_CheckedChanged(object sender, EventArgs e) { if (chkHeatNo.Checked) txtHeatNo.Enabled = true; else { txtHeatNo.Enabled = false; txtHeatNo.BackColor = Color.WhiteSmoke; } } private void chkbof_CheckedChanged(object sender, EventArgs e) { if (chkbof.Checked) cobbof.Enabled = true; else cobbof.Enabled = false; } private void chkCcmID_CheckedChanged(object sender, EventArgs e) { if (chkCcmID.Checked) cboCcmID.Enabled = true; else cboCcmID.Enabled = false; } private void txtHeatNo_KeyPress(object sender, KeyPressEventArgs e) { if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '\b')) { e.Handled = true; } } private void ultraGrid4_AfterRowActivate(object sender, EventArgs e) { try { if (this.ultraGrid4.Rows.Count < 1) return; if (this.ultraGrid4.ActiveRow == null) return; UltraGridRow ultraRow = this.ultraGrid4.ActiveRow; string strCastNo = ultraRow.Cells["CAST_NO"].Value.ToString(); GetJobData(strCastNo); } catch { } } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { try { strHeatNo = ""; if (this.ultraGrid1.Rows.Count < 1) return; if (this.ultraGrid1.ActiveRow == null) return; UltraGridRow ultraRow = this.ultraGrid1.ActiveRow; string status = ultraRow.Cells["HEAT_STATE"].Value.ToString(); if (status == "09") ultraToolbarsManager1.Tools["Reset"].SharedProps.Enabled = true; //this.btnReset.Visible = true; else ultraToolbarsManager1.Tools["Reset"].SharedProps.Enabled = false; strHeatNo = ultraRow.Cells["HeatNo"].Value.ToString(); string strFurnaceNo = ultraRow.Cells["V_HEAT_ID"].Value.ToString(); //string strWhere = string.Format(" WHERE FURNACENO = '{0}'", strFurnaceNo); GetCutingData(strFurnaceNo); } catch (Exception ex) { string msg = ex.Message; } } } }