CDSFacilityF_back.cpp 99 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSFacilityF.h"
  4. #include "AppGlobalF.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. TItsRegFacility::TItsRegFacility()
  8. {
  9. UnRegisterd = "N";
  10. GridIndex = -1;
  11. Clear();
  12. }
  13. //---------------------------------------------------------------------------
  14. TItsRegFacility::~TItsRegFacility()
  15. {
  16. }
  17. //---------------------------------------------------------------------------
  18. void TItsRegFacility::Clear()
  19. {
  20. #if 0
  21. Type = "";
  22. Id = "";
  23. Name = "";
  24. DelYn = ""
  25. UnRegisterd = "N";
  26. #endif
  27. }
  28. //---------------------------------------------------------------------------
  29. TItsFacility::TItsFacility()
  30. {
  31. FCommStatus = "CMS2"; // 장비 통신상태값
  32. FDoorStatus = "CMS2"; // 장비 Door상태값
  33. GridIndex = -1; // 그리드 인덱스
  34. StatusGridIndex = -1;
  35. Deleted = "N";
  36. Clear();
  37. }
  38. //---------------------------------------------------------------------------
  39. void TItsFacility::Clear()
  40. {
  41. #if 0
  42. FCLT_ID = ""; // FCLT_ID VARCHAR(50 BYTE) NOT NULL, '시설물 ID';
  43. RFID_ID = ""; // RFID_ID VARCHAR(50 BYTE) NOT NULL, '시설물 ID';
  44. FCLT_TYPE = ""; // FCLT_TYPE VARCHAR(7 BYTE) NOT NULL, '시설물유형';
  45. FCLT_LCTN = ""; // FCLT_LCTN VARCHAR(100 BYTE), '시설물 위치';
  46. RSCE_YN = ""; // RSCE_YN CHAR(1 BYTE) DEFAULT 'N', '현장자산유무';
  47. MDL_NM = ""; // MDL_NM VARCHAR(30 BYTE), '모델명';
  48. USE_YEAR = ""; // USE_YEAR NUMBER(3), '사용년수';
  49. INWR_DT = ""; // INWR_DT VARCHAR(14 BYTE), '입고일시';
  50. OTWR_DT = ""; // OTWR_DT VARCHAR(14 BYTE), '출고일시';
  51. ISTL_DT = ""; // ISTL_DT VARCHAR(14 BYTE), '설치일시';
  52. TAKT_DT = ""; // TAKT_DT VARCHAR(14 BYTE), '반출일시';
  53. TAKT_RESN = ""; // TAKT_RESN VARCHAR(100 BYTE), '반출사유';
  54. TAKN_DT = ""; // TAKN_DT VARCHAR(14 BYTE), '반입일시';
  55. ABDN_DT = ""; // ABDN_DT VARCHAR(14 BYTE), '폐기일시';
  56. ADTN_NM = ""; // ADTN_NM VARCHAR(30 BYTE), '추가자명';
  57. ADTN_DT = ""; // ADTN_DT VARCHAR(14 BYTE), '추가일시';
  58. CHNG_NM = ""; // CHNG_NM VARCHAR(30 BYTE), '변경자명';
  59. CHNG_DT = ""; // CHNG_DT VARCHAR(14 BYTE), '변경일시';
  60. AMT = ""; // AMT NUMBER(15), '금액';
  61. DEL_YN = ""; // DEL_YN CHAR(1 BYTE) DEFAULT 'N', '삭제여부';
  62. ISTL_CMPY_ID = ""; // ISTL_CMPY_ID VARCHAR(30 BYTE), '설치업체ID';
  63. MNFC_CMPY_ID = ""; // PRDC_CMPY_ID VARCHAR(30 BYTE) '제조업체ID';
  64. ISTL_LCTN_ADDR = "";
  65. CommStatus = "CMS2"; // 장비 통신상태값
  66. DoorStatus = "CMS2"; // 장비 Door상태값
  67. GridIndex = -1; // 메인폼에 뿌려지는 그리드 인덱스
  68. #endif
  69. }
  70. //---------------------------------------------------------------------------
  71. TItsFacility::~TItsFacility()
  72. {
  73. }
  74. //---------------------------------------------------------------------------
  75. //---------------------------------------------------------------------------
  76. TItsFacilityManager *ItsFacilityManager = NULL;
  77. //---------------------------------------------------------------------------
  78. /*
  79. * Facility Manager
  80. */
  81. TItsFacilityManager::TItsFacilityManager()
  82. {
  83. }
  84. //---------------------------------------------------------------------------
  85. TItsFacilityManager::~TItsFacilityManager()
  86. {
  87. FRegLists.RemoveAll();
  88. FLists.RemoveAll();
  89. }
  90. //---------------------------------------------------------------------------
  91. void TItsFacilityManager::SetCenterId(String ACenterId)
  92. {
  93. CenterId = ACenterId;
  94. }
  95. //---------------------------------------------------------------------------
  96. bool TItsFacilityManager::LoadFromDb(TADOConnection *ADbConn/*=NULL*/)
  97. {
  98. try
  99. {
  100. FLocalCctvCnt = 0;
  101. FWebCamLists.Lock();
  102. FCctvLists.Lock();
  103. FVmsLists.Lock();
  104. FRseLists.Lock();
  105. FVdsLists.Lock();
  106. FAviLists.Lock();
  107. FDsrcLists.Lock();
  108. FBitLists.Lock();
  109. FSigLists.Lock();
  110. FSigDetLists.Lock();
  111. FPisLists.Lock();
  112. FPcsLists.Lock();
  113. FRegLists.Lock();
  114. FLists.Lock();
  115. FWebCamLists.RemoveAll();
  116. FCctvLists.RemoveAll();
  117. FVmsLists.RemoveAll();
  118. FRseLists.RemoveAll();
  119. FVdsLists.RemoveAll();
  120. FAviLists.RemoveAll();
  121. FDsrcLists.RemoveAll();
  122. FBitLists.RemoveAll();
  123. FSigLists.RemoveAll();
  124. FSigDetLists.RemoveAll();
  125. FPisLists.RemoveAll();
  126. FPcsLists.RemoveAll();
  127. FRegLists.RemoveAll();
  128. FLists.RemoveAll();
  129. }
  130. __finally
  131. {
  132. FWebCamLists.UnLock();
  133. FCctvLists.UnLock();
  134. FVmsLists.UnLock();
  135. FRseLists.UnLock();
  136. FVdsLists.UnLock();
  137. FAviLists.UnLock();
  138. FDsrcLists.UnLock();
  139. FBitLists.UnLock();
  140. FSigLists.UnLock();
  141. FSigDetLists.UnLock();
  142. FRegLists.UnLock();
  143. FLists.UnLock();
  144. }
  145. LoadFacilityReg(ADbConn);
  146. LoadFacilityMaster(ADbConn);
  147. LoadFacilityWebCam(ADbConn);
  148. LoadFacilityCctv(ADbConn);
  149. LoadFacilityVms(ADbConn);
  150. LoadFacilityRse(ADbConn);
  151. LoadFacilityVds(ADbConn);
  152. #ifdef USE_AVI
  153. LoadFacilityAvi(ADbConn);
  154. #endif
  155. #ifdef USE_DSRC
  156. LoadFacilityDsrc(ADbConn);
  157. #endif
  158. #ifdef USE_BIT
  159. LoadFacilityBit(ADbConn);
  160. #endif
  161. #ifdef USE_SIG
  162. LoadFacilitySig(ADbConn);
  163. #endif
  164. #ifdef USE_SIGDET
  165. LoadFacilitySigDet(ADbConn);
  166. #endif
  167. #ifdef USE_PVMS
  168. LoadFacilityPvms(ADbConn);
  169. #endif
  170. #ifdef USE_PVDS
  171. LoadFacilityPvds(ADbConn);
  172. #endif
  173. CheckFacility();
  174. return true;
  175. }
  176. //---------------------------------------------------------------------------
  177. bool TItsFacilityManager::CheckFacility()
  178. {
  179. try
  180. {
  181. FLists.Lock();
  182. FOR_STL(TItsFacility *, pFacility, FLists)
  183. {
  184. TItsRegFacility *pRegFacility = FRegLists.Find(pFacility->FCLT_TYPE + pFacility->FCLT_ID);
  185. if (!pRegFacility)
  186. {
  187. pFacility->Deleted = "Y";
  188. }
  189. }
  190. }
  191. __finally
  192. {
  193. FLists.UnLock();
  194. }
  195. try
  196. {
  197. FRegLists.Lock();
  198. FOR_STL(TItsRegFacility *, pRegFacility, FRegLists)
  199. {
  200. TItsFacility *pFacility = FLists.Find(pRegFacility->Id);
  201. if (!pFacility)
  202. {
  203. pRegFacility->UnRegisterd = "Y";
  204. }
  205. }
  206. }
  207. __finally
  208. {
  209. FRegLists.UnLock();
  210. }
  211. return true;
  212. }
  213. //---------------------------------------------------------------------------
  214. bool TItsFacilityManager::LoadFacilityReg(TADOConnection *ADbConn/*=NULL*/)
  215. {
  216. String sQry;
  217. TADOQuery *pADO = NULL;
  218. sQry = "SELECT 'CCTV' AS FAC_TYPE, CCTV_CTLR_ID AS FAC_ID, ISTL_LCTN_NM AS FAC_NM, DEL_YN \r\n"
  219. " FROM TB_CCTV_CTLR \r\n"
  220. " WHERE DEL_YN = 'N' \r\n"
  221. #ifdef USE_WCAM
  222. "UNION \r\n"
  223. "SELECT 'WCAM' AS FAC_TYPE, WEB_CMRA_ID AS FAC_ID, ISTL_LCTN_NM AS FAC_NM, DEL_YN \r\n"
  224. " FROM TB_WEB_CMRA \r\n"
  225. " WHERE DEL_YN = 'N' \r\n"
  226. #endif
  227. "UNION \r\n"
  228. "SELECT 'VMS' AS FAC_TYPE, VMS_CTLR_ID AS FAC_ID, VMS_NM AS FAC_NM, DEL_YN \r\n"
  229. " FROM TB_VMS_CTLR \r\n"
  230. " WHERE DEL_YN = 'N' \r\n"
  231. #ifdef USE_AVI
  232. "UNION \r\n"
  233. "SELECT 'AVI' AS FAC_TYPE, AVI_ID AS FAC_ID, AVI_LCTN_NM AS FAC_NM, DEL_YN \r\n"
  234. " FROM TB_AVI_CTLR \r\n"
  235. " WHERE DEL_YN = 'N' \r\n"
  236. #endif
  237. "UNION \r\n"
  238. "SELECT 'VDS' AS FAC_TYPE, VDS_CTLR_ID AS FAC_ID, LCTN AS FAC_N, DEL_YN \r\n"
  239. " FROM TB_VDS_CTLR \r\n"
  240. " WHERE DEL_YN = 'N' \r\n"
  241. #ifdef USE_DSRC
  242. "UNION \r\n"
  243. "SELECT 'DSRC' AS FAC_TYPE, RSE_ID AS FAC_ID, ISTL_LCTN_NM AS FAC_NM, DEL_YN \r\n"
  244. " FROM TB_RSE_MSTR \r\n"
  245. " WHERE DEL_YN = 'N' \r\n"
  246. #endif
  247. #ifdef USE_BIT
  248. "UNION \r\n"
  249. "SELECT 'BIT' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  250. " FROM VW_BIT \r\n"
  251. #if 0
  252. "SELECT 'BIT' AS FAC_TYPE, TO_CHAR(A.BIT_ID) AS FAC_ID, B.STOP_NAME AS FAC_NM, \r\n"
  253. " 'N' AS DEL_YN \r\n"
  254. " FROM BIT A, BUSSTOP B \r\n"
  255. " WHERE 1=1 \r\n"
  256. " AND A.INSTALL_STOP_ID = B.STOP_ID \r\n"
  257. " AND B.USE_FLAG = '1' \r\n"
  258. #endif
  259. #endif
  260. #ifdef USE_SIG
  261. "UNION \r\n"
  262. "SELECT 'SIG' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  263. " FROM VW_SIG_CTLR \r\n"
  264. #endif
  265. #ifdef USE_PVMS
  266. "UNION \r\n"
  267. "SELECT 'PVMS' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  268. " FROM VW_PIS_VMS \r\n"
  269. #endif
  270. #ifdef USE_PVDS
  271. "UNION \r\n"
  272. "SELECT 'PVDS' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  273. " FROM VW_PIS_CONT \r\n"
  274. #endif
  275. #ifdef USE_SIGDET
  276. "UNION \r\n"
  277. "SELECT 'LVD' AS FAC_TYPE, FCLT_ID AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  278. " FROM VW_SIG_LVDS \r\n"
  279. #endif
  280. #ifdef USE_RSE
  281. "UNION \r\n"
  282. "SELECT 'RSE' AS FAC_TYPE, RSEID AS FAC_ID, LOCATION AS FAC_NM, 'N' AS DEL_YN \r\n"
  283. " FROM RSEMST \r\n"
  284. #endif
  285. ;
  286. try
  287. {
  288. FRegLists.Lock();
  289. //FRegLists.RemoveAll();
  290. try
  291. {
  292. pADO = new TADOQuery(NULL);
  293. pADO->Close();
  294. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  295. pADO->SQL->Clear();
  296. pADO->SQL->Text = sQry;
  297. pADO->Open();
  298. for( ; !pADO->Eof; pADO->Next())
  299. {
  300. TItsRegFacility *pRegFacility = new TItsRegFacility();
  301. pRegFacility->Type = pADO->FieldByName("FAC_TYPE")->AsString;
  302. pRegFacility->Id = pADO->FieldByName("FAC_ID")->AsString;
  303. pRegFacility->Name = pADO->FieldByName("FAC_NM")->AsString;
  304. pRegFacility->DelYn = pADO->FieldByName("DEL_YN")->AsString;
  305. pRegFacility->GridIndex = -1;
  306. FRegLists.Push(pRegFacility->Type + pRegFacility->Id, pRegFacility);
  307. }
  308. }
  309. catch(EDatabaseError &E)
  310. {
  311. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  312. DBERRORMSG("등록시설물정보조회", String(E.ClassName()), E.Message, sQry);
  313. throw Exception(String(E.ClassName()) + E.Message);
  314. }
  315. catch(Exception &exception)
  316. {
  317. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  318. DBERRORMSG("등록시설물정보조회", String(exception.ClassName()), exception.Message, sQry);
  319. throw Exception(String(exception.ClassName()) + exception.Message);
  320. }
  321. }
  322. __finally
  323. {
  324. if (pADO)
  325. {
  326. pADO->Close();
  327. delete pADO;
  328. }
  329. FRegLists.UnLock();
  330. }
  331. return true;
  332. }
  333. //---------------------------------------------------------------------------
  334. bool TItsFacilityManager::LoadFacilityMaster(TADOConnection *ADbConn/*=NULL*/)
  335. {
  336. String sQry;
  337. TADOQuery *pADO = NULL;
  338. sQry = "SELECT * \r\n"
  339. " FROM TB_FCLT_INFR \r\n"
  340. " WHERE DEL_YN = 'N' \r\n";
  341. // " ORDER BY FCLT_TYPE, FCLT_ID \r\n";
  342. try
  343. {
  344. TFacilityStatus *pStatus;
  345. FListStatus.RemoveAll();
  346. FLists.Lock();
  347. //FLists.RemoveAll();
  348. try
  349. {
  350. pADO = new TADOQuery(NULL);
  351. pADO->Close();
  352. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  353. pADO->SQL->Clear();
  354. pADO->SQL->Text = sQry;
  355. pADO->Open();
  356. for( ; !pADO->Eof; pADO->Next())
  357. {
  358. TItsFacility *pFacility = new TItsFacility();
  359. pFacility->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  360. pFacility->RFID_ID = pADO->FieldByName("RFID_ID")->AsString;
  361. pFacility->FCLT_TYPE = pADO->FieldByName("FCLT_TYPE")->AsString;
  362. pFacility->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  363. pFacility->RSCE_YN = pADO->FieldByName("RSCE_YN")->AsString;
  364. pFacility->MDL_NM = pADO->FieldByName("MDL_NM")->AsString;
  365. pFacility->USE_YEAR = pADO->FieldByName("USE_YEAR")->AsString;
  366. if (pFacility->USE_YEAR == "") pFacility->USE_YEAR = "0";
  367. pFacility->INWR_DT = pADO->FieldByName("INWR_DT")->AsString;
  368. pFacility->OTWR_DT = pADO->FieldByName("OTWR_DT")->AsString;
  369. pFacility->ISTL_DT = pADO->FieldByName("ISTL_DT")->AsString;
  370. pFacility->TAKT_DT = pADO->FieldByName("TAKT_DT")->AsString;
  371. pFacility->TAKT_RESN = pADO->FieldByName("TAKT_RESN")->AsString;
  372. pFacility->TAKN_DT = pADO->FieldByName("TAKN_DT")->AsString;
  373. pFacility->ABDN_DT = pADO->FieldByName("ABDN_DT")->AsString;
  374. pFacility->ADTN_NM = pADO->FieldByName("ADTN_NM")->AsString;
  375. pFacility->ADTN_DT = pADO->FieldByName("ADTN_DT")->AsString;
  376. pFacility->CHNG_NM = pADO->FieldByName("CHNG_NM")->AsString;
  377. pFacility->CHNG_DT = pADO->FieldByName("CHNG_DT")->AsString;
  378. pFacility->AMT = pADO->FieldByName("AMT")->AsString;
  379. pFacility->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  380. pFacility->ISTL_CMPY_ID = pADO->FieldByName("ISTL_CMPY_ID")->AsString;
  381. pFacility->MNFC_CMPY_ID = pADO->FieldByName("MNFC_CMPY_ID")->AsString;
  382. pFacility->ISTL_LCTN_ADDR = pADO->FieldByName("ISTL_LCTN_ADDR")->AsString;
  383. pFacility->Sts00 = "-";
  384. pFacility->GridIndex = -1; // 메인폼에 뿌려지는 그리드 인덱스
  385. pFacility->StatusGridIndex = -1;
  386. FLists.Push(pFacility->FCLT_ID, pFacility);
  387. pFacility->Completed = true;
  388. pStatus = FListStatus.Find(pFacility->FCLT_TYPE);
  389. if (!pStatus)
  390. {
  391. pStatus = new TFacilityStatus();
  392. pStatus->Type = pFacility->FCLT_TYPE;
  393. pStatus->Total = 0;
  394. pStatus->Normal = 0;
  395. pStatus->Error = 0;
  396. pStatus->Module = 0;
  397. pStatus->Collect= 0;
  398. FListStatus.Push(pFacility->FCLT_TYPE, pStatus);
  399. }
  400. pStatus->Total++; /* 전체 갯수를 증가 시킴 */
  401. }
  402. }
  403. catch(EDatabaseError &E)
  404. {
  405. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  406. DBERRORMSG("시설물마스터정보조회", String(E.ClassName()), E.Message, sQry);
  407. throw Exception(String(E.ClassName()) + E.Message);
  408. }
  409. catch(Exception &exception)
  410. {
  411. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  412. DBERRORMSG("시설물마스터정보조회", String(exception.ClassName()), exception.Message, sQry);
  413. throw Exception(String(exception.ClassName()) + exception.Message);
  414. }
  415. }
  416. __finally
  417. {
  418. if (pADO)
  419. {
  420. pADO->Close();
  421. delete pADO;
  422. }
  423. FLists.UnLock();
  424. }
  425. return true;
  426. }
  427. //---------------------------------------------------------------------------
  428. bool TItsFacilityManager::LoadFacilityWebCam(TADOConnection *ADbConn/*=NULL*/)
  429. {
  430. String sQry;
  431. TADOQuery *pADO = NULL;
  432. sQry = "SELECT A.WEB_CMRA_NMBR, \r\n"
  433. " A.WEB_CMRA_ID, \r\n"
  434. " A.CMRA_IP, \r\n"
  435. " A.CMRA_PORT, \r\n"
  436. " A.STRM_SVR_IP, \r\n"
  437. " A.STRM_SVR_PORT, \r\n"
  438. " A.STRM_SESN_NM, \r\n"
  439. " A.X_CRDN, \r\n"
  440. " A.Y_CRDN, \r\n"
  441. " A.ISTL_LCTN_NM, \r\n"
  442. " A.ISTL_LCTN_ADDR, \r\n"
  443. " A.EQPM_KIND, \r\n"
  444. " A.DEL_YN, \r\n"
  445. " A.LINK_ID, \r\n"
  446. " B.STRM_RTSP_ADDR, \r\n"
  447. " B.STRM_RTMP_ADDR, \r\n"
  448. " B.STRM_HTTP_ADDR, \r\n"
  449. " B.STRM_STOR_ADDR \r\n"
  450. " FROM TB_WEB_CMRA A, \r\n"
  451. " TB_WEB_CMRA_STRM B \r\n"
  452. " WHERE DEL_YN = 'N' \r\n"
  453. " AND A.WEB_CMRA_NMBR = B.WEB_CMRA_NMBR(+) \r\n";
  454. //" ORDER BY A.WEB_CMRA_NMBR \r\n";
  455. #if 0
  456. sQry = "SELECT A.WEB_CMRA_NMBR, \r\n"
  457. " A.WEB_CMRA_ID, \r\n"
  458. " A.CMRA_IP, \r\n"
  459. " A.CMRA_PORT, \r\n"
  460. " A.STRM_SVR_IP, \r\n"
  461. " A.STRM_SVR_PORT, \r\n"
  462. " A.STRM_SESN_NM, \r\n"
  463. " A.X_CRDN, \r\n"
  464. " A.Y_CRDN, \r\n"
  465. " A.ISTL_LCTN_NM, \r\n"
  466. " A.ISTL_LCTN_ADDR, \r\n"
  467. " A.EQPM_KIND, \r\n"
  468. " A.DEL_YN, \r\n"
  469. " A.LINK_ID, \r\n"
  470. " B.STRM_RTSP_ADDR, \r\n"
  471. " B.STRM_RTMP_ADDR, \r\n"
  472. " B.STRM_HTTP_ADDR, \r\n"
  473. " B.STRM_STOR_ADDR \r\n"
  474. " FROM TB_WEB_CMRA A, \r\n"
  475. " TB_WEB_CMRA_STRM B \r\n"
  476. " WHERE DEL_YN = 'N' \r\n"
  477. " AND A.WEB_CMRA_NMBR = B.WEB_CMRA_NMBR(+) \r\n";
  478. //" ORDER BY A.WEB_CMRA_NMBR \r\n";
  479. #endif
  480. try
  481. {
  482. FWebCamLists.Lock();
  483. try
  484. {
  485. pADO = new TADOQuery(NULL);
  486. pADO->Close();
  487. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  488. pADO->SQL->Clear();
  489. pADO->SQL->Text = sQry;
  490. pADO->Open();
  491. for( ; !pADO->Eof; pADO->Next())
  492. {
  493. TItsWebCam *pObj = new TItsWebCam();
  494. pObj->WEB_CMRA_NMBR = pADO->FieldByName("WEB_CMRA_NMBR")->AsString;
  495. pObj->WEB_CMRA_ID = pADO->FieldByName("WEB_CMRA_ID")->AsString;
  496. pObj->CMRA_IP = pADO->FieldByName("CMRA_IP")->AsString;
  497. pObj->CMRA_PORT = pADO->FieldByName("CMRA_PORT")->AsString;
  498. pObj->STRM_SVR_IP = pADO->FieldByName("STRM_SVR_IP")->AsString;
  499. pObj->STRM_SVR_PORT = pADO->FieldByName("STRM_SVR_PORT")->AsString;
  500. pObj->STRM_SESN_NM = pADO->FieldByName("STRM_SESN_NM")->AsString;
  501. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  502. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  503. pObj->ISTL_LCTN_NM = pADO->FieldByName("ISTL_LCTN_NM")->AsString;
  504. pObj->ISTL_LCTN_ADDR = pADO->FieldByName("ISTL_LCTN_ADDR")->AsString;
  505. pObj->EQPM_KIND = pADO->FieldByName("EQPM_KIND")->AsString;
  506. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  507. pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString;
  508. pObj->STRM_RTSP_ADDR = pADO->FieldByName("STRM_RTSP_ADDR")->AsString;
  509. pObj->STRM_RTMP_ADDR = pADO->FieldByName("STRM_RTMP_ADDR")->AsString;
  510. pObj->STRM_HTTP_ADDR = pADO->FieldByName("STRM_HTTP_ADDR")->AsString;
  511. pObj->STRM_STOR_ADDR = pADO->FieldByName("STRM_STOR_ADDR")->AsString;
  512. pObj->ID = "admin";
  513. pObj->PSWD = "4321";
  514. pObj->FData1 = NULL;
  515. pObj->FData2 = NULL;
  516. FWebCamLists.Push(pObj->WEB_CMRA_ID, pObj);
  517. }
  518. }
  519. catch(EDatabaseError &E)
  520. {
  521. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  522. DBERRORMSG("웹카메라정보조회", String(E.ClassName()), E.Message, sQry);
  523. throw Exception(String(E.ClassName()) + E.Message);
  524. }
  525. catch(Exception &exception)
  526. {
  527. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  528. DBERRORMSG("웹카메라정보조회", String(exception.ClassName()), exception.Message, sQry);
  529. throw Exception(String(exception.ClassName()) + exception.Message);
  530. }
  531. }
  532. __finally
  533. {
  534. if (pADO)
  535. {
  536. pADO->Close();
  537. delete pADO;
  538. }
  539. FWebCamLists.UnLock();
  540. }
  541. return true;
  542. }
  543. //---------------------------------------------------------------------------
  544. bool TItsFacilityManager::LoadFacilityCctv(TADOConnection *ADbConn/*=NULL*/)
  545. {
  546. String sQry;
  547. TADOQuery *pADO = NULL;
  548. sQry = "SELECT CCTV_MNGM_NMBR, \r\n"
  549. " CCTV_CTLR_ID, \r\n"
  550. " CCTV_CTLR_IP, \r\n"
  551. " CCTV_CTLR_PORT, \r\n"
  552. " CCTV_CAPT_IP, \r\n"
  553. " CCTV_CAPT_PORT, \r\n"
  554. " CCTV_FIBR_IP, \r\n"
  555. " CCTV_ENCD_IP, \r\n"
  556. " STRM_SVR_IP, \r\n"
  557. " STRM_SVR_PORT, \r\n"
  558. " STRM_SESN_NM, \r\n"
  559. " NVL(X_CRDN, 0) X_CRDN, \r\n"
  560. " NVL(Y_CRDN, 0) Y_CRDN, \r\n"
  561. " ISTL_LCTN_NM, \r\n"
  562. " ISTL_LCTN_ADDR, \r\n"
  563. " CCTV_CHNL, \r\n"
  564. " DEL_YN, \r\n"
  565. " FRST_REGR_NMBR, \r\n"
  566. " FRST_RGST_DT, \r\n"
  567. " LAST_CRPR_NMBR, \r\n"
  568. " LAST_CRCT_DT, \r\n"
  569. " LINK_ID, \r\n"
  570. " CCTV_ID, \r\n"
  571. " RELY_PORT, \r\n"
  572. " STRM_RTSP_ADDR, \r\n"
  573. " STRM_RTMP_ADDR, \r\n"
  574. " STRM_HTTP_ADDR, \r\n"
  575. " CCTV_TYPE \r\n"
  576. " FROM TB_CCTV_CTLR \r\n"
  577. " WHERE DEL_YN = 'N' \r\n";
  578. //" ORDER BY CCTV_CTLR_ID \r\n";
  579. try
  580. {
  581. FLocalCctvCnt = 0;
  582. FCctvLists.Lock();
  583. //FCctvLists.RemoveAll();
  584. try
  585. {
  586. pADO = new TADOQuery(NULL);
  587. pADO->Close();
  588. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  589. pADO->SQL->Clear();
  590. pADO->SQL->Text = sQry;
  591. pADO->Open();
  592. for( ; !pADO->Eof; pADO->Next())
  593. {
  594. TItsCctv *pObj = new TItsCctv();
  595. pObj->CCTV_MNGM_NMBR = pADO->FieldByName("CCTV_MNGM_NMBR")->AsString;
  596. pObj->CCTV_CTLR_ID = pADO->FieldByName("CCTV_CTLR_ID")->AsString;
  597. pObj->CCTV_CTLR_IP = pADO->FieldByName("CCTV_CTLR_IP")->AsString;
  598. pObj->CCTV_CTLR_PORT = pADO->FieldByName("CCTV_CTLR_PORT")->AsString;
  599. pObj->CCTV_CAPT_IP = pADO->FieldByName("CCTV_CAPT_IP")->AsString;
  600. pObj->CCTV_CAPT_PORT = pADO->FieldByName("CCTV_CAPT_PORT")->AsString;
  601. pObj->CCTV_FIBR_IP = pADO->FieldByName("CCTV_FIBR_IP")->AsString;
  602. pObj->CCTV_ENCD_IP = pADO->FieldByName("CCTV_ENCD_IP")->AsString;
  603. pObj->STRM_SVR_IP = pADO->FieldByName("STRM_SVR_IP")->AsString;
  604. pObj->STRM_SVR_PORT = pADO->FieldByName("STRM_SVR_PORT")->AsString;
  605. pObj->STRM_SESN_NM = pADO->FieldByName("STRM_SESN_NM")->AsString;
  606. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  607. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  608. pObj->ISTL_LCTN_NM = pADO->FieldByName("ISTL_LCTN_NM")->AsString;
  609. pObj->ISTL_LCTN_ADDR = pADO->FieldByName("ISTL_LCTN_ADDR")->AsString;
  610. pObj->CCTV_CHNL = pADO->FieldByName("CCTV_CHNL")->AsString;
  611. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  612. pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString;
  613. pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString;
  614. pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString;
  615. pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString;
  616. pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString;
  617. pObj->CCTV_ID = pADO->FieldByName("CCTV_ID")->AsString;
  618. pObj->RELY_PORT = pADO->FieldByName("RELY_PORT")->AsString;
  619. pObj->STRM_RTSP_ADDR = pADO->FieldByName("STRM_RTSP_ADDR")->AsString;
  620. pObj->STRM_RTMP_ADDR = pADO->FieldByName("STRM_RTMP_ADDR")->AsString;
  621. pObj->STRM_HTTP_ADDR = pADO->FieldByName("STRM_HTTP_ADDR")->AsString;
  622. pObj->CCTV_TYPE = pADO->FieldByName("CCTV_TYPE")->AsString;
  623. pObj->FData1 = NULL;
  624. pObj->FData2 = NULL;
  625. FCctvLists.Push(pObj->CCTV_CTLR_ID, pObj);
  626. if (pObj->CCTV_CTLR_ID.Pos(CenterId))
  627. {
  628. pObj->LOCAL_YN = "Y";
  629. FLocalCctvCnt++;
  630. }
  631. else
  632. {
  633. pObj->LOCAL_YN = "N";
  634. }
  635. }
  636. }
  637. catch(EDatabaseError &E)
  638. {
  639. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  640. DBERRORMSG("CCTV정보조회", String(E.ClassName()), E.Message, sQry);
  641. throw Exception(String(E.ClassName()) + E.Message);
  642. }
  643. catch(Exception &exception)
  644. {
  645. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  646. DBERRORMSG("CCTV정보조회", String(exception.ClassName()), exception.Message, sQry);
  647. throw Exception(String(exception.ClassName()) + exception.Message);
  648. }
  649. }
  650. __finally
  651. {
  652. if (pADO)
  653. {
  654. pADO->Close();
  655. delete pADO;
  656. }
  657. FCctvLists.UnLock();
  658. }
  659. return true;
  660. }
  661. //---------------------------------------------------------------------------
  662. bool TItsFacilityManager::LoadFacilityVms(TADOConnection *ADbConn/*=NULL*/)
  663. {
  664. String sQry;
  665. TADOQuery *pADO = NULL;
  666. #if 0
  667. sQry = "SELECT VMS_CTLR_NMBR, \r\n"
  668. " VMS_ID, \r\n"
  669. " VMS_CTLR_ID, \r\n"
  670. " VMS_NM, \r\n"
  671. " VMS_CTLR_IP, \r\n"
  672. " VMS_USAG_TYPE_CD, \r\n"
  673. " VMS_FRM_TYPE_CD, \r\n"
  674. " VMS_TYPE_CD, \r\n"
  675. " VMS_MODL_TYPE_CD, \r\n"
  676. " VMS_CMNC_PORT, \r\n"
  677. " OPER_MODE, \r\n"
  678. " VMS_CMNC_ERR_BASS_VAL, \r\n"
  679. " VMS_NGHT_BRGH_STEP, \r\n"
  680. " VMS_WEEK_BRGH_STEP, \r\n"
  681. " VMS_PHSE_CHNG_CYCL, \r\n"
  682. " VMS_MODL_ERR_RATE, \r\n"
  683. " CMNCFAIL_SLOT_NMBR, \r\n"
  684. " PWER_FAIL_SLOT_NMBR, \r\n"
  685. " DEL_YN, \r\n"
  686. " CMTRINFR_CNCT_YN, \r\n"
  687. " WTHRINFR_CNCT_YN, \r\n"
  688. " ENVRINFR_CNCT_YN, \r\n"
  689. " VMS_MAX_PHSE_NUM, \r\n"
  690. " FRST_REGR_NMBR, \r\n"
  691. " FRST_RGST_DT, \r\n"
  692. " LAST_CRPR_NMBR, \r\n"
  693. " LAST_CRCT_DT, \r\n"
  694. " PANL_ON_TIME, \r\n"
  695. " PANL_OFF_TIME, \r\n"
  696. " PANL_PWER_MODE, \r\n"
  697. " BRGH_MODE, \r\n"
  698. " WEB_CMRA_IP, \r\n"
  699. " NVL(X_CRDN, 0) X_CRDN, \r\n"
  700. " NVL(Y_CRDN, 0) Y_CRDN, \r\n"
  701. " ISTL_LCTN_NM, \r\n"
  702. " TRFC_STRG_USE_YN, \r\n"
  703. " VMS_LOC_IFSC_ID, \r\n"
  704. " WEB_CMRA_PORT, \r\n"
  705. " WEB_CMRA_ID, \r\n"
  706. " scp.dec_b64('DAMO','SCP','ARIA_256.SCPS', WEB_CMRA_PWD) AS WEB_CMRA_PWD, \r\n"
  707. " STRM_SESN_NM \r\n"
  708. " FROM TB_VMS_CTLR \r\n"
  709. " WHERE DEL_YN = 'N' \r\n";
  710. //" ORDER BY VMS_CTLR_NMBR \r\n";
  711. #else
  712. sQry = "SELECT A.*, \r\n"
  713. " (SELECT NVL(ATRB1, '320') \r\n"
  714. " FROM TB_CMMN_CD \r\n"
  715. " WHERE CMMN_CLSF_CD = 'VMP' \r\n"
  716. " AND CMMN_CD = A.VMS_TYPE_CD) AS FORMW, \r\n"
  717. " (SELECT NVL(ATRB2, '64') \r\n"
  718. " FROM TB_CMMN_CD \r\n"
  719. " WHERE CMMN_CLSF_CD = 'VMP' \r\n"
  720. " AND CMMN_CD = A.VMS_TYPE_CD) AS FORMH \r\n"
  721. " FROM TB_VMS_CTLR A \r\n";
  722. " WHERE DEL_YN = 'N' \r\n";
  723. #endif
  724. try
  725. {
  726. FVmsLists.Lock();
  727. //FVmsLists.RemoveAll();
  728. try
  729. {
  730. pADO = new TADOQuery(NULL);
  731. pADO->Close();
  732. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  733. pADO->SQL->Clear();
  734. pADO->SQL->Text = sQry;
  735. pADO->Open();
  736. for( ; !pADO->Eof; pADO->Next())
  737. {
  738. TItsVms *pObj = new TItsVms();
  739. pObj->VMS_CTLR_NMBR = pADO->FieldByName("VMS_CTLR_NMBR")->AsString;
  740. pObj->VMS_ID = pADO->FieldByName("VMS_ID")->AsString;
  741. pObj->VMS_CTLR_ID = pADO->FieldByName("VMS_CTLR_ID")->AsString;
  742. pObj->VMS_NM = pADO->FieldByName("VMS_NM")->AsString;
  743. pObj->VMS_CTLR_IP = pADO->FieldByName("VMS_CTLR_IP")->AsString;
  744. pObj->VMS_USAG_TYPE_CD = pADO->FieldByName("VMS_USAG_TYPE_CD")->AsString;
  745. pObj->VMS_FRM_TYPE_CD = pADO->FieldByName("VMS_FRM_TYPE_CD")->AsString;
  746. pObj->VMS_TYPE_CD = pADO->FieldByName("VMS_TYPE_CD")->AsString;
  747. pObj->VMS_MODL_TYPE_CD = pADO->FieldByName("VMS_MODL_TYPE_CD")->AsString;
  748. pObj->VMS_CMNC_PORT = pADO->FieldByName("VMS_CMNC_PORT")->AsString;
  749. pObj->OPER_MODE = pADO->FieldByName("OPER_MODE")->AsString;
  750. pObj->VMS_CMNC_ERR_BASS_VAL = pADO->FieldByName("VMS_CMNC_ERR_BASS_VAL")->AsString;
  751. pObj->VMS_NGHT_BRGH_STEP = pADO->FieldByName("VMS_NGHT_BRGH_STEP")->AsString;
  752. pObj->VMS_WEEK_BRGH_STEP = pADO->FieldByName("VMS_WEEK_BRGH_STEP")->AsString;
  753. pObj->VMS_PHSE_CHNG_CYCL = pADO->FieldByName("VMS_PHSE_CHNG_CYCL")->AsString;
  754. pObj->VMS_MODL_ERR_RATE = pADO->FieldByName("VMS_MODL_ERR_RATE")->AsString;
  755. pObj->CMNCFAIL_SLOT_NMBR = pADO->FieldByName("CMNCFAIL_SLOT_NMBR")->AsString;
  756. pObj->PWER_FAIL_SLOT_NMBR = pADO->FieldByName("PWER_FAIL_SLOT_NMBR")->AsString;
  757. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  758. pObj->CMTRINFR_CNCT_YN = pADO->FieldByName("CMTRINFR_CNCT_YN")->AsString;
  759. pObj->WTHRINFR_CNCT_YN = pADO->FieldByName("WTHRINFR_CNCT_YN")->AsString;
  760. pObj->ENVRINFR_CNCT_YN = pADO->FieldByName("ENVRINFR_CNCT_YN")->AsString;
  761. pObj->VMS_MAX_PHSE_NUM = pADO->FieldByName("VMS_MAX_PHSE_NUM")->AsString;
  762. pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString;
  763. pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString;
  764. pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString;
  765. pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString;
  766. pObj->PANL_ON_TIME = pADO->FieldByName("PANL_ON_TIME")->AsString;
  767. pObj->PANL_OFF_TIME = pADO->FieldByName("PANL_OFF_TIME")->AsString;
  768. pObj->PANL_PWER_MODE = pADO->FieldByName("PANL_PWER_MODE")->AsString;
  769. pObj->BRGH_MODE = pADO->FieldByName("BRGH_MODE")->AsString;
  770. pObj->WEB_CMRA_IP = pADO->FieldByName("WEB_CMRA_IP")->AsString;
  771. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  772. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  773. pObj->ISTL_LCTN_NM = pADO->FieldByName("ISTL_LCTN_NM")->AsString;
  774. pObj->TRFC_STRG_USE_YN = pADO->FieldByName("TRFC_STRG_USE_YN")->AsString;
  775. pObj->WEB_CMRA_PORT = pADO->FieldByName("WEB_CMRA_PORT")->AsString.Trim();
  776. pObj->WEB_CMRA_ID = pADO->FieldByName("WEB_CMRA_ID")->AsString.Trim();
  777. pObj->WEB_CMRA_PSWD = pADO->FieldByName("WEB_CMRA_PWD")->AsString.Trim();
  778. pObj->STRM_SESN_NM = pADO->FieldByName("STRM_SESN_NM")->AsString.Trim();
  779. pObj->WIDTH = pADO->FieldByName("FORMW")->AsString.Trim().ToIntDef(380);
  780. pObj->HEIGHT = pADO->FieldByName("FORMH")->AsString.Trim().ToIntDef(64);
  781. pObj->ModVerCnt = 2;
  782. pObj->ModHorCnt = 12;
  783. if (pObj->VMS_TYPE_CD == "VMP0")
  784. {
  785. pObj->ModVerCnt = 2;
  786. pObj->ModHorCnt = 10;
  787. }
  788. else
  789. if (pObj->VMS_TYPE_CD == "VMP1")
  790. {
  791. pObj->ModVerCnt = 10;
  792. pObj->ModHorCnt = 18;
  793. }
  794. else
  795. if (pObj->VMS_TYPE_CD == "VMP2")
  796. {
  797. pObj->ModVerCnt = 2*2;
  798. pObj->ModHorCnt = 12*2;
  799. }
  800. else
  801. if (pObj->VMS_TYPE_CD == "VMP3")
  802. {
  803. pObj->ModVerCnt = 1;
  804. pObj->ModHorCnt = 6;
  805. }
  806. pObj->FData1 = NULL;
  807. pObj->FData2 = NULL;
  808. //FVmsLists.Push(pObj->VMS_CTLR_NMBR, pObj);
  809. FVmsLists.Push(pObj->VMS_CTLR_ID, pObj);
  810. }
  811. }
  812. catch(EDatabaseError &E)
  813. {
  814. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  815. DBERRORMSG("VMS정보조회", String(E.ClassName()), E.Message, sQry);
  816. throw Exception(String(E.ClassName()) + E.Message);
  817. }
  818. catch(Exception &exception)
  819. {
  820. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  821. DBERRORMSG("VMS정보조회", String(exception.ClassName()), exception.Message, sQry);
  822. throw Exception(String(exception.ClassName()) + exception.Message);
  823. }
  824. }
  825. __finally
  826. {
  827. if (pADO)
  828. {
  829. pADO->Close();
  830. delete pADO;
  831. }
  832. FVmsLists.UnLock();
  833. }
  834. return true;
  835. }
  836. //---------------------------------------------------------------------------
  837. bool TItsFacilityManager::LoadFacilityRse(TADOConnection *ADbConn/*=NULL*/)
  838. {
  839. String sQry;
  840. TADOQuery *pADO = NULL;
  841. #ifdef USE_RSE
  842. sQry = "SELECT RSEID, \r\n"
  843. " INSTDT, \r\n"
  844. " CITYCD, \r\n"
  845. " REGIONCD, \r\n"
  846. " AREACD, \r\n"
  847. " RSEIP, \r\n"
  848. " (COORDX/10000000) COORDX, \r\n"
  849. " (COORDY/10000000) COORDY, \r\n"
  850. " RADIUS1, \r\n"
  851. " RADIUS2, \r\n"
  852. " COMPCD, \r\n"
  853. " LOCATION, \r\n"
  854. " RSECONFIGID, \r\n"
  855. " OBEPARAMID, \r\n"
  856. " PORT, \r\n"
  857. " BRIDGE, \r\n"
  858. " COMYN \r\n"
  859. " FROM RSEMST \r\n";
  860. //" ORDER BY RSEID \r\n";
  861. #else
  862. return true;
  863. #endif
  864. try
  865. {
  866. FRseLists.Lock();
  867. //FRseLists.RemoveAll();
  868. try
  869. {
  870. pADO = new TADOQuery(NULL);
  871. pADO->Close();
  872. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  873. pADO->SQL->Clear();
  874. pADO->SQL->Text = sQry;
  875. pADO->Open();
  876. for( ; !pADO->Eof; pADO->Next())
  877. {
  878. TItsRse *pObj = new TItsRse();
  879. pObj->RSEID = pADO->FieldByName("RSEID")->AsString;
  880. //pObj->INSTDT = pADO->FieldByName("INSTDT")->AsString;
  881. pObj->CITYCD = pADO->FieldByName("CITYCD")->AsString;
  882. pObj->REGIONCD = pADO->FieldByName("REGIONCD")->AsString;
  883. pObj->AREACD = pADO->FieldByName("AREACD")->AsString;
  884. pObj->RSEIP = pADO->FieldByName("RSEIP")->AsString;
  885. pObj->COORDX = pADO->FieldByName("COORDX")->AsString;
  886. pObj->COORDY = pADO->FieldByName("COORDY")->AsString;
  887. pObj->RADIUS1 = pADO->FieldByName("RADIUS1")->AsString;
  888. pObj->RADIUS2 = pADO->FieldByName("RADIUS2")->AsString;
  889. //pObj->COMPCD = pADO->FieldByName("COMPCD")->AsString;
  890. pObj->LOCATION = pADO->FieldByName("LOCATION")->AsString;
  891. //pObj->RSECONFIGID = pADO->FieldByName("RSECONFIGID")->AsString;
  892. //pObj->OBEPARAMID = pADO->FieldByName("OBEPARAMID")->AsString;
  893. //pObj->PORT = pADO->FieldByName("PORT")->AsString;
  894. //pObj->BRIDGE = pADO->FieldByName("BRIDGE")->AsString;
  895. pObj->COMYN = pADO->FieldByName("COMYN")->AsString;
  896. FRseLists.Push(pObj->RSEID, pObj);
  897. }
  898. }
  899. catch(EDatabaseError &E)
  900. {
  901. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  902. DBERRORMSG("RSE정보조회", String(E.ClassName()), E.Message, sQry);
  903. throw Exception(String(E.ClassName()) + E.Message);
  904. }
  905. catch(Exception &exception)
  906. {
  907. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  908. DBERRORMSG("RSE정보조회", String(exception.ClassName()), exception.Message, sQry);
  909. throw Exception(String(exception.ClassName()) + exception.Message);
  910. }
  911. }
  912. __finally
  913. {
  914. if (pADO)
  915. {
  916. pADO->Close();
  917. delete pADO;
  918. }
  919. FRseLists.UnLock();
  920. }
  921. return true;
  922. }
  923. //---------------------------------------------------------------------------
  924. bool TItsFacilityManager::LoadFacilityVds(TADOConnection *ADbConn/*=NULL*/)
  925. {
  926. String sQry;
  927. TADOQuery *pADO = NULL;
  928. sQry = "SELECT CTLR_MNGM_NMBR, \r\n"
  929. " CTLR_TYPE_CD, \r\n"
  930. " VALD_YN, \r\n"
  931. " X_CRDN, \r\n"
  932. " Y_CRDN, \r\n"
  933. " LCTN, \r\n"
  934. " TRMN_IP, \r\n"
  935. " TRMN_PORT, \r\n"
  936. " CTLR_CLCT_CYCL, \r\n"
  937. " CTLR_STTS_CYCL, \r\n"
  938. " LOOP_BORD_NUM, \r\n"
  939. " DLTR_NMBR, \r\n"
  940. " DEL_DT, \r\n"
  941. " DEL_YN, \r\n"
  942. " FRST_REGR_NMBR, \r\n"
  943. " FRST_RGST_DT, \r\n"
  944. " LAST_CRPR_NMBR, \r\n"
  945. " LAST_CRCT__DT, \r\n"
  946. " VDS_CTLR_ID \r\n"
  947. " FROM TB_VDS_CTLR \r\n";
  948. //" ORDER BY CTLR_MNGM_NMBR \r\n";
  949. try
  950. {
  951. FVdsLists.Lock();
  952. //FVdsLists.RemoveAll();
  953. try
  954. {
  955. pADO = new TADOQuery(NULL);
  956. pADO->Close();
  957. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  958. pADO->SQL->Clear();
  959. pADO->SQL->Text = sQry;
  960. pADO->Open();
  961. for( ; !pADO->Eof; pADO->Next())
  962. {
  963. TItsVds *pObj = new TItsVds();
  964. pObj->CTLR_MNGM_NMBR = pADO->FieldByName("CTLR_MNGM_NMBR")->AsString;
  965. pObj->CTLR_TYPE_CD = pADO->FieldByName("CTLR_TYPE_CD")->AsString;
  966. pObj->VALD_YN = pADO->FieldByName("VALD_YN")->AsString;
  967. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  968. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  969. pObj->LCTN = pADO->FieldByName("LCTN")->AsString;
  970. pObj->TRMN_IP = pADO->FieldByName("TRMN_IP")->AsString;
  971. pObj->TRMN_PORT = pADO->FieldByName("TRMN_PORT")->AsString;
  972. pObj->CTLR_CLCT_CYCL = pADO->FieldByName("CTLR_CLCT_CYCL")->AsString;
  973. pObj->CTLR_STTS_CYCL = pADO->FieldByName("CTLR_STTS_CYCL")->AsString;
  974. pObj->LOOP_BORD_NUM = pADO->FieldByName("LOOP_BORD_NUM")->AsString;
  975. pObj->DLTR_NMBR = pADO->FieldByName("DLTR_NMBR")->AsString;
  976. pObj->DEL_DT = pADO->FieldByName("DEL_DT")->AsString;
  977. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  978. pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString;
  979. pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString;
  980. pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString;
  981. pObj->LAST_CRCT__DT = pADO->FieldByName("LAST_CRCT__DT")->AsString;
  982. pObj->VDS_CTLR_ID = pADO->FieldByName("VDS_CTLR_ID")->AsString;
  983. //FVdsLists.Push(pObj->CTLR_MNGM_NMBR, pObj);
  984. FVdsLists.Push(pObj->VDS_CTLR_ID, pObj);
  985. }
  986. }
  987. catch(EDatabaseError &E)
  988. {
  989. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  990. DBERRORMSG("VDS정보조회", String(E.ClassName()), E.Message, sQry);
  991. throw Exception(String(E.ClassName()) + E.Message);
  992. }
  993. catch(Exception &exception)
  994. {
  995. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  996. DBERRORMSG("VDS정보조회", String(exception.ClassName()), exception.Message, sQry);
  997. throw Exception(String(exception.ClassName()) + exception.Message);
  998. }
  999. }
  1000. __finally
  1001. {
  1002. if (pADO)
  1003. {
  1004. pADO->Close();
  1005. delete pADO;
  1006. }
  1007. FVdsLists.UnLock();
  1008. }
  1009. return true;
  1010. }
  1011. //---------------------------------------------------------------------------
  1012. bool TItsFacilityManager::LoadFacilityAvi(TADOConnection *ADbConn/*=NULL*/)
  1013. {
  1014. String sQry;
  1015. TADOQuery *pADO = NULL;
  1016. sQry = "SELECT AVI_CTLR_MNGM_NMBR, \r\n"
  1017. " AVI_ID, \r\n"
  1018. " LINK_ID, \r\n"
  1019. " AVI_LCTN_NM, \r\n"
  1020. " AVI_VALD_YN, \r\n"
  1021. " AVI_CTLR_IP, \r\n"
  1022. " AVI_CTLR_CMNC_PORT, \r\n"
  1023. " AVI_MAIN_CTLR_YN, \r\n"
  1024. " AVI_MNGM_LANE_NUM, \r\n"
  1025. " AVI_CMRA_NUM, \r\n"
  1026. " AVI_DTCT_NUM, \r\n"
  1027. " AVI_DTCT_NM, \r\n"
  1028. " AVI_CLCT_CYCL, \r\n"
  1029. " AVI_LAMP_AUTO_YN, \r\n"
  1030. " AVI_LAMP_ON_HMS, \r\n"
  1031. " AVI_LAMP_OFF_HMS, \r\n"
  1032. " AVI_LAMP_ON_YN, \r\n"
  1033. " X_CRDN, \r\n"
  1034. " Y_CRDN, \r\n"
  1035. " RMRK, \r\n"
  1036. " DEL_YN, \r\n"
  1037. " FRST_REGR_NMBR, \r\n"
  1038. " FRST_RGST_DT, \r\n"
  1039. " LAST_CRPR_NMBR, \r\n"
  1040. " LAST_CRCT_DT \r\n"
  1041. " FROM TB_AVI_CTLR \r\n";
  1042. //" ORDER BY AVI_CTLR_MNGM_NMBR \r\n";
  1043. try
  1044. {
  1045. FAviLists.Lock();
  1046. //FAviLists.RemoveAll();
  1047. try
  1048. {
  1049. pADO = new TADOQuery(NULL);
  1050. pADO->Close();
  1051. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1052. pADO->SQL->Clear();
  1053. pADO->SQL->Text = sQry;
  1054. pADO->Open();
  1055. for( ; !pADO->Eof; pADO->Next())
  1056. {
  1057. TItsAvi *pObj = new TItsAvi();
  1058. pObj->AVI_CTLR_MNGM_NMBR= pADO->FieldByName("AVI_CTLR_MNGM_NMBR")->AsString;
  1059. pObj->AVI_ID = pADO->FieldByName("AVI_ID")->AsString;
  1060. pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString;
  1061. pObj->AVI_LCTN_NM = pADO->FieldByName("AVI_LCTN_NM")->AsString;
  1062. pObj->AVI_VALD_YN = pADO->FieldByName("AVI_VALD_YN")->AsString;
  1063. pObj->AVI_CTLR_IP = pADO->FieldByName("AVI_CTLR_IP")->AsString;
  1064. pObj->AVI_CTLR_CMNC_PORT= pADO->FieldByName("AVI_CTLR_CMNC_PORT")->AsString;
  1065. pObj->AVI_MAIN_CTLR_YN = pADO->FieldByName("AVI_MAIN_CTLR_YN")->AsString;
  1066. pObj->AVI_MNGM_LANE_NUM = pADO->FieldByName("AVI_MNGM_LANE_NUM")->AsString;
  1067. pObj->AVI_CMRA_NUM = pADO->FieldByName("AVI_CMRA_NUM")->AsString;
  1068. pObj->AVI_DTCT_NUM = pADO->FieldByName("AVI_DTCT_NUM")->AsString;
  1069. pObj->AVI_DTCT_NM = pADO->FieldByName("AVI_DTCT_NM")->AsString;
  1070. pObj->AVI_CLCT_CYCL = pADO->FieldByName("AVI_CLCT_CYCL")->AsString;
  1071. pObj->AVI_LAMP_AUTO_YN = pADO->FieldByName("AVI_LAMP_AUTO_YN")->AsString;
  1072. pObj->AVI_LAMP_ON_HMS = pADO->FieldByName("AVI_LAMP_ON_HMS")->AsString;
  1073. pObj->AVI_LAMP_OFF_HMS = pADO->FieldByName("AVI_LAMP_OFF_HMS")->AsString;
  1074. pObj->AVI_LAMP_ON_YN = pADO->FieldByName("AVI_LAMP_ON_YN")->AsString;
  1075. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1076. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1077. pObj->RMRK = pADO->FieldByName("RMRK")->AsString;
  1078. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  1079. pObj->FRST_REGR_NMBR = pADO->FieldByName("FRST_REGR_NMBR")->AsString;
  1080. pObj->FRST_RGST_DT = pADO->FieldByName("FRST_RGST_DT")->AsString;
  1081. pObj->LAST_CRPR_NMBR = pADO->FieldByName("LAST_CRPR_NMBR")->AsString;
  1082. pObj->LAST_CRCT_DT = pADO->FieldByName("LAST_CRCT_DT")->AsString;
  1083. //FAviLists.Push(pObj->AVI_CTLR_MNGM_NMBR, pObj);
  1084. FAviLists.Push(pObj->AVI_ID, pObj);
  1085. }
  1086. }
  1087. catch(EDatabaseError &E)
  1088. {
  1089. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1090. DBERRORMSG("AVI정보조회", String(E.ClassName()), E.Message, sQry);
  1091. throw Exception(String(E.ClassName()) + E.Message);
  1092. }
  1093. catch(Exception &exception)
  1094. {
  1095. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1096. DBERRORMSG("AVI정보조회", String(exception.ClassName()), exception.Message, sQry);
  1097. throw Exception(String(exception.ClassName()) + exception.Message);
  1098. }
  1099. }
  1100. __finally
  1101. {
  1102. if (pADO)
  1103. {
  1104. pADO->Close();
  1105. delete pADO;
  1106. }
  1107. FAviLists.UnLock();
  1108. }
  1109. return true;
  1110. }
  1111. //---------------------------------------------------------------------------
  1112. bool TItsFacilityManager::LoadFacilityDsrc(TADOConnection *ADbConn/*=NULL*/)
  1113. {
  1114. String sQry;
  1115. TADOQuery *pADO = NULL;
  1116. sQry = "SELECT ID, \r\n"
  1117. " RSE_ID, \r\n"
  1118. " ROAD_SPOT_ID, \r\n"
  1119. " LOG_CNNC_ID, \r\n"
  1120. " LOG_CNNC_PW, \r\n"
  1121. " ISTL_LCTN_NM, \r\n"
  1122. " LCTN_X, \r\n"
  1123. " LCTN_Y, \r\n"
  1124. " IP, \r\n"
  1125. " PORT, \r\n"
  1126. " MNFC_CMPY_CD, \r\n"
  1127. " DEL_YN, \r\n"
  1128. " CLCT_ABNR_BASI \r\n"
  1129. " FROM TB_RSE_MSTR \r\n";
  1130. //" ORDER BY ID \r\n";
  1131. try
  1132. {
  1133. FDsrcLists.Lock();
  1134. //FDsrcLists.RemoveAll();
  1135. try
  1136. {
  1137. pADO = new TADOQuery(NULL);
  1138. pADO->Close();
  1139. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1140. pADO->SQL->Clear();
  1141. pADO->SQL->Text = sQry;
  1142. pADO->Open();
  1143. for( ; !pADO->Eof; pADO->Next())
  1144. {
  1145. TItsDsrc *pObj = new TItsDsrc();
  1146. pObj->ID = pADO->FieldByName("ID")->AsString;
  1147. pObj->RSE_ID = pADO->FieldByName("RSE_ID")->AsString;
  1148. pObj->ROAD_SPOT_ID = pADO->FieldByName("ROAD_SPOT_ID")->AsString;
  1149. pObj->LOG_CNNC_ID = pADO->FieldByName("LOG_CNNC_ID")->AsString;
  1150. pObj->LOG_CNNC_PW = pADO->FieldByName("LOG_CNNC_PW")->AsString;
  1151. pObj->ISTL_LCTN_NM = pADO->FieldByName("ISTL_LCTN_NM")->AsString;
  1152. pObj->LCTN_X = pADO->FieldByName("LCTN_X")->AsString;
  1153. pObj->LCTN_Y = pADO->FieldByName("LCTN_Y")->AsString;
  1154. pObj->IP = pADO->FieldByName("IP")->AsString;
  1155. pObj->PORT = pADO->FieldByName("PORT")->AsString;
  1156. pObj->MNFC_CMPY_CD = pADO->FieldByName("MNFC_CMPY_CD")->AsString;
  1157. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  1158. pObj->CLCT_ABNR_BASI = pADO->FieldByName("CLCT_ABNR_BASI")->AsInteger;
  1159. //FDsrcLists.Push(pObj->ID, pObj);
  1160. FDsrcLists.Push(pObj->RSE_ID, pObj);
  1161. }
  1162. }
  1163. catch(EDatabaseError &E)
  1164. {
  1165. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1166. DBERRORMSG("DSRC정보조회", String(E.ClassName()), E.Message, sQry);
  1167. throw Exception(String(E.ClassName()) + E.Message);
  1168. }
  1169. catch(Exception &exception)
  1170. {
  1171. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1172. DBERRORMSG("DSRC정보조회", String(exception.ClassName()), exception.Message, sQry);
  1173. throw Exception(String(exception.ClassName()) + exception.Message);
  1174. }
  1175. }
  1176. __finally
  1177. {
  1178. if (pADO)
  1179. {
  1180. pADO->Close();
  1181. delete pADO;
  1182. }
  1183. FDsrcLists.UnLock();
  1184. }
  1185. return true;
  1186. }
  1187. //---------------------------------------------------------------------------
  1188. bool TItsFacilityManager::LoadFacilityBit(TADOConnection *ADbConn/*=NULL*/)
  1189. {
  1190. String sQry;
  1191. TADOQuery *pADO = NULL;
  1192. #if 0
  1193. sQry = "SELECT A.BIT_ID, \r\n"
  1194. " A.BIT_TYPE, \r\n"
  1195. " A.FAN_MIN_TEMPERATURE, \r\n"
  1196. " A.FAN_MAX_TEMPERATURE, \r\n"
  1197. " A.HEATER_MIN_TEMPERATURE, \r\n"
  1198. " A.HEATER_MAX_TEMPERATURE, \r\n"
  1199. " A.INSTALL_STOP_ID, \r\n"
  1200. " B.STOP_ID, \r\n"
  1201. " B.SERVICE_ID, \r\n"
  1202. " B.STOP_TYPE, \r\n"
  1203. " B.STOP_NAME, \r\n"
  1204. " B.STOP_SHORTNAME, \r\n"
  1205. " B.STOP_EXPLAIN, \r\n"
  1206. " B.LAT AS COORDY, \r\n"
  1207. " B.LNG AS COORDX, \r\n"
  1208. " B.LINK_ID, \r\n"
  1209. " B.USE_FLAG \r\n"
  1210. " FROM BIT A, BUSSTOP B \r\n"
  1211. " WHERE 1=1 \r\n"
  1212. " AND A.INSTALL_STOP_ID = B.STOP_ID \r\n"
  1213. " AND B.USE_FLAG = '1' \r\n";
  1214. #else
  1215. sQry = "SELECT * FROM VW_BIT \r\n";
  1216. #endif
  1217. try
  1218. {
  1219. FBitLists.Lock();
  1220. //FBitLists.RemoveAll();
  1221. try
  1222. {
  1223. pADO = new TADOQuery(NULL);
  1224. pADO->Close();
  1225. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1226. pADO->SQL->Clear();
  1227. pADO->SQL->Text = sQry;
  1228. pADO->Open();
  1229. for( ; !pADO->Eof; pADO->Next())
  1230. {
  1231. TItsBit *pObj = new TItsBit();
  1232. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  1233. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  1234. pObj->BIT_ID = pADO->FieldByName("BIT_ID")->AsString;
  1235. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1236. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1237. pObj->STOP_ID = pADO->FieldByName("STOP_ID")->AsString;
  1238. #if 0
  1239. pObj->BIT_TYPE = pADO->FieldByName("BIT_TYPE")->AsString;
  1240. pObj->FAN_MIN_TEMPERATURE = pADO->FieldByName("FAN_MIN_TEMPERATURE")->AsInteger;
  1241. pObj->FAN_MAX_TEMPERATURE = pADO->FieldByName("FAN_MAX_TEMPERATURE")->AsInteger;
  1242. pObj->HEATER_MIN_TEMPERATURE = pADO->FieldByName("HEATER_MIN_TEMPERATURE")->AsInteger;
  1243. pObj->HEATER_MAX_TEMPERATURE = pADO->FieldByName("HEATER_MAX_TEMPERATURE")->AsInteger;
  1244. pObj->INSTALL_STOP_ID = pADO->FieldByName("INSTALL_STOP_ID")->AsString;
  1245. pObj->SERVICE_ID = pADO->FieldByName("SERVICE_ID")->AsString;
  1246. pObj->STOP_TYPE = pADO->FieldByName("STOP_TYPE")->AsString;
  1247. pObj->STOP_NAME = pADO->FieldByName("STOP_NAME")->AsString;
  1248. pObj->STOP_SHORTNAME = pADO->FieldByName("STOP_SHORTNAME")->AsString;
  1249. #endif
  1250. pObj->STOP_EXPLAIN = pADO->FieldByName("REMARK")->AsString;
  1251. pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString;
  1252. pObj->DEL_YN = "N";
  1253. FBitLists.Push(pObj->FCLT_ID, pObj);
  1254. }
  1255. }
  1256. catch(EDatabaseError &E)
  1257. {
  1258. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1259. DBERRORMSG("BIT정보조회", String(E.ClassName()), E.Message, sQry);
  1260. throw Exception(String(E.ClassName()) + E.Message);
  1261. }
  1262. catch(Exception &exception)
  1263. {
  1264. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1265. DBERRORMSG("BIT정보조회", String(exception.ClassName()), exception.Message, sQry);
  1266. throw Exception(String(exception.ClassName()) + exception.Message);
  1267. }
  1268. }
  1269. __finally
  1270. {
  1271. if (pADO)
  1272. {
  1273. pADO->Close();
  1274. delete pADO;
  1275. }
  1276. FBitLists.UnLock();
  1277. }
  1278. return true;
  1279. }
  1280. //---------------------------------------------------------------------------
  1281. bool TItsFacilityManager::LoadFacilitySig(TADOConnection *ADbConn/*=NULL*/)
  1282. {
  1283. String sQry;
  1284. TADOQuery *pADO = NULL;
  1285. sQry = "SELECT * FROM VW_SIG_CTLR \r\n";
  1286. try
  1287. {
  1288. FSigLists.Lock();
  1289. //FSigLists.RemoveAll();
  1290. try
  1291. {
  1292. pADO = new TADOQuery(NULL);
  1293. pADO->Close();
  1294. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1295. pADO->SQL->Clear();
  1296. pADO->SQL->Text = sQry;
  1297. pADO->Open();
  1298. for( ; !pADO->Eof; pADO->Next())
  1299. {
  1300. TItsSig *pObj = new TItsSig();
  1301. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  1302. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  1303. pObj->SIG_ID = pADO->FieldByName("FACIL_ID")->AsString;
  1304. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1305. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1306. pObj->MDL_NM = pADO->FieldByName("MDL_NM")->AsString;
  1307. pObj->DEL_YN = "N";
  1308. FSigLists.Push(pObj->FCLT_ID, pObj);
  1309. }
  1310. }
  1311. catch(EDatabaseError &E)
  1312. {
  1313. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1314. DBERRORMSG("SIG정보조회", String(E.ClassName()), E.Message, sQry);
  1315. throw Exception(String(E.ClassName()) + E.Message);
  1316. }
  1317. catch(Exception &exception)
  1318. {
  1319. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1320. DBERRORMSG("SIG정보조회", String(exception.ClassName()), exception.Message, sQry);
  1321. throw Exception(String(exception.ClassName()) + exception.Message);
  1322. }
  1323. }
  1324. __finally
  1325. {
  1326. if (pADO)
  1327. {
  1328. pADO->Close();
  1329. delete pADO;
  1330. }
  1331. FSigLists.UnLock();
  1332. }
  1333. return true;
  1334. }
  1335. //---------------------------------------------------------------------------
  1336. bool TItsFacilityManager::LoadFacilitySigDet(TADOConnection *ADbConn/*=NULL*/)
  1337. {
  1338. String sQry;
  1339. TADOQuery *pADO = NULL;
  1340. return true;
  1341. sQry = "SELECT * FROM VW_SIG_LVDS \r\n";
  1342. try
  1343. {
  1344. FSigDetLists.Lock();
  1345. //FSigDetLists.RemoveAll();
  1346. try
  1347. {
  1348. pADO = new TADOQuery(NULL);
  1349. pADO->Close();
  1350. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1351. pADO->SQL->Clear();
  1352. pADO->SQL->Text = sQry;
  1353. pADO->Open();
  1354. for( ; !pADO->Eof; pADO->Next())
  1355. {
  1356. TItsSigDet *pObj = new TItsSigDet();
  1357. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  1358. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  1359. pObj->SDET_ID = pADO->FieldByName("FACIL_ID")->AsString;
  1360. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1361. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1362. pObj->MDL_NM = pADO->FieldByName("MDL_NM")->AsString;
  1363. pObj->SIG_ID = pADO->FieldByName("ASSETS_CODE")->AsString;
  1364. pObj->DEL_YN = "N";
  1365. FSigDetLists.Push(pObj->FCLT_ID, pObj);
  1366. }
  1367. }
  1368. catch(EDatabaseError &E)
  1369. {
  1370. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1371. DBERRORMSG("SIGDET정보조회", String(E.ClassName()), E.Message, sQry);
  1372. throw Exception(String(E.ClassName()) + E.Message);
  1373. }
  1374. catch(Exception &exception)
  1375. {
  1376. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1377. DBERRORMSG("SIGDET정보조회", String(exception.ClassName()), exception.Message, sQry);
  1378. throw Exception(String(exception.ClassName()) + exception.Message);
  1379. }
  1380. }
  1381. __finally
  1382. {
  1383. if (pADO)
  1384. {
  1385. pADO->Close();
  1386. delete pADO;
  1387. }
  1388. FSigDetLists.UnLock();
  1389. }
  1390. return true;
  1391. }
  1392. //---------------------------------------------------------------------------
  1393. bool TItsFacilityManager::LoadFacilityPvms(TADOConnection *ADbConn/*=NULL*/)
  1394. {
  1395. String sQry;
  1396. TADOQuery *pADO = NULL;
  1397. sQry = "SELECT * FROM VW_PIS_VMS \r\n";
  1398. try
  1399. {
  1400. FPisLists.Lock();
  1401. //FPisLists.RemoveAll();
  1402. try
  1403. {
  1404. pADO = new TADOQuery(NULL);
  1405. pADO->Close();
  1406. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1407. pADO->SQL->Clear();
  1408. pADO->SQL->Text = sQry;
  1409. pADO->Open();
  1410. for( ; !pADO->Eof; pADO->Next())
  1411. {
  1412. TItsPis *pObj = new TItsPis();
  1413. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  1414. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  1415. pObj->PIS_ID = pADO->FieldByName("FACIL_ID")->AsString;
  1416. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1417. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1418. pObj->DEL_YN = "N";
  1419. FPisLists.Push(pObj->FCLT_ID, pObj);
  1420. }
  1421. }
  1422. catch(EDatabaseError &E)
  1423. {
  1424. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1425. DBERRORMSG("PIS정보조회", String(E.ClassName()), E.Message, sQry);
  1426. throw Exception(String(E.ClassName()) + E.Message);
  1427. }
  1428. catch(Exception &exception)
  1429. {
  1430. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1431. DBERRORMSG("PIS정보조회", String(exception.ClassName()), exception.Message, sQry);
  1432. throw Exception(String(exception.ClassName()) + exception.Message);
  1433. }
  1434. }
  1435. __finally
  1436. {
  1437. if (pADO)
  1438. {
  1439. pADO->Close();
  1440. delete pADO;
  1441. }
  1442. FPisLists.UnLock();
  1443. }
  1444. return true;
  1445. }
  1446. //---------------------------------------------------------------------------
  1447. bool TItsFacilityManager::LoadFacilityPvds(TADOConnection *ADbConn/*=NULL*/)
  1448. {
  1449. String sQry;
  1450. TADOQuery *pADO = NULL;
  1451. sQry = "SELECT * FROM VW_PIS_CONT \r\n";
  1452. try
  1453. {
  1454. FPcsLists.Lock();
  1455. //FPcsLists.RemoveAll();
  1456. try
  1457. {
  1458. pADO = new TADOQuery(NULL);
  1459. pADO->Close();
  1460. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1461. pADO->SQL->Clear();
  1462. pADO->SQL->Text = sQry;
  1463. pADO->Open();
  1464. for( ; !pADO->Eof; pADO->Next())
  1465. {
  1466. TItsPcs *pObj = new TItsPcs();
  1467. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  1468. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  1469. pObj->PCS_ID = pADO->FieldByName("FACIL_ID")->AsString;
  1470. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1471. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1472. pObj->DEL_YN = "N";
  1473. FPcsLists.Push(pObj->FCLT_ID, pObj);
  1474. }
  1475. }
  1476. catch(EDatabaseError &E)
  1477. {
  1478. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1479. DBERRORMSG("PCS정보조회", String(E.ClassName()), E.Message, sQry);
  1480. throw Exception(String(E.ClassName()) + E.Message);
  1481. }
  1482. catch(Exception &exception)
  1483. {
  1484. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1485. DBERRORMSG("PCS정보조회", String(exception.ClassName()), exception.Message, sQry);
  1486. throw Exception(String(exception.ClassName()) + exception.Message);
  1487. }
  1488. }
  1489. __finally
  1490. {
  1491. if (pADO)
  1492. {
  1493. pADO->Close();
  1494. delete pADO;
  1495. }
  1496. FPisLists.UnLock();
  1497. }
  1498. return true;
  1499. }
  1500. //---------------------------------------------------------------------------
  1501. bool TItsFacilityManager::LoadFacilityStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  1502. {
  1503. bool bResult = true;
  1504. String sQry;
  1505. TADOQuery *pADO = NULL;
  1506. sQry = "SELECT 'CCTV' AS FAC_TYPE, B.CCTV_CTLR_ID AS FAC_ID, \r\n"
  1507. " CMNC_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1508. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1509. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1510. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1511. " A.UPDT_DT AS STS00, \r\n"
  1512. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1513. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1514. " FROM TB_CCTV_STTS A, TB_CCTV_CTLR B \r\n"
  1515. " WHERE A.CCTV_MNGM_NMBR = B.CCTV_MNGM_NMBR \r\n"
  1516. " AND A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1517. "UNION \r\n"
  1518. #ifdef USE_WCAM
  1519. "SELECT 'WCAM' AS FAC_TYPE, B.WEB_CMRA_ID AS FAC_ID, \r\n"
  1520. " CMNC_STTS_CD AS STTS_CD, 'CDS0' AS DOOR_STTS_CD, \r\n"
  1521. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '0') AS COMM, \r\n"
  1522. " '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1523. " A.UPDT_DT AS STS00, \r\n"
  1524. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1525. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1526. " FROM TB_WEB_CMRA_STTS A, TB_WEB_CMRA B \r\n"
  1527. " WHERE A.WEB_CMRA_NMBR = B.WEB_CMRA_NMBR \r\n"
  1528. " AND A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1529. "UNION \r\n"
  1530. #endif
  1531. "SELECT 'VMS' AS FAC_TYPE, B.VMS_CTLR_ID AS FAC_ID, \r\n"
  1532. " CONN_STTS_CD AS STTS_CD, CBOXDOOR_OPEN_STTS_CD AS DOOR_STTS_CD, \r\n"
  1533. " DECODE(CONN_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1534. " DECODE(CBOXDOOR_OPEN_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1535. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1536. " A.RGST_DT AS STS00, \r\n"
  1537. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1538. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1539. " FROM TB_VMS_STTS_PRST A, TB_VMS_CTLR B \r\n"
  1540. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n"
  1541. " AND A.RGST_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1542. "UNION \r\n"
  1543. "SELECT 'VDS' AS FAC_TYPE, B.VDS_CTLR_ID AS FAC_ID, \r\n"
  1544. " CMNC_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1545. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1546. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1547. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1548. " A.UPDT_DT AS STS00, \r\n"
  1549. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1550. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1551. " FROM TB_VDS_CTLR_STTS A, TB_VDS_CTLR B \r\n"
  1552. " WHERE A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1553. " AND A.CTLR_MNGM_NMBR = B.CTLR_MNGM_NMBR \r\n"
  1554. #ifdef USE_AVI
  1555. "UNION \r\n"
  1556. "SELECT 'AVI' AS FAC_TYPE, B.AVI_ID AS FAC_ID, \r\n"
  1557. " CMNC_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1558. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1559. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1560. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1561. " A.UPDT_DT AS STS00, \r\n"
  1562. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1563. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1564. " FROM TB_AVI_CTLR_STTS A, TB_AVI_CTLR B \r\n"
  1565. " WHERE A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1566. " AND A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n"
  1567. #endif
  1568. #ifdef USE_DSRC
  1569. "UNION \r\n"
  1570. "SELECT 'DSRC' AS FAC_TYPE, B.RSE_ID AS FAC_ID, \r\n"
  1571. " DECODE(CMNC_STTS, '0', 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1572. " DECODE(CNTL_DEVC_STTS, '0', 'CDS0', '4', 'CDS0', 'CDS1') AS DOOR_STTS_CD, \r\n"
  1573. " DECODE(CMNC_STTS, '0', '0', '1') AS COMM, \r\n"
  1574. " '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1575. " A.CLCT_DT AS STS00, \r\n"
  1576. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1577. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1578. " FROM TB_RSE_STTS_PNST A, TB_RSE_MSTR B \r\n"
  1579. " WHERE A.CLCT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1580. " AND A.ID = B.ID \r\n";
  1581. #endif
  1582. #ifdef USE_RSE
  1583. "UNION \r\n"
  1584. "SELECT 'RSE' AS FAC_TYPE, B.RSEID AS FAC_ID, \r\n"
  1585. " 'CMS0' AS STTS_CD, 'CDS0' AS DOOR_STTS_CD, \r\n"
  1586. " '0' AS COMM, '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1587. " A.COLLDT AS STS00, \r\n"
  1588. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1589. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1590. " FROM RSEOPSTATE A, RSEMST B \r\n"
  1591. " WHERE B.RSEID = A.RSEID \r\n"
  1592. " AND A.COLLDT > SYSDATE - 30/1440 \r\n"
  1593. #endif
  1594. #ifdef USE_BIT
  1595. "UNION \r\n"
  1596. "SELECT 'BIT' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, \r\n"
  1597. " CONN_STATE AS STTS_CD, 'CDS0' AS DOOR_STTS_CD, \r\n"
  1598. " DECODE(CONN_STATE, 'CMS0', '0', '1') AS COMM, \r\n"
  1599. " '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1600. " UPDATE_DT AS STS00, \r\n"
  1601. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1602. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1603. " FROM VW_BIT_STATUS \r\n"
  1604. #endif
  1605. #ifdef USE_SIG
  1606. "UNION \r\n"
  1607. "SELECT 'SIG' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, \r\n"
  1608. " CONN_STATE AS STTS_CD, DOOR_STATE AS DOOR_STTS_CD, \r\n"
  1609. " DECODE(CONN_STATE, 'CMS0', '0', '1') AS COMM, \r\n"
  1610. " DECODE(DOOR_STATE, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1611. " 0 AS CBOX_TMPR, \r\n"
  1612. " UPDATE_DT AS STS00, \r\n"
  1613. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1614. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1615. " FROM VW_SIG_CTLR_STATUS \r\n"
  1616. #endif
  1617. #ifdef USE_SIGDET
  1618. "UNION \r\n"
  1619. "SELECT 'LVD' AS FAC_TYPE, FCLT_ID AS FAC_ID, \r\n"
  1620. " DECODE(DISCONN_STATE, 'STS0', 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1621. " 'CDS0' AS DOOR_STTS_CD, \r\n"
  1622. " DECODE(DISCONN_STATE, 'STS0', '0', '1') AS COMM, \r\n"
  1623. " '0' AS DOOR, 0 AS CBOX_TMPR \r\n"
  1624. " FROM VW_SIG_LVDS_STATUS \r\n"
  1625. #endif
  1626. #ifdef USE_PVMS
  1627. "UNION \r\n"
  1628. "SELECT 'PVMS' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, \r\n"
  1629. " DECODE(COMM_STATE, 0, 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1630. " DECODE(DOOR_STATE, 0, 'CDS0', 'CDS1') AS DOOR_STTS_CD, \r\n"
  1631. " DECODE(COMM_STATE, 0, '0', '1') AS COMM, '0' AS DOOR, \r\n"
  1632. " 0 AS CBOX_TMPR, \r\n"
  1633. " UPDATE_DT AS STS00, \r\n"
  1634. " '0' AS STS01, \r\n"
  1635. " TO_CHAR(POWER_STATE) AS STS02, \r\n"
  1636. " TO_CHAR(MODULE_STATE) AS STS03, \r\n"
  1637. " TO_CHAR(FAN_STATE) AS STS04, \r\n"
  1638. " TO_CHAR(HEATER_STATE) AS STS05, \r\n"
  1639. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1640. " FROM VW_PIS_VMS_STATUS \r\n"
  1641. #endif
  1642. #ifdef USE_PVDS
  1643. "UNION \r\n"
  1644. "SELECT 'PVMS' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, \r\n"
  1645. " DECODE(COMM_STATE, '0', 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1646. " 'CDS0' AS DOOR_STTS_CD, \r\n"
  1647. " DECODE(COMM_STATE, '0', '0', '1') AS COMM, '0' AS DOOR, \r\n"
  1648. " 0 AS CBOX_TMPR, \r\n"
  1649. " UPDATE_DT AS STS00, \r\n"
  1650. " TO_CHAR(CONT_STATE) AS STS01, \r\n"
  1651. " '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1652. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1653. " FROM VW_PIS_CONT_STATUS \r\n"
  1654. #endif
  1655. ;
  1656. try
  1657. {
  1658. TItsFacility *pFacility = NULL;
  1659. FLists.Lock();
  1660. FOR_STL(TItsFacility*, pObj, ItsFacilityManager->FLists)
  1661. {
  1662. pObj->FCollCntBase = 0;
  1663. pObj->FCollCntCurr = 0;
  1664. pObj->FCollError = false;
  1665. pObj->FComm = state_error;
  1666. pObj->FDoor = "0";
  1667. pObj->FCommStatus = "CMS1";
  1668. pObj->FDoorStatus = "CDS0";
  1669. if (pObj->FCLT_TYPE == "CCTV" ||
  1670. pObj->FCLT_TYPE == "VMS" ||
  1671. pObj->FCLT_TYPE == "VDS" ||
  1672. pObj->FCLT_TYPE == "AVI")
  1673. {
  1674. pObj->FCBoxTmpr = "?";
  1675. }
  1676. else
  1677. {
  1678. pObj->FCBoxTmpr = "-";
  1679. }
  1680. }
  1681. FOR_STL(TFacilityStatus*, pStatus, ItsFacilityManager->FListStatus)
  1682. {
  1683. //pStatus->Total = 0; 전체 수량은 초기화하지 않는다.
  1684. pStatus->Normal = 0;
  1685. pStatus->Error = 0;
  1686. pStatus->Module = 0;
  1687. pStatus->Collect= 0;
  1688. }
  1689. try
  1690. {
  1691. int nORD;
  1692. pADO = new TADOQuery(NULL);
  1693. pADO->Close();
  1694. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1695. pADO->SQL->Clear();
  1696. pADO->SQL->Text = sQry;
  1697. pADO->Open();
  1698. //int nRows = pADO->RecordCount;
  1699. for( ; !pADO->Eof; pADO->Next())
  1700. {
  1701. String sId = pADO->FieldByName("FAC_ID")->AsString;
  1702. pFacility = ItsFacilityManager->FLists.Find(sId);
  1703. if (!pFacility) continue;
  1704. pFacility->FCommStatus = pADO->FieldByName("STTS_CD")->AsString;
  1705. pFacility->FDoorStatus = pADO->FieldByName("DOOR_STTS_CD")->AsString;
  1706. pFacility->FComm = pADO->FieldByName("COMM")->AsString;
  1707. pFacility->FDoor = pADO->FieldByName("DOOR")->AsString;
  1708. pFacility->Sts00 = pADO->FieldByName("STS00")->AsString;
  1709. pFacility->Sts01 = pADO->FieldByName("STS01")->AsString;
  1710. pFacility->Sts02 = pADO->FieldByName("STS02")->AsString;
  1711. pFacility->Sts03 = pADO->FieldByName("STS03")->AsString;
  1712. pFacility->Sts04 = pADO->FieldByName("STS04")->AsString;
  1713. pFacility->Sts05 = pADO->FieldByName("STS05")->AsString;
  1714. pFacility->Sts06 = pADO->FieldByName("STS06")->AsString;
  1715. pFacility->Sts07 = pADO->FieldByName("STS07")->AsString;
  1716. pFacility->Sts08 = pADO->FieldByName("STS08")->AsString;
  1717. pFacility->Sts09 = pADO->FieldByName("STS09")->AsString;
  1718. pFacility->Sts10 = pADO->FieldByName("STS10")->AsString;
  1719. //if (pFacility->FCommStatus == "CMS0") pFacility->FComm = "1";
  1720. //else if (pFacility->FCommStatus == "CMS1") pFacility->FComm = "0";
  1721. //else if (pFacility->FCommStatus == "CMS2") pFacility->FComm = "0";
  1722. //if (pFacility->FDoorStatus == "CDS1") pFacility->FDoor = "1";
  1723. //else if (pFacility->FDoorStatus == "CMS1") pFacility->FComm = "0";
  1724. //else if (pFacility->FDoorStatus == "CMS2") pFacility->FComm = "0";
  1725. if (pFacility->FCLT_TYPE == "CCTV" ||
  1726. pFacility->FCLT_TYPE == "VMS" ||
  1727. pFacility->FCLT_TYPE == "VDS" ||
  1728. pFacility->FCLT_TYPE == "AVI")
  1729. {
  1730. pFacility->FCBoxTmpr = pADO->FieldByName("CBOX_TMPR")->AsString;
  1731. }
  1732. if (pFacility->FComm == state_normal)
  1733. {
  1734. //통신이 정상인데 함체문이 열려있으면 모듈이상으로 처리
  1735. #if 0
  1736. if (pFacility->FDoor == "1")
  1737. pFacility->FComm = state_module; //모듈이상(함체문 열림)
  1738. #endif
  1739. }
  1740. TFacilityStatus *pStatus = ItsFacilityManager->FListStatus.Find(pFacility->FCLT_TYPE);
  1741. if (pStatus)
  1742. {
  1743. if (pFacility->FComm == state_error)
  1744. {
  1745. pStatus->Error++;
  1746. }
  1747. else
  1748. if (pFacility->FComm == state_module)
  1749. {
  1750. //pStatus->Module++;
  1751. }
  1752. }
  1753. }
  1754. //수집데이터를 처리하구 수집오류=false로 설정함
  1755. //LoadDsrcCollectStatusFromDb(ADbConn);
  1756. LoadVdsCollectStatusFromDb(ADbConn);
  1757. #ifdef USE_AVI
  1758. LoadAviCollectStatusFromDb(ADbConn);
  1759. #endif
  1760. }
  1761. catch(EDatabaseError &E)
  1762. {
  1763. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1764. DBERRORLOG("시설물상태정보조회", String(E.ClassName()), E.Message, sQry);
  1765. return false;
  1766. throw Exception(String(E.ClassName()) + E.Message);
  1767. }
  1768. catch(Exception &exception)
  1769. {
  1770. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1771. DBERRORLOG("시설물상태정보조회", String(exception.ClassName()), exception.Message, sQry);
  1772. return false;
  1773. throw Exception(String(exception.ClassName()) + exception.Message);
  1774. }
  1775. }
  1776. __finally
  1777. {
  1778. // 최종 모듈이상을 체크한다.
  1779. FOR_STL(TItsFacility*, pTmpObj, ItsFacilityManager->FLists)
  1780. {
  1781. if (pTmpObj->FComm != state_error)
  1782. {
  1783. //통신이 정상인 경우에만(모듈이상이나 통신이상인 경우에는 이미처리가 되어있는거임...
  1784. if (pTmpObj->FCollError)
  1785. {
  1786. //수집이상이 발생한 경우임. ==> 모듈이상으로 처리하고 모듈오류갯수 증가시킴
  1787. TFacilityStatus *pStatus = ItsFacilityManager->FListStatus.Find(pTmpObj->FCLT_TYPE);
  1788. if (pStatus)
  1789. {
  1790. //pStatus->Module++;
  1791. pStatus->Collect++;
  1792. }
  1793. }
  1794. }
  1795. }
  1796. if (pADO)
  1797. {
  1798. pADO->Close();
  1799. delete pADO;
  1800. }
  1801. FLists.UnLock();
  1802. }
  1803. return bResult;
  1804. }
  1805. //---------------------------------------------------------------------------
  1806. bool TItsFacilityManager::LoadDsrcCollectStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  1807. {
  1808. String sQry;
  1809. TADOQuery *pADO = NULL;
  1810. sQry = "SELECT X.ID, X.RSE_ID, X.CLCT_ABNR_BASI, \r\n"
  1811. " Y.STAT_DT, NVL(Y.CLCT_NUM, 0) AS CLCT_NUM \r\n"
  1812. " FROM (SELECT M.ID, M.RSE_ID, M.CLCT_ABNR_BASI \r\n"
  1813. " FROM TB_RSE_MSTR M \r\n"
  1814. " WHERE M.DEL_YN <> 'Y' \r\n"
  1815. " ) X, \r\n"
  1816. " (SELECT P.ID, P.STAT_DT, P.CLCT_NUM \r\n"
  1817. " FROM TB_RSE_OBU_CLCT_HH_PNST P \r\n"
  1818. " WHERE P.STAT_DT >= TO_CHAR(SYSDATE-2/1440, 'YYYYMMDDHH24MISS') \r\n"
  1819. " ) Y \r\n"
  1820. " WHERE X.ID = Y.ID(+) \r\n";
  1821. #if 0
  1822. sQry = "SELECT X.ID, X.RSE_ID, X.CLCT_ABNR_BASI, \r\n"
  1823. " Y.STAT_DT, NVL(Y.CLCT_NUM, 0) AS CLCT_NUM \r\n"
  1824. " FROM (SELECT M.ID, M.RSE_ID, M.CLCT_ABNR_BASI \r\n"
  1825. " FROM TB_RSE_MSTR M \r\n"
  1826. " WHERE M.DEL_YN <> 'Y' \r\n"
  1827. " ) X, \r\n"
  1828. " (SELECT ID, STAT_DT, CLCT_NUM \r\n"
  1829. " FROM TB_RSE_OBU_CLCT_HH_PNST \r\n"
  1830. " WHERE (ID, STAT_DT) IN (SELECT P.ID, MAX(P.STAT_DT) \r\n"
  1831. " FROM TB_RSE_OBU_CLCT_HH_PNST P \r\n"
  1832. " WHERE P.STAT_DT >= TO_CHAR(SYSDATE-2/1440, 'YYYYMMDDHH24MISS') \r\n"
  1833. " GROUP BY P.ID) \r\n"
  1834. " ) Y \r\n"
  1835. " WHERE X.ID = Y.ID(+) \r\n";
  1836. #endif
  1837. try
  1838. {
  1839. TItsFacility *pFacility = NULL;
  1840. try
  1841. {
  1842. int nORD;
  1843. pADO = new TADOQuery(NULL);
  1844. pADO->Close();
  1845. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1846. pADO->SQL->Clear();
  1847. pADO->SQL->Text = sQry;
  1848. pADO->Open();
  1849. //int nRows = pADO->RecordCount;
  1850. for( ; !pADO->Eof; pADO->Next())
  1851. {
  1852. String sId = pADO->FieldByName("RSE_ID")->AsString;
  1853. pFacility = ItsFacilityManager->FLists.Find(sId);
  1854. if (!pFacility) continue;
  1855. pFacility->FCollCntBase = pADO->FieldByName("CLCT_ABNR_BASI")->AsInteger;
  1856. pFacility->FCollCntCurr = pADO->FieldByName("CLCT_NUM")->AsInteger;
  1857. }
  1858. }
  1859. catch(EDatabaseError &E)
  1860. {
  1861. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1862. DBERRORLOG("DSRC수집상태정보조회", String(E.ClassName()), E.Message, sQry);
  1863. throw Exception(String(E.ClassName()) + E.Message);
  1864. }
  1865. catch(Exception &exception)
  1866. {
  1867. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1868. DBERRORLOG("DSRC수집상태정보조회", String(exception.ClassName()), exception.Message, sQry);
  1869. throw Exception(String(exception.ClassName()) + exception.Message);
  1870. }
  1871. }
  1872. __finally
  1873. {
  1874. if (pADO)
  1875. {
  1876. pADO->Close();
  1877. delete pADO;
  1878. }
  1879. }
  1880. return true;
  1881. }
  1882. //---------------------------------------------------------------------------
  1883. bool TItsFacilityManager::LoadVdsCollectStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  1884. {
  1885. String sQry;
  1886. TADOQuery *pADO = NULL;
  1887. #if 1
  1888. sQry = "SELECT A.CTLR_MNGM_NMBR, A.VDS_CTLR_ID, NVL(B.COLCNT, 0) AS COLCNT \r\n"
  1889. " FROM TB_VDS_CTLR A, \r\n"
  1890. " (SELECT A.CTLR_MNGM_NMBR, MAX(B.OCRR_DT) AS OCRR_DT, COUNT(1) AS COLCNT \r\n"
  1891. " FROM TB_VDS_DTCT_MSTR A, TB_VDS_DTCT_RAW_PNST B \r\n"
  1892. " WHERE A.DTCT_NMBR = B.DTCT_NMBR \r\n"
  1893. " AND B.OCRR_DT >= TO_CHAR(SYSDATE-10/1440, 'YYYYMMDDHH24MISS') \r\n"
  1894. " GROUP BY A.CTLR_MNGM_NMBR ) B \r\n"
  1895. " WHERE A.DEL_YN = 'N' \r\n"
  1896. " AND A.CTLR_MNGM_NMBR = B.CTLR_MNGM_NMBR(+) \r\n";
  1897. #else
  1898. sQry = "SELECT CTLR_NMBR AS CTLR_MNGM_NMBR, CTLR_ID AS VDS_CTLR_ID, COLCNT \r\n"
  1899. " FROM (SELECT A.CTLR_MNGM_NMBR AS CTLR_NMBR, A.VDS_CTLR_ID AS CTLR_ID, A.LCTN AS CTLR_NM, \r\n"
  1900. " NVL(C.UPDT_DT, '-') AS UPDT_DT, NVL(C.CMNC_STTS_CD, 'CMS1') AS COMM_CD, \r\n"
  1901. " NVL(C.COLCNT, 0) AS COLCNT, NVL(B.COMMERRCNT, 0) AS COMMERRCNT \r\n"
  1902. " FROM TB_VDS_CTLR A, \r\n"
  1903. " (SELECT CTLR_MNGM_NMBR, COUNT(1) AS COMMERRCNT \r\n"
  1904. " FROM TB_VDS_CTLR_STTS_RAW \r\n"
  1905. " WHERE 1=1 \r\n"
  1906. " AND CMNC_STTS_CD <> 'CMS0' \r\n"
  1907. " AND OCRR_DT >= TO_CHAR(TRUNC(SYSDATE), 'YYYYMMDD') || '000000' \r\n"
  1908. " GROUP BY CTLR_MNGM_NMBR \r\n"
  1909. " ) B, \r\n"
  1910. " (SELECT X.CTLR_MNGM_NMBR, X.UPDT_DT, X.CMNC_STTS_CD, NVL(Y.COLCNT, 0) AS COLCNT \r\n"
  1911. " FROM TB_VDS_CTLR_STTS X, \r\n"
  1912. " (SELECT A.CTLR_MNGM_NMBR, COUNT(1) AS COLCNT \r\n"
  1913. " FROM TB_VDS_DTCT_MSTR A, TB_VDS_DTCT_RAW_PNST B \r\n"
  1914. " WHERE 1=1 \r\n"
  1915. " AND A.DTCT_NMBR = B.DTCT_NMBR \r\n"
  1916. " AND B.OCRR_DT >= TO_CHAR(SYSDATE-10/1440, 'YYYYMMDDHH24MISS') \r\n"
  1917. " GROUP BY A.CTLR_MNGM_NMBR ) Y \r\n"
  1918. " WHERE 1=1 \r\n"
  1919. " AND X.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1920. " AND X.CTLR_MNGM_NMBR = Y.CTLR_MNGM_NMBR(+) \r\n"
  1921. " ) C \r\n"
  1922. " WHERE 1=1 \r\n"
  1923. " AND A.DEL_YN = 'N' \r\n"
  1924. " AND A.CTLR_MNGM_NMBR = B.CTLR_MNGM_NMBR(+) \r\n"
  1925. " AND A.CTLR_MNGM_NMBR = C.CTLR_MNGM_NMBR(+) \r\n"
  1926. " ) \r\n"
  1927. " WHERE 1=1 \r\n"
  1928. " AND (COMM_CD = 'CMS0' AND COLCNT = 0) \r\n";
  1929. #endif
  1930. try
  1931. {
  1932. TItsFacility *pFacility = NULL;
  1933. try
  1934. {
  1935. int nORD;
  1936. pADO = new TADOQuery(NULL);
  1937. pADO->Close();
  1938. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1939. pADO->SQL->Clear();
  1940. pADO->SQL->Text = sQry;
  1941. pADO->Open();
  1942. pADO->First();
  1943. String sVdsId;
  1944. int nColCnt;
  1945. for( ; !pADO->Eof; pADO->Next())
  1946. {
  1947. sVdsId = pADO->FieldByName("VDS_CTLR_ID")->AsString;
  1948. pFacility = ItsFacilityManager->FLists.Find(sVdsId);
  1949. if (!pFacility)
  1950. {
  1951. continue;
  1952. }
  1953. nColCnt = pADO->FieldByName("COLCNT")->AsInteger;
  1954. if (nColCnt == 0)
  1955. {
  1956. if (pFacility->FComm != state_error)
  1957. {
  1958. pFacility->FCollError = true;
  1959. }
  1960. }
  1961. }
  1962. }
  1963. catch(EDatabaseError &E)
  1964. {
  1965. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1966. DBERRORLOG("VDS수집상태정보조회", String(E.ClassName()), E.Message, sQry);
  1967. throw Exception(String(E.ClassName()) + E.Message);
  1968. }
  1969. catch(Exception &exception)
  1970. {
  1971. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1972. DBERRORLOG("VDS수집상태정보조회", String(exception.ClassName()), exception.Message, sQry);
  1973. throw Exception(String(exception.ClassName()) + exception.Message);
  1974. }
  1975. }
  1976. __finally
  1977. {
  1978. if (pADO)
  1979. {
  1980. pADO->Close();
  1981. delete pADO;
  1982. }
  1983. }
  1984. return true;
  1985. }
  1986. //---------------------------------------------------------------------------
  1987. bool TItsFacilityManager::LoadAviCollectStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  1988. {
  1989. String sQry;
  1990. TADOQuery *pADO = NULL;
  1991. sQry = "SELECT A.AVI_CTLR_MNGM_NMBR, A.AVI_ID, NVL(B.COLCNT, 0) AS COLCNT \r\n"
  1992. " FROM TB_AVI_CTLR A, \r\n"
  1993. " (SELECT AVI_CTLR_MNGM_NMBR, MAX(CRTN_DT) AS CRTN_DT, COUNT(1) AS COLCNT \r\n"
  1994. " FROM TB_AVI_PASS_VHCL_PNST \r\n"
  1995. " WHERE CRTN_DT >= TO_CHAR(SYSDATE-10/1440, 'YYYYMMDDHH24MISS') \r\n"
  1996. " GROUP BY AVI_CTLR_MNGM_NMBR ) B \r\n"
  1997. " WHERE A.DEL_YN = 'N' \r\n"
  1998. " AND A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR(+) \r\n";
  1999. try
  2000. {
  2001. TItsFacility *pFacility = NULL;
  2002. try
  2003. {
  2004. int nORD;
  2005. pADO = new TADOQuery(NULL);
  2006. pADO->Close();
  2007. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  2008. pADO->SQL->Clear();
  2009. pADO->SQL->Text = sQry;
  2010. pADO->Open();
  2011. pADO->First();
  2012. String sAviId;
  2013. int nColCnt;
  2014. for( ; !pADO->Eof; pADO->Next())
  2015. {
  2016. sAviId = pADO->FieldByName("AVI_ID")->AsString;
  2017. pFacility = ItsFacilityManager->FLists.Find(sAviId);
  2018. if (!pFacility)
  2019. {
  2020. continue;
  2021. }
  2022. nColCnt = pADO->FieldByName("COLCNT")->AsInteger;
  2023. if (nColCnt == 0)
  2024. {
  2025. if (pFacility->FComm != state_error)
  2026. {
  2027. pFacility->FCollError = true;
  2028. }
  2029. }
  2030. }
  2031. }
  2032. catch(EDatabaseError &E)
  2033. {
  2034. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  2035. DBERRORLOG("AVI수집상태정보조회", String(E.ClassName()), E.Message, sQry);
  2036. throw Exception(String(E.ClassName()) + E.Message);
  2037. }
  2038. catch(Exception &exception)
  2039. {
  2040. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  2041. DBERRORLOG("AVI수집상태정보조회", String(exception.ClassName()), exception.Message, sQry);
  2042. throw Exception(String(exception.ClassName()) + exception.Message);
  2043. }
  2044. }
  2045. __finally
  2046. {
  2047. if (pADO)
  2048. {
  2049. pADO->Close();
  2050. delete pADO;
  2051. }
  2052. }
  2053. return true;
  2054. }
  2055. //---------------------------------------------------------------------------