ClsBusinessPack.cs 93 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453
  1. using System;
  2. using System.Collections;
  3. using System.Data;
  4. using System.Diagnostics;
  5. using System.Drawing;
  6. using System.Net;
  7. using System.Net.Sockets;
  8. using System.Windows.Forms;
  9. using Core.StlMes.Client.LgClassModel;
  10. using CoreFS.CA06;
  11. using Infragistics.Win;
  12. using Infragistics.Win.UltraWinGrid;
  13. using System.Collections.Generic;
  14. using System.Linq;
  15. using Core.Mes.Client.Comm.Server;
  16. using Infragistics.Win.UltraWinEditors;
  17. namespace Core.StlMes.Client.LgCommon
  18. {
  19. /// <summary>
  20. /// 业务公用方法
  21. /// </summary>
  22. public class ClsBusinessPack
  23. {
  24. public static ValueList GetValuelistBanci()
  25. {
  26. ValueList vlist = new ValueList();
  27. try
  28. {
  29. //三班倒
  30. vlist.ValueListItems.Add("1", "早班");
  31. vlist.ValueListItems.Add("3", "夜班");
  32. vlist.ValueListItems.Add("2", "中班");
  33. }
  34. catch { }
  35. return vlist;
  36. }
  37. public static ValueList GetValuelistBanzu()
  38. {
  39. ValueList vlist = new ValueList();
  40. try
  41. {
  42. vlist.ValueListItems.Add("1", "甲班");
  43. vlist.ValueListItems.Add("2", "乙班");
  44. vlist.ValueListItems.Add("3", "丙班");
  45. vlist.ValueListItems.Add("4", "丁班");
  46. vlist.ValueListItems.Add("5", "戊班");
  47. }
  48. catch { }
  49. return vlist;
  50. }
  51. public static string GetLastHeatState(LG_PROCESS process)
  52. {
  53. switch (process)
  54. {
  55. case LG_PROCESS.EAF:
  56. return "00";
  57. case LG_PROCESS.LF:
  58. return "10";
  59. case LG_PROCESS.RH:
  60. return "20";
  61. case LG_PROCESS.VD:
  62. return "30";
  63. case LG_PROCESS.CCM:
  64. return "40";
  65. default:
  66. return "";
  67. }
  68. }
  69. public static int GetHeatState(LG_PROCESS process)
  70. {
  71. switch (process)
  72. {
  73. case LG_PROCESS.EAF:
  74. return 10;
  75. case LG_PROCESS.LF:
  76. return 20;
  77. case LG_PROCESS.RH:
  78. return 30;
  79. case LG_PROCESS.VD:
  80. return 40;
  81. case LG_PROCESS.CCM:
  82. return 50;
  83. default:
  84. return 0;
  85. }
  86. }
  87. public static string GetShiftClass(string strCode)
  88. {
  89. try
  90. {
  91. switch (strCode)
  92. {
  93. //三班倒
  94. case "1":
  95. return "白班";
  96. case "3":
  97. return "大夜";
  98. case "2":
  99. return "小夜";
  100. default:
  101. return "";
  102. }
  103. }
  104. catch { }
  105. return "";
  106. }
  107. public static string GetShiftClassByName(string strName)
  108. {
  109. try
  110. {
  111. switch (strName)
  112. {
  113. //三班倒
  114. case "白班":
  115. return "1";
  116. case "大夜":
  117. return "3";
  118. case "小夜":
  119. return "2";
  120. default:
  121. return "";
  122. }
  123. }
  124. catch { }
  125. return "";
  126. }
  127. public static string GetShiftGroup(string strCode)
  128. {
  129. try
  130. {
  131. switch (strCode)
  132. {
  133. case "1":
  134. return "甲班";
  135. case "2":
  136. return "乙班";
  137. case "3":
  138. return "丙班";
  139. case "4":
  140. return "丁班";
  141. default:
  142. return "";
  143. }
  144. }
  145. catch { }
  146. return "";
  147. }
  148. public static string GetShiftGroupByName(string strName)
  149. {
  150. try
  151. {
  152. switch (strName)
  153. {
  154. case "甲班":
  155. return "1";
  156. case "乙班":
  157. return "2";
  158. case "丙班":
  159. return "3";
  160. case "丁班":
  161. return "4";
  162. default:
  163. return "";
  164. }
  165. }
  166. catch { }
  167. return "";
  168. }
  169. private static DataTable GetCcmData()
  170. {
  171. DataTable dt = new DataTable();
  172. dt.Columns.Add("id", typeof(System.String));
  173. dt.Columns.Add("name", typeof(System.String));
  174. dt.Rows.Add(new object[] { "1", "1#铸机" });
  175. dt.Rows.Add(new object[] { "2", "2#铸机" });
  176. dt.Rows.Add(new object[] { "3", "3#铸机" });
  177. dt.Rows.Add(new object[] { "4", "4#铸机" });
  178. dt.Rows.Add(new object[] { "5", "5#铸机" });
  179. dt.AcceptChanges();
  180. return dt;
  181. }
  182. /// <summary>
  183. /// 通过权限初始化产线
  184. /// </summary>
  185. /// <param name="processCode"></param>
  186. /// <param name="ugc"></param>
  187. /// <param name="validDataPurviewIds"></param>
  188. /// <param name="ob"></param>
  189. public static List<string> InitDropPlinePower(string processCode, UltraComboEditor ugc, string[] validDataPurviewIds, OpeBase ob)
  190. {
  191. if (ob == null) return null;
  192. var dt = GetPlineDataTable(processCode, validDataPurviewIds, ob);
  193. if (dt != null && dt.Rows.Count > 0)
  194. {
  195. if (ugc != null)
  196. {
  197. ugc.DataSource = dt;
  198. ugc.ValueMember = "PLINE_CODE";
  199. ugc.DisplayMember = "PLINE_NAME";
  200. }
  201. return dt.AsEnumerable().Select(p => p["PLINE_CODE"].ToString()).ToList();
  202. }
  203. else
  204. {
  205. return null;
  206. }
  207. }
  208. /// <summary>
  209. /// 通过权限初始化产线
  210. /// </summary>
  211. /// <param name="processCode"></param>
  212. /// <param name="ugc"></param>
  213. /// <param name="validDataPurviewIds"></param>
  214. /// <param name="ob"></param>
  215. public static void InitDropPlinePower(string processCode, UltraComboEditor ugc, OpeBase ob)
  216. {
  217. if (ob == null) return ;
  218. var dt = GetPlineDataTable(processCode, ob);
  219. if (dt != null && dt.Rows.Count > 0)
  220. {
  221. if (ugc != null)
  222. {
  223. ugc.DataSource = dt;
  224. ugc.ValueMember = "PLINE_CODE";
  225. ugc.DisplayMember = "PLINE_NAME";
  226. }
  227. }
  228. }
  229. public static DataTable GetPlineDataTable(string processCode, string[] validDataPurviewIds, OpeBase ob)
  230. {
  231. DataTable dt = ServerHelper.GetData("Core.LgMes.Server.LgDeviceManager.PerformanceManage.initPlinePower",
  232. new object[] {processCode, validDataPurviewIds}, ob);
  233. return dt;
  234. }
  235. public static DataTable GetPlineDataTable(string processCode, OpeBase ob)
  236. {
  237. DataTable dt = ServerHelper.GetData("Core.LgMes.Server.LgDeviceManager.PerformanceManage.initPlinePower",
  238. new object[] { processCode }, ob);
  239. return dt;
  240. }
  241. /// <summary>
  242. /// 获取当前班次、班组
  243. /// </summary>
  244. /// <param name="blnBcBz">1返回班次,2返回班组,3返回班次班组</param>
  245. /// <returns></returns>
  246. public static string GetCurrentClass(string blnBcBz,OpeBase ob)
  247. {
  248. string strClass = "";
  249. try
  250. {
  251. string strErr = "";
  252. bool bSuccess = false;
  253. DataSet ds = ClsDataAccessPack.GetData("select mes_lg_common.getlgshift1(sysdate) from dual", out bSuccess, out strErr, ob);
  254. if (ds != null && ds.Tables.Count > 0)
  255. {
  256. if (blnBcBz == "1")
  257. strClass = ds.Tables[0].Rows[0][0].ToString().Substring(0, 1);
  258. else if (blnBcBz == "2")
  259. strClass = ds.Tables[0].Rows[0][0].ToString().Substring(1, 1);
  260. else
  261. strClass = ds.Tables[0].Rows[0][0].ToString();
  262. }
  263. }
  264. catch
  265. { }
  266. return strClass;
  267. }
  268. public static bool IsValidShiftClass(string strCode)
  269. {
  270. return (strCode.Equals("1") || strCode.Equals("2"));
  271. }
  272. public static bool IsValidShiftGroup(string strCode)
  273. {
  274. return (strCode.Equals("1") || strCode.Equals("2") || strCode.Equals("3") || strCode.Equals("4"));
  275. }
  276. public static ValueList GetValuelistMolirnLeave()
  277. {
  278. ValueList vlist = new ValueList();
  279. try
  280. {
  281. vlist.ValueListItems.Add("BOF01", "1#转炉");
  282. vlist.ValueListItems.Add("BOF02", "2#转炉");
  283. vlist.ValueListItems.Add("BOF03", "3#转炉");
  284. vlist.ValueListItems.Add("BOF04", "4#转炉");
  285. vlist.ValueListItems.Add("BOF05", "5#转炉");
  286. }
  287. catch { }
  288. return vlist;
  289. }
  290. public static ValueList GetValuelistIronSource()
  291. {
  292. ValueList vlist = new ValueList();
  293. try
  294. {
  295. vlist.ValueListItems.Add("1", "混铁炉");
  296. vlist.ValueListItems.Add("2", "脱硫");
  297. //vlist.ValueListItems.Add("1", "脱硫");
  298. //vlist.ValueListItems.Add("2", "混铁炉");
  299. //vlist.ValueListItems.Add("3", "直兑");
  300. //vlist.ValueListItems.Add("4", "高炉");
  301. }
  302. catch { }
  303. return vlist;
  304. }
  305. public static ValueList GetValuelistLogic()
  306. {
  307. ValueList vlist = new ValueList();
  308. try
  309. {
  310. vlist.ValueListItems.Add("1", "是");
  311. vlist.ValueListItems.Add("0", "否");
  312. vlist.ValueListItems.Add("", "否");
  313. }
  314. catch { }
  315. return vlist;
  316. }
  317. public static ValueList GetValuelistMaterialType()
  318. {
  319. ValueList vlist = new ValueList();
  320. try
  321. {
  322. vlist.ValueListItems.Add("FL", "辅料");
  323. vlist.ValueListItems.Add("HJ", "合金");
  324. vlist.ValueListItems.Add("WS", "喂丝");
  325. vlist.ValueListItems.Add("BH", "保护渣");
  326. }
  327. catch { }
  328. return vlist;
  329. }
  330. public static ValueList GetValuelistDigital(int iCount)
  331. {
  332. ValueList vlist = new ValueList();
  333. try
  334. {
  335. if (iCount <= 0) return vlist;
  336. for (int i = 0; i <= iCount; i++)
  337. {
  338. vlist.ValueListItems.Add(Convert.ToString(i), Convert.ToString(i));
  339. }
  340. }
  341. catch { }
  342. return vlist;
  343. }
  344. public static ValueList GetValuelistStation()
  345. {
  346. ValueList vlist = new ValueList();
  347. try
  348. {
  349. vlist.ValueListItems.Add("B01", "1#预处理");
  350. vlist.ValueListItems.Add("B02", "2#预处理");
  351. vlist.ValueListItems.Add("C01", "1#转炉");
  352. vlist.ValueListItems.Add("C02", "2#转炉");
  353. vlist.ValueListItems.Add("C03", "3#转炉");
  354. vlist.ValueListItems.Add("C04", "4#转炉");
  355. vlist.ValueListItems.Add("C05", "5#转炉");
  356. vlist.ValueListItems.Add("D01", "1#吹氩站");
  357. vlist.ValueListItems.Add("D02", "2#吹氩站");
  358. vlist.ValueListItems.Add("D03", "3#吹氩站");
  359. vlist.ValueListItems.Add("D04", "4#吹氩站");
  360. vlist.ValueListItems.Add("D05", "5#吹氩站");
  361. vlist.ValueListItems.Add("E01", "1#LF炉");
  362. vlist.ValueListItems.Add("E02", "2#LF炉");
  363. vlist.ValueListItems.Add("E03", "3#LF炉");
  364. vlist.ValueListItems.Add("G01", "1#铸机");
  365. vlist.ValueListItems.Add("G02", "2#铸机");
  366. vlist.ValueListItems.Add("G03", "3#铸机");
  367. vlist.ValueListItems.Add("G04", "4#铸机");
  368. vlist.ValueListItems.Add("G05", "5#铸机");
  369. }
  370. catch { }
  371. return vlist;
  372. }
  373. public static ValueList GetValuelistSteelSource()
  374. {
  375. ValueList vlist = new ValueList();
  376. try
  377. {
  378. vlist.ValueListItems.Add("GT", "高炉");
  379. vlist.ValueListItems.Add("TS", "脱硫");
  380. vlist.ValueListItems.Add("LD", "转炉");
  381. vlist.ValueListItems.Add("AR", "吹氩");
  382. vlist.ValueListItems.Add("LF", "LF炉");
  383. vlist.ValueListItems.Add("CC", "成品");
  384. vlist.ValueListItems.Add("ZP", "铸坯");
  385. }
  386. catch { }
  387. return vlist;
  388. }
  389. public static ValueList GetValuelistShift()
  390. {
  391. ValueList vlist = new ValueList();
  392. try
  393. {
  394. vlist.ValueListItems.Add("13", "夜-甲");
  395. vlist.ValueListItems.Add("23", "夜-乙");
  396. vlist.ValueListItems.Add("33", "夜-丙");
  397. vlist.ValueListItems.Add("43", "夜-丁");
  398. vlist.ValueListItems.Add("11", "早-甲");
  399. vlist.ValueListItems.Add("21", "早-乙");
  400. vlist.ValueListItems.Add("31", "早-丙");
  401. vlist.ValueListItems.Add("41", "早-丁");
  402. vlist.ValueListItems.Add("12", "中-甲");
  403. vlist.ValueListItems.Add("22", "中-乙");
  404. vlist.ValueListItems.Add("32", "中-丙");
  405. vlist.ValueListItems.Add("42", "中-丁");
  406. }
  407. catch { }
  408. return vlist;
  409. }
  410. public static ValueList GetValuelistSteel(OpeBase ob)
  411. {
  412. try
  413. {
  414. DataSet ds = ClsDataAccessPack.GetSteelInfo("", ob);
  415. if (ds != null && ds.Tables.Count > 0)
  416. {
  417. DataTable table = ds.Tables[0];
  418. ValueList vlist = GeneralValuelist(ref table, "STEELCODE", "STEEL");
  419. return vlist;
  420. }
  421. }
  422. catch { }
  423. return null;
  424. }
  425. public static ValueList GetCutFinished()
  426. {
  427. ValueList vlist = new ValueList();
  428. try
  429. {
  430. vlist.ValueListItems.Add("1", "已结炉");
  431. vlist.ValueListItems.Add("0", "未结炉");
  432. vlist.ValueListItems.Add("", "未结炉");
  433. }
  434. catch { }
  435. return vlist;
  436. }
  437. public static ValueList GetIfBatchedZg()
  438. {
  439. ValueList vlist = new ValueList();
  440. try
  441. {
  442. vlist.ValueListItems.Add("2", "坯料下线");
  443. vlist.ValueListItems.Add("1", "已组批");
  444. vlist.ValueListItems.Add("0", "未组批");
  445. vlist.ValueListItems.Add("", "未知");
  446. }
  447. catch { }
  448. return vlist;
  449. }
  450. public static ValueList GetCastingtype()
  451. {
  452. ValueList vlist = new ValueList();
  453. try
  454. {
  455. vlist.ValueListItems.Add("2", "模铸");
  456. vlist.ValueListItems.Add("1", "连铸");
  457. vlist.ValueListItems.Add("0", "未知");
  458. vlist.ValueListItems.Add("", "未知");
  459. }
  460. catch { }
  461. return vlist;
  462. }
  463. public static ValueList GetGptype()
  464. {
  465. ValueList vlist = new ValueList();
  466. try
  467. {
  468. vlist.ValueListItems.Add("2", "锻坯");
  469. vlist.ValueListItems.Add("1", "铸坯");
  470. vlist.ValueListItems.Add("0", "未知");
  471. vlist.ValueListItems.Add("", "未知");
  472. }
  473. catch { }
  474. return vlist;
  475. }
  476. public static ValueList GetSurplusflag()
  477. {
  478. ValueList vlist = new ValueList();
  479. try
  480. {
  481. vlist.ValueListItems.Add("1", "余材");
  482. vlist.ValueListItems.Add("0", "订单材");
  483. vlist.ValueListItems.Add("", "未知");
  484. }
  485. catch { }
  486. return vlist;
  487. }
  488. public static ValueList GetStatus()
  489. {
  490. ValueList vlist = new ValueList();
  491. try
  492. {
  493. vlist.ValueListItems.Add("00", "编制中");
  494. vlist.ValueListItems.Add("10", "已下发");
  495. vlist.ValueListItems.Add("20", "生产中");
  496. vlist.ValueListItems.Add("30", "已生产");
  497. vlist.ValueListItems.Add("40", "关闭");
  498. vlist.ValueListItems.Add("", "未知");
  499. }
  500. catch { }
  501. return vlist;
  502. }
  503. public static ValueList GetHeatStatus()
  504. {
  505. ValueList vlist = new ValueList();
  506. try
  507. {
  508. vlist.ValueListItems.Add("00", "初始");
  509. vlist.ValueListItems.Add("10", "电炉执行中");
  510. vlist.ValueListItems.Add("15", "电炉完成");
  511. vlist.ValueListItems.Add("20", "LF炉执行中");
  512. vlist.ValueListItems.Add("25", "LF炉完成");
  513. vlist.ValueListItems.Add("30", "RH炉执行中");
  514. vlist.ValueListItems.Add("35", "RH炉完成");
  515. vlist.ValueListItems.Add("40", "VD炉执行中");
  516. vlist.ValueListItems.Add("45", "VD炉完成");
  517. vlist.ValueListItems.Add("50", "CCM执行中");
  518. vlist.ValueListItems.Add("55", "CCM完成");
  519. vlist.ValueListItems.Add("60", "切割");
  520. vlist.ValueListItems.Add("", "未知");
  521. }
  522. catch { }
  523. return vlist;
  524. }
  525. public static ValueList GetSurplusType()
  526. {
  527. ValueList vlist = new ValueList();
  528. try
  529. {
  530. vlist.ValueListItems.Add("0", "组炉");
  531. vlist.ValueListItems.Add("1", "生产超量");
  532. vlist.ValueListItems.Add("2", "开浇加量");
  533. vlist.ValueListItems.Add("3", "尾炉加量");
  534. vlist.ValueListItems.Add("4", "连浇前炉加量");
  535. vlist.ValueListItems.Add("5", "连浇后炉加量");
  536. vlist.ValueListItems.Add("6", "补炉余材");
  537. vlist.ValueListItems.Add("7", "改判");
  538. vlist.ValueListItems.Add("", "");
  539. }
  540. catch { }
  541. return vlist;
  542. }
  543. public static ValueList GetCcmState()
  544. {
  545. ValueList vlist = new ValueList();
  546. try
  547. {
  548. vlist.ValueListItems.Add("00", "未切割完炉");
  549. vlist.ValueListItems.Add("10", "切割完炉");
  550. vlist.ValueListItems.Add("20", "表检完成");
  551. vlist.ValueListItems.Add("30", "下线");
  552. vlist.ValueListItems.Add("", "未知");
  553. }
  554. catch
  555. {
  556. }
  557. return vlist;
  558. }
  559. public static ValueList GetValuelistBilletSection()
  560. {
  561. ValueList vlist = new ValueList();
  562. try
  563. {
  564. vlist.ValueListItems.Add("150×150", "150×150");
  565. vlist.ValueListItems.Add("165×165", "165×165");
  566. }
  567. catch { }
  568. return vlist;
  569. }
  570. public static ValueList GetValuelistPotLevel()
  571. {
  572. ValueList vlist = new ValueList();
  573. try
  574. {
  575. vlist.ValueListItems.Add("A", "A");
  576. vlist.ValueListItems.Add("B", "B");
  577. vlist.ValueListItems.Add("C", "C");
  578. vlist.ValueListItems.Add("D", "D");
  579. }
  580. catch { }
  581. return vlist;
  582. }
  583. public static ValueList GetValuelistIronSourceForBOF()
  584. {
  585. ValueList vlist = new ValueList();
  586. try
  587. {
  588. vlist.ValueListItems.Add("1", "高炉铁水");
  589. vlist.ValueListItems.Add("2", "脱硫铁水");
  590. vlist.ValueListItems.Add("3", "混铁炉铁水");
  591. }
  592. catch { }
  593. return vlist;
  594. }
  595. public static ValueList GetValuelistTeptForBOF(DataSet ds)
  596. {
  597. ValueList vlist = new ValueList();
  598. try
  599. {
  600. foreach (DataRow dr in ds.Tables[0].Rows)
  601. {
  602. vlist.ValueListItems.Add(dr["SAMPLINGVALUE"].ToString(), dr["SAMPLINGVALUE"].ToString());
  603. }
  604. }
  605. catch { }
  606. return vlist;
  607. }
  608. public static ValueList GetValuelistBlockSlagMode()
  609. {
  610. ValueList vlist = new ValueList();
  611. try
  612. {
  613. vlist.ValueListItems.Add("A", "挡渣塞");
  614. vlist.ValueListItems.Add("B", "挡渣帽");
  615. vlist.ValueListItems.Add("C", "挡渣球");
  616. vlist.ValueListItems.Add("AB", "挡渣塞和挡渣帽");
  617. vlist.ValueListItems.Add("AC", "挡渣塞和挡渣球");
  618. vlist.ValueListItems.Add("BC", "挡渣帽和挡渣球");
  619. vlist.ValueListItems.Add("ABC", "挡渣塞和挡渣帽和挡渣球");
  620. }
  621. catch { }
  622. return vlist;
  623. }
  624. public static ValueList GetValuelistBlockSlagEffect()
  625. {
  626. ValueList vlist = new ValueList();
  627. try
  628. {
  629. vlist.ValueListItems.Add("1", "好");
  630. vlist.ValueListItems.Add("2", "中");
  631. vlist.ValueListItems.Add("3", "差");
  632. }
  633. catch { }
  634. return vlist;
  635. }
  636. public static ValueList GetValuelistPotStatus()
  637. {
  638. ValueList vlist = new ValueList();
  639. try
  640. {
  641. vlist.ValueListItems.Add("干净,包沿好", "干净,包沿好");
  642. vlist.ValueListItems.Add("有渣子,包沿好", "有渣子,包沿好");
  643. vlist.ValueListItems.Add("有包底小于0.5吨,包沿好", "有包底小于0.5吨,包沿好");
  644. vlist.ValueListItems.Add("有包底0.5到1吨,包沿好", "有包底0.5到1吨,包沿好");
  645. vlist.ValueListItems.Add("有包底1到2吨,包沿好", "有包底1到2吨,包沿好");
  646. vlist.ValueListItems.Add("有包底2到3吨,包沿好", "有包底2到3吨,包沿好");
  647. vlist.ValueListItems.Add("有包底大于3吨,包沿好", "有包底大于3吨,包沿好");
  648. vlist.ValueListItems.Add("新包,包沿好", "新包,包沿好");
  649. vlist.ValueListItems.Add("中修包,包沿好", "中修包,包沿好");
  650. vlist.ValueListItems.Add("干净,包沿坏", "干净,包沿坏");
  651. vlist.ValueListItems.Add("有渣子,包沿坏", "有渣子,包沿坏");
  652. vlist.ValueListItems.Add("有包底小于0.5吨,包沿坏", "有包底小于0.5吨,包沿坏");
  653. vlist.ValueListItems.Add("有包底0.5到1吨,包沿坏", "有包底0.5到1吨,包沿坏");
  654. vlist.ValueListItems.Add("有包底1到2吨,包沿坏", "有包底1到2吨,包沿坏");
  655. vlist.ValueListItems.Add("有包底2到3吨,包沿坏", "有包底2到3吨,包沿坏");
  656. vlist.ValueListItems.Add("有包底大于3吨,包沿坏", "有包底大于3吨,包沿坏");
  657. vlist.ValueListItems.Add("新包,包沿坏", "新包,包沿坏");
  658. vlist.ValueListItems.Add("中修包,包沿坏", "中修包,包沿坏");
  659. }
  660. catch { }
  661. return vlist;
  662. }
  663. /// <summary>
  664. /// 获取窗体工具栏信息
  665. /// </summary>
  666. /// <param name="strFromKey">窗体KEY</param>
  667. /// <param name="strCustominfo">窗体自定议参数</param>
  668. /// <param name="ob"></param>
  669. /// <returns></returns>
  670. public static ToolStrip GetFromToolInfo(string strFromKey, string strCustominfo, OpeBase ob)
  671. {
  672. string strErr = "";
  673. ToolStrip tool = new ToolStrip();
  674. try
  675. {
  676. //获取指定岗位后台实时跟踪信息
  677. DataSet ds = ClsDataAccessPack.GetFromToolInfo(strFromKey, strCustominfo, ob);
  678. if (strErr == "" && ds != null)
  679. {
  680. if (ds.Tables[0].Rows.Count > 0)
  681. {
  682. foreach (DataRow dr in ds.Tables[0].Rows)
  683. {
  684. ToolStripButton toolItem = new ToolStripButton();
  685. string str = dr["CAPTION"].ToString();
  686. toolItem.Name = dr["KEY"].ToString();
  687. toolItem.Text = str;
  688. toolItem.Enabled = true ;
  689. toolItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText;
  690. if (CoreImageList.IL_MAINTOOL_IMAGE_LARGE.ContainsKey(dr["IMAGE"].ToString()))
  691. {
  692. toolItem.Image = CoreImageList.IL_MAINTOOL_IMAGE_LARGE[dr["IMAGE"].ToString()] as Image;
  693. }
  694. tool.Items.Add(toolItem);
  695. ToolStripSeparator sep = new ToolStripSeparator();
  696. tool.Items.Add(sep);
  697. }
  698. tool.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(tool_ItemClicked);
  699. }
  700. }
  701. }
  702. catch (Exception ex)
  703. {
  704. }
  705. return tool;
  706. }
  707. private static void tool_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
  708. {
  709. FrmBase fb = (sender as ToolStrip).Parent as FrmBase;
  710. fb.ToolBar_Click(sender, e.ClickedItem.Name);
  711. }
  712. public static ValueList GetValuelistProtectiveSlag(OpeBase ob)
  713. {
  714. try
  715. {
  716. DataSet ds = ClsDataAccessPack.GetProtectiveSlag(ob);
  717. if (ds != null && ds.Tables.Count > 0)
  718. {
  719. DataTable table = ds.Tables[0];
  720. ValueList vlist = GeneralValuelist(ref table, "MATERIELCODE", "MATERIELNAME");
  721. return vlist;
  722. }
  723. }
  724. catch { }
  725. return null;
  726. }
  727. public static ValueList GetBilletMeterWeight_Cool(OpeBase ob)
  728. {
  729. try
  730. {
  731. DataSet ds = ClsDataAccessPack.GetBilletMeterWeight(ob);
  732. if (ds != null && ds.Tables.Count > 0)
  733. {
  734. DataTable table = ds.Tables[0];
  735. ValueList vlist = GeneralValuelist(ref table, "SPEC", "CMW");
  736. return vlist;
  737. }
  738. }
  739. catch { }
  740. return null;
  741. }
  742. public static ValueList GetBilletMeterWeight_Hot(OpeBase ob)
  743. {
  744. try
  745. {
  746. DataSet ds = ClsDataAccessPack.GetBilletMeterWeight(ob);
  747. if (ds != null && ds.Tables.Count > 0)
  748. {
  749. DataTable table = ds.Tables[0];
  750. ValueList vlist = GeneralValuelist(ref table, "SPEC", "HMW");
  751. return vlist;
  752. }
  753. }
  754. catch { }
  755. return null;
  756. }
  757. public static ValueList GetValuelistSapMaterial(OpeBase ob)
  758. {
  759. try
  760. {
  761. DataSet ds = ClsDataAccessPack.GetSapMaterial(ob);
  762. if (ds != null && ds.Tables.Count > 0)
  763. {
  764. DataTable table = ds.Tables[0];
  765. ValueList vlist = GeneralValuelist(ref table, "FS_WLH", "FS_WLMS");
  766. return vlist;
  767. }
  768. }
  769. catch { }
  770. return null;
  771. }
  772. public static string GetJobTableName(LG_PROCESS PROCESS)
  773. {
  774. switch (PROCESS)
  775. {
  776. case LG_PROCESS.HMP:
  777. return "STL_HMP_OPTINFO";
  778. case LG_PROCESS.EAF:
  779. return "STL_EAF_OPTINFO";
  780. case LG_PROCESS.BOF:
  781. return "STL_BOF_OPTINFO";
  782. case LG_PROCESS.CAS:
  783. return "STL_CAS_OPTINFO";
  784. case LG_PROCESS.LF:
  785. return "STL_LFS_OPTINFO";
  786. case LG_PROCESS.CCM:
  787. return "STL_CCM_OPTINFO";
  788. case LG_PROCESS.RH:
  789. return "STL_RHS_OPTINFO";
  790. case LG_PROCESS.VD:
  791. return "STL_VDS_OPTINFO";
  792. }
  793. return "";
  794. }
  795. /// <summary>
  796. /// 设置时间间隔
  797. /// </summary>
  798. /// <param name="cellTimeFrom">起始时间UltraGridCell</param>
  799. /// <param name="cellTimeTo">终止时间UltraGridCell</param>
  800. /// <param name="cellTimeSpan">时间间隔UltraGridCell</param>
  801. public static void GetTimeSpanfromUI(UltraGridCell cellTimeFrom, UltraGridCell cellTimeTo, UltraGridCell cellTimeSpan)
  802. {
  803. try
  804. {
  805. if (cellTimeFrom == null || cellTimeTo == null || cellTimeSpan == null) return;
  806. if (cellTimeFrom.Value == DBNull.Value)
  807. {
  808. cellTimeSpan.Value = "";
  809. return;
  810. }
  811. DateTime dtFrom = Convert.ToDateTime(cellTimeFrom.Value);
  812. DateTime dtTo = DateTime.Now;
  813. if (cellTimeTo.Value != DBNull.Value)
  814. dtTo = Convert.ToDateTime(cellTimeTo.Value);
  815. cellTimeSpan.Value = ClsDataAccessPack.GetTimeSpan(dtFrom, dtTo);
  816. }
  817. catch
  818. {
  819. cellTimeSpan.Value = "";
  820. }
  821. }
  822. /// <summary>
  823. /// 设置净重
  824. /// </summary>
  825. /// <param name="cellGrossWgt">毛重UltraGridCell</param>
  826. /// <param name="cellTareWgt">皮重UltraGridCell</param>
  827. /// <param name="cellNetWgt">净重UltraGridCell</param>
  828. public static void GetNetWeightfromUI(UltraGridCell cellGrossWgt, UltraGridCell cellTareWgt, UltraGridCell cellNetWgt)
  829. {
  830. try
  831. {
  832. if (cellGrossWgt == null || cellTareWgt == null || cellNetWgt == null) return;
  833. string strGrossWgt = Convert.ToString(cellGrossWgt.Text).Trim();
  834. string strTareWgt = Convert.ToString(cellTareWgt.Text).Trim();
  835. double dGrossWgt = 0.0, dTareWgt = 0.0;
  836. if (!double.TryParse(strGrossWgt, out dGrossWgt))
  837. {
  838. cellNetWgt.Value = "";
  839. return;
  840. }
  841. if (!double.TryParse(strTareWgt, out dTareWgt))
  842. {
  843. cellNetWgt.Value = "";
  844. return;
  845. }
  846. cellNetWgt.Value = (dGrossWgt - dTareWgt).ToString("F2");
  847. }
  848. catch
  849. {
  850. cellNetWgt.Value = "";
  851. }
  852. }
  853. /// <summary>
  854. /// 获取下道工序
  855. /// </summary>
  856. /// <param name="ObjectPos">下道工序编码 如:LFS01_IDLE</param>
  857. /// <param name="ObjectID">下道工序加热处理号 如:E010112F00032</param>
  858. /// <param name="strMsg"></param>
  859. /// <returns></returns>
  860. public static bool GetNextPos(string HeatProcessNo, out string ObjectPos, out string ObjectID, out string strMsg, OpeBase ob)
  861. {
  862. ObjectPos = "";
  863. ObjectID = "";
  864. bool bSuccess = false;
  865. object obj = ClsDataAccessPack.GetObject("Core.LgMes.Server.LgJobMgt.ClassManualOperate", "GetNextPos", new object[] { HeatProcessNo }, out bSuccess, out strMsg, ob);
  866. if (!bSuccess) return false;
  867. try
  868. {
  869. ArrayList alist = (ArrayList)obj;
  870. if (alist == null || alist.Count != 2)
  871. {
  872. if (string.IsNullOrEmpty(strMsg)) strMsg = "下道工序信息获取失败!";
  873. return false;
  874. }
  875. ObjectPos = Convert.ToString(alist[0]);
  876. ObjectID = Convert.ToString(alist[1]);
  877. if (string.IsNullOrEmpty(ObjectPos))
  878. {
  879. if (string.IsNullOrEmpty(strMsg)) strMsg = "下道工序信息为空!";
  880. return false;
  881. }
  882. return true;
  883. }
  884. catch (Exception ex)
  885. {
  886. if (string.IsNullOrEmpty(strMsg)) strMsg = ex.Message;
  887. return false;
  888. }
  889. }
  890. /// <summary>
  891. /// 获取指定位置OBJECTID
  892. /// </summary>
  893. /// <param name="ObjectPos"></param>
  894. /// <param name="bSuccess"></param>
  895. /// <param name="strMsg"></param>
  896. /// <returns></returns>
  897. public static string GetDesignatedObjectID(string ObjectPos, out bool bSuccess, out string strMsg, OpeBase ob)
  898. {
  899. bSuccess = false;
  900. strMsg = "";
  901. string SqlID = "GetObjectID.Select";
  902. ArrayList Args = new ArrayList();
  903. Args.Add(ObjectPos);
  904. DataSet ds = ClsDataAccessPack.GetData(SqlID, Args, out bSuccess, out strMsg, ob);
  905. if (bSuccess && ds != null && ds.Tables.Count > 0)
  906. {
  907. if (ds.Tables[0].Rows.Count == 0)
  908. {
  909. bSuccess = false;
  910. strMsg = "指定位置【" + ObjectPos + "】信息不存在!";
  911. return "";
  912. }
  913. return Convert.ToString(ds.Tables[0].Rows[0][0]);
  914. }
  915. return "";
  916. }
  917. /// <summary>
  918. /// 获取本机IP地址
  919. /// </summary>
  920. /// <returns></returns>
  921. public static string GetLocalMachineIP()
  922. {
  923. IPHostEntry myHost = new IPHostEntry();
  924. myHost = Dns.GetHostEntry(Dns.GetHostName());
  925. foreach (IPAddress addr in myHost.AddressList)
  926. if (addr.AddressFamily == AddressFamily.InterNetwork) return addr.ToString();
  927. return "";
  928. }
  929. /// <summary>
  930. /// 提示确认
  931. /// </summary>
  932. /// <param name="strMsg"></param>
  933. /// <returns></returns>
  934. public static bool QuestionConfirm(string strMsg)
  935. {
  936. if (MessageBox.Show(strMsg, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return false;
  937. return true;
  938. }
  939. /// <summary>
  940. /// 手动操作执行后设置相关时间
  941. /// </summary>
  942. /// <param name="clc"></param>
  943. /// <param name="heatProcessNo"></param>
  944. /// <param name="ob"></param>
  945. public static void UpdateTimeNode(COM_STL_COMMAND csc, string heatProcessNo, OpeBase ob)
  946. {
  947. try
  948. {
  949. if (csc == null) return;
  950. if (!HeatProccessNoValid(heatProcessNo)) return;
  951. string TableName = GetTableName(heatProcessNo.Substring(0, 1), TableSort.Job);
  952. string strNow = ClsDataAccessPack.GetSysdate(ob).ToString("yyyy-MM-dd HH:mm:ss");
  953. if (!string.IsNullOrEmpty(csc.FILEDNAME01))
  954. UpdateTableField(heatProcessNo, TableName, csc.FILEDNAME01, "DATE", strNow, ob);
  955. if (!string.IsNullOrEmpty(csc.FILEDNAME02))
  956. UpdateTableField(heatProcessNo, TableName, csc.FILEDNAME02, "DATE", strNow, ob);
  957. if (!string.IsNullOrEmpty(csc.FILEDNAME03))
  958. UpdateTableField(heatProcessNo, TableName, csc.FILEDNAME03, "DATE", strNow, ob);
  959. }
  960. catch { }
  961. }
  962. /// <summary>
  963. /// 作业界面获取相应岗位手动操作配置
  964. /// </summary>
  965. /// <param name="MOC">ManualOperationCollection对象</param>
  966. /// <param name="ob"></param>
  967. public static void getCommandCollection(string strStationCode, CommandCollection CC, OpeBase ob)
  968. {
  969. string strProduceSys = ClsDataAccessPack.GetProduceSys(strStationCode, ob); //获取工序所属产线
  970. strStationCode = strStationCode.Trim();
  971. if (strStationCode.Length > 3) strStationCode = strStationCode.Substring(0, 3).ToUpper();
  972. DataSet ds = ClsDataAccessPack.GetManualOperateConfig(strStationCode, strProduceSys, ob);
  973. if (ds != null && ds.Tables.Count > 0)
  974. {
  975. if (CC != null) CC.Clear();
  976. DataRow row = null;
  977. COM_STL_COMMAND clc = null;
  978. for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
  979. {
  980. try
  981. {
  982. row = ds.Tables[0].Rows[i];
  983. clc = new COM_STL_COMMAND();
  984. clc.SetData(row);
  985. CC.Add(clc);
  986. }
  987. catch { }
  988. }
  989. }
  990. }
  991. /// <summary>
  992. ///验证加热处理号是否正确
  993. /// </summary>
  994. /// <param name="heatProcessNo"></param>
  995. /// <returns></returns>
  996. public static bool HeatProccessNoValid(string heatProcessNo)
  997. {
  998. return (heatProcessNo.Length >= (int)OBJLEN.nHeatProcessNo);
  999. }
  1000. /// <summary>
  1001. /// 验证脱硫处理号是否正确
  1002. /// </summary>
  1003. /// <param name="hudwProcessNo"></param>
  1004. /// <returns></returns>
  1005. public static bool HudwProcessNoValid(string hudwProcessNo)
  1006. {
  1007. return (hudwProcessNo.Length >= (int)OBJLEN.nHudwProcessNo);
  1008. }
  1009. /// <summary>
  1010. /// 获取熔炼号函数
  1011. /// </summary>
  1012. /// <param name="heatProcessNumb"></param>
  1013. /// <returns></returns>
  1014. public static string getSmeltingID(string heatProcessNo)
  1015. {
  1016. heatProcessNo = heatProcessNo.Trim();
  1017. if (heatProcessNo.Length < (int)OBJLEN.nHeatProcessNo) return "";
  1018. return heatProcessNo.Substring((int)OBJLEN.nHeatProcessNo - (int)OBJLEN.nHeatNo, (int)OBJLEN.nHeatNo);
  1019. }
  1020. /// <summary>
  1021. /// 获取岗位字母编码
  1022. /// </summary>
  1023. /// <param name="heatProcessNumb"></param>
  1024. /// <returns></returns>
  1025. public static string getPostLetter(string heatProcessNo)
  1026. {
  1027. heatProcessNo = heatProcessNo.Trim();
  1028. if (heatProcessNo.Length < (int)OBJLEN.nDevStr) return "";
  1029. return heatProcessNo.Substring(0, (int)OBJLEN.nDevStr);
  1030. }
  1031. /// <summary>
  1032. /// 获取岗位数字编码
  1033. /// </summary>
  1034. /// <param name="heatProcessNumb"></param>
  1035. /// <returns></returns>
  1036. public static string getStationCode(string heatProcessNo)
  1037. {
  1038. heatProcessNo = heatProcessNo.Trim();
  1039. if (heatProcessNo.Length < (int)OBJLEN.nDevStr + (int)OBJLEN.nDevCode) return "";
  1040. return heatProcessNo.Substring((int)OBJLEN.nDevStr, (int)OBJLEN.nDevCode);
  1041. }
  1042. /// <summary>
  1043. /// 获取处理次数
  1044. /// </summary>
  1045. /// <param name="heatProcessNumb"></param>
  1046. /// <returns></returns>
  1047. public static string getDealTime(string heatProcessNo)
  1048. {
  1049. heatProcessNo = heatProcessNo.Trim();
  1050. if (heatProcessNo.Length < (int)OBJLEN.nDevStr + (int)OBJLEN.nDevCode + (int)OBJLEN.nDealTime) return "";
  1051. return heatProcessNo.Substring((int)OBJLEN.nDevStr + (int)OBJLEN.nDevCode, (int)OBJLEN.nDealTime);
  1052. }
  1053. /// <summary>
  1054. /// 获取脱硫号函数
  1055. /// </summary>
  1056. /// <param name="heatProcessNumb"></param>
  1057. /// <returns></returns>
  1058. public static string getHudwIdID(string hudwProcessNo)
  1059. {
  1060. hudwProcessNo = hudwProcessNo.Trim();
  1061. if (hudwProcessNo.Length != (int)OBJLEN.nHudwProcessNo) return "";
  1062. return hudwProcessNo.Substring((int)OBJLEN.nHudwProcessNo - (int)OBJLEN.nHudwId, (int)OBJLEN.nHudwId);
  1063. }
  1064. /// <summary>i
  1065. /// 转换熔炼号为中间带-的化学检验号
  1066. /// </summary>
  1067. /// <param name="SmeltID"></param>
  1068. /// <returns></returns>
  1069. public static string ConvertSmeltID(string SmeltID)
  1070. {
  1071. if (SmeltID.Trim().Equals(string.Empty))
  1072. return "";
  1073. string szStr = SmeltID.Substring(0, 3) + "-" + SmeltID.Substring(SmeltID.Length - 5);
  1074. return szStr;
  1075. }
  1076. /// <summary>
  1077. ///工艺代码转换成名称
  1078. /// </summary>
  1079. /// <param name="strCode">如:C、D 分别返回 转炉、吹氩站</param>
  1080. /// <returns></returns>
  1081. public static string GetProccessChineseName(string strCode)
  1082. {
  1083. strCode = strCode.ToUpper().Trim();
  1084. if (strCode.Equals("A") || strCode.Equals("MIS")) return "混铁炉";
  1085. else if (strCode.Equals("B") || strCode.Equals("HMP")) return "脱硫站";
  1086. else if (strCode.Equals("C") || strCode.Equals("BOF")) return "转炉";
  1087. else if (strCode.Equals("D") || strCode.Equals("CAS")) return "吹氩站";
  1088. else if (strCode.Equals("E") || strCode.Equals("LFS")) return "LF炉";
  1089. else if (strCode.Equals("F") || strCode.Equals("RHS")) return "RH炉";
  1090. else if (strCode.Equals("I") || strCode.Equals("VDS")) return "VD炉";
  1091. else if (strCode.Equals("G") || strCode.Equals("CCM")) return "连铸机";
  1092. return "";
  1093. }
  1094. /// <summary>
  1095. /// 获取设备全名
  1096. /// </summary>
  1097. /// <param name="strCode">如:C1、BOF01 都返回 E#转炉</param>
  1098. /// <returns></returns>
  1099. public static string GetDeviceChineseName(string strCode)
  1100. {
  1101. strCode = strCode.ToUpper().Trim();
  1102. if (strCode.Equals("A1") || strCode.Equals("A01") || strCode.Equals("MIS01")) return "1#混铁炉";
  1103. else if (strCode.Equals("A2") || strCode.Equals("A02") || strCode.Equals("MIS02")) return "2#混铁炉";
  1104. else if (strCode.Equals("B1") || strCode.Equals("B01") || strCode.Equals("HMP01")) return "1#脱硫站";
  1105. else if (strCode.Equals("B2") || strCode.Equals("B02") || strCode.Equals("HMP02")) return "2#脱硫站";
  1106. else if (strCode.Equals("C1") || strCode.Equals("C01") || strCode.Equals("BOF01")) return "1#电炉";
  1107. else if (strCode.Equals("C2") || strCode.Equals("C02") || strCode.Equals("BOF02")) return "2#电炉";
  1108. else if (strCode.Equals("C3") || strCode.Equals("C03") || strCode.Equals("BOF03")) return "3#电炉";
  1109. else if (strCode.Equals("C4") || strCode.Equals("C04") || strCode.Equals("BOF04")) return "4#电炉";
  1110. else if (strCode.Equals("C5") || strCode.Equals("C05") || strCode.Equals("BOF05")) return "5#电炉";
  1111. else if (strCode.Equals("D1") || strCode.Equals("D01") || strCode.Equals("CAS01")) return "1#吹氩站";
  1112. else if (strCode.Equals("D2") || strCode.Equals("D02") || strCode.Equals("CAS02")) return "2#吹氩站";
  1113. else if (strCode.Equals("D3") || strCode.Equals("D03") || strCode.Equals("CAS03")) return "3#吹氩站";
  1114. else if (strCode.Equals("D4") || strCode.Equals("D04") || strCode.Equals("CAS04")) return "4#吹氩站";
  1115. else if (strCode.Equals("D5") || strCode.Equals("D05") || strCode.Equals("CAS05")) return "5#吹氩站";
  1116. else if (strCode.Equals("E1") || strCode.Equals("E01") || strCode.Equals("LFS01")) return "1#LF炉";
  1117. else if (strCode.Equals("E2") || strCode.Equals("E02") || strCode.Equals("LFS02")) return "2#LF炉";
  1118. else if (strCode.Equals("E3") || strCode.Equals("E03") || strCode.Equals("LFS03")) return "3#LF炉";
  1119. else if (strCode.Equals("F1") || strCode.Equals("F01") || strCode.Equals("RHS01")) return "1#RH炉";
  1120. else if (strCode.Equals("F2") || strCode.Equals("F02") || strCode.Equals("RHS02")) return "2#RH炉";
  1121. else if (strCode.Equals("F3") || strCode.Equals("F03") || strCode.Equals("RHS03")) return "3#RH炉";
  1122. else if (strCode.Equals("I1") || strCode.Equals("I01") || strCode.Equals("VDS01")) return "1#VD炉";
  1123. else if (strCode.Equals("I2") || strCode.Equals("I02") || strCode.Equals("VDS02")) return "2#VD炉";
  1124. else if (strCode.Equals("I3") || strCode.Equals("I03") || strCode.Equals("VDS03")) return "3#VD炉";
  1125. else if (strCode.Equals("G1") || strCode.Equals("G01") || strCode.Equals("CCM01")) return "1#铸机";
  1126. else if (strCode.Equals("G2") || strCode.Equals("G02") || strCode.Equals("CCM02")) return "2#铸机";
  1127. else if (strCode.Equals("G3") || strCode.Equals("G03") || strCode.Equals("CCM03")) return "3#铸机";
  1128. else if (strCode.Equals("G4") || strCode.Equals("G04") || strCode.Equals("CCM04")) return "4#铸机";
  1129. else if (strCode.Equals("G5") || strCode.Equals("G05") || strCode.Equals("CCM05")) return "5#铸机";
  1130. return "";
  1131. }
  1132. public static string analysChineseName(string _DEVICE_POSITION)
  1133. {
  1134. if (!string.IsNullOrEmpty(_DEVICE_POSITION.Trim()) && _DEVICE_POSITION.Trim().Length >= 3)
  1135. return GetProccessChineseName(_DEVICE_POSITION.Trim());
  1136. return "";
  1137. }
  1138. /// <summary>
  1139. /// 获取设备编号
  1140. /// </summary>
  1141. /// <param name="strCode">如:C1、BOF01 都返回 E</param>
  1142. /// <returns></returns>
  1143. public static string GetDeviceShortCode(string strCode)
  1144. {
  1145. strCode = strCode.ToUpper().Trim();
  1146. if (strCode.Equals("A1") || strCode.Equals("MIS01")) return "1";
  1147. else if (strCode.Equals("A2") || strCode.Equals("MIS02")) return "2";
  1148. else if (strCode.Equals("B1") || strCode.Equals("HMP01")) return "1";
  1149. else if (strCode.Equals("B2") || strCode.Equals("HMP02")) return "2";
  1150. else if (strCode.Equals("C1") || strCode.Equals("BOF01")) return "1";
  1151. else if (strCode.Equals("C2") || strCode.Equals("BOF02")) return "2";
  1152. else if (strCode.Equals("C3") || strCode.Equals("BOF03")) return "3";
  1153. else if (strCode.Equals("C4") || strCode.Equals("BOF04")) return "4";
  1154. else if (strCode.Equals("C5") || strCode.Equals("BOF05")) return "5";
  1155. else if (strCode.Equals("D1") || strCode.Equals("CAS01")) return "1";
  1156. else if (strCode.Equals("D2") || strCode.Equals("CAS02")) return "2";
  1157. else if (strCode.Equals("D3") || strCode.Equals("CAS03")) return "3";
  1158. else if (strCode.Equals("D4") || strCode.Equals("CAS04")) return "4";
  1159. else if (strCode.Equals("D5") || strCode.Equals("CAS05")) return "5";
  1160. else if (strCode.Equals("E1") || strCode.Equals("LFS01")) return "1";
  1161. else if (strCode.Equals("E2") || strCode.Equals("LFS02")) return "2";
  1162. else if (strCode.Equals("E3") || strCode.Equals("LFS03")) return "3";
  1163. else if (strCode.Equals("G1") || strCode.Equals("CCM01")) return "1";
  1164. else if (strCode.Equals("G2") || strCode.Equals("CCM02")) return "2";
  1165. else if (strCode.Equals("G3") || strCode.Equals("CCM03")) return "3";
  1166. else if (strCode.Equals("G4") || strCode.Equals("CCM04")) return "4";
  1167. else if (strCode.Equals("G5") || strCode.Equals("CCM05")) return "5";
  1168. return "";
  1169. }
  1170. /// <summary>
  1171. /// 解析工艺路线
  1172. /// </summary>
  1173. /// <param name="strPlan_Lines">工艺路线编码</param>
  1174. /// <returns></returns>
  1175. public static string analysPlan_Lines(string strPlan_Lines)
  1176. {
  1177. string strLines = "";
  1178. strPlan_Lines = strPlan_Lines.Trim();
  1179. string strCode = "";
  1180. for (int i = 0; i < strPlan_Lines.Length; i++)
  1181. {
  1182. try
  1183. {
  1184. strCode = GetProccessChineseName(strPlan_Lines.Substring(i, 1));
  1185. if (string.IsNullOrEmpty(strCode)) continue;
  1186. strLines += (string.IsNullOrEmpty(strLines) ? "" : "→") + strCode;
  1187. }
  1188. catch { }
  1189. }
  1190. return strLines;
  1191. }
  1192. /// <summary>
  1193. /// 解析作业路线
  1194. /// </summary>
  1195. /// <param name="craftPath">作业路线代码</param>
  1196. /// <returns></returns>
  1197. public static string analysPath(string craftPath)
  1198. {
  1199. string strPath = "";
  1200. craftPath = craftPath.Trim();
  1201. string strCode = "";
  1202. for (int i = 0; i < craftPath.Length; i += 2)
  1203. {
  1204. try
  1205. {
  1206. strCode = GetDeviceChineseName(craftPath.Substring(i, 2));
  1207. if (string.IsNullOrEmpty(strCode)) continue;
  1208. strPath += (string.IsNullOrEmpty(strPath) ? "" : "→") + strCode;
  1209. }
  1210. catch { }
  1211. }
  1212. return strPath;
  1213. }
  1214. /// <summary>
  1215. /// 根据岗位号获取工序
  1216. /// </summary>
  1217. /// <param name="_DEVICE_POSITION">岗位编码:BOF01</param>
  1218. /// <returns>工序代码:C</returns>
  1219. public static string analysProcess(string _DEVICE_POSITION)
  1220. {
  1221. string strProcess = ""; //工序代码
  1222. if (!string.IsNullOrEmpty(_DEVICE_POSITION.Trim()) && _DEVICE_POSITION.Trim().Length >= 3)
  1223. {
  1224. switch (_DEVICE_POSITION.Trim().Substring(0, 3))
  1225. {
  1226. case "HMP":
  1227. strProcess = "B";
  1228. break;
  1229. case "EAF":
  1230. strProcess = "C";
  1231. break;
  1232. case "BOF":
  1233. strProcess = "C";
  1234. break;
  1235. case "CAS":
  1236. strProcess = "D";
  1237. break;
  1238. case "LFS":
  1239. strProcess = "E";
  1240. break;
  1241. case "RHS":
  1242. strProcess = "F";
  1243. break;
  1244. case "CCM":
  1245. strProcess = "G";
  1246. break;
  1247. case "VDS":
  1248. strProcess = "I";
  1249. break;
  1250. default:
  1251. break;
  1252. }
  1253. }
  1254. return strProcess;
  1255. }
  1256. /// <summary>
  1257. /// 根据代码解析工位名
  1258. /// </summary>
  1259. /// <param name="_DEVICE_POSITION">岗位编码,BOF01_FRONT</param>
  1260. /// <returns>工位中文名</returns>
  1261. public static string analysPosName(string _DEVICE_POSITION)
  1262. {
  1263. string strChineseName = ""; //工序代码
  1264. string strPos = ""; //岗位
  1265. string strWsID = ""; //工位
  1266. if (!string.IsNullOrEmpty(_DEVICE_POSITION.Trim()))
  1267. {
  1268. strPos = _DEVICE_POSITION.Trim().Substring(0, 3).ToUpper();
  1269. strWsID = _DEVICE_POSITION.Trim().Substring(6).ToUpper();
  1270. switch (strWsID)
  1271. {
  1272. case "IDLE":
  1273. strChineseName = "缓冲位";
  1274. break;
  1275. case "FRONT":
  1276. if (strPos == "CAS") strChineseName = "等待位";
  1277. else if (strPos == "CCM") strChineseName = "换包位";
  1278. else if (strPos == "LFS" || strPos == "RHS") strChineseName = "1#小车位";
  1279. else if (strPos == "HMP") strChineseName = "小车位";
  1280. break;
  1281. case "DEVICE":
  1282. if (strPos == "BOF") strChineseName = "吹炼位";
  1283. else if (strPos == "CCM") strChineseName = "浇铸位";
  1284. else strChineseName = "处理位";
  1285. break;
  1286. case "BACK":
  1287. if (strPos == "BOF") strChineseName = "出钢位";
  1288. else strChineseName = "2#小车位";
  1289. break;
  1290. case "OVER":
  1291. strChineseName = "生产结束";
  1292. break;
  1293. default:
  1294. break;
  1295. }
  1296. }
  1297. return strChineseName;
  1298. }
  1299. /// <summary>
  1300. /// 解析执行状态
  1301. /// </summary>
  1302. /// <param name="heatState">执行状态代码</param>
  1303. /// <returns></returns>
  1304. public static string analysHeat_State(string heatState)
  1305. {
  1306. string strHeat_State = "";
  1307. if (!string.IsNullOrEmpty(heatState.Trim()))
  1308. {
  1309. switch (heatState.Trim())
  1310. {
  1311. case "03":
  1312. strHeat_State = "排产状态";
  1313. break;
  1314. case "04":
  1315. strHeat_State = "正在转炉";
  1316. break;
  1317. case "05":
  1318. strHeat_State = "正在吹氩";
  1319. break;
  1320. case "06":
  1321. strHeat_State = "正在LF炉";
  1322. break;
  1323. case "07":
  1324. strHeat_State = "正在RH炉";
  1325. break;
  1326. case "08":
  1327. strHeat_State = "正在VD炉";
  1328. break;
  1329. case "09":
  1330. strHeat_State = "正在连铸";
  1331. break;
  1332. case "10":
  1333. strHeat_State = "生产完成";
  1334. break;
  1335. default:
  1336. strHeat_State = "执行异常";
  1337. break;
  1338. }
  1339. }
  1340. return strHeat_State;
  1341. }
  1342. /// <summary>
  1343. /// 解析成分编码
  1344. /// </summary>
  1345. /// <param name="craftPath">成分编码</param>
  1346. /// <returns></returns>
  1347. public static string ChemelementPath(string craftPath)
  1348. {
  1349. string path = "";
  1350. try
  1351. {
  1352. string StationCode = craftPath.Substring(0, 1);
  1353. switch (StationCode)
  1354. {
  1355. case "B":
  1356. path = "脱硫";
  1357. break;
  1358. case "C":
  1359. path = "转炉";
  1360. break;
  1361. case "D":
  1362. if (craftPath.Substring(0, 2) == "DQ")
  1363. path = "CAS前";
  1364. else if (craftPath.Substring(0, 2) == "DH")
  1365. path = "CAS后";
  1366. break;
  1367. case "E":
  1368. path = "LF炉";
  1369. break;
  1370. case "F":
  1371. path = "RH炉";
  1372. break;
  1373. case "I":
  1374. path = "VD炉";
  1375. break;
  1376. case "G":
  1377. path = "连铸";
  1378. break;
  1379. }
  1380. }
  1381. catch { }
  1382. return path;
  1383. }
  1384. public static DateTime GetServerDateTime(OpeBase ob)
  1385. {
  1386. string strErr = "";
  1387. bool bSuccess = false;
  1388. DataSet ds = ClsDataAccessPack.GetData("frmSysdate.select", new ArrayList { }, out bSuccess, out strErr, ob);
  1389. DateTime currTime = DateTime.Now;
  1390. if (strErr == "" && ds != null)
  1391. {
  1392. currTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["VDATE"]);
  1393. }
  1394. return currTime;
  1395. }
  1396. public static DateTime? GetLastOptionTime(OpeBase ob, LG_PROCESS Process)
  1397. {
  1398. string strErr = "";
  1399. bool bSuccess = false;
  1400. string sqlID = "";
  1401. switch (Process)
  1402. {
  1403. case LG_PROCESS.EAF:
  1404. sqlID = "SelectEafMaxEndTime.Select";
  1405. break;
  1406. case LG_PROCESS.LF:
  1407. sqlID = "SelectLfMaxEndTime.Select";
  1408. break;
  1409. case LG_PROCESS.VD:
  1410. sqlID = "SelectVdMaxEndTime.Select";
  1411. break;
  1412. case LG_PROCESS.RH:
  1413. sqlID = "SelectRhMaxEndTime.Select";
  1414. break;
  1415. case LG_PROCESS.CCM:
  1416. sqlID = "SelectCcmMaxEndTime.Select";
  1417. break;
  1418. default:
  1419. return null;
  1420. }
  1421. DataSet ds = ClsDataAccessPack.GetData(sqlID, new ArrayList { }, out bSuccess, out strErr, ob);
  1422. DateTime? currTime = null;
  1423. if (strErr == "" && ds != null)
  1424. {
  1425. currTime = Convert.ToDateTime(ds.Tables[0].Rows[0]["VDATE"]);
  1426. }
  1427. return currTime;
  1428. }
  1429. #region 化学成分数据处理
  1430. public static void AppendTableRows(ref DataTable ATable, int newRowsCount)
  1431. {
  1432. string[] sTmp = new string[ATable.Columns.Count];
  1433. for (int i = 0; i < newRowsCount; i++)
  1434. ATable.Rows.Add(sTmp);
  1435. }
  1436. /// <summary>
  1437. /// 设置化学元素实时值
  1438. /// </summary>
  1439. /// <param name="row"></param>
  1440. /// <param name="obj"></param>
  1441. /// <param name="key"></param>
  1442. /// <param name="dt"></param>
  1443. public static void SetCraftElemGridData(int row, JOB_CHEMELEMENT obj, string key, ref DataTable dt)
  1444. {
  1445. try
  1446. {
  1447. if (row < dt.Rows.Count)
  1448. {
  1449. for (int i = 0; i < dt.Rows[row].ItemArray.Length; i++)
  1450. {
  1451. switch (dt.Columns[i].ColumnName)
  1452. {
  1453. case "TYPESYMBOL":
  1454. dt.Rows[row][i] = key;
  1455. break;
  1456. case "C":
  1457. dt.Rows[row][i] = obj.C;
  1458. break;
  1459. case "Si":
  1460. dt.Rows[row][i] = obj.SI;
  1461. break;
  1462. case "Mn":
  1463. dt.Rows[row][i] = obj.MN;
  1464. break;
  1465. case "P":
  1466. dt.Rows[row][i] = obj.P;
  1467. break;
  1468. case "S":
  1469. dt.Rows[row][i] = obj.S;
  1470. break;
  1471. case "Als":
  1472. dt.Rows[row][i] = obj.ALS;
  1473. break;
  1474. case "V":
  1475. dt.Rows[row][i] = obj.V;
  1476. break;
  1477. case "Nb":
  1478. dt.Rows[row][i] = obj.NB;
  1479. break;
  1480. case "Ti":
  1481. dt.Rows[row][i] = obj.TI;
  1482. break;
  1483. case "Ca":
  1484. dt.Rows[row][i] = obj.CA;
  1485. break;
  1486. case "B":
  1487. dt.Rows[row][i] = obj.B;
  1488. break;
  1489. case "Asn":
  1490. dt.Rows[row][i] = obj.ASN;
  1491. break;
  1492. case "Sn":
  1493. dt.Rows[row][i] = obj.SN;;
  1494. break;
  1495. case "Cu":
  1496. dt.Rows[row][i] = obj.CU;;
  1497. break;
  1498. case "Sb":
  1499. dt.Rows[row][i] = obj.SB ;
  1500. break;
  1501. case "Alt":
  1502. dt.Rows[row][i] = obj.ALT; ;
  1503. break;
  1504. case "Cr":
  1505. dt.Rows[row][i] = obj.CR; ;
  1506. break;
  1507. case "Ni":
  1508. dt.Rows[row][i] = obj.NI; ;
  1509. break;
  1510. case "Mo":
  1511. dt.Rows[row][i] = obj.MO; ;
  1512. break;
  1513. case "O":
  1514. dt.Rows[row][i] = obj.O; ;
  1515. break;
  1516. case "N":
  1517. dt.Rows[row][i] = obj.N; ;
  1518. break;
  1519. case "H":
  1520. dt.Rows[row][i] = obj.H; ;
  1521. break;
  1522. case "Ceq":
  1523. dt.Rows[row][i] = obj.CEQ; ;
  1524. break;
  1525. case "Pcm":
  1526. dt.Rows[row][i] = obj.PCM ; ;
  1527. break;
  1528. case "Cev":
  1529. dt.Rows[row][i] = obj.CEV; ;
  1530. break;
  1531. }
  1532. }
  1533. //dt.Rows[row]["TYPESYMBOL"] = key;
  1534. //dt.Rows[row]["C"] = obj.C;
  1535. //dt.Rows[row]["Si"] = obj.SI;
  1536. //dt.Rows[row]["Mn"] = obj.MN;
  1537. //dt.Rows[row]["P"] = obj.P;
  1538. //dt.Rows[row]["S"] = obj.S;
  1539. //dt.Rows[row]["Als"] = obj.ALS;
  1540. //dt.Rows[row]["V"] = obj.V;
  1541. //dt.Rows[row]["Nb"] = obj.NB;
  1542. //dt.Rows[row]["Ti"] = obj.TI;
  1543. //dt.Rows[row]["Ca"] = obj.CA;
  1544. //dt.Rows[row]["B"] = obj.B;
  1545. //dt.Rows[row]["Asn"] = obj.ASN;
  1546. //dt.Rows[row]["Sn"] = obj.SN;
  1547. //dt.Rows[row]["Cu"] = obj.CU;
  1548. //dt.Rows[row]["Sb"] = obj.SB;
  1549. //dt.Rows[row]["Alt"] = obj.ALT;
  1550. //dt.Rows[row]["Cr"] = obj.CR;
  1551. //dt.Rows[row]["Ni"] = obj.NI;
  1552. //dt.Rows[row]["Mo"] = obj.MO;
  1553. //dt.Rows[row]["O"] = obj.O;
  1554. //dt.Rows[row]["N"] = obj.N;
  1555. //dt.Rows[row]["H"] = obj.H;
  1556. //dt.Rows[row]["Ceq"] = obj.CEQ;
  1557. //dt.Rows[row]["Pcm"] = obj.PCM;
  1558. //dt.Rows[row]["Cev"] = obj.CEV;
  1559. }
  1560. //C、Si、Mn、P、S、Als、V、Nb、Ti、As、Sn、Cu、Sb、Alt、O、N、H
  1561. }
  1562. catch (Exception ex)
  1563. {
  1564. string Msg = ex.Message;
  1565. }
  1566. }
  1567. /// <summary>
  1568. /// 设置元素标准值
  1569. /// </summary>
  1570. /// <param name="row">表行数</param>
  1571. /// <param name="dr">行记录</param>
  1572. /// <param name="dt">被设置的表</param>
  1573. public static void SetStandardElemData(int row, DataRow dr, ref DataTable dt )
  1574. {
  1575. try
  1576. {
  1577. // 取得元素名称
  1578. string szEleName = dr["basename"].ToString();
  1579. dt.Rows[row]["TYPESYMBOL"] = dr["STD_DC"].ToString() == "1" ? "国标" : (dr["STD_DC"].ToString() == "2" ? "内控" : "客户");
  1580. if (dr["stdmax"].ToString() != "" && dr["stdmin"].ToString() != "")
  1581. dt.Rows[row][szEleName] = dr["stdmin"].ToString() + "~" + dr["stdmax"].ToString();
  1582. else if (dr["stdmax"].ToString() != "" && dr["stdmin"].ToString() == "")
  1583. dt.Rows[row][szEleName] = "≤ " + dr["stdmax"].ToString();
  1584. else if (dr["stdmax"].ToString() == "" && dr["stdmin"].ToString() != "")
  1585. dt.Rows[row][szEleName] = "> " + dr["stdmin"].ToString();
  1586. }
  1587. catch { }
  1588. }
  1589. /// <summary>
  1590. /// 与标准值进行比对
  1591. /// </summary>
  1592. /// <param name="dtStd">工艺标准表</param>
  1593. /// <param name="dtSource">被填充数据源的表</param>
  1594. /// <param name="szCode">比对的编码</param>
  1595. /// <param name="uGrd">被填充数据的GRID</param>
  1596. /// <param name="uGrd">被填充的数据行</param>
  1597. /// <param name="strName">岗位编码</param>
  1598. public static void CompareStandard(DataTable dtStd, DataTable dtSource, string szCode, UltraGrid uGrd, int iRow)
  1599. {
  1600. if (dtStd != null && dtStd.Rows.Count > 0)
  1601. {
  1602. DataRow[] dr = null;
  1603. Decimal dZXZ = 0, dZDZ = 0, dVal = 0;
  1604. try
  1605. {
  1606. dr = dtStd.Select(" ITEM1 = '" + szCode + "'");
  1607. if (dr.Length > 0)
  1608. {
  1609. if (dr[0]["ITEM1MAX"].ToString() != "" && dr[0]["ITEM1MIN"].ToString() != "")
  1610. dtSource.Rows[iRow]["设定范围"] = dr[0]["ITEM1MIN"].ToString() + "-" + dr[0]["ITEM1MAX"].ToString();
  1611. else if (dr[0]["ITEM1MAX"].ToString() != "" && dr[0]["ITEM1MIN"].ToString() == "")
  1612. dtSource.Rows[iRow]["设定范围"] = "≤ " + dr[0]["ITEM1MAX"].ToString();
  1613. else if (dr[0]["ITEM1MAX"].ToString() == "" && dr[0]["ITEM1MIN"].ToString() != "")
  1614. dtSource.Rows[iRow]["设定范围"] = "> " + dr[0]["ITEM1MIN"].ToString();
  1615. if (!string.IsNullOrEmpty(dr[0]["ITEM1MIN"].ToString()))
  1616. dZXZ = Convert.ToDecimal(dr[0]["ITEM1MIN"]);
  1617. if (!string.IsNullOrEmpty(dr[0]["ITEM1MAX"].ToString()))
  1618. dZDZ = Convert.ToDecimal(dr[0]["ITEM1MAX"]);
  1619. //获取当前实际值
  1620. if (!string.IsNullOrEmpty(uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Value.ToString()))
  1621. dVal = Convert.ToDecimal(uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Value);
  1622. if ((dVal > 0) && (dVal < dZXZ))
  1623. uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Appearance.ForeColor = Color.Red; // 下限报警红色显示
  1624. else if ((dVal > 0) && (dVal > dZDZ) && dZDZ > 0)
  1625. uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Appearance.ForeColor = Color.Red; // 上限报警蓝色显示
  1626. else
  1627. uGrd.DisplayLayout.Rows[iRow].Cells["实际值"].Appearance.ForeColor = Color.Black;
  1628. }
  1629. }
  1630. catch { }
  1631. uGrd.Refresh();
  1632. }
  1633. }
  1634. /// <summary>
  1635. /// 比较标准
  1636. /// </summary>
  1637. /// <param name="strStandard">标准</param>
  1638. /// <param name="strValue">实际</param>
  1639. /// <returns>0正确 -1错误</returns>
  1640. public static int CompareSatandard(string strStandard, string strValue)
  1641. {
  1642. strStandard = strStandard.Trim();
  1643. strValue = strValue.Trim();
  1644. if (strValue.Length == 0 || strStandard.Length == 0)
  1645. return 0;
  1646. string strMin = "", strMax = "";
  1647. try
  1648. {
  1649. if (strStandard.IndexOf("~") > 0)
  1650. {
  1651. strMin = strStandard.Substring(0, strStandard.IndexOf("~")).Trim();
  1652. strMax = strStandard.Substring(strStandard.IndexOf("~") + 1).Trim();
  1653. if (decimal.Parse(strValue) >= decimal.Parse(strMin) &&
  1654. decimal.Parse(strValue) <= decimal.Parse(strMax))
  1655. {
  1656. return 0;
  1657. }
  1658. else
  1659. {
  1660. return -1;
  1661. }
  1662. }
  1663. else if (strStandard.IndexOf("<=") >= 0)
  1664. {
  1665. strMin = "";
  1666. strMax = strStandard.Substring(strStandard.IndexOf("<=") + 2).Trim();
  1667. if (decimal.Parse(strValue) <= decimal.Parse(strMax))
  1668. {
  1669. return 0;
  1670. }
  1671. else
  1672. {
  1673. return -1;
  1674. }
  1675. }
  1676. else if (strStandard.IndexOf(">=") >= 0)
  1677. {
  1678. strMin = strStandard.Substring(0, strStandard.IndexOf(">=")).Trim();
  1679. strMax = "";
  1680. if (decimal.Parse(strValue) >= decimal.Parse(strMin))
  1681. {
  1682. return 0;
  1683. }
  1684. else
  1685. {
  1686. return -1;
  1687. }
  1688. }
  1689. else if (strStandard.IndexOf("<") >= 0 && strStandard.IndexOf("=") == -1)
  1690. {
  1691. strMin = "";
  1692. strMax = strStandard.Substring(strStandard.IndexOf("<") + 1).Trim();
  1693. if (decimal.Parse(strValue) < decimal.Parse(strMax))
  1694. {
  1695. return 0;
  1696. }
  1697. else
  1698. {
  1699. return -1;
  1700. }
  1701. }
  1702. else if (strStandard.IndexOf(">") >= 0 && strStandard.IndexOf("=") == -1)
  1703. {
  1704. strMin = strStandard.Substring(0, strStandard.IndexOf(">")).Trim();
  1705. strMax = "";
  1706. if (decimal.Parse(strValue) > decimal.Parse(strMin))
  1707. {
  1708. return 0;
  1709. }
  1710. else
  1711. {
  1712. return -1;
  1713. }
  1714. }
  1715. else if (strStandard.IndexOf("=") >= 0)
  1716. {
  1717. strMin = "";
  1718. strMax = strStandard.Substring(strStandard.IndexOf("=") + 1).Trim();
  1719. if (decimal.Parse(strValue) == decimal.Parse(strMax))
  1720. {
  1721. return 0;
  1722. }
  1723. else
  1724. {
  1725. return -1;
  1726. }
  1727. }
  1728. }
  1729. catch { }
  1730. return 0;
  1731. }
  1732. #endregion
  1733. #region 温度处理
  1734. /// <summary>
  1735. /// 设置温度实时值
  1736. /// </summary>
  1737. /// <param name="dt"></param>
  1738. public static void SetGridTemperature(DataTable tbl, string strItem, string strRange, string strValue, string strTime, int iRow)
  1739. {
  1740. try
  1741. {
  1742. if (tbl != null && tbl.Rows.Count >= iRow + 1)
  1743. {
  1744. tbl.Rows[iRow]["项目名"] = strItem;
  1745. tbl.Rows[iRow]["设定范围"] = strRange;
  1746. tbl.Rows[iRow]["实际值"] = strValue;
  1747. tbl.Rows[iRow]["采样时间"] = strTime;
  1748. }
  1749. }
  1750. catch (Exception ex)
  1751. {
  1752. Debug.Print(ex.Message);
  1753. }
  1754. }
  1755. #endregion
  1756. #region 作业界面数据手工修改
  1757. //跟据岗位获取数据库表名
  1758. public static string GetTableName(string _posCode, TableSort _tblSort)
  1759. {
  1760. string JobTableName = ""; //作业表名
  1761. string AddTableName = ""; //物料消耗
  1762. switch (_posCode)
  1763. {
  1764. case "B":
  1765. JobTableName = "STL_HMP_OPTINFO";
  1766. AddTableName = "STL_HMP_ADDITIVES";
  1767. break;
  1768. case "C":
  1769. JobTableName = "STL_BOF_OPTINFO";
  1770. AddTableName = "STL_BOF_ADDITIVES";
  1771. break;
  1772. case "D":
  1773. JobTableName = "STL_CAS_OPTINFO";
  1774. AddTableName = "STL_CAS_ADDITIVES";
  1775. break;
  1776. case "E":
  1777. JobTableName = "STL_LFS_OPTINFO";
  1778. AddTableName = "STL_LFS_ADDITIVES";
  1779. break;
  1780. case "G":
  1781. JobTableName = "STL_CCM_OPTINFO";
  1782. AddTableName = "STL_CCM_ADDITIVES";
  1783. break;
  1784. default:
  1785. break;
  1786. }
  1787. return (_tblSort == TableSort.Job ? JobTableName : AddTableName);
  1788. }
  1789. //时间显示框,在需要更改日期的时候弹出日期选择框
  1790. public static void SetCellDateTime(string _heatProcessNo, UltraGridCell _cell, OpeBase ob)
  1791. {
  1792. try
  1793. {
  1794. frmSetTime frm = new frmSetTime(_cell.Value);
  1795. frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
  1796. if (frm.ShowDialog() == DialogResult.OK)
  1797. {
  1798. string TableName = GetTableName(_heatProcessNo.Substring(0, 1), TableSort.Job);
  1799. DateTime Value = frm.SelectDate;
  1800. bool bSuccess = UpdateTableField(_heatProcessNo, TableName, _cell.Column.Key.ToString(), "DATE", Value.ToString("yyyy-MM-dd HH:mm:ss"), ob);
  1801. if (bSuccess) _cell.Value = Value;
  1802. }
  1803. }
  1804. catch (Exception ex)
  1805. {
  1806. Trace.WriteLine(ex.Message);
  1807. }
  1808. }
  1809. //时间显示框,在需要更改日期的时候弹出日期选择框(脱硫)
  1810. public static void SetHmpCellDateTime(string _heatProcessNo, UltraGridCell _cell, OpeBase ob)
  1811. {
  1812. try
  1813. {
  1814. frmSetTime frm = new frmSetTime(_cell.Value);
  1815. frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
  1816. if (frm.ShowDialog() == DialogResult.OK)
  1817. {
  1818. string TableName = GetTableName(_heatProcessNo.Substring(0, 1), TableSort.Job);
  1819. DateTime Value = frm.SelectDate;
  1820. bool bSuccess = UpdateHmpTableField(_heatProcessNo, TableName, _cell.Column.Key.ToString(), "DATE", Value.ToString("yyyy-MM-dd HH:mm:ss"), ob);
  1821. if (bSuccess) _cell.Value = Value;
  1822. }
  1823. }
  1824. catch (Exception ex)
  1825. {
  1826. Trace.WriteLine(ex.Message);
  1827. }
  1828. }
  1829. public static void UpdateTableField(string _heatProcessNo, UltraGridCell _cell, string _value, OpeBase ob)
  1830. {
  1831. if (_cell == null) return;
  1832. try
  1833. {
  1834. string strTableName = GetTableName(ClsBusinessPack.getPostLetter(_heatProcessNo), TableSort.Job);
  1835. string strColumnName = _cell.Column.Key.ToUpper();
  1836. if (UpdateTableField(_heatProcessNo, strTableName, strColumnName, "VARCHAR2", _value, ob)) _cell.Activated = false;
  1837. }
  1838. catch (Exception ex)
  1839. {
  1840. Trace.WriteLine(ex.Message);
  1841. }
  1842. }
  1843. public static void UpdateTableField_DTT(string _heatProcessNo, UltraGridCell _cell, string _value, OpeBase ob)
  1844. {
  1845. if (_cell == null) return;
  1846. try
  1847. {
  1848. string strTableName = GetTableName(ClsBusinessPack.getPostLetter(_heatProcessNo), TableSort.Job);
  1849. string strColumnName = _cell.Column.Key.ToUpper();
  1850. if (UpdateTableField(_heatProcessNo, strTableName, strColumnName, "DATE", _value, ob)) _cell.Activated = false;
  1851. }
  1852. catch (Exception ex)
  1853. {
  1854. Trace.WriteLine(ex.Message);
  1855. }
  1856. }
  1857. public static void UpdateTableField_NUM(string _heatProcessNo, UltraGridCell _cell, string _value, OpeBase ob)
  1858. {
  1859. if (_cell == null) return;
  1860. try
  1861. {
  1862. string strTableName = GetTableName(ClsBusinessPack.getPostLetter(_heatProcessNo), TableSort.Job);
  1863. string strColumnName = _cell.Column.Key.ToUpper();
  1864. if (UpdateTableField(_heatProcessNo, strTableName, strColumnName, "NUMBER", _value, ob)) _cell.Activated = false;
  1865. }
  1866. catch (Exception ex)
  1867. {
  1868. Trace.WriteLine(ex.Message);
  1869. }
  1870. }
  1871. public static void UpdateTableField_NUM(string _heatProcessNo, UltraGridCell _cell, OpeBase ob)
  1872. {
  1873. if (_cell == null) return;
  1874. try
  1875. {
  1876. frmInputDecimal frm = new frmInputDecimal(Convert.ToString(_cell.Value));
  1877. frm.Location = ClsControlPack.GetChildWindowLocation(frm.Size);
  1878. if (frm.ShowDialog() == DialogResult.OK)
  1879. {
  1880. if (!frm.ValueChanged) return;
  1881. UpdateTableField(_heatProcessNo, _cell, frm.Value, ob);
  1882. }
  1883. }
  1884. catch (Exception ex)
  1885. {
  1886. Trace.WriteLine(ex.Message);
  1887. }
  1888. }
  1889. /// <summary>
  1890. /// 更新脱硫作业表字段信息
  1891. /// </summary>
  1892. /// <param name="_heatProcessNo">加热处理号</param>
  1893. /// <param name="strTableName">表名</param>
  1894. /// <param name="strColumnName">更新字段</param>
  1895. /// <param name="strDataType">数据类型</param>
  1896. /// <param name="Upt_Value">目标值</param>
  1897. /// <param name="ob">服务端URL</param>
  1898. public static bool UpdateHmpTableField(string _heatProcessNo, string strTableName, string strColumnName,
  1899. string strDataType, object Upt_Value, OpeBase ob)
  1900. {
  1901. string strSqlID = ""; //sqlId
  1902. string strErr = ""; //错误信息
  1903. bool bSuccess = false;
  1904. try
  1905. {
  1906. if (_heatProcessNo.Length == 0) return true;
  1907. strSqlID = "UpdateHMPTableField.Update"; //SQLID
  1908. Hashtable Args = new Hashtable();
  1909. Args.Add("I1", strTableName); //表名
  1910. Args.Add("I2", _heatProcessNo); //加热处理号
  1911. Args.Add("I3", strColumnName.ToUpper()); //列名
  1912. Args.Add("I4", strDataType); //数据类型
  1913. Args.Add("I5", Upt_Value.ToString()); //更新值
  1914. string strMsg = "";
  1915. bSuccess = ClsDataAccessPack.DoProcedure(strSqlID, Args, out strMsg, ob);
  1916. if (!bSuccess) MessageBox.Show("数据更新失败!\n" + strMsg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  1917. }
  1918. catch (Exception ex)
  1919. {
  1920. if (!bSuccess) MessageBox.Show("数据更新出错!\n" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  1921. }
  1922. return bSuccess;
  1923. }
  1924. //更新作业表字段信息
  1925. public static bool UpdateTableField(string _heatProcessNo, string _tableName, string _columnName, string _dataType, string _value, OpeBase ob)
  1926. {
  1927. bool bSuccess = false;
  1928. try
  1929. {
  1930. if (_heatProcessNo.Length == 0) return true;
  1931. string strHeatNo = ClsBusinessPack.getSmeltingID(_heatProcessNo);
  1932. string strStationCode = ClsBusinessPack.getStationCode(_heatProcessNo);
  1933. string strDealTime = ClsBusinessPack.getDealTime(_heatProcessNo);
  1934. string strSqlID = "UpdateTableField.Update";
  1935. Hashtable Args = new Hashtable();
  1936. Args.Add("I1", _tableName); //表名
  1937. Args.Add("I2", strHeatNo); //炉号
  1938. Args.Add("I3", strStationCode); //岗位
  1939. Args.Add("I4", strDealTime); //处理次数
  1940. Args.Add("I5", _columnName.ToUpper()); //列名
  1941. Args.Add("I6", _dataType.ToUpper()); //数据类型
  1942. Args.Add("I7", _value); //更新值
  1943. string strMsg = "";
  1944. bSuccess = ClsDataAccessPack.DoProcedure(strSqlID, Args, out strMsg, ob);
  1945. if (!bSuccess) MessageBox.Show("数据更新失败!\n" + strMsg, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  1946. }
  1947. catch (Exception ex)
  1948. {
  1949. if (!bSuccess) MessageBox.Show("数据更新出错!\n" + ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  1950. }
  1951. return bSuccess;
  1952. }
  1953. #endregion
  1954. #region 物料消耗
  1955. public static DataSet GetHopperConfig(string DEVICE_POSITION, out bool bSuccess, out string strMsg, OpeBase ob)
  1956. {
  1957. strMsg = "";
  1958. bSuccess = false;
  1959. string strSql = "";
  1960. //strSql += Convert.ToString("select a.MSNUMID,").Trim() + " ";
  1961. //strSql += Convert.ToString(" a.MSLOCATION,").Trim() + " ";
  1962. //strSql += Convert.ToString(" a.MATERIELTYPE,").Trim() + " ";
  1963. //strSql += Convert.ToString(" a.MATERIELCODE,").Trim() + " ";
  1964. //strSql += Convert.ToString(" a.MATERIELUNITS,").Trim() + " ";
  1965. //strSql += Convert.ToString(" a.JMTYPE,").Trim() + " ";
  1966. //strSql += Convert.ToString(" b.MATERIELFORSHORT").Trim() + " ";
  1967. //strSql += Convert.ToString(" from STL_MATERIALCONFG a, COM_MATERIEL b").Trim() + " ";
  1968. //strSql += Convert.ToString(" where a.MATERIELCODE = b.MATERIELCODE(+)").Trim() + " ";
  1969. //strSql += Convert.ToString(" and a.MATERIELTYPE = b.MATERIELTYPE(+)").Trim() + " ";
  1970. //strSql += Convert.ToString(" and a.MSLOCATION = '" + DEVICE_POSITION + "'").Trim() + " ";
  1971. //strSql += Convert.ToString(" and (a.MATERIELTYPE = 'FL' or a.MATERIELTYPE = 'HJ' or").Trim() + " ";
  1972. //strSql += Convert.ToString(" a.MATERIELTYPE = 'WS')").Trim() + " ";
  1973. //strSql += Convert.ToString(" order by a.MATERIELTYPE, TO_NUMBER(MSNUMID)").Trim();
  1974. strSql = @"
  1975. SELECT A.MSNUMID,
  1976. A.MSLOCATION,
  1977. A.MATERIELTYPE,
  1978. A.MATERIELCODE,
  1979. A.MATERIELUNITS,
  1980. A.JMTYPE,
  1981. B.ITEM_NAME
  1982. FROM STL_MATERIALCONFG A, COST_BASE_METAL_TYPE B
  1983. WHERE A.MATERIELCODE = B.ITEM_CODE(+)
  1984. AND A.MSLOCATION = '{0}'
  1985. ORDER BY A.MATERIELTYPE, A.MSNUMID
  1986. ";
  1987. strSql = string.Format(strSql, DEVICE_POSITION);
  1988. return ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob);
  1989. }
  1990. //查询作业手投料配置
  1991. public static DataSet GetManualAdditiveConfig(string DEVICE_POSITION, out bool bSuccess, out string strMsg, OpeBase ob)
  1992. {
  1993. strMsg = "";
  1994. bSuccess = false;
  1995. string strSql = "";
  1996. strSql += Convert.ToString("SELECT CONFGITEM, USEDLOCATION, USEDEXPLAIN, CONFGCODE").Trim() + " ";
  1997. strSql += Convert.ToString(" FROM STL_INTERFACECONFG").Trim() + " ";
  1998. strSql += Convert.ToString(" WHERE USEDLOCATION = 'STL'").Trim() + " ";
  1999. strSql += Convert.ToString(" AND CONFGITEM = '" + DEVICE_POSITION + "'").Trim();
  2000. return ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob);
  2001. }
  2002. public static bool SaveAdditiveData(string HeatProcessNo, string HopperID, string MaterielType, string MaterielCode, string Value, HopperCategory HpprCategory, out string strMsg, OpeBase ob)
  2003. {
  2004. strMsg = "";
  2005. bool bSuccess = false;
  2006. try
  2007. {
  2008. if (string.IsNullOrEmpty(HeatProcessNo))
  2009. {
  2010. strMsg = "加热处理号不能为空!";
  2011. return false;
  2012. }
  2013. if (string.IsNullOrEmpty(Value))
  2014. {
  2015. strMsg = "请输入消耗量!\n如果需要清空数据,请输入原有消耗量的负数。(如加料量为800,要清空此数值,请输入-800然后确认!)";
  2016. return false;
  2017. }
  2018. string TableName = ClsBusinessPack.GetTableName(HeatProcessNo.Substring(0, 1), TableSort.Feeding); //V1表名
  2019. string HeatNo = ClsBusinessPack.getSmeltingID(HeatProcessNo); //V5炉号
  2020. string FeedCategory = (HpprCategory == HopperCategory.Automatic ? "1" : "2"); //V7投料类型
  2021. string Memo = (HpprCategory == HopperCategory.Automatic ? "自动投料" : "手投料"); //V9投料说明
  2022. string StationCode = ClsBusinessPack.getStationCode(HeatProcessNo); //V10岗位编码
  2023. string DealTime = ClsBusinessPack.getDealTime(HeatProcessNo); //V11处理次数
  2024. string ProcedureID = "AddMaterialProc.INSERT";
  2025. Hashtable ht = new Hashtable();
  2026. ht.Add("I1", TableName); //表名
  2027. ht.Add("I2", HeatProcessNo); //加热处理号
  2028. ht.Add("I3", MaterielCode); //物料编码
  2029. ht.Add("I4", MaterielType); //物料类型
  2030. ht.Add("I5", HeatNo); //炉号
  2031. ht.Add("I6", Value); //物料消耗
  2032. ht.Add("I7", FeedCategory); //投料类型
  2033. ht.Add("I8", HopperID); //料仓编号
  2034. ht.Add("I9", Memo); //用途编码
  2035. ht.Add("I10", StationCode); //岗位
  2036. ht.Add("I11", DealTime); //处理次数
  2037. bSuccess = ClsDataAccessPack.DoProcedure(ProcedureID, ht, out strMsg, ob);
  2038. }
  2039. catch (Exception ex)
  2040. {
  2041. if (!bSuccess)
  2042. {
  2043. if (string.IsNullOrEmpty(strMsg)) strMsg = ex.Message;
  2044. }
  2045. }
  2046. return bSuccess;
  2047. }
  2048. public static bool SaveManulAdditiveConfig(string DEVICE_POSITION, string strOriginal, string strMaterielCode, string strPurposeCode, out string strMsg, OpeBase ob)
  2049. {
  2050. strMsg = "";
  2051. bool bSuccess = false;
  2052. try
  2053. {
  2054. string strOutValue = "";
  2055. string ProcedureID = "SwapHatHopper.Procedure"; //ProcedureID
  2056. Hashtable Args = new Hashtable();
  2057. Args.Add("I1", DEVICE_POSITION); //岗位
  2058. Args.Add("I2", "STL"); //投料类型
  2059. Args.Add("I3", strMaterielCode); //物料编码
  2060. Args.Add("I4", strOriginal); //原始物料编码
  2061. Args.Add("I5", strPurposeCode); //用途编码
  2062. Args.Add("O1", strOutValue); //输出
  2063. bSuccess = ClsDataAccessPack.DoProcedure(ProcedureID, Args, out strMsg, ob);
  2064. }
  2065. catch (Exception ex)
  2066. {
  2067. if (!bSuccess)
  2068. {
  2069. if (string.IsNullOrEmpty(strMsg)) strMsg = ex.Message;
  2070. }
  2071. }
  2072. return bSuccess;
  2073. }
  2074. #endregion
  2075. public static ValueList GetValuelistBOF()
  2076. {
  2077. ValueList vlist = new ValueList();
  2078. vlist.ValueListItems.Add("1", GetDeviceChineseName("C1"));
  2079. vlist.ValueListItems.Add("2", GetDeviceChineseName("C2"));
  2080. return vlist;
  2081. }
  2082. public static ValueList GetValuelistCCM()
  2083. {
  2084. ValueList vlist = new ValueList();
  2085. vlist.ValueListItems.Add("1", GetDeviceChineseName("G1"));
  2086. vlist.ValueListItems.Add("2", GetDeviceChineseName("G2"));
  2087. return vlist;
  2088. }
  2089. public static ValueList GeneralValuelist(ref Hashtable htbl)
  2090. {
  2091. if (htbl == null)
  2092. {
  2093. return null;
  2094. }
  2095. ArrayList alist = new ArrayList(htbl.Keys);
  2096. ValueList vlist = new ValueList();
  2097. for (int i = 0; i < alist.Count; i++)
  2098. {
  2099. try
  2100. {
  2101. if (htbl.Contains(alist[i]))
  2102. {
  2103. vlist.ValueListItems.Add(alist[i], Convert.ToString(htbl[alist[i]]));
  2104. }
  2105. }
  2106. catch { }
  2107. }
  2108. return vlist;
  2109. }
  2110. public static ValueList GeneralValuelist(ref DataTable table, string strKey, string strText)
  2111. {
  2112. if (table == null || !table.Columns.Contains(strKey) || !table.Columns.Contains(strText))
  2113. {
  2114. return null;
  2115. }
  2116. ArrayList alist = new ArrayList();
  2117. ValueList vlist = new ValueList();
  2118. for (int i = 0; i < table.Rows.Count; i++)
  2119. {
  2120. try
  2121. {
  2122. if (!alist.Contains(table.Rows[i][strKey]))
  2123. {
  2124. alist.Add(table.Rows[i][strKey]);
  2125. vlist.ValueListItems.Add(table.Rows[i][strKey], Convert.ToString(table.Rows[i][strText]));
  2126. }
  2127. }
  2128. catch { }
  2129. }
  2130. return vlist;
  2131. }
  2132. public static string GetBofStatus(string StateCode)
  2133. {
  2134. if (StateCode.Trim().ToUpper() == "HEAT")
  2135. return "炉次开始";
  2136. if (StateCode.Trim().ToUpper() == "SCRAPCHG")
  2137. return "加废钢";
  2138. else if (StateCode.Trim().ToUpper() == "CHARGING")
  2139. return "兑铁水";
  2140. else if (StateCode.Trim().ToUpper() == "BLOWINGBEGIN")
  2141. return "吹氧开始";
  2142. else if (StateCode.Trim().ToUpper() == "BLOWINGCLOSE")
  2143. return "吹氧结束";
  2144. else if (StateCode.Trim().ToUpper() == "TAPPINGBEGIN")
  2145. return "出钢开始";
  2146. else if (StateCode.Trim().ToUpper() == "TAPPINGCLOSE")
  2147. return "出钢结束";
  2148. else if (StateCode.Trim().ToUpper() == "SPRAYSLAGBEGIN")
  2149. return "溅渣开始";
  2150. else if (StateCode.Trim().ToUpper() == "SPRAYSLAGCLOSE")
  2151. return "溅渣结束";
  2152. else if (StateCode.Trim().ToUpper() == "IDLE")
  2153. return "炉次结束";
  2154. else if (StateCode.Trim().ToUpper() == "DESLAGINGBEGIN")
  2155. return "倒渣开始";
  2156. else if (StateCode.Trim().ToUpper() == "DESLAGINGCLOSE")
  2157. return "倒渣结束";
  2158. else if (StateCode.Trim().ToUpper() == "REPAIR")
  2159. return "检修状态";
  2160. else
  2161. return "";
  2162. }
  2163. public static void ResetTableRows(ref DataTable ATable, int newRowsCount)
  2164. {
  2165. int arows = Math.Abs(ATable.Rows.Count - newRowsCount);
  2166. string[] sTmp = new string[ATable.Columns.Count];
  2167. if (ATable.Rows.Count < newRowsCount)
  2168. {
  2169. for (int i = 0; i < arows; i++)
  2170. ATable.Rows.Add(sTmp);
  2171. }
  2172. else
  2173. {
  2174. for (int i = arows - 1; i >= 0; i--)
  2175. ATable.Rows[i].Delete();
  2176. }
  2177. }
  2178. }
  2179. /// <summary>
  2180. /// 炼钢工序
  2181. /// </summary>
  2182. public enum LG_PROCESS
  2183. {
  2184. HMP,
  2185. EAF,
  2186. BOF,
  2187. CAS,
  2188. LF,
  2189. CCM,
  2190. VD,
  2191. RH
  2192. }
  2193. public enum TableSort
  2194. {
  2195. /// <summary>
  2196. /// 作业表
  2197. /// </summary>
  2198. Job,
  2199. /// <summary>
  2200. /// 加料表
  2201. /// </summary>
  2202. Feeding
  2203. }
  2204. }