사전통지서 우편통합 발송시 단속사진 저장 수정.

main
jjh 10 months ago
parent 71f1e01090
commit 52b034bc11

@ -1,12 +1,16 @@
package cokr.xit.fims.sndb.service.bean;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Component;
import cokr.xit.base.file.service.FileQuery;
import cokr.xit.base.file.FileInfo;
import cokr.xit.base.file.service.bean.FileBean;
import cokr.xit.base.user.service.bean.UserBean;
import cokr.xit.fims.cmmn.CmmnUtil;
@ -1349,43 +1353,60 @@ public class SndngBean extends AbstractComponent {
// 계도장(10,11), 사전통지서(01,02)에는 사진을 출력한다.
if ("01,02,11,12".contains(sndngDtlInfo.string("SNDNG_SE_CD"))) {
// 단속 첨부 파일 조회
List<DataObject> fileList = fileBean.getFileList(new FileQuery().setInfoType(Crdn.INF_TYPE)
.setInfoKeys(sndngDtlInfo.string("CRDN_ID")));
List<FileInfo> fileInfo = fileBean.getFilesOf(Crdn.INF_TYPE, sndngDtlInfo.string("CRDN_ID"));
if (fileList.size() > 0) {
epostRcptDtl.setRecevPhotoCnt(String.valueOf(fileList.size())); // 사진장수
if (fileInfo.size() > 0) {
epostRcptDtl.setRecevPhotoCnt(String.valueOf(fileInfo.size())); // 사진장수
// 사진파일명이 중복이 되면 안되다.. 중복을 피하기 위해 서버에 저장된 파일명으로 지정하였다.
for (int jLoop = 0; jLoop < fileList.size(); jLoop++) {
String strSeparator = "";
String fileName = "";
for (int jLoop = 0; jLoop < fileInfo.size(); jLoop++) {
// 서버 OS에 따라.. separator 지정.
String strSeparator = ""; // File.separator
if (deptSggInfo.string("SRVR_OS").contains("Windows")) {
strSeparator = "\\";
} else {
strSeparator = "/";
}
if (jLoop == 0) {
fileName = fileList.get(jLoop).string("FILE_PATH");
// 파일 명
String fileName = "";
fileName = fileInfo.get(jLoop).getPath();
fileName = fileName.substring(fileName.lastIndexOf(strSeparator) + 1);
try {
// 파일이 저장되는 경로 확인. file-job.conf 에서 확인. epost 전자우편 신청 전송 "attachmentDir"
File fPath = new File(new File("").getAbsolutePath() + "/files/interface/attachment/epost/");
// 폴더가 존재하는지 확인 후 폴더가 없다면 생성
if (!fPath.exists()) {
fPath.mkdir();
}
// 파일 복사
FileInputStream fInputStream = (FileInputStream) fileInfo.get(jLoop).getInputStream();
FileOutputStream fOutputStream = new FileOutputStream(fPath + File.separator + fileName);
byte[] buffer = new byte[1024];
int length;
while ((length = fInputStream.read(buffer)) > 0) {
fOutputStream.write(buffer, 0, length);
}
fInputStream.close();
fOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
throw new RuntimeException("우편통합 발송 작업중 전자우편 단속 사진 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
}
if (jLoop == 0) {
epostRcptDtl.setRecevPhotoFilename1(fileName); // 사진파일명1
} else if (jLoop == 1) {
fileName = fileList.get(jLoop).string("FILE_PATH");
fileName = fileName.substring(fileName.lastIndexOf(strSeparator) + 1);
epostRcptDtl.setRecevPhotoFilename2(fileName); // 사진파일명2
} else if (jLoop == 2) {
fileName = fileList.get(jLoop).string("FILE_PATH");
fileName = fileName.substring(fileName.lastIndexOf(strSeparator) + 1);
epostRcptDtl.setRecevPhotoFilename3(fileName); // 사진파일명3
} else if (jLoop == 3) {
fileName = fileList.get(jLoop).string("FILE_PATH");
fileName = fileName.substring(fileName.lastIndexOf(strSeparator) + 1);
epostRcptDtl.setRecevPhotoFilename4(fileName); // 사진파일명4
}
}

Loading…
Cancel
Save