using System; using System.Collections; using System.Collections.Generic; using System.Data; using System.Reflection; using System.Runtime.InteropServices; using System.Text.RegularExpressions; using CoreFS.CA06; using CoreFS.SA06; namespace Core.StlMes.Client.LgCommon { /// /// 服务端访问公用类、基础数据公用获取方法 /// public class ClsDataAccessPack { #region 访问服务端 public static DataSet GetData(string Sql, out bool bSuccess, out string strMsg, OpeBase Ob) { try { CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "Core.LgMes.Server.Common.DBHelp"; ccp.MethodName = "GetData"; ccp.ServerParams = new object[] { Sql }; ccp = Ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; if (!string.IsNullOrEmpty(strMsg) || ccp.SourceDataTable == null) { bSuccess = false; return null; } DataSet ds = new DataSet(); ds.Tables.Add(ccp.SourceDataTable); bSuccess = true; return ds; } catch (Exception ex) { bSuccess = false; strMsg = ex.Message; return null; } } public static DataSet GetData(string SqlID, ArrayList Args, out bool bSuccess, out string strMsg, OpeBase Ob) { try { CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "Core.LgMes.Server.Common.DBHelp"; ccp.MethodName = "GetData"; ccp.ServerParams = new object[] { SqlID, Args }; ccp = Ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; if (!string.IsNullOrEmpty(strMsg) || ccp.SourceDataTable == null) { bSuccess = false; return null; } DataSet ds = new DataSet(); ds.Tables.Add(ccp.SourceDataTable); bSuccess = true; return ds; } catch (Exception ex) { bSuccess = false; strMsg = ex.Message; return null; } } public static bool SetData(string Sql, out string strMsg, OpeBase Ob) { try { CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "Core.LgMes.Server.Common.DBHelp"; ccp.MethodName = "SetData"; ccp.ServerParams = new object[] { Sql }; ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; } catch (Exception ex) { strMsg = ex.Message; } return string.IsNullOrEmpty(strMsg) ? true : false; } public static bool SetData(string SqlID, ArrayList Args, out string strMsg, OpeBase Ob) { try { CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = "Core.LgMes.Server.Common.DBHelp"; ccp.MethodName = "SetData"; ccp.ServerParams = new object[] { SqlID, Args }; ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; } catch (Exception ex) { strMsg = ex.Message; } return string.IsNullOrEmpty(strMsg) ? true : false; } public static bool DoProcedure(string ProcedureID, Hashtable Args, out string strMsg, OpeBase Ob) { strMsg = ""; CoreClientParam ccp = new CoreClientParam(); try { ccp.IfShowErrMsg = false; ccp.ServerName = "Core.LgMes.Server.Common.ComDBProcedure"; ccp.MethodName = "executeProcedure"; ccp.ServerParams = new object[] { ProcedureID, Args }; ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; } catch (Exception ex) { string strErr = (ccp == null ? "" : ccp.ReturnInfo); if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message; else strMsg = strErr; } if (string.IsNullOrEmpty(strMsg)) return true; else return false; } public static bool DoProcedure(string ProcedureID, object[] Args, out string strMsg, OpeBase Ob) { strMsg = ""; CoreClientParam ccp = new CoreClientParam(); try { ccp.IfShowErrMsg = false; ccp.ServerName = "Core.LgMes.Server.Common.ComDBProcedure"; ccp.MethodName = "ExecProcWithCollParam"; ccp.ServerParams = new object[] { ProcedureID, Args }; ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; } catch (Exception ex) { string strErr = (ccp == null ? "" : ccp.ReturnInfo); if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message; else strMsg = strErr; } if (string.IsNullOrEmpty(strMsg)) return true; else return false; } public static bool DoProcedure(string ProcedureID, ArrayList Args, out string strMsg, OpeBase Ob) { strMsg = ""; CoreClientParam ccp = new CoreClientParam(); try { ccp.IfShowErrMsg = false; ccp.ServerName = "Core.LgMes.Server.Common.ComDBProcedure"; ccp.MethodName = "ExecProcWithCollParam"; ccp.ServerParams = new object[] { ProcedureID, Args }; ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; } catch (Exception ex) { string strErr = (ccp == null ? "" : ccp.ReturnInfo); if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message; else strMsg = strErr; } if (string.IsNullOrEmpty(strMsg)) return true; else return false; } public static bool DoProcedure(string ProcedureName, object[] Args, out int iRet, out string strMsg, OpeBase Ob) { iRet = 0; strMsg = ""; CoreClientParam ccp = new CoreClientParam(); try { ccp.IfShowErrMsg = false; ccp.ServerName = "Core.LgMes.Server.Common.DBHelp"; ccp.MethodName = "DoProcedure"; ccp.ServerParams = new object[] { ProcedureName, Args }; ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); ArrayList result = (ArrayList)ccp.ReturnObject; iRet = Convert.ToInt32(result[2]); strMsg = Convert.ToString(result[3]); } catch (Exception ex) { string strErr = (ccp == null ? "" : ccp.ReturnInfo); iRet = iRet > 0 ? iRet : 0; if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message; else strMsg = strErr; } return (iRet > 0 ? true : false); } public static object GetObject(string ServerName, string MethodName, out bool bSuccess, out string strMsg, OpeBase Ob) { try { CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = ServerName; ccp.MethodName = MethodName; ccp.ServerParams = new object[] { }; ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; if (!string.IsNullOrEmpty(strMsg) || ccp.ReturnObject == null) { bSuccess = false; return null; } bSuccess = true; return ccp.ReturnObject; } catch (Exception ex) { bSuccess = false; strMsg = ex.Message; return null; } } public static object GetObject(string ServerName, string MethodName, object[] ServerParams, out bool bSuccess, out string strMsg, OpeBase Ob) { try { CoreClientParam ccp = new CoreClientParam(); ccp.IfShowErrMsg = false; ccp.ServerName = ServerName; ccp.MethodName = MethodName; ccp.ServerParams = (ServerParams == null ? new object[] { } : ServerParams); ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); strMsg = ccp.ReturnInfo; if (!string.IsNullOrEmpty(strMsg) || ccp.ReturnObject == null) { bSuccess = false; return null; } bSuccess = true; return ccp.ReturnObject; } catch (Exception ex) { bSuccess = false; strMsg = ex.Message; return null; } } #endregion #region Procedure Debug Code General public static string GetOracleDebugMethod(object[] ar) { string retstr = ""; Int32 num = 1; //获取数组类型存储过程的 数组调试参数 for (Int32 i = 0; i < ar.Length; i++) { if (ar[i] is ArrayList) { retstr = retstr + "v" + num.ToString() + " str_ary_type := new str_ary_type("; for (Int32 s = 0; s < ((ArrayList)ar[i]).Count; s++) { retstr = retstr + "'" + ((ArrayList)ar[i])[s] + "',"; } retstr = retstr.Substring(0, retstr.Length - 1) + ");\n"; num = num + 1; } else { retstr = retstr + "v" + num.ToString() + " varchar2(50):= '" + ar[i].ToString() + "';\n"; num = num + 1; } } return retstr; } #endregion public static bool IPAdrressValid(string IP) { string Segment = @"(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)"; return Regex.IsMatch(IP, ("^" + Segment + @"\." + Segment + @"\." + Segment + @"\." + Segment + "$")); } /// /// 获取物料基础信息 /// public static DataSet GetMaterialData(out bool bSuccess, out string strMsg, OpeBase ob) { bSuccess = false; strMsg = ""; DataSet ds = null; try { string SqlID = "GetMaterialDataSet.Select"; ArrayList Args = new ArrayList(); ds = ClsDataAccessPack.GetData(SqlID, Args, out bSuccess, out strMsg, ob); } catch { } return ds; } /// /// 获取当前班次 /// /// public static string GetCurrShift(OpeBase ob) { bool bSuccess = false; string strMsg = ""; string strSql = "select mes_lg_common.getlgshift1(sysdate) from dual"; //获取班次班别信息 DataSet ds = GetData(strSql, out bSuccess, out strMsg, ob); if (bSuccess && ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { return Convert.ToString(ds.Tables[0].Rows[0][0]); } return ""; } public static DateTime GetSysdate(OpeBase ob) { bool bSuccess = false; string strMsg = ""; string strSql = "select to_char(sysdate, 'yyyy-MM-dd HH24:mi:ss') TimeNow from dual"; DataSet ds = GetData(strSql, out bSuccess, out strMsg, ob); try { if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) return Convert.ToDateTime(ds.Tables[0].Rows[0][0].ToString()); } catch { } return DateTime.Now; } public static bool GetCurrShiftAndTime(out string Shift, out DateTime dtNow, OpeBase ob) { Shift = ""; dtNow = DateTime.Now; string strMsg = ""; bool bSuccess = false; string strSql = "select to_char(sysdate, 'yyyy-MM-dd HH24:mi:ss') TimeNow, mes_lg_common.getlgshift1(sysdate) Shift from dual"; DataSet ds = GetData(strSql, out bSuccess, out strMsg, ob); try { if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { Shift = Convert.ToString(ds.Tables[0].Rows[0]["SHIFT"]); dtNow = Convert.ToDateTime(ds.Tables[0].Rows[0]["TIMENOW"].ToString()); bSuccess = true; } } catch { dtNow = DateTime.Now; bSuccess = false; } return bSuccess; } /// /// 获取从界面调用其它界面工具栏信息 /// /// 窗体KEY /// 参数 /// /// public static DataSet GetFromToolInfo(string strFromKey, string strCustominfo, OpeBase ob) { bool bSuccess = false; string strMsg = ""; string strSql = ""; strSql += Convert.ToString("SELECT ID, KEY, CAPTION, IMAGE").Trim() + " "; strSql += Convert.ToString(" FROM core_app_function t").Trim() + " "; strSql += Convert.ToString(" WHERE PARENT_ID = (select max(ID) from core_app_function t where key ='" + strFromKey + "'").Trim() + " "; if (strCustominfo.Length > 0) strSql += Convert.ToString(" and custominfo = '" + strCustominfo + "' )").Trim() + " "; else strSql += Convert.ToString(" and custominfo is null )").Trim() + " "; strSql += Convert.ToString(" order by id").Trim(); return GetData(strSql, out bSuccess, out strMsg, ob); } //查询辅料配置信息表数据 public static DataSet GetProtectiveSlag(OpeBase ob) { bool bSuccess = false; string strMsg = ""; string strSql = ""; strSql += Convert.ToString("select *").Trim() + " "; strSql += Convert.ToString(" from com_materiel t").Trim() + " "; strSql += Convert.ToString(" where t.materieltype = 'BH'").Trim() + " "; strSql += Convert.ToString(" order by t.materielname").Trim(); return GetData(strSql, out bSuccess, out strMsg, ob); } public static DataSet GetBaseInfo(string strSortCode, OpeBase ob) { string strMsg = ""; bool bSuccess = false; string strSql = "select t.basecode, t.basename, t.sortcode" + " from com_base_info t" + " where 1 = 1" + " and t.sortcode in (" + strSortCode + ") " + " order by t.sortcode, t.basename"; return GetData(strSql, out bSuccess, out strMsg, ob); } //查询钢种 public static DataSet GetSteelInfo(string strLargeFlag, OpeBase ob) { bool bSuccess = false; string strMsg = ""; string strSql = ""; strSql += Convert.ToString("select t.gradecode steelcode, t.gradename steel, '' largeflag").Trim() + " "; strSql += Convert.ToString(" from COM_BASE_GRADE t").Trim() + " "; strSql += Convert.ToString(" where VALIDFLAG='1' ").Trim() + " "; strSql += Convert.ToString(" order by t.gradename").Trim(); return GetData(strSql, out bSuccess, out strMsg, ob); } public static DataSet GetChemElementInfo(string strChemList, string strWhere, OpeBase ob) { string strMsg = ""; bool bSuccess = false; string strSql = "select " + "a.CHECKNO, " + "a.HEATNO, " + "a.STEELNAME, " + "a.ASSAYDATE, " + "substr(a.SHIFTCODE, 2, 1) SHIFTCODE, " + "a.STATIONCODE, " + "a.ASSAYTYPECODE, " + strChemList + " " + "from " + "(" + "select * from STL_CHEMELEMENT t where 1 = 1 " + strWhere + " " + "union " + "select * from J#STL_CHEMELEMENT t where 1 = 1 " + strWhere + " " + ") a " + "ORDER BY HEATNO DESC, DECODE(ASSAYTYPECODE, 'GT', '1', 'TS', '2', 'LD', '3', 'AR', '4', 'LF', '5', 'CC', '6', '7'), CHECKNO DESC"; return GetData(strSql, out bSuccess, out strMsg, ob); } //查询化学成分 public static DataSet GetChemElementStandard(string HeatNo, OpeBase ob) { string strMsg = ""; bool bSuccess = false; string strSql = ""; strSql += Convert.ToString("select decode(t.stdstyle, '国标', '1', '内控', '2', '客户','3','') std_DC,").Trim() + " "; strSql += Convert.ToString(" t1.basename,").Trim() + " "; strSql += Convert.ToString(" case").Trim() + " "; strSql += Convert.ToString(" when t.minsign is not null and t.maxsign is not null then").Trim() + " "; strSql += Convert.ToString(" '~'").Trim() + " "; strSql += Convert.ToString(" when t.minsign is not null and t.maxsign is null then").Trim() + " "; strSql += Convert.ToString(" t.minsign").Trim() + " "; strSql += Convert.ToString(" when t.minsign is null and t.maxsign is not null then").Trim() + " "; strSql += Convert.ToString(" t.maxsign").Trim() + " "; strSql += Convert.ToString(" end Stdsign,").Trim() + " "; strSql += Convert.ToString(" t.minvalue stdmin,").Trim() + " "; strSql += Convert.ToString(" t.maxvalue stdmax,").Trim() + " "; strSql += Convert.ToString(" t.stdstyle Memo").Trim() + " "; strSql += Convert.ToString(" from ppc_steel_heat x, qcm_designresult_d t, COM_BASE_INFO t1").Trim() + " "; strSql += Convert.ToString(" where x.heatno = '" + HeatNo + "'").Trim() + " "; strSql += Convert.ToString(" and x.ord_gon_id = t.intent_orderno").Trim() + " "; strSql += Convert.ToString(" and t1.sortcode = '1006'").Trim() + " "; strSql += Convert.ToString(" and t.item = t1.basecode(+)").Trim() + " "; strSql += Convert.ToString(" order by decode(t.stdstyle, '国标', '1', '内控', '2','客户','3', '') desc, t.item").Trim(); return GetData(strSql, out bSuccess, out strMsg, ob); } public static DataSet GetBilletMeterWeight(OpeBase ob) { string strMsg = ""; bool bSuccess = false; string strSql = ""; strSql += Convert.ToString("select t.basename spec, t.memo1 cmw, t.remarks hmw").Trim() + " "; strSql += Convert.ToString(" from COM_BASE_INFO t").Trim() + " "; strSql += Convert.ToString(" where t.sortcode = '1014'").Trim(); return GetData(strSql, out bSuccess, out strMsg, ob); } public static DataSet GetBilletCutInfo(string strWhere, string strWhere1,string strWhere2 , OpeBase ob) { string strMsg = ""; bool bSuccess = false; string strSql = @" SELECT T.BILLETCODE, T.MAT_NO, T.STOVE_NO, T.CAST_NO, T.HEATCNT, T.HEAT_SEQ, T.CCMSTOVENO, T.CCMID, T.FLOWNO, T.CUTSEQNO, T.LENGTH, T.DIAMETER, --T.THICKNESS, T.WEIGHT, T.LASTBILLETFLAG, -- T.PLATETYPE, T.SHIFTCODE, T.FLAG, TO_CHAR(T.CUTTIME, 'yyyy-MM-dd hh24:mi:ss') CUTTIME, T.OPTPERSONNEL, --T.SPECRULE, T.L2FLAG, --T.RESFLAG, --T.CHILDBLOCKNO, T.ORDER_NO, T.GRADECODE, DECODE(NVL((SELECT CUTFINISHED FROM STL_HEATNO_ASSIST WHERE HEATNO = T.STOVE_NO AND CCMID = T.CCMID AND ROWNUM = 1), '0'), '1', '√') CONFIRMFLAG FROM (SELECT * FROM STL_INCISION {0} ) T, (SELECT * FROM (SELECT A.*, ROW_NUMBER() OVER(PARTITION BY A.STOVE_NO, A.STATIONCODE ORDER BY A.DISPOSALTIME ASC) XH FROM (SELECT * FROM STL_CCM_OPTINFO UNION SELECT * FROM J#STL_CCM_OPTINFO) A) WHERE XH < 2) T2 WHERE 1 = 1 AND T.STOVE_NO = T2.STOVE_NO(+) {1} ORDER BY MAT_NO DESC "; strSql = String.Format(strSql, strWhere, strWhere1); // strSql += Convert.ToString("select t.billetcode,").Trim() + " "; // strSql += Convert.ToString(" t.MAT_NO,").Trim() + " "; // strSql += Convert.ToString(" t.STOVE_NO,").Trim() + " "; // strSql += Convert.ToString(" t.CAST_NO,").Trim() + " "; // strSql += Convert.ToString(" t.heatcnt,").Trim() + " "; // strSql += Convert.ToString(" t.HEAT_SEQ,").Trim() + " "; // strSql += Convert.ToString(" t.ccmstoveno,").Trim() + " "; // strSql += Convert.ToString(" t.ccmid,").Trim() + " "; // strSql += Convert.ToString(" t.flowno,").Trim() + " "; // strSql += Convert.ToString(" t.cutseqno,").Trim() + " "; // strSql += Convert.ToString(" t.length,").Trim() + " "; // strSql += Convert.ToString(" t.width,").Trim() + " "; // // strSql += Convert.ToString(" t.thickness,").Trim() + " "; // strSql += Convert.ToString(" t.DIAMETER,").Trim() + " "; // strSql += Convert.ToString(" t.lastbilletflag,").Trim() + " "; // // strSql += Convert.ToString(" t.platetype,").Trim() + " "; // strSql += Convert.ToString(" t.shiftcode,").Trim() + " "; // strSql += Convert.ToString(" t.flag,").Trim() + " "; // strSql += Convert.ToString(" to_char(t.cuttime, 'yyyy-MM-dd hh24:mi:ss') cuttime,").Trim() + " "; // strSql += Convert.ToString(" t.optpersonnel,").Trim() + " "; // strSql += Convert.ToString(" t.specrule,").Trim() + " "; // strSql += Convert.ToString(" t.l2flag,").Trim() + " "; // strSql += Convert.ToString(" t.resflag,").Trim() + " "; // // strSql += Convert.ToString(" t.childblockno,").Trim() + " "; // strSql += Convert.ToString(" t.orderno,").Trim() + " "; // strSql += Convert.ToString(" t.steelcode,").Trim() + " "; // strSql += Convert.ToString(" 0 confirmflag").Trim() + " "; //// strSql += Convert.ToString(" nvl(t1.cutfinished, '0') confirmflag").Trim() + " "; // strSql += Convert.ToString(" from (select * from stl_incision " + strWhere + " ").Trim() + " "; // // strSql += Convert.ToString(" union").Trim() + " "; // // strSql += Convert.ToString(" select * from j#stl_incision " + strWhere + " ").Trim() + " "; // strSql += Convert.ToString(" ) t1,"); // // strSql += Convert.ToString(" (select * from stl_heatno_assist " + strWhere2 + ") t1,").Trim() + " "; // strSql += Convert.ToString(" (select * from ( select a.*, ").Trim() + " "; // strSql += Convert.ToString(" row_number() over(partition by a.heatno, a.stationcode order by a.disposaltime asc) xh ").Trim() + " "; // strSql += Convert.ToString(" from (select * from stl_ccm_optinfo union select * from j#stl_ccm_optinfo) a) where xh<2) t2").Trim() + " "; // strSql += Convert.ToString(" where 1=1 ").Trim() + " "; // //strSql += Convert.ToString(" where t.STOVE_NO = t1.STOVE_NO(+)").Trim() + " "; // strSql += Convert.ToString(" and t.STOVE_NO = t2.STOVE_NO(+)").Trim() + " " + strWhere1; // strSql += Convert.ToString(" order by MAT_NO desc").Trim(); return GetData(strSql, out bSuccess, out strMsg, ob); } public static DataSet GetSapMaterial(OpeBase ob) { string strMsg = ""; bool bSuccess = false; string strSql = ""; strSql += Convert.ToString("select t.matnr fs_wlh, t.maktx fs_wlms").Trim() + " "; strSql += Convert.ToString(" from sap_stlmes_materialinfo t").Trim() + " "; strSql += Convert.ToString(" where t.werks='8005' and (substr(t.matnr,1,2)='75' or substr(t.matnr,1,2)='74' )").Trim() + " "; strSql += Convert.ToString(" order by t.matnr").Trim(); return GetData(strSql, out bSuccess, out strMsg, ob); } /// /// 获取工序所属产线 /// /// 工序,如:BOF01,CAS01 /// /// public static string GetProduceSys(string strStationCode, OpeBase ob) { bool bSuccess = false; string strMsg = ""; string strSql = ""; strSql = "select T.PROCESSCODE, T.PROCESSNAME, T.PROCESSTYPE, T.PRODUCESYS" + " from com_processinfo t where t.processname = '" + strStationCode + "'"; DataSet ds = GetData(strSql, out bSuccess, out strMsg, ob); if (bSuccess && ds != null && ds.Tables.Count > 0) { if (ds.Tables[0].Rows.Count > 0) return ds.Tables[0].Rows[0]["PRODUCESYS"].ToString(); else return ""; } else return ""; } //查询温度表里的采样值 public static DataSet GetBofTept(OpeBase ob,string strHeatno) { string strMsg = ""; bool bSuccess = false; string strSql = ""; strSql += Convert.ToString("select x.samplingvalue from ").Trim() + " "; strSql += Convert.ToString(" (select distinct t.samplingvalue").Trim() + " "; strSql += Convert.ToString(" from STL_TEMPSAMPLING t").Trim() + " "; strSql += Convert.ToString(" where substr(t.stationcode, 0, 1) = 'C'").Trim() + " "; strSql += Convert.ToString(" and t.STOVE_NO = '" + strHeatno + "'").Trim() + " "; strSql += Convert.ToString(" union").Trim() + " "; strSql += Convert.ToString(" select distinct t.samplingvalue").Trim() + " "; strSql += Convert.ToString(" from J#STL_TEMPSAMPLING t").Trim() + " "; strSql += Convert.ToString(" where substr(t.stationcode, 0, 1) = 'C' ").Trim() + " "; strSql += Convert.ToString(" and t.STOVE_NO = '" + strHeatno + "') x ").Trim() + " "; strSql += Convert.ToString(" order by x.samplingvalue asc").Trim() + " "; return GetData(strSql, out bSuccess, out strMsg, ob); } /// /// 获取手动操作配置信息 /// /// 岗位编码:BOF /// /// public static DataSet GetManualOperateConfig(string strStationCode,string strProduceSys, OpeBase ob) { bool bSuccess = false; string strMsg = ""; string strSql = ""; strSql += Convert.ToString("select *").Trim() + " "; strSql += Convert.ToString(" from COM_STL_COMMAND t").Trim() + " "; strSql += Convert.ToString(" where t.stationcode = '" + strStationCode + "'").Trim() + " "; strSql += Convert.ToString(" and t.valid = '1'").Trim() + " "; strSql += Convert.ToString(" and ((t.optcommandtype = 'ASSIGNEDPOS' and t.producesys = '" + strProduceSys + "') or t.optcommandtype <> 'ASSIGNEDPOS' or (t.optcommandtype = 'ASSIGNEDPOS' and t.opttype='1') )").Trim() + " "; strSql += Convert.ToString(" order by t.opttype, t.sortid").Trim(); return GetData(strSql, out bSuccess, out strMsg, ob); } /// /// 获取物料消耗标准 /// /// public static DataTable GetJobStandardMateriel(OpeBase ob, string strSteelCode) { bool bSuccess = false; string strMsg = ""; string SqlID = "GetJobStandardMateriel.Select"; ArrayList Args = new ArrayList(); Args.Add(strSteelCode); DataSet ds = GetData(SqlID, Args, out bSuccess, out strMsg, ob); if (bSuccess && ds != null && ds.Tables.Count > 0) { return ds.Tables[0]; } return null; } /// /// 获取作业温度标准 /// /// public static DataTable GetJobStandardTemp(OpeBase ob, string strCraftCode, string _DEVICE_POSITION) { bool bSuccess = false; string strMsg = ""; string SqlID = "GetJobStandardTemp.Select"; ArrayList Args = new ArrayList(); Args.Add(strCraftCode); Args.Add(_DEVICE_POSITION); //获取作业温度标准 DataSet ds = GetData(SqlID, Args, out bSuccess, out strMsg, ob); if (bSuccess && ds != null && ds.Tables.Count > 0) { return ds.Tables[0]; } return null; } /// /// 时间计算返回分 /// /// /// /// public static int GetTotalMinutes(DateTime dtFrom, DateTime dtTo) { TimeSpan ts = new TimeSpan(0); if (dtTo > dtFrom) ts = dtTo - dtFrom; return Convert.ToInt32(ts.TotalMinutes); } /// /// 时间计算返回秒 /// /// /// /// public static int GetTotalSeconds(DateTime dtFrom, DateTime dtTo) { TimeSpan ts = new TimeSpan(0); if (dtTo > dtFrom) ts = dtTo - dtFrom; return Convert.ToInt32(ts.TotalSeconds); } /// /// 将秒转换成时间"0′0″ /// /// /// public static string GetTimeSpan(string Seconds) { try { Seconds = Seconds.Trim(); if (!string.IsNullOrEmpty(Seconds) && Seconds.Length > 0) { TimeSpan ts = new TimeSpan(0, 0, Convert.ToInt32(Seconds)); string strRet = ""; if (ts.Days > 0) strRet = ts.Days.ToString() + "d" + ts.Hours.ToString() + "°" + ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″"; else if (ts.Hours > 0) strRet = ts.Hours.ToString() + "°" + ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″"; else if (ts.Minutes > 0) strRet = ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″"; else if (ts.Seconds > 0) strRet = ts.Seconds.ToString() + "″"; else strRet = "0"; return strRet; } } catch { } return "0"; } /// /// 获取时间差"0′0″ /// /// /// /// public static string GetTimeSpan(DateTime dtFrom, DateTime dtTo) { TimeSpan ts = new TimeSpan(0); if (dtTo > dtFrom) ts = dtTo - dtFrom; string strRet = ""; if (ts.Days > 0) strRet = ts.Days.ToString() + "D " + ts.Hours.ToString() + "°" + ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″"; else if (ts.Hours > 0) strRet = ts.Hours.ToString() + "°" + ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″"; else if (ts.Minutes > 0) strRet = ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″"; else if (ts.Seconds > 0) strRet = ts.Seconds.ToString() + "″"; else strRet = "0"; return strRet; } /// /// 获取两个时间段的差值 /// /// /// /// public static int JudgeTime(DateTime startTime, DateTime endTime) { int lStayDuration = 0; TimeSpan odtSpan; if (endTime > startTime) { odtSpan = endTime - startTime; lStayDuration = Convert.ToInt32(System.Math.Round(odtSpan.TotalMinutes)); } return lStayDuration; } /// /// 验证数据有效性(Number) /// /// public static bool CheckNumValidate(string strVal) { decimal dValue = 0.0M; return decimal.TryParse(strVal, out dValue); } /// /// 验证数据有效性(Double) /// /// /// public static bool IsDouble(string AValue) { try { Convert.ToDouble(AValue); return true; } catch { return false; } } /// /// 将长整型转换浮点型 /// /// /// public static float LongToFloat(long lgValue) { float flValue = 0; try { if (lgValue >= 0) { byte[] btValue = ClsDataAccessPack.LongToHex(lgValue); flValue = ClsDataAccessPack.HexToFloat(btValue); } } catch { } return flValue; } private static unsafe byte[] LongToHex(long lValue) { long[] lValuePtr = new long[1]; int sizeOfValue = Marshal.SizeOf(typeof(long)); byte[] byteValue = new byte[sizeOfValue]; lValuePtr[0] = lValue; fixed (long* pTempValue = lValuePtr) { Marshal.Copy(new IntPtr(pTempValue), byteValue, 0, sizeOfValue); } return byteValue; } private static unsafe float HexToFloat(byte[] byteValue) { float[] fltValuePtr = new float[1]; int sizeOfValue = Marshal.SizeOf(typeof(float)); fixed (float* pTempValue = fltValuePtr) { Marshal.Copy(byteValue, 0, new IntPtr(pTempValue), sizeOfValue); } return fltValuePtr[0]; } } /// /// 枚举对象长度 /// public enum OBJLEN : int { /// /// 加热处理号长度 /// nHeatProcessNo = 13, /// /// 炉号长度 /// nHeatNo = 8, /// /// 岗位编码长度 /// nDevCode = 2, /// /// 处理次数长度 /// nDealTime = 2, /// /// 岗位编码字母长度 /// nDevStr = 1, /// /// 脱硫处理号 /// nHudwProcessNo = 14, /// /// 脱硫号 /// nHudwId = 9 } }