shjung il y a 2 ans
Parent
commit
a8a6455ab0

+ 8 - 0
src/main/java/com/its/op/controller/its/facility/TbFcltInfrController.java

@@ -1,5 +1,6 @@
 package com.its.op.controller.its.facility;
 
+import com.its.op.dto.its.common.NewIdLongDto;
 import com.its.op.dto.its.facility.FcltWorkStepDto;
 import com.its.op.dto.its.facility.TbFcltInfrDto;
 import com.its.op.dto.its.facility.UnRegisteredFcltInfrDto;
@@ -90,4 +91,11 @@ public class TbFcltInfrController {
         return this.service.deleteByIds(ids);
     }
 
+    @ApiOperation(value = "신규 ID 조회", response = NewIdLongDto.class)
+    @GetMapping(value = "/new-id", produces = {"application/json; charset=utf8"})
+    public NewIdLongDto getNewNmbr() {
+        return this.service.getNewNmbr();
+    }
+
+
 }

+ 3 - 0
src/main/java/com/its/op/dao/repository/its/facility/TbFcltInfrRepository.java

@@ -36,4 +36,7 @@ public interface TbFcltInfrRepository extends JpaRepository<TbFcltInfr, Long>, J
 
     List<TbFcltInfr> findAllByFcltType(@Param("fcltType") String fcltType);
 
+    @Query(value = "SELECT NVL(MAX(FCLT_NMBR), 0) + 1 AS NEWID FROM TB_FCLT_INFR", nativeQuery = true)
+    Long getNewNmbr();
+
 }

+ 2 - 2
src/main/java/com/its/op/dto/its/facility/UnRegisteredFcltInfrDto.java

@@ -2,7 +2,6 @@ package com.its.op.dto.its.facility;
 
 import com.fasterxml.jackson.annotation.JsonProperty;
 import com.its.op.entity.its.facility.TbFcltInfr;
-import com.its.utils.ItsUtils;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.*;
@@ -60,8 +59,9 @@ public class UnRegisteredFcltInfrDto implements Serializable {
             this.fcltLctn = fclt_lctn;
         }
 
-        public TbFcltInfr toEntity() {
+        public TbFcltInfr toEntity(Long fcltNmbr) {
             return TbFcltInfr.builder()
+                    .fcltNmbr(fcltNmbr)
                     .fcltId(this.fcltId)
                     .fcltType(this.fcltType)
                     .fcltLctn(this.fcltLctn)

+ 12 - 3
src/main/java/com/its/op/service/its/facility/TbFcltInfrService.java

@@ -3,6 +3,7 @@ package com.its.op.service.its.facility;
 import com.its.op.dao.repository.its.code.TbCmmnCdRepository;
 import com.its.op.dao.repository.its.facility.TbFcltInfrRepository;
 import com.its.op.dto.its.cctv.TbCctvCtlrDto;
+import com.its.op.dto.its.common.NewIdLongDto;
 import com.its.op.dto.its.facility.FcltWorkStepDto;
 import com.its.op.dto.its.facility.TbFcltInfrDto;
 import com.its.op.dto.its.facility.UnRegisteredFcltInfrDto;
@@ -139,12 +140,14 @@ public class TbFcltInfrService {
      */
     @Transactional
     public List<TbFcltInfrDto> mergeRegInfoList(List<UnRegisteredFcltInfrDto.TbRegFcltInfrUpdReq> listReq) {
+        NewIdLongDto fcltNmbrDto = getNewNmbr();
+        Long fcltNmbr = fcltNmbrDto.getNewId();
         List<TbFcltInfrDto> result = new ArrayList<>();
-        listReq.forEach(obj -> {
-            TbFcltInfr entity = obj.toEntity();
+        for (UnRegisteredFcltInfrDto.TbRegFcltInfrUpdReq obj : listReq) {
+            TbFcltInfr entity = obj.toEntity(fcltNmbr++);
             this.repo.save(entity);
             result.add(entity.toDto());
-        });
+        }
         return result;
     }
 
@@ -224,4 +227,10 @@ public class TbFcltInfrService {
         }
         return result;
     }
+    @Transactional(readOnly = true)
+    public NewIdLongDto getNewNmbr() {
+        Long newId = this.repo.getNewNmbr();
+        return NewIdLongDto.builder().newId(newId).build();
+    }
+
 }