using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using CoreFS.CA06;
using System.Windows.Forms;
using Core.Mes.Client.Common;
using System.Collections;
using System.Data;
/***文档注释***********************************************
* 作者 : 刘现
* 创建日期 : 2011.02.18
* 描述 : 完成作业管理手动更新功能
* 注意事项 : 所有作业管理手动更共用
* 遗留BUG : 无
* 修改日期 :
* 修改人员 :
* 修改内容 :
***********************************************************/
namespace Core.LgMes.Client.LgJobMgt
{
public class ClassManualUpdateInfo
{
///
/// 跟据岗位获取数据库表名
///
/// 岗位编号
/// 表类型(MATERIEL:物料消耗表,JOB:作业表
/// 表名
public static string analysPosTableName(string strPosCode, string strType)
{
string strJobTableName = ""; //作业表名
string strAddTableName = ""; //物料消耗
string strReturnTable = ""; //返回表名
switch (strPosCode)
{
case "B":
strJobTableName = "STL_HMP_OPTINFO";
strAddTableName = "STL_HMP_ADDITIVES";
break;
case "C":
strJobTableName = "STL_BOF_OPTINFO";
strAddTableName = "STL_BOF_ADDITIVES";
break;
case "D":
strJobTableName = "STL_CAS_OPTINFO";
strAddTableName = "STL_CAS_ADDITIVES";
break;
case "E":
strJobTableName = "STL_LFS_OPTINFO";
strAddTableName = "STL_LFS_ADDITIVES";
break;
case "F":
strJobTableName = "STL_RHS_OPTINFO";
strAddTableName = "STL_RHS_ADDITIVES";
break;
case "G":
strJobTableName = "STL_CCM_OPTINFO";
strAddTableName = "STL_CCM_ADDITIVES";
break;
case "I":
strJobTableName = "STL_VDS_OPTINFO";
strAddTableName = "STL_VDS_ADDITIVES";
break;
default:
break;
}
//作业表
if (strType == "JOB")
strReturnTable = strJobTableName;
//物料消耗表
if (strType == "MATERIEL")
strReturnTable = strAddTableName;
return strReturnTable;
}
///
/// 时间显示框,在需要更改日期的时候弹出日期选择框
///
///
///
///
public static void SetCellDateTime(Infragistics.Win.UltraWinGrid.UltraGridCell cell, string _heatProcessNo, OpeBase ob)
{
string strTableName = ""; //表名
frmSetTime frm = new frmSetTime(cell.Value);
frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size);
frm.ShowDialog();
if (_heatProcessNo.Length >= 11 && frm._returnTime > new DateTime(2000, 1, 1, 0, 0, 0, 0))
{
strTableName = analysPosTableName(_heatProcessNo.Substring(0, 1), "JOB");
DateTime dt = frm._returnTime;
cell.Value = dt;
try
{
UpdateTableField(_heatProcessNo, strTableName, cell.Column.Key.ToString(), "DATE", dt, ob);
}
catch
{
MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
///
/// 更新作业表字段信息
///
/// 加热处理号
/// 表名
/// 更新字段
/// 数据类型
/// 目标值
/// 服务端URL
public static void UpdateTableField(string _heatProcessNo, string strTableName, string strColumnName,
string strDataType, object Upt_Value, OpeBase ob)
{
string strHeatNo = ""; //炉号
string strStationCode = ""; //岗位
string strDisposalTime = ""; //处理次理
string strSqlID = ""; //sqlId
string strErr = ""; //错误信息
if (_heatProcessNo.Length == 0) return;
strHeatNo = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(_heatProcessNo) : "";
strStationCode = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(1, (int)OBJLEN.nDevCode) : "";
strDisposalTime = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(3, (int)OBJLEN.nDealTime) : "";
strSqlID = "UpdateTableField.Update"; //SQLID
Hashtable ht = new Hashtable();
ht.Add("I1", strTableName); //表名
ht.Add("I2", strHeatNo); //炉号
ht.Add("I3", strStationCode); //岗位
ht.Add("I4", strDisposalTime); //处理次数
ht.Add("I5", strColumnName.ToUpper()); //列名
ht.Add("I6", strDataType); //数据类型
ht.Add("I7", Upt_Value.ToString()); //更新值
CommonClientToServer ccTs = new CommonClientToServer();
ccTs.ob = ob;
string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
"UpdateTableField", strSqlID, ht, out strErr);
if (strErr != "")
MessageBox.Show("数据更新失败,重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
///
/// 更新脱硫作业表字段信息
///
/// 加热处理号
/// 表名
/// 更新字段
/// 数据类型
/// 目标值
/// 服务端URL
public static void UpdateHmpTableField(string _heatProcessNo, string strTableName, string strColumnName,
string strDataType, object Upt_Value, OpeBase ob)
{
string strSqlID = ""; //sqlId
string strErr = ""; //错误信息
if (_heatProcessNo.Length == 0) return;
strSqlID = "UpdateHMPTableField.Update"; //SQLID
Hashtable ht = new Hashtable();
ht.Add("I1", strTableName); //表名
ht.Add("I2", _heatProcessNo); //加热处理号
ht.Add("I3", strColumnName.ToUpper()); //列名
ht.Add("I4", strDataType); //数据类型
ht.Add("I5", Upt_Value.ToString()); //更新值
CommonClientToServer ccTs = new CommonClientToServer();
ccTs.ob = ob;
string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
"UpdateTableField", strSqlID, ht, out strErr);
if (strErr != "")
MessageBox.Show("数据更新失败,重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
///
/// 添加物料消耗公共方法
///
/// 加热处理号
/// 物料编码
/// 物料类型
/// 值
/// 料仓编号
/// 投料类型1:料仓投料,2:手投料
/// 服务端URL
public static void AddMaterialProc(string _heatProcessNo, string strMaterielCode, string strMaterielType,
string strDataValue, string strHoppernumID,string strAddMtrType,OpeBase ob)
{
string strHeatNo = ""; //炉号
string strStationCode = ""; //岗位
string strDisposalTime = ""; //处理次理
string strSqlID = ""; //sqlId
string strErr = ""; //错误信息
string strTableName = ""; //表名
string strPurposeCode = ""; //用途编码
if (_heatProcessNo.Length == 0) return;
strHeatNo = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(_heatProcessNo) : "";
strStationCode = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(1, (int)OBJLEN.nDevCode) : "";
strDisposalTime = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(3, (int)OBJLEN.nDealTime) : "";
strTableName = analysPosTableName(_heatProcessNo.Substring(0, 1), "MATERIEL");
if (strAddMtrType == "1") strPurposeCode = "自动投料";
if (strAddMtrType == "2") strPurposeCode = "手投料";
strSqlID = "AddMaterialProc.INSERT"; //SQLID
Hashtable ht = new Hashtable();
ht.Add("I1", strTableName); //表名
ht.Add("I2", _heatProcessNo); //加热处理号
ht.Add("I3", strMaterielCode); //物料编码
ht.Add("I4", strMaterielType); //物料类型
ht.Add("I5", strHeatNo); //炉号
ht.Add("I6", strDataValue); //物料消耗
ht.Add("I7", strAddMtrType); //投料类型
ht.Add("I8", strHoppernumID); //料仓编号
ht.Add("I9", strPurposeCode); //用途编码
ht.Add("I10", strStationCode); //岗位
ht.Add("I11", strDisposalTime); //处理次数
CommonClientToServer ccTs = new CommonClientToServer();
ccTs.ob = ob;
string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
"AddMaterialProc", strSqlID, ht, out strErr);
if (strErr != "")
MessageBox.Show("物料消耗数据录入失败,重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
///
/// 手投料料仓对应物料配置
///
/// 激活Cell
///
/// 岗位
/// 服务端URL
public static void SetHatMaterial(Infragistics.Win.UltraWinGrid.UltraGridCell ultraCell,
ref Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e, string strStationCode, OpeBase ob)
{
string strErr = "";
string strMaterielCode = ""; //物料编码
string strOldMaterielCode = ""; //原始物料编码
string strPurposeCode = ""; //用途编码
string strOutValue = ""; //输出
try
{
if (ultraCell != null)
{
string szBM = "";
if (ultraCell.Column.Tag.ToString() != ultraCell.Column.Key)
strOldMaterielCode = ultraCell.Column.Tag.ToString();
string szMC = e.Header.Caption;
frmSetMaterialName frm = new frmSetMaterialName(szMC, "1");
frm.obMain = ob;
frm.ShowDialog();
if (frm.bChange)
{
strMaterielCode = frm.m_szWLBM;
strPurposeCode = "手投料";
string strSqlID = "SwapHatHopper.Procedure"; //SQLID
Hashtable ht = new Hashtable();
ht.Add("I1", strStationCode); //岗位
ht.Add("I2", "STL"); //投料类型
ht.Add("I3", strMaterielCode); //物料编码
ht.Add("I4", strOldMaterielCode); //原始物料编码
ht.Add("I5", strPurposeCode); //用途编码
ht.Add("O1", strOutValue); //输出
CommonClientToServer ccTs = new CommonClientToServer();
ccTs.ob = ob;
string strRCode = ccTs.ExecuteProcedureFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
"SwapHatHopper", strSqlID, ht, out strErr);
if (strErr != "")
{
MessageBox.Show("手投料物料配置失败,请重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
e.Header.Caption = frm.m_szWLMC;
ultraCell.Column.Tag = frm.m_szWLBM;
}
}
}
catch { }
}
///
/// 设置冶炼过程手投料配置信息
///
/// 手投料Grid
/// 手投料数据源
/// 岗位
/// 手投料配置信息
/// 服务端URL
public static void SetProceThrowFace(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid, Infragistics.Win.UltraWinDataSource.UltraDataSource ultraDs,
string strStationCode, ref DataTable _dtMaterial, OpeBase ob)
{
try
{
string strErr = "";
ArrayList arry = new ArrayList();
arry.Add("GetHndTrwMtr.Select");//此ID为XML文件ID
arry.Add(strStationCode); //岗位
CommonClientToServer ccTs = new CommonClientToServer();
ccTs.ob = ob;
//查询手投料物料配置信息
DataSet ds = ccTs.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
"GetHndTrwMtr", arry, out strErr);
if (strErr == "" && ds != null)
{
DataTable dt = ds.Tables[0];
if (dt.Rows.Count > 0)
{
string szPZBM = dt.Rows[0]["CONFGCODE"].ToString();
string[] arBM = szPZBM.Split('/');
DataRow[] rows;
int nCount = ultraGrid.DisplayLayout.Bands[0].Columns.Count;
for (int i = 0; i < nCount; i++)
{
if (i < arBM.Length - 1)
{
rows = _dtMaterial.Select("MATERIELCODE='" + arBM[i] + "'");
if (rows.Length > 0)
{
ultraGrid.DisplayLayout.Bands[0].Columns[i].Header.Caption = rows[0]["MATERIELFORSHORT"].ToString();
ultraGrid.DisplayLayout.Bands[0].Columns[i].Tag = arBM[i];
}
}
else
{
ultraGrid.DisplayLayout.Bands[0].Columns[i].Header.Caption = "";
ultraGrid.DisplayLayout.Bands[0].Columns[i].Tag = ultraDs.Band.Columns[i].Key;
}
}
}
}
}
catch { }
}
///
/// 利用弹出计算器窗体增加手投料消耗
///
///
///
///
///
public static void HndMtrFromAddMaterial(string _heatProcessNo, Infragistics.Win.UltraWinGrid.UltraGridCell ultraCell,
DataTable _dtMaterial,OpeBase ob)
{
if (_heatProcessNo == "" || ultraCell.Column.Header.Caption == "")
return;
frmInputDecimal frm = new frmInputDecimal();
frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size);
frm.ShowDialog();
if (frm._defaultValue != "")
{
string szMC = ultraCell.Column.Header.Caption, szWLBM = ultraCell.Column.Tag.ToString(), szWLLX = "";
string szBH = ultraCell.Column.Key;
DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szWLBM + "'");
if (rows.Length > 0)
{
szWLLX = rows[0]["MATERIELTYPE"].ToString();
//录入手投料消耗
ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szWLBM, szWLLX, frm._defaultValue,
ultraCell.Column.Key.ToString(), "2", ob);
}
}
}
}
}