|
@@ -1,17 +1,23 @@
|
|
package com.its.api.its.service.facility;
|
|
package com.its.api.its.service.facility;
|
|
|
|
|
|
|
|
+import com.its.api.its.model.dto.cctv.TbCctvCtlrDto;
|
|
import com.its.api.its.model.dto.facility.TbFcltInfrDto;
|
|
import com.its.api.its.model.dto.facility.TbFcltInfrDto;
|
|
|
|
+import com.its.api.its.model.dto.facility.UnRegisteredFcltInfrDto;
|
|
|
|
+import com.its.api.its.model.dto.vds.TbVdsCtlrDto;
|
|
|
|
+import com.its.api.its.model.dto.vms.TbVmsCtlrDto;
|
|
import com.its.api.its.model.entity.facility.TbFcltInfr;
|
|
import com.its.api.its.model.entity.facility.TbFcltInfr;
|
|
import com.its.api.its.repository.facility.TbFcltInfrRepository;
|
|
import com.its.api.its.repository.facility.TbFcltInfrRepository;
|
|
|
|
+import com.its.api.its.service.cctv.TbCctvCtlrService;
|
|
|
|
+import com.its.api.its.service.vds.TbVdsCtlrService;
|
|
|
|
+import com.its.api.its.service.vms.TbVmsCtlrService;
|
|
|
|
+import com.its.api.utis.model.dto.RsemstDto;
|
|
|
|
+import com.its.api.utis.service.RsemstService;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.RequiredArgsConstructor;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
|
-import java.util.List;
|
|
|
|
-import java.util.NoSuchElementException;
|
|
|
|
-import java.util.Optional;
|
|
|
|
|
|
+import java.util.*;
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@RequiredArgsConstructor
|
|
@RequiredArgsConstructor
|
|
@@ -19,6 +25,10 @@ import java.util.Optional;
|
|
public class TbFcltInfrService {
|
|
public class TbFcltInfrService {
|
|
|
|
|
|
private final TbFcltInfrRepository repo;
|
|
private final TbFcltInfrRepository repo;
|
|
|
|
+ private final TbVmsCtlrService vmsCtlrService;
|
|
|
|
+ private final TbVdsCtlrService vdsCtlrService;
|
|
|
|
+ private final TbCctvCtlrService cctvCtlrService;
|
|
|
|
+ private final RsemstService rseMstService;
|
|
|
|
|
|
// 데이터 1건 조회, 없으면 exception
|
|
// 데이터 1건 조회, 없으면 exception
|
|
private TbFcltInfr requireOne(String id) {
|
|
private TbFcltInfr requireOne(String id) {
|
|
@@ -109,4 +119,83 @@ public class TbFcltInfrService {
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * 미등록 시설물 정보 등록
|
|
|
|
+ * @param listReq
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Transactional
|
|
|
|
+ public List<TbFcltInfrDto> mergeRegInfoList(List<UnRegisteredFcltInfrDto.TbRegFcltInfrUpdReq> listReq) {
|
|
|
|
+ List<TbFcltInfrDto> result = new ArrayList<>();
|
|
|
|
+ listReq.forEach(obj -> {
|
|
|
|
+ TbFcltInfr entity = obj.toEntity();
|
|
|
|
+ this.repo.save(entity);
|
|
|
|
+ result.add(entity.toDto());
|
|
|
|
+ });
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 미등록 시설물 정보 조회
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ @Transactional(readOnly = true)
|
|
|
|
+ public List<UnRegisteredFcltInfrDto> findAllUnRegisteredList() {
|
|
|
|
+ List<UnRegisteredFcltInfrDto> result = new ArrayList<>();
|
|
|
|
+ Map<String, TbFcltInfrDto> regMap = new HashMap<>();
|
|
|
|
+ List<TbFcltInfrDto> regList = findAllList();
|
|
|
|
+ regList.forEach(obj -> {
|
|
|
|
+ regMap.put(obj.getFcltId(), obj);
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ List<TbVmsCtlrDto> vmsList = this.vmsCtlrService.findAllList();
|
|
|
|
+ vmsList.forEach(obj -> {
|
|
|
|
+ TbFcltInfrDto regObj = regMap.get(obj.getVmsCtlrId());
|
|
|
|
+ if (regObj == null) {
|
|
|
|
+ result.add(UnRegisteredFcltInfrDto.builder()
|
|
|
|
+ .fcltType("VMS")
|
|
|
|
+ .fcltId(obj.getVmsCtlrId())
|
|
|
|
+ .fcltLctn(obj.getVmsNm())
|
|
|
|
+ .build());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ List<TbVdsCtlrDto> vdsList = this.vdsCtlrService.findAllList();
|
|
|
|
+ vdsList.forEach(obj -> {
|
|
|
|
+ TbFcltInfrDto regObj = regMap.get(obj.getVdsCtlrId());
|
|
|
|
+ if (regObj == null) {
|
|
|
|
+ result.add(UnRegisteredFcltInfrDto.builder()
|
|
|
|
+ .fcltType("VDS")
|
|
|
|
+ .fcltId(obj.getVdsCtlrId())
|
|
|
|
+ .fcltLctn(obj.getLctn())
|
|
|
|
+ .build());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ List<TbCctvCtlrDto> cctvList = this.cctvCtlrService.findAllList();
|
|
|
|
+ cctvList.forEach(obj -> {
|
|
|
|
+ TbFcltInfrDto regObj = regMap.get(obj.getCctvCtlrId());
|
|
|
|
+ if (regObj == null) {
|
|
|
|
+ result.add(UnRegisteredFcltInfrDto.builder()
|
|
|
|
+ .fcltType("CCTV")
|
|
|
|
+ .fcltId(obj.getCctvCtlrId())
|
|
|
|
+ .fcltLctn(obj.getIstlLctnNm())
|
|
|
|
+ .build());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ List<RsemstDto> rseList = this.rseMstService.findAllList();
|
|
|
|
+ rseList.forEach(obj -> {
|
|
|
|
+ TbFcltInfrDto regObj = regMap.get(obj.getRseid());
|
|
|
|
+ if (regObj == null) {
|
|
|
|
+ result.add(UnRegisteredFcltInfrDto.builder()
|
|
|
|
+ .fcltType("RSE")
|
|
|
|
+ .fcltId(obj.getRseid())
|
|
|
|
+ .fcltLctn(obj.getLocation())
|
|
|
|
+ .build());
|
|
|
|
+ }
|
|
|
|
+ });
|
|
|
|
+
|
|
|
|
+ return result;
|
|
|
|
+ }
|
|
}
|
|
}
|