TrafficStatisticsController.java 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489
  1. package com.its.op.controller.its.statistics;
  2. import com.its.op.dto.its.statistics.TrafficStatDto;
  3. import com.its.op.service.its.statistics.TrafficHourStatisticsService;
  4. import com.its.op.service.its.statistics.TrafficSpecStatisticsService;
  5. import com.its.op.service.its.statistics.TrafficTermStatisticsService;
  6. import com.its.utils.ItsUtils;
  7. import io.swagger.annotations.Api;
  8. import io.swagger.annotations.ApiOperation;
  9. import io.swagger.annotations.ApiParam;
  10. import lombok.RequiredArgsConstructor;
  11. import lombok.extern.slf4j.Slf4j;
  12. import org.springframework.web.bind.annotation.GetMapping;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RequestParam;
  15. import org.springframework.web.bind.annotation.RestController;
  16. import java.util.List;
  17. @Slf4j
  18. @RequiredArgsConstructor
  19. @RestController
  20. @RequestMapping("/api/statistics/traffic")
  21. @Api(tags = "03.통계-1.소통정보통계")
  22. public class TrafficStatisticsController {
  23. private final TrafficTermStatisticsService serviceTerm;
  24. private final TrafficHourStatisticsService serviceHour;
  25. private final TrafficSpecStatisticsService serviceSpec;
  26. //////////// 링크 기간검색
  27. @ApiOperation(value = "기간검색-링크 15분(TB_LINK_STAT_15M)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  28. @GetMapping(value = "/term/link-15m", produces = {"application/json; charset=utf8"})
  29. public List<TrafficStatDto> findAllLink15MTerm(
  30. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  31. @RequestParam String LINK_ID,
  32. @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24)", example = "2021120100", required = true)
  33. @RequestParam String FROM_DT,
  34. @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24)", example = "2021120102", required = true)
  35. @RequestParam String TO_DT) {
  36. String fromDt = FROM_DT + "0000";
  37. String toDt = TO_DT + "5959";
  38. return this.serviceTerm.findAllLink15M(fromDt, toDt, LINK_ID);
  39. }
  40. @ApiOperation(value = "기간검색-링크 시간(TB_LINK_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  41. @GetMapping(value = "/term/link-hh", produces = {"application/json; charset=utf8"})
  42. public List<TrafficStatDto> findAllLinkHHTerm(
  43. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  44. @RequestParam String LINK_ID,
  45. @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24)", example = "2021120100", required = true)
  46. @RequestParam String FROM_DT,
  47. @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24)", example = "2021120102", required = true)
  48. @RequestParam String TO_DT) {
  49. String fromDt = FROM_DT + "0000";
  50. String toDt = TO_DT + "5959";
  51. return this.serviceTerm.findAllLinkHH(fromDt, toDt, LINK_ID);
  52. }
  53. @ApiOperation(value = "기간검색-링크 일(TB_LINK_STAT_DD)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  54. @GetMapping(value = "/term/link-dd", produces = {"application/json; charset=utf8"})
  55. public List<TrafficStatDto> findAllLinkDDTerm(
  56. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  57. @RequestParam String LINK_ID,
  58. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  59. @RequestParam String FROM_DT,
  60. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  61. @RequestParam String TO_DT) {
  62. String fromDt = FROM_DT + "000000";
  63. String toDt = TO_DT + "235959";
  64. return this.serviceTerm.findAllLinkDD(fromDt, toDt, LINK_ID);
  65. }
  66. @ApiOperation(value = "기간검색-링크 월(TB_LINK_STAT_MN)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  67. @GetMapping(value = "/term/link-mn", produces = {"application/json; charset=utf8"})
  68. public List<TrafficStatDto> findAllLinkMNTerm(
  69. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  70. @RequestParam String LINK_ID,
  71. @ApiParam(name = "FROM_DT", value = "조회시작월(YYYYMM)", example = "202112", required = true)
  72. @RequestParam String FROM_DT,
  73. @ApiParam(name = "TO_DT", value = "조회종료월(YYYYMM)", example = "202112", required = true)
  74. @RequestParam String TO_DT) {
  75. String fromDt = FROM_DT + "01000000";
  76. String toDt = ItsUtils.getLastDayOfMonth(TO_DT) + "235959";
  77. return this.serviceTerm.findAllLinkMN(fromDt, toDt, LINK_ID);
  78. }
  79. @ApiOperation(value = "기간검색-링크 년(TB_LINK_STAT_YY)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  80. @GetMapping(value = "/term/link-yy", produces = {"application/json; charset=utf8"})
  81. public List<TrafficStatDto> findAllLinkYYTerm(
  82. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  83. @RequestParam String LINK_ID,
  84. @ApiParam(name = "FROM_DT", value = "조회시작연도(YYYY)", example = "2021", required = true)
  85. @RequestParam String FROM_DT,
  86. @ApiParam(name = "TO_DT", value = "조회종료연도(YYYY)", example = "2021", required = true)
  87. @RequestParam String TO_DT) {
  88. String fromDt = FROM_DT + "0101000000";
  89. String toDt = TO_DT + "1231235959";
  90. return this.serviceTerm.findAllLinkYY(fromDt, toDt, LINK_ID);
  91. }
  92. //////////// 정보제공 링크 기간검색
  93. @ApiOperation(value = "기간검색-정보제공구간 15분(TB_IFSC_STAT_15M)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  94. @GetMapping(value = "/term/ifsc-15m", produces = {"application/json; charset=utf8"})
  95. public List<TrafficStatDto> findAllIfsc15MTerm(
  96. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  97. @RequestParam String IFSC_ID,
  98. @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24)", example = "2021120100", required = true)
  99. @RequestParam String FROM_DT,
  100. @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24)", example = "2021120102", required = true)
  101. @RequestParam String TO_DT) {
  102. String fromDt = FROM_DT + "0000";
  103. String toDt = TO_DT + "5959";
  104. return this.serviceTerm.findAllIfsc15M(fromDt, toDt, IFSC_ID);
  105. }
  106. @ApiOperation(value = "기간검색-정보제공구간 시간(TB_IFSC_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  107. @GetMapping(value = "/term/ifsc-hh", produces = {"application/json; charset=utf8"})
  108. public List<TrafficStatDto> findAllIfscHHTerm(
  109. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  110. @RequestParam String IFSC_ID,
  111. @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24)", example = "2021120100", required = true)
  112. @RequestParam String FROM_DT,
  113. @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24)", example = "2021120102", required = true)
  114. @RequestParam String TO_DT) {
  115. String fromDt = FROM_DT + "0000";
  116. String toDt = TO_DT + "5959";
  117. return this.serviceTerm.findAllIfscHH(fromDt, toDt, IFSC_ID);
  118. }
  119. @ApiOperation(value = "기간검색-정보제공구간 일(TB_IFSC_STAT_DD)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  120. @GetMapping(value = "/term/ifsc-dd", produces = {"application/json; charset=utf8"})
  121. public List<TrafficStatDto> findAllIfscDDTerm(
  122. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  123. @RequestParam String IFSC_ID,
  124. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  125. @RequestParam String FROM_DT,
  126. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  127. @RequestParam String TO_DT) {
  128. String fromDt = FROM_DT + "000000";
  129. String toDt = TO_DT + "235959";
  130. return this.serviceTerm.findAllIfscDD(fromDt, toDt, IFSC_ID);
  131. }
  132. @ApiOperation(value = "기간검색-정보제공구간 월(TB_IFSC_STAT_MN)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  133. @GetMapping(value = "/term/ifsc-mn", produces = {"application/json; charset=utf8"})
  134. public List<TrafficStatDto> findAllIfscMNTerm(
  135. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  136. @RequestParam String IFSC_ID,
  137. @ApiParam(name = "FROM_DT", value = "조회시작월(YYYYMM)", example = "202112", required = true)
  138. @RequestParam String FROM_DT,
  139. @ApiParam(name = "TO_DT", value = "조회종료월(YYYYMM)", example = "202112", required = true)
  140. @RequestParam String TO_DT) {
  141. String fromDt = FROM_DT + "01000000";
  142. String toDt = ItsUtils.getLastDayOfMonth(TO_DT) + "235959";
  143. return this.serviceTerm.findAllIfscMN(fromDt, toDt, IFSC_ID);
  144. }
  145. @ApiOperation(value = "기간검색-정보제공구간 년(TB_IFSC_STAT_YY)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  146. @GetMapping(value = "/term/ifsc-yy", produces = {"application/json; charset=utf8"})
  147. public List<TrafficStatDto> findAllIfscYYTerm(
  148. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  149. @RequestParam String IFSC_ID,
  150. @ApiParam(name = "FROM_DT", value = "조회시작연도(YYYY)", example = "2021", required = true)
  151. @RequestParam String FROM_DT,
  152. @ApiParam(name = "TO_DT", value = "조회종료연도(YYYY)", example = "2021", required = true)
  153. @RequestParam String TO_DT) {
  154. String fromDt = FROM_DT + "0101000000";
  155. String toDt = TO_DT + "1231235959";
  156. return this.serviceTerm.findAllIfscYY(fromDt, toDt, IFSC_ID);
  157. }
  158. //////////// 도로 기간검색
  159. @ApiOperation(value = "기간검색-도로 15분(TB_ROAD_STAT_15M)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  160. @GetMapping(value = "/term/road-15m", produces = {"application/json; charset=utf8"})
  161. public List<TrafficStatDto> findAllRoad15MTerm(
  162. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  163. @RequestParam String ROAD_ID,
  164. @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24)", example = "2021120100", required = true)
  165. @RequestParam String FROM_DT,
  166. @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24)", example = "2021120102", required = true)
  167. @RequestParam String TO_DT) {
  168. String fromDt = FROM_DT + "0000";
  169. String toDt = TO_DT + "5959";
  170. return this.serviceTerm.findAllRoad15M(fromDt, toDt, ROAD_ID);
  171. }
  172. @ApiOperation(value = "기간검색-도로 시간(TB_ROAD_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  173. @GetMapping(value = "/term/road-hh", produces = {"application/json; charset=utf8"})
  174. public List<TrafficStatDto> findAllRoadHHTerm(
  175. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  176. @RequestParam String ROAD_ID,
  177. @ApiParam(name = "FROM_DT", value = "조회시작시각(YYYYMMDDHH24)", example = "2021120100", required = true)
  178. @RequestParam String FROM_DT,
  179. @ApiParam(name = "TO_DT", value = "조회종료시각(YYYYMMDDHH24)", example = "2021120102", required = true)
  180. @RequestParam String TO_DT) {
  181. String fromDt = FROM_DT + "0000";
  182. String toDt = TO_DT + "5959";
  183. return this.serviceTerm.findAllRoadHH(fromDt, toDt, ROAD_ID);
  184. }
  185. @ApiOperation(value = "기간검색-도로 일(TB_ROAD_STAT_DD)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  186. @GetMapping(value = "/term/road-dd", produces = {"application/json; charset=utf8"})
  187. public List<TrafficStatDto> findAllRoadDDTerm(
  188. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  189. @RequestParam String ROAD_ID,
  190. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  191. @RequestParam String FROM_DT,
  192. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  193. @RequestParam String TO_DT) {
  194. String fromDt = FROM_DT + "000000";
  195. String toDt = TO_DT + "235959";
  196. return this.serviceTerm.findAllRoadDD(fromDt, toDt, ROAD_ID);
  197. }
  198. @ApiOperation(value = "기간검색-도로 월(TB_ROAD_STAT_MN)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  199. @GetMapping(value = "/term/road-mn", produces = {"application/json; charset=utf8"})
  200. public List<TrafficStatDto> findAllRoadMNTerm(
  201. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  202. @RequestParam String ROAD_ID,
  203. @ApiParam(name = "FROM_DT", value = "조회시작월(YYYYMM)", example = "202112", required = true)
  204. @RequestParam String FROM_DT,
  205. @ApiParam(name = "TO_DT", value = "조회종료월(YYYYMM)", example = "202112", required = true)
  206. @RequestParam String TO_DT) {
  207. String fromDt = FROM_DT + "01000000";
  208. String toDt = ItsUtils.getLastDayOfMonth(TO_DT) + "235959";
  209. return this.serviceTerm.findAllRoadMN(fromDt, toDt, ROAD_ID);
  210. }
  211. @ApiOperation(value = "기간검색-도로 년(TB_ROAD_STAT_YY)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  212. @GetMapping(value = "/term/road-yy", produces = {"application/json; charset=utf8"})
  213. public List<TrafficStatDto> findAllRoadYYTerm(
  214. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  215. @RequestParam String ROAD_ID,
  216. @ApiParam(name = "FROM_DT", value = "조회시작연도(YYYY)", example = "2021", required = true)
  217. @RequestParam String FROM_DT,
  218. @ApiParam(name = "TO_DT", value = "조회종료연도(YYYY)", example = "2021", required = true)
  219. @RequestParam String TO_DT) {
  220. String fromDt = FROM_DT + "0101000000";
  221. String toDt = TO_DT + "1231235959";
  222. return this.serviceTerm.findAllRoadYY(fromDt, toDt, ROAD_ID);
  223. }
  224. //////////// 링크 시간대검색
  225. @ApiOperation(value = "시간대검색-링크 15분(TB_LINK_STAT_15M)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  226. @GetMapping(value = "/hour/link-15m", produces = {"application/json; charset=utf8"})
  227. public List<TrafficStatDto> findAllLink15MHour(
  228. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  229. @RequestParam String LINK_ID,
  230. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  231. @RequestParam String FROM_DT,
  232. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  233. @RequestParam String TO_DT,
  234. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  235. @RequestParam String FROM_HH,
  236. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  237. @RequestParam String TO_HH) {
  238. String fromDt = FROM_DT + "000000";
  239. String toDt = TO_DT + "235959";
  240. String fromHh = FROM_HH + "0000";
  241. String toHh = TO_HH + "5959";
  242. return this.serviceHour.findAllLink15M(fromDt, toDt, fromHh, toHh, LINK_ID);
  243. }
  244. @ApiOperation(value = "시간대검색-링크 시간(TB_LINK_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  245. @GetMapping(value = "/hour/link-hh", produces = {"application/json; charset=utf8"})
  246. public List<TrafficStatDto> findAllLinkHHHour(
  247. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  248. @RequestParam String LINK_ID,
  249. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  250. @RequestParam String FROM_DT,
  251. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  252. @RequestParam String TO_DT,
  253. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  254. @RequestParam String FROM_HH,
  255. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  256. @RequestParam String TO_HH) {
  257. String fromDt = FROM_DT + "000000";
  258. String toDt = TO_DT + "235959";
  259. String fromHh = FROM_HH + "0000";
  260. String toHh = TO_HH + "5959";
  261. return this.serviceHour.findAllLinkHH(fromDt, toDt, fromHh, toHh, LINK_ID);
  262. }
  263. //////////// 정보제공 링크 시간대검색
  264. @ApiOperation(value = "시간대검색-정보제공구간 15분(TB_IFSC_15M_STAT)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  265. @GetMapping(value = "/hour/ifsc-15m", produces = {"application/json; charset=utf8"})
  266. public List<TrafficStatDto> findAllIfsc15MHour(
  267. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  268. @RequestParam String IFSC_ID,
  269. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  270. @RequestParam String FROM_DT,
  271. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  272. @RequestParam String TO_DT,
  273. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  274. @RequestParam String FROM_HH,
  275. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  276. @RequestParam String TO_HH) {
  277. String fromDt = FROM_DT + "000000";
  278. String toDt = TO_DT + "235959";
  279. String fromHh = FROM_HH + "0000";
  280. String toHh = TO_HH + "5959";
  281. return this.serviceHour.findAllIfsc15M(fromDt, toDt, fromHh, toHh, IFSC_ID);
  282. }
  283. @ApiOperation(value = "시간대검색-정보제공구간 시간(TB_IFSC_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  284. @GetMapping(value = "/hour/ifsc-hh", produces = {"application/json; charset=utf8"})
  285. public List<TrafficStatDto> findAllIfscHHHour(
  286. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  287. @RequestParam String IFSC_ID,
  288. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  289. @RequestParam String FROM_DT,
  290. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  291. @RequestParam String TO_DT,
  292. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  293. @RequestParam String FROM_HH,
  294. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  295. @RequestParam String TO_HH) {
  296. String fromDt = FROM_DT + "000000";
  297. String toDt = TO_DT + "235959";
  298. String fromHh = FROM_HH + "0000";
  299. String toHh = TO_HH + "5959";
  300. return this.serviceHour.findAllIfscHH(fromDt, toDt, fromHh, toHh, IFSC_ID);
  301. }
  302. //////////// 도로 시간대검색
  303. @ApiOperation(value = "시간대검색-도로 15분(TB_ROAD_15M_STAT)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  304. @GetMapping(value = "/hour/road-15m", produces = {"application/json; charset=utf8"})
  305. public List<TrafficStatDto> findAllRoad15MHour(
  306. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  307. @RequestParam String ROAD_ID,
  308. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  309. @RequestParam String FROM_DT,
  310. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  311. @RequestParam String TO_DT,
  312. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  313. @RequestParam String FROM_HH,
  314. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  315. @RequestParam String TO_HH) {
  316. String fromDt = FROM_DT + "000000";
  317. String toDt = TO_DT + "235959";
  318. String fromHh = FROM_HH + "0000";
  319. String toHh = TO_HH + "5959";
  320. return this.serviceHour.findAllRoad15M(fromDt, toDt, fromHh, toHh, ROAD_ID);
  321. }
  322. @ApiOperation(value = "시간대검색-도로 시간(TB_ROAD_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  323. @GetMapping(value = "/hour/road-hh", produces = {"application/json; charset=utf8"})
  324. public List<TrafficStatDto> findAllRoadHHHour(
  325. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  326. @RequestParam String ROAD_ID,
  327. @ApiParam(name = "FROM_DT", value = "조회시작일(YYYYMMDD)", example = "20211201", required = true)
  328. @RequestParam String FROM_DT,
  329. @ApiParam(name = "TO_DT", value = "조회종료일(YYYYMMDD)", example = "20211201", required = true)
  330. @RequestParam String TO_DT,
  331. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  332. @RequestParam String FROM_HH,
  333. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  334. @RequestParam String TO_HH) {
  335. String fromDt = FROM_DT + "000000";
  336. String toDt = TO_DT + "235959";
  337. String fromHh = FROM_HH + "0000";
  338. String toHh = TO_HH + "5959";
  339. return this.serviceHour.findAllRoadHH(fromDt, toDt, fromHh, toHh, ROAD_ID);
  340. }
  341. //////////// 링크 지정시각검색
  342. //////////// TODO: 지정일은 반드시 조회조건에 포함시켜야 한다.
  343. @ApiOperation(value = "지정시각검색-링크 15분(TB_LINK_STAT_15M)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  344. @GetMapping(value = "/spec/link-15m", produces = {"application/json; charset=utf8"})
  345. public List<TrafficStatDto> findAllLink15MSpec(
  346. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  347. @RequestParam String LINK_ID,
  348. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  349. @RequestParam String FROM_HH,
  350. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  351. @RequestParam String TO_HH,
  352. @ApiParam(name = "day", value = "지정일 목록", example = "[20210107,20210107]", required = true)
  353. @RequestParam List<String> day) {
  354. String fromHh = FROM_HH + "0000";
  355. String toHh = TO_HH + "5959";
  356. return this.serviceSpec.findAllLink15M(fromHh, toHh, day, LINK_ID);
  357. }
  358. @ApiOperation(value = "지정시각검색-링크 시간(TB_LINK_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  359. @GetMapping(value = "/spec/link-hh", produces = {"application/json; charset=utf8"})
  360. public List<TrafficStatDto> findAllLinkHHSpec(
  361. @ApiParam(name = "LINK_ID", value = "링크 ID", example = "2280168600", required = true)
  362. @RequestParam String LINK_ID,
  363. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  364. @RequestParam String FROM_HH,
  365. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  366. @RequestParam String TO_HH,
  367. @RequestParam List<String> day) {
  368. String fromHh = FROM_HH + "0000";
  369. String toHh = TO_HH + "5959";
  370. return this.serviceSpec.findAllLinkHH(fromHh, toHh, day, LINK_ID);
  371. }
  372. //////////// 정보제공 링크 지정시각검색
  373. @ApiOperation(value = "지정시각검색-정보제공구간 15분(TB_IFSC_15M_STAT)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  374. @GetMapping(value = "/spec/ifsc-15m", produces = {"application/json; charset=utf8"})
  375. public List<TrafficStatDto> findAllIfsc15MSpec(
  376. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  377. @RequestParam String IFSC_ID,
  378. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  379. @RequestParam String FROM_HH,
  380. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  381. @RequestParam String TO_HH,
  382. @RequestParam List<String> day) {
  383. String fromHh = FROM_HH + "0000";
  384. String toHh = TO_HH + "5959";
  385. return this.serviceSpec.findAllIfsc15M(fromHh, toHh, day, IFSC_ID);
  386. }
  387. @ApiOperation(value = "지정시각검색-정보제공구간 시간(TB_IFSC_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  388. @GetMapping(value = "/spec/ifsc-hh", produces = {"application/json; charset=utf8"})
  389. public List<TrafficStatDto> findAllIfscHHSpec(
  390. @ApiParam(name = "IFSC_ID", value = "정보제공구간 ID", example = "2200000259", required = true)
  391. @RequestParam String IFSC_ID,
  392. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  393. @RequestParam String FROM_HH,
  394. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  395. @RequestParam String TO_HH,
  396. @RequestParam List<String> day) {
  397. String fromHh = FROM_HH + "0000";
  398. String toHh = TO_HH + "5959";
  399. return this.serviceSpec.findAllIfscHH(fromHh, toHh, day, IFSC_ID);
  400. }
  401. //////////// 도로 지정시각검색
  402. @ApiOperation(value = "지정시각검색-도로 15분(TB_ROAD_15M_STAT)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  403. @GetMapping(value = "/spec/road-15m", produces = {"application/json; charset=utf8"})
  404. public List<TrafficStatDto> findAllRoad15MSpec(
  405. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  406. @RequestParam String ROAD_ID,
  407. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  408. @RequestParam String FROM_HH,
  409. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  410. @RequestParam String TO_HH,
  411. @RequestParam List<String> day) {
  412. String fromHh = FROM_HH + "0000";
  413. String toHh = TO_HH + "5959";
  414. return this.serviceSpec.findAllRoad15M(fromHh, toHh, day, ROAD_ID);
  415. }
  416. @ApiOperation(value = "지정시각검색-도로 시간(TB_ROAD_STAT_HH)", response = TrafficStatDto.class, responseContainer = "ArrayList")
  417. @GetMapping(value = "/spec/road-hh", produces = {"application/json; charset=utf8"})
  418. public List<TrafficStatDto> findAllRoadHHSpec(
  419. @ApiParam(name = "ROAD_ID", value = "도로 ID", example = "3200000023", required = true)
  420. @RequestParam String ROAD_ID,
  421. @ApiParam(name = "FROM_HH", value = "시작시간대(HH24)", example = "00", required = true)
  422. @RequestParam String FROM_HH,
  423. @ApiParam(name = "TO_HH", value = "종료시간대(HH24)", example = "23", required = true)
  424. @RequestParam String TO_HH,
  425. @RequestParam List<String> day) {
  426. String fromHh = FROM_HH + "0000";
  427. String toHh = TO_HH + "5959";
  428. return this.serviceSpec.findAllRoadHH(fromHh, toHh, day, ROAD_ID);
  429. }
  430. }