using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using CoreFS.CA06; //using Core.Mes.IBaseInterface; using System.Collections; using Core.StlMes.Client.LgCommon; namespace Core.StlMes.Client.LgResMgt { public partial class frmJJBMgt : frmStyleBase { public string strBC = ""; public DataSet ccmXX = new DataSet(); public string v_GWBM = ""; public string strNumId = ""; private ArrayList arryItemCode = new ArrayList(); private ArrayList arryItemType = new ArrayList(); private ArrayList arryItemValue = new ArrayList(); public frmJJBMgt() { InitializeComponent(); } private void frmJJBMgt_Load(object sender, EventArgs e) { ultraDataSource1.Rows.Add(new object[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }); ultraDataSource2.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); v_GWBM = "BOF02"; //初始化页面,绑定设备运行项目和耗材消耗项目 BindingData(); //交接班人员 txtName.Text = this.UserInfo.GetUserName(); ulcmeState.SelectedIndex = 1; //自动获取当前班次信息 BandingShift(); GetJJBInfo(); } // 写日志信息到日志文件 /// /// 写日志信息到日志文件 /// /// private void WriteLog(string str) { string strDate = System.DateTime.Now.Year.ToString() + System.DateTime.Now.Month.ToString() + System.DateTime.Now.Day.ToString(); System.IO.TextWriter tw = new System.IO.StreamWriter(System.Environment.CurrentDirectory + "\\log\\log_" + strDate + ".log", true); tw.WriteLine(str); tw.Close(); } // 判断是否交接班 /// /// 判断是否交接班 /// private bool JudgeESState(DateTime currTime) { try { string str_Shift = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString(); string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("frmJJBJudgeESState.select");//此ID为XML文件ID arry.Add(v_GWBM); arry.Add(str_Shift); arry.Add(currTime.ToString("yyyy-MM-dd")); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && ds != null && ds.Tables.Count > 0) { DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0 && dt.Rows[0]["AFFIRMFLAG"].ToString() == "1") { strNumId = dt.Rows[0]["NUMID"].ToString(); return true; } else { strNumId = ""; return false; } } else { strNumId = ""; return false; } } catch { return false; } } // 判断交接班项目信息是否存在 /// /// 判断交接班项目信息是否存在 /// /// 交接班序号 /// 项目编码 /// 数据类型 /// 返回True信息存在,否则不存在 private bool GetDetailInfo(string strNumID, string strItemCode, string strItemType) { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("frmJJBDetailInfo.select");//此ID为XML文件ID arry.Add(strNumID); arry.Add(strItemCode); arry.Add(strItemType); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { if (ds.Tables[0].Rows[0][0].ToString() == "0") { return false; } else { return true; } } else return true; } // 自动获取当前班次信息 /// /// 自动获取当前班次信息 /// private void BandingShift() { try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetCurrDuty.Select");//此ID为XML文件ID CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { strBC = ds.Tables[0].Rows[0][0].ToString(); } if (strBC.Trim().Length == 2) { ulcmeShift1.Value = strBC.Substring(0, 1); ulcmeShift2.Value = strBC.Substring(1, 1); } } catch (System.Exception exp) { MessageBox.Show(exp.Message); } } // 绑定设备运行项目和耗材项目 /// /// 绑定设备运行项目和耗材项目 /// private void BindingData() { GetEsItemData("0", v_GWBM); //获取设备运行状态项目数据 GetEsItemData("1", v_GWBM); //获取耗材消耗项目数据 //绑定设备运行状态项目数据 if (ccmXX.Tables["YXZT"] != null && ccmXX.Tables["YXZT"].Rows.Count > 0) { for (int i = 0; i < ccmXX.Tables["YXZT"].Rows.Count; i++) { this.ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Header.Caption = ccmXX.Tables["YXZT"].Rows[i]["ITEMNAME"].ToString(); this.ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag = ccmXX.Tables["YXZT"].Rows[i]["ITEMCODE"].ToString(); this.ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value = true; } } if (ccmXX.Tables["HCXH"] != null && ccmXX.Tables["HCXH"].Rows.Count > 0) { //绑定耗材消耗项目数据 for (int i = 0; i < ccmXX.Tables["HCXH"].Rows.Count; i++) { this.ulgridConsume.DisplayLayout.Bands[0].Columns[i].Header.Caption = ccmXX.Tables["HCXH"].Rows[i]["ITEMNAME"].ToString(); this.ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag = ccmXX.Tables["HCXH"].Rows[i]["ITEMCODE"].ToString(); } } } // 获取项目数据 0.设备运行状态 1.耗材消耗 /// /// 获取项目数据 0.设备运行状态 1.耗材消耗 /// /// 项目类型 /// 岗位编码 /// private void GetEsItemData(string strXMType, string strGWCode) { try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("frmJJBMgt.Query");//此ID为XML文件ID arry.Add(strXMType); arry.Add(strGWCode); CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && ds != null) { DataTable dt = ds.Tables[0]; if (strXMType == "0") //设备运行状态 { dt.TableName = "YXZT"; if (ccmXX.Tables.Contains("YXZT")) { ccmXX.Tables["YXZT"].Clear(); } } else { dt.TableName = "HCXH"; if (ccmXX.Tables.Contains("HCXH")) { ccmXX.Tables["HCXH"].Clear(); } } ccmXX.Merge(dt); } } catch (System.Exception exp) { MessageBox.Show(exp.Message); } } // 获取交接班信息 /// /// 获取交接班信息 /// private void GetJJBInfo() { try { string date = DateTime.Now.ToString("yyyy-MM-dd"); //当前时间 string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("frmGetJJBInfo.Query");//此ID为XML文件ID arry.Add(v_GWBM); //岗位编码 arry.Add(date); //当前时间 arry.Add(strBC); //班次 CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); if (strErr == "" && ds != null) { foreach (DataRow dr in ds.Tables[0].Rows) { if (dr["itemdatatype"].ToString() == "0") //设备运行数据 { for (int i = 0; i < ulgridEquipment.DisplayLayout.Bands[0].Columns.Count; i++) { if (ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag != null && ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString() == dr["itemcode"].ToString()) { ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value = Convert.ToBoolean(Convert.ToInt16(dr["itemvalue"])); break; } } } else if (dr["itemdatatype"].ToString() == "1") //耗材消耗 { for (int i = 0; i < ulgridConsume.DisplayLayout.Bands[0].Columns.Count; i++) { if (ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag != null && ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString() == dr["itemcode"].ToString()) { ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value = dr["itemvalue"].ToString(); break; } } } strNumId = dr["numid"].ToString(); ulcmeState.SelectedIndex = Convert.ToInt16(dr["affirmflag"]); txtName.Text = dr["esname"].ToString(); txtMemo.Text = dr["esmemo"].ToString(); dtpkDate.Value = Convert.ToDateTime(dr["esdate"]); if (!string.IsNullOrEmpty(dr["shiftcode"].ToString())) { ulcmeShift1.Value = dr["shiftcode"].ToString().Substring(0, 1); ulcmeShift2.Value = dr["shiftcode"].ToString().Substring(1, 1); } } } } catch { } } private void btnOk_Click(object sender, EventArgs e) { try { if (ulcmeShift1.Text.Length == 0 || ulcmeShift2.Text.Length == 0) { MessageBox.Show("请选择班别班次!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } if (ulcmeState.Text == "否") { MessageBox.Show("必须确认交接班状态!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } //判断耗材消耗是否全部录入 for (int i = 0; i < ulgridConsume.DisplayLayout.Rows[0].Cells.Count; i++) { if (ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag != null) { if (ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString() == "") { MessageBox.Show("耗材消耗输入不完全,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } } } string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("frmSysdate.select");//此ID为XML文件ID CommonClientToServer cctos = new CommonClientToServer(); cctos.ob = this.ob; DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery", "doSimpleQuery", arry, out strErr); DateTime currTime = DateTime.Now; if (strErr == "" && ds != null) { currTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["VDATE"]); dtpkDate.Value = currTime; } //判断是否交接班 if (!CheckIsChangeClass(currTime)) { MessageBox.Show("现在暂时不能交班,请等到交班时间再进行交接班!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } //判断是否已经完成交接班 bool ESFlag = JudgeESState(currTime); string strOut = ""; if (!ESFlag) { strOut = "您确认要交接班吗?"; } else { strOut = "当前班次已完成交接班,你确认修改信息吗?"; } try { DialogResult result = MessageBox.Show(this, strOut, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (result == DialogResult.No) return; //新增交接班详表数据 arryItemCode.Clear(); arryItemType.Clear(); arryItemValue.Clear(); //设备运行 for (int i = 0; i < ulgridEquipment.DisplayLayout.Rows[0].Cells.Count; i++) { if (ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag != null) { arryItemCode.Add(ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString()); arryItemType.Add("1"); arryItemValue.Add(ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value.ToString()); } } //耗材消耗 for (int i = 0; i < ulgridConsume.DisplayLayout.Rows[0].Cells.Count; i++) { if (ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag != null) { arryItemCode.Add(ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString()); arryItemType.Add("1"); arryItemValue.Add(ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString()); } } string str_BC = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString(); strErr = ""; string strSqlID = "frmJJBDetailInfo.add"; object[] Args = new object[11]; Args[0] = strNumId; //交接班序号 Args[1] = v_GWBM; //岗位编码 Args[2] = str_BC; //班次班组 Args[3] = dtpkDate.Value.ToString("yyyy-MM-dd HH:mm:ss"); //交接班日期 Args[4] = txtName.Text.Trim(); //交接班人员 Args[5] = ulcmeState.Value; //交接班确认标志 Args[6] = txtMemo.Text.Trim(); //交接班备注 Args[7] = "0"; //手动/自动标志 Args[8] = arryItemCode; //配置项目编码 Args[9] = arryItemType; //项目数据类型 Args[10] = arryItemValue; //项目数值 CommonClientToServer ccts = new CommonClientToServer(); ccts.ob = ob; string Code = ccts.ExecuteProcedureFunctions("Core.LgMes.Server.Common.ComDBProcedure", "ExecProcWithCollParam", strSqlID, Args, out strErr); if (strErr != "") { MessageBox.Show("修改失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } else { MessageBox.Show("保存成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } GetJJBInfo(); } catch (System.Exception exp) { MessageBox.Show(exp.Message); } } catch { } } // 系统功能 /// /// 系统功能 /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Query": BindingData(); GetJJBInfo(); break; //case "QueryStl": // getStlLGMRestlt(); // break; //case "Save": // saveLGMRestlt(); // break; //case "CancelSave": // deleteLGMRestlt(); // break; case "Exit": this.Close(); break; default: break; } } public void GridKeyDown(int RowId, Infragistics.Win.UltraWinGrid.UltraGrid GRID) { switch (RowId) { case 38: GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.AboveCell); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; case 37: GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.PrevCellByTab); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; case 39: GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.NextCellByTab); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; case 40: GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.BelowCell); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; case 13://回车 GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.ExitEditMode); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.NextCellByTab); GRID.PerformAction(Infragistics.Win.UltraWinGrid.UltraGridAction.EnterEditMode); break; } } public bool CheckIsChangeClass(DateTime currTime) { string datetime = currTime.ToString("HH:mm:ss"); string Z1 = "11:15:00", Z2 = "12:15:00", Z3 = "15:25:00", Z4 = "16:15:00", Z5 = "23:45:00", Z6 = "00:15:00", Z7 = "00:00:00", Z8 = "23:59:59"; if ((string.Compare(datetime, Z1) >= 0 && string.Compare(datetime, Z2) < 0) || (string.Compare(datetime, Z3) >= 0 && string.Compare(datetime, Z4) < 0) || ((string.Compare(datetime, Z5) >= 0 && string.Compare(datetime, Z8) < 0) || (string.Compare(datetime, Z7) >= 0 && string.Compare(datetime, Z6) < 0))) { return true; } return false; } private void ulgridEquipment_KeyDown(object sender, KeyEventArgs e) { GridKeyDown(e.KeyValue, ulgridEquipment); } private void ulgridConsume_KeyDown(object sender, KeyEventArgs e) { GridKeyDown(e.KeyValue, ulgridConsume); } public static void CheckNumValidate(string szVal) { try { Convert.ToDecimal(szVal); } catch (Exception ex) { MessageBox.Show(ex.Message, "提示"); } } private void ultraGroupBox2_KeyPress(object sender, KeyPressEventArgs e) { if (e.KeyChar == (char)13) { Control c = GetNextControl(this.ActiveControl, true); bool ok = SelectNextControl(this.ActiveControl, true, true, true, true); if (ok && c != null) { if (c is System.Windows.Forms.TextBox) { ((System.Windows.Forms.TextBox)c).SelectAll(); } } } } private void ulgridEquipment_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { } private void ulgridConsume_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (ulgridConsume.ActiveCell.Text != "") CheckNumValidate(ulgridConsume.ActiveCell.Text); } } }