shjung 3 жил өмнө
parent
commit
e7ed92048c
20 өөрчлөгдсөн 354 нэмэгдсэн , 8 устгасан
  1. 3 2
      README.md
  2. 38 0
      src/main/java/com/its/op/controller/analysis/ClctResultController.java
  3. 38 0
      src/main/java/com/its/op/controller/analysis/PrcnResultController.java
  4. 1 1
      src/main/java/com/its/op/controller/statistics/AtrdController.java
  5. 1 1
      src/main/java/com/its/op/controller/statistics/AtrdTrafficController.java
  6. 1 1
      src/main/java/com/its/op/controller/statistics/FcltSttsController.java
  7. 1 1
      src/main/java/com/its/op/controller/statistics/IncidentController.java
  8. 1 1
      src/main/java/com/its/op/controller/statistics/TrafficController.java
  9. 1 1
      src/main/java/com/its/op/controller/statistics/UnitSystSttsController.java
  10. 15 0
      src/main/java/com/its/op/mapper/analysis/ClctResultMapper.java
  11. 15 0
      src/main/java/com/its/op/mapper/analysis/PrcnResultMapper.java
  12. 5 0
      src/main/java/com/its/op/service/analysis/AnalysisService.java
  13. 39 0
      src/main/java/com/its/op/service/analysis/impl/ClctResultServiceImpl.java
  14. 39 0
      src/main/java/com/its/op/service/analysis/impl/PrcnResultServiceImpl.java
  15. 15 0
      src/main/java/com/its/op/vo/analysis/ClctResultParam.java
  16. 20 0
      src/main/java/com/its/op/vo/analysis/ClctResultVo.java
  17. 15 0
      src/main/java/com/its/op/vo/analysis/PrcnResultParam.java
  18. 24 0
      src/main/java/com/its/op/vo/analysis/PrcnResultVo.java
  19. 37 0
      src/main/resources/mybatis/mapper/analysis/ClctResult.xml
  20. 45 0
      src/main/resources/mybatis/mapper/analysis/PrcnResult.xml

+ 3 - 2
README.md

@@ -35,6 +35,7 @@ java -jar build/libs/table2pojo-all.jar <options>
 
 Type   | Description
 -------|------------
-SQLInjection | https://www.hanumoka.net/2019/09/21/spring-20190921-spring-mybatis-sqlinjectionsafe/ 
-수집데이터이력조회| 수집시스템에 따라 SQL 및 화면 구성을 다시해야함
+수집데이터이력조회| 수집시스템에 따라 SQL 및 화면 구성을 다시해야함(TbLinkTrafClctHs.xml)
+교통정보수집결과분석| 수집시스템에 따라 SQL 및 화면 구성을 다시해야함(ClctResult.xml)
+교통정보가공결과분석| 수집시스템에 따라 SQL 및 화면 구성을 다시해야함(PrcnResult.xml)
 

+ 38 - 0
src/main/java/com/its/op/controller/analysis/ClctResultController.java

@@ -0,0 +1,38 @@
+package com.its.op.controller.analysis;
+
+import com.its.op.service.analysis.impl.ClctResultServiceImpl;
+import com.its.op.vo.analysis.ClctResultParam;
+import com.its.op.vo.analysis.ClctResultVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/analysis/clct-result")
+@Api(tags = "04.분석-1.교통정보수집결과분석", description="교통정보수집결과분석")
+public class ClctResultController {
+
+    private ClctResultServiceImpl service;
+
+    public ClctResultController(ClctResultServiceImpl service) {
+        this.service = service;
+    }
+
+    @ApiOperation(value = "교통정보수집결과분석(TB_CLCT_SYST_STTS_HS)", response = ClctResultVo.class, responseContainer = "ArrayList")
+    @PostMapping(value = "/", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<List<ClctResultVo>> findAllByDateRange(@RequestBody ClctResultParam cond, HttpServletRequest request) {
+        List<ClctResultVo> result = this.service.findAllByDateRange(cond);
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+}

+ 38 - 0
src/main/java/com/its/op/controller/analysis/PrcnResultController.java

@@ -0,0 +1,38 @@
+package com.its.op.controller.analysis;
+
+import com.its.op.service.analysis.impl.PrcnResultServiceImpl;
+import com.its.op.vo.analysis.PrcnResultParam;
+import com.its.op.vo.analysis.PrcnResultVo;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@Slf4j
+@RestController
+@RequestMapping("/analysis/prcn-result")
+@Api(tags = "04.분석-2.교통정보가공결과분석", description="교통정보가공결과분석")
+public class PrcnResultController {
+
+    private PrcnResultServiceImpl service;
+
+    public PrcnResultController(PrcnResultServiceImpl service) {
+        this.service = service;
+    }
+
+    @ApiOperation(value = "교통정보가공결과분석(TB_CLCT_SYST_STTS_HS, TB_TRFC_PRCN_STAT)", response = PrcnResultVo.class, responseContainer = "ArrayList")
+    @PostMapping(value = "/", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<List<PrcnResultVo>> findAllByDateRange(@RequestBody PrcnResultParam cond, HttpServletRequest request) {
+        List<PrcnResultVo> result = this.service.findAllByDateRange(cond);
+        return new ResponseEntity<>(result, HttpStatus.OK);
+    }
+
+}

+ 1 - 1
src/main/java/com/its/op/controller/statistics/AtrdController.java

@@ -20,7 +20,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/statistics/atrd")
-@Api(tags = "03.통계-분석-3.간선도로통계", description="간선도로통계")
+@Api(tags = "03.통계-3.간선도로통계", description="간선도로통계")
 public class AtrdController {
 
     private AtrdServiceImpl service;

+ 1 - 1
src/main/java/com/its/op/controller/statistics/AtrdTrafficController.java

@@ -21,7 +21,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/statistics/atrd-traffic")
-@Api(tags = "03.통계-분석-2.간선도로소통정보통계", description="간선도로소통정보통계")
+@Api(tags = "03.통계-2.간선도로소통정보통계", description="간선도로소통정보통계")
 public class AtrdTrafficController {
 
     private AtrdTrafficServiceImpl service;

+ 1 - 1
src/main/java/com/its/op/controller/statistics/FcltSttsController.java

@@ -17,7 +17,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/statistics/fclt-stts")
-@Api(tags = "03.통계-분석-5.시설물통신단절통계", description="시설물통신단절통계")
+@Api(tags = "03.통계-5.시설물통신단절통계", description="시설물통신단절통계")
 public class FcltSttsController {
 
     private FcltSttsServiceImpl service;

+ 1 - 1
src/main/java/com/its/op/controller/statistics/IncidentController.java

@@ -20,7 +20,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/statistics/incident")
-@Api(tags = "03.통계-분석-4.돌발상황통계", description="돌발상황통계")
+@Api(tags = "03.통계-4.돌발상황통계", description="돌발상황통계")
 public class IncidentController {
 
     private IncidentServiceImpl service;

+ 1 - 1
src/main/java/com/its/op/controller/statistics/TrafficController.java

@@ -20,7 +20,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/statistics/traffic")
-@Api(tags = "03.통계-분석-1.소통정보통계", description="소통정보통계")
+@Api(tags = "03.통계-1.소통정보통계", description="소통정보통계")
 public class TrafficController {
 
     private final TrafficTermServiceImpl serviceTerm;

+ 1 - 1
src/main/java/com/its/op/controller/statistics/UnitSystSttsController.java

@@ -19,7 +19,7 @@ import java.util.List;
 @Slf4j
 @RestController
 @RequestMapping("/statistics/unit-syst-stts")
-@Api(tags = "03.통계-분석-6.프로세스상태통계", description="프로세스상태통계")
+@Api(tags = "03.통계-6.프로세스상태통계", description="프로세스상태통계")
 public class UnitSystSttsController {
 
     private UnitSystSttsServiceImpl service;

+ 15 - 0
src/main/java/com/its/op/mapper/analysis/ClctResultMapper.java

@@ -0,0 +1,15 @@
+package com.its.op.mapper.analysis;
+
+import com.its.op.vo.analysis.ClctResultParam;
+import com.its.op.vo.analysis.ClctResultVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface ClctResultMapper {
+
+    List<ClctResultVo> findAllByDateRange(@Param("cond") ClctResultParam cond);
+
+}

+ 15 - 0
src/main/java/com/its/op/mapper/analysis/PrcnResultMapper.java

@@ -0,0 +1,15 @@
+package com.its.op.mapper.analysis;
+
+import com.its.op.vo.analysis.PrcnResultParam;
+import com.its.op.vo.analysis.PrcnResultVo;
+import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+
+@Mapper
+public interface PrcnResultMapper {
+
+    List<PrcnResultVo> findAllByDateRange(@Param("cond") PrcnResultParam cond);
+
+}

+ 5 - 0
src/main/java/com/its/op/service/analysis/AnalysisService.java

@@ -0,0 +1,5 @@
+package com.its.op.service.analysis;
+
+public interface AnalysisService {
+
+}

+ 39 - 0
src/main/java/com/its/op/service/analysis/impl/ClctResultServiceImpl.java

@@ -0,0 +1,39 @@
+package com.its.op.service.analysis.impl;
+
+import com.its.op.mapper.analysis.ClctResultMapper;
+import com.its.op.service.analysis.AnalysisService;
+import com.its.op.vo.analysis.ClctResultParam;
+import com.its.op.vo.analysis.ClctResultVo;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Getter
+@Setter
+@ToString
+@Service
+public class ClctResultServiceImpl implements AnalysisService {
+
+    private final ClctResultMapper mapper;
+
+    public ClctResultServiceImpl(ClctResultMapper mapper) {
+        this.mapper = mapper;
+    }
+
+    public List<ClctResultVo> findAllByDateRange(ClctResultParam cond) {
+        try {
+            return this.mapper.findAllByDateRange(cond);
+        }
+        catch (Exception e) {
+            log.error("{}.findAllByDateRange: Cond: {}, Exception: {}", getClass().getSimpleName(), cond, e.getMessage());
+        }
+        return new ArrayList<ClctResultVo>();
+    }
+
+}

+ 39 - 0
src/main/java/com/its/op/service/analysis/impl/PrcnResultServiceImpl.java

@@ -0,0 +1,39 @@
+package com.its.op.service.analysis.impl;
+
+import com.its.op.mapper.analysis.PrcnResultMapper;
+import com.its.op.service.analysis.AnalysisService;
+import com.its.op.vo.analysis.PrcnResultParam;
+import com.its.op.vo.analysis.PrcnResultVo;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+
+@Slf4j
+@Getter
+@Setter
+@ToString
+@Service
+public class PrcnResultServiceImpl implements AnalysisService {
+
+    private final PrcnResultMapper mapper;
+
+    public PrcnResultServiceImpl(PrcnResultMapper mapper) {
+        this.mapper = mapper;
+    }
+
+    public List<PrcnResultVo> findAllByDateRange(PrcnResultParam cond) {
+        try {
+            return this.mapper.findAllByDateRange(cond);
+        }
+        catch (Exception e) {
+            log.error("{}.findAllByDateRange: Cond: {}, Exception: {}", getClass().getSimpleName(), cond, e.getMessage());
+        }
+        return new ArrayList<PrcnResultVo>();
+    }
+
+}

+ 15 - 0
src/main/java/com/its/op/vo/analysis/ClctResultParam.java

@@ -0,0 +1,15 @@
+package com.its.op.vo.analysis;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+@ApiModel(description = "간선도로통계 파라미터")
+public class ClctResultParam {
+    private String FROM_DT;
+    private String TO_DT;
+}

+ 20 - 0
src/main/java/com/its/op/vo/analysis/ClctResultVo.java

@@ -0,0 +1,20 @@
+package com.its.op.vo.analysis;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+//@JsonNaming(UpperCaseUnderscoreStrategy.class)
+public class ClctResultVo {
+    private String PRCN_DT;
+    private String PRCN_DT_FMT;
+    private int    CLCT_TOT;         // 총수집개수
+    private int    OPER01;          // 운영자개입
+    private int    VDS01;           // 영상 VDS
+    private int    MOCT01;          // 민간정보
+    private int    UTIS01;          // 중앙센터-UTIS
+    private int    UTIS02;          // 중앙센터-ITS
+}

+ 15 - 0
src/main/java/com/its/op/vo/analysis/PrcnResultParam.java

@@ -0,0 +1,15 @@
+package com.its.op.vo.analysis;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+@ApiModel(description = "간선도로통계 파라미터")
+public class PrcnResultParam {
+    private String FROM_DT;
+    private String TO_DT;
+}

+ 24 - 0
src/main/java/com/its/op/vo/analysis/PrcnResultVo.java

@@ -0,0 +1,24 @@
+package com.its.op.vo.analysis;
+
+import lombok.Getter;
+import lombok.Setter;
+import lombok.ToString;
+
+@Getter
+@Setter
+@ToString
+//@JsonNaming(UpperCaseUnderscoreStrategy.class)
+public class PrcnResultVo {
+    private String PRCN_DT;
+    private String PRCN_DT_FMT;
+    private int    PRCN_TOT;        // 총가공개수
+    private int    OPER01;          // 운영자개입
+    private int    VDS01;           // 영상 VDS
+    private int    MOCT01;          // 민간정보
+    private int    UTIS01;          // 중앙센터-UTIS
+    private int    UTIS02;          // 중앙센터-ITS
+
+    private int    MISS_NUM;        // 결측개수
+    private int    ADJS_NUM;        // 보정개수
+    private int    SMTH_NUM;        // 평활화개수
+}

+ 37 - 0
src/main/resources/mybatis/mapper/analysis/ClctResult.xml

@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.its.op.mapper.analysis.ClctResultMapper">
+
+<!--
+    // 수집시스템 조회
+    SELECT CLCT_SYST_CD, CLCT_SYST_NM
+    FROM TB_CLCT_SYST_STUP
+    WHERE USE_YN = 'Y'
+-->
+
+    <select id="findAllByDateRange" parameterType="com.its.op.vo.analysis.ClctResultParam" resultType="com.its.op.vo.analysis.ClctResultVo">
+        SELECT PRCN_DT, FN_TODATEFMT(PRCN_DT) AS PRCN_DT_FMT
+               ,SUM(OPER01)+SUM(VDS01)+SUM(MOCT01)+SUM(UTIS01)+SUM(UTIS02) AS CLCT_TOT
+               ,SUM(OPER01) AS OPER01
+               ,SUM(VDS01)  AS VDS01
+               ,SUM(MOCT01) AS MOCT01
+               ,SUM(UTIS01) AS UTIS01
+               ,SUM(UTIS02) AS UTIS02
+        FROM (SELECT A.PRCN_DT
+                     ,DECODE(A.CLCT_SYST_CD, 'OPER01', A.CLCT_NUM, 0) AS OPER01
+                     ,DECODE(A.CLCT_SYST_CD, 'VDS01',  A.CLCT_NUM, 0) AS VDS01
+                     ,DECODE(A.CLCT_SYST_CD, 'MOCT01', A.CLCT_NUM, 0) AS MOCT01
+                     ,DECODE(A.CLCT_SYST_CD, 'UTIS01', A.CLCT_NUM, 0) AS UTIS01
+                     ,DECODE(A.CLCT_SYST_CD, 'UTIS02', A.CLCT_NUM, 0) AS UTIS02
+              FROM TB_CLCT_SYST_STTS_HS A
+              WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+                AND A.CLCT_SYST_CD IN (SELECT CLCT_SYST_CD
+                                       FROM TB_CLCT_SYST_STUP
+                                       WHERE USE_YN = 'Y')
+             )
+        GROUP BY PRCN_DT
+        ORDER BY PRCN_DT
+    </select>
+
+</mapper>

+ 45 - 0
src/main/resources/mybatis/mapper/analysis/PrcnResult.xml

@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.its.op.mapper.analysis.PrcnResultMapper">
+
+<!--
+    // 수집시스템 조회
+    SELECT CLCT_SYST_CD, CLCT_SYST_NM
+    FROM TB_CLCT_SYST_STUP
+    WHERE USE_YN = 'Y'
+-->
+
+    <select id="findAllByDateRange" parameterType="com.its.op.vo.analysis.PrcnResultParam" resultType="com.its.op.vo.analysis.PrcnResultVo">
+        SELECT A.PRCN_DT, FN_TODATEFMT(A.PRCN_DT) AS PRCN_DT_FMT
+               ,A.OPER01+A.VDS01+A.MOCT01+A.UTIS01+A.UTIS02+B.MISS_NUM AS PRCN_TOT
+               ,A.OPER01
+               ,A.VDS01
+               ,A.MOCT01
+               ,A.UTIS01
+               ,A.UTIS02
+               ,B.MISS_NUM
+               ,B.ADJS_NUM
+               ,B.SMTH_NUM
+        FROM (SELECT A.PRCN_DT
+                    ,MAX(DECODE(A.CLCT_SYST_CD, 'OPER01', A.FUSN_NUM, 0)) AS OPER01
+                    ,MAX(DECODE(A.CLCT_SYST_CD, 'VDS01',  A.FUSN_NUM, 0)) AS VDS01
+                    ,MAX(DECODE(A.CLCT_SYST_CD, 'MOCT01', A.FUSN_NUM, 0)) AS MOCT01
+                    ,MAX(DECODE(A.CLCT_SYST_CD, 'UTIS01', A.FUSN_NUM, 0)) AS UTIS01
+                    ,MAX(DECODE(A.CLCT_SYST_CD, 'UTIS02', A.FUSN_NUM, 0)) AS UTIS02
+              FROM TB_CLCT_SYST_STTS_HS A
+              WHERE A.PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+                AND A.CLCT_SYST_CD IN (SELECT CLCT_SYST_CD
+                                       FROM TB_CLCT_SYST_STUP
+                                       WHERE USE_YN = 'Y')
+              GROUP BY A.PRCN_DT
+             ) A,
+             (SELECT PRCN_DT, MISS_NUM, ADJS_NUM, SMTH_NUM
+              FROM TB_TRFC_PRCN_STAT
+              WHERE PRCN_DT BETWEEN #{cond.FROM_DT} AND #{cond.TO_DT}
+             ) B
+        WHERE A.PRCN_DT = B.PRCN_DT
+        ORDER BY A.PRCN_DT
+    </select>
+
+</mapper>