diff --git a/pav-server/src/main/java/com/palnet/biz/api/cns/qna/service/CnsQnaService.java b/pav-server/src/main/java/com/palnet/biz/api/cns/qna/service/CnsQnaService.java index bc39ed28..85228310 100644 --- a/pav-server/src/main/java/com/palnet/biz/api/cns/qna/service/CnsQnaService.java +++ b/pav-server/src/main/java/com/palnet/biz/api/cns/qna/service/CnsQnaService.java @@ -21,6 +21,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.transaction.Transactional; import java.time.Instant; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -73,11 +74,20 @@ public class CnsQnaService { if (entity == null) throw new CustomException(ErrorCode.DATA_NOTFIND); // 파일 삭제(논리적 삭제) - List prevFileInfos = comnFileService.getNormalFileListByGroupNo(entity.getFileGroupNo()); - List prevFileSnoList = prevFileInfos.stream().map(ComnFileModel::getFileSno).collect(Collectors.toList()); - List currentFileSnoList = rq.getFileInfos().stream().map(ComnFileModel::getFileSno).collect(Collectors.toList()); + List prevFileSnoList = new ArrayList<>(); + List currentFileSnoList = new ArrayList<>(); + if (entity.getFileGroupNo() != null) { + List prevFileInfos = comnFileService.getNormalFileListByGroupNo(entity.getFileGroupNo()); + prevFileSnoList = prevFileInfos.stream().map(ComnFileModel::getFileSno).collect(Collectors.toList()); + } + if (rq.getFileInfos() != null) { + currentFileSnoList = rq.getFileInfos().stream().map(ComnFileModel::getFileSno).collect(Collectors.toList()); + } + boolean isChange = prevFileSnoList.removeAll(currentFileSnoList); - if (isChange) comnFileService.deleteFilesByFileGroupNo(entity.getFileGroupNo()); // File 삭제 + if (isChange) { + comnFileService.deleteFiles(prevFileSnoList); // File 삭제 + } List files = rq.getFiles(); if (files != null && !files.isEmpty()) comnFileService.fileUpload(files, entity.getFileGroupNo()); // File 업로드