|
|
@@ -1,6 +1,7 @@
|
|
|
package com.its.op.service.vms;
|
|
|
|
|
|
import com.its.op.model.dto.vms.TbVmsIfscDto;
|
|
|
+import com.its.op.model.dto.vms.TbVmsIfscRltnDto;
|
|
|
import com.its.op.model.entity.vms.TbVmsIfsc;
|
|
|
import com.its.op.repository.vms.TbVmsIfscRepository;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
@@ -18,6 +19,9 @@ import java.util.Optional;
|
|
|
public class TbVmsIfscService {
|
|
|
|
|
|
private final TbVmsIfscRepository repo;
|
|
|
+ private final TbVmsIfscRltnService ifscRltnService;
|
|
|
+ private final TbVmsFormObjectService formObjectService;
|
|
|
+ private final TbVmsLinkIfscService linkIfscService;
|
|
|
|
|
|
// 데이터 1건 조회, 없으면 exception
|
|
|
private TbVmsIfsc requireOne(Long id) {
|
|
|
@@ -30,7 +34,7 @@ public class TbVmsIfscService {
|
|
|
List<TbVmsIfscDto> result = new ArrayList<>();
|
|
|
List<TbVmsIfsc> data = this.repo.findAll();
|
|
|
for (TbVmsIfsc entity : data) {
|
|
|
- result.add(entity.toDto());
|
|
|
+ result.add(entity.toDto(new ArrayList<>()));
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
@@ -38,7 +42,8 @@ public class TbVmsIfscService {
|
|
|
// 데이터 1건 조회(기존 데이터가 반드시 존재해야 함)
|
|
|
public TbVmsIfscDto findById(Long id) {
|
|
|
TbVmsIfsc entity = requireOne(id);
|
|
|
- return entity.toDto();
|
|
|
+ List<TbVmsIfscRltnDto> list = this.ifscRltnService.findDataById(id);
|
|
|
+ return entity.toDto(list);
|
|
|
}
|
|
|
|
|
|
// 데이터 변경
|
|
|
@@ -46,7 +51,7 @@ public class TbVmsIfscService {
|
|
|
TbVmsIfsc entity = requireOne(id);
|
|
|
entity.updateInfo(req);
|
|
|
this.repo.save(entity);
|
|
|
- return entity.toDto();
|
|
|
+ return entity.toDto(new ArrayList<>());
|
|
|
}
|
|
|
|
|
|
// 데이터 변경 또는 생성-목록(데이터가 존재하면 업데이트 없으면 신규로 생성)
|
|
|
@@ -55,7 +60,7 @@ public class TbVmsIfscService {
|
|
|
for (TbVmsIfscDto.TbVmsIfscUpdReq req : reqList) {
|
|
|
TbVmsIfsc obj = req.toEntity();
|
|
|
this.repo.save(obj);
|
|
|
- result.add(obj.toDto());
|
|
|
+ result.add(obj.toDto(new ArrayList<>()));
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
@@ -64,14 +69,14 @@ public class TbVmsIfscService {
|
|
|
public TbVmsIfscDto mergeInfo(TbVmsIfscDto.TbVmsIfscUpdReq req) {
|
|
|
TbVmsIfsc obj = req.toEntity();
|
|
|
this.repo.save(obj);
|
|
|
- return obj.toDto();
|
|
|
+ return obj.toDto(new ArrayList<>());
|
|
|
}
|
|
|
|
|
|
// 정보 삭제-개별, 데이터 존재하지 않으면 Exception
|
|
|
public TbVmsIfscDto deleteById(Long id) {
|
|
|
TbVmsIfsc entity = requireOne(id);
|
|
|
this.repo.deleteById(id);
|
|
|
- return entity.toDto();
|
|
|
+ return entity.toDto(new ArrayList<>());
|
|
|
}
|
|
|
|
|
|
// 정보 삭제-목록, 존재하는 데이터 만 삭제
|
|
|
@@ -81,15 +86,37 @@ public class TbVmsIfscService {
|
|
|
Optional<TbVmsIfsc> obj = this.repo.findById(id);
|
|
|
if (obj.isPresent()) {
|
|
|
this.repo.deleteById(id);
|
|
|
- result.add(obj.get().toDto());
|
|
|
+ result.add(obj.get().toDto(new ArrayList<>()));
|
|
|
}
|
|
|
}
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
- // 정보 제공구간이 사용되는 갯수 리턴
|
|
|
- public Integer findUsageCountBySymbolId(Short id) {
|
|
|
- int useCount = 0;
|
|
|
- return useCount;
|
|
|
+ // VMS 정보 제공구간이 사용되는 갯수 리턴
|
|
|
+ public Integer findUsageCountByVmsIfscId(Long vmsIfscId) {
|
|
|
+ Integer useCount = 0;
|
|
|
+
|
|
|
+ // TB_VMS_IFSC(VMS 정보제공구간), DETR_ID 에 설정되어 사용 중인지 확인.
|
|
|
+ useCount = this.repo.findUsageCountByVmsIfscId(vmsIfscId);
|
|
|
+ log.info("Usage TB_VMS_IFSC.DETR_ID: {}", useCount);
|
|
|
+ if (useCount > 0) {
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ // TB_VMS_IFSC_RLTN(VMS 정보제공구간 관계) 설정 테이블에 사용 중인지 확인
|
|
|
+ useCount = useCount + this.ifscRltnService.findUsageCountByVmsIfscId(vmsIfscId);
|
|
|
+ log.info("Usage TB_VMS_IFSC_RLTN.VMS_IFSC_ID: {}", useCount);
|
|
|
+ if (useCount > 0) {
|
|
|
+ return 2;
|
|
|
+ }
|
|
|
+
|
|
|
+ // TB_VMS_FORM_OBJECT(VMS FORM OBJECT) 설정 테이블에 사용 중인지 확인
|
|
|
+ useCount = this.formObjectService.findUsageCountByVmsIfscId(vmsIfscId);
|
|
|
+ log.info("Usage TB_VMS_FORM_OBJECT.VMS_IFSC_ID: {}", useCount);
|
|
|
+ if (useCount > 0) {
|
|
|
+ return 3;
|
|
|
+ }
|
|
|
+
|
|
|
+ return 0;
|
|
|
}
|
|
|
}
|