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