ClsDataAccessPack.cs 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.Data;
  5. using System.Reflection;
  6. using System.Runtime.InteropServices;
  7. using System.Text.RegularExpressions;
  8. using CoreFS.CA06;
  9. using CoreFS.SA06;
  10. namespace Core.StlMes.Client.PnCost
  11. {
  12. /// <summary>
  13. /// 服务端访问公用类、基础数据公用获取方法
  14. /// </summary>
  15. public class ClsDataAccessPack
  16. {
  17. #region 访问服务端
  18. public static DataSet GetData(string Sql, out bool bSuccess, out string strMsg, OpeBase Ob)
  19. {
  20. try
  21. {
  22. CoreClientParam ccp = new CoreClientParam();
  23. ccp.IfShowErrMsg = false;
  24. ccp.ServerName = "Core.LgMes.Server.Common.DBHelp";
  25. ccp.MethodName = "GetData";
  26. ccp.ServerParams = new object[] { Sql };
  27. ccp = Ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
  28. strMsg = ccp.ReturnInfo;
  29. if (!string.IsNullOrEmpty(strMsg) || ccp.SourceDataTable == null)
  30. {
  31. bSuccess = false;
  32. return null;
  33. }
  34. DataSet ds = new DataSet();
  35. ds.Tables.Add(ccp.SourceDataTable);
  36. bSuccess = true;
  37. return ds;
  38. }
  39. catch (Exception ex)
  40. {
  41. bSuccess = false;
  42. strMsg = ex.Message;
  43. return null;
  44. }
  45. }
  46. public static DataSet GetData(string SqlID, ArrayList Args, out bool bSuccess, out string strMsg, OpeBase Ob)
  47. {
  48. try
  49. {
  50. CoreClientParam ccp = new CoreClientParam();
  51. ccp.IfShowErrMsg = false;
  52. ccp.ServerName = "Core.LgMes.Server.Common.DBHelp";
  53. ccp.MethodName = "GetData";
  54. ccp.ServerParams = new object[] { SqlID, Args };
  55. ccp = Ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
  56. strMsg = ccp.ReturnInfo;
  57. if (!string.IsNullOrEmpty(strMsg) || ccp.SourceDataTable == null)
  58. {
  59. bSuccess = false;
  60. return null;
  61. }
  62. DataSet ds = new DataSet();
  63. ds.Tables.Add(ccp.SourceDataTable);
  64. bSuccess = true;
  65. return ds;
  66. }
  67. catch (Exception ex)
  68. {
  69. bSuccess = false;
  70. strMsg = ex.Message;
  71. return null;
  72. }
  73. }
  74. public static bool SetData(string Sql, out string strMsg, OpeBase Ob)
  75. {
  76. try
  77. {
  78. CoreClientParam ccp = new CoreClientParam();
  79. ccp.IfShowErrMsg = false;
  80. ccp.ServerName = "Core.LgMes.Server.Common.DBHelp";
  81. ccp.MethodName = "SetData";
  82. ccp.ServerParams = new object[] { Sql };
  83. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  84. strMsg = ccp.ReturnInfo;
  85. }
  86. catch (Exception ex)
  87. {
  88. strMsg = ex.Message;
  89. }
  90. return string.IsNullOrEmpty(strMsg) ? true : false;
  91. }
  92. public static bool SetData(string SqlID, ArrayList Args, out string strMsg, OpeBase Ob)
  93. {
  94. try
  95. {
  96. CoreClientParam ccp = new CoreClientParam();
  97. ccp.IfShowErrMsg = false;
  98. ccp.ServerName = "Core.LgMes.Server.Common.DBHelp";
  99. ccp.MethodName = "SetData";
  100. ccp.ServerParams = new object[] { SqlID, Args };
  101. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  102. strMsg = ccp.ReturnInfo;
  103. }
  104. catch (Exception ex)
  105. {
  106. strMsg = ex.Message;
  107. }
  108. return string.IsNullOrEmpty(strMsg) ? true : false;
  109. }
  110. public static bool DoProcedure(string ProcedureID, Hashtable Args, out string strMsg, OpeBase Ob)
  111. {
  112. strMsg = "";
  113. CoreClientParam ccp = new CoreClientParam();
  114. try
  115. {
  116. ccp.IfShowErrMsg = false;
  117. ccp.ServerName = "Core.LgMes.Server.Common.ComDBProcedure";
  118. ccp.MethodName = "executeProcedure";
  119. ccp.ServerParams = new object[] { ProcedureID, Args };
  120. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  121. strMsg = ccp.ReturnInfo;
  122. }
  123. catch (Exception ex)
  124. {
  125. string strErr = (ccp == null ? "" : ccp.ReturnInfo);
  126. if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message;
  127. else strMsg = strErr;
  128. }
  129. if (string.IsNullOrEmpty(strMsg)) return true;
  130. else return false;
  131. }
  132. public static bool DoProcedure(string ProcedureID, object[] Args, out string strMsg, OpeBase Ob)
  133. {
  134. strMsg = "";
  135. CoreClientParam ccp = new CoreClientParam();
  136. try
  137. {
  138. ccp.IfShowErrMsg = false;
  139. ccp.ServerName = "Core.LgMes.Server.Common.ComDBProcedure";
  140. ccp.MethodName = "ExecProcWithCollParam";
  141. ccp.ServerParams = new object[] { ProcedureID, Args };
  142. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  143. strMsg = ccp.ReturnInfo;
  144. }
  145. catch (Exception ex)
  146. {
  147. string strErr = (ccp == null ? "" : ccp.ReturnInfo);
  148. if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message;
  149. else strMsg = strErr;
  150. }
  151. if (string.IsNullOrEmpty(strMsg)) return true;
  152. else return false;
  153. }
  154. public static bool DoProcedure(string ProcedureID, ArrayList Args, out string strMsg, OpeBase Ob)
  155. {
  156. strMsg = "";
  157. CoreClientParam ccp = new CoreClientParam();
  158. try
  159. {
  160. ccp.IfShowErrMsg = false;
  161. ccp.ServerName = "Core.LgMes.Server.Common.ComDBProcedure";
  162. ccp.MethodName = "ExecProcWithCollParam";
  163. ccp.ServerParams = new object[] { ProcedureID, Args };
  164. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  165. strMsg = ccp.ReturnInfo;
  166. }
  167. catch (Exception ex)
  168. {
  169. string strErr = (ccp == null ? "" : ccp.ReturnInfo);
  170. if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message;
  171. else strMsg = strErr;
  172. }
  173. if (string.IsNullOrEmpty(strMsg)) return true;
  174. else return false;
  175. }
  176. public static bool DoProcedure(string ProcedureName, object[] Args, out int iRet, out string strMsg, OpeBase Ob)
  177. {
  178. iRet = 0;
  179. strMsg = "";
  180. CoreClientParam ccp = new CoreClientParam();
  181. try
  182. {
  183. ccp.IfShowErrMsg = false;
  184. ccp.ServerName = "Core.LgMes.Server.Common.DBHelp";
  185. ccp.MethodName = "DoProcedure";
  186. ccp.ServerParams = new object[] { ProcedureName, Args };
  187. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  188. ArrayList result = (ArrayList)ccp.ReturnObject;
  189. iRet = Convert.ToInt32(result[2]);
  190. strMsg = Convert.ToString(result[3]);
  191. }
  192. catch (Exception ex)
  193. {
  194. string strErr = (ccp == null ? "" : ccp.ReturnInfo);
  195. iRet = iRet > 0 ? iRet : 0;
  196. if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message;
  197. else strMsg = strErr;
  198. }
  199. return (iRet > 0 ? true : false);
  200. }
  201. public static object GetObject(string ServerName, string MethodName, out bool bSuccess, out string strMsg, OpeBase Ob)
  202. {
  203. try
  204. {
  205. CoreClientParam ccp = new CoreClientParam();
  206. ccp.IfShowErrMsg = false;
  207. ccp.ServerName = ServerName;
  208. ccp.MethodName = MethodName;
  209. ccp.ServerParams = new object[] { };
  210. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  211. strMsg = ccp.ReturnInfo;
  212. if (!string.IsNullOrEmpty(strMsg) || ccp.ReturnObject == null)
  213. {
  214. bSuccess = false;
  215. return null;
  216. }
  217. bSuccess = true;
  218. return ccp.ReturnObject;
  219. }
  220. catch (Exception ex)
  221. {
  222. bSuccess = false;
  223. strMsg = ex.Message;
  224. return null;
  225. }
  226. }
  227. public static object GetObject(string ServerName, string MethodName, object[] ServerParams, out bool bSuccess, out string strMsg, OpeBase Ob)
  228. {
  229. try
  230. {
  231. CoreClientParam ccp = new CoreClientParam();
  232. ccp.IfShowErrMsg = false;
  233. ccp.ServerName = ServerName;
  234. ccp.MethodName = MethodName;
  235. ccp.ServerParams = (ServerParams == null ? new object[] { } : ServerParams);
  236. ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  237. strMsg = ccp.ReturnInfo;
  238. if (!string.IsNullOrEmpty(strMsg) || ccp.ReturnObject == null)
  239. {
  240. bSuccess = false;
  241. return null;
  242. }
  243. bSuccess = true;
  244. return ccp.ReturnObject;
  245. }
  246. catch (Exception ex)
  247. {
  248. bSuccess = false;
  249. strMsg = ex.Message;
  250. return null;
  251. }
  252. }
  253. #endregion
  254. #region Procedure Debug Code General
  255. public static string GetOracleDebugMethod(object[] ar)
  256. {
  257. string retstr = "";
  258. Int32 num = 1;
  259. //获取数组类型存储过程的 数组调试参数
  260. for (Int32 i = 0; i < ar.Length; i++)
  261. {
  262. if (ar[i] is ArrayList)
  263. {
  264. retstr = retstr + "v" + num.ToString() + " str_ary_type := new str_ary_type(";
  265. for (Int32 s = 0; s < ((ArrayList)ar[i]).Count; s++)
  266. {
  267. retstr = retstr + "'" + ((ArrayList)ar[i])[s] + "',";
  268. }
  269. retstr = retstr.Substring(0, retstr.Length - 1) + ");\n";
  270. num = num + 1;
  271. }
  272. else
  273. {
  274. retstr = retstr + "v" + num.ToString() + " varchar2(50):= '" + ar[i].ToString() + "';\n";
  275. num = num + 1;
  276. }
  277. }
  278. return retstr;
  279. }
  280. #endregion
  281. public static bool IPAdrressValid(string IP)
  282. {
  283. string Segment = @"(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)";
  284. return Regex.IsMatch(IP, ("^" + Segment + @"\." + Segment + @"\." + Segment + @"\." + Segment + "$"));
  285. }
  286. /// <summary>
  287. /// 获取物料基础信息
  288. /// </summary>
  289. public static DataSet GetMaterialData(out bool bSuccess, out string strMsg, OpeBase ob)
  290. {
  291. bSuccess = false;
  292. strMsg = "";
  293. DataSet ds = null;
  294. try
  295. {
  296. string SqlID = "GetMaterialDataSet.Select";
  297. ArrayList Args = new ArrayList();
  298. ds = ClsDataAccessPack.GetData(SqlID, Args, out bSuccess, out strMsg, ob);
  299. }
  300. catch { }
  301. return ds;
  302. }
  303. /// <summary>
  304. /// 获取当前班次
  305. /// </summary>
  306. /// <returns></returns>
  307. public static string GetCurrShift(OpeBase ob)
  308. {
  309. bool bSuccess = false;
  310. string strMsg = "";
  311. string strSql = "select mes_lg_common.getlgshift1(sysdate) from dual";
  312. //获取班次班别信息
  313. DataSet ds = GetData(strSql, out bSuccess, out strMsg, ob);
  314. if (bSuccess && ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  315. {
  316. return Convert.ToString(ds.Tables[0].Rows[0][0]);
  317. }
  318. return "";
  319. }
  320. public static DateTime GetSysdate(OpeBase ob)
  321. {
  322. bool bSuccess = false;
  323. string strMsg = "";
  324. string strSql = "select to_char(sysdate, 'yyyy-MM-dd HH24:mi:ss') TimeNow from dual";
  325. DataSet ds = GetData(strSql, out bSuccess, out strMsg, ob);
  326. try
  327. {
  328. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0) return Convert.ToDateTime(ds.Tables[0].Rows[0][0].ToString());
  329. }
  330. catch { }
  331. return DateTime.Now;
  332. }
  333. public static bool GetCurrShiftAndTime(out string Shift, out DateTime dtNow, OpeBase ob)
  334. {
  335. Shift = "";
  336. dtNow = DateTime.Now;
  337. string strMsg = "";
  338. bool bSuccess = false;
  339. string strSql = "select to_char(sysdate, 'yyyy-MM-dd HH24:mi:ss') TimeNow, mes_lg_common.getlgshift1(sysdate) Shift from dual";
  340. DataSet ds = GetData(strSql, out bSuccess, out strMsg, ob);
  341. try
  342. {
  343. if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
  344. {
  345. Shift = Convert.ToString(ds.Tables[0].Rows[0]["SHIFT"]);
  346. dtNow = Convert.ToDateTime(ds.Tables[0].Rows[0]["TIMENOW"].ToString());
  347. bSuccess = true;
  348. }
  349. }
  350. catch
  351. {
  352. dtNow = DateTime.Now;
  353. bSuccess = false;
  354. }
  355. return bSuccess;
  356. }
  357. /// <summary>
  358. /// 获取从界面调用其它界面工具栏信息
  359. /// </summary>
  360. /// <param name="strFromKey">窗体KEY</param>
  361. /// <param name="strCustominfo">参数</param>
  362. /// <param name="ob"></param>
  363. /// <returns></returns>
  364. public static DataSet GetFromToolInfo(string strFromKey, string strCustominfo, OpeBase ob)
  365. {
  366. bool bSuccess = false;
  367. string strMsg = "";
  368. string strSql = "";
  369. strSql += Convert.ToString("SELECT ID, KEY, CAPTION, IMAGE").Trim() + " ";
  370. strSql += Convert.ToString(" FROM core_app_function t").Trim() + " ";
  371. strSql += Convert.ToString(" WHERE PARENT_ID = (select max(ID) from core_app_function t where key ='" + strFromKey + "'").Trim() + " ";
  372. if (strCustominfo.Length > 0)
  373. strSql += Convert.ToString(" and custominfo = '" + strCustominfo + "' )").Trim() + " ";
  374. else
  375. strSql += Convert.ToString(" and custominfo is null )").Trim() + " ";
  376. strSql += Convert.ToString(" order by id").Trim();
  377. return GetData(strSql, out bSuccess, out strMsg, ob);
  378. }
  379. //查询辅料配置信息表数据
  380. public static DataSet GetProtectiveSlag(OpeBase ob)
  381. {
  382. bool bSuccess = false;
  383. string strMsg = "";
  384. string strSql = "";
  385. strSql += Convert.ToString("select *").Trim() + " ";
  386. strSql += Convert.ToString(" from com_materiel t").Trim() + " ";
  387. strSql += Convert.ToString(" where t.materieltype = 'BH'").Trim() + " ";
  388. strSql += Convert.ToString(" order by t.materielname").Trim();
  389. return GetData(strSql, out bSuccess, out strMsg, ob);
  390. }
  391. public static DataSet GetBaseInfo(string strSortCode, OpeBase ob)
  392. {
  393. string strMsg = "";
  394. bool bSuccess = false;
  395. string strSql = "select t.basecode, t.basename, t.sortcode"
  396. + " from com_base_info t"
  397. + " where 1 = 1"
  398. + " and t.sortcode in (" + strSortCode + ") "
  399. + " order by t.sortcode, t.basename";
  400. return GetData(strSql, out bSuccess, out strMsg, ob);
  401. }
  402. //查询钢种
  403. public static DataSet GetSteelInfo(string strLargeFlag, OpeBase ob)
  404. {
  405. bool bSuccess = false;
  406. string strMsg = "";
  407. string strSql = "";
  408. strSql += Convert.ToString("select t.gradecode steelcode, t.gradename steel, '' largeflag").Trim() + " ";
  409. strSql += Convert.ToString(" from COM_BASE_GRADE t").Trim() + " ";
  410. strSql += Convert.ToString(" where VALIDFLAG='1' ").Trim() + " ";
  411. strSql += Convert.ToString(" order by t.gradename").Trim();
  412. return GetData(strSql, out bSuccess, out strMsg, ob);
  413. }
  414. public static DataSet GetChemElementInfo(string strChemList, string strWhere, OpeBase ob)
  415. {
  416. string strMsg = "";
  417. bool bSuccess = false;
  418. string strSql = "select "
  419. + "a.CHECKNO, "
  420. + "a.HEATNO, "
  421. + "a.STEELNAME, "
  422. + "a.ASSAYDATE, "
  423. + "substr(a.SHIFTCODE, 2, 1) SHIFTCODE, "
  424. + "a.STATIONCODE, "
  425. + "a.ASSAYTYPECODE, "
  426. + strChemList + " "
  427. + "from "
  428. + "("
  429. + "select * from STL_CHEMELEMENT t where 1 = 1 " + strWhere + " "
  430. + "union "
  431. + "select * from J#STL_CHEMELEMENT t where 1 = 1 " + strWhere + " "
  432. + ") a "
  433. + "ORDER BY HEATNO DESC, DECODE(ASSAYTYPECODE, 'GT', '1', 'TS', '2', 'LD', '3', 'AR', '4', 'LF', '5', 'CC', '6', '7'), CHECKNO DESC";
  434. return GetData(strSql, out bSuccess, out strMsg, ob);
  435. }
  436. //查询化学成分
  437. public static DataSet GetChemElementStandard(string HeatNo, OpeBase ob)
  438. {
  439. string strMsg = "";
  440. bool bSuccess = false;
  441. string strSql = "";
  442. strSql += Convert.ToString("select decode(t.stdstyle, '国标', '1', '内控', '2', '客户','3','') std_DC,").Trim() + " ";
  443. strSql += Convert.ToString(" t1.basename,").Trim() + " ";
  444. strSql += Convert.ToString(" case").Trim() + " ";
  445. strSql += Convert.ToString(" when t.minsign is not null and t.maxsign is not null then").Trim() + " ";
  446. strSql += Convert.ToString(" '~'").Trim() + " ";
  447. strSql += Convert.ToString(" when t.minsign is not null and t.maxsign is null then").Trim() + " ";
  448. strSql += Convert.ToString(" t.minsign").Trim() + " ";
  449. strSql += Convert.ToString(" when t.minsign is null and t.maxsign is not null then").Trim() + " ";
  450. strSql += Convert.ToString(" t.maxsign").Trim() + " ";
  451. strSql += Convert.ToString(" end Stdsign,").Trim() + " ";
  452. strSql += Convert.ToString(" t.minvalue stdmin,").Trim() + " ";
  453. strSql += Convert.ToString(" t.maxvalue stdmax,").Trim() + " ";
  454. strSql += Convert.ToString(" t.stdstyle Memo").Trim() + " ";
  455. strSql += Convert.ToString(" from ppc_steel_heat x, qcm_designresult_d t, COM_BASE_INFO t1").Trim() + " ";
  456. strSql += Convert.ToString(" where x.heatno = '" + HeatNo + "'").Trim() + " ";
  457. strSql += Convert.ToString(" and x.ord_gon_id = t.intent_orderno").Trim() + " ";
  458. strSql += Convert.ToString(" and t1.sortcode = '1006'").Trim() + " ";
  459. strSql += Convert.ToString(" and t.item = t1.basecode(+)").Trim() + " ";
  460. strSql += Convert.ToString(" order by decode(t.stdstyle, '国标', '1', '内控', '2','客户','3', '') desc, t.item").Trim();
  461. return GetData(strSql, out bSuccess, out strMsg, ob);
  462. }
  463. public static DataSet GetBilletMeterWeight(OpeBase ob)
  464. {
  465. string strMsg = "";
  466. bool bSuccess = false;
  467. string strSql = "";
  468. strSql += Convert.ToString("select t.basename spec, t.memo1 cmw, t.remarks hmw").Trim() + " ";
  469. strSql += Convert.ToString(" from COM_BASE_INFO t").Trim() + " ";
  470. strSql += Convert.ToString(" where t.sortcode = '1014'").Trim();
  471. return GetData(strSql, out bSuccess, out strMsg, ob);
  472. }
  473. public static DataSet GetBilletCutInfo(string strWhere, string strWhere1,string strWhere2 , OpeBase ob)
  474. {
  475. string strMsg = "";
  476. bool bSuccess = false;
  477. string strSql = @"
  478. SELECT T.BILLETCODE,
  479. T.MAT_NO,
  480. T.STOVE_NO,
  481. T.CAST_NO,
  482. T.HEATCNT,
  483. T.HEAT_SEQ,
  484. T.CCMSTOVENO,
  485. T.CCMID,
  486. T.FLOWNO,
  487. T.CUTSEQNO,
  488. T.LENGTH,
  489. T.DIAMETER,
  490. --T.THICKNESS,
  491. T.WEIGHT,
  492. T.LASTBILLETFLAG,
  493. -- T.PLATETYPE,
  494. T.SHIFTCODE,
  495. T.FLAG,
  496. TO_CHAR(T.CUTTIME, 'yyyy-MM-dd hh24:mi:ss') CUTTIME,
  497. T.OPTPERSONNEL,
  498. --T.SPECRULE,
  499. T.L2FLAG,
  500. --T.RESFLAG,
  501. --T.CHILDBLOCKNO,
  502. T.ORDER_NO,
  503. T.GRADECODE,
  504. DECODE(NVL((SELECT CUTFINISHED
  505. FROM STL_HEATNO_ASSIST
  506. WHERE HEATNO = T.STOVE_NO
  507. AND CCMID = T.CCMID
  508. AND ROWNUM = 1),
  509. '0'),
  510. '1',
  511. '√') CONFIRMFLAG
  512. FROM (SELECT *
  513. FROM STL_INCISION
  514. {0} ) T,
  515. (SELECT *
  516. FROM (SELECT A.*,
  517. ROW_NUMBER() OVER(PARTITION BY A.STOVE_NO, A.STATIONCODE ORDER BY A.DISPOSALTIME ASC) XH
  518. FROM (SELECT *
  519. FROM STL_CCM_OPTINFO
  520. UNION
  521. SELECT *
  522. FROM J#STL_CCM_OPTINFO) A)
  523. WHERE XH < 2) T2
  524. WHERE 1 = 1
  525. AND T.STOVE_NO = T2.STOVE_NO(+)
  526. {1}
  527. ORDER BY MAT_NO DESC
  528. ";
  529. strSql = String.Format(strSql, strWhere, strWhere1);
  530. // strSql += Convert.ToString("select t.billetcode,").Trim() + " ";
  531. // strSql += Convert.ToString(" t.MAT_NO,").Trim() + " ";
  532. // strSql += Convert.ToString(" t.STOVE_NO,").Trim() + " ";
  533. // strSql += Convert.ToString(" t.CAST_NO,").Trim() + " ";
  534. // strSql += Convert.ToString(" t.heatcnt,").Trim() + " ";
  535. // strSql += Convert.ToString(" t.HEAT_SEQ,").Trim() + " ";
  536. // strSql += Convert.ToString(" t.ccmstoveno,").Trim() + " ";
  537. // strSql += Convert.ToString(" t.ccmid,").Trim() + " ";
  538. // strSql += Convert.ToString(" t.flowno,").Trim() + " ";
  539. // strSql += Convert.ToString(" t.cutseqno,").Trim() + " ";
  540. // strSql += Convert.ToString(" t.length,").Trim() + " ";
  541. // strSql += Convert.ToString(" t.width,").Trim() + " ";
  542. // // strSql += Convert.ToString(" t.thickness,").Trim() + " ";
  543. // strSql += Convert.ToString(" t.DIAMETER,").Trim() + " ";
  544. // strSql += Convert.ToString(" t.lastbilletflag,").Trim() + " ";
  545. // // strSql += Convert.ToString(" t.platetype,").Trim() + " ";
  546. // strSql += Convert.ToString(" t.shiftcode,").Trim() + " ";
  547. // strSql += Convert.ToString(" t.flag,").Trim() + " ";
  548. // strSql += Convert.ToString(" to_char(t.cuttime, 'yyyy-MM-dd hh24:mi:ss') cuttime,").Trim() + " ";
  549. // strSql += Convert.ToString(" t.optpersonnel,").Trim() + " ";
  550. // strSql += Convert.ToString(" t.specrule,").Trim() + " ";
  551. // strSql += Convert.ToString(" t.l2flag,").Trim() + " ";
  552. // strSql += Convert.ToString(" t.resflag,").Trim() + " ";
  553. // // strSql += Convert.ToString(" t.childblockno,").Trim() + " ";
  554. // strSql += Convert.ToString(" t.orderno,").Trim() + " ";
  555. // strSql += Convert.ToString(" t.steelcode,").Trim() + " ";
  556. // strSql += Convert.ToString(" 0 confirmflag").Trim() + " ";
  557. //// strSql += Convert.ToString(" nvl(t1.cutfinished, '0') confirmflag").Trim() + " ";
  558. // strSql += Convert.ToString(" from (select * from stl_incision " + strWhere + " ").Trim() + " ";
  559. // // strSql += Convert.ToString(" union").Trim() + " ";
  560. // // strSql += Convert.ToString(" select * from j#stl_incision " + strWhere + " ").Trim() + " ";
  561. // strSql += Convert.ToString(" ) t1,");
  562. // // strSql += Convert.ToString(" (select * from stl_heatno_assist " + strWhere2 + ") t1,").Trim() + " ";
  563. // strSql += Convert.ToString(" (select * from ( select a.*, ").Trim() + " ";
  564. // strSql += Convert.ToString(" row_number() over(partition by a.heatno, a.stationcode order by a.disposaltime asc) xh ").Trim() + " ";
  565. // strSql += Convert.ToString(" from (select * from stl_ccm_optinfo union select * from j#stl_ccm_optinfo) a) where xh<2) t2").Trim() + " ";
  566. // strSql += Convert.ToString(" where 1=1 ").Trim() + " ";
  567. // //strSql += Convert.ToString(" where t.STOVE_NO = t1.STOVE_NO(+)").Trim() + " ";
  568. // strSql += Convert.ToString(" and t.STOVE_NO = t2.STOVE_NO(+)").Trim() + " " + strWhere1;
  569. // strSql += Convert.ToString(" order by MAT_NO desc").Trim();
  570. return GetData(strSql, out bSuccess, out strMsg, ob);
  571. }
  572. public static DataSet GetSapMaterial(OpeBase ob)
  573. {
  574. string strMsg = "";
  575. bool bSuccess = false;
  576. string strSql = "";
  577. strSql += Convert.ToString("select t.matnr fs_wlh, t.maktx fs_wlms").Trim() + " ";
  578. strSql += Convert.ToString(" from sap_stlmes_materialinfo t").Trim() + " ";
  579. strSql += Convert.ToString(" where t.werks='8005' and (substr(t.matnr,1,2)='75' or substr(t.matnr,1,2)='74' )").Trim() + " ";
  580. strSql += Convert.ToString(" order by t.matnr").Trim();
  581. return GetData(strSql, out bSuccess, out strMsg, ob);
  582. }
  583. /// <summary>
  584. /// 获取工序所属产线
  585. /// </summary>
  586. /// <param name="strStationCode">工序,如:BOF01,CAS01</param>
  587. /// <param name="ob"></param>
  588. /// <returns></returns>
  589. public static string GetProduceSys(string strStationCode, OpeBase ob)
  590. {
  591. bool bSuccess = false;
  592. string strMsg = ""; string strSql = "";
  593. strSql = "select T.PROCESSCODE, T.PROCESSNAME, T.PROCESSTYPE, T.PRODUCESYS" +
  594. " from com_processinfo t where t.processname = '" + strStationCode + "'";
  595. DataSet ds = GetData(strSql, out bSuccess, out strMsg, ob);
  596. if (bSuccess && ds != null && ds.Tables.Count > 0)
  597. {
  598. if (ds.Tables[0].Rows.Count > 0)
  599. return ds.Tables[0].Rows[0]["PRODUCESYS"].ToString();
  600. else
  601. return "";
  602. }
  603. else
  604. return "";
  605. }
  606. //查询温度表里的采样值
  607. public static DataSet GetBofTept(OpeBase ob,string strHeatno)
  608. {
  609. string strMsg = "";
  610. bool bSuccess = false;
  611. string strSql = "";
  612. strSql += Convert.ToString("select x.samplingvalue from ").Trim() + " ";
  613. strSql += Convert.ToString(" (select distinct t.samplingvalue").Trim() + " ";
  614. strSql += Convert.ToString(" from STL_TEMPSAMPLING t").Trim() + " ";
  615. strSql += Convert.ToString(" where substr(t.stationcode, 0, 1) = 'C'").Trim() + " ";
  616. strSql += Convert.ToString(" and t.STOVE_NO = '" + strHeatno + "'").Trim() + " ";
  617. strSql += Convert.ToString(" union").Trim() + " ";
  618. strSql += Convert.ToString(" select distinct t.samplingvalue").Trim() + " ";
  619. strSql += Convert.ToString(" from J#STL_TEMPSAMPLING t").Trim() + " ";
  620. strSql += Convert.ToString(" where substr(t.stationcode, 0, 1) = 'C' ").Trim() + " ";
  621. strSql += Convert.ToString(" and t.STOVE_NO = '" + strHeatno + "') x ").Trim() + " ";
  622. strSql += Convert.ToString(" order by x.samplingvalue asc").Trim() + " ";
  623. return GetData(strSql, out bSuccess, out strMsg, ob);
  624. }
  625. /// <summary>
  626. /// 获取手动操作配置信息
  627. /// </summary>
  628. /// <param name="strStationCode">岗位编码:BOF</param>
  629. /// <param name="ob"></param>
  630. /// <returns></returns>
  631. public static DataSet GetManualOperateConfig(string strStationCode,string strProduceSys, OpeBase ob)
  632. {
  633. bool bSuccess = false;
  634. string strMsg = ""; string strSql = "";
  635. strSql += Convert.ToString("select *").Trim() + " ";
  636. strSql += Convert.ToString(" from COM_STL_COMMAND t").Trim() + " ";
  637. strSql += Convert.ToString(" where t.stationcode = '" + strStationCode + "'").Trim() + " ";
  638. strSql += Convert.ToString(" and t.valid = '1'").Trim() + " ";
  639. strSql += Convert.ToString(" and ((t.optcommandtype = 'ASSIGNEDPOS' and t.producesys = '" + strProduceSys
  640. + "') or t.optcommandtype <> 'ASSIGNEDPOS' or (t.optcommandtype = 'ASSIGNEDPOS' and t.opttype='1') )").Trim() + " ";
  641. strSql += Convert.ToString(" order by t.opttype, t.sortid").Trim();
  642. return GetData(strSql, out bSuccess, out strMsg, ob);
  643. }
  644. /// <summary>
  645. /// 获取物料消耗标准
  646. /// </summary>
  647. /// <returns></returns>
  648. public static DataTable GetJobStandardMateriel(OpeBase ob, string strSteelCode)
  649. {
  650. bool bSuccess = false;
  651. string strMsg = "";
  652. string SqlID = "GetJobStandardMateriel.Select";
  653. ArrayList Args = new ArrayList();
  654. Args.Add(strSteelCode);
  655. DataSet ds = GetData(SqlID, Args, out bSuccess, out strMsg, ob);
  656. if (bSuccess && ds != null && ds.Tables.Count > 0)
  657. {
  658. return ds.Tables[0];
  659. }
  660. return null;
  661. }
  662. /// <summary>
  663. /// 获取作业温度标准
  664. /// </summary>
  665. /// <returns></returns>
  666. public static DataTable GetJobStandardTemp(OpeBase ob, string strCraftCode, string _DEVICE_POSITION)
  667. {
  668. bool bSuccess = false;
  669. string strMsg = "";
  670. string SqlID = "GetJobStandardTemp.Select";
  671. ArrayList Args = new ArrayList();
  672. Args.Add(strCraftCode);
  673. Args.Add(_DEVICE_POSITION);
  674. //获取作业温度标准
  675. DataSet ds = GetData(SqlID, Args, out bSuccess, out strMsg, ob);
  676. if (bSuccess && ds != null && ds.Tables.Count > 0)
  677. {
  678. return ds.Tables[0];
  679. }
  680. return null;
  681. }
  682. /// <summary>
  683. /// 时间计算返回分
  684. /// </summary>
  685. /// <param name="startTime"></param>
  686. /// <param name="endTime"></param>
  687. /// <returns></returns>
  688. public static int GetTotalMinutes(DateTime dtFrom, DateTime dtTo)
  689. {
  690. TimeSpan ts = new TimeSpan(0);
  691. if (dtTo > dtFrom) ts = dtTo - dtFrom;
  692. return Convert.ToInt32(ts.TotalMinutes);
  693. }
  694. /// <summary>
  695. /// 时间计算返回秒
  696. /// </summary>
  697. /// <param name="startTime"></param>
  698. /// <param name="endTime"></param>
  699. /// <returns></returns>
  700. public static int GetTotalSeconds(DateTime dtFrom, DateTime dtTo)
  701. {
  702. TimeSpan ts = new TimeSpan(0);
  703. if (dtTo > dtFrom) ts = dtTo - dtFrom;
  704. return Convert.ToInt32(ts.TotalSeconds);
  705. }
  706. /// <summary>
  707. /// 将秒转换成时间"0′0″
  708. /// </summary>
  709. /// <param name="strSeconds"></param>
  710. /// <returns></returns>
  711. public static string GetTimeSpan(string Seconds)
  712. {
  713. try
  714. {
  715. Seconds = Seconds.Trim();
  716. if (!string.IsNullOrEmpty(Seconds) && Seconds.Length > 0)
  717. {
  718. TimeSpan ts = new TimeSpan(0, 0, Convert.ToInt32(Seconds));
  719. string strRet = "";
  720. if (ts.Days > 0) strRet = ts.Days.ToString() + "d" + ts.Hours.ToString() + "°" + ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″";
  721. else if (ts.Hours > 0) strRet = ts.Hours.ToString() + "°" + ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″";
  722. else if (ts.Minutes > 0) strRet = ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″";
  723. else if (ts.Seconds > 0) strRet = ts.Seconds.ToString() + "″";
  724. else strRet = "0";
  725. return strRet;
  726. }
  727. }
  728. catch { }
  729. return "0";
  730. }
  731. /// <summary>
  732. /// 获取时间差"0′0″
  733. /// </summary>
  734. /// <param name="dtFrom"></param>
  735. /// <param name="dtTo"></param>
  736. /// <returns></returns>
  737. public static string GetTimeSpan(DateTime dtFrom, DateTime dtTo)
  738. {
  739. TimeSpan ts = new TimeSpan(0);
  740. if (dtTo > dtFrom) ts = dtTo - dtFrom;
  741. string strRet = "";
  742. if (ts.Days > 0) strRet = ts.Days.ToString() + "D " + ts.Hours.ToString() + "°" + ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″";
  743. else if (ts.Hours > 0) strRet = ts.Hours.ToString() + "°" + ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″";
  744. else if (ts.Minutes > 0) strRet = ts.Minutes.ToString() + "′" + ts.Seconds.ToString() + "″";
  745. else if (ts.Seconds > 0) strRet = ts.Seconds.ToString() + "″";
  746. else strRet = "0";
  747. return strRet;
  748. }
  749. /// <summary>
  750. /// 获取两个时间段的差值
  751. /// </summary>
  752. /// <param name="startTime"></param>
  753. /// <param name="endTime"></param>
  754. /// <returns></returns>
  755. public static int JudgeTime(DateTime startTime, DateTime endTime)
  756. {
  757. int lStayDuration = 0;
  758. TimeSpan odtSpan;
  759. if (endTime > startTime)
  760. {
  761. odtSpan = endTime - startTime;
  762. lStayDuration = Convert.ToInt32(System.Math.Round(odtSpan.TotalMinutes));
  763. }
  764. return lStayDuration;
  765. }
  766. /// <summary>
  767. /// 验证数据有效性(Number)
  768. /// </summary>
  769. /// <param name="szVal"></param>
  770. public static bool CheckNumValidate(string strVal)
  771. {
  772. decimal dValue = 0.0M;
  773. return decimal.TryParse(strVal, out dValue);
  774. }
  775. /// <summary>
  776. /// 验证数据有效性(Double)
  777. /// </summary>
  778. /// <param name="AValue"></param>
  779. /// <returns></returns>
  780. public static bool IsDouble(string AValue)
  781. {
  782. try
  783. {
  784. Convert.ToDouble(AValue);
  785. return true;
  786. }
  787. catch
  788. {
  789. return false;
  790. }
  791. }
  792. /// <summary>
  793. /// 将长整型转换浮点型
  794. /// </summary>
  795. /// <param name="lgValue"></param>
  796. /// <returns></returns>
  797. public static float LongToFloat(long lgValue)
  798. {
  799. float flValue = 0;
  800. try
  801. {
  802. if (lgValue >= 0)
  803. {
  804. byte[] btValue = ClsDataAccessPack.LongToHex(lgValue);
  805. flValue = ClsDataAccessPack.HexToFloat(btValue);
  806. }
  807. }
  808. catch { }
  809. return flValue;
  810. }
  811. private static unsafe byte[] LongToHex(long lValue)
  812. {
  813. long[] lValuePtr = new long[1];
  814. int sizeOfValue = Marshal.SizeOf(typeof(long));
  815. byte[] byteValue = new byte[sizeOfValue];
  816. lValuePtr[0] = lValue;
  817. fixed (long* pTempValue = lValuePtr)
  818. {
  819. Marshal.Copy(new IntPtr(pTempValue), byteValue, 0, sizeOfValue);
  820. }
  821. return byteValue;
  822. }
  823. private static unsafe float HexToFloat(byte[] byteValue)
  824. {
  825. float[] fltValuePtr = new float[1];
  826. int sizeOfValue = Marshal.SizeOf(typeof(float));
  827. fixed (float* pTempValue = fltValuePtr)
  828. {
  829. Marshal.Copy(byteValue, 0, new IntPtr(pTempValue), sizeOfValue);
  830. }
  831. return fltValuePtr[0];
  832. }
  833. }
  834. /// <summary>
  835. /// 枚举对象长度
  836. /// </summary>
  837. public enum OBJLEN : int
  838. {
  839. /// <summary>
  840. /// 加热处理号长度
  841. /// </summary>
  842. nHeatProcessNo = 13,
  843. /// <summary>
  844. /// 炉号长度
  845. /// </summary>
  846. nHeatNo = 8,
  847. /// <summary>
  848. /// 岗位编码长度
  849. /// </summary>
  850. nDevCode = 2,
  851. /// <summary>
  852. /// 处理次数长度
  853. /// </summary>
  854. nDealTime = 2,
  855. /// <summary>
  856. /// 岗位编码字母长度
  857. /// </summary>
  858. nDevStr = 1,
  859. /// <summary>
  860. /// 脱硫处理号
  861. /// </summary>
  862. nHudwProcessNo = 14,
  863. /// <summary>
  864. /// 脱硫号
  865. /// </summary>
  866. nHudwId = 9
  867. }
  868. }