DacBoardConfig.cs 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448
  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_BOARD(통신보드) 설정 관련 Dac
  11. *******************************************************************************************/
  12. public class DacBoardConfig : DacBase
  13. {
  14. public DacBoardConfig(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. ~DacBoardConfig()
  25. {
  26. //try {
  27. // base.DisConnect();
  28. //}
  29. //catch (Exception ex) {
  30. // Util.UErrorMessage(ex, 0, 0);
  31. //}
  32. }
  33. // RECEIVER_ID INTEGER NOT NULL, /* RECEIVER ID (1 - 32) */
  34. //COMM_ID INTEGER NOT NULL, /* COMM ID (1 - 4) */
  35. //BOARD_ID INTEGER NOT NULL, /* BOARD ID (1 - 16) */
  36. //BOARD_NAME VARCHAR(40), /* BOARD NAME */
  37. //USE_FLAG VARCHAR(1), /* USE FLAG (Y/N) */
  38. //UPDATE_USER_ID VARCHAR(10), /* UPDATE USER ID */
  39. //UPDATE_TIME TIMESTAMP, /* UPDATE TIME */
  40. // cyim 2016.10.31 : 계통정보는 0,1,2,3 으로 변경
  41. public DataTable SelectBoard(int RECEIVER_ID)
  42. {
  43. DataTable dt = null;
  44. try
  45. {
  46. String SQL = "";
  47. SQL += "SELECT BOARD_ID,BOARD_NAME,LOOP0_USE_FLAG,LOOP1_USE_FLAG,LOOP2_USE_FLAG,LOOP3_USE_FLAG,USE_FLAG";
  48. SQL += " ,MAIN_VERSION,SUB_VERSION,BAUD_RATE,LOOP0_BAUD_RATE,LOOP1_BAUD_RATE,LOOP2_BAUD_RATE,LOOP3_BAUD_RATE";
  49. SQL += " ,LOOP0_CUT_FLAG,LOOP1_CUT_FLAG,LOOP2_CUT_FLAG,LOOP3_CUT_FLAG ,COMM_ID";
  50. SQL += " FROM TB_BOARD WHERE RECEIVER_ID = {0} ";
  51. SQL += " ORDER BY BOARD_ID";
  52. SQL = String.Format(SQL, RECEIVER_ID);
  53. DataSet dao = Select(SQL);
  54. dt = dao.Tables[0];
  55. }
  56. catch (Exception ex)
  57. {
  58. Util.UErrorMessage(ex, 0, 0);
  59. throw ex;
  60. }
  61. return dt;
  62. }
  63. // cyim 2016.10.31 : 계통정보는 0,1,2,3 으로 변경
  64. public DataTable Board_Select(int RECEIVER_ID, int BOARD_ID, String UseFlag)
  65. {
  66. DataTable dt = null;
  67. try
  68. {
  69. String SQL = "";
  70. if (BOARD_ID == 0)
  71. {
  72. SQL += "SELECT BOARD_ID,BOARD_NAME,LOOP0_USE_FLAG,LOOP1_USE_FLAG,LOOP2_USE_FLAG,LOOP3_USE_FLAG,USE_FLAG";
  73. SQL += " ,MAIN_VERSION,SUB_VERSION,BAUD_RATE,LOOP0_BAUD_RATE,LOOP1_BAUD_RATE,LOOP2_BAUD_RATE,LOOP3_BAUD_RATE";
  74. SQL += " ,LOOP0_CUT_FLAG,LOOP1_CUT_FLAG,LOOP2_CUT_FLAG,LOOP3_CUT_FLAG ";
  75. SQL += " FROM TB_BOARD WHERE RECEIVER_ID = {0} AND COMM_ID = 1 ";
  76. if (UseFlag != null) SQL += " AND USE_FLAG = '" + UseFlag + "'";
  77. SQL += " ORDER BY BOARD_ID";
  78. SQL = String.Format(SQL, RECEIVER_ID);
  79. }
  80. else
  81. {
  82. SQL += "SELECT BOARD_ID,BOARD_NAME,LOOP0_USE_FLAG,LOOP1_USE_FLAG,LOOP2_USE_FLAG,LOOP3_USE_FLAG,USE_FLAG";
  83. SQL += " ,MAIN_VERSION,SUB_VERSION,BAUD_RATE,LOOP0_BAUD_RATE,LOOP1_BAUD_RATE,LOOP2_BAUD_RATE,LOOP3_BAUD_RATE";
  84. SQL += " ,LOOP0_CUT_FLAG,LOOP1_CUT_FLAG,LOOP2_CUT_FLAG,LOOP3_CUT_FLAG ";
  85. SQL += " FROM TB_BOARD WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1}";
  86. if (UseFlag != null) SQL += " AND USE_FLAG = '" + UseFlag + "'";
  87. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID);
  88. }
  89. DataSet dao = Select(SQL);
  90. dt = dao.Tables[0];
  91. }
  92. catch (Exception ex)
  93. {
  94. Util.UErrorMessage(ex, 0, 0);
  95. throw ex;
  96. }
  97. return dt;
  98. }
  99. //통신보드 ID 최고값 리턴
  100. public int BoardID_Max(int RECEIVER_ID)
  101. {
  102. int BoardId = 0;
  103. try
  104. {
  105. String SQL = String.Format("SELECT MAX(BOARD_ID) FROM TB_BOARD WHERE RECEIVER_ID = {0} AND COMM_ID = 1", RECEIVER_ID);
  106. DataSet dao = Select(SQL);
  107. DataTable dt = dao.Tables[0];
  108. if (dt.Rows.Count > 0)
  109. {
  110. foreach (DataRow dr in dt.Rows)
  111. {
  112. if (!dr[0].ToString().Equals(""))
  113. BoardId = int.Parse(dr[0].ToString());
  114. }
  115. }
  116. }
  117. catch (Exception ex)
  118. {
  119. Util.UErrorMessage(ex, 0, 0);
  120. throw ex;
  121. }
  122. return ++BoardId;
  123. }
  124. // cyim 2016.12.07 : 수신기 모델별 내부 로직 변경
  125. public void Board_Cut_Update(int RECEIVER_ID, int BOARD_ID, String LOOP0_CUT_FLAG, String LOOP1_CUT_FLAG)
  126. {
  127. try
  128. {
  129. DataTable dt = Board_Select(RECEIVER_ID, BOARD_ID, null);
  130. String SQL = "";
  131. if (dt.Rows.Count > 0)
  132. {
  133. SQL = "UPDATE TB_BOARD SET LOOP0_CUT_FLAG = '{0}'";
  134. SQL += ", LOOP1_CUT_FLAG = '{1}'";
  135. SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
  136. SQL += " WHERE RECEIVER_ID = {2} AND COMM_ID = 1 AND BOARD_ID = {3}";
  137. SQL = String.Format(SQL, LOOP0_CUT_FLAG, LOOP1_CUT_FLAG, RECEIVER_ID, BOARD_ID);
  138. ExecuteNonQuery(SQL);
  139. }
  140. else
  141. {
  142. throw new Exception("해당 자료를 찾을수 없습니다.");
  143. }
  144. }
  145. catch (Exception ex)
  146. {
  147. Util.UErrorMessage(ex, 0, 0);
  148. throw ex;
  149. }
  150. }
  151. // cyim 2016.10.31 : 계통정보는 0,1,2,3 으로 변경
  152. public void Board_Cut_Update(int RECEIVER_ID, int BOARD_ID, String LOOP0_CUT_FLAG, String LOOP1_CUT_FLAG, String LOOP2_CUT_FLAG, String LOOP3_CUT_FLAG)
  153. {
  154. try
  155. {
  156. DataTable dt = Board_Select(RECEIVER_ID, BOARD_ID, null);
  157. String SQL = "";
  158. if (dt.Rows.Count > 0)
  159. {
  160. SQL = "UPDATE TB_BOARD SET LOOP0_CUT_FLAG = '{0}'";
  161. SQL += ", LOOP1_CUT_FLAG = '{1}'";
  162. SQL += ", LOOP2_CUT_FLAG = '{2}'";
  163. SQL += ", LOOP3_CUT_FLAG = '{3}'";
  164. SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
  165. SQL += " WHERE RECEIVER_ID = {4} AND COMM_ID = 1 AND BOARD_ID = {5}";
  166. SQL = String.Format(SQL, LOOP0_CUT_FLAG, LOOP1_CUT_FLAG,LOOP2_CUT_FLAG, LOOP3_CUT_FLAG, RECEIVER_ID, BOARD_ID);
  167. ExecuteNonQuery(SQL);
  168. }
  169. else
  170. {
  171. throw new Exception("해당 자료를 찾을수 없습니다.");
  172. }
  173. }
  174. catch (Exception ex)
  175. {
  176. Util.UErrorMessage(ex, 0, 0);
  177. throw ex;
  178. }
  179. }
  180. // cyim 2016.10.31 : 계통정보는 0,1,2,3 으로 변경
  181. public void Board_Update(QUERYMode cmd, int RECEIVER_ID, int BOARD_ID, String BOARD_NAME, String USE_FLAG,
  182. String LOOP0_USE_FLAG, String LOOP1_USE_FLAG, String LOOP2_USE_FLAG, String LOOP3_USE_FLAG,
  183. int BAUD_RATE, int LOOP0_BAUD_RATE, int LOOP1_BAUD_RATE, int LOOP2_BAUD_RATE, int LOOP3_BAUD_RATE,
  184. int MAIN_VERSION, int SUB_VERSION)
  185. {
  186. try
  187. {
  188. DataTable dt = Board_Select(RECEIVER_ID, BOARD_ID, null);
  189. if (cmd == QUERYMode.insert || cmd == QUERYMode.update || cmd == QUERYMode.InsertAndUpdate)
  190. {
  191. String SQL = "";
  192. if (dt.Rows.Count > 0)
  193. {
  194. SQL = "UPDATE TB_BOARD SET BOARD_NAME = '{0}'";
  195. SQL += ", USE_FLAG = '{1}'";
  196. SQL += ", LOOP0_USE_FLAG = '{2}', LOOP1_USE_FLAG = '{3}'";
  197. SQL += ", LOOP2_USE_FLAG = '{4}', LOOP3_USE_FLAG = '{5}'";
  198. SQL += ", BAUD_RATE = {6}, LOOP0_BAUD_RATE = {7}";
  199. SQL += ", LOOP1_BAUD_RATE = {8}";
  200. SQL += ", LOOP2_BAUD_RATE = {9}";
  201. SQL += ", LOOP3_BAUD_RATE = {10}";
  202. SQL += ", MAIN_VERSION = {11}, SUB_VERSION = {12}";
  203. SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
  204. SQL += " WHERE RECEIVER_ID = {13} AND COMM_ID = 1 AND BOARD_ID = {14}";
  205. SQL = String.Format(SQL, BOARD_NAME, USE_FLAG, LOOP0_USE_FLAG, LOOP1_USE_FLAG, LOOP2_USE_FLAG, LOOP3_USE_FLAG
  206. , BAUD_RATE, LOOP0_BAUD_RATE, LOOP1_BAUD_RATE, LOOP2_BAUD_RATE, LOOP3_BAUD_RATE, MAIN_VERSION, SUB_VERSION
  207. , RECEIVER_ID, BOARD_ID);
  208. }
  209. else
  210. {
  211. SQL = "INSERT INTO TB_BOARD ( ";
  212. SQL += " RECEIVER_ID,COMM_ID,BOARD_ID,BOARD_NAME,LOOP0_USE_FLAG,LOOP1_USE_FLAG,LOOP2_USE_FLAG,LOOP3_USE_FLAG";
  213. SQL += ",BAUD_RATE,LOOP0_BAUD_RATE,LOOP1_BAUD_RATE,LOOP2_BAUD_RATE,LOOP3_BAUD_RATE,MAIN_VERSION,SUB_VERSION";
  214. SQL += ",USE_FLAG,UPDATE_USER_ID,UPDATE_TIME";
  215. SQL += ") VALUES ({0},1,{1},'{2}','{3}','{4}','{5}','{6}',{7},{8},{9},{10},{11},{12},{13},'{14}','FPER',current_timestamp)";
  216. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, BOARD_NAME, LOOP0_USE_FLAG, LOOP1_USE_FLAG, LOOP2_USE_FLAG, LOOP3_USE_FLAG
  217. , BAUD_RATE, LOOP0_BAUD_RATE, LOOP1_BAUD_RATE,LOOP2_BAUD_RATE, LOOP3_BAUD_RATE, MAIN_VERSION, SUB_VERSION
  218. , USE_FLAG);
  219. }
  220. ExecuteNonQuery(SQL);
  221. }
  222. else if (cmd == QUERYMode.delete)
  223. {
  224. if (dt.Rows.Count < 1)
  225. {
  226. throw new Exception("해당 자료를 찾을수 없습니다.");
  227. }
  228. String SQL = "UPDATE TB_BOARD SET USE_FLAG = 'N' ";
  229. SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
  230. SQL += " WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1}";
  231. SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID);
  232. ExecuteNonQuery(SQL);
  233. }
  234. }
  235. catch (Exception ex)
  236. {
  237. Util.UErrorMessage(ex, 0, 0);
  238. throw ex;
  239. }
  240. }
  241. //통신보드
  242. public ArrayList Board_List(int RECEIVER_ID, MDIParent mdi)
  243. {
  244. ArrayList ary = null;
  245. try
  246. {
  247. DataTable dt = Board_Select(RECEIVER_ID, 0, "Y");
  248. if (dt.Rows.Count > 0)
  249. {
  250. ary = new ArrayList();
  251. foreach (DataRow dr in dt.Rows)
  252. {
  253. String BOARD_ID = Convert.ToString(dr["BOARD_ID"]);
  254. String BOARD_NAME = Convert.ToString(dr["BOARD_NAME"]);
  255. // cyim 2017.01.12 : 모델에 따라 선택할수 있는 통신보드가 틀리다
  256. if (mdi.ReceiverModel == "IFC3300")
  257. {
  258. if (BOARD_ID == "0" || BOARD_ID == "" || BOARD_ID.Length == 0)
  259. continue;
  260. }
  261. else
  262. {
  263. if (BOARD_ID == "15" || BOARD_ID == "" || BOARD_ID.Length == 0)
  264. continue;
  265. }
  266. ary.Add(new cboitem(BOARD_ID, BOARD_NAME));
  267. }
  268. }
  269. }
  270. catch (Exception ex)
  271. {
  272. Util.UErrorMessage(ex, 0, 0);
  273. throw ex;
  274. }
  275. return ary;
  276. }
  277. //통신보드리스트 전체추가
  278. public ArrayList Board_ListALL(int RECEIVER_ID)
  279. {
  280. ArrayList ary = new ArrayList();
  281. ary.Add(new cboitem("-1", "전체"));
  282. try
  283. {
  284. DataTable dt = Board_Select(RECEIVER_ID, 0, "Y");
  285. if (dt.Rows.Count > 0)
  286. {
  287. foreach (DataRow dr in dt.Rows)
  288. {
  289. String BOARD_ID = Convert.ToString(dr["BOARD_ID"]);
  290. String BOARD_NAME = Convert.ToString(dr["BOARD_NAME"]);
  291. ary.Add(new cboitem(BOARD_ID, BOARD_ID));
  292. }
  293. }
  294. }
  295. catch (Exception ex)
  296. {
  297. Util.UErrorMessage(ex, 0, 0);
  298. throw ex;
  299. }
  300. return ary;
  301. }
  302. //LOOP조회
  303. public ArrayList Loop_List(int RECEIVER_ID, int BOARD_ID)
  304. {
  305. ArrayList ary = null;
  306. try
  307. {
  308. DataTable dt = Board_Select(RECEIVER_ID, BOARD_ID, "Y");
  309. if (dt.Rows.Count > 0)
  310. {
  311. ary = new ArrayList();
  312. foreach (DataRow dr in dt.Rows)
  313. {
  314. // cyim 2016.10.31 : 계통정보는 0,1,2,3 으로 변경
  315. String LOOP0_USE_FLAG = Convert.ToString(dr["LOOP0_USE_FLAG"]);
  316. String LOOP1_USE_FLAG = Convert.ToString(dr["LOOP1_USE_FLAG"]);
  317. String LOOP2_USE_FLAG = Convert.ToString(Util.NullToStr(dr["LOOP2_USE_FLAG"]));
  318. String LOOP3_USE_FLAG = Convert.ToString(Util.NullToStr(dr["LOOP3_USE_FLAG"]));
  319. if (LOOP0_USE_FLAG == "Y") ary.Add(new cboitem("0", "LOOP0"));
  320. if (LOOP1_USE_FLAG == "Y") ary.Add(new cboitem("1", "LOOP1"));
  321. if (LOOP2_USE_FLAG == "Y") ary.Add(new cboitem("2", "LOOP2"));
  322. if (LOOP3_USE_FLAG == "Y") ary.Add(new cboitem("3", "LOOP3"));
  323. }
  324. }
  325. }
  326. catch (Exception ex)
  327. {
  328. Util.UErrorMessage(ex, 0, 0);
  329. throw ex;
  330. }
  331. return ary;
  332. }
  333. //LOOP조회리스트 전체추가
  334. public ArrayList Loop_ListALL(int RECEIVER_ID, int BOARD_ID)
  335. {
  336. ArrayList ary = new ArrayList();
  337. ary.Add(new cboitem("-1", "전체"));
  338. try
  339. {
  340. DataTable dt = Board_Select(RECEIVER_ID, BOARD_ID, "Y");
  341. if (dt.Rows.Count > 0)
  342. {
  343. foreach (DataRow dr in dt.Rows)
  344. {
  345. // cyim 2016.10.31 : 계통정보는 0,1,2,3 으로 변경
  346. String LOOP0_USE_FLAG = Convert.ToString(dr["LOOP0_USE_FLAG"]);
  347. String LOOP1_USE_FLAG = Convert.ToString(dr["LOOP1_USE_FLAG"]);
  348. String LOOP2_USE_FLAG = Convert.ToString(Util.NullToStr(dr["LOOP2_USE_FLAG"]));
  349. String LOOP3_USE_FLAG = Convert.ToString(Util.NullToStr(dr["LOOP3_USE_FLAG"]));
  350. if (LOOP0_USE_FLAG == "Y") ary.Add(new cboitem("0", "0"));
  351. if (LOOP1_USE_FLAG == "Y") ary.Add(new cboitem("1", "1"));
  352. if (LOOP2_USE_FLAG == "Y") ary.Add(new cboitem("2", "2"));
  353. if (LOOP3_USE_FLAG == "Y") ary.Add(new cboitem("3", "3"));
  354. }
  355. }
  356. }
  357. catch (Exception ex)
  358. {
  359. Util.UErrorMessage(ex, 0, 0);
  360. throw ex;
  361. }
  362. return ary;
  363. }
  364. }
  365. /*******************************************************************************************/
  366. }