CDSParkF.cpp 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224
  1. //---------------------------------------------------------------------------
  2. #pragma hdrstop
  3. #include "CDSParkF.h"
  4. #include "CDSCtlrF.h"
  5. #include "VmsUtilsF.h"
  6. #include "VMSCommLibF.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. //---------------------------------------------------------------------------
  10. //---------------------------------------------------------------------------
  11. TCDSPark::TCDSPark()
  12. {
  13. WHOL_NPLS = 0;
  14. GNRL_NPLS = 0;
  15. LGVH_NPLS = 0;
  16. HVVH_NPLS = 0;
  17. EMVH_NPLS = 0;
  18. HNDC_NPLS = 0;
  19. WMON_NPLS = 0;
  20. ELVH_NPLS = 0;
  21. ETC_NPLS = 0;
  22. Init();
  23. }
  24. //---------------------------------------------------------------------------
  25. TCDSPark::~TCDSPark()
  26. {
  27. }
  28. //---------------------------------------------------------------------------
  29. void TCDSPark::Init()
  30. {
  31. SUCCESS = false;
  32. TOTAL = 0;
  33. GNRL_RMND_PRZN_NUM = 0;
  34. LGVH_RMND_PRZN_NUM = 0;
  35. HVVH_RMND_PRZN_NUM = 0;
  36. EMVH_RMND_PRZN_NUM = 0;
  37. HNDC_RMND_PRZN_NUM = 0;
  38. WMON_RMND_PRZN_NUM = 0;
  39. ELVH_RMND_PRZN_NUM = 0;
  40. ETC_RMND_PRZN_NUM = 0;
  41. CNGT_DESC = "-";
  42. CNGT_LEVL = 0;
  43. }
  44. //---------------------------------------------------------------------------
  45. void TCDSPark::CalcTotal()
  46. {
  47. if (!SUCCESS) return;
  48. TOTAL = GNRL_RMND_PRZN_NUM +
  49. LGVH_RMND_PRZN_NUM +
  50. HVVH_RMND_PRZN_NUM +
  51. EMVH_RMND_PRZN_NUM +
  52. HNDC_RMND_PRZN_NUM +
  53. WMON_RMND_PRZN_NUM +
  54. ELVH_RMND_PRZN_NUM +
  55. ETC_RMND_PRZN_NUM;
  56. if (TOTAL == 0)
  57. {
  58. CNGT_DESC = "만차";
  59. CNGT_LEVL = 3;
  60. }
  61. else
  62. if (TOTAL > CNGT_NPLS)
  63. {
  64. CNGT_DESC = "원활";
  65. CNGT_LEVL = 1;
  66. }
  67. else
  68. {
  69. CNGT_DESC = "혼잡";
  70. CNGT_LEVL = 2;
  71. }
  72. }
  73. //---------------------------------------------------------------------------
  74. int TCDSPark::GetGradeColor()
  75. {
  76. switch(CNGT_LEVL)
  77. {
  78. case 1: return 2;//밝은녹색(Lime)
  79. case 2: return 4;//주황색(Orange)
  80. case 3: return 1;//적색(Red)
  81. }
  82. return 3;
  83. }
  84. //---------------------------------------------------------------------------
  85. //---------------------------------------------------------------------------
  86. TCDSParkManager *CDSParkManager = NULL;
  87. //---------------------------------------------------------------------------
  88. TCDSParkManager::TCDSParkManager()
  89. {
  90. }
  91. //---------------------------------------------------------------------------
  92. TCDSParkManager::~TCDSParkManager()
  93. {
  94. FLists.RemoveAll();
  95. }
  96. //---------------------------------------------------------------------------
  97. int TCDSParkManager::LoadFromDb(TADOConnection *ADbConn)
  98. {
  99. String sQry;
  100. TADOQuery *pADO = NULL;
  101. int nSelCnt = 0;
  102. DDBSTART;
  103. sQry = "SELECT B.*, \r\n"
  104. " A.WHOL_NPLS, \r\n"
  105. " A.GNRL_NPLS, \r\n"
  106. " A.LGVH_NPLS, \r\n"
  107. " A.HVVH_NPLS, \r\n"
  108. " A.EMVH_NPLS, \r\n"
  109. " A.HNDC_NPLS, \r\n"
  110. " A.WMON_NPLS, \r\n"
  111. " A.ELVH_NPLS, \r\n"
  112. " A.ETC_NPLS, \r\n"
  113. " A.CNGT_NPLS \r\n"
  114. " FROM TB_PRLT_CTLR A, \r\n"
  115. " (SELECT PRLT_CTLR_NMBR, \r\n"
  116. " SUM(GNRL_RMND_PRZN_NUM) AS GNRL_RMND_PRZN_NUM, \r\n"
  117. " SUM(LGVH_RMND_PRZN_NUM) AS LGVH_RMND_PRZN_NUM, \r\n"
  118. " SUM(HVVH_RMND_PRZN_NUM) AS HVVH_RMND_PRZN_NUM, \r\n"
  119. " SUM(EMVH_RMND_PRZN_NUM) AS EMVH_RMND_PRZN_NUM, \r\n"
  120. " SUM(HNDC_RMND_PRZN_NUM) AS HNDC_RMND_PRZN_NUM, \r\n"
  121. " SUM(WMON_RMND_PRZN_NUM) AS WMON_RMND_PRZN_NUM, \r\n"
  122. " SUM(ELVH_RMND_PRZN_NUM) AS ELVH_RMND_PRZN_NUM, \r\n"
  123. " SUM(ETC_RMND_PRZN_NUM) AS ETC_RMND_PRZN_NUM \r\n"
  124. " FROM TB_PRLT_RT_INFR \r\n"
  125. " WHERE UPDT_DT >= TO_CHAR(SYSDATE - 10/1440, 'YYYYMMDDHH24MISS') \r\n"
  126. " GROUP BY PRLT_CTLR_NMBR \r\n"
  127. " ) B \r\n"
  128. " WHERE A.REAL_DATA_YN = 'Y' \r\n"
  129. " AND A.DEL_YN = 'N' \r\n"
  130. " AND A.PRLT_CTLR_NMBR = B.PRLT_CTLR_NMBR \r\n";
  131. try
  132. {
  133. FOR_STL(TCDSPark*, pTmp, FLists)
  134. {
  135. pTmp->Init();
  136. }
  137. TCDSPark *pObj;
  138. try
  139. {
  140. pADO = new TADOQuery(NULL);
  141. pADO->Connection = ADbConn;
  142. SQLText(pADO, sQry, true);
  143. SQLOpen(pADO);
  144. for( ; !pADO->Eof; pADO->Next())
  145. {
  146. AnsiString PRLT_CTLR_NMBR = pADO->FieldByName("PRLT_CTLR_NMBR")->AsString;
  147. pObj = FLists.Find(PRLT_CTLR_NMBR);
  148. if (!pObj)
  149. {
  150. pObj = new TCDSPark();
  151. pObj->PRLT_CTLR_NMBR = PRLT_CTLR_NMBR;
  152. FLists.Push(pObj->PRLT_CTLR_NMBR, pObj);
  153. }
  154. pObj->GNRL_RMND_PRZN_NUM = pADO->FieldByName("GNRL_RMND_PRZN_NUM")->AsInteger;
  155. pObj->LGVH_RMND_PRZN_NUM = pADO->FieldByName("LGVH_RMND_PRZN_NUM")->AsInteger;
  156. pObj->HVVH_RMND_PRZN_NUM = pADO->FieldByName("HVVH_RMND_PRZN_NUM")->AsInteger;
  157. pObj->EMVH_RMND_PRZN_NUM = pADO->FieldByName("EMVH_RMND_PRZN_NUM")->AsInteger;
  158. pObj->HNDC_RMND_PRZN_NUM = pADO->FieldByName("HNDC_RMND_PRZN_NUM")->AsInteger;
  159. pObj->WMON_RMND_PRZN_NUM = pADO->FieldByName("WMON_RMND_PRZN_NUM")->AsInteger;
  160. pObj->ELVH_RMND_PRZN_NUM = pADO->FieldByName("ELVH_RMND_PRZN_NUM")->AsInteger;
  161. pObj->ETC_RMND_PRZN_NUM = pADO->FieldByName("ETC_RMND_PRZN_NUM")->AsInteger;
  162. pObj->WHOL_NPLS = pADO->FieldByName("WHOL_NPLS")->AsInteger;
  163. pObj->GNRL_NPLS = pADO->FieldByName("GNRL_NPLS")->AsInteger;
  164. pObj->LGVH_NPLS = pADO->FieldByName("LGVH_NPLS")->AsInteger;
  165. pObj->HVVH_NPLS = pADO->FieldByName("HVVH_NPLS")->AsInteger;
  166. pObj->EMVH_NPLS = pADO->FieldByName("EMVH_NPLS")->AsInteger;
  167. pObj->HNDC_NPLS = pADO->FieldByName("HNDC_NPLS")->AsInteger;
  168. pObj->WMON_NPLS = pADO->FieldByName("WMON_NPLS")->AsInteger;
  169. pObj->ELVH_NPLS = pADO->FieldByName("ELVH_NPLS")->AsInteger;
  170. pObj->ETC_NPLS = pADO->FieldByName("ETC_NPLS")->AsInteger;
  171. pObj->CNGT_NPLS = pADO->FieldByName("CNGT_NPLS")->AsInteger;
  172. pObj->SUCCESS = true;
  173. pObj->CalcTotal();
  174. nSelCnt++;
  175. }
  176. }
  177. catch(EDatabaseError &E)
  178. {
  179. DBERROR(String(E.ClassName()), E.Message, sQry);
  180. return -1;
  181. }
  182. catch(Exception &e)
  183. {
  184. DBERROR(String(e.ClassName()), e.Message, sQry);
  185. return -1;
  186. }
  187. }
  188. __finally
  189. {
  190. SQLFree(pADO);
  191. }
  192. IDBSTOP(nSelCnt);
  193. return nSelCnt;
  194. }
  195. //---------------------------------------------------------------------------