CDSVilgFrcsF.h 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  1. //---------------------------------------------------------------------------
  2. #ifndef CDSVilgFrcsFH
  3. #define CDSVilgFrcsFH
  4. //---------------------------------------------------------------------------
  5. #include <Classes.hpp>
  6. #include <ADODB.hpp>
  7. #include <DB.hpp>
  8. #include "ITSLibF.h"
  9. //---------------------------------------------------------------------------
  10. #define VILG_NONE "-"
  11. #define VILG_WARNING "주의보"
  12. #define VILG_ALARM "경보"
  13. #define ATMP_NONE "진행중"
  14. #define ATMP_GOOD "좋음"
  15. #define ATMP_NORMAL "보통"
  16. #define ATMP_BAD "나쁨"
  17. #define ATM_VERY_BAD "매우나쁨"
  18. /*
  19. * TB_VILG_SHPR(초단기실황)
  20. */
  21. typedef struct tagVilgShpr
  22. {
  23. String VILG_FRCS_ZONE_CD; // N NUMBER(14) N 동네 예보 구역 코드
  24. String ANNC_DT; // N VARCHAR2(14) Y 발표 일시
  25. String TMPR; // N NUMBER(6,3) Y 온도
  26. String PRAM_1HH; // N NUMBER(5,2) Y 0 강수량 1시간
  27. String ATMP_STTS; // N NUMBER(2) Y 대기 상태
  28. String ESWS_WNSP; // N NUMBER(5,2) Y 0 동서 풍속
  29. String NRST_WNSP; // N NUMBER(5,2) Y 0 남북 풍속
  30. String HMDT; // N NUMBER(5,2) Y 0 습도
  31. String PRCP_STTS; // N NUMBER(3) Y 0 강수 상태
  32. String THND_STTS; // N NUMBER(2) Y 낙뢰 상태
  33. String WNDR; // N NUMBER(2) Y 풍향
  34. String WNSP; // N NUMBER(5,2) Y 0 풍속
  35. String ATMP_STTS_NM; // 하늘상태 - 맑음(1), 구름조금(2), 구름많음(3), 흐림(4)
  36. String ESWS_WNSP_NM; // 동서바람성분(m/s) - 동(+), 서(-)
  37. String NRST_WNSP_NM; // 남북바람성분(m/s) - 북(+), 남(-)
  38. String PRCP_STTS_NM; // 강수형태 - 없음(0), 비(1), 비/눈(2), 눈(3)
  39. String THND_STTS_NM; // 낙뢰 - 없음(0), 있음(1)
  40. String WNDR_NM; // N NUMBER(2) Y 풍향
  41. String WNSP_ALARM; // 강풍알람
  42. } VILG_SHPR;
  43. /*
  44. * VilgFrcs class
  45. */
  46. class TItsVilgFrcs
  47. {
  48. public:
  49. TItsVilgFrcs() {};
  50. ~TItsVilgFrcs() {};
  51. private:
  52. public:
  53. String VILG_FRCS_ZONE_CD; // N NUMBER(14) N 동네 예보 구역 코드
  54. String VILG_FRCS_ZONE_NM; // N VARCHAR2(40) Y 동네 예보 구역 명
  55. String X_CRDN;
  56. String Y_CRDN;
  57. String ANNC_DT; // N VARCHAR2(14) N 발표 일시
  58. String ORD; // N NUMBER(3) N 0 순서
  59. String HH; // N NUMBER(3) Y 0 시간
  60. String DD; // N NUMBER(3) Y 0 일
  61. String PRST_TMPR; // N NUMBER(6,3) Y 현재 온도
  62. String HGHS_TMPR; // N NUMBER(6,3) Y 최고 온도
  63. String LWST_TMPR; // N NUMBER(6,3) Y 최저 온도
  64. String ATMP_STTS; // N NUMBER(2) Y 대기 상태
  65. String WTCD_KOR_NM; // N VARCHAR2(20) Y 날씨 한글 명
  66. String PRCP_STTS; // N NUMBER(3) Y 0 강수 상태
  67. String WTCD_ENGL_NM; // N VARCHAR2(20) Y 날씨 영문 명
  68. String PRCP_PR; // N NUMBER(5,2) Y 0 강수 확률
  69. String ESTM_PRAM_12HH; // N NUMBER(5,2) Y 0 예상 강수량 12시간
  70. String ESTM_SNOW_AMUT_12HH; // N NUMBER(5,2) Y 0 예상 눈 량 12시간
  71. String WNSP; // N NUMBER(5,2) Y 0 풍속
  72. String WNDR; // N NUMBER(2) Y 풍향
  73. String WNDR_KOR_NM; // N VARCHAR2(20) Y 풍향 한글 명
  74. String WNDR_ENGL_NM; // N VARCHAR2(20) Y 풍향 영문 명
  75. String HMDT; // N NUMBER(5,2) Y 0 습도
  76. String ESTM_PRCP_AMUT_6HH; // N NUMBER(5,2) Y 0 예상 강수 량 6시간
  77. String ESTM_SNOW_AMUT_6HH; // N NUMBER(5,2) Y 0 예상 눈 량 6시간
  78. String WTCD_KOR_CD;
  79. String PRCP_ALARM; // 호우알람
  80. String SNOW_ALARM; // 대설알람
  81. VILG_SHPR shpr;
  82. protected:
  83. public:
  84. };
  85. //---------------------------------------------------------------------------
  86. /*
  87. * TB_ATMP_PLTN_RT_PNST(대기 오염 실시간 현황)
  88. */
  89. typedef struct tagAtmpPltnRtPnst
  90. {
  91. String ATMP_STTN_NM; // N VARCHAR2(30) N 측정소 명
  92. String MSRM_DT; // N VARCHAR2(14) Y 측정 일시
  93. String MSRM_SYST_NM; // N VARCHAR2(10) Y 측정 시스템 명
  94. String CO_VAL; // N VARCHAR2(10) Y CO 값
  95. String SO2_VAL; // N VARCHAR2(10) Y SO2 값
  96. String NO2_VAL; // N VARCHAR2(10) Y NO2 값
  97. String O3_VAL; // N VARCHAR2(10) Y O3 값
  98. String PM10_VAL; // N VARCHAR2(10) Y PM10 값
  99. String PM10_24HH_VAL; // N VARCHAR2(10) Y PM10 24시간 값
  100. String PM25_VAL; // N VARCHAR2(10) Y PM25 값
  101. String PM25_24HH_VAL; // N VARCHAR2(10) Y PM25 24시간 값
  102. String INTG_ATMP_VAL; // N VARCHAR2(10) Y 통합 대기 값
  103. String INTG_ATMP_GRAD; // N VARCHAR2(10) Y 통합 대기 등급
  104. String SO2_GRAD; // N VARCHAR2(10) Y SO2 등급
  105. String CO_GRAD; // N VARCHAR2(10) Y CO 등급
  106. String O3_GRAD; // N VARCHAR2(10) Y O3 드급
  107. String NO2_GRAD; // N VARCHAR2(10) Y NO2 등급
  108. String PM10_24HH_GRAD; // N VARCHAR2(10) Y PM10 24시간 등급
  109. String PM25_24HH_GRAD; // N VARCHAR2(10) Y PM25 24시간 등급
  110. String PM10_1HH_GRAD; // N VARCHAR2(10) Y PM10 1시간 등급
  111. String PM25_1HH_GRAD; // N VARCHAR2(10) Y PM25 1시간 등급
  112. String INTG_ATMP_GRAD_NM; // N VARCHAR2(10) Y 통합 대기 등급
  113. String SO2_GRAD_NM; // N VARCHAR2(10) Y SO2 등급
  114. String CO_GRAD_NM; // N VARCHAR2(10) Y CO 등급
  115. String O3_GRAD_NM; // N VARCHAR2(10) Y O3 드급
  116. String NO2_GRAD_NM; // N VARCHAR2(10) Y NO2 등급
  117. String PM10_24HH_GRAD_NM; // N VARCHAR2(10) Y PM10 24시간 등급
  118. String PM25_24HH_GRAD_NM; // N VARCHAR2(10) Y PM25 24시간 등급
  119. String PM10_1HH_GRAD_NM; // N VARCHAR2(10) Y PM10 1시간 등급
  120. String PM25_1HH_GRAD_NM; // N VARCHAR2(10) Y PM25 1시간 등급
  121. String UPDT_DT; // N VARCHAR2(14) Y 갱신 일시
  122. } ATMP_PLTN_RT_PNST;
  123. /*
  124. * AtmpPltn class(미세먼지 클래스)
  125. */
  126. class TItsAtmpPltn
  127. {
  128. public:
  129. TItsAtmpPltn() {};
  130. ~TItsAtmpPltn() {};
  131. private:
  132. public:
  133. String ATMP_STTN_NMBR; // N NUMBER(10) N 측정소 번호
  134. String ATMP_STTN_NM; // N VARCHAR2(30) N 측정소 명
  135. String ATMP_STTN_ADDR; // N VARCHAR2(200) Y 측정소 주소
  136. String ISTL_YY; // N VARCHAR2(4) Y 설치 년도
  137. String MNGM_INTN_NM; // N VARCHAR2(100) Y 관리 기관 명
  138. String MSRM_SYST_NM; // N VARCHAR2(10) Y 측정 시스템 명
  139. String MSRM_ITEM; // N VARCHAR2(100) Y 측정 항목
  140. String X_CRDN; // N NUMBER(11,8) Y X 좌표
  141. String Y_CRDN; // N NUMBER(10,8) Y Y 좌표
  142. ATMP_PLTN_RT_PNST pnst;
  143. protected:
  144. public:
  145. };
  146. //---------------------------------------------------------------------------
  147. /*
  148. * 대기오염특보 클래스
  149. */
  150. class TItsAtmpSprp
  151. {
  152. public:
  153. TItsAtmpSprp() {};
  154. ~TItsAtmpSprp() {};
  155. private:
  156. public:
  157. String ATMP_PLTN_KIND; // N VARCHAR2(1) N 대기 오염 종류(1:미세먼지, 2:초미세먼지)
  158. String ANNC_DT; // N VARCHAR2(14) Y Update 시간
  159. String REGN_CD; // N VARCHAR2(1) Y 2 권역 코드(1:북부권, 2:동부권, 3:중부권, 4:남부권) 남양주=동부권
  160. String ANNC_YMD; // N VARCHAR2(8) Y 발표 일자(4)
  161. String ANNC_HH; // N VARCHAR2(2) Y 발표 시간(2)
  162. String ANNC_GRAD; // N VARCHAR2(1) Y 발표 등급(1:주의보, 2:경보, 5:황사경보)
  163. String ANNC_DVSN; // N VARCHAR2(1) Y 발표 구분(1:발령, 0:해제, 2:발령내역없음)
  164. protected:
  165. public:
  166. };
  167. //---------------------------------------------------------------------------
  168. /*
  169. * VilgFrcs Manager
  170. */
  171. class TItsVilgFrcsManager
  172. {
  173. public:
  174. TItsVilgFrcsManager();
  175. ~TItsVilgFrcsManager();
  176. public:
  177. TItsMap<String, TItsVilgFrcs*> FLists;
  178. TItsMap<String, TItsAtmpPltn*> FAtmpLists;
  179. TItsMap<String, TItsAtmpSprp*> FSprpLists;
  180. public:
  181. String GetGradeDesc(String &ACode);
  182. bool LoadFromDb(TADOConnection *ADbConn=NULL);
  183. bool LoadFromDbAtmp(TADOConnection *ADbConn=NULL);
  184. bool LoadVilgFrcsInfo(TADOConnection *ADbConn=NULL);
  185. bool LoadVilgShprInfo(TADOConnection *ADbConn=NULL);
  186. bool LoadAtmpPltnInfo(TADOConnection *ADbConn=NULL);
  187. bool LoadAtmpSprpInfo(TADOConnection *ADbConn=NULL);
  188. };
  189. //---------------------------------------------------------------------------
  190. extern TItsVilgFrcsManager *ItsVilgFrcsManager;
  191. //---------------------------------------------------------------------------
  192. #endif