diff --git a/pom.xml b/pom.xml index 87dac35..f5109ad 100644 --- a/pom.xml +++ b/pom.xml @@ -66,7 +66,13 @@ mariadb-java-client runtime - + + + cokr.xit.app + app-support + 0.0.1-SNAPSHOT + + diff --git a/src/main/java/cokr/xit/adds/DocController.java b/src/main/java/cokr/xit/adds/DocController.java new file mode 100644 index 0000000..74a038c --- /dev/null +++ b/src/main/java/cokr/xit/adds/DocController.java @@ -0,0 +1,347 @@ +package cokr.xit.adds; + +import java.io.File; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.annotation.Resource; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.servlet.ModelAndView; + +import cokr.xit.adds.cmmn.hwp.format.DisposeResultNotice; +import cokr.xit.adds.cmmn.hwp.format.DisposeResultReport; +import cokr.xit.applib.Print; +import cokr.xit.applib.PrintOption; +import cokr.xit.base.file.FileInfo; +import cokr.xit.base.file.FileInfo.Relation; +import cokr.xit.base.file.service.FileService; +import cokr.xit.foundation.data.DataObject; +import cokr.xit.foundation.web.AbstractController; + +@Controller +@RequestMapping(value="/doc") +public class DocController extends AbstractController { + + @Resource(name="fileService") + FileService fileService; + + private String sggNm = "용인시"; + + @RequestMapping(value="/makeDisposeResultNoticeHwp.do") + public ModelAndView makeDisposeResultNoticeHwp(String dscMngId) { + + ModelAndView mav = new ModelAndView(); + mav.setViewName("jsonView"); + + if(dscMngId == null || dscMngId.equals("")) { + + return mav; + } + + + //출력일시,출력작업자 + Print print = new Print(); + print.setPrintRequestUserInfo(currentUser()); + + //개인정보표시여부,기관장 등 + PrintOption printOption = new PrintOption(); + Map globalVariable = new HashMap(); + String gigwanjang = sggNm+"장"; + gigwanjang = spreadBySpace(gigwanjang,4); + globalVariable.put("gigwanjang", gigwanjang); + printOption.setGlobalVariable(globalVariable); + + //샘플 데이터 + List dataobjectList = this.makeSample(); + + DisposeResultNotice disposeResultNotice = new DisposeResultNotice(print, printOption, dataobjectList); + String resultFilePath = disposeResultNotice.makeFile().andGetPath(); + + File file = new File(resultFilePath); + Relation rel = new Relation().setInfoType("200").setSubType("01").setInfoKey(dscMngId); + FileInfo fileInfo = new FileInfo.Factory().create(rel, file); + int effected= fileService.create(fileInfo); + String fileId = fileInfo.getId(); + file.delete(); + + mav.addObject("fileId",fileId); + return mav; + } + + private String spreadBySpace(String str, int spaceCnt) { + String result = ""; + + String spaces = ""; + for(int i=1; i<=spaceCnt; i++) { + spaces += " "; + } + + char[] charArr = str.toCharArray(); + result += Character.toString(charArr[0]); + for(int i=1; i globalVariable = new HashMap(); + String gigwanjang = sggNm+"장"; + gigwanjang = spreadBySpace(gigwanjang,4); + globalVariable.put("gigwanjang", gigwanjang); + printOption.setGlobalVariable(globalVariable); + + //샘플 데이터 + List dataobjectList = this.makeSample(); + List dataobjectList2 = List.of( + "files/attachment/dsuse/2024/05/25/001.jpg", + "files/attachment/dsuse/2024/05/25/002.jpg", + "files/attachment/dsuse/2024/05/25/003.jpg", + "files/attachment/dsuse/2024/05/25/004.jpg", + "files/attachment/dsuse/2024/05/25/005.jpg", + "files/attachment/dsuse/2024/05/25/006.jpg", + "files/attachment/dsuse/2024/05/25/007.jpg" + ); + + DisposeResultReport disposeResultReport = new DisposeResultReport(print, printOption, dataobjectList, dataobjectList2); + String resultFilePath = disposeResultReport.makeFile().andGetPath(); + + File file = new File(resultFilePath); + Relation rel = new Relation().setInfoType("200").setSubType("02").setInfoKey(dscMngId); + FileInfo fileInfo = new FileInfo.Factory().create(rel, file); + int effected= fileService.create(fileInfo); + String fileId = fileInfo.getId(); + file.delete(); + + mav.addObject("fileId",fileId); + return mav; + } + + + public List makeSample(){ + List dataobjectList = new ArrayList(); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디칼약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D04343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "공무원임회") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "마약") + .set("prductNm", "자낙스정0.5mg") + .set("prductCd", "08806489012648") + .set("minDistbQy", "30") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "2") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/001.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "아쿠아폴주20밀리리터(프로포폴)(20ml)") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/002.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "자낙스정0.4mg") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/003.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "베리콜시럽") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/004.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "자낙스정0.3mg") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/005.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "자낙스정0.2mg") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/006.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "자낙스정0.1mg") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/007.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "자낙스정0.6mg") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/008.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "자낙스정0.7mg") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/009.jpg") + ); + dataobjectList.add(new DataObject() + .set("bsshNm", "메디약국") + .set("indutyNm", "마약류취급소매업자") + .set("bsshCd", "D14343033") + .set("dsuseDe", "20240501") + .set("dsuseSeCdNm", "보건소폐기") //ADDS03 + .set("dsusePrvCdNm", "유효기간경과") //ADDS04 + .set("dsuseLoc", "수지구보건소 검사실") + .set("dsuseMthCdNm", "가수분해") //ADDS05 + .set("nrcdSeNm", "항정") + .set("prductNm", "자낙스정0.8mg") + .set("prductCd", "08806489012648") + .set("minDistbQy", "31") + .set("stdPackngStleNm", "정") + .set("mnfNo", "FJ6892") + .set("prdValidDe", "20240323") + .set("pceQy", "3") + .set("pceCoUnitNm", "정") + .set("filePath", "files/attachment/dsusedtl/2024/05/24/010.jpg") + ); + return dataobjectList; + } + +} diff --git a/src/main/java/cokr/xit/adds/cmmn/hwp/format/DisposeResultNotice.java b/src/main/java/cokr/xit/adds/cmmn/hwp/format/DisposeResultNotice.java new file mode 100644 index 0000000..186986b --- /dev/null +++ b/src/main/java/cokr/xit/adds/cmmn/hwp/format/DisposeResultNotice.java @@ -0,0 +1,65 @@ +package cokr.xit.adds.cmmn.hwp.format; + +import java.util.List; +import java.util.stream.IntStream; + +import cokr.xit.applib.Print; +import cokr.xit.applib.PrintOption; +import cokr.xit.applib.hwp.format.HWPFormat; +import cokr.xit.foundation.data.DataFormat; +import cokr.xit.foundation.data.DataObject; + +public class DisposeResultNotice extends HWPFormat { + + public DisposeResultNotice(Print print, PrintOption printOption, List dataObjectList) { + super(print, printOption, dataObjectList); + + this.maxRunCount = 1; + this.formatFilePath = "template/hwp/dispose_result_notice.hwp"; + this.print.setFormatKorName("폐기결과통보서"); + this.print.setFormatName("disposeResultNotice"); + } + + @Override + protected void runAsWriter() { + + List list = IntStream.rangeClosed(1, data.size()).boxed().map(i -> { + DataObject one = data.get(i-1); + return (DataObject) new DataObject() + .set("연번-항목", i) + .set("폐기신청인-업소명", one.string("bsshNm")) + .set("폐기신청인-허가종별", one.string("indutyNm")) + .set("폐기신청인-마약류취급자식별번호", one.string("bsshCd")) + .set("폐기정보-폐기일자", DataFormat.yyyy_mm_dd(one.string("dsuseDe"))) + .set("폐기정보-폐기종류", one.string("dsuseSeCdNm")) + .set("폐기정보-폐기사유", one.string("dsusePrvCdNm")) + .set("폐기정보-폐기장소", one.string("dsuseLoc")) + .set("폐기정보-폐기방법", one.string("dsuseMthCd")) + .set("제품정보-구분", one.string("nrcdSeNm")) + .set("제품정보-제품명", one.string("prductNm")) + .set("제품정보-품목코드", one.string("prductCd")) + .set("제품정보-최소유통단위", one.string("minDistbQy")+one.string("stdPackngStleNm")) + .set("제품정보-제조번호", one.string("mnfNo")) + .set("제품정보-유효기한", DataFormat.yyyy_mm_dd(one.string("prdValidDe"))) + .set("폐기량-수량", one.string("pceQy")+one.string("pceCoUnitNm")) + ; + }).toList(); + writer.table(0, 2, 1).setValues(list); + + String currentTime = print.getPrintRequestDt(); + String year = currentTime.substring(0, 4); + String month = currentTime.substring(4, 6); + String day = currentTime.substring(6, 8); + String yyyymmdd = year+month+day; + writer.setValue("연월일", DataFormat.yyyy_mm_dd(yyyymmdd)); + + String gigwanjang = printOption.getGlobalVariable().get("gigwanjang"); + writer.setValue("기관장", gigwanjang); + } + + @Override + public List getDownloadDataNames() { + return null; + } + +} diff --git a/src/main/java/cokr/xit/adds/cmmn/hwp/format/DisposeResultReport.java b/src/main/java/cokr/xit/adds/cmmn/hwp/format/DisposeResultReport.java new file mode 100644 index 0000000..9de3fcd --- /dev/null +++ b/src/main/java/cokr/xit/adds/cmmn/hwp/format/DisposeResultReport.java @@ -0,0 +1,223 @@ +package cokr.xit.adds.cmmn.hwp.format; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.IntStream; + +import cokr.xit.applib.Print; +import cokr.xit.applib.PrintOption; +import cokr.xit.applib.hwp.format.HWPFormat; +import cokr.xit.base.docs.hwp.HWPWriter; +import cokr.xit.foundation.data.DataFormat; +import cokr.xit.foundation.data.DataObject; +import kr.dogfoot.hwplib.object.HWPFile; + +public class DisposeResultReport extends HWPFormat { + private List data2 = null; //폐기전 사진 + private List data3 = null; //폐기증거 사진 + + public DisposeResultReport(Print print, PrintOption printOption, List dataObjectList, List afterPhotoPaths) { + super(print, printOption, dataObjectList); + + this.maxRunCount = 1; + this.formatFilePath = "template/hwp/dispose_result_report.hwp"; + this.print.setFormatKorName("폐기결과보고서"); + this.print.setFormatName("disposeResultReport"); + + this.data2 = new ArrayList(); + + DataObject page = null; + for(int i=0;i(); + for(int i=0;i list = IntStream.rangeClosed(1, data.size()).boxed().map(i -> { + DataObject one = data.get(i-1); + return (DataObject) new DataObject() + .set("항목", i) + .set("폐기신청인-업소명", one.string("bsshNm")) + .set("폐기신청인-허가종별", one.string("indutyNm")) + .set("폐기신청인-마약류취급자식별번호", one.string("bsshCd")) + .set("폐기정보-폐기일자", DataFormat.yyyy_mm_dd(one.string("dsuseDe"))) + .set("폐기정보-폐기종류", one.string("dsuseSeCdNm")) + .set("폐기정보-폐기사유", one.string("dsusePrvCdNm")) + .set("폐기정보-폐기장소", one.string("dsuseLoc")) + .set("폐기정보-폐기방법", one.string("dsuseMthCd")) + .set("제품정보-구분", one.string("nrcdSeNm")) + .set("제품정보-제품명", one.string("prductNm")) + .set("제품정보-품목코드", one.string("prductCd")) + .set("제품정보-최소유통단위", one.string("minDistbQy")+one.string("stdPackngStleNm")) + .set("제품정보-제조번호", one.string("mnfNo")) + .set("제품정보-유효기한", DataFormat.yyyy_mm_dd(one.string("prdValidDe"))) + .set("폐기량-수량", one.string("pceQy")+one.string("pceCoUnitNm")) + ; + }).toList(); + + writer.table(0, 3, 1).setValues(list); + + String currentTime = print.getPrintRequestDt(); + String year = currentTime.substring(0, 4); + String month = currentTime.substring(4, 6); + String day = currentTime.substring(6, 8); + writer.setValue("연", year); + writer.setValue("월", month); + writer.setValue("일", day); + + String gigwanjang = printOption.getGlobalVariable().get("gigwanjang"); + writer.setValue("기관장", gigwanjang); + + } else if(this.formatFilePath.equals("template/hwp/dispose_result_report_before_photo.hwp")){ + + DataObject one = data2.get(currentRunCount-1); + DataObject newObj = new DataObject(); + if(!one.string("폐기전사진1경로").equals("")) { + newObj.set("폐기전사진1제목", one.string("폐기전사진1제목")); + newObj.set("폐기전사진1", writer.image().add(one.string("폐기전사진1경로"))); + } + if(!one.string("폐기전사진2경로").equals("")) { + newObj.set("폐기전사진2제목", one.string("폐기전사진2제목")); + newObj.set("폐기전사진2", writer.image().add(one.string("폐기전사진2경로"))); + } + if(!one.string("폐기전사진3경로").equals("")) { + newObj.set("폐기전사진3제목", one.string("폐기전사진3제목")); + newObj.set("폐기전사진3", writer.image().add(one.string("폐기전사진3경로"))); + } + if(!one.string("폐기전사진4경로").equals("")) { + newObj.set("폐기전사진4제목", one.string("폐기전사진4제목")); + newObj.set("폐기전사진4", writer.image().add(one.string("폐기전사진4경로"))); + } + if(!one.string("폐기전사진5경로").equals("")) { + newObj.set("폐기전사진5제목", one.string("폐기전사진5제목")); + newObj.set("폐기전사진5", writer.image().add(one.string("폐기전사진5경로"))); + } + if(!one.string("폐기전사진6경로").equals("")) { + newObj.set("폐기전사진6제목", one.string("폐기전사진6제목")); + newObj.set("폐기전사진6", writer.image().add(one.string("폐기전사진6경로"))); + } + writer.table(0, 0, 4).setValues(List.of(newObj)); + + } else if(this.formatFilePath.equals("template/hwp/dispose_result_report_after_photo.hwp")){ + DataObject one = data3.get(currentRunCount-1-data2.size()); + DataObject newObj = new DataObject(); + newObj.set("폐기증거제목", one.string("폐기증거제목")); + + if(!one.string("폐기증거사진1경로").equals("")) { + newObj.set("폐기증거사진1", writer.image().add(one.string("폐기증거사진1경로"))); + } + if(!one.string("폐기증거사진2경로").equals("")) { + newObj.set("폐기증거사진2", writer.image().add(one.string("폐기증거사진2경로"))); + } + if(!one.string("폐기증거사진3경로").equals("")) { + newObj.set("폐기증거사진3", writer.image().add(one.string("폐기증거사진3경로"))); + } + if(!one.string("폐기증거사진4경로").equals("")) { + newObj.set("폐기증거사진4", writer.image().add(one.string("폐기증거사진4경로"))); + } + if(!one.string("폐기증거사진5경로").equals("")) { + newObj.set("폐기증거사진5", writer.image().add(one.string("폐기증거사진5경로"))); + } + if(!one.string("폐기증거사진6경로").equals("")) { + newObj.set("폐기증거사진6", writer.image().add(one.string("폐기증거사진6경로"))); + } + writer.table(0, 0, 3).setValues(List.of(newObj)); + } + } + + @Override + public List getDownloadDataNames() { + return null; + } + +} diff --git a/src/main/resources/sql/mapper/base/file-mapper.xml b/src/main/resources/sql/mapper/base/file-mapper.xml index a585733..655f5f1 100644 --- a/src/main/resources/sql/mapper/base/file-mapper.xml +++ b/src/main/resources/sql/mapper/base/file-mapper.xml @@ -27,7 +27,8 @@ SELECT '02' INF_TYPE, 'article/' DIR FROM DUAL UNION SELECT '100' INF_TYPE, 'attachment/dsuse' DIR FROM DUAL UNION - SELECT '110' INF_TYPE, 'document/dsuse' DIR FROM DUAL + SELECT '110' INF_TYPE, 'attachment/dsusedtl' DIR FROM DUAL UNION + SELECT '200' INF_TYPE, 'document/dsuse' DIR FROM DUAL ) FILE_DIRS diff --git a/src/main/resources/template/hwp/dispose_result_notice.hwp b/src/main/resources/template/hwp/dispose_result_notice.hwp new file mode 100644 index 0000000..b313932 Binary files /dev/null and b/src/main/resources/template/hwp/dispose_result_notice.hwp differ diff --git a/src/main/resources/template/hwp/dispose_result_report.hwp b/src/main/resources/template/hwp/dispose_result_report.hwp new file mode 100644 index 0000000..d33cf4b Binary files /dev/null and b/src/main/resources/template/hwp/dispose_result_report.hwp differ diff --git a/src/main/resources/template/hwp/dispose_result_report_after_photo.hwp b/src/main/resources/template/hwp/dispose_result_report_after_photo.hwp new file mode 100644 index 0000000..0ca1b60 Binary files /dev/null and b/src/main/resources/template/hwp/dispose_result_report_after_photo.hwp differ diff --git a/src/main/resources/template/hwp/dispose_result_report_before_photo.hwp b/src/main/resources/template/hwp/dispose_result_report_before_photo.hwp new file mode 100644 index 0000000..9c3742d Binary files /dev/null and b/src/main/resources/template/hwp/dispose_result_report_before_photo.hwp differ