CDSFacilityF.cpp 104 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSFacilityF.h"
  4. #include "ITS_OPLibF.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. ItsFacilityManager->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. FRseLists.Lock();
  102. FAviLists.Lock();
  103. FBitLists.Lock();
  104. FSigLists.Lock();
  105. FSigDetLists.Lock();
  106. FPisLists.Lock();
  107. FPcsLists.Lock();
  108. FRegLists.Lock();
  109. ItsFacilityManager->FLists.Lock();
  110. FRseLists.RemoveAll();
  111. FAviLists.RemoveAll();
  112. FBitLists.RemoveAll();
  113. FSigLists.RemoveAll();
  114. FSigDetLists.RemoveAll();
  115. FPisLists.RemoveAll();
  116. FPcsLists.RemoveAll();
  117. FRegLists.RemoveAll();
  118. ItsFacilityManager->FLists.RemoveAll();
  119. }
  120. __finally
  121. {
  122. FRseLists.UnLock();
  123. FAviLists.UnLock();
  124. FBitLists.UnLock();
  125. FSigLists.UnLock();
  126. FSigDetLists.UnLock();
  127. FPisLists.UnLock();
  128. FPcsLists.UnLock();
  129. FRegLists.UnLock();
  130. ItsFacilityManager->FLists.UnLock();
  131. }
  132. LoadFacilityReg(ADbConn); // 시설물 개별 테이블 조회(ID, NAME 등)
  133. LoadFacilityMaster(ADbConn); // TB_FCLT_INFR
  134. LoadFacilityVds(ADbConn);
  135. LoadFacilityCctv(ADbConn);
  136. #ifdef USE_INCCCTV
  137. LoadFacilityIncCctv(ADbConn);
  138. #endif
  139. LoadFacilityVms(ADbConn);
  140. LoadFacilityWebCam(ADbConn);
  141. LoadFacilityCrsCam(ADbConn);
  142. LoadFacilityPark(ADbConn);
  143. #ifdef USE_RSE
  144. LoadFacilityRse(ADbConn);
  145. #endif
  146. #ifdef USE_AVI
  147. LoadFacilityAvi(ADbConn);
  148. #endif
  149. #ifdef USE_DSRC
  150. LoadFacilityDsrc(ADbConn);
  151. #endif
  152. #ifdef USE_BIT
  153. LoadFacilityBit(ADbConn);
  154. #endif
  155. #ifdef USE_SIG
  156. LoadFacilitySig(ADbConn);
  157. #endif
  158. #ifdef USE_SIGDET
  159. LoadFacilitySigDet(ADbConn);
  160. #endif
  161. #ifdef USE_PVMS
  162. LoadFacilityPvms(ADbConn);
  163. #endif
  164. #ifdef USE_PVDS
  165. LoadFacilityPvds(ADbConn);
  166. #endif
  167. LoadFacilityCross(ADbConn);
  168. LoadFacilitySgnlCtlr(ADbConn);
  169. CheckFacility();
  170. return true;
  171. }
  172. //---------------------------------------------------------------------------
  173. bool TItsFacilityManager::CheckFacility()
  174. {
  175. try
  176. {
  177. ItsFacilityManager->FLists.Lock();
  178. FOR_STL(TItsFacility *, pFacility, ItsFacilityManager->FLists)
  179. {
  180. TItsRegFacility *pRegFacility = FRegLists.Find(pFacility->FCLT_TYPE + pFacility->FCLT_ID);
  181. if (!pRegFacility)
  182. {
  183. pFacility->Deleted = "Y";
  184. }
  185. }
  186. }
  187. __finally
  188. {
  189. ItsFacilityManager->FLists.UnLock();
  190. }
  191. try
  192. {
  193. FRegLists.Lock();
  194. FOR_STL(TItsRegFacility *, pRegFacility, FRegLists)
  195. {
  196. TItsFacility *pFacility = ItsFacilityManager->FLists.Find(pRegFacility->Id);
  197. if (!pFacility)
  198. {
  199. pRegFacility->UnRegisterd = "Y";
  200. }
  201. }
  202. }
  203. __finally
  204. {
  205. FRegLists.UnLock();
  206. }
  207. return true;
  208. }
  209. //---------------------------------------------------------------------------
  210. bool TItsFacilityManager::LoadFacilityReg(TADOConnection *ADbConn/*=NULL*/)
  211. {
  212. String sQry;
  213. TADOQuery *pADO = NULL;
  214. sQry = "SELECT '' AS FAC_TYPE, '' AS FAC_ID, '' AS FAC_NM, '' AS DEL_YN \r\n"
  215. " FROM DUAL \r\n"
  216. " WHERE 1 = 0 \r\n"
  217. #ifdef USE_CCTV
  218. #if 0
  219. "UNION \r\n"
  220. "SELECT 'CCTV' AS FAC_TYPE, CCTV_CTLR_ID AS FAC_ID, CCTV_NM AS FAC_NM, DEL_YN \r\n"
  221. " FROM TB_CCTV_CTLR \r\n"
  222. " WHERE DEL_YN = 'N' \r\n"
  223. #else
  224. "UNION \r\n"
  225. "SELECT 'CCTV' AS FAC_TYPE, CCTV_CTLR_ID AS FAC_ID, ISTL_LCTN_NM AS FAC_NM, DEL_YN \r\n"
  226. " FROM TB_CCTV_CTLR \r\n"
  227. " WHERE DEL_YN = 'N' \r\n"
  228. #endif
  229. #endif
  230. #ifdef USE_INCCCTV
  231. "UNION \r\n"
  232. "SELECT 'ICAM' AS FAC_TYPE, CCTV_CTLR_ID AS FAC_ID, ISTL_LCTN_NM AS FAC_NM, DEL_YN \r\n"
  233. " FROM VW_INC_CCTV_CTLR \r\n"
  234. " WHERE DEL_YN = 'N' \r\n"
  235. #endif
  236. #ifdef USE_VDS
  237. "UNION \r\n"
  238. "SELECT 'VDS' AS FAC_TYPE, VDS_CTLR_ID AS FAC_ID, VDS_NM AS FAC_N, DEL_YN \r\n"
  239. " FROM TB_VDS_CTLR \r\n"
  240. " WHERE DEL_YN = 'N' \r\n"
  241. #endif
  242. #ifdef USE_VMS
  243. "UNION \r\n"
  244. "SELECT 'VMS' AS FAC_TYPE, VMS_CTLR_ID AS FAC_ID, VMS_NM AS FAC_NM, DEL_YN \r\n"
  245. " FROM TB_VMS_CTLR \r\n"
  246. " WHERE DEL_YN = 'N' \r\n"
  247. #endif
  248. #ifdef USE_WCAM
  249. "UNION \r\n"
  250. "SELECT WCAM_TYPE_CD AS FAC_TYPE, WCAM_CTLR_ID AS FAC_ID, WCAM_NM AS FAC_NM, DEL_YN \r\n"
  251. " FROM TB_WCAM_CTLR \r\n"
  252. " WHERE DEL_YN = 'N' \r\n"
  253. #endif
  254. #ifdef USE_CCAM
  255. "UNION \r\n"
  256. "SELECT 'CCAM' AS FAC_TYPE, CCAM_CTLR_ID AS FAC_ID, CCAM_NM AS FAC_NM, DEL_YN \r\n"
  257. " FROM TB_CCAM_CTLR \r\n"
  258. " WHERE DEL_YN = 'N' \r\n"
  259. #endif
  260. #ifdef USE_AVI
  261. "UNION \r\n"
  262. "SELECT 'AVI' AS FAC_TYPE, AVI_ID AS FAC_ID, AVI_LCTN_NM AS FAC_NM, DEL_YN \r\n"
  263. " FROM TB_AVI_CTLR \r\n"
  264. " WHERE DEL_YN = 'N' \r\n"
  265. #endif
  266. #ifdef USE_DSRC
  267. "UNION \r\n"
  268. "SELECT 'DSRC' AS FAC_TYPE, RSE_ID AS FAC_ID, ISTL_LCTN_NM AS FAC_NM, DEL_YN \r\n"
  269. " FROM TB_RSE_MSTR \r\n"
  270. " WHERE DEL_YN = 'N' \r\n"
  271. #endif
  272. #ifdef USE_BIT
  273. "UNION \r\n"
  274. "SELECT 'BIT' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  275. " FROM VW_BIT \r\n"
  276. #if 0
  277. "SELECT 'BIT' AS FAC_TYPE, TO_CHAR(A.BIT_ID) AS FAC_ID, B.STOP_NAME AS FAC_NM, \r\n"
  278. " 'N' AS DEL_YN \r\n"
  279. " FROM BIT A, BUSSTOP B \r\n"
  280. " WHERE 1=1 \r\n"
  281. " AND A.INSTALL_STOP_ID = B.STOP_ID \r\n"
  282. " AND B.USE_FLAG = '1' \r\n"
  283. #endif
  284. #endif
  285. #ifdef USE_SIG
  286. "UNION \r\n"
  287. "SELECT 'SIG' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  288. " FROM VW_SIG_CTLR \r\n"
  289. #endif
  290. #ifdef USE_PVMS
  291. "UNION \r\n"
  292. "SELECT 'PVMS' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  293. " FROM VW_PIS_VMS \r\n"
  294. #endif
  295. #ifdef USE_PVDS
  296. "UNION \r\n"
  297. "SELECT 'PVDS' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  298. " FROM VW_PIS_CONT \r\n"
  299. #endif
  300. #ifdef USE_SIGDET
  301. "UNION \r\n"
  302. "SELECT 'LVD' AS FAC_TYPE, FCLT_ID AS FAC_ID, FCLT_LCTN AS FAC_NM, 'N' AS DEL_YN \r\n"
  303. " FROM VW_SIG_LVDS \r\n"
  304. #endif
  305. #ifdef USE_RSE
  306. "UNION \r\n"
  307. "SELECT 'RSE' AS FAC_TYPE, RSEID AS FAC_ID, LOCATION AS FAC_NM, 'N' AS DEL_YN \r\n"
  308. " FROM RSEMST \r\n"
  309. #endif
  310. #ifdef USE_PARK2
  311. "UNION \r\n"
  312. "SELECT 'PARK' AS FAC_TYPE, PRLT_CTLR_ID AS FAC_ID, PRLT_NM AS FAC_NM, DEL_YN \r\n"
  313. " FROM TB_PRLT_CTLR \r\n"
  314. " WHERE DEL_YN = 'N' \r\n"
  315. #endif
  316. #ifdef USE_PARK
  317. "UNION \r\n"
  318. "SELECT 'PARK' AS FAC_TYPE, prk_plce_manage_no AS FAC_ID, prk_plce_nm AS FAC_NM, 'N' AS DEL_YN \r\n"
  319. " FROM TB_PRK_PLCE \r\n"
  320. " WHERE pis_type != 'N' \r\n"
  321. #endif
  322. #ifdef USE_CROSS
  323. // 교차로교통량
  324. "UNION \r\n"
  325. "SELECT 'CRS' AS FAC_TYPE, CROSS_ID AS FAC_ID, NAME AS FAC_NM, 'N' AS DEL_YN \r\n"
  326. " FROM MST_CROSS \r\n"
  327. " WHERE DEL_YN = 'N' \r\n"
  328. // 교차로교통량 CCTV
  329. "UNION \r\n"
  330. "SELECT 'CRSCAM' AS FAC_TYPE, A.CAM_ID AS FAC_ID, A.NAME AS FAC_NM, 'N' AS DEL_YN \r\n"
  331. " FROM MST_CCAM A, MST_CROSS B \r\n"
  332. " WHERE A.DEL_YN = 'N' \r\n"
  333. " AND B.DEL_YN = 'N' \r\n"
  334. " AND A.CROSS_ID = B.CROSS_ID \r\n"
  335. #endif
  336. ;
  337. FRegLists.Lock();
  338. try
  339. {
  340. FRegLists.RemoveAll();
  341. try
  342. {
  343. pADO = new TADOQuery(NULL);
  344. pADO->Close();
  345. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  346. pADO->SQL->Clear();
  347. pADO->SQL->Text = sQry;
  348. pADO->Prepared = true;
  349. pADO->Open();
  350. for( ; !pADO->Eof; pADO->Next())
  351. {
  352. TItsRegFacility *pRegFacility = new TItsRegFacility();
  353. pRegFacility->Type = pADO->FieldByName("FAC_TYPE")->AsString;
  354. pRegFacility->Id = pADO->FieldByName("FAC_ID")->AsString;
  355. pRegFacility->Name = pADO->FieldByName("FAC_NM")->AsString;
  356. pRegFacility->DelYn = pADO->FieldByName("DEL_YN")->AsString;
  357. pRegFacility->Name = StringReplace(pRegFacility->Name , "\"", "", TReplaceFlags() << rfReplaceAll);
  358. pRegFacility->GridIndex = -1;
  359. FRegLists.Push(pRegFacility->Type + pRegFacility->Id, pRegFacility);
  360. }
  361. }
  362. catch(EDatabaseError &E)
  363. {
  364. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  365. DBERRORMSG("TItsFacilityManager::LoadFacilityReg", String(E.ClassName()), E.Message, sQry);
  366. throw Exception(String(E.ClassName()) + E.Message);
  367. }
  368. catch(Exception &exception)
  369. {
  370. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  371. DBERRORMSG("TItsFacilityManager::LoadFacilityReg", String(exception.ClassName()), exception.Message, sQry);
  372. throw Exception(String(exception.ClassName()) + exception.Message);
  373. }
  374. }
  375. __finally
  376. {
  377. if (pADO)
  378. {
  379. pADO->Close();
  380. delete pADO;
  381. }
  382. FRegLists.UnLock();
  383. }
  384. return true;
  385. }
  386. //---------------------------------------------------------------------------
  387. bool TItsFacilityManager::LoadFacilityMaster(TADOConnection *ADbConn/*=NULL*/)
  388. {
  389. String sQry;
  390. TADOQuery *pADO = NULL;
  391. sQry = "SELECT * \r\n"
  392. " FROM TB_FCLT_INFR \r\n"
  393. " WHERE DEL_YN = 'N' \r\n";
  394. TFacilityStatus *pStatus;
  395. FListStatus.Lock();
  396. ItsFacilityManager->FLists.Lock();
  397. try
  398. {
  399. FListStatus.RemoveAll();
  400. ItsFacilityManager->FLists.RemoveAll();
  401. try
  402. {
  403. pADO = new TADOQuery(NULL);
  404. pADO->Close();
  405. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  406. pADO->SQL->Clear();
  407. pADO->SQL->Text = sQry;
  408. pADO->Prepared = true;
  409. pADO->Open();
  410. for( ; !pADO->Eof; pADO->Next())
  411. {
  412. TItsFacility *pFacility = new TItsFacility();
  413. pFacility->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  414. pFacility->RFID_ID = pADO->FieldByName("RFID_ID")->AsString;
  415. pFacility->FCLT_TYPE = pADO->FieldByName("FCLT_TYPE")->AsString;
  416. pFacility->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  417. pFacility->RSCE_YN = pADO->FieldByName("RSCE_YN")->AsString;
  418. pFacility->MDL_NM = pADO->FieldByName("MDL_NM")->AsString;
  419. pFacility->USE_YEAR = pADO->FieldByName("USE_YEAR")->AsString;
  420. if (pFacility->USE_YEAR == "") pFacility->USE_YEAR = "0";
  421. pFacility->INWR_DT = pADO->FieldByName("INWR_DT")->AsString;
  422. pFacility->OTWR_DT = pADO->FieldByName("OTWR_DT")->AsString;
  423. pFacility->ISTL_DT = pADO->FieldByName("ISTL_DT")->AsString;
  424. pFacility->TAKT_DT = pADO->FieldByName("TAKT_DT")->AsString;
  425. pFacility->TAKT_RESN = pADO->FieldByName("TAKT_RESN")->AsString;
  426. pFacility->TAKN_DT = pADO->FieldByName("TAKN_DT")->AsString;
  427. pFacility->ABDN_DT = pADO->FieldByName("ABDN_DT")->AsString;
  428. pFacility->ADTN_NM = pADO->FieldByName("ADTN_NM")->AsString;
  429. pFacility->ADTN_DT = pADO->FieldByName("ADTN_DT")->AsString;
  430. pFacility->CHNG_NM = pADO->FieldByName("CHNG_NM")->AsString;
  431. pFacility->CHNG_DT = pADO->FieldByName("CHNG_DT")->AsString;
  432. pFacility->AMT = pADO->FieldByName("AMT")->AsString;
  433. pFacility->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  434. pFacility->ISTL_CMPY_ID = pADO->FieldByName("ISTL_CMPY_ID")->AsString;
  435. pFacility->MNFC_CMPY_ID = pADO->FieldByName("MNFC_CMPY_ID")->AsString;
  436. pFacility->ISTL_LCTN_ADDR = pADO->FieldByName("ISTL_LCTN_ADDR")->AsString;
  437. pFacility->Sts00 = "-";
  438. pFacility->GridIndex = -1; // 메인폼에 뿌려지는 그리드 인덱스
  439. pFacility->StatusGridIndex = -1;
  440. pFacility->Object = NULL;
  441. ItsFacilityManager->FLists.Push(pFacility->FCLT_ID, pFacility);
  442. pFacility->Completed = true;
  443. String FCLT_TYPE = pFacility->FCLT_TYPE;
  444. if (FCLT_TYPE == "VDS" && pFacility->FCLT_ID.Pos("VDC"))
  445. {
  446. FCLT_TYPE = "CRSSVR";
  447. }
  448. pStatus = FListStatus.Find(FCLT_TYPE);
  449. if (!pStatus)
  450. {
  451. pStatus = new TFacilityStatus();
  452. pStatus->Type = FCLT_TYPE;
  453. pStatus->Total = 0;
  454. pStatus->Normal = 0;
  455. pStatus->Error = 0;
  456. pStatus->Module = 0;
  457. pStatus->Collect= 0;
  458. FListStatus.Push(FCLT_TYPE, pStatus);
  459. }
  460. pStatus->Total++; /* 전체 갯수를 증가 시킴 */
  461. }
  462. }
  463. catch(EDatabaseError &E)
  464. {
  465. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  466. DBERRORMSG("TItsFacilityManager::LoadFacilityMaster", String(E.ClassName()), E.Message, sQry);
  467. throw Exception(String(E.ClassName()) + E.Message);
  468. }
  469. catch(Exception &exception)
  470. {
  471. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  472. DBERRORMSG("TItsFacilityManager::LoadFacilityMaster", String(exception.ClassName()), exception.Message, sQry);
  473. throw Exception(String(exception.ClassName()) + exception.Message);
  474. }
  475. }
  476. __finally
  477. {
  478. if (pADO)
  479. {
  480. pADO->Close();
  481. delete pADO;
  482. }
  483. FListStatus.UnLock();
  484. ItsFacilityManager->FLists.UnLock();
  485. }
  486. return true;
  487. }
  488. //---------------------------------------------------------------------------
  489. bool TItsFacilityManager::LoadFacilityWebCam(TADOConnection *ADbConn/*=NULL*/)
  490. {
  491. if (!WCamCtlrManager)
  492. {
  493. WCamCtlrManager = new TWCamCtlrManager();
  494. }
  495. #ifdef USE_WCAM
  496. TItsFacility *pFacility;
  497. WCamCtlrManager->LoadFromDb();
  498. FOR_STL(TWCamCtlr*, pObj, WCamCtlrManager->FLists)
  499. {
  500. if (pObj->DEL_YN == "Y") continue;
  501. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  502. if (!pFacility) continue;
  503. pFacility->Object = pObj;
  504. }
  505. #endif
  506. return true;
  507. }
  508. //---------------------------------------------------------------------------
  509. bool TItsFacilityManager::LoadFacilityCrsCam(TADOConnection *ADbConn/*=NULL*/)
  510. {
  511. if (!CCamCtlrManager)
  512. {
  513. CCamCtlrManager = new TCCamCtlrManager();
  514. }
  515. #ifdef USE_CCAM
  516. TItsFacility *pFacility;
  517. CCamCtlrManager->LoadFromDb();
  518. FOR_STL(TCCamCtlr*, pObj, CCamCtlrManager->FLists)
  519. {
  520. if (pObj->DEL_YN == "Y") continue;
  521. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  522. if (!pFacility) continue;
  523. pFacility->Object = pObj;
  524. pFacility->FCLT_KIND = pObj->TYPE_CD;
  525. }
  526. #endif
  527. return true;
  528. }
  529. //---------------------------------------------------------------------------
  530. bool TItsFacilityManager::LoadFacilityCctv(TADOConnection *ADbConn/*=NULL*/)
  531. {
  532. if (!CctvCtlrManager)
  533. {
  534. CctvCtlrManager = new TCctvCtlrManager();
  535. }
  536. #ifdef USE_CCTV
  537. CctvCtlrManager->LoadFromDb();
  538. FOR_STL(TCctvCtlr*, pObj, CctvCtlrManager->FLists)
  539. {
  540. if (pObj->DEL_YN == "Y") continue;
  541. TItsFacility *pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  542. if (pFacility) {
  543. pFacility->Object = pObj;
  544. pFacility->FCLT_KIND = pObj->TYPE_CD;
  545. }
  546. }
  547. #endif
  548. return true;
  549. }
  550. //---------------------------------------------------------------------------
  551. bool TItsFacilityManager::LoadFacilityIncCctv(TADOConnection *ADbConn/*=NULL*/)
  552. {
  553. if (!IncCctvCtlrManager)
  554. {
  555. IncCctvCtlrManager = new TIncCctvCtlrManager();
  556. }
  557. #ifdef USE_INCCCTV
  558. TItsFacility *pFacility;
  559. IncCctvCtlrManager->LoadFromDb();
  560. FOR_STL(TIncCctvCtlr*, pObj, IncCctvCtlrManager->FLists)
  561. {
  562. if (pObj->DEL_YN == "Y") continue;
  563. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  564. if (!pFacility) continue;
  565. pFacility->Object = pObj;
  566. pFacility->FCLT_KIND = pObj->TYPE_CD;
  567. }
  568. #endif
  569. return true;
  570. }
  571. //---------------------------------------------------------------------------
  572. bool TItsFacilityManager::LoadFacilityVms(TADOConnection *ADbConn/*=NULL*/)
  573. {
  574. if (!VmsCtlrManager)
  575. {
  576. VmsCtlrManager = new TVmsCtlrManager();
  577. }
  578. #if 0
  579. String msg = ItsFacilityManager->FLists.Size();
  580. String data = "";
  581. FOR_STL(TItsFacility*, pTemp, ItsFacilityManager->FLists) {
  582. data += (pTemp->FCLT_ID + ", ");
  583. }
  584. DBERRORMSG("TItsFacilityManager::LoadFacilityRse", "ClassName()", msg, data);
  585. #endif
  586. #ifdef USE_VMS
  587. TItsFacility *pFacility;
  588. VmsCtlrManager->LoadVmsSize();
  589. VmsCtlrManager->LoadFromDb();
  590. VmsCtlrManager->LoadVmsFormUsage();
  591. VmsCtlrManager->LoadIfscRltn();
  592. FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists)
  593. {
  594. if (pObj->DEL_YN == "Y") continue;
  595. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  596. if (!pFacility) continue;
  597. pFacility->Object = pObj;
  598. pFacility->FCLT_KIND = pObj->TYPE_CD;
  599. }
  600. #if 0
  601. FOR_STL(TItsFacility*, pFacility, ItsFacilityManager->FLists) {
  602. if (pFacility->FCLT_TYPE != "VMS") continue;
  603. FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists) {
  604. if (pObj->VMS_CTLR_ID == pFacility->FCLT_ID) {
  605. pFacility->Object = pObj;
  606. pFacility->FCLT_KIND = pObj->TYPE_CD;
  607. break;
  608. }
  609. }
  610. }
  611. #endif
  612. #endif
  613. return true;
  614. }
  615. //---------------------------------------------------------------------------
  616. bool TItsFacilityManager::LoadFacilityVds(TADOConnection *ADbConn/*=NULL*/)
  617. {
  618. if (!VdsCtlrManager)
  619. {
  620. VdsCtlrManager = new TVdsCtlrManager();
  621. }
  622. #ifdef USE_VDS
  623. TItsFacility *pFacility;
  624. VdsCtlrManager->LoadFromDb();
  625. VdsCtlrManager->LoadFromDtctDb();
  626. FOR_STL(TVdsCtlr*, pObj, VdsCtlrManager->FLists)
  627. {
  628. if (pObj->DEL_YN == "Y") continue;
  629. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  630. if (!pFacility) continue;
  631. pFacility->Object = pObj;
  632. pFacility->FCLT_KIND = pObj->TYPE_CD;
  633. }
  634. #endif
  635. return true;
  636. }
  637. //---------------------------------------------------------------------------
  638. bool TItsFacilityManager::LoadFacilityDsrc(TADOConnection *ADbConn/*=NULL*/)
  639. {
  640. if (!ItsDsrcManager)
  641. {
  642. ItsDsrcManager = new TItsDsrcManager();
  643. }
  644. #ifdef USE_DSRC
  645. TItsFacility *pFacility;
  646. ItsDsrcManager->LoadFromDb();
  647. ItsFacilityManager->FLists.Lock();
  648. FOR_STL(TItsDsrc*, pObj, ItsDsrcManager->FLists)
  649. {
  650. if (pObj->DEL_YN == "Y") continue;
  651. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  652. if (!pFacility) continue;
  653. pFacility->Object = pObj;
  654. pFacility->FCLT_KIND = pObj->TYPE_CD;
  655. }
  656. ItsFacilityManager->FLists.UnLock();
  657. #endif
  658. return true;
  659. }
  660. //---------------------------------------------------------------------------
  661. bool TItsFacilityManager::LoadFacilityRse(TADOConnection *ADbConn/*=NULL*/)
  662. {
  663. String sQry;
  664. TADOQuery *pADO = NULL;
  665. #ifndef USE_RSE
  666. return true;
  667. #endif
  668. sQry = "SELECT RSEID, \r\n"
  669. " INSTDT, \r\n"
  670. " CITYCD, \r\n"
  671. " REGIONCD, \r\n"
  672. " AREACD, \r\n"
  673. " RSEIP, \r\n"
  674. " (COORDX/10000000) COORDX, \r\n"
  675. " (COORDY/10000000) COORDY, \r\n"
  676. " RADIUS1, \r\n"
  677. " RADIUS2, \r\n"
  678. " COMPCD, \r\n"
  679. " LOCATION, \r\n"
  680. " RSECONFIGID, \r\n"
  681. " OBEPARAMID, \r\n"
  682. " PORT, \r\n"
  683. " BRIDGE, \r\n"
  684. " COMYN \r\n"
  685. " FROM RSEMST \r\n";
  686. //" ORDER BY RSEID \r\n";
  687. try
  688. {
  689. FRseLists.Lock();
  690. //FRseLists.RemoveAll();
  691. try
  692. {
  693. pADO = new TADOQuery(NULL);
  694. pADO->Close();
  695. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  696. pADO->SQL->Clear();
  697. pADO->SQL->Text = sQry;
  698. pADO->Prepared = true;
  699. pADO->Open();
  700. for( ; !pADO->Eof; pADO->Next())
  701. {
  702. TItsRse *pObj = new TItsRse();
  703. pObj->RSEID = pADO->FieldByName("RSEID")->AsString;
  704. //pObj->INSTDT = pADO->FieldByName("INSTDT")->AsString;
  705. pObj->CITYCD = pADO->FieldByName("CITYCD")->AsString;
  706. pObj->REGIONCD = pADO->FieldByName("REGIONCD")->AsString;
  707. pObj->AREACD = pADO->FieldByName("AREACD")->AsString;
  708. pObj->RSEIP = pADO->FieldByName("RSEIP")->AsString;
  709. pObj->COORDX = pADO->FieldByName("COORDX")->AsString;
  710. pObj->COORDY = pADO->FieldByName("COORDY")->AsString;
  711. pObj->RADIUS1 = pADO->FieldByName("RADIUS1")->AsString;
  712. pObj->RADIUS2 = pADO->FieldByName("RADIUS2")->AsString;
  713. //pObj->COMPCD = pADO->FieldByName("COMPCD")->AsString;
  714. pObj->LOCATION = pADO->FieldByName("LOCATION")->AsString;
  715. //pObj->RSECONFIGID = pADO->FieldByName("RSECONFIGID")->AsString;
  716. //pObj->OBEPARAMID = pADO->FieldByName("OBEPARAMID")->AsString;
  717. //pObj->PORT = pADO->FieldByName("PORT")->AsString;
  718. //pObj->BRIDGE = pADO->FieldByName("BRIDGE")->AsString;
  719. pObj->COMYN = pADO->FieldByName("COMYN")->AsString;
  720. FRseLists.Push(pObj->RSEID, pObj);
  721. }
  722. }
  723. catch(EDatabaseError &E)
  724. {
  725. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  726. DBERRORMSG("TItsFacilityManager::LoadFacilityRse", String(E.ClassName()), E.Message, sQry);
  727. throw Exception(String(E.ClassName()) + E.Message);
  728. }
  729. catch(Exception &exception)
  730. {
  731. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  732. DBERRORMSG("TItsFacilityManager::LoadFacilityRse", String(exception.ClassName()), exception.Message, sQry);
  733. throw Exception(String(exception.ClassName()) + exception.Message);
  734. }
  735. }
  736. __finally
  737. {
  738. if (pADO)
  739. {
  740. pADO->Close();
  741. delete pADO;
  742. }
  743. FRseLists.UnLock();
  744. }
  745. return true;
  746. }
  747. //---------------------------------------------------------------------------
  748. bool TItsFacilityManager::LoadFacilityAvi(TADOConnection *ADbConn/*=NULL*/)
  749. {
  750. String sQry;
  751. TADOQuery *pADO = NULL;
  752. #ifndef USE_AVI
  753. return true;
  754. #endif
  755. sQry = "SELECT AVI_CTLR_MNGM_NMBR, \r\n"
  756. " AVI_ID, \r\n"
  757. " LINK_ID, \r\n"
  758. " AVI_LCTN_NM, \r\n"
  759. " AVI_VALD_YN, \r\n"
  760. " AVI_CTLR_IP, \r\n"
  761. " AVI_CTLR_CMNC_PORT, \r\n"
  762. " AVI_MAIN_CTLR_YN, \r\n"
  763. " AVI_MNGM_LANE_NUM, \r\n"
  764. " AVI_CMRA_NUM, \r\n"
  765. " AVI_DTCT_NUM, \r\n"
  766. " AVI_DTCT_NM, \r\n"
  767. " AVI_CLCT_CYCL, \r\n"
  768. " AVI_LAMP_AUTO_YN, \r\n"
  769. " AVI_LAMP_ON_HMS, \r\n"
  770. " AVI_LAMP_OFF_HMS, \r\n"
  771. " AVI_LAMP_ON_YN, \r\n"
  772. " X_CRDN, \r\n"
  773. " Y_CRDN, \r\n"
  774. " RMRK, \r\n"
  775. " DEL_YN \r\n"
  776. " FROM TB_AVI_CTLR \r\n";
  777. //" ORDER BY AVI_CTLR_MNGM_NMBR \r\n";
  778. try
  779. {
  780. FAviLists.Lock();
  781. //FAviLists.RemoveAll();
  782. try
  783. {
  784. pADO = new TADOQuery(NULL);
  785. pADO->Close();
  786. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  787. pADO->SQL->Clear();
  788. pADO->SQL->Text = sQry;
  789. pADO->Prepared = true;
  790. pADO->Open();
  791. for( ; !pADO->Eof; pADO->Next())
  792. {
  793. TItsAvi *pObj = new TItsAvi();
  794. pObj->AVI_CTLR_MNGM_NMBR= pADO->FieldByName("AVI_CTLR_MNGM_NMBR")->AsString;
  795. pObj->AVI_ID = pADO->FieldByName("AVI_ID")->AsString;
  796. pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString;
  797. pObj->AVI_LCTN_NM = pADO->FieldByName("AVI_LCTN_NM")->AsString;
  798. pObj->AVI_VALD_YN = pADO->FieldByName("AVI_VALD_YN")->AsString;
  799. pObj->AVI_CTLR_IP = pADO->FieldByName("AVI_CTLR_IP")->AsString;
  800. pObj->AVI_CTLR_CMNC_PORT= pADO->FieldByName("AVI_CTLR_CMNC_PORT")->AsString;
  801. pObj->AVI_MAIN_CTLR_YN = pADO->FieldByName("AVI_MAIN_CTLR_YN")->AsString;
  802. pObj->AVI_MNGM_LANE_NUM = pADO->FieldByName("AVI_MNGM_LANE_NUM")->AsString;
  803. pObj->AVI_CMRA_NUM = pADO->FieldByName("AVI_CMRA_NUM")->AsString;
  804. pObj->AVI_DTCT_NUM = pADO->FieldByName("AVI_DTCT_NUM")->AsString;
  805. pObj->AVI_DTCT_NM = pADO->FieldByName("AVI_DTCT_NM")->AsString;
  806. pObj->AVI_CLCT_CYCL = pADO->FieldByName("AVI_CLCT_CYCL")->AsString;
  807. pObj->AVI_LAMP_AUTO_YN = pADO->FieldByName("AVI_LAMP_AUTO_YN")->AsString;
  808. pObj->AVI_LAMP_ON_HMS = pADO->FieldByName("AVI_LAMP_ON_HMS")->AsString;
  809. pObj->AVI_LAMP_OFF_HMS = pADO->FieldByName("AVI_LAMP_OFF_HMS")->AsString;
  810. pObj->AVI_LAMP_ON_YN = pADO->FieldByName("AVI_LAMP_ON_YN")->AsString;
  811. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  812. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  813. pObj->RMRK = pADO->FieldByName("RMRK")->AsString;
  814. pObj->DEL_YN = pADO->FieldByName("DEL_YN")->AsString;
  815. //FAviLists.Push(pObj->AVI_CTLR_MNGM_NMBR, pObj);
  816. FAviLists.Push(pObj->AVI_ID, pObj);
  817. }
  818. }
  819. catch(EDatabaseError &E)
  820. {
  821. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  822. DBERRORMSG("TItsFacilityManager::LoadFacilityAvi", String(E.ClassName()), E.Message, sQry);
  823. throw Exception(String(E.ClassName()) + E.Message);
  824. }
  825. catch(Exception &exception)
  826. {
  827. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  828. DBERRORMSG("TItsFacilityManager::LoadFacilityAvi", String(exception.ClassName()), exception.Message, sQry);
  829. throw Exception(String(exception.ClassName()) + exception.Message);
  830. }
  831. }
  832. __finally
  833. {
  834. if (pADO)
  835. {
  836. pADO->Close();
  837. delete pADO;
  838. }
  839. FAviLists.UnLock();
  840. }
  841. return true;
  842. }
  843. //---------------------------------------------------------------------------
  844. bool TItsFacilityManager::LoadFacilityBit(TADOConnection *ADbConn/*=NULL*/)
  845. {
  846. String sQry;
  847. TADOQuery *pADO = NULL;
  848. #ifndef USE_BIT
  849. return true;
  850. #endif
  851. #if 0
  852. sQry = "SELECT A.BIT_ID, \r\n"
  853. " A.BIT_TYPE, \r\n"
  854. " A.FAN_MIN_TEMPERATURE, \r\n"
  855. " A.FAN_MAX_TEMPERATURE, \r\n"
  856. " A.HEATER_MIN_TEMPERATURE, \r\n"
  857. " A.HEATER_MAX_TEMPERATURE, \r\n"
  858. " A.INSTALL_STOP_ID, \r\n"
  859. " B.STOP_ID, \r\n"
  860. " B.SERVICE_ID, \r\n"
  861. " B.STOP_TYPE, \r\n"
  862. " B.STOP_NAME, \r\n"
  863. " B.STOP_SHORTNAME, \r\n"
  864. " B.STOP_EXPLAIN, \r\n"
  865. " B.LAT AS COORDY, \r\n"
  866. " B.LNG AS COORDX, \r\n"
  867. " B.LINK_ID, \r\n"
  868. " B.USE_FLAG \r\n"
  869. " FROM BIT A, BUSSTOP B \r\n"
  870. " WHERE 1=1 \r\n"
  871. " AND A.INSTALL_STOP_ID = B.STOP_ID \r\n"
  872. " AND B.USE_FLAG = '1' \r\n";
  873. #else
  874. sQry = "SELECT * FROM VW_BIT \r\n";
  875. #endif
  876. try
  877. {
  878. FBitLists.Lock();
  879. //FBitLists.RemoveAll();
  880. try
  881. {
  882. pADO = new TADOQuery(NULL);
  883. pADO->Close();
  884. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  885. pADO->SQL->Clear();
  886. pADO->SQL->Text = sQry;
  887. pADO->Prepared = true;
  888. pADO->Open();
  889. for( ; !pADO->Eof; pADO->Next())
  890. {
  891. TItsBit *pObj = new TItsBit();
  892. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  893. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  894. pObj->BIT_ID = pADO->FieldByName("BIT_ID")->AsString;
  895. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  896. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  897. pObj->STOP_ID = pADO->FieldByName("STOP_ID")->AsString;
  898. #if 0
  899. pObj->BIT_TYPE = pADO->FieldByName("BIT_TYPE")->AsString;
  900. pObj->FAN_MIN_TEMPERATURE = pADO->FieldByName("FAN_MIN_TEMPERATURE")->AsInteger;
  901. pObj->FAN_MAX_TEMPERATURE = pADO->FieldByName("FAN_MAX_TEMPERATURE")->AsInteger;
  902. pObj->HEATER_MIN_TEMPERATURE = pADO->FieldByName("HEATER_MIN_TEMPERATURE")->AsInteger;
  903. pObj->HEATER_MAX_TEMPERATURE = pADO->FieldByName("HEATER_MAX_TEMPERATURE")->AsInteger;
  904. pObj->INSTALL_STOP_ID = pADO->FieldByName("INSTALL_STOP_ID")->AsString;
  905. pObj->SERVICE_ID = pADO->FieldByName("SERVICE_ID")->AsString;
  906. pObj->STOP_TYPE = pADO->FieldByName("STOP_TYPE")->AsString;
  907. pObj->STOP_NAME = pADO->FieldByName("STOP_NAME")->AsString;
  908. pObj->STOP_SHORTNAME = pADO->FieldByName("STOP_SHORTNAME")->AsString;
  909. #endif
  910. pObj->STOP_EXPLAIN = pADO->FieldByName("REMARK")->AsString;
  911. pObj->LINK_ID = pADO->FieldByName("LINK_ID")->AsString;
  912. pObj->DEL_YN = "N";
  913. FBitLists.Push(pObj->FCLT_ID, pObj);
  914. }
  915. }
  916. catch(EDatabaseError &E)
  917. {
  918. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  919. DBERRORMSG("TItsFacilityManager::LoadFacilityBit", String(E.ClassName()), E.Message, sQry);
  920. throw Exception(String(E.ClassName()) + E.Message);
  921. }
  922. catch(Exception &exception)
  923. {
  924. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  925. DBERRORMSG("TItsFacilityManager::LoadFacilityBit", String(exception.ClassName()), exception.Message, sQry);
  926. throw Exception(String(exception.ClassName()) + exception.Message);
  927. }
  928. }
  929. __finally
  930. {
  931. if (pADO)
  932. {
  933. pADO->Close();
  934. delete pADO;
  935. }
  936. FBitLists.UnLock();
  937. }
  938. return true;
  939. }
  940. //---------------------------------------------------------------------------
  941. bool TItsFacilityManager::LoadFacilitySig(TADOConnection *ADbConn/*=NULL*/)
  942. {
  943. String sQry;
  944. TADOQuery *pADO = NULL;
  945. #ifndef USE_SIG
  946. return true;
  947. #endif
  948. sQry = "SELECT * FROM VW_SIG_CTLR \r\n";
  949. try
  950. {
  951. FSigLists.Lock();
  952. //FSigLists.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->Prepared = true;
  961. pADO->Open();
  962. for( ; !pADO->Eof; pADO->Next())
  963. {
  964. TItsSig *pObj = new TItsSig();
  965. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  966. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  967. pObj->SIG_ID = pADO->FieldByName("FACIL_ID")->AsString;
  968. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  969. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  970. pObj->MDL_NM = pADO->FieldByName("MDL_NM")->AsString;
  971. pObj->DEL_YN = "N";
  972. FSigLists.Push(pObj->FCLT_ID, pObj);
  973. }
  974. }
  975. catch(EDatabaseError &E)
  976. {
  977. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  978. DBERRORMSG("TItsFacilityManager::LoadFacilitySig", String(E.ClassName()), E.Message, sQry);
  979. throw Exception(String(E.ClassName()) + E.Message);
  980. }
  981. catch(Exception &exception)
  982. {
  983. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  984. DBERRORMSG("TItsFacilityManager::LoadFacilitySig", String(exception.ClassName()), exception.Message, sQry);
  985. throw Exception(String(exception.ClassName()) + exception.Message);
  986. }
  987. }
  988. __finally
  989. {
  990. if (pADO)
  991. {
  992. pADO->Close();
  993. delete pADO;
  994. }
  995. FSigLists.UnLock();
  996. }
  997. return true;
  998. }
  999. //---------------------------------------------------------------------------
  1000. bool TItsFacilityManager::LoadFacilitySigDet(TADOConnection *ADbConn/*=NULL*/)
  1001. {
  1002. String sQry;
  1003. TADOQuery *pADO = NULL;
  1004. #ifndef USE_SIGDET
  1005. return true;
  1006. #endif
  1007. sQry = "SELECT * FROM VW_SIG_LVDS \r\n";
  1008. try
  1009. {
  1010. FSigDetLists.Lock();
  1011. //FSigDetLists.RemoveAll();
  1012. try
  1013. {
  1014. pADO = new TADOQuery(NULL);
  1015. pADO->Close();
  1016. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1017. pADO->SQL->Clear();
  1018. pADO->SQL->Text = sQry;
  1019. pADO->Prepared = true;
  1020. pADO->Open();
  1021. for( ; !pADO->Eof; pADO->Next())
  1022. {
  1023. TItsSigDet *pObj = new TItsSigDet();
  1024. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  1025. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  1026. pObj->SDET_ID = pADO->FieldByName("FACIL_ID")->AsString;
  1027. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1028. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1029. pObj->MDL_NM = pADO->FieldByName("MDL_NM")->AsString;
  1030. pObj->SIG_ID = pADO->FieldByName("ASSETS_CODE")->AsString;
  1031. pObj->DEL_YN = "N";
  1032. FSigDetLists.Push(pObj->FCLT_ID, pObj);
  1033. }
  1034. }
  1035. catch(EDatabaseError &E)
  1036. {
  1037. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1038. DBERRORMSG("TItsFacilityManager::LoadFacilitySigDet", String(E.ClassName()), E.Message, sQry);
  1039. throw Exception(String(E.ClassName()) + E.Message);
  1040. }
  1041. catch(Exception &exception)
  1042. {
  1043. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1044. DBERRORMSG("TItsFacilityManager::LoadFacilitySigDet", String(exception.ClassName()), exception.Message, sQry);
  1045. throw Exception(String(exception.ClassName()) + exception.Message);
  1046. }
  1047. }
  1048. __finally
  1049. {
  1050. if (pADO)
  1051. {
  1052. pADO->Close();
  1053. delete pADO;
  1054. }
  1055. FSigDetLists.UnLock();
  1056. }
  1057. return true;
  1058. }
  1059. //---------------------------------------------------------------------------
  1060. bool TItsFacilityManager::LoadFacilityPvms(TADOConnection *ADbConn/*=NULL*/)
  1061. {
  1062. String sQry;
  1063. TADOQuery *pADO = NULL;
  1064. #ifndef USE_PVMS
  1065. return true;
  1066. #endif
  1067. sQry = "SELECT * FROM VW_PIS_VMS \r\n";
  1068. try
  1069. {
  1070. FPisLists.Lock();
  1071. //FPisLists.RemoveAll();
  1072. try
  1073. {
  1074. pADO = new TADOQuery(NULL);
  1075. pADO->Close();
  1076. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1077. pADO->SQL->Clear();
  1078. pADO->SQL->Text = sQry;
  1079. pADO->Prepared = true;
  1080. pADO->Open();
  1081. for( ; !pADO->Eof; pADO->Next())
  1082. {
  1083. TItsPis *pObj = new TItsPis();
  1084. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  1085. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  1086. pObj->PIS_ID = pADO->FieldByName("FACIL_ID")->AsString;
  1087. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1088. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1089. pObj->DEL_YN = "N";
  1090. FPisLists.Push(pObj->FCLT_ID, pObj);
  1091. }
  1092. }
  1093. catch(EDatabaseError &E)
  1094. {
  1095. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1096. DBERRORMSG("TItsFacilityManager::LoadFacilityPvms", String(E.ClassName()), E.Message, sQry);
  1097. throw Exception(String(E.ClassName()) + E.Message);
  1098. }
  1099. catch(Exception &exception)
  1100. {
  1101. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1102. DBERRORMSG("TItsFacilityManager::LoadFacilityPvms", String(exception.ClassName()), exception.Message, sQry);
  1103. throw Exception(String(exception.ClassName()) + exception.Message);
  1104. }
  1105. }
  1106. __finally
  1107. {
  1108. if (pADO)
  1109. {
  1110. pADO->Close();
  1111. delete pADO;
  1112. }
  1113. FPisLists.UnLock();
  1114. }
  1115. return true;
  1116. }
  1117. //---------------------------------------------------------------------------
  1118. bool TItsFacilityManager::LoadFacilityPvds(TADOConnection *ADbConn/*=NULL*/)
  1119. {
  1120. String sQry;
  1121. TADOQuery *pADO = NULL;
  1122. #ifndef USE_PVDS
  1123. return true;
  1124. #endif
  1125. sQry = "SELECT * FROM VW_PIS_CONT \r\n";
  1126. try
  1127. {
  1128. FPcsLists.Lock();
  1129. //FPcsLists.RemoveAll();
  1130. try
  1131. {
  1132. pADO = new TADOQuery(NULL);
  1133. pADO->Close();
  1134. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1135. pADO->SQL->Clear();
  1136. pADO->SQL->Text = sQry;
  1137. pADO->Prepared = true;
  1138. pADO->Open();
  1139. for( ; !pADO->Eof; pADO->Next())
  1140. {
  1141. TItsPcs *pObj = new TItsPcs();
  1142. pObj->FCLT_ID = pADO->FieldByName("FCLT_ID")->AsString;
  1143. pObj->FCLT_LCTN = pADO->FieldByName("FCLT_LCTN")->AsString;
  1144. pObj->PCS_ID = pADO->FieldByName("FACIL_ID")->AsString;
  1145. pObj->X_CRDN = pADO->FieldByName("X_CRDN")->AsString;
  1146. pObj->Y_CRDN = pADO->FieldByName("Y_CRDN")->AsString;
  1147. pObj->DEL_YN = "N";
  1148. FPcsLists.Push(pObj->FCLT_ID, pObj);
  1149. }
  1150. }
  1151. catch(EDatabaseError &E)
  1152. {
  1153. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1154. DBERRORMSG("TItsFacilityManager::LoadFacilityPvds", String(E.ClassName()), E.Message, sQry);
  1155. throw Exception(String(E.ClassName()) + E.Message);
  1156. }
  1157. catch(Exception &exception)
  1158. {
  1159. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1160. DBERRORMSG("TItsFacilityManager::LoadFacilityPvds", String(exception.ClassName()), exception.Message, sQry);
  1161. throw Exception(String(exception.ClassName()) + exception.Message);
  1162. }
  1163. }
  1164. __finally
  1165. {
  1166. if (pADO)
  1167. {
  1168. pADO->Close();
  1169. delete pADO;
  1170. }
  1171. FPisLists.UnLock();
  1172. }
  1173. return true;
  1174. }
  1175. //---------------------------------------------------------------------------
  1176. bool TItsFacilityManager::LoadFacilityPark(TADOConnection *ADbConn/*=NULL*/)
  1177. {
  1178. if (!PrltCtlrManager)
  1179. {
  1180. PrltCtlrManager = new TPrltCtlrManager();
  1181. }
  1182. if (!PrkPlceManager)
  1183. {
  1184. PrkPlceManager = new TPrkPlceManager();
  1185. }
  1186. TItsFacility *pFacility;
  1187. TFacilityStatus *pStatus = FListStatus.Find("PARK");
  1188. if (pStatus)
  1189. {
  1190. pStatus->Total = 0;
  1191. pStatus->Normal = 0;
  1192. pStatus->Error = 0;
  1193. pStatus->Module = 0;
  1194. pStatus->Collect= 0;
  1195. }
  1196. #ifdef USE_PARK2
  1197. PrltCtlrManager->LoadFromDb();
  1198. FOR_STL(TPrltCtlr*, pObj, PrltCtlrManager->FLists)
  1199. {
  1200. if (pObj->DEL_YN == "Y") continue;
  1201. pFacility = ItsFacilityManager->FLists.Find(pObj->PRLT_CTLR_ID);
  1202. if (!pFacility) continue;
  1203. pFacility->Object = pObj;
  1204. pFacility->FCLT_KIND = pObj->REAL_DATA_YN; //실시간주차정보제공여부
  1205. //주차장중에 실시간정보를 수집하는 것만 상태정보 범례를 표출하자
  1206. if (pObj->REAL_DATA_YN == "Y")
  1207. {
  1208. if (pStatus)
  1209. {
  1210. pStatus->Total++; /* 전체 갯수를 증가 시킴 */
  1211. }
  1212. }
  1213. }
  1214. #endif
  1215. #ifdef USE_PARK
  1216. PrkPlceManager->LoadFromDb();
  1217. FOR_STL(TPrkPlce*, pObj, PrkPlceManager->FLists)
  1218. {
  1219. if (pObj->DEL_YN == "Y") continue;
  1220. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  1221. if (!pFacility) continue;
  1222. pFacility->Object = pObj;
  1223. pFacility->FCLT_KIND = 'Y'; //실시간주차정보제공여부
  1224. //주차장중에 실시간정보를 수집하는 것만 상태정보 범례를 표출하자
  1225. if (pStatus)
  1226. {
  1227. pStatus->Total++; /* 전체 갯수를 증가 시킴 */
  1228. }
  1229. }
  1230. #endif
  1231. return true;
  1232. }
  1233. //---------------------------------------------------------------------------
  1234. bool TItsFacilityManager::LoadFacilityCross(TADOConnection *ADbConn/*=NULL*/)
  1235. {
  1236. if (!CrossManager)
  1237. {
  1238. CrossManager = new TCrossManager();
  1239. }
  1240. #ifdef USE_CROSS
  1241. TItsFacility *pFacility;
  1242. CrossManager->LoadFromDb();
  1243. FOR_STL(TCross*, pObj, CrossManager->FLists)
  1244. {
  1245. if (pObj->DEL_YN == "Y") continue;
  1246. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_NMBR);
  1247. if (!pFacility) continue;
  1248. pFacility->Object = pObj;
  1249. pFacility->FCLT_KIND = pObj->TYPE_CD;
  1250. }
  1251. FOR_STL(TCrossCam*, pObj, CrossManager->FCamLists)
  1252. {
  1253. if (pObj->DEL_YN == "Y") continue;
  1254. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_NMBR);
  1255. if (!pFacility) continue;
  1256. pFacility->Object = pObj;
  1257. pFacility->FCLT_KIND = pObj->TYPE_CD;
  1258. }
  1259. #endif
  1260. return true;
  1261. }
  1262. //---------------------------------------------------------------------------
  1263. bool TItsFacilityManager::LoadFacilitySgnlCtlr(TADOConnection *ADbConn/*=NULL*/)
  1264. {
  1265. if (!SgnlCtlrManager)
  1266. {
  1267. SgnlCtlrManager = new TSgnlCtlrManager();
  1268. }
  1269. #ifdef USE_SGNL_CTLR
  1270. TItsFacility *pFacility;
  1271. SgnlCtlrManager->LoadFromDb();
  1272. #if 0
  1273. FOR_STL(TCross*, pObj, CrossManager->FLists)
  1274. {
  1275. if (pObj->DEL_YN == "Y") continue;
  1276. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_NMBR);
  1277. if (!pFacility) continue;
  1278. pFacility->Object = pObj;
  1279. pFacility->FCLT_KIND = pObj->TYPE_CD;
  1280. }
  1281. FOR_STL(TCrossCam*, pObj, CrossManager->FCamLists)
  1282. {
  1283. if (pObj->DEL_YN == "Y") continue;
  1284. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_NMBR);
  1285. if (!pFacility) continue;
  1286. pFacility->Object = pObj;
  1287. pFacility->FCLT_KIND = pObj->TYPE_CD;
  1288. }
  1289. #endif
  1290. #endif
  1291. return true;
  1292. }
  1293. //---------------------------------------------------------------------------
  1294. bool TItsFacilityManager::LoadFacilityStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  1295. {
  1296. bool bResult = true;
  1297. String sQry;
  1298. TADOQuery *pADO = NULL;
  1299. sQry = "SELECT '' AS FAC_TYPE, '' AS FAC_ID, \r\n"
  1300. " '' AS STTS_CD, '' AS DOOR_STTS_CD, \r\n"
  1301. " DECODE('', 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1302. " DECODE('', 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1303. " NVL(NULL, 0) AS CBOX_TMPR, \r\n"
  1304. " '' AS STS00, \r\n"
  1305. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1306. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1307. " FROM DUAL \r\n"
  1308. " WHERE 1 = 0 \r\n"
  1309. #ifdef USE_CCTV
  1310. #if 0
  1311. "UNION \r\n"
  1312. "SELECT 'CCTV' AS FAC_TYPE, B.CCTV_CTLR_ID AS FAC_ID, \r\n"
  1313. " CONN_STTS_CD AS STTS_CD, 'CDS0' AS DOOR_STTS_CD, \r\n"
  1314. " DECODE(CONN_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1315. " '0' AS DOOR, \r\n"
  1316. " 0 AS CBOX_TMPR, \r\n"
  1317. " A.UPDT_DT AS STS00, \r\n"
  1318. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1319. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1320. " FROM TB_CCTV_CTLR_STTS A, TB_CCTV_CTLR B \r\n"
  1321. " WHERE A.CCTV_CTLR_NMBR = B.CCTV_CTLR_NMBR \r\n"
  1322. " AND A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1323. #else
  1324. "UNION \r\n"
  1325. "SELECT 'CCTV' AS FAC_TYPE, B.CCTV_CTLR_ID AS FAC_ID, \r\n"
  1326. " CMNC_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1327. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1328. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1329. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1330. " A.UPDT_DT AS STS00, \r\n"
  1331. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1332. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1333. " FROM TB_CCTV_STTS A, TB_CCTV_CTLR B \r\n"
  1334. " WHERE A.CCTV_MNGM_NMBR = B.CCTV_MNGM_NMBR \r\n"
  1335. " AND UPDT_DT >= TO_CHAR(SYSDATE-10/1440, 'YYYYMMDDHH24MISS') \r\n"
  1336. #endif
  1337. #endif
  1338. #ifdef USE_INCCCTV
  1339. "UNION \r\n"
  1340. "SELECT 'ICAM' AS FAC_TYPE, B.CCTV_CTLR_ID AS FAC_ID, \r\n"
  1341. " CMNC_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1342. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1343. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1344. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1345. " A.UPDT_DT AS STS00, \r\n"
  1346. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1347. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1348. " FROM TB_CCTV_STTS A, VW_INC_CCTV_CTLR B \r\n"
  1349. " WHERE A.CCTV_MNGM_NMBR = B.CCTV_MNGM_NMBR \r\n"
  1350. " AND UPDT_DT >= TO_CHAR(SYSDATE-2/1440, 'YYYYMMDDHH24MISS') \r\n"
  1351. #endif
  1352. #ifdef USE_WCAM
  1353. "UNION \r\n"
  1354. "SELECT B.WCAM_TYPE_CD AS FAC_TYPE, B.WCAM_CTLR_ID AS FAC_ID, \r\n"
  1355. " CMNC_STTS_CD AS STTS_CD, 'CDS0' AS DOOR_STTS_CD, \r\n"
  1356. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '0') AS COMM, \r\n"
  1357. " '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1358. " A.UPDT_DT AS STS00, \r\n"
  1359. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1360. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1361. " FROM TB_WCAM_CTLR_STTS A, TB_WCAM_CTLR B \r\n"
  1362. " WHERE A.WCAM_CTLR_NMBR = B.WCAM_CTLR_NMBR \r\n"
  1363. " AND A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1364. #endif
  1365. #ifdef USE_CCAM
  1366. "UNION \r\n"
  1367. "SELECT 'CCAM' AS FAC_TYPE, B.CCAM_CTLR_ID AS FAC_ID, \r\n"
  1368. " CMNC_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1369. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1370. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1371. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1372. " A.UPDT_DT AS STS00, \r\n"
  1373. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1374. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1375. " FROM TB_CCAM_CTLR_STTS A, TB_CCAM_CTLR B \r\n"
  1376. " WHERE A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1377. " AND A.CCAM_CTLR_NMBR = B.CCAM_CTLR_NMBR \r\n"
  1378. #endif
  1379. #ifdef USE_VMS
  1380. #if 1
  1381. "UNION \r\n"
  1382. "SELECT 'VMS' AS FAC_TYPE, B.VMS_CTLR_ID AS FAC_ID, \r\n"
  1383. " CMNC_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1384. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1385. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1386. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1387. " A.UPDT_DT AS STS00, \r\n"
  1388. " DECODE(A.PWER_STTS_CD, 'MOS0', '0', '1') AS STS01, \r\n"
  1389. " DECODE(A.MODL_STTS_CD, 'MOS0', '0', '1') AS STS02, \r\n"
  1390. " '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1391. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1392. " FROM TB_VMS_CTLR_STTS A, TB_VMS_CTLR B \r\n"
  1393. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n"
  1394. " AND A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1395. #else
  1396. "UNION \r\n"
  1397. "SELECT 'VMS' AS FAC_TYPE, B.VMS_CTLR_ID AS FAC_ID, \r\n"
  1398. " CONN_STTS_CD AS STTS_CD, CBOXDOOR_OPEN_STTS_CD AS DOOR_STTS_CD, \r\n"
  1399. " DECODE(CONN_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1400. " DECODE(CBOXDOOR_OPEN_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1401. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1402. " A.RGST_DT AS STS00, \r\n"
  1403. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1404. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1405. " FROM TB_VMS_STTS_PRST A, TB_VMS_CTLR B \r\n"
  1406. " WHERE A.VMS_CTLR_NMBR = B.VMS_CTLR_NMBR \r\n"
  1407. " AND A.RGST_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1408. #endif
  1409. #endif
  1410. #ifdef USE_VDS
  1411. "UNION \r\n"
  1412. "SELECT 'VDS' AS FAC_TYPE, B.VDS_CTLR_ID AS FAC_ID, \r\n"
  1413. " CMNC_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1414. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1415. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1416. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1417. " A.UPDT_DT AS STS00, \r\n"
  1418. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1419. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1420. " FROM TB_VDS_CTLR_STTS A, TB_VDS_CTLR B \r\n"
  1421. " WHERE A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1422. " AND A.VDS_CTLR_NMBR = B.VDS_CTLR_NMBR \r\n"
  1423. #endif
  1424. #ifdef USE_AVI
  1425. "UNION \r\n"
  1426. "SELECT 'AVI' AS FAC_TYPE, B.AVI_ID AS FAC_ID, \r\n"
  1427. " CONN_STTS_CD AS STTS_CD, CBOX_DOOR_STTS_CD AS DOOR_STTS_CD, \r\n"
  1428. " DECODE(CONN_STTS_CD, 'CMS0', '0', 'CMS1', '1', '2') AS COMM, \r\n"
  1429. " DECODE(CBOX_DOOR_STTS_CD, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1430. " NVL(A.CBOX_TMPR, 0) AS CBOX_TMPR, \r\n"
  1431. " A.UPDT_DT AS STS00, \r\n"
  1432. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1433. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1434. " FROM TB_AVI_CTLR_STTS A, TB_AVI_CTLR B \r\n"
  1435. " WHERE A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1436. " AND A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n"
  1437. #endif
  1438. #ifdef USE_DSRC
  1439. "UNION \r\n"
  1440. "SELECT 'DSRC' AS FAC_TYPE, B.RSE_ID AS FAC_ID, \r\n"
  1441. " DECODE(CMNC_STTS, '0', 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1442. " DECODE(CNTL_DEVC_STTS, '0', 'CDS0', '4', 'CDS0', 'CDS1') AS DOOR_STTS_CD, \r\n"
  1443. " DECODE(CMNC_STTS, '0', '0', '1') AS COMM, \r\n"
  1444. " '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1445. " A.CLCT_DT AS STS00, \r\n"
  1446. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1447. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1448. " FROM TB_RSE_STTS_PNST A, TB_RSE_MSTR B \r\n"
  1449. " WHERE A.CLCT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1450. " AND A.ID = B.ID \r\n"
  1451. #endif
  1452. #ifdef USE_RSE
  1453. "UNION \r\n"
  1454. "SELECT 'RSE' AS FAC_TYPE, B.RSEID AS FAC_ID, \r\n"
  1455. " 'CMS0' AS STTS_CD, 'CDS0' AS DOOR_STTS_CD, \r\n"
  1456. " '0' AS COMM, '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1457. " TO_CHAR(A.COLLDT, 'YYYYMMDDHH24MISS') AS STS00, \r\n"
  1458. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1459. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1460. " FROM RSEOPSTATE A, RSEMST B \r\n"
  1461. " WHERE B.RSEID = A.RSEID \r\n"
  1462. " AND A.COLLDT > SYSDATE - 30/1440 \r\n"
  1463. #endif
  1464. #ifdef USE_BIT
  1465. "UNION \r\n"
  1466. "SELECT 'BIT' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, \r\n"
  1467. " CONN_STATE AS STTS_CD, 'CDS0' AS DOOR_STTS_CD, \r\n"
  1468. " DECODE(CONN_STATE, 'CMS0', '0', '1') AS COMM, \r\n"
  1469. " '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1470. " UPDATE_DT AS STS00, \r\n"
  1471. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1472. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1473. " FROM VW_BIT_STATUS \r\n"
  1474. #endif
  1475. #ifdef USE_SIG
  1476. "UNION \r\n"
  1477. "SELECT 'SIG' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, \r\n"
  1478. " CONN_STATE AS STTS_CD, DOOR_STATE AS DOOR_STTS_CD, \r\n"
  1479. " DECODE(CONN_STATE, 'CMS0', '0', '1') AS COMM, \r\n"
  1480. " DECODE(DOOR_STATE, 'CDS0', '0', 'CDS1', '1', '0') AS DOOR, \r\n"
  1481. " 0 AS CBOX_TMPR, \r\n"
  1482. " UPDATE_DT AS STS00, \r\n"
  1483. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1484. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1485. " FROM VW_SIG_CTLR_STATUS \r\n"
  1486. #endif
  1487. #ifdef USE_SIGDET
  1488. "UNION \r\n"
  1489. "SELECT 'LVD' AS FAC_TYPE, FCLT_ID AS FAC_ID, \r\n"
  1490. " DECODE(DISCONN_STATE, 'STS0', 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1491. " 'CDS0' AS DOOR_STTS_CD, \r\n"
  1492. " DECODE(DISCONN_STATE, 'STS0', '0', '1') AS COMM, \r\n"
  1493. " '0' AS DOOR, 0 AS CBOX_TMPR \r\n"
  1494. " FROM VW_SIG_LVDS_STATUS \r\n"
  1495. #endif
  1496. #ifdef USE_PVMS
  1497. "UNION \r\n"
  1498. "SELECT 'PVMS' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, \r\n"
  1499. " DECODE(COMM_STATE, 0, 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1500. " DECODE(DOOR_STATE, 0, 'CDS0', 'CDS1') AS DOOR_STTS_CD, \r\n"
  1501. " DECODE(COMM_STATE, 0, '0', '1') AS COMM, '0' AS DOOR, \r\n"
  1502. " 0 AS CBOX_TMPR, \r\n"
  1503. " UPDATE_DT AS STS00, \r\n"
  1504. " '0' AS STS01, \r\n"
  1505. " TO_CHAR(POWER_STATE) AS STS02, \r\n"
  1506. " TO_CHAR(MODULE_STATE) AS STS03, \r\n"
  1507. " TO_CHAR(FAN_STATE) AS STS04, \r\n"
  1508. " TO_CHAR(HEATER_STATE) AS STS05, \r\n"
  1509. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1510. " FROM VW_PIS_VMS_STATUS \r\n"
  1511. #endif
  1512. #ifdef USE_PVDS
  1513. "UNION \r\n"
  1514. "SELECT 'PVMS' AS FAC_TYPE, TO_CHAR(FCLT_ID) AS FAC_ID, \r\n"
  1515. " DECODE(COMM_STATE, '0', 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1516. " 'CDS0' AS DOOR_STTS_CD, \r\n"
  1517. " DECODE(COMM_STATE, '0', '0', '1') AS COMM, '0' AS DOOR, \r\n"
  1518. " 0 AS CBOX_TMPR, \r\n"
  1519. " UPDATE_DT AS STS00, \r\n"
  1520. " TO_CHAR(CONT_STATE) AS STS01, \r\n"
  1521. " '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1522. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1523. " FROM VW_PIS_CONT_STATUS \r\n"
  1524. #endif
  1525. #ifdef USE_PARK2
  1526. "UNION \r\n"
  1527. "SELECT 'PARK' AS FAC_TYPE, B.PRLT_CTLR_ID AS FAC_ID, \r\n"
  1528. " DECODE(CMNC_STTS_CD, 'CMS0', 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1529. " 'CDS0' AS DOOR_STTS_CD, \r\n"
  1530. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '0') AS COMM, \r\n"
  1531. " '0' AS DOOR, \r\n"
  1532. " 0 AS CBOX_TMPR, \r\n"
  1533. " A.UPDT_DT AS STS00, \r\n"
  1534. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1535. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1536. " FROM TB_PRLT_CTLR_STTS A, TB_PRLT_CTLR B \r\n"
  1537. " WHERE A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1538. " AND A.PRLT_CTLR_NMBR = B.PRLT_CTLR_NMBR \r\n"
  1539. #endif
  1540. #ifdef USE_PARK
  1541. "UNION \r\n"
  1542. "SELECT 'PARK' AS FAC_TYPE, B.prk_plce_manage_no AS FAC_ID, \r\n"
  1543. " DECODE(CMNC_STTS_CD, 'CMS0', 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1544. " 'CDS0' AS DOOR_STTS_CD, \r\n"
  1545. " DECODE(CMNC_STTS_CD, 'CMS0', '0', 'CMS1', '1', '0') AS COMM, \r\n"
  1546. " '0' AS DOOR, \r\n"
  1547. " 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_PRK_PLCE_STTS A, TB_PRK_PLCE B \r\n"
  1552. " WHERE A.UPDT_DT >= TO_CHAR(SYSDATE-5/1440, 'YYYYMMDDHH24MISS') \r\n"
  1553. " AND A.prk_plce_nmbr = B.prk_plce_nmbr \r\n"
  1554. #endif
  1555. #ifdef USE_CROSS
  1556. "UNION \r\n"
  1557. "SELECT 'CRSCAM' AS FAC_TYPE, A.CAM_ID AS FAC_ID, \r\n"
  1558. " DECODE(A.STATUS, 1, 'CMS0', 'CMS1') AS STTS_CD, \r\n"
  1559. " 'CDS0' AS DOOR_STTS_CD, \r\n"
  1560. " DECODE(A.STATUS, 1, '0', '1') AS COMM, \r\n"
  1561. " '0' AS DOOR, 0 AS CBOX_TMPR, \r\n"
  1562. " TO_CHAR(A.CAP_DATE, 'YYYYMMDDHH24MISS') AS STS00, \r\n"
  1563. " '0' AS STS01, '0' AS STS02, '0' AS STS03, '0' AS STS04, '0' AS STS05, \r\n"
  1564. " '0' AS STS06, '0' AS STS07, '0' AS STS08, '0' AS STS09, '0' AS STS10 \r\n"
  1565. " FROM COL_CCAM_STATUS A \r\n"
  1566. " WHERE A.CAP_DATE > SYSDATE - 10/1440 \r\n"
  1567. #endif
  1568. ;
  1569. try
  1570. {
  1571. TItsFacility *pFacility = NULL;
  1572. ItsFacilityManager->FLists.Lock();
  1573. FOR_STL(TItsFacility*, pObj, ItsFacilityManager->FLists)
  1574. {
  1575. pObj->FCollCntBase = 0;
  1576. pObj->FCollCntCurr = 0;
  1577. //수집시간내에 조회되는것은 수집오류가 아니므로 초기에 수집오류로 설정
  1578. if (pObj->FCLT_TYPE == "VDS" ||
  1579. pObj->FCLT_TYPE == "AVI" ||
  1580. pObj->FCLT_TYPE == "DSRC")
  1581. {
  1582. pObj->FCollError = true;
  1583. //pObj->FCollError = false;
  1584. }
  1585. else
  1586. {
  1587. pObj->FCollError = false;
  1588. }
  1589. pObj->FComm = str_state_error;
  1590. pObj->FDoor = str_state_normal;
  1591. pObj->FCommStatus = "CMS1";
  1592. pObj->FDoorStatus = "CDS0";
  1593. #if 0
  1594. if (pObj->FCLT_TYPE == "CCTV" ||
  1595. pObj->FCLT_TYPE == "VMS" ||
  1596. pObj->FCLT_TYPE == "VDS" ||
  1597. pObj->FCLT_TYPE == "AVI")
  1598. {
  1599. pObj->FCBoxTmpr = "?";
  1600. }
  1601. else
  1602. {
  1603. pObj->FCBoxTmpr = "-";
  1604. }
  1605. #else
  1606. pObj->FCBoxTmpr = 0;
  1607. #endif
  1608. #ifdef USE_CROSS
  1609. // 교차로교통량 상태정보 정상으로 초기화 한다.(교차로교통량은 교차로위치를 표출하는 것이다.)
  1610. if (pObj->FCLT_TYPE == "CRS") //교차로교통량
  1611. {
  1612. pObj->FComm = str_state_normal;
  1613. pObj->FDoor = str_state_normal;
  1614. pObj->FCommStatus = "CMS0";
  1615. pObj->FDoorStatus = "CDS0";
  1616. }
  1617. #endif
  1618. }
  1619. //상태정보를 읽어오기전에 상태정보 통계데이터를 초기화한다.
  1620. FOR_STL(TFacilityStatus*, pStatus, ItsFacilityManager->FListStatus)
  1621. {
  1622. //pStatus->Total = 0; 전체 수량은 초기화하지 않는다.
  1623. pStatus->Normal = 0;
  1624. pStatus->Error = 0;
  1625. pStatus->Module = 0;
  1626. pStatus->Collect= 0;
  1627. }
  1628. try
  1629. {
  1630. int nORD;
  1631. pADO = new TADOQuery(NULL);
  1632. pADO->Close();
  1633. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1634. pADO->SQL->Clear();
  1635. pADO->SQL->Text = sQry;
  1636. pADO->Prepared = true;
  1637. pADO->Open();
  1638. //int nRows = pADO->RecordCount;
  1639. for( ; !pADO->Eof; pADO->Next())
  1640. {
  1641. String sId = pADO->FieldByName("FAC_ID")->AsString;
  1642. pFacility = ItsFacilityManager->FLists.Find(sId);
  1643. if (!pFacility) continue;
  1644. pFacility->FCommStatus = pADO->FieldByName("STTS_CD")->AsString;
  1645. pFacility->FDoorStatus = pADO->FieldByName("DOOR_STTS_CD")->AsString;
  1646. pFacility->FComm = pADO->FieldByName("COMM")->AsString;
  1647. pFacility->FDoor = pADO->FieldByName("DOOR")->AsString;
  1648. pFacility->Sts00 = pADO->FieldByName("STS00")->AsString;
  1649. pFacility->Sts01 = pADO->FieldByName("STS01")->AsString;
  1650. pFacility->Sts02 = pADO->FieldByName("STS02")->AsString;
  1651. pFacility->Sts03 = pADO->FieldByName("STS03")->AsString;
  1652. pFacility->Sts04 = pADO->FieldByName("STS04")->AsString;
  1653. pFacility->Sts05 = pADO->FieldByName("STS05")->AsString;
  1654. pFacility->Sts06 = pADO->FieldByName("STS06")->AsString;
  1655. pFacility->Sts07 = pADO->FieldByName("STS07")->AsString;
  1656. pFacility->Sts08 = pADO->FieldByName("STS08")->AsString;
  1657. pFacility->Sts09 = pADO->FieldByName("STS09")->AsString;
  1658. pFacility->Sts10 = pADO->FieldByName("STS10")->AsString;
  1659. //if (pFacility->FCLT_TYPE == "CCTV" ||
  1660. // pFacility->FCLT_TYPE == "VMS" ||
  1661. // pFacility->FCLT_TYPE == "VDS" ||
  1662. // pFacility->FCLT_TYPE == "AVI")
  1663. //{
  1664. // pFacility->FCBoxTmpr = pADO->FieldByName("CBOX_TMPR")->AsString;
  1665. //}
  1666. pFacility->FCBoxTmpr = pADO->FieldByName("CBOX_TMPR")->AsInteger;
  1667. if (pFacility->FComm == str_state_normal)
  1668. {
  1669. //통신이 정상인데 함체문이 열려있으면 모듈이상으로 처리
  1670. #if 0
  1671. if (pFacility->FDoor == "1")
  1672. pFacility->FComm = str_state_module; //모듈이상(함체문 열림)
  1673. #endif
  1674. }
  1675. }
  1676. //수집데이터를 처리하구 수집오류=false로 설정함
  1677. #ifdef USE_DSRC
  1678. LoadDsrcCollectStatusFromDb(ADbConn);
  1679. #endif
  1680. #ifdef USE_VDS
  1681. LoadVdsCollectStatusFromDb(ADbConn);
  1682. #endif
  1683. #ifdef USE_AVI
  1684. LoadAviCollectStatusFromDb(ADbConn);
  1685. #endif
  1686. #ifdef USE_PARK
  1687. LoadParkSensorStatusFromDb(ADbConn);
  1688. #endif
  1689. #ifdef USE_CROSS
  1690. // 교차로교통량, 교차로교통량 CCTV의 상태정보를 참조하여 교차로교통량 상태정보를 업데이트 한다.
  1691. // 교차로교통량 상태정보는 정상으로 초기화 하였다.
  1692. if (CrossManager != NULL)
  1693. {
  1694. FOR_STL(TCross*, pObj, CrossManager->FLists)
  1695. {
  1696. FOR_STL(TCrossCam*, pCam, pObj->FLists)
  1697. {
  1698. pFacility = ItsFacilityManager->FLists.Find(pCam->CTLR_NMBR);
  1699. if (pFacility && pFacility->FComm != str_state_normal)
  1700. {
  1701. TItsFacility *pTrfCross = ItsFacilityManager->FLists.Find(pObj->CTLR_NMBR);
  1702. if (pTrfCross)
  1703. {
  1704. pTrfCross->FComm = str_state_error;
  1705. }
  1706. break;
  1707. }
  1708. }
  1709. }
  1710. }
  1711. #endif
  1712. }
  1713. catch(EDatabaseError &E)
  1714. {
  1715. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1716. DBERRORLOG("TItsFacilityManager::LoadFacilityStatusFromDb", String(E.ClassName()), E.Message, sQry);
  1717. return false;
  1718. throw Exception(String(E.ClassName()) + E.Message);
  1719. }
  1720. catch(Exception &exception)
  1721. {
  1722. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1723. DBERRORLOG("TItsFacilityManager::LoadFacilityStatusFromDb", String(exception.ClassName()), exception.Message, sQry);
  1724. return false;
  1725. throw Exception(String(exception.ClassName()) + exception.Message);
  1726. }
  1727. }
  1728. __finally
  1729. {
  1730. // 상태정보를 최종 체크한다.
  1731. TFacilityStatus *pStatus;
  1732. FOR_STL(TItsFacility*, pTmpObj, ItsFacilityManager->FLists)
  1733. {
  1734. String FCLT_TYPE = pTmpObj->FCLT_TYPE;
  1735. #if 0
  1736. if (FCLT_TYPE == "VDS" && pTmpObj->FCLT_KIND == "C")
  1737. {
  1738. FCLT_TYPE = "CRSSVR";
  1739. }
  1740. #endif
  1741. pStatus = ItsFacilityManager->FListStatus.Find(FCLT_TYPE);
  1742. if (!pStatus) continue;
  1743. if (FCLT_TYPE == "PARK" && pTmpObj->FCLT_KIND == "N")
  1744. {
  1745. //주차장이면서 실시간정보를 제공하지않는경우 통신정상으로 설정
  1746. pTmpObj->FComm = str_state_default;
  1747. continue;
  1748. }
  1749. if (pTmpObj->FComm == str_state_error) pStatus->Error++;
  1750. else if (pTmpObj->FComm == str_state_module) pStatus->Module++;
  1751. else if (pTmpObj->FComm == str_state_sensor) pStatus->Module++;
  1752. if (pTmpObj->FComm != str_state_error)
  1753. {
  1754. //통신이상이 아닌 경우 수집이상인 경우 수집이상 갯수를 증가시킨다.
  1755. if (pTmpObj->FCollError)
  1756. {
  1757. pStatus->Collect++;
  1758. pTmpObj->FComm = str_state_collect;
  1759. }
  1760. }
  1761. }
  1762. if (pADO)
  1763. {
  1764. pADO->Close();
  1765. delete pADO;
  1766. }
  1767. //각각의 제어기에 대한 상태정보를 업데이트 한다.
  1768. TItsFacility *pFacility;
  1769. FOR_STL(TWCamCtlr*, pObj, WCamCtlrManager->FLists)
  1770. {
  1771. if (pObj->DEL_YN == "Y") continue;
  1772. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  1773. if (pFacility)
  1774. {
  1775. pObj->STATE.Comm = pFacility->FComm != str_state_error ? wcam_normal : wcam_error;
  1776. }
  1777. }
  1778. FOR_STL(TCCamCtlr*, pObj, CCamCtlrManager->FLists)
  1779. {
  1780. if (pObj->DEL_YN == "Y") continue;
  1781. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  1782. if (pFacility)
  1783. {
  1784. pObj->STATE.Comm = pFacility->FComm != str_state_error ? ccam_normal : ccam_error;
  1785. }
  1786. }
  1787. FOR_STL(TVdsCtlr*, pObj, VdsCtlrManager->FLists)
  1788. {
  1789. if (pObj->DEL_YN == "Y") continue;
  1790. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  1791. if (pFacility)
  1792. {
  1793. pObj->STATE.Comm = pFacility->FComm != str_state_error ? vds_normal : vds_error;
  1794. }
  1795. }
  1796. FOR_STL(TVmsCtlr*, pObj, VmsCtlrManager->FLists)
  1797. {
  1798. if (pObj->DEL_YN == "Y") continue;
  1799. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  1800. if (pFacility)
  1801. {
  1802. pObj->STATE.Comm = pFacility->FComm != str_state_error ? vms_comm_normal : vms_comm_error;
  1803. }
  1804. }
  1805. FOR_STL(TPrltCtlr*, pObj, PrltCtlrManager->FLists)
  1806. {
  1807. if (pObj->DEL_YN == "Y") continue;
  1808. pFacility = ItsFacilityManager->FLists.Find(pObj->PRLT_CTLR_ID);
  1809. if (pFacility)
  1810. {
  1811. pObj->STATE.Comm = pFacility->FComm != str_state_error ? park_comm_normal : park_comm_error;
  1812. }
  1813. }
  1814. FOR_STL(TPrkPlce*, pObj, PrkPlceManager->FLists)
  1815. {
  1816. if (pObj->DEL_YN == "Y") continue;
  1817. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  1818. if (pFacility)
  1819. {
  1820. pObj->STATE.Comm = pFacility->FComm != str_state_error ? park_comm_normal : park_comm_error;
  1821. }
  1822. }
  1823. FOR_STL(TItsDsrc*, pObj, ItsDsrcManager->FLists)
  1824. {
  1825. if (pObj->DEL_YN == "Y") continue;
  1826. pFacility = ItsFacilityManager->FLists.Find(pObj->CTLR_ID);
  1827. if (pFacility)
  1828. {
  1829. pObj->STATE.Comm = pFacility->FComm != str_state_error ? dsrc_normal : dsrc_error;
  1830. }
  1831. }
  1832. ItsFacilityManager->FLists.UnLock();
  1833. }
  1834. return bResult;
  1835. }
  1836. //---------------------------------------------------------------------------
  1837. bool TItsFacilityManager::LoadDsrcCollectStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  1838. {
  1839. String sQry;
  1840. TADOQuery *pADO = NULL;
  1841. #ifndef USE_DSRC
  1842. return true;
  1843. #endif
  1844. sQry = "SELECT DISTINCT B.RSE_ID \r\n"
  1845. " FROM TB_RSE_OBU_CLCT_PNST A, \r\n"
  1846. " TB_RSE_MSTR B \r\n"
  1847. " WHERE A.CLCT_DT > TO_CHAR(SYSDATE-1/24, 'YYYYMMDDHH24MISS') \r\n"
  1848. " AND A.ID = B.ID \r\n";
  1849. try
  1850. {
  1851. TItsFacility *pFacility = NULL;
  1852. try
  1853. {
  1854. int nORD;
  1855. pADO = new TADOQuery(NULL);
  1856. pADO->Close();
  1857. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1858. pADO->SQL->Clear();
  1859. pADO->SQL->Text = sQry;
  1860. pADO->Prepared = true;
  1861. pADO->Open();
  1862. for( ; !pADO->Eof; pADO->Next())
  1863. {
  1864. String sDsrcId = pADO->FieldByName("RSE_ID")->AsString;
  1865. pFacility = ItsFacilityManager->FLists.Find(sDsrcId);
  1866. if (!pFacility) continue;
  1867. pFacility->FCollError = false;
  1868. }
  1869. }
  1870. catch(EDatabaseError &E)
  1871. {
  1872. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1873. DBERRORLOG("TItsFacilityManager::LoadDsrcCollectStatusFromDb", String(E.ClassName()), E.Message, sQry);
  1874. throw Exception(String(E.ClassName()) + E.Message);
  1875. }
  1876. catch(Exception &exception)
  1877. {
  1878. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1879. DBERRORLOG("TItsFacilityManager::LoadDsrcCollectStatusFromDb", String(exception.ClassName()), exception.Message, sQry);
  1880. throw Exception(String(exception.ClassName()) + exception.Message);
  1881. }
  1882. }
  1883. __finally
  1884. {
  1885. if (pADO)
  1886. {
  1887. pADO->Close();
  1888. delete pADO;
  1889. }
  1890. }
  1891. return true;
  1892. }
  1893. //---------------------------------------------------------------------------
  1894. bool TItsFacilityManager::LoadVdsCollectStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  1895. {
  1896. String sQry;
  1897. TADOQuery *pADO = NULL;
  1898. #ifndef USE_VDS
  1899. return true;
  1900. #endif
  1901. sQry = "SELECT DISTINCT C.VDS_CTLR_ID AS VDS_CTLR_ID \r\n"
  1902. " FROM TB_VDS_DTCT_CLCT_PNST A, \r\n"
  1903. " TB_VDS_DTCT B, \r\n"
  1904. " TB_VDS_CTLR C \r\n"
  1905. " WHERE A.CLCT_DT > TO_CHAR(SYSDATE-10/1440, 'YYYYMMDDHH24MISS') \r\n"
  1906. " AND A.VDS_DTCT_NMBR = B.VDS_DTCT_NMBR \r\n"
  1907. " AND B.VDS_CTLR_NMBR = C.VDS_CTLR_NMBR \r\n";
  1908. try
  1909. {
  1910. TItsFacility *pFacility = NULL;
  1911. try
  1912. {
  1913. int nORD;
  1914. pADO = new TADOQuery(NULL);
  1915. pADO->Close();
  1916. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1917. pADO->SQL->Clear();
  1918. pADO->SQL->Text = sQry;
  1919. pADO->Prepared = true;
  1920. pADO->Open();
  1921. pADO->First();
  1922. for( ; !pADO->Eof; pADO->Next())
  1923. {
  1924. String sVdsId = pADO->FieldByName("VDS_CTLR_ID")->AsString;
  1925. pFacility = ItsFacilityManager->FLists.Find(sVdsId);
  1926. if (!pFacility) continue;
  1927. pFacility->FCollError = false;
  1928. }
  1929. }
  1930. catch(EDatabaseError &E)
  1931. {
  1932. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1933. DBERRORLOG("TItsFacilityManager::LoadVdsCollectStatusFromDb", String(E.ClassName()), E.Message, sQry);
  1934. throw Exception(String(E.ClassName()) + E.Message);
  1935. }
  1936. catch(Exception &exception)
  1937. {
  1938. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1939. DBERRORLOG("TItsFacilityManager::LoadVdsCollectStatusFromDb", String(exception.ClassName()), exception.Message, sQry);
  1940. throw Exception(String(exception.ClassName()) + exception.Message);
  1941. }
  1942. }
  1943. __finally
  1944. {
  1945. if (pADO)
  1946. {
  1947. pADO->Close();
  1948. delete pADO;
  1949. }
  1950. }
  1951. return true;
  1952. }
  1953. //---------------------------------------------------------------------------
  1954. bool TItsFacilityManager::LoadAviCollectStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  1955. {
  1956. String sQry;
  1957. TADOQuery *pADO = NULL;
  1958. #ifndef USE_AVI
  1959. return true;
  1960. #endif
  1961. sQry = "SELECT A.AVI_CTLR_MNGM_NMBR, B.AVI_ID \r\n"
  1962. " FROM TB_AVI_PASS_VHCL_PNST A, \r\n"
  1963. " TB_AVI_CTLR B \r\n"
  1964. " WHERE A.CRTN_DT > TO_CHAR(SYSDATE-1/24, 'YYYYMMDDHH24MISS') \r\n"
  1965. " AND A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR \r\n";
  1966. try
  1967. {
  1968. TItsFacility *pFacility = NULL;
  1969. try
  1970. {
  1971. int nORD;
  1972. pADO = new TADOQuery(NULL);
  1973. pADO->Close();
  1974. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  1975. pADO->SQL->Clear();
  1976. pADO->SQL->Text = sQry;
  1977. pADO->Prepared = true;
  1978. pADO->Open();
  1979. pADO->First();
  1980. for( ; !pADO->Eof; pADO->Next())
  1981. {
  1982. String sAviId = pADO->FieldByName("AVI_ID")->AsString;
  1983. pFacility = ItsFacilityManager->FLists.Find(sAviId);
  1984. if (!pFacility) continue;
  1985. pFacility->FCollError = false;
  1986. }
  1987. }
  1988. catch(EDatabaseError &E)
  1989. {
  1990. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1991. DBERRORLOG("TItsFacilityManager::LoadAviCollectStatusFromDb", String(E.ClassName()), E.Message, sQry);
  1992. throw Exception(String(E.ClassName()) + E.Message);
  1993. }
  1994. catch(Exception &exception)
  1995. {
  1996. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  1997. DBERRORLOG("TItsFacilityManager::LoadAviCollectStatusFromDb", String(exception.ClassName()), exception.Message, sQry);
  1998. throw Exception(String(exception.ClassName()) + exception.Message);
  1999. }
  2000. }
  2001. __finally
  2002. {
  2003. if (pADO)
  2004. {
  2005. pADO->Close();
  2006. delete pADO;
  2007. }
  2008. }
  2009. return true;
  2010. }
  2011. //---------------------------------------------------------------------------
  2012. bool TItsFacilityManager::LoadParkSensorStatusFromDb(TADOConnection *ADbConn/*=NULL*/)
  2013. {
  2014. String sQry;
  2015. TADOQuery *pADO = NULL;
  2016. #ifndef USE_PARK
  2017. return true;
  2018. #endif
  2019. sQry = "SELECT A.PRK_PLCE_NMBR, A.PRK_PLCE_MANAGE_NO, A.CMNC_STTS_CD, DECODE(A.CMNC_STTS_CD, 0, NVL(B.SENSOR_STTS, 0), 0) AS SENSOR_STTS \r\n"
  2020. " FROM (SELECT A.PRK_PLCE_NMBR, A.PRK_PLCE_MANAGE_NO, DECODE(NVL(B.CMNC_STTS_CD, 'CMS1'), 'CMS0', 0, 1) AS CMNC_STTS_CD \r\n"
  2021. " FROM TB_PRK_PLCE A \r\n"
  2022. " LEFT OUTER JOIN TB_PRK_PLCE_STTS B \r\n"
  2023. " ON A.PRK_PLCE_NMBR = B.PRK_PLCE_NMBR \r\n"
  2024. " AND A.DEL_YN = 'N') A \r\n"
  2025. " LEFT OUTER JOIN (SELECT A.PRK_PLCE_NMBR, COUNT(1) AS SENSOR_STTS \r\n"
  2026. " FROM TB_PRK_PLCE_DEV A, TB_PRK_PLCE_FLR_DEV B \r\n"
  2027. " WHERE A.PRK_PLCE_NMBR = B.PRK_PLCE_NMBR \r\n"
  2028. " AND A.DEVICE_ID = B.DEVICE_ID \r\n"
  2029. " AND A.CONNECTED = 0 \r\n"
  2030. " GROUP BY A.PRK_PLCE_NMBR) B \r\n"
  2031. " ON A.PRK_PLCE_NMBR = B.PRK_PLCE_NMBR \r\n";
  2032. try
  2033. {
  2034. TItsFacility *pFacility = NULL;
  2035. try
  2036. {
  2037. int nORD;
  2038. pADO = new TADOQuery(NULL);
  2039. pADO->Close();
  2040. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  2041. pADO->SQL->Clear();
  2042. pADO->SQL->Text = sQry;
  2043. pADO->Prepared = true;
  2044. pADO->Open();
  2045. pADO->First();
  2046. for( ; !pADO->Eof; pADO->Next())
  2047. {
  2048. String sCtlrId = pADO->FieldByName("PRK_PLCE_MANAGE_NO")->AsString;
  2049. int nSeosor = pADO->FieldByName("SENSOR_STTS")->AsInteger;
  2050. //if (nSeosor > 0) continue;
  2051. pFacility = ItsFacilityManager->FLists.Find(sCtlrId);
  2052. if (!pFacility) continue;
  2053. if (pFacility->FCommStatus == "CMS0") {
  2054. pFacility->FCollError = (nSeosor == 0) ? false : true;
  2055. if (pFacility->FCollError) {
  2056. pFacility->FComm = str_state_sensor;
  2057. }
  2058. pFacility->FCollError = false;
  2059. }
  2060. }
  2061. }
  2062. catch(EDatabaseError &E)
  2063. {
  2064. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  2065. DBERRORLOG("TItsFacilityManager::LoadParkSensorStatusFromDb", String(E.ClassName()), E.Message, sQry);
  2066. throw Exception(String(E.ClassName()) + E.Message);
  2067. }
  2068. catch(Exception &exception)
  2069. {
  2070. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  2071. DBERRORLOG("TItsFacilityManager::LoadParkSensorStatusFromDb", String(exception.ClassName()), exception.Message, sQry);
  2072. throw Exception(String(exception.ClassName()) + exception.Message);
  2073. }
  2074. }
  2075. __finally
  2076. {
  2077. if (pADO)
  2078. {
  2079. pADO->Close();
  2080. delete pADO;
  2081. }
  2082. }
  2083. return true;
  2084. }
  2085. //---------------------------------------------------------------------------
  2086. bool TItsFacilityManager::LoadDsrcCollectStatusFromDb_OLD(TADOConnection *ADbConn/*=NULL*/)
  2087. {
  2088. String sQry;
  2089. TADOQuery *pADO = NULL;
  2090. #ifndef USE_DSRC
  2091. return true;
  2092. #endif
  2093. sQry = "SELECT X.ID, X.RSE_ID, X.CLCT_ABNR_BASI, \r\n"
  2094. " Y.STAT_DT, NVL(Y.CLCT_NUM, 0) AS CLCT_NUM \r\n"
  2095. " FROM (SELECT M.ID, M.RSE_ID, M.CLCT_ABNR_BASI \r\n"
  2096. " FROM TB_RSE_MSTR M \r\n"
  2097. " WHERE M.DEL_YN <> 'Y' \r\n"
  2098. " ) X, \r\n"
  2099. " (SELECT P.ID, P.STAT_DT, P.CLCT_NUM \r\n"
  2100. " FROM TB_RSE_OBU_CLCT_HH_PNST P \r\n"
  2101. " WHERE P.STAT_DT >= TO_CHAR(SYSDATE-2/1440, 'YYYYMMDDHH24MISS') \r\n"
  2102. " ) Y \r\n"
  2103. " WHERE X.ID = Y.ID(+) \r\n";
  2104. #if 0
  2105. sQry = "SELECT X.ID, X.RSE_ID, X.CLCT_ABNR_BASI, \r\n"
  2106. " Y.STAT_DT, NVL(Y.CLCT_NUM, 0) AS CLCT_NUM \r\n"
  2107. " FROM (SELECT M.ID, M.RSE_ID, M.CLCT_ABNR_BASI \r\n"
  2108. " FROM TB_RSE_MSTR M \r\n"
  2109. " WHERE M.DEL_YN <> 'Y' \r\n"
  2110. " ) X, \r\n"
  2111. " (SELECT ID, STAT_DT, CLCT_NUM \r\n"
  2112. " FROM TB_RSE_OBU_CLCT_HH_PNST \r\n"
  2113. " WHERE (ID, STAT_DT) IN (SELECT P.ID, MAX(P.STAT_DT) \r\n"
  2114. " FROM TB_RSE_OBU_CLCT_HH_PNST P \r\n"
  2115. " WHERE P.STAT_DT >= TO_CHAR(SYSDATE-2/1440, 'YYYYMMDDHH24MISS') \r\n"
  2116. " GROUP BY P.ID) \r\n"
  2117. " ) Y \r\n"
  2118. " WHERE X.ID = Y.ID(+) \r\n";
  2119. #endif
  2120. try
  2121. {
  2122. TItsFacility *pFacility = NULL;
  2123. try
  2124. {
  2125. int nORD;
  2126. pADO = new TADOQuery(NULL);
  2127. pADO->Close();
  2128. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  2129. pADO->SQL->Clear();
  2130. pADO->SQL->Text = sQry;
  2131. pADO->Prepared = true;
  2132. pADO->Open();
  2133. //int nRows = pADO->RecordCount;
  2134. for( ; !pADO->Eof; pADO->Next())
  2135. {
  2136. String sId = pADO->FieldByName("RSE_ID")->AsString;
  2137. pFacility = ItsFacilityManager->FLists.Find(sId);
  2138. if (!pFacility) continue;
  2139. pFacility->FCollCntBase = pADO->FieldByName("CLCT_ABNR_BASI")->AsInteger;
  2140. pFacility->FCollCntCurr = pADO->FieldByName("CLCT_NUM")->AsInteger;
  2141. }
  2142. }
  2143. catch(EDatabaseError &E)
  2144. {
  2145. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  2146. DBERRORLOG("TItsFacilityManager::LoadDsrcCollectStatusFromDb_OLD", String(E.ClassName()), E.Message, sQry);
  2147. throw Exception(String(E.ClassName()) + E.Message);
  2148. }
  2149. catch(Exception &exception)
  2150. {
  2151. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  2152. DBERRORLOG("TItsFacilityManager::LoadDsrcCollectStatusFromDb_OLD", String(exception.ClassName()), exception.Message, sQry);
  2153. throw Exception(String(exception.ClassName()) + exception.Message);
  2154. }
  2155. }
  2156. __finally
  2157. {
  2158. if (pADO)
  2159. {
  2160. pADO->Close();
  2161. delete pADO;
  2162. }
  2163. }
  2164. return true;
  2165. }
  2166. //---------------------------------------------------------------------------
  2167. bool TItsFacilityManager::LoadAviCollectStatusFromDb_OLD(TADOConnection *ADbConn/*=NULL*/)
  2168. {
  2169. String sQry;
  2170. TADOQuery *pADO = NULL;
  2171. #ifndef USE_AVI
  2172. return true;
  2173. #endif
  2174. sQry = "SELECT A.AVI_CTLR_MNGM_NMBR, A.AVI_ID, NVL(B.COLCNT, 0) AS COLCNT \r\n"
  2175. " FROM TB_AVI_CTLR A, \r\n"
  2176. " (SELECT AVI_CTLR_MNGM_NMBR, MAX(CRTN_DT) AS CRTN_DT, COUNT(1) AS COLCNT \r\n"
  2177. " FROM TB_AVI_PASS_VHCL_PNST \r\n"
  2178. " WHERE CRTN_DT >= TO_CHAR(SYSDATE-10/1440, 'YYYYMMDDHH24MISS') \r\n"
  2179. " GROUP BY AVI_CTLR_MNGM_NMBR ) B \r\n"
  2180. " WHERE A.DEL_YN = 'N' \r\n"
  2181. " AND A.AVI_CTLR_MNGM_NMBR = B.AVI_CTLR_MNGM_NMBR(+) \r\n";
  2182. try
  2183. {
  2184. TItsFacility *pFacility = NULL;
  2185. try
  2186. {
  2187. int nORD;
  2188. pADO = new TADOQuery(NULL);
  2189. pADO->Close();
  2190. pADO->Connection = (NULL != ADbConn) ? ADbConn : ITSDb_GetConnection();
  2191. pADO->SQL->Clear();
  2192. pADO->SQL->Text = sQry;
  2193. pADO->Prepared = true;
  2194. pADO->Open();
  2195. pADO->First();
  2196. String sAviId;
  2197. int nColCnt;
  2198. for( ; !pADO->Eof; pADO->Next())
  2199. {
  2200. sAviId = pADO->FieldByName("AVI_ID")->AsString;
  2201. pFacility = ItsFacilityManager->FLists.Find(sAviId);
  2202. if (!pFacility)
  2203. {
  2204. continue;
  2205. }
  2206. nColCnt = pADO->FieldByName("COLCNT")->AsInteger;
  2207. if (nColCnt == 0)
  2208. {
  2209. if (pFacility->FComm != str_state_error)
  2210. {
  2211. pFacility->FCollError = true;
  2212. }
  2213. }
  2214. }
  2215. }
  2216. catch(EDatabaseError &E)
  2217. {
  2218. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  2219. DBERRORLOG("TItsFacilityManager::LoadAviCollectStatusFromDb_OLD", String(E.ClassName()), E.Message, sQry);
  2220. throw Exception(String(E.ClassName()) + E.Message);
  2221. }
  2222. catch(Exception &exception)
  2223. {
  2224. ::PostMessage(Application->MainForm->Handle, (UINT)(WM_USER+0xF4), (WPARAM)0xB2, (LPARAM)0xB2);
  2225. DBERRORLOG("TItsFacilityManager::LoadAviCollectStatusFromDb_OLD", String(exception.ClassName()), exception.Message, sQry);
  2226. throw Exception(String(exception.ClassName()) + exception.Message);
  2227. }
  2228. }
  2229. __finally
  2230. {
  2231. if (pADO)
  2232. {
  2233. pADO->Close();
  2234. delete pADO;
  2235. }
  2236. }
  2237. return true;
  2238. }
  2239. //---------------------------------------------------------------------------