|
|
|
@ -77,49 +77,20 @@ public class CmmFileService implements ICmmFileService {
|
|
|
|
|
return fileMstDTO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Transactional
|
|
|
|
|
public void removeExistsUploadFile(final CmmFileDTO.FileDtl dtlDto){
|
|
|
|
|
mapper.selectCmmFileDetail(dtlDto)
|
|
|
|
|
.ifPresent((dto)->{
|
|
|
|
|
mapper.deleteCmmFileDetail(dto);
|
|
|
|
|
new File(this.uploadRoot + dto.getFileCours() + "/" + dto.getFileId()).delete();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 시민신고 단속 이미지 저장
|
|
|
|
|
* 단속사진 + 위경도 이미지 저장시, 위경도 이미지지는 기 업로드된 동일 이미지 정보로 저장
|
|
|
|
|
* @param fileMstDTO
|
|
|
|
|
* @param files
|
|
|
|
|
* @param pngFileDtlDto
|
|
|
|
|
* @return
|
|
|
|
|
*
|
|
|
|
|
* @param dtlDto
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public CmmFileDTO.FileMst saveCtznStmtFiles(final CmmFileDTO.FileMst fileMstDTO, final List<MultipartFile> files, final CmmFileDTO.FileDtl pngFileDtlDto) {
|
|
|
|
|
boolean isCheckExists = setCmmFileMst(fileMstDTO);
|
|
|
|
|
|
|
|
|
|
mapper.insertCmmFileMastr(fileMstDTO);
|
|
|
|
|
String makePath = makeUploadFilePath(fileMstDTO);
|
|
|
|
|
|
|
|
|
|
String fileUploadPath = this.uploadRoot + makePath;
|
|
|
|
|
File file = new File(fileUploadPath);
|
|
|
|
|
if(!file.exists()) file.mkdirs();
|
|
|
|
|
|
|
|
|
|
// 단속 이미지 저장
|
|
|
|
|
List<CmmFileDTO.FileDtl> cmmFileDtls = saveFileDtls(fileMstDTO, files, isCheckExists, makePath, fileUploadPath);
|
|
|
|
|
|
|
|
|
|
// 위도경도 png 이미지 저장
|
|
|
|
|
pngFileDtlDto.setFileMastrId(fileMstDTO.getFileMastrId());
|
|
|
|
|
//pngFileDtlDto.setFileId(CommUtils.getStringFromUUID());
|
|
|
|
|
mapper.insertCmmFileDetail(pngFileDtlDto);
|
|
|
|
|
cmmFileDtls.add(pngFileDtlDto);
|
|
|
|
|
fileMstDTO.getCmmFileDtls().addAll(cmmFileDtls);
|
|
|
|
|
|
|
|
|
|
return fileMstDTO;
|
|
|
|
|
public void removeExistsUploadFile(final CmmFileDTO.FileDtl dtlDto){
|
|
|
|
|
CmmFileDTO.FileDtl selectDTO = mapper.selectCmmFileDetail(dtlDto);
|
|
|
|
|
if(Checks.isNotEmpty(selectDTO)){
|
|
|
|
|
mapper.deleteCmmFileDetail(selectDTO);
|
|
|
|
|
new File(this.uploadRoot + selectDTO.getFileCours() + "/" + selectDTO.getFileId()).delete();
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 등록된 첨부파일 목록에 file 추가
|
|
|
|
|
* @param dto
|
|
|
|
@ -128,6 +99,7 @@ public class CmmFileService implements ICmmFileService {
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public List<CmmFileDTO.FileDtl> saveAddFileDtl(final CmmFileDTO.FileDtl dto, final List<MultipartFile> files,
|
|
|
|
|
boolean isCheckExists) {
|
|
|
|
|
List<CmmFileDTO.FileDtl> cmmFileDtls = new ArrayList<>();
|
|
|
|
@ -196,6 +168,7 @@ public class CmmFileService implements ICmmFileService {
|
|
|
|
|
* @param fileUploadPath
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Transactional
|
|
|
|
|
public List<CmmFileDTO.FileDtl> saveFileDtls(CmmFileDTO.FileMst fileMstDTO, List<MultipartFile> files,
|
|
|
|
|
boolean isCheckExists, String makePath, String fileUploadPath) {
|
|
|
|
|
List<CmmFileDTO.FileDtl> cmmFileDtls = new ArrayList<>();
|
|
|
|
@ -255,14 +228,15 @@ public class CmmFileService implements ICmmFileService {
|
|
|
|
|
return cmmFileDtls;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
*
|
|
|
|
|
* @param dto
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
public List<CmmFileDTO.FileDtl> findFilesByJobSeCodeAndJobId(final CmmFileDTO.FileMst dto) {
|
|
|
|
|
return mapper.selectFilesByJobSeCodeAndJobId(dto);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public List<CmmFileDTO.FileDtl> findFilesByEsbInterfaces(final CmmFileDTO.FileMst dto) {
|
|
|
|
|
return mapper.selectFilesByEsbInterfaces(dto);
|
|
|
|
|
@Transactional(readOnly = true)
|
|
|
|
|
public <T> List<CmmFileDTO.FileDtl> findFilesByJobSeCodeAndJobId(final T t) {
|
|
|
|
|
return mapper.selectFilesByJobSeCodeAndJobId(t);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private static String makeUploadFilePath(CmmFileDTO.FileMst fileMstDTO) {
|
|
|
|
@ -295,5 +269,81 @@ public class CmmFileService implements ICmmFileService {
|
|
|
|
|
return isCheckExists;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//-----------------------------------------------------------------------------------------------
|
|
|
|
|
// 시민신고 - 국민신문고 업무
|
|
|
|
|
//-----------------------------------------------------------------------------------------------
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional(readOnly = true)
|
|
|
|
|
public List<CmmFileDTO.FileDtl> findFilesByEsbInterfaces(final CmmFileDTO.FileMst dto) {
|
|
|
|
|
return mapper.selectFilesByEsbInterfaces(dto);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 시민신고 단속 이미지 저장
|
|
|
|
|
* 단속사진 + 위경도 이미지 저장시, 위경도 이미지지는 기 업로드된 동일 이미지 정보로 저장
|
|
|
|
|
* @param fileMstDTO
|
|
|
|
|
* @param files
|
|
|
|
|
* @param pngFileDtlDto
|
|
|
|
|
* @return
|
|
|
|
|
*/
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public CmmFileDTO.FileMst saveCtznStmtFiles(final CmmFileDTO.FileMst fileMstDTO, final List<MultipartFile> files, final CmmFileDTO.FileDtl pngFileDtlDto) {
|
|
|
|
|
boolean isCheckExists = setCmmFileMst(fileMstDTO);
|
|
|
|
|
|
|
|
|
|
mapper.insertCmmFileMastr(fileMstDTO);
|
|
|
|
|
String makePath = makeUploadFilePath(fileMstDTO);
|
|
|
|
|
|
|
|
|
|
String fileUploadPath = this.uploadRoot + makePath;
|
|
|
|
|
File file = new File(fileUploadPath);
|
|
|
|
|
if(!file.exists()) file.mkdirs();
|
|
|
|
|
|
|
|
|
|
// 단속 이미지 저장
|
|
|
|
|
List<CmmFileDTO.FileDtl> cmmFileDtls = saveFileDtls(fileMstDTO, files, isCheckExists, makePath, fileUploadPath);
|
|
|
|
|
|
|
|
|
|
// 위도경도 png 이미지 저장
|
|
|
|
|
pngFileDtlDto.setFileMastrId(fileMstDTO.getFileMastrId());
|
|
|
|
|
//pngFileDtlDto.setFileId(CommUtils.getStringFromUUID());
|
|
|
|
|
mapper.insertCmmFileDetail(pngFileDtlDto);
|
|
|
|
|
cmmFileDtls.add(pngFileDtlDto);
|
|
|
|
|
fileMstDTO.getCmmFileDtls().addAll(cmmFileDtls);
|
|
|
|
|
|
|
|
|
|
return fileMstDTO;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public <T> void removeAllCtznStmtFiles(T t) {
|
|
|
|
|
// 첨부 파일 목록 조회 : 업무코드 와 업무키로
|
|
|
|
|
List<CmmFileDTO.FileDtl> dtlList = mapper.selectFilesByJobSeCodeAndJobId(t);
|
|
|
|
|
if(dtlList.size() == 0){
|
|
|
|
|
throw BizRuntimeException.create(MessageKey.CUSTOM_MSG, "파일정보오류[유효하지 않은 파일 정보]");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 첨부파일 삭제
|
|
|
|
|
dtlList.forEach(this::removeExistsUploadFile);
|
|
|
|
|
|
|
|
|
|
// 파일 마스터 정보 삭제
|
|
|
|
|
mapper.deleteCmmFileMastr(dtlList.get(0).getFileMastrId());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
@Transactional
|
|
|
|
|
public void removeCtznStmtFile(final CmmFileDTO.FileDtl dto) {
|
|
|
|
|
// 첨부파일 목록 조회 - 파일 마스터 ID로
|
|
|
|
|
List<CmmFileDTO.FileDtl> dtlList = mapper.selectFilesByFileMastrId(dto.getFileMastrId());
|
|
|
|
|
if(dtlList.size() == 0){
|
|
|
|
|
throw BizRuntimeException.create(MessageKey.CUSTOM_MSG, "파일정보오류[유효하지 않은 파일 정보]");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 해당 파일 삭제
|
|
|
|
|
this.removeExistsUploadFile(dto);
|
|
|
|
|
|
|
|
|
|
// 첨부파일이 1개 였으면 마스터 정보도 삭제
|
|
|
|
|
if(dtlList.size() == 1) mapper.deleteCmmFileMastr(dtlList.get(0).getFileMastrId());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|