using System;
using System.Collections;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.Net;
using System.Net.Sockets;
using System.Windows.Forms;
using Core.StlMes.Client.LgClassModel;
using CoreFS.CA06;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
using System.Collections.Generic;
using System.Linq;
using Core.Mes.Client.Comm.Server;
using Infragistics.Win.UltraWinEditors;
namespace Core.StlMes.Client.PnCost
{
///
/// 业务公用方法
///
public class ClsBusinessPack
{
public static ValueList GetValuelistBanci()
{
ValueList vlist = new ValueList();
try
{
//三班倒
vlist.ValueListItems.Add("1", "早班");
vlist.ValueListItems.Add("3", "夜班");
vlist.ValueListItems.Add("2", "中班");
}
catch { }
return vlist;
}
public static ValueList GetValuelistBanzu()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("1", "甲班");
vlist.ValueListItems.Add("2", "乙班");
vlist.ValueListItems.Add("3", "丙班");
vlist.ValueListItems.Add("4", "丁班");
vlist.ValueListItems.Add("5", "戊班");
}
catch { }
return vlist;
}
public static string GetLastHeatState(LG_PROCESS process)
{
switch (process)
{
case LG_PROCESS.EAF:
return "00";
case LG_PROCESS.LF:
return "10";
case LG_PROCESS.RH:
return "20";
case LG_PROCESS.VD:
return "30";
case LG_PROCESS.CCM:
return "40";
default:
return "";
}
}
public static int GetHeatState(LG_PROCESS process)
{
switch (process)
{
case LG_PROCESS.EAF:
return 10;
case LG_PROCESS.LF:
return 20;
case LG_PROCESS.RH:
return 30;
case LG_PROCESS.VD:
return 40;
case LG_PROCESS.CCM:
return 50;
default:
return 0;
}
}
public static string GetShiftClass(string strCode)
{
try
{
switch (strCode)
{
//三班倒
case "1":
return "白班";
case "3":
return "大夜";
case "2":
return "小夜";
default:
return "";
}
}
catch { }
return "";
}
public static string GetShiftClassByName(string strName)
{
try
{
switch (strName)
{
//三班倒
case "白班":
return "1";
case "大夜":
return "3";
case "小夜":
return "2";
default:
return "";
}
}
catch { }
return "";
}
public static string GetShiftGroup(string strCode)
{
try
{
switch (strCode)
{
case "1":
return "甲班";
case "2":
return "乙班";
case "3":
return "丙班";
case "4":
return "丁班";
default:
return "";
}
}
catch { }
return "";
}
public static string GetShiftGroupByName(string strName)
{
try
{
switch (strName)
{
case "甲班":
return "1";
case "乙班":
return "2";
case "丙班":
return "3";
case "丁班":
return "4";
default:
return "";
}
}
catch { }
return "";
}
private static DataTable GetCcmData()
{
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(System.String));
dt.Columns.Add("name", typeof(System.String));
dt.Rows.Add(new object[] { "1", "1#铸机" });
dt.Rows.Add(new object[] { "2", "2#铸机" });
dt.Rows.Add(new object[] { "3", "3#铸机" });
dt.Rows.Add(new object[] { "4", "4#铸机" });
dt.Rows.Add(new object[] { "5", "5#铸机" });
dt.AcceptChanges();
return dt;
}
///
/// 通过权限初始化产线
///
///
///
///
///
public static List InitDropPlinePower(string processCode, UltraComboEditor ugc, string[] validDataPurviewIds, OpeBase ob)
{
if (ob == null) return null;
var dt = GetPlineDataTable(processCode, validDataPurviewIds, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (ugc != null)
{
ugc.DataSource = dt;
ugc.ValueMember = "PLINE_CODE";
ugc.DisplayMember = "PLINE_NAME";
}
return dt.AsEnumerable().Select(p => p["PLINE_CODE"].ToString()).ToList();
}
else
{
return null;
}
}
///
/// 通过权限初始化产线
///
///
///
///
///
public static void InitDropPlinePower(string processCode, UltraComboEditor ugc, OpeBase ob)
{
if (ob == null) return ;
var dt = GetPlineDataTable(processCode, ob);
if (dt != null && dt.Rows.Count > 0)
{
if (ugc != null)
{
ugc.DataSource = dt;
ugc.ValueMember = "PLINE_CODE";
ugc.DisplayMember = "PLINE_NAME";
}
}
}
public static DataTable GetPlineDataTable(string processCode, string[] validDataPurviewIds, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("Core.LgMes.Server.LgDeviceManager.PerformanceManage.initPlinePower",
new object[] {processCode, validDataPurviewIds}, ob);
return dt;
}
public static DataTable GetPlineDataTable(string processCode, OpeBase ob)
{
DataTable dt = ServerHelper.GetData("Core.LgMes.Server.LgDeviceManager.PerformanceManage.initPlinePower",
new object[] { processCode }, ob);
return dt;
}
///
/// 获取当前班次、班组
///
/// 1返回班次,2返回班组,3返回班次班组
///
public static string GetCurrentClass(string blnBcBz,OpeBase ob)
{
string strClass = "";
try
{
string strErr = "";
bool bSuccess = false;
DataSet ds = ClsDataAccessPack.GetData("select mes_lg_common.getlgshift1(sysdate) from dual", out bSuccess, out strErr, ob);
if (ds != null && ds.Tables.Count > 0)
{
if (blnBcBz == "1")
strClass = ds.Tables[0].Rows[0][0].ToString().Substring(0, 1);
else if (blnBcBz == "2")
strClass = ds.Tables[0].Rows[0][0].ToString().Substring(1, 1);
else
strClass = ds.Tables[0].Rows[0][0].ToString();
}
}
catch
{ }
return strClass;
}
public static bool IsValidShiftClass(string strCode)
{
return (strCode.Equals("1") || strCode.Equals("2"));
}
public static bool IsValidShiftGroup(string strCode)
{
return (strCode.Equals("1") || strCode.Equals("2") || strCode.Equals("3") || strCode.Equals("4"));
}
public static ValueList GetValuelistMolirnLeave()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("BOF01", "1#转炉");
vlist.ValueListItems.Add("BOF02", "2#转炉");
vlist.ValueListItems.Add("BOF03", "3#转炉");
vlist.ValueListItems.Add("BOF04", "4#转炉");
vlist.ValueListItems.Add("BOF05", "5#转炉");
}
catch { }
return vlist;
}
public static ValueList GetValuelistIronSource()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("1", "混铁炉");
vlist.ValueListItems.Add("2", "脱硫");
//vlist.ValueListItems.Add("1", "脱硫");
//vlist.ValueListItems.Add("2", "混铁炉");
//vlist.ValueListItems.Add("3", "直兑");
//vlist.ValueListItems.Add("4", "高炉");
}
catch { }
return vlist;
}
public static ValueList GetValuelistLogic()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("1", "是");
vlist.ValueListItems.Add("0", "否");
vlist.ValueListItems.Add("", "否");
}
catch { }
return vlist;
}
public static ValueList GetValuelistMaterialType()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("FL", "辅料");
vlist.ValueListItems.Add("HJ", "合金");
vlist.ValueListItems.Add("WS", "喂丝");
vlist.ValueListItems.Add("BH", "保护渣");
}
catch { }
return vlist;
}
public static ValueList GetValuelistDigital(int iCount)
{
ValueList vlist = new ValueList();
try
{
if (iCount <= 0) return vlist;
for (int i = 0; i <= iCount; i++)
{
vlist.ValueListItems.Add(Convert.ToString(i), Convert.ToString(i));
}
}
catch { }
return vlist;
}
public static ValueList GetValuelistStation()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("B01", "1#预处理");
vlist.ValueListItems.Add("B02", "2#预处理");
vlist.ValueListItems.Add("C01", "1#转炉");
vlist.ValueListItems.Add("C02", "2#转炉");
vlist.ValueListItems.Add("C03", "3#转炉");
vlist.ValueListItems.Add("C04", "4#转炉");
vlist.ValueListItems.Add("C05", "5#转炉");
vlist.ValueListItems.Add("D01", "1#吹氩站");
vlist.ValueListItems.Add("D02", "2#吹氩站");
vlist.ValueListItems.Add("D03", "3#吹氩站");
vlist.ValueListItems.Add("D04", "4#吹氩站");
vlist.ValueListItems.Add("D05", "5#吹氩站");
vlist.ValueListItems.Add("E01", "1#LF炉");
vlist.ValueListItems.Add("E02", "2#LF炉");
vlist.ValueListItems.Add("E03", "3#LF炉");
vlist.ValueListItems.Add("G01", "1#铸机");
vlist.ValueListItems.Add("G02", "2#铸机");
vlist.ValueListItems.Add("G03", "3#铸机");
vlist.ValueListItems.Add("G04", "4#铸机");
vlist.ValueListItems.Add("G05", "5#铸机");
}
catch { }
return vlist;
}
public static ValueList GetValuelistSteelSource()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("GT", "高炉");
vlist.ValueListItems.Add("TS", "脱硫");
vlist.ValueListItems.Add("LD", "转炉");
vlist.ValueListItems.Add("AR", "吹氩");
vlist.ValueListItems.Add("LF", "LF炉");
vlist.ValueListItems.Add("CC", "成品");
vlist.ValueListItems.Add("ZP", "铸坯");
}
catch { }
return vlist;
}
public static ValueList GetValuelistShift()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("13", "夜-甲");
vlist.ValueListItems.Add("23", "夜-乙");
vlist.ValueListItems.Add("33", "夜-丙");
vlist.ValueListItems.Add("43", "夜-丁");
vlist.ValueListItems.Add("11", "早-甲");
vlist.ValueListItems.Add("21", "早-乙");
vlist.ValueListItems.Add("31", "早-丙");
vlist.ValueListItems.Add("41", "早-丁");
vlist.ValueListItems.Add("12", "中-甲");
vlist.ValueListItems.Add("22", "中-乙");
vlist.ValueListItems.Add("32", "中-丙");
vlist.ValueListItems.Add("42", "中-丁");
}
catch { }
return vlist;
}
public static ValueList GetValuelistSteel(OpeBase ob)
{
try
{
DataSet ds = ClsDataAccessPack.GetSteelInfo("", ob);
if (ds != null && ds.Tables.Count > 0)
{
DataTable table = ds.Tables[0];
ValueList vlist = GeneralValuelist(ref table, "STEELCODE", "STEEL");
return vlist;
}
}
catch { }
return null;
}
public static ValueList GetCutFinished()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("1", "已结炉");
vlist.ValueListItems.Add("0", "未结炉");
vlist.ValueListItems.Add("", "未结炉");
}
catch { }
return vlist;
}
public static ValueList GetIfBatchedZg()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("2", "坯料下线");
vlist.ValueListItems.Add("1", "已组批");
vlist.ValueListItems.Add("0", "未组批");
vlist.ValueListItems.Add("", "未知");
}
catch { }
return vlist;
}
public static ValueList GetCastingtype()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("2", "模铸");
vlist.ValueListItems.Add("1", "连铸");
vlist.ValueListItems.Add("0", "未知");
vlist.ValueListItems.Add("", "未知");
}
catch { }
return vlist;
}
public static ValueList GetGptype()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("2", "锻坯");
vlist.ValueListItems.Add("1", "铸坯");
vlist.ValueListItems.Add("0", "未知");
vlist.ValueListItems.Add("", "未知");
}
catch { }
return vlist;
}
public static ValueList GetSurplusflag()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("1", "余材");
vlist.ValueListItems.Add("0", "订单材");
vlist.ValueListItems.Add("", "未知");
}
catch { }
return vlist;
}
public static ValueList GetStatus()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("00", "编制中");
vlist.ValueListItems.Add("10", "已下发");
vlist.ValueListItems.Add("20", "生产中");
vlist.ValueListItems.Add("30", "已生产");
vlist.ValueListItems.Add("40", "关闭");
vlist.ValueListItems.Add("", "未知");
}
catch { }
return vlist;
}
public static ValueList GetHeatStatus()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("00", "初始");
vlist.ValueListItems.Add("10", "电炉执行中");
vlist.ValueListItems.Add("15", "电炉完成");
vlist.ValueListItems.Add("20", "LF炉执行中");
vlist.ValueListItems.Add("25", "LF炉完成");
vlist.ValueListItems.Add("30", "RH炉执行中");
vlist.ValueListItems.Add("35", "RH炉完成");
vlist.ValueListItems.Add("40", "VD炉执行中");
vlist.ValueListItems.Add("45", "VD炉完成");
vlist.ValueListItems.Add("50", "CCM执行中");
vlist.ValueListItems.Add("55", "CCM完成");
vlist.ValueListItems.Add("60", "切割");
vlist.ValueListItems.Add("", "未知");
}
catch { }
return vlist;
}
public static ValueList GetSurplusType()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("0", "组炉");
vlist.ValueListItems.Add("1", "生产超量");
vlist.ValueListItems.Add("2", "开浇加量");
vlist.ValueListItems.Add("3", "尾炉加量");
vlist.ValueListItems.Add("4", "连浇前炉加量");
vlist.ValueListItems.Add("5", "连浇后炉加量");
vlist.ValueListItems.Add("6", "补炉余材");
vlist.ValueListItems.Add("7", "改判");
vlist.ValueListItems.Add("", "");
}
catch { }
return vlist;
}
public static ValueList GetCcmState()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("00", "未切割完炉");
vlist.ValueListItems.Add("10", "切割完炉");
vlist.ValueListItems.Add("20", "表检完成");
vlist.ValueListItems.Add("30", "下线");
vlist.ValueListItems.Add("", "未知");
}
catch
{
}
return vlist;
}
public static ValueList GetValuelistBilletSection()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("150×150", "150×150");
vlist.ValueListItems.Add("165×165", "165×165");
}
catch { }
return vlist;
}
public static ValueList GetValuelistPotLevel()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("A", "A");
vlist.ValueListItems.Add("B", "B");
vlist.ValueListItems.Add("C", "C");
vlist.ValueListItems.Add("D", "D");
}
catch { }
return vlist;
}
public static ValueList GetValuelistIronSourceForBOF()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("1", "高炉铁水");
vlist.ValueListItems.Add("2", "脱硫铁水");
vlist.ValueListItems.Add("3", "混铁炉铁水");
}
catch { }
return vlist;
}
public static ValueList GetValuelistTeptForBOF(DataSet ds)
{
ValueList vlist = new ValueList();
try
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
vlist.ValueListItems.Add(dr["SAMPLINGVALUE"].ToString(), dr["SAMPLINGVALUE"].ToString());
}
}
catch { }
return vlist;
}
public static ValueList GetValuelistBlockSlagMode()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("A", "挡渣塞");
vlist.ValueListItems.Add("B", "挡渣帽");
vlist.ValueListItems.Add("C", "挡渣球");
vlist.ValueListItems.Add("AB", "挡渣塞和挡渣帽");
vlist.ValueListItems.Add("AC", "挡渣塞和挡渣球");
vlist.ValueListItems.Add("BC", "挡渣帽和挡渣球");
vlist.ValueListItems.Add("ABC", "挡渣塞和挡渣帽和挡渣球");
}
catch { }
return vlist;
}
public static ValueList GetValuelistBlockSlagEffect()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("1", "好");
vlist.ValueListItems.Add("2", "中");
vlist.ValueListItems.Add("3", "差");
}
catch { }
return vlist;
}
public static ValueList GetValuelistPotStatus()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("干净,包沿好", "干净,包沿好");
vlist.ValueListItems.Add("有渣子,包沿好", "有渣子,包沿好");
vlist.ValueListItems.Add("有包底小于0.5吨,包沿好", "有包底小于0.5吨,包沿好");
vlist.ValueListItems.Add("有包底0.5到1吨,包沿好", "有包底0.5到1吨,包沿好");
vlist.ValueListItems.Add("有包底1到2吨,包沿好", "有包底1到2吨,包沿好");
vlist.ValueListItems.Add("有包底2到3吨,包沿好", "有包底2到3吨,包沿好");
vlist.ValueListItems.Add("有包底大于3吨,包沿好", "有包底大于3吨,包沿好");
vlist.ValueListItems.Add("新包,包沿好", "新包,包沿好");
vlist.ValueListItems.Add("中修包,包沿好", "中修包,包沿好");
vlist.ValueListItems.Add("干净,包沿坏", "干净,包沿坏");
vlist.ValueListItems.Add("有渣子,包沿坏", "有渣子,包沿坏");
vlist.ValueListItems.Add("有包底小于0.5吨,包沿坏", "有包底小于0.5吨,包沿坏");
vlist.ValueListItems.Add("有包底0.5到1吨,包沿坏", "有包底0.5到1吨,包沿坏");
vlist.ValueListItems.Add("有包底1到2吨,包沿坏", "有包底1到2吨,包沿坏");
vlist.ValueListItems.Add("有包底2到3吨,包沿坏", "有包底2到3吨,包沿坏");
vlist.ValueListItems.Add("有包底大于3吨,包沿坏", "有包底大于3吨,包沿坏");
vlist.ValueListItems.Add("新包,包沿坏", "新包,包沿坏");
vlist.ValueListItems.Add("中修包,包沿坏", "中修包,包沿坏");
}
catch { }
return vlist;
}
///
/// 获取窗体工具栏信息
///
/// 窗体KEY
/// 窗体自定议参数
///
///
public static ToolStrip GetFromToolInfo(string strFromKey, string strCustominfo, OpeBase ob)
{
string strErr = "";
ToolStrip tool = new ToolStrip();
try
{
//获取指定岗位后台实时跟踪信息
DataSet ds = ClsDataAccessPack.GetFromToolInfo(strFromKey, strCustominfo, ob);
if (strErr == "" && ds != null)
{
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
ToolStripButton toolItem = new ToolStripButton();
string str = dr["CAPTION"].ToString();
toolItem.Name = dr["KEY"].ToString();
toolItem.Text = str;
toolItem.Enabled = true ;
toolItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
if (CoreImageList.IL_MAINTOOL_IMAGE_LARGE.ContainsKey(dr["IMAGE"].ToString()))
{
toolItem.Image = CoreImageList.IL_MAINTOOL_IMAGE_LARGE[dr["IMAGE"].ToString()] as Image;
}
tool.Items.Add(toolItem);
ToolStripSeparator sep = new ToolStripSeparator();
tool.Items.Add(sep);
}
tool.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(tool_ItemClicked);
}
}
}
catch (Exception ex)
{
}
return tool;
}
private static void tool_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
FrmBase fb = (sender as ToolStrip).Parent as FrmBase;
fb.ToolBar_Click(sender, e.ClickedItem.Name);
}
public static ValueList GetValuelistProtectiveSlag(OpeBase ob)
{
try
{
DataSet ds = ClsDataAccessPack.GetProtectiveSlag(ob);
if (ds != null && ds.Tables.Count > 0)
{
DataTable table = ds.Tables[0];
ValueList vlist = GeneralValuelist(ref table, "MATERIELCODE", "MATERIELNAME");
return vlist;
}
}
catch { }
return null;
}
public static ValueList GetBilletMeterWeight_Cool(OpeBase ob)
{
try
{
DataSet ds = ClsDataAccessPack.GetBilletMeterWeight(ob);
if (ds != null && ds.Tables.Count > 0)
{
DataTable table = ds.Tables[0];
ValueList vlist = GeneralValuelist(ref table, "SPEC", "CMW");
return vlist;
}
}
catch { }
return null;
}
public static ValueList GetBilletMeterWeight_Hot(OpeBase ob)
{
try
{
DataSet ds = ClsDataAccessPack.GetBilletMeterWeight(ob);
if (ds != null && ds.Tables.Count > 0)
{
DataTable table = ds.Tables[0];
ValueList vlist = GeneralValuelist(ref table, "SPEC", "HMW");
return vlist;
}
}
catch { }
return null;
}
public static ValueList GetValuelistSapMaterial(OpeBase ob)
{
try
{
DataSet ds = ClsDataAccessPack.GetSapMaterial(ob);
if (ds != null && ds.Tables.Count > 0)
{
DataTable table = ds.Tables[0];
ValueList vlist = GeneralValuelist(ref table, "FS_WLH", "FS_WLMS");
return vlist;
}
}
catch { }
return null;
}
public static string GetJobTableName(LG_PROCESS PROCESS)
{
switch (PROCESS)
{
case LG_PROCESS.HMP:
return "STL_HMP_OPTINFO";
case LG_PROCESS.EAF:
return "STL_EAF_OPTINFO";
case LG_PROCESS.BOF:
return "STL_BOF_OPTINFO";
case LG_PROCESS.CAS:
return "STL_CAS_OPTINFO";
case LG_PROCESS.LF:
return "STL_LFS_OPTINFO";
case LG_PROCESS.CCM:
return "STL_CCM_OPTINFO";
case LG_PROCESS.RH:
return "STL_RHS_OPTINFO";
case LG_PROCESS.VD:
return "STL_VDS_OPTINFO";
}
return "";
}
///
/// 设置时间间隔
///
/// 起始时间UltraGridCell
/// 终止时间UltraGridCell
/// 时间间隔UltraGridCell
public static void GetTimeSpanfromUI(UltraGridCell cellTimeFrom, UltraGridCell cellTimeTo, UltraGridCell cellTimeSpan)
{
try
{
if (cellTimeFrom == null || cellTimeTo == null || cellTimeSpan == null) return;
if (cellTimeFrom.Value == DBNull.Value)
{
cellTimeSpan.Value = "";
return;
}
DateTime dtFrom = Convert.ToDateTime(cellTimeFrom.Value);
DateTime dtTo = DateTime.Now;
if (cellTimeTo.Value != DBNull.Value)
dtTo = Convert.ToDateTime(cellTimeTo.Value);
cellTimeSpan.Value = ClsDataAccessPack.GetTimeSpan(dtFrom, dtTo);
}
catch
{
cellTimeSpan.Value = "";
}
}
///
/// 设置净重
///
/// 毛重UltraGridCell
/// 皮重UltraGridCell
/// 净重UltraGridCell
public static void GetNetWeightfromUI(UltraGridCell cellGrossWgt, UltraGridCell cellTareWgt, UltraGridCell cellNetWgt)
{
try
{
if (cellGrossWgt == null || cellTareWgt == null || cellNetWgt == null) return;
string strGrossWgt = Convert.ToString(cellGrossWgt.Text).Trim();
string strTareWgt = Convert.ToString(cellTareWgt.Text).Trim();
double dGrossWgt = 0.0, dTareWgt = 0.0;
if (!double.TryParse(strGrossWgt, out dGrossWgt))
{
cellNetWgt.Value = "";
return;
}
if (!double.TryParse(strTareWgt, out dTareWgt))
{
cellNetWgt.Value = "";
return;
}
cellNetWgt.Value = (dGrossWgt - dTareWgt).ToString("F2");
}
catch
{
cellNetWgt.Value = "";
}
}
///
/// 获取下道工序
///
/// 下道工序编码 如:LFS01_IDLE
/// 下道工序加热处理号 如:E010112F00032
///
///
public static bool GetNextPos(string HeatProcessNo, out string ObjectPos, out string ObjectID, out string strMsg, OpeBase ob)
{
ObjectPos = "";
ObjectID = "";
bool bSuccess = false;
object obj = ClsDataAccessPack.GetObject("Core.LgMes.Server.LgJobMgt.ClassManualOperate", "GetNextPos", new object[] { HeatProcessNo }, out bSuccess, out strMsg, ob);
if (!bSuccess) return false;
try
{
ArrayList alist = (ArrayList)obj;
if (alist == null || alist.Count != 2)
{
if (string.IsNullOrEmpty(strMsg)) strMsg = "下道工序信息获取失败!";
return false;
}
ObjectPos = Convert.ToString(alist[0]);
ObjectID = Convert.ToString(alist[1]);
if (string.IsNullOrEmpty(ObjectPos))
{
if (string.IsNullOrEmpty(strMsg)) strMsg = "下道工序信息为空!";
return false;
}
return true;
}
catch (Exception ex)
{
if (string.IsNullOrEmpty(strMsg)) strMsg = ex.Message;
return false;
}
}
///
/// 获取指定位置OBJECTID
///
///
///
///
///
public static string GetDesignatedObjectID(string ObjectPos, out bool bSuccess, out string strMsg, OpeBase ob)
{
bSuccess = false;
strMsg = "";
string SqlID = "GetObjectID.Select";
ArrayList Args = new ArrayList();
Args.Add(ObjectPos);
DataSet ds = ClsDataAccessPack.GetData(SqlID, Args, out bSuccess, out strMsg, ob);
if (bSuccess && ds != null && ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count == 0)
{
bSuccess = false;
strMsg = "指定位置【" + ObjectPos + "】信息不存在!";
return "";
}
return Convert.ToString(ds.Tables[0].Rows[0][0]);
}
return "";
}
///
/// 获取本机IP地址
///
///
public static string GetLocalMachineIP()
{
IPHostEntry myHost = new IPHostEntry();
myHost = Dns.GetHostEntry(Dns.GetHostName());
foreach (IPAddress addr in myHost.AddressList)
if (addr.AddressFamily == AddressFamily.InterNetwork) return addr.ToString();
return "";
}
///
/// 提示确认
///
///
///
public static bool QuestionConfirm(string strMsg)
{
if (MessageBox.Show(strMsg, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return false;
return true;
}
///
/// 手动操作执行后设置相关时间
///
///
///
///
public static void UpdateTimeNode(COM_STL_COMMAND csc, string heatProcessNo, OpeBase ob)
{
try
{
if (csc == null) return;
if (!HeatProccessNoValid(heatProcessNo)) return;
string TableName = GetTableName(heatProcessNo.Substring(0, 1), TableSort.Job);
string strNow = ClsDataAccessPack.GetSysdate(ob).ToString("yyyy-MM-dd HH:mm:ss");
if (!string.IsNullOrEmpty(csc.FILEDNAME01))
UpdateTableField(heatProcessNo, TableName, csc.FILEDNAME01, "DATE", strNow, ob);
if (!string.IsNullOrEmpty(csc.FILEDNAME02))
UpdateTableField(heatProcessNo, TableName, csc.FILEDNAME02, "DATE", strNow, ob);
if (!string.IsNullOrEmpty(csc.FILEDNAME03))
UpdateTableField(heatProcessNo, TableName, csc.FILEDNAME03, "DATE", strNow, ob);
}
catch { }
}
///
/// 作业界面获取相应岗位手动操作配置
///
/// ManualOperationCollection对象
///
public static void getCommandCollection(string strStationCode, CommandCollection CC, OpeBase ob)
{
string strProduceSys = ClsDataAccessPack.GetProduceSys(strStationCode, ob); //获取工序所属产线
strStationCode = strStationCode.Trim();
if (strStationCode.Length > 3) strStationCode = strStationCode.Substring(0, 3).ToUpper();
DataSet ds = ClsDataAccessPack.GetManualOperateConfig(strStationCode, strProduceSys, ob);
if (ds != null && ds.Tables.Count > 0)
{
if (CC != null) CC.Clear();
DataRow row = null;
COM_STL_COMMAND clc = null;
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
try
{
row = ds.Tables[0].Rows[i];
clc = new COM_STL_COMMAND();
clc.SetData(row);
CC.Add(clc);
}
catch { }
}
}
}
///
///验证加热处理号是否正确
///
///
///
public static bool HeatProccessNoValid(string heatProcessNo)
{
return (heatProcessNo.Length >= (int)OBJLEN.nHeatProcessNo);
}
///
/// 验证脱硫处理号是否正确
///
///
///
public static bool HudwProcessNoValid(string hudwProcessNo)
{
return (hudwProcessNo.Length >= (int)OBJLEN.nHudwProcessNo);
}
///
/// 获取熔炼号函数
///
///
///
public static string getSmeltingID(string heatProcessNo)
{
heatProcessNo = heatProcessNo.Trim();
if (heatProcessNo.Length < (int)OBJLEN.nHeatProcessNo) return "";
return heatProcessNo.Substring((int)OBJLEN.nHeatProcessNo - (int)OBJLEN.nHeatNo, (int)OBJLEN.nHeatNo);
}
///
/// 获取岗位字母编码
///
///
///
public static string getPostLetter(string heatProcessNo)
{
heatProcessNo = heatProcessNo.Trim();
if (heatProcessNo.Length < (int)OBJLEN.nDevStr) return "";
return heatProcessNo.Substring(0, (int)OBJLEN.nDevStr);
}
///
/// 获取岗位数字编码
///
///
///
public static string getStationCode(string heatProcessNo)
{
heatProcessNo = heatProcessNo.Trim();
if (heatProcessNo.Length < (int)OBJLEN.nDevStr + (int)OBJLEN.nDevCode) return "";
return heatProcessNo.Substring((int)OBJLEN.nDevStr, (int)OBJLEN.nDevCode);
}
///
/// 获取处理次数
///
///
///
public static string getDealTime(string heatProcessNo)
{
heatProcessNo = heatProcessNo.Trim();
if (heatProcessNo.Length < (int)OBJLEN.nDevStr + (int)OBJLEN.nDevCode + (int)OBJLEN.nDealTime) return "";
return heatProcessNo.Substring((int)OBJLEN.nDevStr + (int)OBJLEN.nDevCode, (int)OBJLEN.nDealTime);
}
///
/// 获取脱硫号函数
///
///
///
public static string getHudwIdID(string hudwProcessNo)
{
hudwProcessNo = hudwProcessNo.Trim();
if (hudwProcessNo.Length != (int)OBJLEN.nHudwProcessNo) return "";
return hudwProcessNo.Substring((int)OBJLEN.nHudwProcessNo - (int)OBJLEN.nHudwId, (int)OBJLEN.nHudwId);
}
/// i
/// 转换熔炼号为中间带-的化学检验号
///
///
///
public static string ConvertSmeltID(string SmeltID)
{
if (SmeltID.Trim().Equals(string.Empty))
return "";
string szStr = SmeltID.Substring(0, 3) + "-" + SmeltID.Substring(SmeltID.Length - 5);
return szStr;
}
///
///工艺代码转换成名称
///
/// 如:C、D 分别返回 转炉、吹氩站
///
public static string GetProccessChineseName(string strCode)
{
strCode = strCode.ToUpper().Trim();
if (strCode.Equals("A") || strCode.Equals("MIS")) return "混铁炉";
else if (strCode.Equals("B") || strCode.Equals("HMP")) return "脱硫站";
else if (strCode.Equals("C") || strCode.Equals("BOF")) return "转炉";
else if (strCode.Equals("D") || strCode.Equals("CAS")) return "吹氩站";
else if (strCode.Equals("E") || strCode.Equals("LFS")) return "LF炉";
else if (strCode.Equals("F") || strCode.Equals("RHS")) return "RH炉";
else if (strCode.Equals("I") || strCode.Equals("VDS")) return "VD炉";
else if (strCode.Equals("G") || strCode.Equals("CCM")) return "连铸机";
return "";
}
///
/// 获取设备全名
///
/// 如:C1、BOF01 都返回 E#转炉
///
public static string GetDeviceChineseName(string strCode)
{
strCode = strCode.ToUpper().Trim();
if (strCode.Equals("A1") || strCode.Equals("A01") || strCode.Equals("MIS01")) return "1#混铁炉";
else if (strCode.Equals("A2") || strCode.Equals("A02") || strCode.Equals("MIS02")) return "2#混铁炉";
else if (strCode.Equals("B1") || strCode.Equals("B01") || strCode.Equals("HMP01")) return "1#脱硫站";
else if (strCode.Equals("B2") || strCode.Equals("B02") || strCode.Equals("HMP02")) return "2#脱硫站";
else if (strCode.Equals("C1") || strCode.Equals("C01") || strCode.Equals("BOF01")) return "1#电炉";
else if (strCode.Equals("C2") || strCode.Equals("C02") || strCode.Equals("BOF02")) return "2#电炉";
else if (strCode.Equals("C3") || strCode.Equals("C03") || strCode.Equals("BOF03")) return "3#电炉";
else if (strCode.Equals("C4") || strCode.Equals("C04") || strCode.Equals("BOF04")) return "4#电炉";
else if (strCode.Equals("C5") || strCode.Equals("C05") || strCode.Equals("BOF05")) return "5#电炉";
else if (strCode.Equals("D1") || strCode.Equals("D01") || strCode.Equals("CAS01")) return "1#吹氩站";
else if (strCode.Equals("D2") || strCode.Equals("D02") || strCode.Equals("CAS02")) return "2#吹氩站";
else if (strCode.Equals("D3") || strCode.Equals("D03") || strCode.Equals("CAS03")) return "3#吹氩站";
else if (strCode.Equals("D4") || strCode.Equals("D04") || strCode.Equals("CAS04")) return "4#吹氩站";
else if (strCode.Equals("D5") || strCode.Equals("D05") || strCode.Equals("CAS05")) return "5#吹氩站";
else if (strCode.Equals("E1") || strCode.Equals("E01") || strCode.Equals("LFS01")) return "1#LF炉";
else if (strCode.Equals("E2") || strCode.Equals("E02") || strCode.Equals("LFS02")) return "2#LF炉";
else if (strCode.Equals("E3") || strCode.Equals("E03") || strCode.Equals("LFS03")) return "3#LF炉";
else if (strCode.Equals("F1") || strCode.Equals("F01") || strCode.Equals("RHS01")) return "1#RH炉";
else if (strCode.Equals("F2") || strCode.Equals("F02") || strCode.Equals("RHS02")) return "2#RH炉";
else if (strCode.Equals("F3") || strCode.Equals("F03") || strCode.Equals("RHS03")) return "3#RH炉";
else if (strCode.Equals("I1") || strCode.Equals("I01") || strCode.Equals("VDS01")) return "1#VD炉";
else if (strCode.Equals("I2") || strCode.Equals("I02") || strCode.Equals("VDS02")) return "2#VD炉";
else if (strCode.Equals("I3") || strCode.Equals("I03") || strCode.Equals("VDS03")) return "3#VD炉";
else if (strCode.Equals("G1") || strCode.Equals("G01") || strCode.Equals("CCM01")) return "1#铸机";
else if (strCode.Equals("G2") || strCode.Equals("G02") || strCode.Equals("CCM02")) return "2#铸机";
else if (strCode.Equals("G3") || strCode.Equals("G03") || strCode.Equals("CCM03")) return "3#铸机";
else if (strCode.Equals("G4") || strCode.Equals("G04") || strCode.Equals("CCM04")) return "4#铸机";
else if (strCode.Equals("G5") || strCode.Equals("G05") || strCode.Equals("CCM05")) return "5#铸机";
return "";
}
public static string analysChineseName(string _DEVICE_POSITION)
{
if (!string.IsNullOrEmpty(_DEVICE_POSITION.Trim()) && _DEVICE_POSITION.Trim().Length >= 3)
return GetProccessChineseName(_DEVICE_POSITION.Trim());
return "";
}
///
/// 获取设备编号
///
/// 如:C1、BOF01 都返回 E
///
public static string GetDeviceShortCode(string strCode)
{
strCode = strCode.ToUpper().Trim();
if (strCode.Equals("A1") || strCode.Equals("MIS01")) return "1";
else if (strCode.Equals("A2") || strCode.Equals("MIS02")) return "2";
else if (strCode.Equals("B1") || strCode.Equals("HMP01")) return "1";
else if (strCode.Equals("B2") || strCode.Equals("HMP02")) return "2";
else if (strCode.Equals("C1") || strCode.Equals("BOF01")) return "1";
else if (strCode.Equals("C2") || strCode.Equals("BOF02")) return "2";
else if (strCode.Equals("C3") || strCode.Equals("BOF03")) return "3";
else if (strCode.Equals("C4") || strCode.Equals("BOF04")) return "4";
else if (strCode.Equals("C5") || strCode.Equals("BOF05")) return "5";
else if (strCode.Equals("D1") || strCode.Equals("CAS01")) return "1";
else if (strCode.Equals("D2") || strCode.Equals("CAS02")) return "2";
else if (strCode.Equals("D3") || strCode.Equals("CAS03")) return "3";
else if (strCode.Equals("D4") || strCode.Equals("CAS04")) return "4";
else if (strCode.Equals("D5") || strCode.Equals("CAS05")) return "5";
else if (strCode.Equals("E1") || strCode.Equals("LFS01")) return "1";
else if (strCode.Equals("E2") || strCode.Equals("LFS02")) return "2";
else if (strCode.Equals("E3") || strCode.Equals("LFS03")) return "3";
else if (strCode.Equals("G1") || strCode.Equals("CCM01")) return "1";
else if (strCode.Equals("G2") || strCode.Equals("CCM02")) return "2";
else if (strCode.Equals("G3") || strCode.Equals("CCM03")) return "3";
else if (strCode.Equals("G4") || strCode.Equals("CCM04")) return "4";
else if (strCode.Equals("G5") || strCode.Equals("CCM05")) return "5";
return "";
}
///
/// 解析工艺路线
///
/// 工艺路线编码
///
public static string analysPlan_Lines(string strPlan_Lines)
{
string strLines = "";
strPlan_Lines = strPlan_Lines.Trim();
string strCode = "";
for (int i = 0; i < strPlan_Lines.Length; i++)
{
try
{
strCode = GetProccessChineseName(strPlan_Lines.Substring(i, 1));
if (string.IsNullOrEmpty(strCode)) continue;
strLines += (string.IsNullOrEmpty(strLines) ? "" : "→") + strCode;
}
catch { }
}
return strLines;
}
///
/// 解析作业路线
///
/// 作业路线代码
///
public static string analysPath(string craftPath)
{
string strPath = "";
craftPath = craftPath.Trim();
string strCode = "";
for (int i = 0; i < craftPath.Length; i += 2)
{
try
{
strCode = GetDeviceChineseName(craftPath.Substring(i, 2));
if (string.IsNullOrEmpty(strCode)) continue;
strPath += (string.IsNullOrEmpty(strPath) ? "" : "→") + strCode;
}
catch { }
}
return strPath;
}
///
/// 根据岗位号获取工序
///
/// 岗位编码:BOF01
/// 工序代码:C
public static string analysProcess(string _DEVICE_POSITION)
{
string strProcess = ""; //工序代码
if (!string.IsNullOrEmpty(_DEVICE_POSITION.Trim()) && _DEVICE_POSITION.Trim().Length >= 3)
{
switch (_DEVICE_POSITION.Trim().Substring(0, 3))
{
case "HMP":
strProcess = "B";
break;
case "EAF":
strProcess = "C";
break;
case "BOF":
strProcess = "C";
break;
case "CAS":
strProcess = "D";
break;
case "LFS":
strProcess = "E";
break;
case "RHS":
strProcess = "F";
break;
case "CCM":
strProcess = "G";
break;
case "VDS":
strProcess = "I";
break;
default:
break;
}
}
return strProcess;
}
///
/// 根据代码解析工位名
///
/// 岗位编码,BOF01_FRONT
/// 工位中文名
public static string analysPosName(string _DEVICE_POSITION)
{
string strChineseName = ""; //工序代码
string strPos = ""; //岗位
string strWsID = ""; //工位
if (!string.IsNullOrEmpty(_DEVICE_POSITION.Trim()))
{
strPos = _DEVICE_POSITION.Trim().Substring(0, 3).ToUpper();
strWsID = _DEVICE_POSITION.Trim().Substring(6).ToUpper();
switch (strWsID)
{
case "IDLE":
strChineseName = "缓冲位";
break;
case "FRONT":
if (strPos == "CAS") strChineseName = "等待位";
else if (strPos == "CCM") strChineseName = "换包位";
else if (strPos == "LFS" || strPos == "RHS") strChineseName = "1#小车位";
else if (strPos == "HMP") strChineseName = "小车位";
break;
case "DEVICE":
if (strPos == "BOF") strChineseName = "吹炼位";
else if (strPos == "CCM") strChineseName = "浇铸位";
else strChineseName = "处理位";
break;
case "BACK":
if (strPos == "BOF") strChineseName = "出钢位";
else strChineseName = "2#小车位";
break;
case "OVER":
strChineseName = "生产结束";
break;
default:
break;
}
}
return strChineseName;
}
///
/// 解析执行状态
///
/// 执行状态代码
///
public static string analysHeat_State(string heatState)
{
string strHeat_State = "";
if (!string.IsNullOrEmpty(heatState.Trim()))
{
switch (heatState.Trim())
{
case "03":
strHeat_State = "排产状态";
break;
case "04":
strHeat_State = "正在转炉";
break;
case "05":
strHeat_State = "正在吹氩";
break;
case "06":
strHeat_State = "正在LF炉";
break;
case "07":
strHeat_State = "正在RH炉";
break;
case "08":
strHeat_State = "正在VD炉";
break;
case "09":
strHeat_State = "正在连铸";
break;
case "10":
strHeat_State = "生产完成";
break;
default:
strHeat_State = "执行异常";
break;
}
}
return strHeat_State;
}
///
/// 解析成分编码
///
/// 成分编码
///
public static string ChemelementPath(string craftPath)
{
string path = "";
try
{
string StationCode = craftPath.Substring(0, 1);
switch (StationCode)
{
case "B":
path = "脱硫";
break;
case "C":
path = "转炉";
break;
case "D":
if (craftPath.Substring(0, 2) == "DQ")
path = "CAS前";
else if (craftPath.Substring(0, 2) == "DH")
path = "CAS后";
break;
case "E":
path = "LF炉";
break;
case "F":
path = "RH炉";
break;
case "I":
path = "VD炉";
break;
case "G":
path = "连铸";
break;
}
}
catch { }
return path;
}
public static DateTime GetServerDateTime(OpeBase ob)
{
string strErr = "";
bool bSuccess = false;
DataSet ds = ClsDataAccessPack.GetData("frmSysdate.select", new ArrayList { }, out bSuccess, out strErr, ob);
DateTime currTime = DateTime.Now;
if (strErr == "" && ds != null)
{
currTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["VDATE"]);
}
return currTime;
}
public static DateTime? GetLastOptionTime(OpeBase ob, LG_PROCESS Process)
{
string strErr = "";
bool bSuccess = false;
string sqlID = "";
switch (Process)
{
case LG_PROCESS.EAF:
sqlID = "SelectEafMaxEndTime.Select";
break;
case LG_PROCESS.LF:
sqlID = "SelectLfMaxEndTime.Select";
break;
case LG_PROCESS.VD:
sqlID = "SelectVdMaxEndTime.Select";
break;
case LG_PROCESS.RH:
sqlID = "SelectRhMaxEndTime.Select";
break;
case LG_PROCESS.CCM:
sqlID = "SelectCcmMaxEndTime.Select";
break;
default:
return null;
}
DataSet ds = ClsDataAccessPack.GetData(sqlID, new ArrayList { }, out bSuccess, out strErr, ob);
DateTime? currTime = null;
if (strErr == "" && ds != null)
{
currTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["VDATE"]);
}
return currTime;
}
#region 化学成分数据处理
public static void AppendTableRows(ref DataTable ATable, int newRowsCount)
{
string[] sTmp = new string[ATable.Columns.Count];
for (int i = 0; i < newRowsCount; i++)
ATable.Rows.Add(sTmp);
}
///
/// 设置化学元素实时值
///
///
///
///
///
public static void SetCraftElemGridData(int row, JOB_CHEMELEMENT obj, string key, ref DataTable dt)
{
try
{
if (row < dt.Rows.Count)
{
for (int i = 0; i < dt.Rows[row].ItemArray.Length; i++)
{
switch (dt.Columns[i].ColumnName)
{
case "TYPESYMBOL":
dt.Rows[row][i] = key;
break;
case "C":
dt.Rows[row][i] = obj.C;
break;
case "Si":
dt.Rows[row][i] = obj.SI;
break;
case "Mn":
dt.Rows[row][i] = obj.MN;
break;
case "P":
dt.Rows[row][i] = obj.P;
break;
case "S":
dt.Rows[row][i] = obj.S;
break;
case "Als":
dt.Rows[row][i] = obj.ALS;
break;
case "V":
dt.Rows[row][i] = obj.V;
break;
case "Nb":
dt.Rows[row][i] = obj.NB;
break;
case "Ti":
dt.Rows[row][i] = obj.TI;
break;
case "Ca":
dt.Rows[row][i] = obj.CA;
break;
case "B":
dt.Rows[row][i] = obj.B;
break;
case "Asn":
dt.Rows[row][i] = obj.ASN;
break;
case "Sn":
dt.Rows[row][i] = obj.SN;;
break;
case "Cu":
dt.Rows[row][i] = obj.CU;;
break;
case "Sb":
dt.Rows[row][i] = obj.SB ;
break;
case "Alt":
dt.Rows[row][i] = obj.ALT; ;
break;
case "Cr":
dt.Rows[row][i] = obj.CR; ;
break;
case "Ni":
dt.Rows[row][i] = obj.NI; ;
break;
case "Mo":
dt.Rows[row][i] = obj.MO; ;
break;
case "O":
dt.Rows[row][i] = obj.O; ;
break;
case "N":
dt.Rows[row][i] = obj.N; ;
break;
case "H":
dt.Rows[row][i] = obj.H; ;
break;
case "Ceq":
dt.Rows[row][i] = obj.CEQ; ;
break;
case "Pcm":
dt.Rows[row][i] = obj.PCM ; ;
break;
case "Cev":
dt.Rows[row][i] = obj.CEV; ;
break;
}
}
//dt.Rows[row]["TYPESYMBOL"] = key;
//dt.Rows[row]["C"] = obj.C;
//dt.Rows[row]["Si"] = obj.SI;
//dt.Rows[row]["Mn"] = obj.MN;
//dt.Rows[row]["P"] = obj.P;
//dt.Rows[row]["S"] = obj.S;
//dt.Rows[row]["Als"] = obj.ALS;
//dt.Rows[row]["V"] = obj.V;
//dt.Rows[row]["Nb"] = obj.NB;
//dt.Rows[row]["Ti"] = obj.TI;
//dt.Rows[row]["Ca"] = obj.CA;
//dt.Rows[row]["B"] = obj.B;
//dt.Rows[row]["Asn"] = obj.ASN;
//dt.Rows[row]["Sn"] = obj.SN;
//dt.Rows[row]["Cu"] = obj.CU;
//dt.Rows[row]["Sb"] = obj.SB;
//dt.Rows[row]["Alt"] = obj.ALT;
//dt.Rows[row]["Cr"] = obj.CR;
//dt.Rows[row]["Ni"] = obj.NI;
//dt.Rows[row]["Mo"] = obj.MO;
//dt.Rows[row]["O"] = obj.O;
//dt.Rows[row]["N"] = obj.N;
//dt.Rows[row]["H"] = obj.H;
//dt.Rows[row]["Ceq"] = obj.CEQ;
//dt.Rows[row]["Pcm"] = obj.PCM;
//dt.Rows[row]["Cev"] = obj.CEV;
}
//C、Si、Mn、P、S、Als、V、Nb、Ti、As、Sn、Cu、Sb、Alt、O、N、H
}
catch (Exception ex)
{
string Msg = ex.Message;
}
}
///
/// 设置元素标准值
///
/// 表行数
/// 行记录
/// 被设置的表
public static void SetStandardElemData(int row, DataRow dr, ref DataTable dt )
{
try
{
// 取得元素名称
string szEleName = dr["basename"].ToString();
dt.Rows[row]["TYPESYMBOL"] = dr["STD_DC"].ToString() == "1" ? "国标" : (dr["STD_DC"].ToString() == "2" ? "内控" : "客户");
if (dr["stdmax"].ToString() != "" && dr["stdmin"].ToString() != "")
dt.Rows[row][szEleName] = dr["stdmin"].ToString() + "~" + dr["stdmax"].ToString();
else if (dr["stdmax"].ToString() != "" && dr["stdmin"].ToString() == "")
dt.Rows[row][szEleName] = "≤ " + dr["stdmax"].ToString();
else if (dr["stdmax"].ToString() == "" && dr["stdmin"].ToString() != "")
dt.Rows[row][szEleName] = "> " + dr["stdmin"].ToString();
}
catch { }
}
///
/// 与标准值进行比对
///
/// 工艺标准表
/// 被填充数据源的表
/// 比对的编码
/// 被填充数据的GRID
/// 被填充的数据行
/// 岗位编码
public static void CompareStandard(DataTable dtStd, DataTable dtSource, string szCode, UltraGrid uGrd, int iRow)
{
if (dtStd != null && dtStd.Rows.Count > 0)
{
DataRow[] dr = null;
Decimal dZXZ = 0, dZDZ = 0, dVal = 0;
try
{
dr = dtStd.Select(" ITEM1 = '" + szCode + "'");
if (dr.Length > 0)
{
if (dr[0]["ITEM1MAX"].ToString() != "" && dr[0]["ITEM1MIN"].ToString() != "")
dtSource.Rows[iRow]["设定范围"] = dr[0]["ITEM1MIN"].ToString() + "-" + dr[0]["ITEM1MAX"].ToString();
else if (dr[0]["ITEM1MAX"].ToString() != "" && dr[0]["ITEM1MIN"].ToString() == "")
dtSource.Rows[iRow]["设定范围"] = "≤ " + dr[0]["ITEM1MAX"].ToString();
else if (dr[0]["ITEM1MAX"].ToString() == "" && dr[0]["ITEM1MIN"].ToString() != "")
dtSource.Rows[iRow]["设定范围"] = "> " + dr[0]["ITEM1MIN"].ToString();
if (!string.IsNullOrEmpty(dr[0]["ITEM1MIN"].ToString()))
dZXZ = Convert.ToDecimal(dr[0]["ITEM1MIN"]);
if (!string.IsNullOrEmpty(dr[0]["ITEM1MAX"].ToString()))
dZDZ = Convert.ToDecimal(dr[0]["ITEM1MAX"]);
//获取当前实际值
if (!string.IsNullOrEmpty(uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Value.ToString()))
dVal = Convert.ToDecimal(uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Value);
if ((dVal > 0) && (dVal < dZXZ))
uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Appearance.ForeColor = Color.Red; // 下限报警红色显示
else if ((dVal > 0) && (dVal > dZDZ) && dZDZ > 0)
uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Appearance.ForeColor = Color.Red; // 上限报警蓝色显示
else
uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Appearance.ForeColor = Color.Black;
}
}
catch { }
uGrd.Refresh();
}
}
///
/// 比较标准
///
/// 标准
/// 实际
/// 0正确 -1错误
public static int CompareSatandard(string strStandard, string strValue)
{
strStandard = strStandard.Trim();
strValue = strValue.Trim();
if (strValue.Length == 0 || strStandard.Length == 0)
return 0;
string strMin = "", strMax = "";
try
{
if (strStandard.IndexOf("~") > 0)
{
strMin = strStandard.Substring(0, strStandard.IndexOf("~")).Trim();
strMax = strStandard.Substring(strStandard.IndexOf("~") + 1).Trim();
if (decimal.Parse(strValue) >= decimal.Parse(strMin) &&
decimal.Parse(strValue) <= decimal.Parse(strMax))
{
return 0;
}
else
{
return -1;
}
}
else if (strStandard.IndexOf("<=") >= 0)
{
strMin = "";
strMax = strStandard.Substring(strStandard.IndexOf("<=") + 2).Trim();
if (decimal.Parse(strValue) <= decimal.Parse(strMax))
{
return 0;
}
else
{
return -1;
}
}
else if (strStandard.IndexOf(">=") >= 0)
{
strMin = strStandard.Substring(0, strStandard.IndexOf(">=")).Trim();
strMax = "";
if (decimal.Parse(strValue) >= decimal.Parse(strMin))
{
return 0;
}
else
{
return -1;
}
}
else if (strStandard.IndexOf("<") >= 0 && strStandard.IndexOf("=") == -1)
{
strMin = "";
strMax = strStandard.Substring(strStandard.IndexOf("<") + 1).Trim();
if (decimal.Parse(strValue) < decimal.Parse(strMax))
{
return 0;
}
else
{
return -1;
}
}
else if (strStandard.IndexOf(">") >= 0 && strStandard.IndexOf("=") == -1)
{
strMin = strStandard.Substring(0, strStandard.IndexOf(">")).Trim();
strMax = "";
if (decimal.Parse(strValue) > decimal.Parse(strMin))
{
return 0;
}
else
{
return -1;
}
}
else if (strStandard.IndexOf("=") >= 0)
{
strMin = "";
strMax = strStandard.Substring(strStandard.IndexOf("=") + 1).Trim();
if (decimal.Parse(strValue) == decimal.Parse(strMax))
{
return 0;
}
else
{
return -1;
}
}
}
catch { }
return 0;
}
#endregion
#region 温度处理
///
/// 设置温度实时值
///
///
public static void SetGridTemperature(DataTable tbl, string strItem, string strRange, string strValue, string strTime, int iRow)
{
try
{
if (tbl != null && tbl.Rows.Count >= iRow + 1)
{
tbl.Rows[iRow]["项目名"] = strItem;
tbl.Rows[iRow]["设定范围"] = strRange;
tbl.Rows[iRow]["实际值"] = strValue;
tbl.Rows[iRow]["采样时间"] = strTime;
}
}
catch (Exception ex)
{
Debug.Print(ex.Message);
}
}
#endregion
#region 作业界面数据手工修改
//跟据岗位获取数据库表名
public static string GetTableName(string _posCode, TableSort _tblSort)
{
string JobTableName = ""; //作业表名
string AddTableName = ""; //物料消耗
switch (_posCode)
{
case "B":
JobTableName = "STL_HMP_OPTINFO";
AddTableName = "STL_HMP_ADDITIVES";
break;
case "C":
JobTableName = "STL_BOF_OPTINFO";
AddTableName = "STL_BOF_ADDITIVES";
break;
case "D":
JobTableName = "STL_CAS_OPTINFO";
AddTableName = "STL_CAS_ADDITIVES";
break;
case "E":
JobTableName = "STL_LFS_OPTINFO";
AddTableName = "STL_LFS_ADDITIVES";
break;
case "G":
JobTableName = "STL_CCM_OPTINFO";
AddTableName = "STL_CCM_ADDITIVES";
break;
default:
break;
}
return (_tblSort == TableSort.Job ? JobTableName : AddTableName);
}
//时间显示框,在需要更改日期的时候弹出日期选择框
public static void SetCellDateTime(string _heatProcessNo, UltraGridCell _cell, OpeBase ob)
{
try
{
frmSetTime frm = new frmSetTime(_cell.Value);
frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
if (frm.ShowDialog() == DialogResult.OK)
{
string TableName = GetTableName(_heatProcessNo.Substring(0, 1), TableSort.Job);
DateTime Value = frm.SelectDate;
bool bSuccess = UpdateTableField(_heatProcessNo, TableName, _cell.Column.Key.ToString(), "DATE", Value.ToString("yyyy-MM-dd HH:mm:ss"), ob);
if (bSuccess) _cell.Value = Value;
}
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
//时间显示框,在需要更改日期的时候弹出日期选择框(脱硫)
public static void SetHmpCellDateTime(string _heatProcessNo, UltraGridCell _cell, OpeBase ob)
{
try
{
frmSetTime frm = new frmSetTime(_cell.Value);
frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
if (frm.ShowDialog() == DialogResult.OK)
{
string TableName = GetTableName(_heatProcessNo.Substring(0, 1), TableSort.Job);
DateTime Value = frm.SelectDate;
bool bSuccess = UpdateHmpTableField(_heatProcessNo, TableName, _cell.Column.Key.ToString(), "DATE", Value.ToString("yyyy-MM-dd HH:mm:ss"), ob);
if (bSuccess) _cell.Value = Value;
}
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
public static void UpdateTableField(string _heatProcessNo, UltraGridCell _cell, string _value, OpeBase ob)
{
if (_cell == null) return;
try
{
string strTableName = GetTableName(ClsBusinessPack.getPostLetter(_heatProcessNo), TableSort.Job);
string strColumnName = _cell.Column.Key.ToUpper();
if (UpdateTableField(_heatProcessNo, strTableName, strColumnName, "VARCHAR2", _value, ob)) _cell.Activated = false;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
public static void UpdateTableField_DTT(string _heatProcessNo, UltraGridCell _cell, string _value, OpeBase ob)
{
if (_cell == null) return;
try
{
string strTableName = GetTableName(ClsBusinessPack.getPostLetter(_heatProcessNo), TableSort.Job);
string strColumnName = _cell.Column.Key.ToUpper();
if (UpdateTableField(_heatProcessNo, strTableName, strColumnName, "DATE", _value, ob)) _cell.Activated = false;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
public static void UpdateTableField_NUM(string _heatProcessNo, UltraGridCell _cell, string _value, OpeBase ob)
{
if (_cell == null) return;
try
{
string strTableName = GetTableName(ClsBusinessPack.getPostLetter(_heatProcessNo), TableSort.Job);
string strColumnName = _cell.Column.Key.ToUpper();
if (UpdateTableField(_heatProcessNo, strTableName, strColumnName, "NUMBER", _value, ob)) _cell.Activated = false;
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
public static void UpdateTableField_NUM(string _heatProcessNo, UltraGridCell _cell, OpeBase ob)
{
if (_cell == null) return;
try
{
frmInputDecimal frm = new frmInputDecimal(Convert.ToString(_cell.Value));
frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
if (frm.ShowDialog() == DialogResult.OK)
{
if (!frm.ValueChanged) return;
UpdateTableField(_heatProcessNo, _cell, frm.Value, ob);
}
}
catch (Exception ex)
{
Trace.WriteLine(ex.Message);
}
}
///
/// 更新脱硫作业表字段信息
///
/// 加热处理号
/// 表名
/// 更新字段
/// 数据类型
/// 目标值
/// 服务端URL
public static bool UpdateHmpTableField(string _heatProcessNo, string strTableName, string strColumnName,
string strDataType, object Upt_Value, OpeBase ob)
{
string strSqlID = ""; //sqlId
string strErr = ""; //错误信息
bool bSuccess = false;
try
{
if (_heatProcessNo.Length == 0) return true;
strSqlID = "UpdateHMPTableField.Update"; //SQLID
Hashtable Args = new Hashtable();
Args.Add("I1", strTableName); //表名
Args.Add("I2", _heatProcessNo); //加热处理号
Args.Add("I3", strColumnName.ToUpper()); //列名
Args.Add("I4", strDataType); //数据类型
Args.Add("I5", Upt_Value.ToString()); //更新值
string strMsg = "";
bSuccess = ClsDataAccessPack.DoProcedure(strSqlID, Args, out strMsg, ob);
if (!bSuccess) MessageBox.Show("数据更新失败!\n" + strMsg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
catch (Exception ex)
{
if (!bSuccess) MessageBox.Show("数据更新出错!\n" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
return bSuccess;
}
//更新作业表字段信息
public static bool UpdateTableField(string _heatProcessNo, string _tableName, string _columnName, string _dataType, string _value, OpeBase ob)
{
bool bSuccess = false;
try
{
if (_heatProcessNo.Length == 0) return true;
string strHeatNo = ClsBusinessPack.getSmeltingID(_heatProcessNo);
string strStationCode = ClsBusinessPack.getStationCode(_heatProcessNo);
string strDealTime = ClsBusinessPack.getDealTime(_heatProcessNo);
string strSqlID = "UpdateTableField.Update";
Hashtable Args = new Hashtable();
Args.Add("I1", _tableName); //表名
Args.Add("I2", strHeatNo); //炉号
Args.Add("I3", strStationCode); //岗位
Args.Add("I4", strDealTime); //处理次数
Args.Add("I5", _columnName.ToUpper()); //列名
Args.Add("I6", _dataType.ToUpper()); //数据类型
Args.Add("I7", _value); //更新值
string strMsg = "";
bSuccess = ClsDataAccessPack.DoProcedure(strSqlID, Args, out strMsg, ob);
if (!bSuccess) MessageBox.Show("数据更新失败!\n" + strMsg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
catch (Exception ex)
{
if (!bSuccess) MessageBox.Show("数据更新出错!\n" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
return bSuccess;
}
#endregion
#region 物料消耗
public static DataSet GetHopperConfig(string DEVICE_POSITION, out bool bSuccess, out string strMsg, OpeBase ob)
{
strMsg = "";
bSuccess = false;
string strSql = "";
//strSql += Convert.ToString("select a.MSNUMID,").Trim() + " ";
//strSql += Convert.ToString(" a.MSLOCATION,").Trim() + " ";
//strSql += Convert.ToString(" a.MATERIELTYPE,").Trim() + " ";
//strSql += Convert.ToString(" a.MATERIELCODE,").Trim() + " ";
//strSql += Convert.ToString(" a.MATERIELUNITS,").Trim() + " ";
//strSql += Convert.ToString(" a.JMTYPE,").Trim() + " ";
//strSql += Convert.ToString(" b.MATERIELFORSHORT").Trim() + " ";
//strSql += Convert.ToString(" from STL_MATERIALCONFG a, COM_MATERIEL b").Trim() + " ";
//strSql += Convert.ToString(" where a.MATERIELCODE = b.MATERIELCODE(+)").Trim() + " ";
//strSql += Convert.ToString(" and a.MATERIELTYPE = b.MATERIELTYPE(+)").Trim() + " ";
//strSql += Convert.ToString(" and a.MSLOCATION = '" + DEVICE_POSITION + "'").Trim() + " ";
//strSql += Convert.ToString(" and (a.MATERIELTYPE = 'FL' or a.MATERIELTYPE = 'HJ' or").Trim() + " ";
//strSql += Convert.ToString(" a.MATERIELTYPE = 'WS')").Trim() + " ";
//strSql += Convert.ToString(" order by a.MATERIELTYPE, TO_NUMBER(MSNUMID)").Trim();
strSql = @"
SELECT A.MSNUMID,
A.MSLOCATION,
A.MATERIELTYPE,
A.MATERIELCODE,
A.MATERIELUNITS,
A.JMTYPE,
B.ITEM_NAME
FROM STL_MATERIALCONFG A, COST_BASE_METAL_TYPE B
WHERE A.MATERIELCODE = B.ITEM_CODE(+)
AND A.MSLOCATION = '{0}'
ORDER BY A.MATERIELTYPE, A.MSNUMID
";
strSql = string.Format(strSql, DEVICE_POSITION);
return ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob);
}
//查询作业手投料配置
public static DataSet GetManualAdditiveConfig(string DEVICE_POSITION, out bool bSuccess, out string strMsg, OpeBase ob)
{
strMsg = "";
bSuccess = false;
string strSql = "";
strSql += Convert.ToString("SELECT CONFGITEM, USEDLOCATION, USEDEXPLAIN, CONFGCODE").Trim() + " ";
strSql += Convert.ToString(" FROM STL_INTERFACECONFG").Trim() + " ";
strSql += Convert.ToString(" WHERE USEDLOCATION = 'STL'").Trim() + " ";
strSql += Convert.ToString(" AND CONFGITEM = '" + DEVICE_POSITION + "'").Trim();
return ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob);
}
public static bool SaveAdditiveData(string HeatProcessNo, string HopperID, string MaterielType, string MaterielCode, string Value, HopperCategory HpprCategory, out string strMsg, OpeBase ob)
{
strMsg = "";
bool bSuccess = false;
try
{
if (string.IsNullOrEmpty(HeatProcessNo))
{
strMsg = "加热处理号不能为空!";
return false;
}
if (string.IsNullOrEmpty(Value))
{
strMsg = "请输入消耗量!\n如果需要清空数据,请输入原有消耗量的负数。(如加料量为800,要清空此数值,请输入-800然后确认!)";
return false;
}
string TableName = ClsBusinessPack.GetTableName(HeatProcessNo.Substring(0, 1), TableSort.Feeding); //V1表名
string HeatNo = ClsBusinessPack.getSmeltingID(HeatProcessNo); //V5炉号
string FeedCategory = (HpprCategory == HopperCategory.Automatic ? "1" : "2"); //V7投料类型
string Memo = (HpprCategory == HopperCategory.Automatic ? "自动投料" : "手投料"); //V9投料说明
string StationCode = ClsBusinessPack.getStationCode(HeatProcessNo); //V10岗位编码
string DealTime = ClsBusinessPack.getDealTime(HeatProcessNo); //V11处理次数
string ProcedureID = "AddMaterialProc.INSERT";
Hashtable ht = new Hashtable();
ht.Add("I1", TableName); //表名
ht.Add("I2", HeatProcessNo); //加热处理号
ht.Add("I3", MaterielCode); //物料编码
ht.Add("I4", MaterielType); //物料类型
ht.Add("I5", HeatNo); //炉号
ht.Add("I6", Value); //物料消耗
ht.Add("I7", FeedCategory); //投料类型
ht.Add("I8", HopperID); //料仓编号
ht.Add("I9", Memo); //用途编码
ht.Add("I10", StationCode); //岗位
ht.Add("I11", DealTime); //处理次数
bSuccess = ClsDataAccessPack.DoProcedure(ProcedureID, ht, out strMsg, ob);
}
catch (Exception ex)
{
if (!bSuccess)
{
if (string.IsNullOrEmpty(strMsg)) strMsg = ex.Message;
}
}
return bSuccess;
}
public static bool SaveManulAdditiveConfig(string DEVICE_POSITION, string strOriginal, string strMaterielCode, string strPurposeCode, out string strMsg, OpeBase ob)
{
strMsg = "";
bool bSuccess = false;
try
{
string strOutValue = "";
string ProcedureID = "SwapHatHopper.Procedure"; //ProcedureID
Hashtable Args = new Hashtable();
Args.Add("I1", DEVICE_POSITION); //岗位
Args.Add("I2", "STL"); //投料类型
Args.Add("I3", strMaterielCode); //物料编码
Args.Add("I4", strOriginal); //原始物料编码
Args.Add("I5", strPurposeCode); //用途编码
Args.Add("O1", strOutValue); //输出
bSuccess = ClsDataAccessPack.DoProcedure(ProcedureID, Args, out strMsg, ob);
}
catch (Exception ex)
{
if (!bSuccess)
{
if (string.IsNullOrEmpty(strMsg)) strMsg = ex.Message;
}
}
return bSuccess;
}
#endregion
public static ValueList GetValuelistBOF()
{
ValueList vlist = new ValueList();
vlist.ValueListItems.Add("1", GetDeviceChineseName("C1"));
vlist.ValueListItems.Add("2", GetDeviceChineseName("C2"));
return vlist;
}
public static ValueList GetValuelistCCM()
{
ValueList vlist = new ValueList();
vlist.ValueListItems.Add("1", GetDeviceChineseName("G1"));
vlist.ValueListItems.Add("2", GetDeviceChineseName("G2"));
return vlist;
}
public static ValueList GeneralValuelist(ref Hashtable htbl)
{
if (htbl == null)
{
return null;
}
ArrayList alist = new ArrayList(htbl.Keys);
ValueList vlist = new ValueList();
for (int i = 0; i < alist.Count; i++)
{
try
{
if (htbl.Contains(alist[i]))
{
vlist.ValueListItems.Add(alist[i], Convert.ToString(htbl[alist[i]]));
}
}
catch { }
}
return vlist;
}
public static ValueList GeneralValuelist(ref DataTable table, string strKey, string strText)
{
if (table == null || !table.Columns.Contains(strKey) || !table.Columns.Contains(strText))
{
return null;
}
ArrayList alist = new ArrayList();
ValueList vlist = new ValueList();
for (int i = 0; i < table.Rows.Count; i++)
{
try
{
if (!alist.Contains(table.Rows[i][strKey]))
{
alist.Add(table.Rows[i][strKey]);
vlist.ValueListItems.Add(table.Rows[i][strKey], Convert.ToString(table.Rows[i][strText]));
}
}
catch { }
}
return vlist;
}
public static string GetBofStatus(string StateCode)
{
if (StateCode.Trim().ToUpper() == "HEAT")
return "炉次开始";
if (StateCode.Trim().ToUpper() == "SCRAPCHG")
return "加废钢";
else if (StateCode.Trim().ToUpper() == "CHARGING")
return "兑铁水";
else if (StateCode.Trim().ToUpper() == "BLOWINGBEGIN")
return "吹氧开始";
else if (StateCode.Trim().ToUpper() == "BLOWINGCLOSE")
return "吹氧结束";
else if (StateCode.Trim().ToUpper() == "TAPPINGBEGIN")
return "出钢开始";
else if (StateCode.Trim().ToUpper() == "TAPPINGCLOSE")
return "出钢结束";
else if (StateCode.Trim().ToUpper() == "SPRAYSLAGBEGIN")
return "溅渣开始";
else if (StateCode.Trim().ToUpper() == "SPRAYSLAGCLOSE")
return "溅渣结束";
else if (StateCode.Trim().ToUpper() == "IDLE")
return "炉次结束";
else if (StateCode.Trim().ToUpper() == "DESLAGINGBEGIN")
return "倒渣开始";
else if (StateCode.Trim().ToUpper() == "DESLAGINGCLOSE")
return "倒渣结束";
else if (StateCode.Trim().ToUpper() == "REPAIR")
return "检修状态";
else
return "";
}
public static void ResetTableRows(ref DataTable ATable, int newRowsCount)
{
int arows = Math.Abs(ATable.Rows.Count - newRowsCount);
string[] sTmp = new string[ATable.Columns.Count];
if (ATable.Rows.Count < newRowsCount)
{
for (int i = 0; i < arows; i++)
ATable.Rows.Add(sTmp);
}
else
{
for (int i = arows - 1; i >= 0; i--)
ATable.Rows[i].Delete();
}
}
}
///
/// 炼钢工序
///
public enum LG_PROCESS
{
HMP,
EAF,
BOF,
CAS,
LF,
CCM,
VD,
RH
}
public enum TableSort
{
///
/// 作业表
///
Job,
///
/// 加料表
///
Feeding
}
}