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);
}
}
}