CDSFacilityF_back.cpp 99 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275
  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. //---------------------------------------------------------------------------