HANTE пре 6 месеци
родитељ
комит
7f5003482b

+ 1 - 0
src/main/java/com/its/traf/dao/mapper/its/TbSectGradMapper.java

@@ -11,5 +11,6 @@ public interface TbSectGradMapper {
 
     List<TbSectGradVo> findAllList();
     List<TbSectGradStupDto> findAllListStup();
+    List<TbSectGradStupDto> findAllListStupLocal();
 
 }

+ 4 - 0
src/main/java/com/its/traf/dto/its/TbSectGradStupDto.java

@@ -17,6 +17,10 @@ import java.io.Serializable;
 public class TbSectGradStupDto implements Serializable {
     private static final long serialVersionUID = 1L;
 
+//    @ApiModelProperty("구간 등급 기준 코드(M:국토교통부, L:평택시)")  // N VARCHAR2(7)
+//    @JsonProperty("sect_grad_tp")
+//    private String sectGradTp;
+
     @ApiModelProperty("구간 등급 코드")  // N VARCHAR2(7)
     @JsonProperty("sect_grad_cd")
     private String sectGradCd;

+ 12 - 0
src/main/java/com/its/traf/service/its/TbIfscService.java

@@ -167,12 +167,23 @@ public class TbIfscService extends AbstractDataService<Long, TbIfscDto> implemen
                 traf.setTFVL(nSumTfvl);
                 traf.setSPED((int)Math.round(fSumSped / fSumDist));
                 traf.setTRVL_HH(ifsc.getTravelTime(traf.getSPED()));
+
+                // 소통등급 설정
                 TbSectGradDto sectGrad = this.sectGradService.get(ifsc.getSectGradCd());
                 if (sectGrad != null) {
                     traf.setCMTR_GRAD_CD(sectGrad.getCmtrGradCd(traf.getSPED()));
                 } else {
                     traf.setCMTR_GRAD_CD(this.sectGradService.getCmtrGradCd(traf.getSPED()));
                 }
+
+                // 지역등급기준 소통등급 설정
+                sectGrad = this.sectGradService.getLocal(ifsc.getSectGradCd());
+                if (sectGrad != null) {
+                    traf.setLOCAL_GRAD_CD(sectGrad.getCmtrGradCd(traf.getSPED()));
+                } else {
+                    traf.setLOCAL_GRAD_CD(this.sectGradService.getCmtrGradCd(traf.getSPED()));
+                }
+
                 if (nOcpyCnt > 0) {
                     traf.setOCPY_RATE(fSumOcpy / nOcpyCnt);
                 } else {
@@ -211,6 +222,7 @@ public class TbIfscService extends AbstractDataService<Long, TbIfscDto> implemen
             param.put("CMTR_GRAD_CD",   traf.getCMTR_GRAD_CD());
             param.put("PTRN_SPED",      traf.getPTRN_SPED());
             param.put("DATA_NUM",       traf.getDATA_NUM());
+            param.put("LOCAL_GRAD_CD",  traf.getLOCAL_GRAD_CD());
             updLists.add(param);
             if (traf.getSPED() > 0) {
                 insLists.add(param);

+ 12 - 1
src/main/java/com/its/traf/service/its/TbLinkService.java

@@ -363,14 +363,24 @@ public class TbLinkService extends AbstractDataService<Long, TbLinkDto> implemen
                 traf.setPRCN_SPED(link.getPtrn05().getSped());
             }
 
-            // 통행시간, 소통등급 설정
+            // 통행시간
             traf.setTRVL_HH(link.getTravelTime(traf.getSPED()));
+
+            // 소통등급 설정
             TbSectGradDto sectGrad = this.sectGradService.get(link.getSectGradCd());
             if (sectGrad != null) {
                 traf.setCMTR_GRAD_CD(sectGrad.getCmtrGradCd(traf.getSPED()));
             } else {
                 traf.setCMTR_GRAD_CD(this.sectGradService.getCmtrGradCd(traf.getSPED()));
             }
+
+            // 지역등급기준 소통등급 설정
+            sectGrad = this.sectGradService.getLocal(link.getSectGradCd());
+            if (sectGrad != null) {
+                traf.setLOCAL_GRAD_CD(sectGrad.getCmtrGradCd(traf.getSPED()));
+            } else {
+                traf.setLOCAL_GRAD_CD(this.sectGradService.getCmtrGradCd(traf.getSPED()));
+            }
         }
     }
 
@@ -532,6 +542,7 @@ public class TbLinkService extends AbstractDataService<Long, TbLinkDto> implemen
             param.put("PRCN_SORC",      traf.getPRCN_SORC());
             param.put("ADJS_SORC",      traf.getADJS_SORC());
             param.put("DATA_NUM",       traf.getDATA_NUM());
+            param.put("LOCAL_GRAD_CD",  traf.getLOCAL_GRAD_CD());
             updLists.add(param);
             if (traf.getSPED() > 0) {
                 insLists.add(param);

+ 12 - 0
src/main/java/com/its/traf/service/its/TbRoadService.java

@@ -167,12 +167,23 @@ public class TbRoadService extends AbstractDataService<Long, TbRoadDto> implemen
                 traf.setTFVL(nSumTfvl);
                 traf.setSPED((int)Math.round(fSumSped / fSumDist));
                 traf.setTRVL_HH(road.getTravelTime(traf.getSPED()));
+
+                // 소통등급 설정
                 TbSectGradDto sectGrad = this.sectGradService.get(road.getSectGradCd());
                 if (sectGrad != null) {
                     traf.setCMTR_GRAD_CD(sectGrad.getCmtrGradCd(traf.getSPED()));
                 } else {
                     traf.setCMTR_GRAD_CD(this.sectGradService.getCmtrGradCd(traf.getSPED()));
                 }
+
+                // 지역등급기준 소통등급
+                sectGrad = this.sectGradService.getLocal(road.getSectGradCd());
+                if (sectGrad != null) {
+                    traf.setLOCAL_GRAD_CD(sectGrad.getCmtrGradCd(traf.getSPED()));
+                } else {
+                    traf.setLOCAL_GRAD_CD(this.sectGradService.getCmtrGradCd(traf.getSPED()));
+                }
+
                 if (nOcpyCnt > 0) {
                     traf.setOCPY_RATE(fSumOcpy / nOcpyCnt);
                 } else {
@@ -212,6 +223,7 @@ public class TbRoadService extends AbstractDataService<Long, TbRoadDto> implemen
             param.put("CMTR_GRAD_CD",   traf.getCMTR_GRAD_CD());
             param.put("PTRN_SPED",      traf.getPTRN_SPED());
             param.put("DATA_NUM",       traf.getDATA_NUM());
+            param.put("LOCAL_GRAD_CD",  traf.getLOCAL_GRAD_CD());
             updLists.add(param);
             if (traf.getSPED() > 0) {
                 insLists.add(param);

+ 36 - 15
src/main/java/com/its/traf/service/its/TbSectGradService.java

@@ -10,6 +10,7 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
+import java.util.Hashtable;
 import java.util.List;
 
 @Slf4j
@@ -17,6 +18,7 @@ import java.util.List;
 @Service
 public class TbSectGradService extends AbstractDataService<String, TbSectGradDto> {
 
+    private Hashtable<String, TbSectGradDto> localMapData = new Hashtable<>();
     private final TbSectGradMapper mapper;
 
     /**
@@ -35,8 +37,10 @@ public class TbSectGradService extends AbstractDataService<String, TbSectGradDto
         for (TbSectGradVo ett : data) {
             TbSectGradDto dto = ett.toDto();
             put(ett.getSectGradCd(), dto);
+            this.localMapData.put(ett.getSectGradCd(), dto);
         }
 
+        // 국토교통부 기준 소통등급 정보조회
         List<TbSectGradStupDto> stupData = this.mapper.findAllListStup();
         for (TbSectGradStupDto dto : stupData) {
             TbSectGradDto obj = get(dto.getSectGradCd());
@@ -44,29 +48,46 @@ public class TbSectGradService extends AbstractDataService<String, TbSectGradDto
                 obj.getGradSubs().add(dto);
             }
         }
-
-        // 구간 소통등급 정보 소팅
-        for(String key: keySet()) {
+        // 소통등급 정보 소팅
+        for (String key: keySet()) {
             TbSectGradDto obj = get(key);
             obj.makeGradCdMap();
         }
+
+        // 지역등급기준 소통등급 정보조회
+        stupData = this.mapper.findAllListStupLocal();
+        for (TbSectGradStupDto dto : stupData) {
+            TbSectGradDto obj = this.localMapData.get(dto.getSectGradCd());
+            if (obj != null) {
+                obj.getGradSubs().add(dto);
+            }
+        }
+        // 소통등급 정보 소팅
+        for (String key: this.localMapData.keySet()) {
+            TbSectGradDto localObj = this.localMapData.get(key);
+            localObj.makeGradCdMap();
+        }
         return count();
     }
 
-    /**
-     * 구간 등급과 속도를 이용하여 소통등급 코드를 조회
-     * @param SECT_GRAD_CD
-     * @param spd
-     * @return
-     */
-    public String getGradCd(String SECT_GRAD_CD, int spd) {
-        TbSectGradDto grad = get(SECT_GRAD_CD);
-        if (grad != null) {
-            return grad.getCmtrGradCd(spd);
-        }
-        return "?";
+    public TbSectGradDto getLocal(String grade) {
+        return this.localMapData.get(grade);
     }
 
+//    /**
+//     * 구간 등급과 속도를 이용하여 소통등급 코드를 조회
+//     * @param SECT_GRAD_CD
+//     * @param spd
+//     * @return
+//     */
+//    public String getGradCd(String SECT_GRAD_CD, int spd) {
+//        TbSectGradDto grad = get(SECT_GRAD_CD);
+//        if (grad != null) {
+//            return grad.getCmtrGradCd(spd);
+//        }
+//        return "?";
+//    }
+
     public String getCmtrGradCd(int spd) {
         if (spd <= 0) {
             return ITS.TRAFFIC_NONE;

+ 2 - 0
src/main/java/com/its/traf/vo/traffic/voIfscTraf.java

@@ -19,6 +19,7 @@ public class voIfscTraf {
     private int    TRVL_HH;         //	N	NUMBER(6)	    Y	0		통행 시간
     private String CMTR_GRAD_CD;    //	N	VARCHAR2(7)	    Y			소통 등급 코드
     private int    DATA_NUM;        //	N	NUMBER(3)	    Y	0		데이터 개수
+    private String LOCAL_GRAD_CD;    //	N	VARCHAR2(7)	    Y			지역등급기준 소통 등급 코드
 
     public boolean isValid() {
         return this.CMTR_GRAD_CD.equals(ITS.TRAFFIC_NONE) ? false : true;
@@ -35,5 +36,6 @@ public class voIfscTraf {
         this.CMTR_GRAD_CD = ITS.TRAFFIC_NONE;
         this.PTRN_SPED    = 0;
         this.DATA_NUM     = 0;
+        this.LOCAL_GRAD_CD = ITS.TRAFFIC_NONE;
     }
 }

+ 3 - 0
src/main/java/com/its/traf/vo/traffic/voLinkTraf.java

@@ -25,6 +25,7 @@ public class voLinkTraf {
     private String PRCN_SORC;       //	N	VARCHAR2(7)	    Y			가공 소스
     private String ADJS_SORC;       //	N	VARCHAR2(7)	    Y			보정 소스
     private int    DATA_NUM;        //	N	NUMBER(3)	    Y	0		데이터 개수
+    private String LOCAL_GRAD_CD;    //	N	VARCHAR2(7)	    Y			지역등급기준 소통 등급 코드
 
     public boolean isValid() {
         return this.CMTR_GRAD_CD.equals(ITS.TRAFFIC_NONE) ? false : true;
@@ -50,6 +51,7 @@ public class voLinkTraf {
         this.PRCN_SORC    = ITS.CORRECT_SOURCE_NONE;
         this.ADJS_SORC    = ITS.CORRECT_SOURCE_NONE;
         this.DATA_NUM     = 0;
+        this.LOCAL_GRAD_CD = ITS.TRAFFIC_NONE;
     }
 
     public voLinkTraf copy(Long LINK_ID) {
@@ -70,6 +72,7 @@ public class voLinkTraf {
         traf.setPRCN_SORC(this.PRCN_SORC);
         traf.setADJS_SORC(this.ADJS_SORC);
         traf.setDATA_NUM(this.DATA_NUM);
+        traf.setLOCAL_GRAD_CD(this.LOCAL_GRAD_CD);
         return traf;
     }
 }

+ 2 - 0
src/main/java/com/its/traf/vo/traffic/voRoadTraf.java

@@ -19,6 +19,7 @@ public class voRoadTraf {
     private int    TRVL_HH;         //	N	NUMBER(6)	    Y	0		통행 시간
     private String CMTR_GRAD_CD;    //	N	VARCHAR2(7)	    Y			소통 등급 코드
     private int    DATA_NUM;        //	N	NUMBER(3)	    Y	0		데이터 개수
+    private String LOCAL_GRAD_CD;    //	N	VARCHAR2(7)	    Y			지역등급기준 소통 등급 코드
 
     public boolean isValid() {
         return this.CMTR_GRAD_CD.equals(ITS.TRAFFIC_NONE) ? false : true;
@@ -35,5 +36,6 @@ public class voRoadTraf {
         this.CMTR_GRAD_CD = ITS.TRAFFIC_NONE;
         this.PTRN_SPED    = 0;
         this.DATA_NUM     = 0;
+        this.LOCAL_GRAD_CD = ITS.TRAFFIC_NONE;
     }
 }

+ 4 - 1
src/main/resources/application.yml

@@ -45,6 +45,9 @@ spring:
     name: traf-prcs-server
   profiles:
     active: prod
+  config:
+    import:
+      - optional:file:${user.dir}/conf/traf-prcs-server.yml
   main:
     web-application-type: none
     log-startup-info: true
@@ -57,7 +60,7 @@ spring:
       connection-test-query: SELECT 1 FROM DUAL
       minimum-idle: 10
       #maximum-pool-size: 50
-      pool-name: pool-its-op-server
+      pool-name: pool-traf-prcs-server
 
 logging:
   level:

+ 8 - 4
src/main/resources/mybatis/mapper/its/IfscMapper.xml

@@ -45,7 +45,8 @@
                       #{TRVL_HH}      AS TRVL_HH,
                       #{CMTR_GRAD_CD} AS CMTR_GRAD_CD,
                       #{PTRN_SPED}    AS PTRN_SPED,
-                      #{DATA_NUM}     AS DATA_NUM
+                      #{DATA_NUM}     AS DATA_NUM,
+                      #{LOCAL_GRAD_CD} AS LOCAL_GRAD_CD
                  FROM DUAL
               ) M
         ON (L.IFSC_ID = M.IFSC_ID)
@@ -58,7 +59,8 @@
                    L.TRVL_HH      = M.TRVL_HH,
                    L.CMTR_GRAD_CD = M.CMTR_GRAD_CD,
                    L.PTRN_SPED    = M.PTRN_SPED,
-                   L.DATA_NUM     = M.DATA_NUM
+                   L.DATA_NUM     = M.DATA_NUM,
+                   L.LOCAL_GRAD_CD = M.LOCAL_GRAD_CD
         WHEN NOT MATCHED THEN
         INSERT (
                    IFSC_ID,
@@ -69,7 +71,8 @@
                    TRVL_HH,
                    CMTR_GRAD_CD,
                    PTRN_SPED,
-                   DATA_NUM )
+                   DATA_NUM,
+                   LOCAL_GRAD_CD )
         VALUES (
                    M.IFSC_ID,
                    M.PRCN_DT,
@@ -79,7 +82,8 @@
                    M.TRVL_HH,
                    M.CMTR_GRAD_CD,
                    M.PTRN_SPED,
-                   M.DATA_NUM )
+                   M.DATA_NUM,
+                   M.LOCAL_GRAD_CD )
     ]]>
     </update>
 

+ 8 - 4
src/main/resources/mybatis/mapper/its/LinkMapper.xml

@@ -52,7 +52,8 @@
                       #{PTRN_SPED}    AS PTRN_SPED,
                       #{PRCN_SORC}    AS PRCN_SORC,
                       #{ADJS_SORC}    AS ADJS_SORC,
-                      #{DATA_NUM}     AS DATA_NUM
+                      #{DATA_NUM}     AS DATA_NUM,
+                      #{LOCAL_GRAD_CD} AS LOCAL_GRAD_CD
                  FROM DUAL
               ) M
         ON (L.LINK_ID = M.LINK_ID)
@@ -71,7 +72,8 @@
                    L.PTRN_SPED    = M.PTRN_SPED,
                    L.PRCN_SORC    = M.PRCN_SORC,
                    L.ADJS_SORC    = M.ADJS_SORC,
-                   L.DATA_NUM     = M.DATA_NUM
+                   L.DATA_NUM     = M.DATA_NUM,
+                   L.LOCAL_GRAD_CD = M.LOCAL_GRAD_CD
         WHEN NOT MATCHED THEN
         INSERT (
                    LINK_ID,
@@ -88,7 +90,8 @@
                    PTRN_SPED,
                    PRCN_SORC,
                    ADJS_SORC,
-                   DATA_NUM )
+                   DATA_NUM,
+                   LOCAL_GRAD_CD )
         VALUES (
                    M.LINK_ID,
                    M.PRCN_DT,
@@ -104,7 +107,8 @@
                    M.PTRN_SPED,
                    M.PRCN_SORC,
                    M.ADJS_SORC,
-                   M.DATA_NUM )
+                   M.DATA_NUM,
+                   M.LOCAL_GRAD_CD )
     ]]>
     </update>
 

+ 8 - 4
src/main/resources/mybatis/mapper/its/RoadMapper.xml

@@ -43,7 +43,8 @@
                       #{TRVL_HH}      AS TRVL_HH,
                       #{CMTR_GRAD_CD} AS CMTR_GRAD_CD,
                       #{PTRN_SPED}    AS PTRN_SPED,
-                      #{DATA_NUM}     AS DATA_NUM
+                      #{DATA_NUM}     AS DATA_NUM,
+                      #{LOCAL_GRAD_CD} AS LOCAL_GRAD_CD
                  FROM DUAL
               ) M
         ON (L.ROAD_ID = M.ROAD_ID)
@@ -56,7 +57,8 @@
                    L.TRVL_HH      = M.TRVL_HH,
                    L.CMTR_GRAD_CD = M.CMTR_GRAD_CD,
                    L.PTRN_SPED    = M.PTRN_SPED,
-                   L.DATA_NUM     = M.DATA_NUM
+                   L.DATA_NUM     = M.DATA_NUM,
+                   L.LOCAL_GRAD_CD = M.LOCAL_GRAD_CD
         WHEN NOT MATCHED THEN
         INSERT (
                    ROAD_ID,
@@ -67,7 +69,8 @@
                    TRVL_HH,
                    CMTR_GRAD_CD,
                    PTRN_SPED,
-                   DATA_NUM )
+                   DATA_NUM,
+                   LOCAL_GRAD_CD )
         VALUES (
                    M.ROAD_ID,
                    M.PRCN_DT,
@@ -77,7 +80,8 @@
                    M.TRVL_HH,
                    M.CMTR_GRAD_CD,
                    M.PTRN_SPED,
-                   M.DATA_NUM )
+                   M.DATA_NUM,
+                   M.LOCAL_GRAD_CD )
     ]]>
     </update>
 

+ 13 - 0
src/main/resources/mybatis/mapper/its/TbSectGradMapper.xml

@@ -19,6 +19,19 @@
                A.HGHS_TRVL_SPED AS HGHS_TRVL_SPED,
                A.CNGS_GRAD_YN   AS CNGS_GRAD_YN
         FROM TB_SECT_GRAD_STUP A
+        WHERE A.SECT_GRAD_TP = 'M'
+        ]]>
+    </select>
+
+    <select id="findAllListStupLocal" resultType="com.its.traf.dto.its.TbSectGradStupDto" fetchSize="100">
+    <![CDATA[
+        SELECT A.SECT_GRAD_CD   AS SECT_GRAD_CD,
+               A.CMTR_GRAD_CD   AS CMTR_GRAD_CD,
+               A.LWST_TRVL_SPED AS LWST_TRVL_SPED,
+               A.HGHS_TRVL_SPED AS HGHS_TRVL_SPED,
+               A.CNGS_GRAD_YN   AS CNGS_GRAD_YN
+        FROM TB_SECT_GRAD_STUP A
+        WHERE A.SECT_GRAD_TP = 'L'
         ]]>
     </select>