Pārlūkot izejas kodu

setct grade code update api add

shjung 3 gadi atpakaļ
vecāks
revīzija
1358dabed2
24 mainītis faili ar 320 papildinājumiem un 59 dzēšanām
  1. 9 11
      src/main/java/com/its/api/global/CodeManager.java
  2. 12 3
      src/main/java/com/its/api/its/controller/common/CommonController.java
  3. 10 0
      src/main/java/com/its/api/its/controller/database/TbCmtrGradClsfController.java
  4. 13 6
      src/main/java/com/its/api/its/controller/database/TbIfscController.java
  5. 8 3
      src/main/java/com/its/api/its/controller/database/TbLinkController.java
  6. 1 1
      src/main/java/com/its/api/its/controller/database/TbNodeController.java
  7. 13 6
      src/main/java/com/its/api/its/controller/database/TbRoadController.java
  8. 4 0
      src/main/java/com/its/api/its/model/dto/common/DetlTrafIfscDto.java
  9. 4 0
      src/main/java/com/its/api/its/model/dto/common/DetlTrafLinkDto.java
  10. 4 0
      src/main/java/com/its/api/its/model/dto/common/DetlTrafRoadDto.java
  11. 18 0
      src/main/java/com/its/api/its/model/dto/ifsc/TbIfscDto.java
  12. 18 0
      src/main/java/com/its/api/its/model/dto/link/TbLinkDto.java
  13. 18 0
      src/main/java/com/its/api/its/model/dto/road/TbRoadDto.java
  14. 1 0
      src/main/java/com/its/api/its/model/entity/code/TbSectGradClsf.java
  15. 8 1
      src/main/java/com/its/api/its/model/entity/ifsc/TbIfsc.java
  16. 3 0
      src/main/java/com/its/api/its/model/entity/link/TbLink.java
  17. 8 1
      src/main/java/com/its/api/its/model/entity/road/TbRoad.java
  18. 3 0
      src/main/java/com/its/api/its/repository/code/TbCmtrGradClsfRepository.java
  19. 14 0
      src/main/java/com/its/api/its/service/code/TbCmtrGradClsfService.java
  20. 98 0
      src/main/java/com/its/api/its/service/code/TbSectGradClsfService.java
  21. 4 1
      src/main/java/com/its/api/its/service/common/CommonService.java
  22. 17 9
      src/main/java/com/its/api/its/service/ifsc/TbIfscService.java
  23. 17 9
      src/main/java/com/its/api/its/service/link/TbLinkService.java
  24. 15 8
      src/main/java/com/its/api/its/service/road/TbRoadService.java

+ 9 - 11
src/main/java/com/its/api/global/CodeManager.java

@@ -2,8 +2,6 @@ package com.its.api.global;
 
 import com.its.api.config.AppUtils;
 import com.its.api.its.model.dto.code.TbCmmnCdDto;
-import com.its.api.its.model.entity.code.TbSectGradClsf;
-import com.its.api.its.repository.code.TbSectGradClsfRepository;
 import com.its.api.its.service.code.TbCmmnCdService;
 import lombok.Getter;
 import lombok.RequiredArgsConstructor;
@@ -23,7 +21,7 @@ import java.util.concurrent.ConcurrentHashMap;
 public class CodeManager {
 
     private final TbCmmnCdService cmmnCdService;
-    private final TbSectGradClsfRepository sectGradClsfRepository;
+    //private final TbSectGradClsfRepository sectGradClsfRepository;
 
     // 소통정보 결측 소통등급 코드
     public static final String MISS_SPED_GRAD = "LTC0";
@@ -122,14 +120,14 @@ public class CodeManager {
         //log.info("=== {}", codes);
     }
 
-    private void loadSectGradStup() {
-        HashMap<String, Code> codeMap = new HashMap<>();
-        List<TbSectGradClsf> codeList = sectGradClsfRepository.findAll();
-        for (TbSectGradClsf cd : codeList) {
-            codeMap.put(cd.getSectGradCd(), new Code(cd.getSectGradCd(), cd.getSectGradNm(), cd.getSectGradNm()));
-        }
-        codes.put(SECT_GRAD_CD, codeMap);
-    }
+//    private void loadSectGradStup() {
+//        HashMap<String, Code> codeMap = new HashMap<>();
+//        List<TbSectGradClsf> codeList = sectGradClsfRepository.findAll();
+//        for (TbSectGradClsf cd : codeList) {
+//            codeMap.put(cd.getSectGradCd(), new Code(cd.getSectGradCd(), cd.getSectGradNm(), cd.getSectGradNm()));
+//        }
+//        codes.put(SECT_GRAD_CD, codeMap);
+//    }
 
     public static void loadCode(String CMMN_CLSF_CD) {
         TbCmmnCdService cmmnCdService = (TbCmmnCdService) AppUtils.getBean(TbCmmnCdService.class);

+ 12 - 3
src/main/java/com/its/api/its/controller/common/CommonController.java

@@ -1,11 +1,13 @@
 package com.its.api.its.controller.common;
 
 import com.its.api.its.model.dto.code.TbClctSystStupDto;
+import com.its.api.its.model.dto.code.TbSectGradClsfDto;
 import com.its.api.its.model.dto.common.CongestTrafficDto;
 import com.its.api.its.model.dto.common.DetlTrafIfscDto;
 import com.its.api.its.model.dto.common.DetlTrafLinkDto;
 import com.its.api.its.model.dto.common.DetlTrafRoadDto;
 import com.its.api.its.service.code.TbClctSystStupService;
+import com.its.api.its.service.code.TbSectGradClsfService;
 import com.its.api.its.service.common.CommonService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -28,6 +30,7 @@ public class CommonController {
 
     private final TbClctSystStupService clctSystStupService;
     private final CommonService commonService;
+    private final TbSectGradClsfService sectGradClsfService;
 
     // /api/database/clct-syst-stup 와 동일
     @ApiOperation(value = "수집시스템 조회(TB_CLCT_SYST_STUP)", response = TbClctSystStupDto.class, responseContainer = "ArrayList")
@@ -42,7 +45,7 @@ public class CommonController {
         return this.commonService.findAllCongestTraffic();
     }
 
-    @ApiOperation(value = "링크 교통정보상", response = DetlTrafLinkDto.class)
+    @ApiOperation(value = "링크 교통정보상", response = DetlTrafLinkDto.class)
     @GetMapping(value = "/detail-traffic/link/{id}", produces = {"application/json; charset=utf8"})
     public DetlTrafLinkDto findAllDetailTrafficLink(
             @ApiParam(name = "id", value = "링크 ID", example = "2030057800", required = true)
@@ -51,7 +54,7 @@ public class CommonController {
         return this.commonService.findAllDetailTrafficLink(id);
     }
 
-    @ApiOperation(value = "링크 교통정보상", response = DetlTrafIfscDto.class)
+    @ApiOperation(value = "링크 교통정보상", response = DetlTrafIfscDto.class)
     @GetMapping(value = "/detail-traffic/ifsc/{id}", produces = {"application/json; charset=utf8"})
     public DetlTrafIfscDto findAllDetailTrafficIfsc(
             @ApiParam(name = "id", value = "정보제공구간 ID", example = "2005132700", required = true)
@@ -60,7 +63,7 @@ public class CommonController {
         return this.commonService.findAllDetailTrafficIfsc(id);
     }
 
-    @ApiOperation(value = "링크 교통정보상", response = DetlTrafRoadDto.class)
+    @ApiOperation(value = "링크 교통정보상", response = DetlTrafRoadDto.class)
     @GetMapping(value = "/detail-traffic/road/{id}", produces = {"application/json; charset=utf8"})
     public DetlTrafRoadDto findAllDetailTrafficRoad(
             @ApiParam(name = "id", value = "도로 ID", example = "2287001900", required = true)
@@ -69,6 +72,12 @@ public class CommonController {
         return this.commonService.findAllDetailTrafficRoad(id);
     }
 
+    @ApiOperation(value = "구간소통등급 목록 조회", response = TbSectGradClsfDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/sect-grad-cd/list", produces = {"application/json; charset=utf8"})
+    public List<TbSectGradClsfDto> findAllSectGradCdList() {
+        return this.sectGradClsfService.findAll();
+    }
+
     //    @ApiOperation(value = "현재기상정보조회", response = WeatherInfoDto.class, responseContainer = "ArrayList")
 //    @GetMapping(value = "/weather-info", produces = {"application/json; charset=utf8"})
 //    public List<WeatherInfoDto> findAllWeatherInfo() {

+ 10 - 0
src/main/java/com/its/api/its/controller/database/TbCmtrGradClsfController.java

@@ -4,6 +4,7 @@ import com.its.api.its.model.dto.code.TbCmtrGradClsfDto;
 import com.its.api.its.service.code.TbCmtrGradClsfService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
@@ -26,6 +27,15 @@ public class TbCmtrGradClsfController {
         return service.findAll();
     }
 
+    @ApiOperation(value = "구간등급에 따른 소통등급 분류 목록 조회(TB_CMTR_GRAD_CLSF)", response = TbCmtrGradClsfDto.class, responseContainer = "ArrayList")
+    @GetMapping(value = "/list/{sectGradCd}", produces = {"application/json; charset=utf8"})
+    public List<TbCmtrGradClsfDto> findAllGradeList(
+            @ApiParam(name = "sectGradCd", value = "구간등급코드", example = "SRT1", required = true)
+            @PathVariable final String sectGradCd
+    ) {
+        return service.findAllGradeList(sectGradCd);
+    }
+
     @ApiOperation(value = "소통 등급 분류 정보변경/생성-목록(TB_CMTR_GRAD_CLSF)", response = TbCmtrGradClsfDto.class, responseContainer = "ArrayList")
     @PostMapping(value = "", produces = {"application/json; charset=utf8"})
     public List<TbCmtrGradClsfDto> mergeInfoList(@RequestBody @Valid final List<TbCmtrGradClsfDto.TbCmtrGradClsfUpdReq> req) {

+ 13 - 6
src/main/java/com/its/api/its/controller/database/TbIfscController.java

@@ -12,6 +12,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 @Api(tags = "09.기초데이터관리-03.정보제공구간")
@@ -54,12 +55,6 @@ public class TbIfscController {
         return this.service.updateById(id, req);
     }*/
 
-    @ApiOperation(value = "정보제공구간 명칭변경(TB_IFSC)", response = TbIfscDto.class)
-    @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
-    public TbIfscDto updateNameById(@PathVariable final Long id, @RequestBody final TbIfscDto.TbIfscNameUpdReq req) {
-        return this.service.updateNameById(id, req);
-    }
-
     @ApiOperation(value = "정보제공구간 링크구성정보조회-개별(TB_IFSC_LINK_RLTN)", response = TbIfscLinkRltnDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/rltn/{id}", produces = {"application/json; charset=utf8"})
     public List<TbIfscLinkRltnDto> findLinkRltnById(
@@ -77,4 +72,16 @@ public class TbIfscController {
         return this.linkRltnService.updateLinkRltn(id, req);
     }
 
+    @ApiOperation(value = "정보제공구간 명칭변경(TB_IFSC)", response = TbIfscDto.class)
+    @PutMapping(value = "/name/{id}", produces = {"application/json; charset=utf8"})
+    public TbIfscDto updateNameById(@PathVariable final Long id, @RequestBody final TbIfscDto.TbIfscNameUpdReq req) {
+        return this.service.updateNameById(id, req);
+    }
+
+    @ApiOperation(value = "정보제공구간 구간등급 변경(TB_IFSC)", response = TbIfscDto.class)
+    @PutMapping(value = "/sect-grad/{id}", produces = {"application/json; charset=utf8"})
+    public TbIfscDto updateSectGradById(@PathVariable final Long id, @RequestBody @Valid final TbIfscDto.TbIfscSectGradUpdReq req) {
+        return this.service.updateSectGradById(id, req);
+    }
+
 }

+ 8 - 3
src/main/java/com/its/api/its/controller/database/TbLinkController.java

@@ -1,7 +1,6 @@
 package com.its.api.its.controller.database;
 
 import com.its.api.its.model.dto.link.TbLinkDto;
-import com.its.api.its.model.dto.node.TbNodeDto;
 import com.its.api.its.service.link.TbLinkService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -53,10 +52,16 @@ public class TbLinkController {
     }
 */
 
-    @ApiOperation(value = "링크정보 도로명변경(TB_NODE)", response = TbNodeDto.class)
-    @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
+    @ApiOperation(value = "링크정보 도로명변경(TB_LINK)", response = TbLinkDto.class)
+    @PutMapping(value = "/name/{id}", produces = {"application/json; charset=utf8"})
     public TbLinkDto updateNameById(@PathVariable final Long id, @RequestBody @Valid final TbLinkDto.TbLinkNameUpdReq req) {
         return this.service.updateNameById(id, req);
     }
 
+    @ApiOperation(value = "링크정보 구간등급 변경(TB_LINK)", response = TbLinkDto.class)
+    @PutMapping(value = "/sect-grad/{id}", produces = {"application/json; charset=utf8"})
+    public TbLinkDto updateSectGradById(@PathVariable final Long id, @RequestBody @Valid final TbLinkDto.TbLinkSectGradUpdReq req) {
+        return this.service.updateSectGradById(id, req);
+    }
+
 }

+ 1 - 1
src/main/java/com/its/api/its/controller/database/TbNodeController.java

@@ -41,7 +41,7 @@ public class TbNodeController {
 */
 
     @ApiOperation(value = "노드정보 노드이름변경(TB_NODE)", response = TbNodeDto.class)
-    @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
+    @PutMapping(value = "/name/{id}", produces = {"application/json; charset=utf8"})
     public TbNodeDto updateNameById(@PathVariable final Long id, @RequestBody @Valid final TbNodeDto.TbNodeNameUpdReq req) {
         return this.service.updateNameById(id, req);
     }

+ 13 - 6
src/main/java/com/its/api/its/controller/database/TbRoadController.java

@@ -11,6 +11,7 @@ import lombok.RequiredArgsConstructor;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.*;
 
+import javax.validation.Valid;
 import java.util.List;
 
 @Api(tags = "09.기초데이터관리-04.도로")
@@ -53,12 +54,6 @@ public class TbRoadController {
         return this.service.updateById(id, req);
     }*/
 
-    @ApiOperation(value = "도로 명칭변경(TB_ROAD)", response = TbRoadDto.class)
-    @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
-    public TbRoadDto updateNameById(@PathVariable final Long id, @RequestBody final TbRoadDto.TbRoadNameUpdReq req) {
-        return this.service.updateNameById(id, req);
-    }
-
     @ApiOperation(value = "도로 정보제공구간구성정보조회-개별(TB_ROAD_IFSC_RLTN)", response = TbRoadIfscRltnDto.class, responseContainer = "ArrayList")
     @GetMapping(value = "/rltn/{id}", produces = {"application/json; charset=utf8"})
     public List<TbRoadIfscRltnDto> findLinkRltnById(
@@ -76,4 +71,16 @@ public class TbRoadController {
         return this.ifscRltnService.updateIfscRltn(id, req);
     }
 
+    @ApiOperation(value = "도로 명칭변경(TB_ROAD)", response = TbRoadDto.class)
+    @PutMapping(value = "/name/{id}", produces = {"application/json; charset=utf8"})
+    public TbRoadDto updateNameById(@PathVariable final Long id, @RequestBody final TbRoadDto.TbRoadNameUpdReq req) {
+        return this.service.updateNameById(id, req);
+    }
+
+    @ApiOperation(value = "도로 구간등급 변경(TB_ROAD)", response = TbRoadDto.class)
+    @PutMapping(value = "/sect-grad/{id}", produces = {"application/json; charset=utf8"})
+    public TbRoadDto updateSectGradById(@PathVariable final Long id, @RequestBody @Valid final TbRoadDto.TbRoadSectGradUpdReq req) {
+        return this.service.updateSectGradById(id, req);
+    }
+
 }

+ 4 - 0
src/main/java/com/its/api/its/model/dto/common/DetlTrafIfscDto.java

@@ -49,6 +49,10 @@ public class DetlTrafIfscDto implements Serializable {
     @JsonProperty("road_name")
     private String roadName;
 
+    @ApiModelProperty("구간 등급 코드")  // Y VARCHAR(7)
+    @JsonProperty("sect_grad_cd")
+    private String sectGradCd;
+
     @ApiModelProperty("현재소통정보")  // Y VARCHAR(50)
     @JsonProperty("traf")
     private DetlTrafIfscInfo traf;

+ 4 - 0
src/main/java/com/its/api/its/model/dto/common/DetlTrafLinkDto.java

@@ -47,6 +47,10 @@ public class DetlTrafLinkDto implements Serializable {
     @JsonProperty("road_name")
     private String roadName;
 
+    @ApiModelProperty("구간 등급 코드")  // Y VARCHAR(7)
+    @JsonProperty("sect_grad_cd")
+    private String sectGradCd;
+
     @ApiModelProperty("현재소통정보")  // Y VARCHAR(50)
     @JsonProperty("traf")
     private DetlTrafLinkInfo traf;

+ 4 - 0
src/main/java/com/its/api/its/model/dto/common/DetlTrafRoadDto.java

@@ -49,6 +49,10 @@ public class DetlTrafRoadDto implements Serializable {
     @JsonProperty("road_name")
     private String roadName;
 
+    @ApiModelProperty("구간 등급 코드")  // Y VARCHAR(7)
+    @JsonProperty("sect_grad_cd")
+    private String sectGradCd;
+
     @ApiModelProperty("현재소통정보")  // Y VARCHAR(50)
     @JsonProperty("traf")
     private DetlTrafRoadInfo traf;

+ 18 - 0
src/main/java/com/its/api/its/model/dto/ifsc/TbIfscDto.java

@@ -229,4 +229,22 @@ public class TbIfscDto implements Serializable {
         }
     }
 
+    @ApiModel("TbIfscSectGradUpdReq(정보제공구간 구간등급 변경)")
+    @Getter
+    @Setter
+    @ToString
+    @NoArgsConstructor(access = AccessLevel.PROTECTED)
+    public static class TbIfscSectGradUpdReq {
+
+        @ApiModelProperty("구간솥오등급, Nullable = Y, VARCHAR(7)")
+        @JsonProperty("sect_grad_cd")
+        @Size(min=1, max=7)
+        private String sectGradCd;
+
+        @Builder
+        public TbIfscSectGradUpdReq(String sectGradCd) {
+            this.sectGradCd = sectGradCd;
+        }
+    }
+
 }

+ 18 - 0
src/main/java/com/its/api/its/model/dto/link/TbLinkDto.java

@@ -356,4 +356,22 @@ public class TbLinkDto implements Serializable {
         }
     }
 
+    @ApiModel("TbLinkSectGradUpdReq(링크 구간등급 변경)")
+    @Getter
+    @Setter
+    @ToString
+    @NoArgsConstructor(access = AccessLevel.PROTECTED)
+    public static class TbLinkSectGradUpdReq {
+
+        @ApiModelProperty("구간솥오등급, Nullable = Y, VARCHAR(7)")
+        @JsonProperty("sect_grad_cd")
+        @Size(min=1, max=7)
+        private String sectGradCd;
+
+        @Builder
+        public TbLinkSectGradUpdReq(String sectGradCd) {
+            this.sectGradCd = sectGradCd;
+        }
+    }
+
 }

+ 18 - 0
src/main/java/com/its/api/its/model/dto/road/TbRoadDto.java

@@ -206,4 +206,22 @@ public class TbRoadDto implements Serializable {
         }
     }
 
+    @ApiModel("TbRoadSectGradUpdReq(도로 구간등급 변경)")
+    @Getter
+    @Setter
+    @ToString
+    @NoArgsConstructor(access = AccessLevel.PROTECTED)
+    public static class TbRoadSectGradUpdReq {
+
+        @ApiModelProperty("구간솥오등급, Nullable = Y, VARCHAR(7)")
+        @JsonProperty("sect_grad_cd")
+        @Size(min=1, max=7)
+        private String sectGradCd;
+
+        @Builder
+        public TbRoadSectGradUpdReq(String sectGradCd) {
+            this.sectGradCd = sectGradCd;
+        }
+    }
+
 }

+ 1 - 0
src/main/java/com/its/api/its/model/entity/code/TbSectGradClsf.java

@@ -37,6 +37,7 @@ public class TbSectGradClsf implements Serializable {
         return TbSectGradClsfDto.builder()
                 .sectGradCd(this.sectGradCd)
                 .sectGradNm(this.sectGradNm)
+                .sectGradDesc("[" + this.sectGradCd + "] " + this.sectGradNm)
                 .build();
     }
 

+ 8 - 1
src/main/java/com/its/api/its/model/entity/ifsc/TbIfsc.java

@@ -5,7 +5,10 @@ import com.its.api.its.model.dto.ifsc.TbIfscDto;
 import com.its.api.its.model.entity.node.TbNode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
 import org.hibernate.annotations.NotFound;
 import org.hibernate.annotations.NotFoundAction;
 
@@ -138,4 +141,8 @@ public class TbIfsc implements Serializable {
         this.strtNm = req.getStrtNm();
         this.endNm = req.getEndNm();
     }
+
+    public void updateSectGrad(TbIfscDto.TbIfscSectGradUpdReq req) {
+        this.sectGradCd = req.getSectGradCd();
+    }
 }

+ 3 - 0
src/main/java/com/its/api/its/model/entity/link/TbLink.java

@@ -217,5 +217,8 @@ public class TbLink implements Serializable {
     public void updateName(TbLinkDto.TbLinkNameUpdReq req) {
         this.roadName = req.getRoadName();
     }
+    public void updateSectGrad(TbLinkDto.TbLinkSectGradUpdReq req) {
+        this.sectGradCd = req.getSectGradCd();
+    }
 
 }

+ 8 - 1
src/main/java/com/its/api/its/model/entity/road/TbRoad.java

@@ -5,7 +5,10 @@ import com.its.api.its.model.dto.road.TbRoadDto;
 import com.its.api.its.model.entity.node.TbNode;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
-import lombok.*;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
 import org.hibernate.annotations.NotFound;
 import org.hibernate.annotations.NotFoundAction;
 
@@ -126,4 +129,8 @@ public class TbRoad implements Serializable {
         this.strtNm = req.getStrtNm();
         this.endNm = req.getEndNm();
     }
+
+    public void updateSectGrad(TbRoadDto.TbRoadSectGradUpdReq req) {
+        this.sectGradCd = req.getSectGradCd();
+    }
 }

+ 3 - 0
src/main/java/com/its/api/its/repository/code/TbCmtrGradClsfRepository.java

@@ -5,6 +5,7 @@ import com.its.api.its.model.entity.code.TbCmtrGradClsfKey;
 import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
 import org.springframework.stereotype.Repository;
 
 import java.util.List;
@@ -15,4 +16,6 @@ public interface TbCmtrGradClsfRepository extends JpaRepository<TbCmtrGradClsf,
     @Query(value = "select p from TbCmtrGradClsf p inner join fetch p.sect")
     List<TbCmtrGradClsf> findAll();
 
+    @Query(value = "select p from TbCmtrGradClsf p inner join fetch p.sect where p.sectGradCd = :sectGradCd")
+    List<TbCmtrGradClsf> findAllGradeList(@Param("sectGradCd") String sectGradCd);
 }

+ 14 - 0
src/main/java/com/its/api/its/service/code/TbCmtrGradClsfService.java

@@ -96,4 +96,18 @@ public class TbCmtrGradClsfService {
         return result;
     }
 
+    /**
+     * 구간등급에 해당되는 소통등급 정보 조회
+     * @param sectGradCd
+     * @return
+     */
+    @Transactional
+    public List<TbCmtrGradClsfDto> findAllGradeList(String sectGradCd) {
+        List<TbCmtrGradClsfDto> result = new ArrayList<>();
+        List<TbCmtrGradClsf> data = this.repo.findAllGradeList(sectGradCd);
+        for (TbCmtrGradClsf entity : data) {
+            result.add(entity.toDto());
+        }
+        return result;
+    }
 }

+ 98 - 0
src/main/java/com/its/api/its/service/code/TbSectGradClsfService.java

@@ -0,0 +1,98 @@
+package com.its.api.its.service.code;
+
+import com.its.api.its.model.dto.code.TbSectGradClsfDto;
+import com.its.api.its.model.entity.code.TbSectGradClsf;
+import com.its.api.its.repository.code.TbSectGradClsfRepository;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.NoSuchElementException;
+import java.util.Optional;
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class TbSectGradClsfService {
+
+    private final TbSectGradClsfRepository repo;
+
+    // 데이터 1건 조회, 없으면 exception
+    private TbSectGradClsf requireOne(String id) {
+        return this.repo.findById(id)
+                .orElseThrow(() -> new NoSuchElementException("데이터가 존재하지 않습니다: " + id));
+    }
+
+    // 전체 데이터 조회
+    @Transactional(readOnly = true)
+    public List<TbSectGradClsfDto> findAll() {
+        List<TbSectGradClsfDto> result = new ArrayList<>();
+        List<TbSectGradClsf> data = this.repo.findAll();
+        for (TbSectGradClsf entity : data) {
+            result.add(entity.toDto());
+        }
+        return result;
+    }
+
+    // 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
+    @Transactional(readOnly = true)
+    public TbSectGradClsfDto findById(String id) {
+        TbSectGradClsf entity = requireOne(id);
+        return entity.toDto();
+    }
+
+    // 데이터 변경
+    @Transactional
+    public TbSectGradClsfDto updateById(String id, TbSectGradClsfDto.TbSectGradClsfUpdReq req) {
+        TbSectGradClsf entity = requireOne(id);
+        entity.updateInfo(req);
+        this.repo.save(entity);
+        return entity.toDto();
+    }
+
+    // 데이터 변경 또는 생성-목록(데이터가 존재하면 업데이트 없으면 신규로 생성)
+    @Transactional
+    public List<TbSectGradClsfDto> mergeInfoList(List<TbSectGradClsfDto.TbSectGradClsfUpdReq> reqList) {
+        List<TbSectGradClsfDto> result = new ArrayList<>();
+        for (TbSectGradClsfDto.TbSectGradClsfUpdReq req : reqList) {
+            TbSectGradClsf obj = req.toEntity();
+            this.repo.save(obj);
+            result.add(obj.toDto());
+        }
+        return result;
+    }
+
+    // 데이터 변경 또는 생성-개별(데이터가 존재하면 업데이트 없으면 신규로 생성)
+    @Transactional
+    public TbSectGradClsfDto mergeInfo(TbSectGradClsfDto.TbSectGradClsfUpdReq req) {
+        TbSectGradClsf obj = req.toEntity();
+        this.repo.save(obj);
+        return obj.toDto();
+    }
+
+    // 정보 삭제-개별, 데이터 존재하지 않으면 Exception
+    @Transactional
+    public TbSectGradClsfDto deleteById(String id) {
+        TbSectGradClsf entity = requireOne(id);
+        this.repo.deleteById(id);
+        return entity.toDto();
+    }
+
+    // 정보 삭제-목록, 존재하는 데이터 만 삭제
+    @Transactional
+    public List<TbSectGradClsfDto> deleteByIds(List<String> ids) {
+        List<TbSectGradClsfDto> result = new ArrayList<>();
+        for (String id : ids) {
+            Optional<TbSectGradClsf> obj = this.repo.findById(id);
+            if (obj.isPresent()) {
+                this.repo.deleteById(id);
+                result.add(obj.get().toDto());
+            }
+        }
+        return result;
+    }
+
+}

+ 4 - 1
src/main/java/com/its/api/its/service/common/CommonService.java

@@ -55,6 +55,7 @@ public class CommonService {
                 .tNodeId(dto.getTNodeId())
                 .tNodeNm(dto.getToNodeInfo())
                 .roadName(dto.getRoadName())
+                .sectGradCd(dto.getSectGradCd())
                 //.traf(new DetlTrafLinkDto.DetlTrafLinkInfo())
                 .trafHs(new ArrayList<>())
                 .build();
@@ -90,6 +91,7 @@ public class CommonService {
                 .tNodeId(dto.getTNodeId())
                 .tNodeNm(dto.getToNodeInfo())
                 .roadName(dto.getIfscNm())
+                .sectGradCd(dto.getSectGradCd())
                 //.traf(new DetlTrafIfscDto.DetlTrafIfscInfo())
                 .trafHs(new ArrayList<>())
                 .build();
@@ -118,13 +120,14 @@ public class CommonService {
         TbRoadDto dto = this.roadService.findById(roadId);
         DetlTrafRoadDto result = DetlTrafRoadDto.builder()
                 .roadId(roadId)
-                .levl(2)
+                .levl(3)
                 .sectLngt(dto.getSectLngt())
                 .fNodeId(dto.getFNodeId())
                 .fNodeNm(dto.getFromNodeInfo())
                 .tNodeId(dto.getTNodeId())
                 .tNodeNm(dto.getToNodeInfo())
                 .roadName(dto.getRoadName())
+                .sectGradCd(dto.getSectGradCd())
                 //.traf(new DetlTrafRoadDto.DetlTrafRoadInfo())
                 .trafHs(new ArrayList<>())
                 .build();

+ 17 - 9
src/main/java/com/its/api/its/service/ifsc/TbIfscService.java

@@ -125,15 +125,6 @@ public class TbIfscService {
         return result;
     }
 
-    // 이름 변경
-    @Transactional
-    public TbIfscDto updateNameById(Long id, TbIfscDto.TbIfscNameUpdReq req) {
-        TbIfsc entity = requireOne(id);
-        entity.updateName(req);
-        this.repo.save(entity);
-        return entity.toDto();
-    }
-
     /**
      * 지도검색
      * @param filter
@@ -156,4 +147,21 @@ public class TbIfscService {
         });
         return result;
     }
+
+    // 이름 변경
+    @Transactional
+    public TbIfscDto updateNameById(Long id, TbIfscDto.TbIfscNameUpdReq req) {
+        TbIfsc entity = requireOne(id);
+        entity.updateName(req);
+        this.repo.save(entity);
+        return entity.toDto();
+    }
+
+    @Transactional
+    public TbIfscDto updateSectGradById(Long id, TbIfscDto.TbIfscSectGradUpdReq req) {
+        TbIfsc entity = requireOne(id);
+        entity.updateSectGrad(req);
+        this.repo.save(entity);
+        return entity.toDto();
+    }
 }

+ 17 - 9
src/main/java/com/its/api/its/service/link/TbLinkService.java

@@ -99,15 +99,6 @@ public class TbLinkService {
         return entity.toDto();
     }
 
-    // 도로명 변경
-    @Transactional
-    public TbLinkDto updateNameById(Long id, TbLinkDto.TbLinkNameUpdReq req) {
-        TbLink entity = requireOne(id);
-        entity.updateName(req);
-        this.repo.save(entity);
-        return entity.toDto();
-    }
-
     // 데이터 변경 또는 생성-목록(데이터가 존재하면 업데이트 없으면 신규로 생성)
     @Transactional
     public List<TbLinkDto> mergeInfoList(List<TbLinkDto.TbLinkUpdReq> reqList) {
@@ -172,4 +163,21 @@ public class TbLinkService {
         });
         return result;
     }
+
+    // 도로명 변경
+    @Transactional
+    public TbLinkDto updateNameById(Long id, TbLinkDto.TbLinkNameUpdReq req) {
+        TbLink entity = requireOne(id);
+        entity.updateName(req);
+        this.repo.save(entity);
+        return entity.toDto();
+    }
+
+    @Transactional
+    public TbLinkDto updateSectGradById(Long id, TbLinkDto.TbLinkSectGradUpdReq req) {
+        TbLink entity = requireOne(id);
+        entity.updateSectGrad(req);
+        this.repo.save(entity);
+        return entity.toDto();
+    }
 }

+ 15 - 8
src/main/java/com/its/api/its/service/road/TbRoadService.java

@@ -125,14 +125,6 @@ public class TbRoadService {
         return result;
     }
 
-    // 이름 변경
-    @Transactional
-    public TbRoadDto updateNameById(Long id, TbRoadDto.TbRoadNameUpdReq req) {
-        TbRoad entity = requireOne(id);
-        entity.updateName(req);
-        this.repo.save(entity);
-        return entity.toDto();
-    }
 
     /**
      * 지도검색
@@ -156,4 +148,19 @@ public class TbRoadService {
         });
         return result;
     }
+
+    // 이름 변경
+    @Transactional
+    public TbRoadDto updateNameById(Long id, TbRoadDto.TbRoadNameUpdReq req) {
+        TbRoad entity = requireOne(id);
+        entity.updateName(req);
+        this.repo.save(entity);
+        return entity.toDto();
+    }
+    public TbRoadDto updateSectGradById(Long id, TbRoadDto.TbRoadSectGradUpdReq req) {
+        TbRoad entity = requireOne(id);
+        entity.updateSectGrad(req);
+        this.repo.save(entity);
+        return entity.toDto();
+    }
 }