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;
namespace Core.LgMes.Client.LgResMgt
{
public partial class frmCcmMgt : Core.Mes.Client.Common.frmStyleBase
{
string strError = null;
// string strBC = null;
DataSet ccmXX = new DataSet();
string v_GWBM = "";
string strNumId = "";
public frmCcmMgt(string aaa)
{
InitializeComponent();
v_GWBM = aaa;
}
///
/// 写日志信息到日志文件
///
///
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 void FrmMisManage_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[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
//初始化页面,绑定设备运行项目和耗材消耗项目
BindingData();
//交接班人员
txtName.Text = this.UserInfo.GetUserName();
ulcmeState.SelectedIndex = 1;
//自动获取当前班次信息
BandingShift();
GetJJBInfo();
}
///
/// 判断是否交接班
///
private bool JudgeESState(DateTime currTime)
{
string szWhere = "";
string strShift = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString();
szWhere = " where StationCode='" + v_GWBM + "' and ShiftCode='" + strShift + "' and to_char(ESDATE,'yyyy-MM-dd')='" + currTime.ToString("yyyy-MM-dd") + "'";
DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetChangeClassInfo", new object[] { szWhere }, out strError);
if (strError == "" && ds.Tables.Count > 0)
{
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0 && dt.Rows[0]["AFFIRMFLAG"].ToString() == "1")
{
return true;
}
else
{
return false;
}
}
else
{
return false;
}
}
///
/// 判断交接班项目信息是否存在
///
/// 交接班序号
/// 项目编码
/// 数据类型
/// 返回True信息存在,否则不存在
private bool GetDetailInfo(string strNumID, string strItemCode, string strItemDataType)
{
string strError = "";
DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt",
// "Core.LgMes.Server.LgResMgt.LfsCollect",
// "GetDetailInfo",
// new object[] { strNumId,strItemCode,strItemDataType }, out strError);
if (strError == "" && ds != null)
{
if (ds.Tables[0].Rows.Count == 0)
return false;
else
return true;
}
else
return true;
}
///
/// 自动获取当前班次信息 班别班次从存储过程中取。。。暂不知道存储过程名,后面再加
///
private void BandingShift()
{
try
{
#region 班别班次从存储过程中取。
string strError = "";
string strBC = "";//hengxing (string)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetClassInfo", new object[] { }, out strError);
if (strBC.Trim().Length == 2)
{
ulcmeShift1.Value = strBC.Substring(0, 1);
ulcmeShift2.Value = strBC.Substring(1, 1);
}
#endregion
}//end try
catch (System.Exception exp)
{
MessageBox.Show(exp.Message);
}
finally
{
}
}
///
/// 绑定设备运行项目和耗材项目
///
private void BindingData()
{
//获取设备运行状态项目数据
GetEsItemData1("设备运行", v_GWBM);
//获取耗材消耗项目数据
GetEsItemData2("耗材消耗", 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();
}
}
}
///
/// 获取项目数据 设备运行状态
///
/// 项目类型
/// 岗位编码
///
private void GetEsItemData1(string strXMType, string strGWCode)
{
try
{
string szWhere = " Where ITEMTYPE = '" + strXMType + "' and STATIONCODE = '" + strGWCode + "' ";
DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetHCXMData", new object[] { szWhere }, out strError);
if (strError == "" && ds != null)
{
DataTable dt = ds.Tables[0];
dt.TableName = "YXZT";
if (ccmXX.Tables.Contains("YXZT"))
{
ccmXX.Tables["YXZT"].Clear();
}
ccmXX.Merge(dt);
}
}//end try
catch (System.Exception exp)
{
MessageBox.Show(exp.Message);
}
finally
{
}
}
///
/// 获取项目数据 耗材消耗
///
/// 项目类型
/// 岗位编码
///
private void GetEsItemData2(string strXMType, string strGWCode)
{
try
{
string szWhere = " Where ITEMTYPE = '" + strXMType + "' and STATIONCODE = '" + strGWCode + "' ";
DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetHCXMData", new object[] { szWhere }, out strError);
if (strError == "" && ds != null)
{
DataTable dt = ds.Tables[0];
dt.TableName = "HCXH";
if (ccmXX.Tables.Contains("HCXH"))
{
ccmXX.Tables["HCXH"].Clear();
}
ccmXX.Merge(dt);
}
}//end try
catch (System.Exception exp)
{
MessageBox.Show(exp.Message);
}
finally
{
}
}
///
/// 获取交接班信息
///
private void GetJJBInfo()
{
string strError = "";
string strStationCode="";
strStationCode = v_GWBM; //岗位编码
DataSet ds = null;//hengxing (DataSet)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt",
// "Core.LgMes.Server.LgResMgt.LfsCollect", "GetJJBInfo", new object[] { strStationCode }, out strError);
if (strError == "" && 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);
}
}
}
}
private void btnOk_Click(object sender, EventArgs e)
{
if (ulcmeShift1.Text.Length == 0 || ulcmeShift2.Text.Length == 0)
{
MessageBox.Show("请选择班别班次!");
return;
}
string strBC = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString();
DateTime currTime = DateTime.Now;//hengxing (DateTime)ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "GetSystemTime", new object[] { }, out strError);
if (strError == "")
{
dtpkDate.Value = currTime;
}
try
{
DialogResult result;
result = MessageBox.Show(this, "您确认要交接班吗?", "提示", MessageBoxButtons.YesNo,
MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
if (result == DialogResult.Yes)
{
//判断是否交接班
if (!StaticFunction.CheckIsChangeClass(currTime))
{
MessageBox.Show("提示:现在暂时不能交班,请等到交班时间再进行交接班!");
return;
}
//
if (ulcmeState.Text == "否")
{
MessageBox.Show("提示:必须确认交接班状态!");
return;
}
//交接班序号
string strJJBID = v_GWBM + System.DateTime.Now.ToString("yyyyMMddHHmm");
//判断耗材消耗是否全部录入
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("耗材消耗输入不完全,请重新输入!");
return;
}
}
}
bool ESFlag = JudgeESState(currTime);
if (ESFlag == true)
UpdateMainInfo(strNumId); //更机新交接班主表数据
else
AddESMainData(strJJBID); //新增交接班主表数据
//新增交接班详表数据
//耗材消耗
for (int i = 0; i < ulgridConsume.DisplayLayout.Rows[0].Cells.Count; i++)
{
if (ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag!=null)
{
if (string.IsNullOrEmpty(strNumId))
{
if (GetDetailInfo(strJJBID, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1") == false)
AddESDetailData(strJJBID, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1", ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString());
}
else
if (GetDetailInfo(strNumId, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1") == false)
AddESDetailData(strNumId, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1", ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString());
else
UpdateDetailInfo(strNumId, ulgridConsume.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "1", ulgridConsume.DisplayLayout.Rows[0].Cells[i].Value.ToString());
}
}
//交接班运行
for (int i = 0; i < ulgridEquipment.DisplayLayout.Rows[0].Cells.Count; i++)
{
if (ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag !=null)
{
if (string.IsNullOrEmpty(strNumId))
{
if (GetDetailInfo(strJJBID, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0") == false)
AddESDetailData(strJJBID, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0", ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value.ToString());// == "True" ? "1" : "0");
}
else
{
if (GetDetailInfo(strNumId, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0") == false)
AddESDetailData(strNumId, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0", ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value.ToString());// == "True" ? "1" : "0");
else
UpdateDetailInfo(strNumId, ulgridEquipment.DisplayLayout.Bands[0].Columns[i].Tag.ToString(), "0", ulgridEquipment.DisplayLayout.Rows[0].Cells[i].Value.ToString());//() == "True" ? "1" : "0");
}
}
}
GetJJBInfo();
}
}//end try
catch (System.Exception exp)
{
MessageBox.Show(exp.Message);
}
finally
{
}
}
///
/// 新增交接班主表数据
///
public void AddESMainData(string strJJBID)
{
try
{
//班次编码
string strBC = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString();
//hengxing ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "Add_DT_JJBMain", new object[] { strJJBID, v_GWBM, strBC, dtpkDate.Value.ToString("yyyy-MM-dd HH:mm:ss"), txtName.Text.Trim(), ulcmeState.Value, txtMemo.Text.Trim(),"0"}, out strError);
if (strError != "")
{
MessageBox.Show(strError);
}
}//end try
catch (System.Exception exp)
{
WriteLog("Hnst.QG.Client.ESManage.ESManage" + exp.Message);
}
finally
{
}
}
///
/// 修改交接班主表信息
///
/// 交接班序号
///
public void UpdateMainInfo(string strNumID)
{
try
{
//班次编码
string strBC = ulcmeShift1.Value.ToString() + ulcmeShift2.Value.ToString();
//hengxing ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt",
// "Core.LgMes.Server.LgResMgt.LfsCollect",
// "UpdateMainInfo", new object[] { strNumId, v_GWBM, strBC, dtpkDate.Value.ToString("yyyy-MM-dd HH:mm:ss"), txtName.Text.Trim(), ulcmeState.Value, txtMemo.Text.Trim(), "0" }, out strError);
if (strError != "")
{
MessageBox.Show(strError);
}
}
catch (System.Exception exp)
{
WriteLog("Hnst.QG.Client.ESManage.ESManage" + exp.Message);
}
finally { }
}
///
/// 保存交接班配置项目数据表
///
///
///
///
///
public void AddESDetailData(string strJJBID, string strXMCode, string strXMSJType, string strXMValue)
{
try
{
//hengxing Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "AddQG_DT_JJBXMDetail", new object[] { strJJBID, strXMCode, strXMSJType, strXMValue }, out strError);
if (strError != "")
{
MessageBox.Show(strError);
}
}//end try
catch (System.Exception exp)
{
MessageBox.Show(exp.Message);
}
finally
{
}
}
///
/// 更新交接班项目信息
///
///
///
///
///
public void UpdateDetailInfo(string strNumID, string strItemCode, string strItemDataType, string strItemValue)
{
try
{
//hengxing Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgResMgt", "Core.LgMes.Server.LgResMgt.LfsCollect", "UpdateDetailInfo", new object[] { strNumID,strItemCode,strItemDataType,strItemValue}, out strError);
if (strError != "")
{
MessageBox.Show(strError);
}
}//end try
catch (System.Exception exp)
{
MessageBox.Show(exp.Message);
}
finally
{
}
}
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;
}
}
class StaticFunction
{
public static bool CheckIsChangeClass(DateTime currTime)
{
string datetime = currTime.ToString("HH:mm:ss");
string Z1 = "07:45:00", Z2 = "08:15:00", Z3 = "15:45: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);
}
}
}