From dd7f35f949c6fd36193e767030d4de53e9fc4b8c Mon Sep 17 00:00:00 2001 From: jjh Date: Thu, 23 Nov 2023 10:43:05 +0900 Subject: [PATCH] =?UTF-8?q?=EC=88=98=EC=A0=95.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../xit/fims/sndb/service/bean/SndngBean.java | 194 +++++++++++++++--- .../WEB-INF/jsp/fims/sndb/sndb01080-info.jsp | 2 +- 2 files changed, 164 insertions(+), 32 deletions(-) diff --git a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java index 7d2230ae..656770ca 100644 --- a/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java +++ b/src/main/java/cokr/xit/fims/sndb/service/bean/SndngBean.java @@ -385,10 +385,164 @@ public class SndngBean extends AbstractComponent { String ctpvCode = ""; // 시도 코드 String sealCd3 = ""; // 내용문 상세 종류 3번째(마지막) 자리 String jobCd = ""; - String conKey = ""; + String conKey = ""; // 외부연계식별키 // 1. 발송 대장 조회 DataObject sndngInfo = sndngMapper.selectSndngInfo(sndng.getSndngId()); +/* + // 전자우편 발송 등록 전 자료 체크 + //사진파일 체크 + while not eof do + begin + if FieldByName('MM_CARNO').AsString = '' then + begin + sm('차량번호가 공란인 내역이 있습니다.' + #13 + '차량번호를 입력해주세요.'); + exit; + end; + + if FieldByName('GP_ACCOUNT_NO').AsString = '' then + begin + sm('가상계좌가 공란인 내역이 있습니다.' + #13 + '가상계좌를 입력해주세요.'); + exit; + end; + + if FieldByName('GP_ERC_NO').AsString = '' then + begin + sm('전자납부번호가 공란인 내역이 있습니다.' + #13 + '전자납부번호를 입력해주세요.'); + exit; + end; + + if FieldByName('GP_JUSO').AsString = '' then + begin + sm('주소가 공란인 내역이 있습니다.' + #13 + '주소를 입력해주세요.'); + exit; + end; + + if (FieldByName('GP_TAXNO').AsString = '') and + ((copy(CPSystem_Info.Sido_Code,1,2) = '11') or (debug_level = 4)) then + begin + sm('과세번호가 공란인 내역이 있습니다.' + #13 + '과세번호를 입력해주세요.'); + exit; + end; + + img_chk := 0; + imcode := fieldbyname('MM_code').AsString; +// sm(fieldbyname('MM_code').AsString+#13+fieldbyname('MM_imagecnt').AsString); + sgg_code := Copy(imcode, 1, 5); //시군구 + YearPath := Copy(imcode, 6, 4); //년도 + if fieldbyname('MM_imagecnt').Asinteger = 1 then + begin + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'A.jpg') then + inc(img_chk); + end + else if fieldbyname('MM_imagecnt').Asinteger = 2 then + begin + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'A.jpg') then + inc(img_chk); + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'B.jpg') then + inc(img_chk); + end else if fieldbyname('MM_imagecnt').Asinteger = 3 then + begin + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'A.jpg') then + inc(img_chk); + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'B.jpg') then + inc(img_chk); + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'C.jpg') then + inc(img_chk); + end else if fieldbyname('MM_imagecnt').Asinteger = 4 then + begin + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'A.jpg') then + inc(img_chk); + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'B.jpg') then + inc(img_chk); + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'C.jpg') then + inc(img_chk); + if sFtp.isFileExists(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString+'D.jpg') then + inc(img_chk); + end; + + //sm(FindField('MM_imagecnt').Asstring+#13+inttostr(img_chk)); + //sm(sFtp.FtpRootDir); + + if img_chk <> fieldbyname('MM_imagecnt').Asinteger then + begin + sm('사진파일 검사 중'+#13+ '차량번호 : '+ fieldbyname('MM_carno').AsString +'('+ fieldbyname('MM_code').AsString+')'+ + '의 사진이 서버에 저장되지 않았습니다.'+#13+ + '서버로 사진을 재전송 처리후 발송하시기 바랍니다.'); + //sm(sFtp.FtpRootDir + sgg_code + '/' + YearPath + '/' + fieldbyname('MM_code').AsString); + exit; + end; + next; + end; + end; + //사진파일 체크 + with cdDetail do begin + + IndexDefs.Clear; + IndexDefs.Add('IDX_GP_MM_CARNO_ASC' , 'GP_MM_CARNO;MM_CODE' , []); + IndexName := 'IDX_GP_MM_CARNO_ASC'; + //IndexFieldNames := 'MM_CODE'; + lblSort.Caption := '정렬 : 차량번호'; + lblSeek.Caption := '차량번호 검색'; + + First; + DisableControls; + + LVY_NO_Cnt := 0; + ERC_NO_Cnt := 0; + ACCOUNT_NO_Cnt := 0; + while not eof do begin + if FieldByName('MC_LVY_NO').AsString = '' then Inc(LVY_NO_Cnt); + if FieldByName('MC_ERC_NO').AsString = '' then Inc(ERC_NO_Cnt); + if FieldByName('MC_ACCOUNT_NO').AsString = '' then Inc(ACCOUNT_NO_Cnt); + Next; + end; + EnableControls; + if LVY_NO_Cnt > 0 then + begin + Msg_Warning('출력불가' + #13 + + '부과번호가 발취 안된 자료가 ' + IntToStr(LVY_NO_Cnt) + ' 건 있습니다.'); + Exit; + end; + if ERC_NO_Cnt > 0 then + begin + Msg_Warning('출력불가' + #13 + + '전자납부번호가 발취 안된 자료가 ' + IntToStr(ERC_NO_Cnt) + ' 건 있습니다.'); + Exit; + end; + + if ACCOUNT_NO_Cnt > 0 then + begin + Msg_Warning('출력불가' + #13 + + '가상계좌가 발취 안된 자료가 ' + IntToStr(ACCOUNT_NO_Cnt) + ' 건 있습니다.'); + Exit; + end; + + end; + */ + + // 2. 사용자 정보를 조회한다. + DataObject userInfo = userBean.getUserInfo(currentUser().getId()); + + // 3. 자치단체 및 부서 정보를 조회한다. + DataObject deptSggInfo = epostRcptRegBean.getDeptSggInfo(sndngInfo.string("DEPT_CD")); + + // 4. 위반 정보를 조회한다. + VltnInfoQuery vltnInfoQuery = new VltnInfoQuery(); + + if (sndngInfo.string("VLTN_ID").equals("")) { // 위반 ID가 없다면.. + vltnInfoQuery.setSggCd(sndngInfo.string("SGG_CD")); + vltnInfoQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD")); + vltnInfoQuery.setVltnCd("01"); + } else { + vltnInfoQuery.setSggCd(sndngInfo.string("SGG_CD")); + vltnInfoQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD")); + vltnInfoQuery.setVltnId(sndngInfo.string("VLTN_ID")); + } + DataObject vltnInfo = vltnInfoBean.getVltnInfo(vltnInfoQuery); + + // 5. 전자우편 접수 내역을 등록한다. + EpostRcptReg epostRcptReg = new EpostRcptReg(); ctpvCode = sndngInfo.string("SGG_CD").substring(0, 2); // 시도 코드 @@ -411,21 +565,7 @@ public class SndngBean extends AbstractComponent { return retMessage; } - // 2. 위반 정보 조회 - VltnInfoQuery vltnInfoQuery = new VltnInfoQuery(); - - if (sndngInfo.string("VLTN_ID").equals("")) { // 위반 ID가 없다면.. - vltnInfoQuery.setSggCd(sndngInfo.string("SGG_CD")); - vltnInfoQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD")); - vltnInfoQuery.setVltnCd("01"); - } else { - vltnInfoQuery.setSggCd(sndngInfo.string("SGG_CD")); - vltnInfoQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD")); - vltnInfoQuery.setVltnId(sndngInfo.string("VLTN_ID")); - } - DataObject vltnInfo = vltnInfoBean.getVltnInfo(vltnInfoQuery); - - // + // 발송 구분 if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계고장 jobCd = vltnInfo.string("VLTN_CD") + "01"; } else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지 @@ -455,15 +595,6 @@ public class SndngBean extends AbstractComponent { // 포맷: 등록일(REG_YMD)-발송기관코드(RECEV_SENDER_ORG_CODE)-업무코드(WORK_ID)-우편물구분(POST_SE)일련번호(RECEV_SEQ_NO) // 예시: 20170719-40504370000-003-1001 - // 3. 사용자 정보 - DataObject userInfo = userBean.getUserInfo(currentUser().getId()); - - // 4. 자치단체 및 부서 정보 - DataObject deptSggInfo = epostRcptRegBean.getDeptSggInfo(sndngInfo.string("DEPT_CD")); - - // 5. 전자우편 접수 등록 - EpostRcptReg epostRcptReg = new EpostRcptReg(); - epostRcptReg.setConKey(conKey); // 외부연계식별키 epostRcptReg.setRceptId(deptSggInfo.string("RCEPT_ID")); // 접수우체국국기호 epostRcptReg.setDataCd("00"); // 접수코드 @@ -552,13 +683,14 @@ public class SndngBean extends AbstractComponent { epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자 epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID - retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg); // 전자우편 접수 등록 + // 6. 전자우편 접수 등록 + retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg); if (!retSuccess) { // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다."); } - // 6. 발송 내역을 수정한다. + // 7. 발송 내역을 수정한다. Sndng mdfcnSndng = new Sndng(); mdfcnSndng.setConKey(epostRcptReg.getConKey()); // 외부연계식별키 @@ -572,7 +704,7 @@ public class SndngBean extends AbstractComponent { throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - // 7. 전자우편 접수 상세 내역을 등록한다. + // 8. 전자우편 접수 상세 내역을 등록한다. String infoSndngSeNm = ""; // 약식 발송 구분 명 if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계도 @@ -629,7 +761,7 @@ public class SndngBean extends AbstractComponent { } recevSubj3 = deptSggInfo.string("SGG_NM"); - // 전자우편 접수 상세 조회 + // 9. 전자우편 접수 상세 조회 List sndngTrgts = sndngMapper.selectSndngTrgts(sndng.getSndngId()); for (int iLoop = 0; iLoop < sndngTrgts.size(); iLoop++) { @@ -954,13 +1086,13 @@ public class SndngBean extends AbstractComponent { } } - // 전자우편 접수 상세 + // 10. 전자우편 접수 상세 retSuccess = epostRcptRegBean.createEpostRcptDtl(epostRcptDtl); if (!retSuccess) { throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback } - // 8. 발송상세 내역을 수정한다. + // 11. 발송상세 내역을 수정한다. // 우편통합 발송에 사용되었던 최신 단속,부과,납부자 정보로 -> 발송상세 정보를 업데이트한다. SndngDtl sndngDtl = new SndngDtl(); diff --git a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp index b4157143..f2ed05c5 100644 --- a/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp +++ b/src/main/webapp/WEB-INF/jsp/fims/sndb/sndb01080-info.jsp @@ -88,7 +88,7 @@ {SNDNG_YMD} {SNDNG_END_YMD} {RTPYR_NM} - {RTPYR_NO} + {RTPYR_BRDT} {RTPYR_ZIP} {RTPYR_ADDR} {RTPYR_DTL_ADDR}