123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351 |
- using System;
- using System.Collections.Generic;
- using System.Text;
- using FirebirdSql.Data.FirebirdClient;
- using System.Data;
- using System.Collections;
- namespace FPER
- {
- /*******************************************************************************************
- * TB_REPEATER(중계기) 설정 관련 Dac
- *******************************************************************************************/
- public class DacRepeaterConfig : DacBase
- {
- public DacRepeaterConfig(int ID)
- : base(ID) // cyim 2015.7.30 데이타베이스 접속 루틴 변경
- {
- //try {
- // base.Connect();
- //}
- //catch (Exception ex) {
- // Util.UErrorMessage(ex, 0, 0);
- //}
- }
- ~DacRepeaterConfig()
- {
- //try {
- // base.DisConnect();
- //}
- //catch (Exception ex) {
- // Util.UErrorMessage(ex, 0, 0);
- //}
- }
- //중계기조회
- public DataTable Repeater_Select(int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, String UseFlag)
- {
- DataTable dt = null;
- try
- {
- String SQL = "";
- //RECEIVER_ID INTEGER NOT NULL, /* RECEIVER ID (1 - 32) */
- //COMM_ID INTEGER NOT NULL, /* COMM ID (1 - 4) */
- //BOARD_ID INTEGER NOT NULL, /* BOARD ID (1 - 16) */
- //LOOP_NO INTEGER NOT NULL, /* LOOP NO. (0 - 1) */
- //REPEATER_ID INTEGER NOT NULL, /* REPEATER ID (1 - 126) */
- //REPEATER_NAME VARCHAR(40), /* REPEATER NAME */
- //REPEATER_TYPE VARCHAR(1), /* REPEATER TYPE */
- // /* '1':2X2, '2':4X4 */
- // /* '4': 아날로그연감지기 */
- // /* '5': 아날로그열감지기 */
- //USE_FLAG VARCHAR(1), /* USE FLAG (Y/N) */
- if (REPEATER_ID < 1) // Repeater ID가 0이면.. 전체 중계기 값을 가져옴.
- {
- SQL += "SELECT REPEATER_ID,REPEATER_NAME,REPEATER_TYPE,USE_FLAG,CUT_FLAG,POSITION_CODE";
- SQL += " FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} ";
- if (UseFlag != null) SQL += " AND USE_FLAG = '" + UseFlag + "'";
- SQL += " ORDER BY REPEATER_ID";
- SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO);
- }
- else
- {
- SQL += "SELECT REPEATER_ID,REPEATER_NAME,REPEATER_TYPE,USE_FLAG,CUT_FLAG,POSITION_CODE";
- SQL += " FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} AND REPEATER_ID = {3}";
- if (UseFlag != null) SQL += " AND USE_FLAG = '" + UseFlag + "'";
- SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID);
- }
- DataSet dao = Select(SQL);
- dt = dao.Tables[0];
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return dt;
- }
- public DataTable SelectRepeater(int RECEIVER_ID)
- {
- DataTable dt = null;
- try
- {
- String SQL = "";
- //RECEIVER_ID INTEGER NOT NULL, /* RECEIVER ID (1 - 32) */
- //COMM_ID INTEGER NOT NULL, /* COMM ID (1 - 4) */
- //BOARD_ID INTEGER NOT NULL, /* BOARD ID (1 - 16) */
- //LOOP_NO INTEGER NOT NULL, /* LOOP NO. (0 - 1) */
- //REPEATER_ID INTEGER NOT NULL, /* REPEATER ID (1 - 126) */
- //REPEATER_NAME VARCHAR(40), /* REPEATER NAME */
- //REPEATER_TYPE VARCHAR(1), /* REPEATER TYPE */
- // /* '1':2X2, '2':4X4 */
- // /* '4': 아날로그연감지기 */
- // /* '5': 아날로그열감지기 */
- //USE_FLAG VARCHAR(1), /* USE FLAG (Y/N) */
- SQL += "SELECT REPEATER_ID,REPEATER_NAME,REPEATER_TYPE,BOARD_ID,LOOP_NO,USE_FLAG,CUT_FLAG,POSITION_CODE";
- SQL += " FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1 ";
- SQL += " AND USE_FLAG = 'Y'";
- SQL += " ORDER BY REPEATER_ID";
- SQL = String.Format(SQL, RECEIVER_ID);
- DataSet dao = Select(SQL);
- dt = dao.Tables[0];
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return dt;
- }
- public DataTable SelectRepeater2(int RECEIVER_ID)
- {
- DataTable dt = null;
- try
- {
- String SQL = "";
- //RECEIVER_ID INTEGER NOT NULL, /* RECEIVER ID (1 - 32) */
- //COMM_ID INTEGER NOT NULL, /* COMM ID (1 - 4) */
- //BOARD_ID INTEGER NOT NULL, /* BOARD ID (1 - 16) */
- //LOOP_NO INTEGER NOT NULL, /* LOOP NO. (0 - 1) */
- //REPEATER_ID INTEGER NOT NULL, /* REPEATER ID (1 - 126) */
- //REPEATER_NAME VARCHAR(40), /* REPEATER NAME */
- //REPEATER_TYPE VARCHAR(1), /* REPEATER TYPE */
- // /* '1':2X2, '2':4X4 */
- // /* '4': 아날로그연감지기 */
- // /* '5': 아날로그열감지기 */
- //USE_FLAG VARCHAR(1), /* USE FLAG (Y/N) */
- SQL += "SELECT R.REPEATER_ID, R.REPEATER_NAME, R.REPEATER_TYPE, R.BOARD_ID, R.LOOP_NO, R.CUT_FLAG, R.POSITION_CODE, P.POSITION_NAME";
- SQL += " FROM TB_REPEATER R LEFT OUTER JOIN TB_POSITION_CODE P ON R.POSITION_CODE = P.POSITION_CODE ";
- SQL += " WHERE RECEIVER_ID = {0} AND COMM_ID = 1 ";
- SQL += " AND USE_FLAG = 'Y'";
- SQL += " ORDER BY REPEATER_ID";
- SQL = String.Format(SQL, RECEIVER_ID);
- DataSet dao = Select(SQL);
- dt = dao.Tables[0];
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return dt;
- }
- // 실제로 테이블이 존재하는지 체크하는 함수
- public bool Table_Exist(string TABLE_NAME)
- {
- DataTable dt = null;
- try
- {
- string SQL = "select rdb$relation_name ";
- SQL = SQL + "from rdb$relations ";
- SQL = SQL + "where rdb$system_flag=0 ";
- SQL = SQL + "and rdb$relation_name = '" + TABLE_NAME + "'";
- SQL = String.Format(SQL);
- DataSet dao = Select(SQL);
- dt = dao.Tables[0];
- if (dt.Rows.Count != 0)
- return true;
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- return false;
- }
- // cyim 2015.7.2 해쉬테이블로 아날로그 감지기 레벨을 아이디별로 저장해둔다 : 아날로그 감지기 레벨값
- public DataTable SelectRepeater_AnalogDetecterLevel(int RECEIVER_ID)
- {
- DataTable dt = null;
- if (Table_Exist("TB_ANALOG_DEVICE_2") == true) // cyim 2015.7.10 테이블이 존재하는지 먼저 살펴보도록함
- {
- try
- {
- String SQL = "";
- SQL += "SELECT R.RECEIVER_ID, R.BOARD_ID, R.LOOP_NO, R.REPEATER_ID, R.REPEATER_NAME, R.REPEATER_TYPE, R.CUT_FLAG, P.FAULT_VALUE, P.PREFIRE_VALUE, P.FIRED_VALUE, P.FIREN_VALUE ";
- SQL += " FROM TB_REPEATER R LEFT OUTER JOIN TB_ANALOG_DEVICE_2 P ";
- SQL += " ON (R.RECEIVER_ID = P.RECEIVER_ID AND R.COMM_ID = P.COMM_ID AND R.BOARD_ID = P.BOARD_ID AND R.LOOP_NO = P.LOOP_NO AND R.REPEATER_ID = P.REPEATER_ID) ";
- SQL += " WHERE R.RECEIVER_ID = {0} AND R.COMM_ID = 1 ";
- SQL += " AND R.USE_FLAG = 'Y' AND (R.REPEATER_TYPE = 4 OR R.REPEATER_TYPE = 5)";
- // cyim 2016.06.15 : 아날로그 감지기 출력 포인트 고려 : 레벨값은 입력포인트만 고려한다
- // 출력포인트가 있을경우에는 레벨값 조회시 중계기 아이디가 중복되어 버린다
- SQL += " AND INOUT_TYPE ='I' ";
- SQL = String.Format(SQL, RECEIVER_ID);
- DataSet dao = Select(SQL);
- dt = dao.Tables[0];
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- }
- }
- return dt;
- }
- //중계기저장
- public void Repeater_Clear(int RECEIVER_ID)
- {
- try
- {
- //String SQL = "UPDATE TB_REPEATER SET USE_FLAG = 'N' WHERE RECEIVER_ID = {0} AND COMM_ID = 1";
- //SQL = String.Format(SQL, RECEIVER_ID);
- String SQL = "DELETE FROM TB_DEVICE WHERE RECEIVER_ID = {0} AND COMM_ID = 1";
- SQL = String.Format(SQL, RECEIVER_ID);
- ExecuteNonQuery(SQL);
- SQL = "DELETE FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1";
- SQL = String.Format(SQL, RECEIVER_ID);
- ExecuteNonQuery(SQL);
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- }
- //중계기저장
- public void Repeater_Update(QUERYMode cmd, int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID
- , String REPEATER_NAME, String REPEATER_TYPE, String USE_FLAG)
- {
- try
- {
- DataTable dt = Repeater_Select(RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, null);
- if (cmd == QUERYMode.insert || cmd == QUERYMode.update || cmd == QUERYMode.InsertAndUpdate)
- {
- String SQL = "";
- if (dt.Rows.Count > 0)
- {
- SQL = "UPDATE TB_REPEATER SET REPEATER_NAME = '{0}'";
- SQL += ", REPEATER_TYPE = '{1}', USE_FLAG = '{2}'";
- SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
- SQL += " WHERE RECEIVER_ID = {3} AND COMM_ID = 1 AND BOARD_ID = {4} AND LOOP_NO = {5} AND REPEATER_ID = {6}";
- SQL = String.Format(SQL, REPEATER_NAME, REPEATER_TYPE, USE_FLAG, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID);
- }
- else
- {
- SQL = "INSERT INTO TB_REPEATER ( ";
- SQL += " RECEIVER_ID,COMM_ID,BOARD_ID,LOOP_NO,REPEATER_ID,REPEATER_NAME,REPEATER_TYPE,USE_FLAG,CUT_FLAG,UPDATE_USER_ID,UPDATE_TIME";
- SQL += ") VALUES ({0},1,{1},{2},{3},'{4}','{5}','{6}','N','FPER',current_timestamp)";
- SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, REPEATER_NAME, REPEATER_TYPE, USE_FLAG);
- }
- ExecuteNonQuery(SQL);
- }
- else if (cmd == QUERYMode.delete)
- {
- //if (dt.Rows.Count < 1)
- //{
- // throw new Exception("해당 자료를 찾을수 없습니다.");
- //}
- String SQL = "DELETE FROM TB_REPEATER WHERE RECEIVER_ID = {0} AND COMM_ID = 1 AND BOARD_ID = {1} AND LOOP_NO = {2} AND REPEATER_ID = {3}";
- SQL = String.Format(SQL, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID);
- ExecuteNonQuery(SQL);
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- }
- public void Repeater_Cut_Update(int RECEIVER_ID, int BOARD_ID, int LOOP_NO, int REPEATER_ID, string CUT_FLAG)
- {
- try
- {
- DataTable dt = Repeater_Select(RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID, null);
- String SQL = "";
- if (dt.Rows.Count > 0)
- {
- SQL = "UPDATE TB_REPEATER SET CUT_FLAG = '{0}'";
- SQL += ", UPDATE_USER_ID = 'FPER', UPDATE_TIME = current_timestamp";
- SQL += " WHERE RECEIVER_ID = {1} AND COMM_ID = 1 AND BOARD_ID = {2} AND LOOP_NO = {3} AND REPEATER_ID = {4}";
- SQL = String.Format(SQL, CUT_FLAG, RECEIVER_ID, BOARD_ID, LOOP_NO, REPEATER_ID);
- ExecuteNonQuery(SQL);
- }
- else
- {
- throw new Exception("해당 자료를 찾을수 없습니다.");
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- }
- //LOOP조회리스트 전체추가
- public ArrayList Repeater_ListALL(int RECEIVER_ID, int BOARD_ID, int LOOP_NO)
- {
- ArrayList ary = new ArrayList();
- ary.Add(new cboitem("-1", "전체"));
- try
- {
- DataTable dt = Repeater_Select(RECEIVER_ID, BOARD_ID, LOOP_NO, 0, "Y");
- if (dt.Rows.Count > 0)
- {
- foreach (DataRow dr in dt.Rows)
- {
- //REPEATER_ID,REPEATER_NAME,REPEATER_TYPE
- String REPEATER_ID = Convert.ToString(dr["REPEATER_ID"]);
- String REPEATER_NAME = Convert.ToString(dr["REPEATER_NAME"]);
- String REPEATER_TYPE = Convert.ToString(dr["REPEATER_TYPE"]);
- ary.Add(new cboitem(REPEATER_ID, REPEATER_ID));
- }
- }
- }
- catch (Exception ex)
- {
- Util.UErrorMessage(ex, 0, 0);
- throw ex;
- }
- return ary;
- }
- }
- }
|