From 10c2241099bdb3f001f7f69d250a6246aaa3e243 Mon Sep 17 00:00:00 2001 From: mjkhan21 Date: Mon, 7 Apr 2025 17:23:56 +0900 Subject: [PATCH] =?UTF-8?q?=EC=86=8C=EC=8A=A4=20=EC=A0=95=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/cmmn/OutsourcingFileMaker.java | 197 +++++++----------- .../fims/cmmn/service/bean/ExtrStngBean.java | 49 ++--- .../xit/fims/crdn/web/Crdn06Controller.java | 4 +- .../xit/fims/sndb/web/Sndb01Controller.java | 185 +++++++--------- 4 files changed, 162 insertions(+), 273 deletions(-) diff --git a/src/main/java/cokr/xit/fims/cmmn/OutsourcingFileMaker.java b/src/main/java/cokr/xit/fims/cmmn/OutsourcingFileMaker.java index f740565a..75e9343d 100644 --- a/src/main/java/cokr/xit/fims/cmmn/OutsourcingFileMaker.java +++ b/src/main/java/cokr/xit/fims/cmmn/OutsourcingFileMaker.java @@ -11,21 +11,19 @@ import java.io.OutputStream; import java.nio.file.Files; import java.nio.file.StandardCopyOption; import java.text.SimpleDateFormat; -import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; -import java.util.HashMap; import java.util.List; import java.util.Map; -import org.egovframe.rte.fdl.string.EgovStringUtil; - import cokr.xit.applib.Hangul; import cokr.xit.base.file.ZIP; import cokr.xit.foundation.Downloadable; +import cokr.xit.foundation.component.AbstractBean; import cokr.xit.foundation.data.DataFormat; import cokr.xit.foundation.data.DataObject; -public class OutsourcingFileMaker { +public class OutsourcingFileMaker extends AbstractBean { protected String printKorName; protected FimsPrintOption printOption; protected List data; @@ -33,8 +31,7 @@ public class OutsourcingFileMaker { protected String resultZipFilePath; - public OutsourcingFileMaker(String printKorName, FimsPrintOption printOption, List printStngItems, - List data){ + public OutsourcingFileMaker(String printKorName, FimsPrintOption printOption, List printStngItems, List data){ this.printKorName = printKorName; this.printOption = printOption; this.data = data; @@ -45,36 +42,26 @@ public class OutsourcingFileMaker { * 서식에서 사용하는 출력항목 중 사용하는 항목만 추출한다. */ public List filterUsedArtcls() { - List otptArtclNmList = this.printStngItems.stream().map((item) -> { return item.string("ARTCL_NM"); }).toList(); - - List result = OutsourcingFileMaker.predifinedSetForOutsourcing().stream() - .filter((item) -> { - return otptArtclNmList.contains(item.getArtclNm()); - }).toList(); + List otptArtclNmList = printStngItems.stream() + .map((item) -> item.string("ARTCL_NM")) + .toList(); - return result; + return OutsourcingFileMaker.predifinedSetForOutsourcing().stream() + .filter((item) -> otptArtclNmList.contains(item.getArtclNm())) + .toList(); } /** * 다운로드 이력에 남길 항목명을 추출한다. */ public List filterDownloadDataNames() { - - List result = this.filterUsedArtcls().stream() - .filter((item) -> { - return item.isDownloadData(); - }) - .map(PredefinedSet::getArtclDscrp).toList(); - - return result; - + return filterUsedArtcls().stream() + .filter((item) -> item.isDownloadData()) + .map(PredefinedSet::getArtclDscrp) + .toList(); } public Map makeFile() { - Map result = new HashMap<>(); - - Hangul hangul = new Hangul(2); - SimpleDateFormat ymdhmsFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String currentTime = ymdhmsFormat.format(new Date()); String year = currentTime.substring(0, 4); @@ -85,57 +72,39 @@ public class OutsourcingFileMaker { String outsourcingResultPath = "files"+File.separator+"temp"+File.separator+"outsourcing" + File.separator + year + File.separator + month + File.separator + day + File.separator + currentTime; - - File folder = new File(outsourcingResultPath); - if(!folder.exists()) { - folder.mkdirs(); - } + ensureDir(outsourcingResultPath); try { - - String imagesFolderName = yyyymmdd + printKorName; String metaFileName = yyyymmdd + printKorName + "(외주파일).txt"; String imagesFolderPath = outsourcingResultPath + File.separator + imagesFolderName; String metaFilePath = outsourcingResultPath + File.separator + metaFileName; - File imagesFolderPathFile = new File(imagesFolderPath); - if (!imagesFolderPathFile.exists()) { - imagesFolderPathFile.mkdirs(); - } - - for(int i=0; i < data.size(); i++) { - DataObject dataObject = data.get(i); + File imagesFolderPathFile = ensureDir(imagesFolderPath); + for(DataObject dataObject: data) { CmmnUtil.setOcrInfo(dataObject); CmmnUtil.setBarcode(dataObject); String sndngDtlId = dataObject.string("SNDNG_DTL_ID"); - - int crdnPhotoCnt = dataObject.number("CRDN_PHOTO_CNT").intValue(); + int crdnPhotoCnt = toInt(dataObject.get("CRDN_PHOTO_CNT")); for(int j=0; j < crdnPhotoCnt; j++){ String orgnFilePath = dataObject.string("CRDN_PHOTO"+(j+1)); String fileKey = dataObject.string("CRDN_PHOTO"+(j+1)+"KEY"); - - if(EgovStringUtil.null2void(orgnFilePath).equals("")) { - continue; - } + if(isEmpty(orgnFilePath)) continue; if(!orgnFilePath.startsWith("files")) { orgnFilePath = CmmnUtil.copyStaticResource(orgnFilePath, false); } File orgnFile = new File(orgnFilePath); - if(!orgnFile.exists() || !orgnFile.canRead()) { - continue; - } + if(!orgnFile.exists() || !orgnFile.canRead()) continue; + InputStream orgnFileInputStream = new FileInputStream(orgnFile); String modifiedFileName = "P"+sndngDtlId+CmmnUtil.indexToAlphabet(j, true, true)+"."+"JPG"; - String modifiedFilePath = imagesFolderPath + File.separator + modifiedFileName; - File modifiedFile = new File(modifiedFilePath); if(dataObject.get("MOS"+fileKey) != null) { @@ -150,48 +119,28 @@ public class OutsourcingFileMaker { File metaFile = new File(metaFilePath); if (!metaFile.exists()) { - if(!metaFile.createNewFile()) { + if(!metaFile.createNewFile()) throw new RuntimeException("외주파일생성 중 오류가 발생하였습니다."); - }; } FileWriter fw = new FileWriter(metaFile); BufferedWriter writer = new BufferedWriter(fw); - + Hangul hangul = new Hangul(2); for(int i=0; i < data.size(); i++) { DataObject dataObject = data.get(i); - - if(i != 0) { + if(i != 0) writer.write("\n"); - } + String line = ""; for(DataObject printStngItem : printStngItems){ String artclNm = printStngItem.string("ARTCL_NM"); - int byteCnt = printStngItem.number("ARTCL_SZ").intValue(); - String artclValue = ""; - - //조회한 데이터와 관련없는 항목(출력일시 등) - if(artclNm.equals("OTPT_YMD") || artclNm.equals("OTPT_YEAR") - || artclNm.equals("OTPT_MONTH") || artclNm.equals("OTPT_DAY")) { - switch(artclNm) { - case "OTPT_YMD" : - artclValue = yyyymmdd; - break; - case "OTPT_YEAR" : - artclValue = year; - break; - case "OTPT_MONTH" : - artclValue = month; - break; - case "OTPT_DAY" : - artclValue = day; - break; - } - - } else { - - artclValue = dataObject.string(artclNm); - } + String artclValue = switch (artclNm) { + case "OTPT_YMD" -> yyyymmdd; + case "OTPT_YEAR" -> year; + case "OTPT_MONTH" -> month; + case "OTPT_DAY" -> day; + default -> dataObject.string(artclNm); + }; //포매팅 if(!printStngItem.string("FORMATTING").equals("")) { @@ -227,6 +176,7 @@ public class OutsourcingFileMaker { } //공백 패딩 방향 + int byteCnt = toInt(printStngItem.get("ARTCL_SZ")); if(printStngItem.string("PADDING_DIRECTION").equals("left")) { line += hangul.lpadByte(artclValue, byteCnt, " "); } else { @@ -242,8 +192,7 @@ public class OutsourcingFileMaker { String zipFileName = yyyymmdd + printKorName + ".zip"; String zipFilePath = outsourcingResultPath + File.separator + zipFileName; - ZIP zip = new ZIP(); - zip.compress(zipFilePath, metaFilePath, imagesFolderPath); + new ZIP().compress(zipFilePath, metaFilePath, imagesFolderPath); metaFile.delete(); File[] images = imagesFolderPathFile.listFiles(); @@ -253,27 +202,25 @@ public class OutsourcingFileMaker { imagesFolderPathFile.delete(); resultZipFilePath = zipFilePath; - result.put("download", this.getDownloadable().setFilename(zipFileName)); - result.put("downloadData", data); - result.put("dataNames", this.filterDownloadDataNames()); + return Map.of( + "download", getDownloadable().setFilename(zipFileName), + "downloadData", data, + "dataNames", this.filterDownloadDataNames() + ); } catch(FileNotFoundException e) { throw new RuntimeException("파일을 찾을 수 없습니다."); } catch (IOException e) { throw new RuntimeException("외주파일생성 중 오류가 발생하였습니다."); } - - return result; } public void write(OutputStream out) { - try { - FileInputStream fis = new FileInputStream(resultZipFilePath); + try (FileInputStream fis = new FileInputStream(resultZipFilePath);) { fis.transferTo(out); - fis.close(); new File(resultZipFilePath).delete(); } catch (Exception e) { - throw new RuntimeException(e); + throw runtimeException(e); } } @@ -284,35 +231,35 @@ public class OutsourcingFileMaker { } public static List predifinedSetForOutsourcing() { - List predefinedSetList = new ArrayList<>(); - predefinedSetList.add(new PredefinedSet("SNDNG_DTL_ID", "발송상세아이디").offLog()); - predefinedSetList.add(new PredefinedSet("VLTN_LAW_NM", "위반법명")); - predefinedSetList.add(new PredefinedSet("BARCODE", "바코드").offLog()); - predefinedSetList.add(new PredefinedSet("CRDN_DT", "단속일시")); - predefinedSetList.add(new PredefinedSet("DUDT_YMD", "납부기한")); - predefinedSetList.add(new PredefinedSet("VHRNO", "차량번호")); - predefinedSetList.add(new PredefinedSet("FFNLG_CARMDL_NM", "과태료차종명")); - predefinedSetList.add(new PredefinedSet("VHCL_NM", "차량명")); - predefinedSetList.add(new PredefinedSet("CRDN_PLC", "단속장소")); - predefinedSetList.add(new PredefinedSet("RTPYR_ADDR", "납부자기본주소")); - predefinedSetList.add(new PredefinedSet("RTPYR_DTL_ADDR", "납부자상세주소")); - predefinedSetList.add(new PredefinedSet("RTPYR_ZIP", "납부자우편번호")); - predefinedSetList.add(new PredefinedSet("RTPYR_NM", "납부자명")); - predefinedSetList.add(new PredefinedSet("OPNN_RANGE", "의견진술기간")); - predefinedSetList.add(new PredefinedSet("CRDN_SE_NM", "단속구분명")); - predefinedSetList.add(new PredefinedSet("ATCH_FILE_CNT", "첨부파일갯수")); - predefinedSetList.add(new PredefinedSet("FFNLG_CRDN_AMT", "과태료단속금액")); - predefinedSetList.add(new PredefinedSet("LAST_AMT", "최종금액")); - predefinedSetList.add(new PredefinedSet("RG_NO", "등기번호")); - predefinedSetList.add(new PredefinedSet("OCR0", "OCR0").offLog()); - predefinedSetList.add(new PredefinedSet("OCR0_1", "OCR0_1").offLog()); - predefinedSetList.add(new PredefinedSet("OCR0_2", "OCR0_2").offLog()); - predefinedSetList.add(new PredefinedSet("OCR_BAND1", "OCR_BAND1").offLog()); - predefinedSetList.add(new PredefinedSet("OCR_BAND2", "OCR_BAND2").offLog()); - predefinedSetList.add(new PredefinedSet("BANK_NM", "가상계좌은행명")); - predefinedSetList.add(new PredefinedSet("VR_ACTNO", "가상계좌")); - predefinedSetList.add(new PredefinedSet("EPAYNO", "전자납부번호")); - predefinedSetList.add(new PredefinedSet("EMPTY", "공백").offLog()); - return predefinedSetList; + return Arrays.asList( + new PredefinedSet("SNDNG_DTL_ID", "발송상세아이디").offLog(), + new PredefinedSet("VLTN_LAW_NM", "위반법명"), + new PredefinedSet("BARCODE", "바코드").offLog(), + new PredefinedSet("CRDN_DT", "단속일시"), + new PredefinedSet("DUDT_YMD", "납부기한"), + new PredefinedSet("VHRNO", "차량번호"), + new PredefinedSet("FFNLG_CARMDL_NM", "과태료차종명"), + new PredefinedSet("VHCL_NM", "차량명"), + new PredefinedSet("CRDN_PLC", "단속장소"), + new PredefinedSet("RTPYR_ADDR", "납부자기본주소"), + new PredefinedSet("RTPYR_DTL_ADDR", "납부자상세주소"), + new PredefinedSet("RTPYR_ZIP", "납부자우편번호"), + new PredefinedSet("RTPYR_NM", "납부자명"), + new PredefinedSet("OPNN_RANGE", "의견진술기간"), + new PredefinedSet("CRDN_SE_NM", "단속구분명"), + new PredefinedSet("ATCH_FILE_CNT", "첨부파일갯수"), + new PredefinedSet("FFNLG_CRDN_AMT", "과태료단속금액"), + new PredefinedSet("LAST_AMT", "최종금액"), + new PredefinedSet("RG_NO", "등기번호"), + new PredefinedSet("OCR0", "OCR0").offLog(), + new PredefinedSet("OCR0_1", "OCR0_1").offLog(), + new PredefinedSet("OCR0_2", "OCR0_2").offLog(), + new PredefinedSet("OCR_BAND1", "OCR_BAND1").offLog(), + new PredefinedSet("OCR_BAND2", "OCR_BAND2").offLog(), + new PredefinedSet("BANK_NM", "가상계좌은행명"), + new PredefinedSet("VR_ACTNO", "가상계좌"), + new PredefinedSet("EPAYNO", "전자납부번호"), + new PredefinedSet("EMPTY", "공백").offLog() + ); } -} +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/fims/cmmn/service/bean/ExtrStngBean.java b/src/main/java/cokr/xit/fims/cmmn/service/bean/ExtrStngBean.java index 86e684fc..194871e0 100644 --- a/src/main/java/cokr/xit/fims/cmmn/service/bean/ExtrStngBean.java +++ b/src/main/java/cokr/xit/fims/cmmn/service/bean/ExtrStngBean.java @@ -21,7 +21,6 @@ import cokr.xit.foundation.data.DataObject; @Component("extrStngBean") public class ExtrStngBean extends AbstractBean { - @Resource(name = "extrStngMapper") private ExtrStngMapper extrStngMapper; @@ -33,23 +32,14 @@ public class ExtrStngBean extends AbstractBean { return extrStngMapper.selectExtrBscStng(extrStngQuery); } - /**지정한 조건에 따라 추출요소별 설정을 조회한다. * @param query 조회 조건 * @return 출력 요소 설정 */ public Map getExtrArtclStngMap(ExtrStngQuery query){ - Map extrStngMap = new HashMap(); - - PDFExtractFormat pdfFormat = null; - pdfFormat = new ElectronicNotice(); - - List extrArtclStngList = extrStngMapper.selectExtrArtclStngList(query); - if(extrArtclStngList == null) { - extrArtclStngList = new ArrayList(); - } + List extrArtclStngList = ifEmpty(extrStngMapper.selectExtrArtclStngList(query), ArrayList::new); + PDFExtractFormat pdfFormat = new ElectronicNotice(); pdfFormat.appendPredefinedYn(extrArtclStngList); - List predefinedSetList = pdfFormat.getPredefinedSetList(); List predefinedDataList = extrArtclStngList.stream().filter(item -> item.string("PREDEFINED_YN").equals("Y")).toList(); @@ -61,43 +51,37 @@ public class ExtrStngBean extends AbstractBean { Map custom = new HashMap(); custom.put("dataList", customDataList); - extrStngMap.put("predefinedSetList", predefinedSetList); - extrStngMap.put("predefined", predefined); - extrStngMap.put("custom", custom); - return extrStngMap; + return Map.of( + "predefinedSetList", predefinedSetList, + "predefined", predefined, + "custom", custom + ); } - public boolean saveExtrBscStng(ExtrForm extrForm) { - - boolean result = false; String userId = currentUser().getId(); - if(ifEmpty(extrForm.getExtrBscId(), ()-> "").equals("")) { + if(isEmpty(extrForm.getExtrBscId())) { extrForm.setCreatedBy(userId); - result = extrStngMapper.insertBscStng(extrForm) == 1; + return extrStngMapper.insertBscStng(extrForm) == 1; } else { extrForm.setModifiedBy(userId); - result = extrStngMapper.updateBscStng(extrForm) == 1; + return extrStngMapper.updateBscStng(extrForm) == 1; } - - return result; } - public boolean saveExtrArtclStng(ExtrForm extrForm) { try { - String userId = currentUser().getId(); - List extrArtclStngList = extrForm.getExtrArtclStngList(); - List updateKeyList = new ArrayList(); List insertList = new ArrayList(); - if(extrArtclStngList != null && !extrArtclStngList.isEmpty()) { - - List updateList = extrArtclStngList.stream().filter(item -> !ifEmpty(item.getExtrFormId(), () -> "").equals("")).toList(); + List extrArtclStngList = extrForm.getExtrArtclStngList(); + if(!isEmpty(extrArtclStngList)) { + List updateList = extrArtclStngList.stream() + .filter(item -> !isEmpty(item.getExtrFormId())) + .toList(); if(!updateList.isEmpty()) { for(ExtrArtclStng update : updateList) { update.setModifiedBy(userId); @@ -111,6 +95,7 @@ public class ExtrStngBean extends AbstractBean { if(!updateKeyList.isEmpty()) { extrForm.setExtrFormIDs(updateKeyList.toArray(new String[updateKeyList.size()])); } + extrForm.setModifiedBy(userId); extrStngMapper.deleteArtclStng(extrForm); @@ -126,4 +111,4 @@ public class ExtrStngBean extends AbstractBean { return true; } -} +} \ No newline at end of file diff --git a/src/main/java/cokr/xit/fims/crdn/web/Crdn06Controller.java b/src/main/java/cokr/xit/fims/crdn/web/Crdn06Controller.java index 607757ef..158dcf2e 100644 --- a/src/main/java/cokr/xit/fims/crdn/web/Crdn06Controller.java +++ b/src/main/java/cokr/xit/fims/crdn/web/Crdn06Controller.java @@ -434,7 +434,7 @@ public class Crdn06Controller extends ApplicationController { @RequestMapping(name= "단속 사진 목록", value = "/fileList.do") public ModelAndView getFileList(FileQuery req) { String infoType = ifEmpty(req.getInfoType(), () -> ""); - boolean singleKey = (req.getInfoKeys() != null && req.getInfoKeys().length == 1); + boolean singleKey = (req.getInfoKeys() != null && req.getInfoKeys().size() == 1); //파일 목록 List fileInfoList = fileService.getFileList(req); @@ -460,7 +460,7 @@ public class Crdn06Controller extends ApplicationController { //민원 동영상파일 첨부 여부 String cvlcptVideoExistYn = "N"; if(infoType.equals(Crdn.INF_TYPE) && singleKey) { - DataObject dataObject = crdnInfoMapper.selectCrdnInfo(req.getInfoKeys()[0]); + DataObject dataObject = crdnInfoMapper.selectCrdnInfo(req.getInfoKeys().get(0)); String linkTblNm = dataObject.string("LINK_TBL_NM"); if(!linkTblNm.equals("")) { //민원연계자료 diff --git a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java index 85d67b2b..b4c658b2 100644 --- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java +++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java @@ -1945,21 +1945,16 @@ public class Sndb01Controller extends ApplicationController { @RequestMapping(name="사전통지서 외주 파일 생성", value=METHOD_URL.makeAdvanceNoticeOutsourcing) public ModelAndView makeAdvanceNoticeOutsourcing(SndbQuery req, FimsPrintOption printOption) { List list = sndngDtlService.getSndngTrgtDtlIds(req); - - String[] crdnIds = new String[list.size()]; - for (int iLoop = 0; iLoop < list.size(); iLoop++) { - crdnIds[iLoop] = list.get(iLoop).string("CRDN_ID"); - } - SprtQuery sprtQuery = new SprtQuery(); - sprtQuery.setCrdnIds(crdnIds); + String[] crdnIds = list.stream().map(row -> row.string("CRDN_ID")).toList().toArray(new String[list.size()]); + SprtQuery sprtQuery = new SprtQuery() + .setCrdnIds(crdnIds); List dataObjectList = integrationSearchMapper.selectIntegrationDataList(sprtQuery); - for (int i=0; i < dataObjectList.size(); i++) { - DataObject sndngDtl = integrationSearchMapper.selectLatestSndngDtlInfo(dataObjectList.get(i).string("CRDN_ID")); - dataObjectList.get(i).set("SNDNG_DTL_ID",sndngDtl.string("SNDNG_DTL_ID")); - dataObjectList.get(i).set("SNDNG_YMD",sndngDtl.string("SNDNG_YMD")); - dataObjectList.get(i).set("OPNN_RANGE", - dataObjectList.get(i).string("SNDNG_YMD")+"~"+dataObjectList.get(i).string("DUDT_YMD")); - dataObjectList.get(i).set("RG_NO",sndngDtl.string("RG_NO")); + for (DataObject row: dataObjectList) { + DataObject sndngDtl = integrationSearchMapper.selectLatestSndngDtlInfo(row.string("CRDN_ID")); + row.set("SNDNG_DTL_ID", sndngDtl.string("SNDNG_DTL_ID")); + row.set("SNDNG_YMD", sndngDtl.string("SNDNG_YMD")); + row.set("OPNN_RANGE", row.string("SNDNG_YMD")+"~"+row.string("DUDT_YMD")); + row.set("RG_NO",sndngDtl.string("RG_NO")); } String taskSeCd = ""; @@ -1969,30 +1964,26 @@ public class Sndb01Controller extends ApplicationController { if (taskSeCd.isEmpty()) taskSeCd = dataObject.string("TASK_SE_CD"); - FileQuery fileQuery = new FileQuery(); - fileQuery.setInfoType(Crdn.INF_TYPE); - fileQuery.setInfoKeys(dataObject.string("CRDN_ID")); + FileQuery fileQuery = new FileQuery() + .setInfoType(Crdn.INF_TYPE) + .setInfoKeys(dataObject.string("CRDN_ID")); List fileInfoList = fileBean.getFileList(fileQuery); - - if (fileInfoList != null) { - int crdnPhotoCnt = fileInfoList.size(); - for (int j=0; j < fileInfoList.size(); j++) { - DataObject fileInfo = fileInfoList.get(j); - - dataObject - .set("CRDN_PHOTO"+(j+1), fileInfo.string("FILE_PATH")) - .set("CRDN_PHOTO"+(j+1)+"KEY", fileInfo.string("FILE_ID")); - List mosSet = mediaBean.getMosaicList(fileInfo.string("FILE_ID")); - if (mosSet != null) { - for (int k=0; k < mosSet.size(); k++) { - dataObject.set("MOS"+fileInfo.string("FILE_ID"), mosSet); - } + int crdnPhotoCnt = fileInfoList.size(); + + for (int j=0; j < fileInfoList.size(); j++) { + DataObject fileInfo = fileInfoList.get(j); + + dataObject + .set("CRDN_PHOTO"+(j+1), fileInfo.string("FILE_PATH")) + .set("CRDN_PHOTO"+(j+1)+"KEY", fileInfo.string("FILE_ID")); + List mosSet = mediaBean.getMosaicList(fileInfo.string("FILE_ID")); + if (mosSet != null) { + for (int k=0; k < mosSet.size(); k++) { + dataObject.set("MOS"+fileInfo.string("FILE_ID"), mosSet); } } - dataObject.set("CRDN_PHOTO_CNT", crdnPhotoCnt); - } else { - dataObject.set("CRDN_PHOTO_CNT", 0); } + dataObject.set("CRDN_PHOTO_CNT", crdnPhotoCnt); } @@ -2002,10 +1993,7 @@ public class Sndb01Controller extends ApplicationController { .setTaskSeCd(taskSeCd); List printStngItems = outsourcingStngBean.getArtclStngList(stngQuery); - OutsourcingFileMaker osMaker = new OutsourcingFileMaker("사전통지", printOption, printStngItems, dataObjectList); - - Map result = osMaker.makeFile(); - + Map result = new OutsourcingFileMaker("사전통지", printOption, printStngItems, dataObjectList).makeFile(); return new ModelAndView("downloadView") .addAllObjects(result); } @@ -2018,40 +2006,31 @@ public class Sndb01Controller extends ApplicationController { public ModelAndView makeNoticeSheetPdf(SndbQuery req, FimsPrintOption printOption) { // 고지서 출력 대상 자료 조회 List list = sndngDtlService.getSndngTrgtDtlIds(req); - - String[] crdnIds = new String[list.size()]; - for (int iLoop = 0; iLoop < list.size(); iLoop++) { - crdnIds[iLoop] = list.get(iLoop).string("CRDN_ID"); - } - + String[] crdnIds = list.stream().map(row -> row.string("CRDN_ID")).toList().toArray(new String[list.size()]); UserInfo userInfo = currentUser(); ogdpBean.initUserInfo(userInfo); // 단속 대장 조회 - SprtQuery sprtQuery = new SprtQuery(); - sprtQuery.setCrdnIds(crdnIds); - + SprtQuery sprtQuery = new SprtQuery() + .setCrdnIds(crdnIds); ListdataObjectList = integrationSearchMapper.selectIntegrationDataList(sprtQuery); - for (int i=0; i < dataObjectList.size(); i++) { - DataObject dataObject = dataObjectList.get(i); + for (DataObject dataObject: dataObjectList) { String crdnId = dataObject.string("CRDN_ID"); - FileQuery fileQuery = new FileQuery(); - fileQuery.setInfoType(Crdn.INF_TYPE); - fileQuery.setInfoKeys(crdnId); - + FileQuery fileQuery = new FileQuery() + .setInfoType(Crdn.INF_TYPE) + .setInfoKeys(crdnId); List fileInfoList = fileBean.getFileList(fileQuery); - if (fileInfoList != null && fileInfoList.size() > 0) { - for (int j=0; j mosSet = mediaBean.getMosaicList(fileInfoList.get(j).string("FILE_ID")); - if (mosSet != null && !mosSet.isEmpty()) { - dataObject.set("MOS"+fileInfoList.get(j).string("FILE_ID"), mosSet); - } - } + for (int j=0; j mosSet = mediaBean.getMosaicList(fileID); + if (!isEmpty(mosSet)) + dataObject.set("MOS"+fileID, mosSet); } } @@ -2059,27 +2038,21 @@ public class Sndb01Controller extends ApplicationController { print.setPrintRequestUserInfo(userInfo); //출력물 기본 설정 - OtptStngQuery otptStngQuery = new OtptStngQuery(); String paperSeCd = printOption.getPaperSeCd(); String taskSeCd = printOption.getTaskSeCd(); - otptStngQuery.setSggCd((String)userInfo.getInfo().get("sggCd")); - otptStngQuery.setTaskSeCd(taskSeCd); - otptStngQuery.setSndngSeCd("03"); - otptStngQuery.setPaperSeCd(paperSeCd); - DataObject otptBscStng = otptStngMapper.selectOtptBscStng(otptStngQuery); - if (otptBscStng == null) { - otptBscStng = new DataObject(); - } + OtptStngQuery otptStngQuery = new OtptStngQuery() + .setSndngSeCd("03") + .setPaperSeCd(paperSeCd) + .setSggCd((String)userInfo.getInfo().get("sggCd")) + .setTaskSeCd(taskSeCd); + DataObject otptBscStng = ifEmpty(otptStngMapper.selectOtptBscStng(otptStngQuery), DataObject::new); //출력 요소별 설정 List otptArtclStngList = otptStngMapper.selectOtptArtclStngList(otptStngQuery); DataObject sggStngInfo = stngBean.getStng("sgg"); DataObject deptStngInfo = stngBean.getStng("dept"); // - Map globalVariable = printOption.getGlobalVariable(); - if (globalVariable == null) { - globalVariable = new HashMap(); - } + Map globalVariable = ifEmpty(printOption.getGlobalVariable(), HashMap::new); globalVariable.put("offcsFilePath", sggStngInfo.string("OFFCS_FILE_PATH")); globalVariable.put("logoFilePath", sggStngInfo.string("LOGO_FILE_PATH")); globalVariable.put("instAddr", sggStngInfo.string("INST_ADDR")); @@ -2087,14 +2060,11 @@ public class Sndb01Controller extends ApplicationController { globalVariable.put("instZip", sggStngInfo.string("INST_ZIP")); globalVariable.put("deptTelno", deptStngInfo.string("DEPT_TELNO")); globalVariable.put("deptFxno", deptStngInfo.string("DEPT_FXNO")); - if (!otptBscStng.string("BCRN_IMG_PATH").equals("")) { + if (!isEmpty(otptBscStng.string("BCRN_IMG_PATH"))) { globalVariable.put("bcrnImgPath", otptBscStng.string("BCRN_IMG_PATH")); } printOption.setGlobalVariable(globalVariable); - - Nht pdfFormat = new Nht(print,printOption,otptBscStng,otptArtclStngList,paperSeCd,dataObjectList); - - Map result = pdfFormat.makeFile(); + Map result = new Nht(print,printOption,otptBscStng,otptArtclStngList,paperSeCd,dataObjectList).makeFile(); return new ModelAndView("downloadView") .addAllObjects(result); @@ -2108,54 +2078,41 @@ public class Sndb01Controller extends ApplicationController { public ModelAndView makeNoticeSheetOutsourcing(SndbQuery req, FimsPrintOption printOption) { // 고지서 출력 대상 자료 조회 List list = sndngDtlService.getSndngTrgtDtlIds(req); - - String[] crdnIds = new String[list.size()]; - for (int i = 0; i < list.size(); i++) { - crdnIds[i] = list.get(i).string("CRDN_ID"); - } - + String[] crdnIds = list.stream().map(row -> row.string("CRDN_ID")).toList().toArray(new String[list.size()]); UserInfo userInfo = currentUser(); ogdpBean.initUserInfo(userInfo); String taskSeCd = req.getTaskSeCd(); - // 단속 대장 조회 - SprtQuery sprtQuery = new SprtQuery(); - sprtQuery.setCrdnIds(crdnIds); - + SprtQuery sprtQuery = new SprtQuery() + .setCrdnIds(crdnIds); List dataObjectList = integrationSearchMapper.selectIntegrationDataList(sprtQuery); - for (int i=0; i < dataObjectList.size(); i++) { - DataObject dataObject = dataObjectList.get(i); - + for (DataObject dataObject: dataObjectList) { if (taskSeCd.isEmpty()) { taskSeCd = dataObject.string("TASK_SE_CD"); } - FileQuery fileQuery = new FileQuery(); - fileQuery.setInfoType(Crdn.INF_TYPE); - fileQuery.setInfoKeys(dataObject.string("CRDN_ID")); + FileQuery fileQuery = new FileQuery() + .setInfoType(Crdn.INF_TYPE) + .setInfoKeys(dataObject.string("CRDN_ID")); List fileInfoList = fileBean.getFileList(fileQuery); - - if (fileInfoList != null) { - int crdnPhotoCnt = fileInfoList.size(); - for (int j = 0; j < fileInfoList.size(); j++) { - DataObject fileInfo = fileInfoList.get(j); - dataObject.set("CRDN_PHOTO"+(j + 1), fileInfo.string("FILE_PATH")); - String fileID = fileInfo.string("FILE_ID"); - dataObject.set("CRDN_PHOTO"+(j + 1)+"KEY", fileID); - - List mosSet = mediaBean.getMosaicList(fileID); - if (mosSet != null) { - for (int k=0; k < mosSet.size(); k++) { - dataObject.set("MOS"+fileID, mosSet); - } + int crdnPhotoCnt = fileInfoList.size(); + + for (int j = 0; j < crdnPhotoCnt; j++) { + DataObject fileInfo = fileInfoList.get(j); + dataObject.set("CRDN_PHOTO"+(j + 1), fileInfo.string("FILE_PATH")); + String fileID = fileInfo.string("FILE_ID"); + dataObject.set("CRDN_PHOTO"+(j + 1)+"KEY", fileID); + + List mosSet = mediaBean.getMosaicList(fileID); + if (mosSet != null) { + for (int k=0; k < mosSet.size(); k++) { + dataObject.set("MOS"+fileID, mosSet); } } - dataObject.set("CRDN_PHOTO_CNT", crdnPhotoCnt); - } else { - dataObject.set("CRDN_PHOTO_CNT", 0); } + dataObject.set("CRDN_PHOTO_CNT", crdnPhotoCnt); } OutsourcingStngQuery stngQuery = new OutsourcingStngQuery()