DacDeviceConfig.cs 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using FirebirdSql.Data.FirebirdClient;
  5. using System.Data;
  6. using System.Collections;
  7. namespace FPER
  8. {
  9. /*******************************************************************************************
  10. * TB_DEVICE(회로),TB_DEVICE_TYPE(회로타입) 설정 관련 Dac
  11. *******************************************************************************************/
  12. public class DacDeviceConfig : DacBase
  13. {
  14. public DacDeviceConfig(int ID)
  15. : base(ID)// cyim 2015.7.30 데이타베이스 접속 루틴 변경
  16. {
  17. //try {
  18. // base.Connect();
  19. //}
  20. //catch (Exception ex) {
  21. // Util.UErrorMessage(ex, 0, 0);
  22. //}
  23. }
  24. ~DacDeviceConfig()
  25. {
  26. //try {
  27. // base.DisConnect();
  28. //}
  29. //catch (Exception ex) {
  30. // Util.UErrorMessage(ex, 0, 0);
  31. //}
  32. }
  33. //회로조회
  34. public DataTable Device_Select(int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, int DEVICE_ID, String INOUT_TYPE)
  35. {
  36. DataTable dt = null;
  37. try
  38. {
  39. String SQL = "";
  40. //CREATE TABLE TB_DEVICE (
  41. // RECEIVER_ID INTEGER NOT NULL, /* RECEIVER ID (1 - 32) */
  42. // COMM_ID INTEGER NOT NULL, /* COMM ID (1 - 4) */
  43. // BOARD_ID INTEGER NOT NULL, /* BOARD ID (1 - 16) */
  44. // LOOP_NO INTEGER NOT NULL, /* LOOP NO. (0 - 1) */
  45. // REPEATER_ID INTEGER NOT NULL, /* REPEATER ID (1 - 126) */
  46. // DEVICE_ID INTEGER NOT NULL, /* DEVICE ID (1 - 16) */
  47. // DEVICE_NAME VARCHAR(40), /* DEVICE NAME */
  48. // DEVICE_TYPE VARCHAR(2), /* DEVICE TYPE */
  49. // UPDATE_USER_ID VARCHAR(10), /* UPDATE USER ID */
  50. // UPDATE_TIME TIMESTAMP, /* UPDATE TIME */
  51. // CONSTRAINT PK_TB_DEVICE PRIMARY KEY (RECEIVER_ID,COMM_ID,BOARD_ID,LOOP_NO,REPEATER_ID,DEVICE_ID)
  52. //);
  53. if (DEVICE_ID < 1)
  54. {
  55. SQL += " SELECT A.DEVICE_ID,A.DEVICE_NAME,A.DEVICE_TYPE,A.INOUT_TYPE,A.CUT_FLAG,B.DEVICE_TYPE_NAME,A.POSITION_CODE, A.JUMP_FIELD_ID,C.POSITION_NAME";
  56. SQL += " FROM TB_DEVICE A";
  57. SQL += " LEFT OUTER JOIN TB_DEVICE_TYPE B ON A.DEVICE_TYPE = B.DEVICE_TYPE";
  58. SQL += " LEFT OUTER JOIN TB_POSITION_CODE C ON A.POSITION_CODE = C.POSITION_CODE";
  59. SQL += " WHERE A.RECEIVER_ID = {0} AND A.COMM_ID = 1 AND A.BOARD_ID = {1} AND A.LOOP_NO = {2} AND A.REPEATER_ID = {3}";
  60. SQL += " ORDER BY A.DEVICE_ID";
  61. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID);
  62. }
  63. else
  64. {
  65. SQL += " SELECT A.DEVICE_ID,A.DEVICE_NAME,A.DEVICE_TYPE,A.INOUT_TYPE,A.CUT_FLAG,B.DEVICE_TYPE_NAME,A.POSITION_CODE, A.JUMP_FIELD_ID,C.POSITION_NAME";
  66. SQL += " FROM TB_DEVICE A ";
  67. SQL += " LEFT OUTER JOIN TB_DEVICE_TYPE B ON A.DEVICE_TYPE = B.DEVICE_TYPE";
  68. SQL += " LEFT OUTER JOIN TB_POSITION_CODE C ON A.POSITION_CODE = C.POSITION_CODE";
  69. SQL += " WHERE A.RECEIVER_ID = {0} AND A.COMM_ID = 1 AND A.BOARD_ID = {1} AND A.LOOP_NO = {2} AND A.REPEATER_ID = {3}";
  70. SQL += " AND A.DEVICE_ID = {4} AND A.INOUT_TYPE = '{5}'";
  71. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE);
  72. }
  73. DataSet dao = Select(SQL);
  74. dt = dao.Tables[0];
  75. }
  76. catch (Exception ex)
  77. {
  78. Util.UErrorMessage(ex, 0, 0);
  79. throw ex;
  80. }
  81. return dt;
  82. }
  83. public DataTable SelectDevice(int RECEIVER_ID)
  84. {
  85. DataTable dt = null;
  86. String SQL = "";
  87. try
  88. {
  89. SQL += " SELECT COMM_ID,BOARD_ID,LOOP_NO,REPEATER_ID,DEVICE_ID,INOUT_TYPE,DEVICE_NAME,DEVICE_TYPE,CUT_FLAG,POSITION_CODE,JUMP_FIELD_ID";
  90. SQL += " FROM TB_DEVICE ";
  91. SQL += " WHERE RECEIVER_ID = {0} ";
  92. SQL = String.Format(SQL, RECEIVER_ID);
  93. DataSet dao = Select(SQL);
  94. dt = dao.Tables[0];
  95. // //Util.UDebugMessage("SelectDevice cnt : " + dt.Rows.Count, 0, 0);
  96. }
  97. catch (Exception ex)
  98. {
  99. //Util.UDebugMessage("SelectDevice : " + SQL, 0, 0);
  100. Util.UErrorMessage(ex, 0, 0);
  101. throw ex;
  102. }
  103. return dt;
  104. }
  105. public DataTable SelectDevice2(int RECEIVER_ID)
  106. {
  107. DataTable dt = null;
  108. String SQL = "";
  109. try
  110. {
  111. SQL += " SELECT D.COMM_ID, D.BOARD_ID, D.LOOP_NO, D.REPEATER_ID, D.DEVICE_ID, D.INOUT_TYPE, D.DEVICE_NAME, D.DEVICE_TYPE, D.CUT_FLAG, ";
  112. SQL += " D.POSITION_CODE, D.JUMP_FIELD_ID, P.POSITION_NAME FROM TB_DEVICE D LEFT OUTER JOIN TB_POSITION_CODE P ON D.POSITION_CODE = P.POSITION_CODE ";
  113. SQL += " WHERE RECEIVER_ID = {0} ";
  114. SQL = String.Format(SQL, RECEIVER_ID);
  115. DataSet dao = Select(SQL);
  116. dt = dao.Tables[0];
  117. }
  118. catch (Exception ex)
  119. {
  120. //Util.UDebugMessage("SelectDevice : " + SQL, 0, 0);
  121. Util.UErrorMessage(ex, 0, 0);
  122. throw ex;
  123. }
  124. return dt;
  125. }
  126. public DataTable SelectDevice(int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, int DEVICE_ID, String INOUT_TYPE)
  127. {
  128. DataTable dt = null;
  129. try
  130. {
  131. String SQL = "";
  132. SQL += " SELECT D.DEVICE_NAME,D.DEVICE_TYPE, D.CUT_FLAG, D.POSITION_CODE, P.POSITION_NAME, D.JUMP_FIELD_ID";
  133. SQL += " FROM TB_DEVICE D LEFT OUTER JOIN TB_POSITION_CODE P ON D.POSITION_CODE = P.POSITION_CODE ";
  134. SQL += " WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} AND REPEATER_ID = {3}";
  135. SQL += " AND DEVICE_ID = {4} AND INOUT_TYPE = '{5}' AND D.POSITION_CODE = P.POSITION_CODE ";
  136. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE);
  137. DataSet dao = Select(SQL);
  138. dt = dao.Tables[0];
  139. }
  140. catch (Exception ex)
  141. {
  142. Util.UErrorMessage(ex, 0, 0);
  143. throw ex;
  144. }
  145. return dt;
  146. }
  147. //회로설정값 저장
  148. public void Device_Update(QUERYMode cmd, int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, int DEVICE_ID
  149. , String INOUT_TYPE, String DEVICE_NAME, String DEVICE_TYPE, String POSITION_CODE)
  150. {
  151. try
  152. {
  153. if (cmd == QUERYMode.insert || cmd == QUERYMode.update || cmd == QUERYMode.InsertAndUpdate)
  154. {
  155. if (DEVICE_ID < 1) return;
  156. String SQL = "";
  157. DataTable dt = Device_Select(RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE);
  158. if (dt.Rows.Count > 0)
  159. {
  160. SQL = "UPDATE TB_DEVICE SET DEVICE_NAME = '{0}'";
  161. SQL += ", DEVICE_TYPE = '{1}', POSITION_CODE = '{2}'";
  162. SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
  163. SQL += " WHERE RECEIVER_ID = {3} AND COMM_ID = 1 AND BOARD_ID = {4} AND LOOP_NO = {5} AND REPEATER_ID = {6}";
  164. SQL += " AND DEVICE_ID = {7} AND INOUT_TYPE = '{8}'";
  165. SQL = String.Format(SQL, DEVICE_NAME, DEVICE_TYPE, POSITION_CODE
  166. , RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE);
  167. }
  168. else
  169. {
  170. SQL = "INSERT INTO TB_DEVICE ( ";
  171. SQL += " RECEIVER_ID,COMM_ID,BOARD_ID,LOOP_NO,REPEATER_ID,DEVICE_ID,INOUT_TYPE,DEVICE_NAME";
  172. SQL += ",DEVICE_TYPE,POSITION_CODE,CUT_FLAG,UPDATE_USER_ID,UPDATE_TIME";
  173. SQL += ") VALUES ({0},1,{1},{2},{3},{4},'{5}','{6}','{7}','{8}','N','FPER',current_timestamp)";
  174. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE, DEVICE_NAME
  175. , DEVICE_TYPE, POSITION_CODE);
  176. }
  177. ExecuteNonQuery(SQL);
  178. }
  179. else if (cmd == QUERYMode.delete)
  180. {
  181. String SQL = "";
  182. if (DEVICE_ID < 1)
  183. {
  184. SQL = "DELETE FROM TB_DEVICE WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} AND REPEATER_ID = {3}";
  185. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID);
  186. }
  187. else
  188. {
  189. SQL = "DELETE FROM TB_DEVICE WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} AND REPEATER_ID = {3}";
  190. SQL += " AND DEVICE_ID = {4} AND INOUT_TYPE = '{5}'";
  191. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE);
  192. }
  193. ExecuteNonQuery(SQL);
  194. }
  195. }
  196. catch (Exception ex)
  197. {
  198. Util.UErrorMessage(ex, 0, 0);
  199. throw ex;
  200. }
  201. }
  202. public void Device_Cut_Update(int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, int DEVICE_ID
  203. , String INOUT_TYPE, string CUT_FLAG)
  204. {
  205. try
  206. {
  207. DataTable dt = Device_Select(RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE);
  208. String SQL = "";
  209. if (dt.Rows.Count > 0)
  210. {
  211. SQL = "UPDATE TB_DEVICE SET CUT_FLAG = '{0}'";
  212. SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
  213. SQL += " WHERE RECEIVER_ID = {1} AND COMM_ID = 1 AND BOARD_ID = {2} AND LOOP_NO = {3} AND REPEATER_ID = {4}";
  214. SQL += " AND DEVICE_ID = {5} AND INOUT_TYPE = '{6}'";
  215. SQL = String.Format(SQL, CUT_FLAG, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE);
  216. ExecuteNonQuery(SQL);
  217. }
  218. else
  219. {
  220. string DEVICE_NAME = string.Format("{0}번회로", DEVICE_ID);
  221. SQL = "INSERT INTO TB_DEVICE ( ";
  222. SQL += " RECEIVER_ID,COMM_ID,BOARD_ID,LOOP_NO,REPEATER_ID,DEVICE_ID,INOUT_TYPE,DEVICE_NAME";
  223. SQL += ",CUT_FLAG,UPDATE_USER_ID,UPDATE_TIME";
  224. SQL += ") VALUES ({0},1,{1},{2},{3},{4},'{5}','{6}','{7}','FPER',current_timestamp)";
  225. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, DEVICE_ID, INOUT_TYPE, DEVICE_NAME, CUT_FLAG);
  226. ExecuteNonQuery(SQL);
  227. }
  228. }
  229. catch (Exception ex)
  230. {
  231. Util.UErrorMessage(ex, 0, 0);
  232. throw ex;
  233. }
  234. }
  235. //입출력 회로 타입조회
  236. public DataTable Device_type_Select(String SYMBOL_TYPE, String DEVICE_TYPE)
  237. {
  238. DataTable dt = null;
  239. try
  240. {
  241. String SQL = "";
  242. //CREATE TABLE TB_DEVICE_TYPE (
  243. // DEVICE_TYPE VARCHAR(2) NOT NULL, /* DEVICE TYPE */
  244. // DEVICE_TYPE_NAME VARCHAR(40), /* DEVICE TYPE NAME */
  245. // SYMBOL_TYPE VARCHAR(1), /* SYMBOL TYPE */
  246. // /* 'I' : 입력 */
  247. // /* 'O' : 출력 */
  248. // /* 'Z' : 기타 */
  249. // DEVICE_TYPE_IMAGE BLOB, /* DEVICE TYPE IMAGE */
  250. // UPDATE_USER_ID VARCHAR(10), /* UPDATE USER ID */
  251. // UPDATE_TIME TIMESTAMP, /* UPDATE TIME */
  252. // CONSTRAINT PK_TB_DEVICE_TYPE PRIMARY KEY (DEVICE_TYPE)
  253. //);
  254. SQL += "SELECT SYMBOL_TYPE,DEVICE_TYPE,DEVICE_TYPE_NAME,USE_FLAG,SEQ_NO ";
  255. SQL += " FROM TB_DEVICE_TYPE WHERE SYMBOL_TYPE = '{0}'";
  256. if (DEVICE_TYPE != null) SQL += String.Format(" AND DEVICE_TYPE = '{0}'", DEVICE_TYPE);
  257. SQL += " ORDER BY SEQ_NO";
  258. SQL = String.Format(SQL, SYMBOL_TYPE);
  259. DataSet dao = Select(SQL);
  260. dt = dao.Tables[0];
  261. }
  262. catch (Exception ex)
  263. {
  264. Util.UErrorMessage(ex, 0, 0);
  265. throw ex;
  266. }
  267. return dt;
  268. }
  269. //
  270. // cyim 2013.7.19 속도개선작업 (상위에 있는 쿼리의 order by 를 제거함)
  271. //
  272. // 최초로 쿼리 되는 결과 테이블을 저장해두고 이를 이용해서 결과를 도출하면 제일 빠르지만 현재 사용하는 루틴이 많으므로
  273. // 정렬조건을 삭제하여 속도를 향상한다. 여기에서는 정렬이 의미없으므로 새로운 쿼리를 적용해도 무방하다
  274. //입출력 회로 타입조회
  275. public DataTable Device_type_Select_NotOrdering(String SYMBOL_TYPE, String DEVICE_TYPE)
  276. {
  277. DataTable dt = null;
  278. try
  279. {
  280. String SQL = "";
  281. //CREATE TABLE TB_DEVICE_TYPE (
  282. // DEVICE_TYPE VARCHAR(2) NOT NULL, /* DEVICE TYPE */
  283. // DEVICE_TYPE_NAME VARCHAR(40), /* DEVICE TYPE NAME */
  284. // SYMBOL_TYPE VARCHAR(1), /* SYMBOL TYPE */
  285. // /* 'I' : 입력 */
  286. // /* 'O' : 출력 */
  287. // /* 'Z' : 기타 */
  288. // DEVICE_TYPE_IMAGE BLOB, /* DEVICE TYPE IMAGE */
  289. // UPDATE_USER_ID VARCHAR(10), /* UPDATE USER ID */
  290. // UPDATE_TIME TIMESTAMP, /* UPDATE TIME */
  291. // CONSTRAINT PK_TB_DEVICE_TYPE PRIMARY KEY (DEVICE_TYPE)
  292. //);
  293. SQL += "SELECT SYMBOL_TYPE,DEVICE_TYPE,DEVICE_TYPE_NAME,USE_FLAG,SEQ_NO ";
  294. SQL += " FROM TB_DEVICE_TYPE WHERE SYMBOL_TYPE = '{0}'";
  295. if (DEVICE_TYPE != null) SQL += String.Format(" AND DEVICE_TYPE = '{0}'", DEVICE_TYPE);
  296. //SQL += " ORDER BY SEQ_NO";
  297. SQL = String.Format(SQL, SYMBOL_TYPE);
  298. DataSet dao = Select(SQL);
  299. dt = dao.Tables[0];
  300. return dt;
  301. }
  302. catch (Exception ex)
  303. {
  304. Util.UErrorMessage(ex, 0, 0);
  305. return null;
  306. }
  307. }
  308. //입출력 회로 타입조회-코드검색창
  309. public DataTable Device_Type_Modal_Select(String SYMBOL_TYPE, String SEARCH_KEY)
  310. {
  311. DataTable dt = null;
  312. try
  313. {
  314. String SQL = "";
  315. //CREATE TABLE TB_DEVICE_TYPE (
  316. // DEVICE_TYPE VARCHAR(2) NOT NULL, /* DEVICE TYPE */
  317. // DEVICE_TYPE_NAME VARCHAR(40), /* DEVICE TYPE NAME */
  318. // SYMBOL_TYPE VARCHAR(1), /* SYMBOL TYPE */
  319. // /* 'I' : 입력 */
  320. // /* 'O' : 출력 */
  321. // /* 'Z' : 기타 */
  322. // DEVICE_TYPE_IMAGE BLOB, /* DEVICE TYPE IMAGE */
  323. // UPDATE_USER_ID VARCHAR(10), /* UPDATE USER ID */
  324. // UPDATE_TIME TIMESTAMP, /* UPDATE TIME */
  325. // CONSTRAINT PK_TB_DEVICE_TYPE PRIMARY KEY (DEVICE_TYPE)
  326. //);
  327. SQL += "SELECT SYMBOL_TYPE,DEVICE_TYPE,DEVICE_TYPE_NAME";
  328. SQL += " FROM TB_DEVICE_TYPE";
  329. if (SYMBOL_TYPE != null)
  330. {
  331. SQL += String.Format(" WHERE SYMBOL_TYPE = '{0}'", SYMBOL_TYPE);
  332. if (SEARCH_KEY != null)
  333. {
  334. SQL += String.Format(" AND (DEVICE_TYPE LIKE '%{0}%' OR DEVICE_TYPE_NAME LIKE '%{0}%')", SEARCH_KEY);
  335. }
  336. }
  337. else
  338. {
  339. if (SEARCH_KEY != null)
  340. {
  341. SQL += String.Format(" WHERE DEVICE_TYPE LIKE '%{0}%' OR DEVICE_TYPE_NAME LIKE '%{0}%' ", SEARCH_KEY);
  342. }
  343. }
  344. SQL += " ORDER BY DEVICE_TYPE";
  345. DataSet dao = Select(SQL);
  346. dt = dao.Tables[0];
  347. return dt;
  348. }
  349. catch (Exception ex)
  350. {
  351. Util.UErrorMessage(ex, 0, 0);
  352. return null;
  353. }
  354. }
  355. //입출력 회로 타입조회-코드검색창
  356. public DataTable Device_Modal_Select(int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, int DEVICE_ID, String INOUT_TYPE
  357. , String SEARCH_KEY)
  358. {
  359. DataTable dt = null;
  360. try
  361. {
  362. String SQL = "";
  363. SQL += " SELECT A.COMM_ID,A.BOARD_ID,A.LOOP_NO,A.DEVICE_ID,A.REPEATER_ID";
  364. SQL += " ,A.DEVICE_NAME,A.DEVICE_TYPE,A.INOUT_TYPE,A.CUT_FLAG,B.DEVICE_TYPE_NAME,A.POSITION_CODE,C.POSITION_NAME";
  365. SQL += " FROM TB_DEVICE A ";
  366. SQL += " LEFT OUTER JOIN TB_DEVICE_TYPE B ON A.DEVICE_TYPE = B.DEVICE_TYPE";
  367. SQL += " LEFT OUTER JOIN TB_POSITION_CODE C ON A.POSITION_CODE = C.POSITION_CODE";
  368. SQL += String.Format(" WHERE A.RECEIVER_ID = {0} AND A.COMM_ID = 1 ", RECEIVER_ID);
  369. if (BOARD_ID > 0) SQL += String.Format(" AND A.BOARD_ID = {0}", BOARD_ID);
  370. if (LOOP_NO > 0) SQL += String.Format(" AND A.LOOP_NO = {0}", LOOP_NO);
  371. if (REPEATER_ID > 0) SQL += String.Format(" AND A.REPEATER_ID = {0}", REPEATER_ID);
  372. if (DEVICE_ID > 0) SQL += String.Format(" AND A.DEVICE_ID = {0}", DEVICE_ID);
  373. if (INOUT_TYPE != null) SQL += String.Format(" AND A.INOUT_TYPE = '{0}'", INOUT_TYPE);
  374. if (SEARCH_KEY != null) SQL += String.Format(" AND (A.DEVICE_NAME LIKE '%{0}%' OR B.DEVICE_TYPE_NAME LIKE '%{0}%' OR C.POSITION_NAME LIKE '%{0}%')", SEARCH_KEY);
  375. SQL += " ORDER BY A.BOARD_ID,A.LOOP_NO,A.REPEATER_ID,A.INOUT_TYPE,A.DEVICE_ID";
  376. DataSet dao = Select(SQL);
  377. dt = dao.Tables[0];
  378. return dt;
  379. }
  380. catch (Exception ex)
  381. {
  382. Util.UErrorMessage(ex, 0, 0);
  383. return null;
  384. }
  385. }
  386. //입출력 회로 타입명 조회
  387. public String Device_Type_Name(String SYMBOL_TYPE, String DEVICE_TYPE)
  388. {
  389. String DEVICE_TYPE_NAME = null;
  390. try
  391. {
  392. DataTable dt = null;
  393. String SQL = "";
  394. SQL += "SELECT SYMBOL_TYPE,DEVICE_TYPE,DEVICE_TYPE_NAME,USE_FLAG ";
  395. SQL += " FROM TB_DEVICE_TYPE WHERE SYMBOL_TYPE = '{0}' AND DEVICE_TYPE = '{1}'";
  396. SQL += " ORDER BY DEVICE_TYPE";
  397. SQL = String.Format(SQL, SYMBOL_TYPE, DEVICE_TYPE);
  398. DataSet dao = Select(SQL);
  399. dt = dao.Tables[0];
  400. if (dt.Rows.Count > 0)
  401. {
  402. DataRow dr = dt.Rows[0];
  403. DEVICE_TYPE_NAME = dr["DEVICE_TYPE_NAME"].ToString();
  404. }
  405. return DEVICE_TYPE_NAME;
  406. }
  407. catch (Exception ex)
  408. {
  409. Util.UErrorMessage(ex, 0, 0);
  410. return null;
  411. }
  412. }
  413. //위치명 조회
  414. public String Device_Position_Name(String POSITION_CODE)
  415. {
  416. String POSITION_NAME = null;
  417. try
  418. {
  419. DataTable dt = null;
  420. String SQL = "";
  421. SQL += "SELECT POSITION_CODE,POSITION_NAME ";
  422. SQL += " FROM TB_POSITION_CODE WHERE POSITION_CODE = '{0}' ";
  423. SQL = String.Format(SQL, POSITION_CODE);
  424. DataSet dao = Select(SQL);
  425. dt = dao.Tables[0];
  426. if (dt.Rows.Count > 0)
  427. {
  428. DataRow dr = dt.Rows[0];
  429. POSITION_NAME = dr["POSITION_NAME"].ToString();
  430. }
  431. }
  432. catch (Exception ex)
  433. {
  434. Util.UErrorMessage(ex, 0, 0);
  435. throw ex;
  436. }
  437. return POSITION_NAME;
  438. }
  439. //위치코드 조회
  440. public String Device_Position_Code(String POSITION_NAME)
  441. {
  442. String POSITION_CODE = null;
  443. try
  444. {
  445. DataTable dt = null;
  446. String SQL = "";
  447. SQL += "SELECT POSITION_CODE,POSITION_NAME ";
  448. SQL += " FROM TB_POSITION_CODE WHERE POSITION_NAME LIKE '{0}' ";
  449. SQL = String.Format(SQL, POSITION_NAME);
  450. DataSet dao = Select(SQL);
  451. dt = dao.Tables[0];
  452. if (dt.Rows.Count > 0)
  453. {
  454. DataRow dr = dt.Rows[0];
  455. POSITION_CODE = dr["POSITION_CODE"].ToString();
  456. }
  457. else
  458. {
  459. }
  460. }
  461. catch (Exception ex)
  462. {
  463. Util.UErrorMessage(ex, 0, 0);
  464. throw ex;
  465. }
  466. return POSITION_CODE;
  467. }
  468. //위치조회-코드검색창
  469. public DataTable Position_Code_Modal_Select(String SEARCH_KEY)
  470. {
  471. DataTable dt = null;
  472. try
  473. {
  474. String SQL = "";
  475. // CREATE TABLE "TB_POSITION_CODE"
  476. //(
  477. // "POSITION_CODE" VARCHAR(2) NOT NULL,
  478. // "POSITION_NAME" VARCHAR(40),
  479. // "UPDATE_USER_ID" VARCHAR(10),
  480. // "UPDATE_TIME" TIMESTAMP,
  481. //CONSTRAINT "PK_TB_POSITION_CODE" PRIMARY KEY ("POSITION_CODE")
  482. //);
  483. SQL += "SELECT POSITION_CODE,POSITION_NAME";
  484. SQL += " FROM TB_POSITION_CODE";
  485. if (SEARCH_KEY != null)
  486. {
  487. SQL += String.Format(" WHERE POSITION_CODE LIKE '%{0}%' OR POSITION_NAME LIKE '%{0}%' ", SEARCH_KEY);
  488. }
  489. SQL += " ORDER BY POSITION_CODE";
  490. DataSet dao = Select(SQL);
  491. dt = dao.Tables[0];
  492. }
  493. catch (Exception ex)
  494. {
  495. Util.UErrorMessage(ex, 0, 0);
  496. throw ex;
  497. }
  498. return dt;
  499. }
  500. //회로설정값 저장
  501. public void DeviceType_Flag_Update(QUERYMode cmd, String DEVICE_TYPE, String USE_FLAG)
  502. {
  503. try
  504. {
  505. if (cmd == QUERYMode.insert || cmd == QUERYMode.update || cmd == QUERYMode.InsertAndUpdate)
  506. {
  507. String SQL = "";
  508. SQL = "UPDATE TB_DEVICE_TYPE SET USE_FLAG = '{0}'";
  509. SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
  510. SQL += " WHERE DEVICE_TYPE = '{1}' ";
  511. SQL = String.Format(SQL, USE_FLAG, DEVICE_TYPE);
  512. ExecuteNonQuery(SQL);
  513. }
  514. }
  515. catch (Exception ex)
  516. {
  517. Util.UErrorMessage(ex, 0, 0);
  518. throw ex;
  519. }
  520. }
  521. }
  522. /*******************************************************************************************/
  523. }