CDSFacilityF.cpp 105 KB

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