using System; using System.Collections; using System.Data; using System.Linq; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.LgClassModel; using Core.StlMes.Client.LgCommon; using CoreFS.CA06; namespace Core.StlMes.Client.LgResMgt { public class ClsResCcmBLL { public static Hashtable GetHashtableFromDataset(DataSet ds) { try { Hashtable htbl = new Hashtable(); if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) { DataRow row = ds.Tables[0].Rows[0]; DataColumn col = null; for (int i = 0; i < ds.Tables[0].Columns.Count; i++) { col = ds.Tables[0].Columns[i]; try { if (htbl.Contains(col.ColumnName.ToUpper())) htbl.Remove(col.ColumnName.ToUpper()); htbl.Add(col.ColumnName.ToUpper(), row[i]); } catch { } } } return htbl; } catch { } return null; } //查询连铸机工序操作记录表 public static StlCcmOptinfoEntity GetStlCcmOptinfoEntity(string strStoveNo, OpeBase ob, string stationcode) { try { var list = EntityHelper.GetData( "Core.LgMes.Server.LgDeviceManager.PerformanceManage.SelectStlCcmOptinfoEntity", new object[] { strStoveNo }, ob); if (list == null || list.Count <= 0) { return new StlCcmOptinfoEntity() { StoveNo = strStoveNo, Disposaltime = "01", Stationcode = stationcode }; } return list.FirstOrDefault(); } catch (Exception ex) { return new StlCcmOptinfoEntity() { StoveNo = strStoveNo }; } } public static Hashtable GetJobInfo(string strHeatProcessNo, string strStoveNo, OpeBase ob) { try { string strMsg = ""; bool bSuccess = false; //string strSql = "select * from stl_ccm_optinfo t where t.heatprocessno = '" + strHeatProcessNo + "' " // + "union all select * from j#stl_ccm_optinfo t where t.heatprocessno = '" + strHeatProcessNo + "' "; //strSql = "select a.*, b.fact_route from (" + strSql + ") a, ppc_steel_heat b where a.STOVE_NO = b.STOVE_NO(+)"; string strSql = @" SELECT A.*, B.AIM_STEEL_QTY, DECODE(B.IF_MONITOR_LG, '1', '监制', '不监制') MONITORFLAG, B.PLAN_ROUTE FROM (SELECT * FROM STL_CCM_OPTINFO T WHERE T.STOVE_NO = '{0}' UNION ALL SELECT * FROM J#STL_CCM_OPTINFO T WHERE T.STOVE_NO = '{0}') A LEFT JOIN PLN_STEELFORFURNACE B ON A.STOVE_NO = B.STOVE_NO LEFT JOIN PPC_STEEL_HEAT C ON A.STOVE_NO = C.STOVE_NO"; strSql = string.Format(strSql, strStoveNo); DataSet ds = ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob); if (ds.Tables[0].Rows.Count <= 0) { var rows = ds.Tables[0].NewRow(); rows["STOVE_NO"] = strStoveNo; ds.Tables[0].Rows.Add(rows); } Hashtable htbl = GetHashtableFromDataset(ds); return htbl; } catch { } return null; } //查询浇次信息 public static Hashtable GetCastInfo(string strCastNo, OpeBase ob) { try { string strMsg = ""; bool bSuccess = false; string strSql = "SELECT * FROM STL_CCM_MOULDINFO T WHERE T.MOULDNO = '" + strCastNo + "'"; DataSet ds = ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob); Hashtable htbl = GetHashtableFromDataset(ds); return htbl; } catch { } return null; } //手动温度的表 public static DataSet GetManualTempData(string HeatNo, string DisposalTime, int DEVICE_POS, OpeBase ob) { string strTableName = ""; if (DEVICE_POS == 1) strTableName = "STL_CCM_F1SAMPLING"; else if (DEVICE_POS == 2) strTableName = "STL_CCM_F2SAMPLING"; else if (DEVICE_POS == 3) strTableName = "STL_CCM_F3SAMPLING"; else if (DEVICE_POS == 4) strTableName = "STL_CCM_F4SAMPLING"; else if (DEVICE_POS == 5) strTableName = "STL_CCM_F5SAMPLING"; if (string.IsNullOrEmpty(strTableName)) return null; string strMsg = ""; bool bSuccess = false; string strSql = ""; strSql += Convert.ToString("SELECT *").Trim() + " "; strSql += Convert.ToString(" FROM (SELECT ROW_NUMBER() OVER(PARTITION BY T.TEMP ORDER BY T.SAMPLINGTIME) XH,").Trim() + " "; strSql += Convert.ToString(" T.*").Trim() + " "; strSql += Convert.ToString(" FROM (SELECT ROUND(T.MIDLADLETEMP) TEMP,").Trim() + " "; strSql += Convert.ToString(" T.S1CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" T.S2CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" T.S3CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" T.S4CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" T.S5CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" DECODE(T.S6CASTSPEED, 0, NULL, T.S6CASTSPEED) S6CASTSPEED,").Trim() + " "; // strSql += Convert.ToString(" DECODE(T.S7CASTSPEED, 0, NULL, T.S7CASTSPEED) S7CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" GREATEST(T.ARMLADLEAWEIGHT, T.ARMLADLEBWEIGHT) ARMBIGPOTTOTALWEIGHT,").Trim() + " "; strSql += Convert.ToString(" GREATEST(T.MIDLADLE1WEIGHT, T.MIDLADLE2WEIGHT) MIDLADLEWEIGHT,").Trim() + " "; strSql += Convert.ToString(" TO_CHAR(T.LASTFRESHTIME, 'YYYY-MM-DD HH24:MI:SS') SAMPLINGTIME").Trim() + " "; strSql += Convert.ToString(" FROM " + strTableName + " T").Trim() + " "; strSql += Convert.ToString(" WHERE T.HEATNO = '" + HeatNo + "'").Trim() + " "; strSql += Convert.ToString(" AND T.DISPOSALTIME = '" + DisposalTime + "'").Trim() + " "; strSql += Convert.ToString(" AND T.MIDLADLETEMP > 1390 AND T.MIDLADLETEMP < 1800 ").Trim() + " "; strSql += Convert.ToString(" UNION ALL").Trim() + " "; strSql += Convert.ToString(" SELECT ROUND(T.MIDLADLETEMP) TEMP,").Trim() + " "; strSql += Convert.ToString(" T.S1CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" T.S2CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" T.S3CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" T.S4CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" T.S5CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" DECODE(T.S6CASTSPEED, 0, NULL, T.S6CASTSPEED) S6CASTSPEED,").Trim() + " "; // strSql += Convert.ToString(" DECODE(T.S7CASTSPEED, 0, NULL, T.S7CASTSPEED) S7CASTSPEED,").Trim() + " "; strSql += Convert.ToString(" GREATEST(T.ARMLADLEAWEIGHT, T.ARMLADLEBWEIGHT) ARMBIGPOTTOTALWEIGHT,").Trim() + " "; strSql += Convert.ToString(" GREATEST(T.MIDLADLE1WEIGHT, T.MIDLADLE2WEIGHT) MIDLADLEWEIGHT,").Trim() + " "; strSql += Convert.ToString(" TO_CHAR(T.LASTFRESHTIME, 'YYYY-MM-DD HH24:MI:SS') SAMPLINGTIME").Trim() + " "; strSql += Convert.ToString(" FROM J#" + strTableName + " T").Trim() + " "; strSql += Convert.ToString(" WHERE T.HEATNO = '" + HeatNo + "'").Trim() + " "; strSql += Convert.ToString(" AND T.DISPOSALTIME = '" + DisposalTime + "'").Trim() + " "; strSql += Convert.ToString(" AND T.MIDLADLETEMP > 1390 AND T.MIDLADLETEMP < 1800 ) T)").Trim() + " "; strSql += Convert.ToString(" WHERE XH = 1 ORDER BY SAMPLINGTIME").Trim(); strSql = @" SELECT * FROM (SELECT ROW_NUMBER() OVER(PARTITION BY T.TEMP ORDER BY T.SAMPLINGTIME) XH, T.* FROM (SELECT ROUND(T.MIDLADLETEMP) TEMP, T.S1CASTSPEED, T.S2CASTSPEED, T.S3CASTSPEED, T.S4CASTSPEED, T.S5CASTSPEED, DECODE(T.S6CASTSPEED, 0, NULL, T.S6CASTSPEED) S6CASTSPEED, GREATEST(T.ARMLADLEAWEIGHT, T.ARMLADLEBWEIGHT) ARMBIGPOTTOTALWEIGHT, GREATEST(T.MIDLADLE1WEIGHT, T.MIDLADLE2WEIGHT) MIDLADLEWEIGHT, TO_CHAR(T.LASTFRESHTIME, 'YYYY-MM-DD HH24:MI:SS') SAMPLINGTIME FROM {0} T WHERE T.HEATNO = '{1}' AND T.DISPOSALTIME = '{2}' AND T.MIDLADLETEMP > 1390 AND T.MIDLADLETEMP < 1800) T) WHERE XH = 1 ORDER BY SAMPLINGTIME "; strSql = string.Format(strSql, strTableName, HeatNo, DisposalTime); DataSet ds = ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob); return ds; } } }