Parcourir la source

jpa continue...

shjung il y a 3 ans
Parent
commit
676a544c29
24 fichiers modifiés avec 770 ajouts et 233 suppressions
  1. 51 18
      src/main/java/com/its/op/controller/database/TbIfscController.java
  2. 35 0
      src/main/java/com/its/op/controller/database/TbIfscControllerMybatis.java
  3. 40 18
      src/main/java/com/its/op/controller/database/TbLinkController.java
  4. 15 15
      src/main/java/com/its/op/controller/database/TbNodeController.java
  5. 1 1
      src/main/java/com/its/op/global/Code.java
  6. 108 0
      src/main/java/com/its/op/global/CodeManager.java
  7. 53 0
      src/main/java/com/its/op/global/NodeManager.java
  8. 65 19
      src/main/java/com/its/op/model/dto/IfscDto.java
  9. 41 0
      src/main/java/com/its/op/model/dto/IfscLinkRltnDto.java
  10. 91 29
      src/main/java/com/its/op/model/dto/LinkDto.java
  11. 12 12
      src/main/java/com/its/op/model/dto/NodeDto.java
  12. 12 3
      src/main/java/com/its/op/model/entity/Ifsc.java
  13. 32 0
      src/main/java/com/its/op/model/entity/IfscLinkRltn.java
  14. 8 1
      src/main/java/com/its/op/model/entity/Link.java
  15. 1 1
      src/main/java/com/its/op/model/entity/Node.java
  16. 28 0
      src/main/java/com/its/op/model/entity/SectGradStup.java
  17. 0 105
      src/main/java/com/its/op/model/enums/CodeRepository.java
  18. 15 0
      src/main/java/com/its/op/repository/IfscLinkRltnRepository.java
  19. 0 6
      src/main/java/com/its/op/repository/IfscRepository.java
  20. 14 0
      src/main/java/com/its/op/repository/IfscRepositoryOld.java
  21. 10 0
      src/main/java/com/its/op/repository/SectGradStupRepository.java
  22. 73 0
      src/main/java/com/its/op/service/database/TbIfscService.java
  23. 60 0
      src/main/java/com/its/op/service/database/TbLinkService.java
  24. 5 5
      src/main/java/com/its/op/service/database/TbNodeService.java

+ 51 - 18
src/main/java/com/its/op/controller/database/TbIfscController.java

@@ -1,35 +1,68 @@
 package com.its.op.controller.database;
 
-import com.its.op.controller.AbstractDatabaseController;
-import com.its.op.service.database.impl.TbIfscServiceImpl;
-import com.its.op.model.vo.database.TbIfscVo;
+import com.its.op.model.dto.IfscDto;
+import com.its.op.model.dto.IfscLinkRltnDto;
+import com.its.op.model.entity.Ifsc;
+import com.its.op.model.entity.IfscLinkRltn;
+import com.its.op.service.database.TbIfscService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
 
 @Slf4j
+@RequiredArgsConstructor
 @RestController
-@RequestMapping("/api/database//tb-ifsc")
+@RequestMapping("/api/database/tb-ifsc")
 @Api(tags = "09.기초데이터관리-03.서비스링크", description="서비스링크")
-public class TbIfscController extends AbstractDatabaseController<TbIfscVo> {
+public class TbIfscController {
 
-    private final TbIfscServiceImpl service;
+    private final TbIfscService service;
 
-    public TbIfscController(TbIfscServiceImpl service) {
-        super(service);
-        this.service = service;
+    @ApiOperation(value = "전체조회(TB_IFSC)", response = IfscDto.IfscInfo.class)
+    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<List<IfscDto.IfscInfo>> findAll() {
+        List<Ifsc> data = this.service.findAll();
+        List<IfscDto.IfscInfo> result = new ArrayList<>();
+        for (Ifsc obj: data) {
+            result.add(new IfscDto.IfscInfo(obj));
+        }
+        return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "이름변경(TB_IFSC)", response = TbIfscVo.class)
-    @PutMapping(value = "/name/", produces = {"application/json; charset=utf8"})
-    public int updateNameById(@RequestBody TbIfscVo obj, HttpServletRequest request) {
-        return this.service.updateNameById(obj);
+    @ApiOperation(value = "서비스링크개별조회(TB_IFSC)", response = IfscDto.IfscInfo.class)
+    @GetMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<IfscDto.IfscInfo> findById(@PathVariable final Long id) {
+        Ifsc obj = this.service.findById(id);
+        if (obj != null) {
+            return new ResponseEntity<>(new IfscDto.IfscInfo(obj), HttpStatus.OK);
+        }
+        return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT);
     }
 
+    @ApiOperation(value = "구간명변경(TB_IFSC)", response = IfscDto.IfscInfo.class)
+    @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<IfscDto.IfscInfo> updateNameById(@PathVariable final Long id, @RequestBody final IfscDto.IfscNameUpdateReq req) {
+        Ifsc obj = this.service.updateNameById(id, req);
+        if (obj != null) {
+            return new ResponseEntity<>(new IfscDto.IfscInfo(obj), HttpStatus.OK);
+        }
+        return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT);
+    }
+
+    @ApiOperation(value = "서비스링크개별구성정보조회(TB_IFSC)", response = IfscLinkRltnDto.IfscLinkRltnInfo.class)
+    @GetMapping(value = "/link-rltn/{id}", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<IfscLinkRltnDto.IfscLinkRltnInfo> findLinkRltnById(@PathVariable final Long id) {
+        List<IfscLinkRltn> objs = this.service.findLinkRltnById(id);
+        if (objs != null) {
+            //return new ResponseEntity<>(new IfscDto.IfscInfo(obj), HttpStatus.OK);
+        }
+        return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT);
+    }
 }

+ 35 - 0
src/main/java/com/its/op/controller/database/TbIfscControllerMybatis.java

@@ -0,0 +1,35 @@
+package com.its.op.controller.database;
+
+import com.its.op.controller.AbstractDatabaseController;
+import com.its.op.model.vo.database.TbIfscVo;
+import com.its.op.service.database.impl.TbIfscServiceImpl;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.PutMapping;
+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;
+
+@Slf4j
+@RestController
+@RequestMapping("/api-mybatis/database/tb-ifsc")
+@Api(tags = "09.기초데이터관리-03.서비스링크", description="서비스링크")
+public class TbIfscControllerMybatis extends AbstractDatabaseController<TbIfscVo> {
+
+    private final TbIfscServiceImpl service;
+
+    public TbIfscControllerMybatis(TbIfscServiceImpl service) {
+        super(service);
+        this.service = service;
+    }
+
+    @ApiOperation(value = "이름변경(TB_IFSC)", response = TbIfscVo.class)
+    @PutMapping(value = "/name/", produces = {"application/json; charset=utf8"})
+    public int updateNameById(@RequestBody TbIfscVo obj, HttpServletRequest request) {
+        return this.service.updateNameById(obj);
+    }
+
+}

+ 40 - 18
src/main/java/com/its/op/controller/database/TbLinkController.java

@@ -1,35 +1,57 @@
 package com.its.op.controller.database;
 
-import com.its.op.controller.AbstractDatabaseController;
-import com.its.op.service.database.impl.TbLinkServiceImpl;
-import com.its.op.model.vo.database.TbLinkVo;
+import com.its.op.model.dto.LinkDto;
+import com.its.op.model.entity.Link;
+import com.its.op.service.database.TbLinkService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.web.bind.annotation.PutMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.*;
 
-import javax.servlet.http.HttpServletRequest;
+import java.util.ArrayList;
+import java.util.List;
 
 @Slf4j
+@RequiredArgsConstructor
 @RestController
-@RequestMapping("/api/database//tb-link")
+@RequestMapping("/api/database/tb-link")
 @Api(tags = "09.기초데이터관리-02.링크", description="링크")
-public class TbLinkController extends AbstractDatabaseController<TbLinkVo> {
+public class TbLinkController {
 
-    private final TbLinkServiceImpl service;
+    private final TbLinkService service;
 
-    public TbLinkController(TbLinkServiceImpl service) {
-        super(service);
-        this.service = service;
+    @ApiOperation(value = "전체조회(TB_LINK)", response = LinkDto.LinkInfo.class)
+    @GetMapping(value = "", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<List<LinkDto.LinkInfo>> findAll() {
+        List<Link> data = this.service.findAll();
+        List<LinkDto.LinkInfo> result = new ArrayList<>();
+        for (Link obj: data) {
+            result.add(new LinkDto.LinkInfo(obj));
+        }
+        return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "이름변경(TB_LINK)", response = TbLinkVo.class)
-    @PutMapping(value = "/name/", produces = {"application/json; charset=utf8"})
-    public int updateNameById(@RequestBody TbLinkVo obj, HttpServletRequest request) {
-        return this.service.updateNameById(obj);
+    @ApiOperation(value = "링크개별조회(TB_LINK)", response = LinkDto.LinkInfo.class)
+    @GetMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<LinkDto.LinkInfo> findById(@PathVariable final Long id) {
+        Link obj = this.service.findById(id);
+        if (obj != null) {
+            return new ResponseEntity<>(new LinkDto.LinkInfo(obj), HttpStatus.OK);
+        }
+        return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT);
+    }
+
+    @ApiOperation(value = "도로명변경(TB_LINK)", response = LinkDto.LinkInfo.class)
+    @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
+    public ResponseEntity<LinkDto.LinkInfo> updateNameById(@PathVariable final Long id, @RequestBody final LinkDto.LinkNameUpdateReq req) {
+        Link obj = this.service.updateNameById(id, req);
+        if (obj != null) {
+            return new ResponseEntity<>(new LinkDto.LinkInfo(obj), HttpStatus.OK);
+        }
+        return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT);
     }
 
 }

+ 15 - 15
src/main/java/com/its/op/controller/database/TbNodeController.java

@@ -23,33 +23,33 @@ public class TbNodeController {
 
     private final TbNodeService service;
 
-    @ApiOperation(value = "전체조회(TB_NODE)", response = NodeDto.Info.class)
+    @ApiOperation(value = "전체조회(TB_NODE)", response = NodeDto.NodeInfo.class)
     @GetMapping(value = "", produces = {"application/json; charset=utf8"})
-    public ResponseEntity<List<NodeDto.Info>> findAll() {
+    public ResponseEntity<List<NodeDto.NodeInfo>> findAll() {
         List<Node> data = this.service.findAll();
-        List<NodeDto.Info> result = new ArrayList<>();
-        for (Node node: data) {
-            result.add(new NodeDto.Info(node));
+        List<NodeDto.NodeInfo> result = new ArrayList<>();
+        for (Node obj: data) {
+            result.add(new NodeDto.NodeInfo(obj));
         }
         return new ResponseEntity<>(result, HttpStatus.OK);
     }
 
-    @ApiOperation(value = "노드개별조회(TB_NODE)", response = NodeDto.Info.class)
+    @ApiOperation(value = "노드개별조회(TB_NODE)", response = NodeDto.NodeInfo.class)
     @GetMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
-    public ResponseEntity<NodeDto.Info> findById(@PathVariable final Long id) {
-        Node node = this.service.findById(id);
-        if (node != null) {
-            return new ResponseEntity<>(new NodeDto.Info(node), HttpStatus.OK);
+    public ResponseEntity<NodeDto.NodeInfo> findById(@PathVariable final Long id) {
+        Node obj = this.service.findById(id);
+        if (obj != null) {
+            return new ResponseEntity<>(new NodeDto.NodeInfo(obj), HttpStatus.OK);
         }
         return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT);
     }
 
-    @ApiOperation(value = "이름변경(TB_NODE)", response = NodeDto.Info.class)
+    @ApiOperation(value = "이름변경(TB_NODE)", response = NodeDto.NodeInfo.class)
     @PutMapping(value = "/{id}", produces = {"application/json; charset=utf8"})
-    public ResponseEntity<NodeDto.Info> updateNameById(@PathVariable final Long id, @RequestBody final NodeDto.NameUpdateReq req) {
-        Node node = this.service.updateNameById(id, req);
-        if (node != null) {
-            return new ResponseEntity<>(new NodeDto.Info(node), HttpStatus.OK);
+    public ResponseEntity<NodeDto.NodeInfo> updateNameById(@PathVariable final Long id, @RequestBody final NodeDto.NodeNameUpdateReq req) {
+        Node obj = this.service.updateNameById(id, req);
+        if (obj != null) {
+            return new ResponseEntity<>(new NodeDto.NodeInfo(obj), HttpStatus.OK);
         }
         return new ResponseEntity<>(null, HttpStatus.NOT_FOUND);//NO_CONTENT);
     }

+ 1 - 1
src/main/java/com/its/op/model/enums/Code.java → src/main/java/com/its/op/global/Code.java

@@ -1,4 +1,4 @@
-package com.its.op.model.enums;
+package com.its.op.global;
 
 import lombok.*;
 

+ 108 - 0
src/main/java/com/its/op/global/CodeManager.java

@@ -0,0 +1,108 @@
+package com.its.op.global;
+
+import com.its.op.model.entity.CmmnCd;
+import com.its.op.model.entity.SectGradStup;
+import com.its.op.repository.CmmnCdRepository;
+import com.its.op.repository.SectGradStupRepository;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.HashMap;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
+@Slf4j
+@RequiredArgsConstructor
+@Getter
+@Component
+public class CodeManager {
+
+    private final CmmnCdRepository repo;
+    private final SectGradStupRepository sectGradStupRepository;
+
+    private static final String defUnknownCode = "X";
+    private static final String defUnknownDesc = "UNKNOWN";
+
+    public static final String DAY_TYPE_CD      = "DTW";   // 요일유형
+    public static final String CMTR_GRAD_CD     = "LTC";   // 소통등급
+    public static final String ADJS_SORC        = "MCS";   // 보정소스
+    public static final String NODE_TYPE        = "NDT";   // 노드유형
+    public static final String ROAD_USE         = "RDU";   // 도로사용여부
+    public static final String ROAD_RANK        = "RDR";   // 도로등급
+    public static final String ROAD_TYPE        = "RDT";   // 도로유형
+    public static final String MULTI_LINK       = "MLT";   // 중용구간
+    public static final String LINK_CONNECT     = "CTR";   // 연결로
+    public static final String REST_VEH         = "PLV";   // 통행제한차량
+    public static final String SECT_GRAD_CD     = "SRT";   // 구간 등급 코드
+    public static final String DRCT_CD          = "IFD";   // 방향 코드
+
+    private static final ConcurrentHashMap<String, HashMap<String, Code>> codes = new ConcurrentHashMap<>();
+
+    @PostConstruct
+    void init() {
+        load();
+    }
+
+    public void load() {
+
+        loadCode(DAY_TYPE_CD);
+        loadCode(CMTR_GRAD_CD);
+        loadCode(ADJS_SORC);
+        loadCode(NODE_TYPE);
+        loadCode(ROAD_USE);
+        loadCode(ROAD_RANK);
+        loadCode(ROAD_TYPE);
+        loadCode(MULTI_LINK);
+        loadCode(LINK_CONNECT);
+        loadCode(REST_VEH);
+        loadCode(DRCT_CD);
+        loadCode(SECT_GRAD_CD);
+
+        //loadSectGradStup();
+        log.info("=== {}", codes);
+    }
+
+    private void loadSectGradStup() {
+        HashMap<String, Code> codeMap = new HashMap<>();
+        List<SectGradStup> codeList = sectGradStupRepository.findAll();
+        for (SectGradStup cd : codeList) {
+            codeMap.put(cd.getSECT_GRAD_CD(), new Code(cd.getSECT_GRAD_CD(), cd.getSECT_GRAD_NM(), cd.getSECT_GRAD_NM()));
+        }
+        codes.put(SECT_GRAD_CD, codeMap);
+    }
+
+    public void loadCode(String CMMN_CLSF_CD) {
+        HashMap<String, Code> codeMap = new HashMap<>();
+        List<CmmnCd> codeList = this.repo.findAllByCmmnClsfCd(CMMN_CLSF_CD);
+        if (codeList != null) {
+            for (CmmnCd cd : codeList) {
+                codeMap.put(cd.getCMMN_CD(), new Code(cd.getCMMN_CD(), cd.getCMMN_CD_KOR_NM(), cd.getCMMN_CD_ENGL_NM()));
+            }
+        }
+        codes.put(CMMN_CLSF_CD, codeMap);
+    }
+
+    public static String getCodeDesc(String CMMN_CLSF_CD, String CMMN_CD) {
+        HashMap<String, Code> codeMap = codes.get(CMMN_CLSF_CD);
+        if (codeMap != null) {
+            Code code = codeMap.get(CMMN_CD);
+            if (code != null) {
+                return "[" + CMMN_CD + "] " + code.getDesc();
+            }
+        }
+        return "[" + CMMN_CD + "] " + defUnknownDesc;
+    }
+    public static String getCodeDescShort(String CMMN_CLSF_CD, String CMMN_CD) {
+        HashMap<String, Code> codeMap = codes.get(CMMN_CLSF_CD);
+        if (codeMap != null) {
+            Code code = codeMap.get(CMMN_CD);
+            if (code != null) {
+                return code.getDesc();
+            }
+        }
+        return defUnknownDesc;
+    }
+}

+ 53 - 0
src/main/java/com/its/op/global/NodeManager.java

@@ -0,0 +1,53 @@
+package com.its.op.global;
+
+import com.its.op.model.dto.NodeDto;
+import com.its.op.model.entity.Node;
+import com.its.op.repository.NodeRepository;
+import lombok.Getter;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import java.util.List;
+import java.util.concurrent.ConcurrentHashMap;
+
+@Slf4j
+@RequiredArgsConstructor
+@Getter
+@Component
+public class NodeManager {
+
+    private final NodeRepository repo;
+
+    private static final ConcurrentHashMap<Long, NodeDto.NodeInfo> nodeMap = new ConcurrentHashMap<>();
+
+    @PostConstruct
+    void init() {
+        load();
+    }
+
+    public void load() {
+
+        List<Node> lists = repo.findAll();
+        for (Node obj : lists) {
+            nodeMap.put(obj.getNODE_ID(), new NodeDto.NodeInfo(obj));
+        }
+        //log.info("=== {}", nodeMap);
+    }
+
+    public static String getNodeName(Long NODE_ID) {
+        NodeDto.NodeInfo obj = nodeMap.get(NODE_ID);
+        if (obj != null) {
+            return "[" + NODE_ID + "] " + obj.getNODE_NAME();
+        }
+        return "[" + NODE_ID + "] ?";
+    }
+    public static String getNodeNameShort(Long NODE_ID) {
+        NodeDto.NodeInfo obj = nodeMap.get(NODE_ID);
+        if (obj != null) {
+            return obj.getNODE_NAME();
+        }
+        return "?";
+    }
+}

+ 65 - 19
src/main/java/com/its/op/model/dto/IfscDto.java

@@ -1,28 +1,74 @@
 package com.its.op.model.dto;
 
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
+import com.its.op.global.CodeManager;
+import com.its.op.global.NodeManager;
+import com.its.op.model.entity.Ifsc;
+import lombok.*;
 
 import java.io.Serializable;
 
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
 public class IfscDto implements Serializable {
 
-    private Long    IFSC_ID;            //	N	NUMBER(10)	    N			정보제공구간 ID
-    private String  IFSC_NM;            //	N	VARCHAR2(100)	Y			정보제공구간 명
-    private String  DRCT_CD;            //	N	VARCHAR2(7)	    Y			방향 코드
-    private String  STRT_NM;            //	N	VARCHAR2(100)	Y			시점 명
-    private String  END_NM;             //	N	VARCHAR2(100)	Y			종점 명
-    private Integer SECT_LNGT;          //	N	NUMBER(5)	    Y	0		구간 길이
-    private String  EXTR_CNCT_SECT_YN;  //	N	CHAR(1)	        Y	'N'		외부 연계 구간 여부
-    private String  RMRK;               //	N	VARCHAR2(600)	Y			비고
-    private Long    F_NODE_ID;          //	N	NUMBER(10)	    Y			시작 노드 ID
-    private Long    T_NODE_ID;          //	N	NUMBER(10)	    Y			종료 노드 ID
-    private String  SECT_GRAD_CD;       //	N	VARCHAR2(7)	    Y			구간 등급 코드
-    private String  AREA_CD;            //	N	VARCHAR2(7)	    Y			지역 코드
-    private String  DEL_YN;             //	N	CHAR(1)	        Y	'N'		삭제 여부
+    @Getter
+    public static class IfscInfo {
+        private final Long    IFSC_ID;            //	N	NUMBER(10)	    N			정보제공구간 ID
+        private final String  IFSC_NM;            //	N	VARCHAR2(100)	Y			정보제공구간 명
+        private final String  DRCT_CD;            //	N	VARCHAR2(7)	    Y			방향 코드
+        private final String  STRT_NM;            //	N	VARCHAR2(100)	Y			시점 명
+        private final String  END_NM;             //	N	VARCHAR2(100)	Y			종점 명
+        private final Integer SECT_LNGT;          //	N	NUMBER(5)	    Y	0		구간 길이
+        private final String  EXTR_CNCT_SECT_YN;  //	N	CHAR(1)	        Y	'N'		외부 연계 구간 여부
+        private final String  RMRK;               //	N	VARCHAR2(600)	Y			비고
+        private final Long    F_NODE_ID;          //	N	NUMBER(10)	    Y			시작 노드 ID
+        private final Long    T_NODE_ID;          //	N	NUMBER(10)	    Y			종료 노드 ID
+        private final String  SECT_GRAD_CD;       //	N	VARCHAR2(7)	    Y			구간 등급 코드
+        private final String  AREA_CD;            //	N	VARCHAR2(7)	    Y			지역 코드
+        private final String  DEL_YN;             //	N	CHAR(1)	        Y	'N'		삭제 여부
+
+        private final String FROM_NODE;
+        private final String TO_NODE;
+        private final String DRCT_CD_DESC;
+        private final String SECT_GRAD_CD_DESC;
+
+        public IfscInfo(Ifsc entity) {
+            this.IFSC_ID           = entity.getIFSC_ID();
+            this.IFSC_NM           = entity.getIFSC_NM();
+            this.DRCT_CD           = entity.getDRCT_CD();
+            this.STRT_NM           = entity.getSTRT_NM();
+            this.END_NM            = entity.getEND_NM();
+            this.SECT_LNGT         = entity.getSECT_LNGT();
+            this.EXTR_CNCT_SECT_YN = entity.getEXTR_CNCT_SECT_YN();
+            this.RMRK              = entity.getRMRK();
+            this.F_NODE_ID         = entity.getF_NODE_ID();
+            this.T_NODE_ID         = entity.getT_NODE_ID();
+            this.SECT_GRAD_CD      = entity.getSECT_GRAD_CD();
+            this.AREA_CD           = entity.getAREA_CD();
+            this.DEL_YN            = entity.getDEL_YN();
+
+            this.FROM_NODE = NodeManager.getNodeName(this.F_NODE_ID);
+            this.TO_NODE = NodeManager.getNodeName(this.T_NODE_ID);
+
+            this.DRCT_CD_DESC = CodeManager.getCodeDesc(CodeManager.DRCT_CD, this.DRCT_CD);
+            this.SECT_GRAD_CD_DESC = CodeManager.getCodeDesc(CodeManager.SECT_GRAD_CD, this.SECT_GRAD_CD);
+        }
+    }
+
+    @Getter
+    @Setter
+    @ToString
+    @NoArgsConstructor(access = AccessLevel.PROTECTED)
+    public static class IfscNameUpdateReq {
+
+        private String IFSC_NM;
+        private String STRT_NM;
+        private String END_NM;
+
+        @Builder
+        public IfscNameUpdateReq(String IFSC_NM, String STRT_NM, String END_NM) {
+            this.IFSC_NM = IFSC_NM;
+            this.STRT_NM = STRT_NM;
+            this.END_NM = END_NM;
+        }
+    }
 
 }

+ 41 - 0
src/main/java/com/its/op/model/dto/IfscLinkRltnDto.java

@@ -0,0 +1,41 @@
+package com.its.op.model.dto;
+
+import com.its.op.model.entity.IfscLinkRltn;
+import lombok.*;
+
+import java.io.Serializable;
+
+public class IfscLinkRltnDto implements Serializable {
+
+    @Getter
+    public static class IfscLinkRltnInfo {
+        private final Long    IFSC_ID;            //	N	NUMBER(10)	    N			정보제공구간 ID
+        private final Long    LINK_ID;            //	N	NUMBER(10)	    N			링크 ID
+        private final Integer ORD;                //	N	NUMBER(3)	    N			링크 ID
+
+        public IfscLinkRltnInfo(IfscLinkRltn entity) {
+            this.IFSC_ID           = entity.getIFSC_ID();
+            this.LINK_ID           = entity.getLINK_ID();
+            this.ORD               = entity.getORD();
+        }
+    }
+
+    @Getter
+    @Setter
+    @ToString
+    @NoArgsConstructor(access = AccessLevel.PROTECTED)
+    public static class IfscLinkRltnUpdateReq {
+
+        private Long    IFSC_ID;
+        private Long    LINK_ID;
+        private Integer ORD;
+
+        @Builder
+        public IfscLinkRltnUpdateReq(Long IFSC_ID, Long LINK_ID, Integer ORD) {
+            this.IFSC_ID = IFSC_ID;
+            this.LINK_ID = LINK_ID;
+            this.ORD = ORD;
+        }
+    }
+
+}

+ 91 - 29
src/main/java/com/its/op/model/dto/LinkDto.java

@@ -1,38 +1,100 @@
 package com.its.op.model.dto;
 
-import lombok.AllArgsConstructor;
-import lombok.Data;
-import lombok.NoArgsConstructor;
+import com.its.op.global.CodeManager;
+import com.its.op.global.NodeManager;
+import com.its.op.model.entity.Link;
+import lombok.*;
 
 import java.io.Serializable;
 
-@Data
-@NoArgsConstructor
-@AllArgsConstructor
 public class LinkDto implements Serializable {
 
-    private Long    LINK_ID;            //	N	NUMBER(10)	    N			링크ID
-    private Long    F_NODE;             //	N	NUMBER(10)	    Y			시작노드ID
-    private Long    T_NODE;             //	N	NUMBER(10)	    Y			종료노드ID
-    private String  ROAD_USE;           //	N	VARCHAR2(1)	    N			도로사용여부
-    private Integer LANES;              //	N	NUMBER(4)	    Y			차로수
-    private String  ROAD_RANK;          //	N	VARCHAR2(3)	    Y			도로등급
-    private String  ROAD_TYPE;          //	N	VARCHAR2(3)	    Y			도로유형
-    private String  ROAD_NO;            //	N	VARCHAR2(5)	    Y			도로번호
-    private String  ROAD_NAME;          //	N	VARCHAR2(50)	Y			도로명
-    private String  MULTI_LINK;         //	N	VARCHAR2(1)	    N			중용구간여부
-    private String  LINK_CONNECT;       //	N	VARCHAR2(3)	    Y			연결로코드
-    private Integer MAX_SPD;            //	N	NUMBER(4)	    Y			최고제한속도
-    private String  REST_VEH;           //	N	VARCHAR2(3)	    Y			통행제한차량
-    private Integer REST_W;             //	N	NUMBER(5)	    Y			통과제한하중
-    private Integer REST_H;             //	N	NUMBER(5)	    Y			통과제한높이
-    private Integer LINK_LENG;          //	N	NUMBER(5)	    Y			연장
-    private String  RMRK;               //	N	VARCHAR2(50)	Y			비고
-    private Integer DFLT_SPED;          //	N	NUMBER(3)	    Y	0		디폴트 속도
-    private String  DFLT_SPED_USE_YN;   //	N	CHAR(1)	        Y	'N'		디폴트 속도 사용 여부
-    private String  SECT_GRAD_CD;       //	N	VARCHAR2(7)	    Y			구간 등급 코드
-    private String  AREA_CD;            //	N	VARCHAR2(7)	    Y			지역 코드
-    private Integer PARA_ID;            //	N	NUMBER(10)	    Y	1		파라미터ID
-    private String  DEL_YN;              //	N	CHAR(1)	        Y	'N'		삭제 여부
+    @Getter
+    public static class LinkInfo {
+        private final Long    LINK_ID;            //	N	NUMBER(10)	    N			링크ID
+        private final Long    F_NODE;             //	N	NUMBER(10)	    Y			시작노드ID
+        private final Long    T_NODE;             //	N	NUMBER(10)	    Y			종료노드ID
+        private final String  ROAD_USE;           //	N	VARCHAR2(1)	    N			도로사용여부
+        private final Integer LANES;              //	N	NUMBER(4)	    Y			차로수
+        private final String  ROAD_RANK;          //	N	VARCHAR2(3)	    Y			도로등급
+        private final String  ROAD_TYPE;          //	N	VARCHAR2(3)	    Y			도로유형
+        private final String  ROAD_NO;            //	N	VARCHAR2(5)	    Y			도로번호
+        private final String  ROAD_NAME;          //	N	VARCHAR2(50)	Y			도로명
+        private final String  MULTI_LINK;         //	N	VARCHAR2(1)	    N			중용구간여부
+        private final String  LINK_CONNECT;       //	N	VARCHAR2(3)	    Y			연결로코드
+        private final Integer MAX_SPD;            //	N	NUMBER(4)	    Y			최고제한속도
+        private final String  REST_VEH;           //	N	VARCHAR2(3)	    Y			통행제한차량
+        private final Integer REST_W;             //	N	NUMBER(5)	    Y			통과제한하중
+        private final Integer REST_H;             //	N	NUMBER(5)	    Y			통과제한높이
+        private final Integer LINK_LENG;          //	N	NUMBER(5)	    Y			연장
+        private final String  RMRK;               //	N	VARCHAR2(50)	Y			비고
+        private final Integer DFLT_SPED;          //	N	NUMBER(3)	    Y	0		디폴트 속도
+        private final String  DFLT_SPED_USE_YN;   //	N	CHAR(1)	        Y	'N'		디폴트 속도 사용 여부
+        private final String  SECT_GRAD_CD;       //	N	VARCHAR2(7)	    Y			구간 등급 코드
+        private final String  AREA_CD;            //	N	VARCHAR2(7)	    Y			지역 코드
+        private final Integer PARA_ID;            //	N	NUMBER(10)	    Y	1		파라미터ID
+        private final String  DEL_YN;             //	N	CHAR(1)	        Y	'N'		삭제 여부
+
+        private final String FROM_NODE;
+        private final String TO_NODE;
+        private final String ROAD_USE_DESC;
+        private final String ROAD_RANK_DESC;
+        private final String ROAD_TYPE_DESC;
+        private final String MULTI_LINK_DESC;
+        private final String LINK_CONNECT_DESC;
+        private final String REST_VEH_DESC;
+        private final String SECT_GRAD_CD_DESC;
+
+        public LinkInfo(Link entity) {
+            this.LINK_ID          = entity.getLINK_ID();
+            this.F_NODE           = entity.getF_NODE();
+            this.T_NODE           = entity.getT_NODE();
+            this.ROAD_USE         = entity.getROAD_USE();
+            this.LANES            = entity.getLANES();
+            this.ROAD_RANK        = entity.getROAD_RANK();
+            this.ROAD_TYPE        = entity.getROAD_TYPE();
+            this.ROAD_NO          = entity.getROAD_NO();
+            this.ROAD_NAME        = entity.getROAD_NAME();
+            this.MULTI_LINK       = entity.getMULTI_LINK();
+            this.LINK_CONNECT     = entity.getLINK_CONNECT();
+            this.MAX_SPD          = entity.getMAX_SPD();
+            this.REST_VEH         = entity.getREST_VEH();
+            this.REST_W           = entity.getREST_W();
+            this.REST_H           = entity.getREST_H();
+            this.LINK_LENG        = entity.getLINK_LENG();
+            this.RMRK             = entity.getRMRK();
+            this.DFLT_SPED        = entity.getDFLT_SPED();
+            this.DFLT_SPED_USE_YN = entity.getDFLT_SPED_USE_YN();
+            this.SECT_GRAD_CD     = entity.getSECT_GRAD_CD();
+            this.AREA_CD          = entity.getAREA_CD();
+            this.PARA_ID          = entity.getPARA_ID();
+            this.DEL_YN           = entity.getDEL_YN();
+
+            this.FROM_NODE = NodeManager.getNodeName(this.F_NODE);
+            this.TO_NODE = NodeManager.getNodeName(this.T_NODE);
+
+            this.ROAD_USE_DESC = CodeManager.getCodeDesc(CodeManager.ROAD_USE, this.ROAD_USE);
+            this.ROAD_RANK_DESC = CodeManager.getCodeDesc(CodeManager.ROAD_RANK, this.ROAD_RANK);
+            this.ROAD_TYPE_DESC = CodeManager.getCodeDesc(CodeManager.ROAD_TYPE, this.ROAD_TYPE);
+            this.MULTI_LINK_DESC = CodeManager.getCodeDesc(CodeManager.MULTI_LINK, this.MULTI_LINK);
+            this.LINK_CONNECT_DESC = CodeManager.getCodeDesc(CodeManager.LINK_CONNECT, this.LINK_CONNECT);
+            this.REST_VEH_DESC = CodeManager.getCodeDesc(CodeManager.REST_VEH, this.REST_VEH);
+            this.SECT_GRAD_CD_DESC = CodeManager.getCodeDesc(CodeManager.SECT_GRAD_CD, this.SECT_GRAD_CD);
+        }
+    }
+
+    @Getter
+    @Setter
+    @ToString
+    @NoArgsConstructor(access = AccessLevel.PROTECTED)
+    public static class LinkNameUpdateReq {
+
+        private String ROAD_NAME;
+
+        @Builder
+        public LinkNameUpdateReq(String ROAD_NAME) {
+            this.ROAD_NAME = ROAD_NAME;
+        }
+    }
 
 }

+ 12 - 12
src/main/java/com/its/op/model/dto/NodeDto.java

@@ -1,7 +1,7 @@
 package com.its.op.model.dto;
 
+import com.its.op.global.CodeManager;
 import com.its.op.model.entity.Node;
-import com.its.op.model.enums.CodeRepository;
 import lombok.*;
 
 import java.io.Serializable;
@@ -9,7 +9,7 @@ import java.io.Serializable;
 public class NodeDto implements Serializable {
 
     @Getter
-    public static class Info {
+    public static class NodeInfo {
         private final Long   NODE_ID;     //	N	NUMBER(10)	    N			노드ID
         private final String NODE_TYPE;   //	N	VARCHAR2(3)	    Y			노드유형
         private final String NODE_NAME;   //	N	VARCHAR2(100)	Y			교차로명칭
@@ -21,16 +21,16 @@ public class NodeDto implements Serializable {
         private final String NODE_TYPE_DESC;
         private final String TURN_P_DESC;
 
-        public Info(Node entity) {
-            this.NODE_ID = entity.getNODE_ID();
+        public NodeInfo(Node entity) {
+            this.NODE_ID   = entity.getNODE_ID();
             this.NODE_TYPE = entity.getNODE_TYPE();
             this.NODE_NAME = entity.getNODE_NAME();
-            this.TURN_P = entity.getTURN_P();
-            this.RMRK  = entity.getRMRK();
-            this.X_CRDN = entity.getX_CRDN();
-            this.Y_CRDN  = entity.getY_CRDN();
+            this.TURN_P    = entity.getTURN_P();
+            this.RMRK      = entity.getRMRK();
+            this.X_CRDN    = entity.getX_CRDN();
+            this.Y_CRDN    = entity.getY_CRDN();
 
-            this.NODE_TYPE_DESC = CodeRepository.getCodeDesc(CodeRepository.NODE_TYPE, this.NODE_TYPE);
+            this.NODE_TYPE_DESC = CodeManager.getCodeDesc(CodeManager.NODE_TYPE, this.NODE_TYPE);
 
             if (this.TURN_P.equals("0"))
                 this.TURN_P_DESC = "[0] 무";
@@ -38,7 +38,7 @@ public class NodeDto implements Serializable {
             if (this.TURN_P.equals("1"))
                 this.TURN_P_DESC = "[1] 유";
             else
-                this.TURN_P_DESC = "[" + TURN_P + "] ?";
+                this.TURN_P_DESC = "[" + this.TURN_P + "] ?";
         }
     }
 
@@ -46,12 +46,12 @@ public class NodeDto implements Serializable {
     @Setter
     @ToString
     @NoArgsConstructor(access = AccessLevel.PROTECTED)
-    public static class NameUpdateReq {
+    public static class NodeNameUpdateReq {
 
         private String NODE_NAME;
 
         @Builder
-        public NameUpdateReq(String NODE_NAME) {
+        public NodeNameUpdateReq(String NODE_NAME) {
             this.NODE_NAME = NODE_NAME;
         }
     }

+ 12 - 3
src/main/java/com/its/op/model/entity/Ifsc.java

@@ -1,5 +1,6 @@
 package com.its.op.model.entity;
 
+import com.its.op.model.dto.IfscDto;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -7,7 +8,10 @@ import org.hibernate.annotations.ColumnDefault;
 import org.hibernate.annotations.DynamicInsert;
 import org.hibernate.annotations.DynamicUpdate;
 
-import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
 
 @DynamicInsert
 @DynamicUpdate
@@ -52,7 +56,7 @@ public class Ifsc {
     /*@OneToOne(mappedBy = "ifscInfo")
     @Fetch(FetchMode.JOIN)
     private IfscTraf ifscTraf = new IfscTraf();*/
-    @OneToOne
+   /* @OneToOne
     @JoinColumn(insertable=false, updatable=false, name="IFSC_ID", referencedColumnName = "IFSC_ID")
     private IfscTraf traf = new IfscTraf();
 
@@ -62,6 +66,11 @@ public class Ifsc {
 
     @OneToOne
     @JoinColumn(insertable=false, updatable=false, name="T_NODE_ID", referencedColumnName = "NODE_ID")
-    private Node to_node= new Node();
+    private Node to_node= new Node();*/
 
+    public void updateName(IfscDto.IfscNameUpdateReq req) {
+        this.IFSC_NM = req.getIFSC_NM();
+        this.STRT_NM = req.getSTRT_NM();
+        this.END_NM = req.getEND_NM();
+    }
 }

+ 32 - 0
src/main/java/com/its/op/model/entity/IfscLinkRltn.java

@@ -0,0 +1,32 @@
+package com.its.op.model.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@DynamicInsert
+@DynamicUpdate
+@Getter
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "TB_IFSC_LINK_RLTN")
+public class IfscLinkRltn {
+
+    @Id
+    @Column(nullable = false, length = 10)
+    private Long    IFSC_ID;            //	N	NUMBER(10)	    N			정보제공구간 ID
+    //@Id
+    @Column(nullable = false, length = 10)
+    private Long    LINK_ID;            //	N	NUMBER(10)	    N			링크 ID
+    //@Id
+    @Column(nullable = false, length = 3)
+    private Integer ORD;                //	N	NUMBER(3)	    N			링크 ID
+}

+ 8 - 1
src/main/java/com/its/op/model/entity/Link.java

@@ -1,5 +1,6 @@
 package com.its.op.model.entity;
 
+import com.its.op.model.dto.LinkDto;
 import lombok.AllArgsConstructor;
 import lombok.Getter;
 import lombok.NoArgsConstructor;
@@ -8,7 +9,10 @@ import org.hibernate.annotations.ColumnDefault;
 import org.hibernate.annotations.DynamicInsert;
 import org.hibernate.annotations.DynamicUpdate;
 
-import javax.persistence.*;
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
 
 @DynamicInsert
 @DynamicUpdate
@@ -70,4 +74,7 @@ public class Link {
     @ColumnDefault(value = "N")
     private String  DEL_YN;              //	N	CHAR(1)	        Y	'N'		삭제 여부
 
+    public void updateName(LinkDto.LinkNameUpdateReq req) {
+        this.ROAD_NAME = req.getROAD_NAME();
+    }
 }

+ 1 - 1
src/main/java/com/its/op/model/entity/Node.java

@@ -39,7 +39,7 @@ public class Node {
     @Column(columnDefinition = "NUMBER", length = 10, precision = 8)
     private Double Y_CRDN;      //	N	NUMBER(10,8)	Y			Y 좌표
 
-    public void updateName(NodeDto.NameUpdateReq req) {
+    public void updateName(NodeDto.NodeNameUpdateReq req) {
         this.NODE_NAME = req.getNODE_NAME();
     }
 }

+ 28 - 0
src/main/java/com/its/op/model/entity/SectGradStup.java

@@ -0,0 +1,28 @@
+package com.its.op.model.entity;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.hibernate.annotations.DynamicInsert;
+import org.hibernate.annotations.DynamicUpdate;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.Table;
+
+@DynamicInsert
+@DynamicUpdate
+@Getter
+@Setter
+@NoArgsConstructor
+@AllArgsConstructor
+@Entity
+@Table(name = "TB_SECT_GRAD_CLSF")
+public class SectGradStup {
+
+    @Id
+    private String SECT_GRAD_CD;    //	N	VARCHAR2(7)	    N			구간 등급 코드
+    private String SECT_GRAD_NM;    //	N	VARCHAR2(40)	N			구간 등급 명
+    // TB_SECT_GRAD_CLSF ==> TB_SECT_GRAD_STUP
+}

+ 0 - 105
src/main/java/com/its/op/model/enums/CodeRepository.java

@@ -1,105 +0,0 @@
-package com.its.op.model.enums;
-
-import com.its.op.model.entity.CmmnCd;
-import com.its.op.repository.CmmnCdRepository;
-import lombok.Getter;
-import lombok.RequiredArgsConstructor;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.stereotype.Component;
-
-import javax.annotation.PostConstruct;
-import java.util.HashMap;
-import java.util.List;
-import java.util.concurrent.ConcurrentHashMap;
-
-@Slf4j
-@RequiredArgsConstructor
-@Getter
-@Component
-public class CodeRepository {
-
-    private final CmmnCdRepository repo;
-
-    private static final String defUnknownCode = "X";
-    private static final String defUnknownDesc = "UNKNOWN";
-
-    public static final String DAY_TYPE_CD = "DTW";   // 요일유형
-    public static final String CMTR_GRAD_CD = "LTC";   // 소통등급
-    public static final String ADJS_SORC = "MCS";   // 보정소스
-    public static final String NODE_TYPE = "NDT";   // 노드유형
-
-    private static final ConcurrentHashMap<String, HashMap<String, Code>> codes = new ConcurrentHashMap<>();
-
-    @PostConstruct
-    void init() {
-        load();
-    }
-
-    public void load() {
-
-        List<CmmnCd> codeList;
-
-        String code = DAY_TYPE_CD;
-        HashMap<String, Code> codeMap = new HashMap<>();
-        codeList = this.repo.findAllByCmmnClsfCd(code);
-        if (codeList != null) {
-            for (CmmnCd cd : codeList) {
-                codeMap.put(cd.getCMMN_CD(), new Code(cd.getCMMN_CD(), cd.getCMMN_CD_KOR_NM(), cd.getCMMN_CD_ENGL_NM()));
-            }
-        }
-        codes.put(code, codeMap);
-
-        code = CMTR_GRAD_CD;
-        codeMap = new HashMap<>();
-        codeList = this.repo.findAllByCmmnClsfCd(code);
-        if (codeList != null) {
-            for (CmmnCd cd : codeList) {
-                codeMap.put(cd.getCMMN_CD(), new Code(cd.getCMMN_CD(), cd.getCMMN_CD_KOR_NM(), cd.getCMMN_CD_ENGL_NM()));
-            }
-        }
-        codes.put(code, codeMap);
-
-        code = ADJS_SORC;
-        codeMap = new HashMap<>();
-        codeList = this.repo.findAllByCmmnClsfCd(code);
-        if (codeList != null) {
-            for (CmmnCd cd : codeList) {
-                codeMap.put(cd.getCMMN_CD(), new Code(cd.getCMMN_CD(), cd.getCMMN_CD_KOR_NM(), cd.getCMMN_CD_ENGL_NM()));
-            }
-        }
-        codes.put(code, codeMap);
-
-        code = NODE_TYPE;
-        codeMap = new HashMap<>();
-        codeList = this.repo.findAllByCmmnClsfCd(code);
-        if (codeList != null) {
-            for (CmmnCd cd : codeList) {
-                codeMap.put(cd.getCMMN_CD(), new Code(cd.getCMMN_CD(), cd.getCMMN_CD_KOR_NM(), cd.getCMMN_CD_ENGL_NM()));
-            }
-        }
-        codes.put(code, codeMap);
-
-        log.info("=== {}", codes);
-    }
-
-    public static String getCodeDesc(String CMMN_CLSF_CD, String CMMN_CD) {
-        HashMap<String, Code> codeMap = codes.get(CMMN_CLSF_CD);
-        if (codeMap != null) {
-            Code code = codeMap.get(CMMN_CD);
-            if (code != null) {
-                return "[" + CMMN_CD + "] " + code.getDesc();
-            }
-        }
-        return "[" + CMMN_CD + "] " + defUnknownDesc;
-    }
-    public static String getCodeDescShort(String CMMN_CLSF_CD, String CMMN_CD) {
-        HashMap<String, Code> codeMap = codes.get(CMMN_CLSF_CD);
-        if (codeMap != null) {
-            Code code = codeMap.get(CMMN_CD);
-            if (code != null) {
-                return code.getDesc();
-            }
-        }
-        return defUnknownDesc;
-    }
-}

+ 15 - 0
src/main/java/com/its/op/repository/IfscLinkRltnRepository.java

@@ -0,0 +1,15 @@
+package com.its.op.repository;
+
+import com.its.op.model.entity.IfscLinkRltn;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+@Repository
+public interface IfscLinkRltnRepository extends JpaRepository<IfscLinkRltn, Long> {
+
+    @Query(value = "select p from IfscLinkRltn p where p.IFSC_ID = ?1")
+    List<IfscLinkRltn> findLinkRltnById(Long IFSC_ID);
+}

+ 0 - 6
src/main/java/com/its/op/repository/IfscRepository.java

@@ -2,15 +2,9 @@ package com.its.op.repository;
 
 import com.its.op.model.entity.Ifsc;
 import org.springframework.data.jpa.repository.JpaRepository;
-import org.springframework.data.jpa.repository.Query;
 import org.springframework.stereotype.Repository;
 
-import java.util.List;
-
 @Repository
 public interface IfscRepository extends JpaRepository<Ifsc, Long> {
 
-    //@Query("SELECT distinct t FROM Ifsc t left outer join fetch t.traf join t.from_node join t.to_node")
-    @Query(value = "SELECT distinct t FROM Ifsc t inner join t.from_node inner join t.to_node left outer join fetch t.traf ")
-    List<Ifsc> findAll();
 }

+ 14 - 0
src/main/java/com/its/op/repository/IfscRepositoryOld.java

@@ -0,0 +1,14 @@
+package com.its.op.repository;
+
+import com.its.op.model.entity.Ifsc;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+import java.util.List;
+
+//@Repository
+public interface IfscRepositoryOld extends JpaRepository<Ifsc, Long> {
+
+    //@Query("SELECT distinct t FROM Ifsc t left outer join fetch t.traf join t.from_node join t.to_node")
+    //@Query(value = "SELECT distinct t FROM Ifsc t inner join t.from_node inner join t.to_node left outer join fetch t.traf ")
+    List<Ifsc> findAll();
+}

+ 10 - 0
src/main/java/com/its/op/repository/SectGradStupRepository.java

@@ -0,0 +1,10 @@
+package com.its.op.repository;
+
+import com.its.op.model.entity.SectGradStup;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface SectGradStupRepository extends JpaRepository<SectGradStup, String> {
+
+}

+ 73 - 0
src/main/java/com/its/op/service/database/TbIfscService.java

@@ -0,0 +1,73 @@
+package com.its.op.service.database;
+
+import com.its.op.model.dto.IfscDto;
+import com.its.op.model.entity.Ifsc;
+import com.its.op.model.entity.IfscLinkRltn;
+import com.its.op.repository.IfscLinkRltnRepository;
+import com.its.op.repository.IfscRepository;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class TbIfscService {
+
+    private final IfscRepository repo;
+    private final IfscLinkRltnRepository repoLinkRltn;
+
+    public List<Ifsc> findAll() {
+        try {
+            return this.repo.findAll();
+        }
+        catch (Exception e) {
+            log.error("{}.findAll: Exception: {}", getClass().getSimpleName(), e.getMessage());
+        }
+        return new ArrayList<Ifsc>();
+    }
+    public Ifsc findById(Long id) {
+        try {
+            Optional<Ifsc> data = this.repo.findById(id);
+            if (data.isPresent()) {
+                return data.get();
+            }
+        }
+        catch (Exception e) {
+            log.error("{}.findById: Object: {}, Exception: {}", getClass().getSimpleName(), id, e.getMessage());
+        }
+        return null;
+    }
+
+    // 도로명 변경
+    public Ifsc updateNameById(Long id, IfscDto.IfscNameUpdateReq req) {
+        try {
+            Optional<Ifsc> data = this.repo.findById(id);
+            if (data.isPresent()) {
+                Ifsc obj = data.get();
+                obj.updateName(req);
+                this.repo.save(obj);
+                return obj;
+            }
+        }
+        catch (Exception e) {
+            log.error("{}.updateNameById: Object: {}, Exception: {}", getClass().getSimpleName(), req, e.getMessage());
+        }
+        return null;
+    }
+
+    public List<IfscLinkRltn> findLinkRltnById(Long id) {
+        try {
+            List<IfscLinkRltn> data = this.repoLinkRltn.findLinkRltnById(id);
+            return data;
+        }
+        catch (Exception e) {
+            log.error("{}.findById: Object: {}, Exception: {}", getClass().getSimpleName(), id, e.getMessage());
+        }
+        return null;
+    }
+}

+ 60 - 0
src/main/java/com/its/op/service/database/TbLinkService.java

@@ -0,0 +1,60 @@
+package com.its.op.service.database;
+
+import com.its.op.model.dto.LinkDto;
+import com.its.op.model.entity.Link;
+import com.its.op.repository.LinkRepository;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Optional;
+
+@Slf4j
+@RequiredArgsConstructor
+@Service
+public class TbLinkService {
+
+    private final LinkRepository repo;
+
+    public List<Link> findAll() {
+        try {
+            return this.repo.findAll();
+        }
+        catch (Exception e) {
+            log.error("{}.findAll: Exception: {}", getClass().getSimpleName(), e.getMessage());
+        }
+        return new ArrayList<Link>();
+    }
+    public Link findById(Long id) {
+        try {
+            Optional<Link> data = this.repo.findById(id);
+            if (data.isPresent()) {
+                return data.get();
+            }
+        }
+        catch (Exception e) {
+            log.error("{}.findById: Object: {}, Exception: {}", getClass().getSimpleName(), id, e.getMessage());
+        }
+        return null;
+    }
+
+    // 도로명 변경
+    public Link updateNameById(Long id, LinkDto.LinkNameUpdateReq req) {
+        try {
+            Optional<Link> data = this.repo.findById(id);
+            if (data.isPresent()) {
+                Link obj = data.get();
+                obj.updateName(req);
+                this.repo.save(obj);
+                return obj;
+            }
+        }
+        catch (Exception e) {
+            log.error("{}.updateNameById: Object: {}, Exception: {}", getClass().getSimpleName(), req, e.getMessage());
+        }
+        return null;
+    }
+
+}

+ 5 - 5
src/main/java/com/its/op/service/database/TbNodeService.java

@@ -41,14 +41,14 @@ public class TbNodeService {
     }
 
     // 노드명 변경
-    public Node updateNameById(Long id, NodeDto.NameUpdateReq req) {
+    public Node updateNameById(Long id, NodeDto.NodeNameUpdateReq req) {
         try {
             Optional<Node> data = this.repo.findById(id);
             if (data.isPresent()) {
-                Node node = data.get();
-                node.updateName(req);
-                this.repo.save(node);
-                return node;
+                Node obj = data.get();
+                obj.updateName(req);
+                this.repo.save(obj);
+                return obj;
             }
         }
         catch (Exception e) {