|
|
|
@ -8,12 +8,14 @@ import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
|
|
import cokr.xit.foundation.AbstractComponent;
|
|
|
|
|
import cokr.xit.foundation.data.DataObject;
|
|
|
|
|
|
|
|
|
|
import cokr.xit.base.file.service.FileQuery;
|
|
|
|
|
import cokr.xit.base.file.service.bean.FileBean;
|
|
|
|
|
import cokr.xit.base.user.service.bean.UserBean;
|
|
|
|
|
import cokr.xit.fims.cmmn.CrdnSttsHstry;
|
|
|
|
|
import cokr.xit.fims.cmmn.VltnInfoQuery;
|
|
|
|
|
import cokr.xit.fims.cmmn.service.bean.CrdnSttsHstryBean;
|
|
|
|
|
import cokr.xit.fims.cmmn.service.bean.VltnInfoBean;
|
|
|
|
|
import cokr.xit.fims.crdn.Crdn;
|
|
|
|
|
import cokr.xit.fims.epst.EpostRcptDtl;
|
|
|
|
|
import cokr.xit.fims.epst.EpostRcptReg;
|
|
|
|
|
import cokr.xit.fims.epst.service.bean.EpostRcptRegBean;
|
|
|
|
@ -60,6 +62,10 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
@Resource(name="userBean")
|
|
|
|
|
protected UserBean userBean;
|
|
|
|
|
|
|
|
|
|
/** 위반 정보 정보 Bean */
|
|
|
|
|
@Resource(name = "vltnInfoBean")
|
|
|
|
|
private VltnInfoBean vltnInfoBean;
|
|
|
|
|
|
|
|
|
|
/** 부과 대장 정보 Bean */
|
|
|
|
|
@Resource(name = "levyBean")
|
|
|
|
|
private LevyBean levyBean;
|
|
|
|
@ -68,9 +74,9 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
@Resource(name = "epostRcptRegBean")
|
|
|
|
|
private EpostRcptRegBean epostRcptRegBean;
|
|
|
|
|
|
|
|
|
|
/** 위반 정보 정보 Bean */
|
|
|
|
|
@Resource(name = "vltnInfoBean")
|
|
|
|
|
private VltnInfoBean vltnInfoBean;
|
|
|
|
|
/** 파일 Bean */
|
|
|
|
|
@Resource(name="fileBean")
|
|
|
|
|
private FileBean fileBean;
|
|
|
|
|
|
|
|
|
|
/**지정한 조건에 따라 계도장 발송 대상 목록을 조회하여 반환한다.
|
|
|
|
|
* @param req 발송 대장 조회 조건
|
|
|
|
@ -140,14 +146,6 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**지정한 조건에 따라 발송 대상 객체들을 반환한다.
|
|
|
|
|
* @param req 발송 대장 조회 조건
|
|
|
|
|
* @return 계도장 발송 대상 객체 목록
|
|
|
|
|
*/
|
|
|
|
|
public List<DataObject> getSndngTrgts(SndbQuery req) {
|
|
|
|
|
return sndngMapper.selectSndngTrgts(req);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**지정한 조건에 따라 반송 목록을 조회하여 반환한다.
|
|
|
|
|
* @param req 발송 대장 조회 조건
|
|
|
|
|
* @return 반송 목록
|
|
|
|
@ -462,14 +460,14 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
|
|
|
|
|
// 3. 사용자 정보
|
|
|
|
|
DataObject userInfo = userBean.getUserInfo(currentUser().getId());
|
|
|
|
|
// 4. 등기우편 관련 자치단체 및 부서 정보
|
|
|
|
|
DataObject epostInfo = epostRcptRegBean.getEpostPostInfo(sndngInfo.string("DEPT_CD"));
|
|
|
|
|
// 4. 자치단체 및 부서 정보
|
|
|
|
|
DataObject deptSggInfo = epostRcptRegBean.getDeptSggInfo(sndngInfo.string("DEPT_CD"));
|
|
|
|
|
|
|
|
|
|
// 전자우편 접수 등록
|
|
|
|
|
EpostRcptReg epostRcptReg = new EpostRcptReg();
|
|
|
|
|
|
|
|
|
|
epostRcptReg.setConKey(conKey); // 외부연계식별키
|
|
|
|
|
epostRcptReg.setRceptId(epostInfo.string("RCEPT_ID")); // 접수우체국국기호
|
|
|
|
|
epostRcptReg.setRceptId(deptSggInfo.string("RCEPT_ID")); // 접수우체국국기호
|
|
|
|
|
epostRcptReg.setDataCd("00"); // 접수코드
|
|
|
|
|
|
|
|
|
|
// 취급구분(DIV_KB) 000=일반 001=등기 201=선택등기
|
|
|
|
@ -525,29 +523,29 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
epostRcptReg.setMmYn("Y"); // 메일머지 플래그(MM_YN)
|
|
|
|
|
epostRcptReg.setDmCnt(0); // 동봉물 개수(DM_CNT)
|
|
|
|
|
epostRcptReg.setSbFg("Y"); // 반송불필요 여부(SB_FG)
|
|
|
|
|
epostRcptReg.setApvlNb(epostInfo.string("APVL_NB")); // 후납계약 승인번호(APVL_NB)
|
|
|
|
|
epostRcptReg.setApvlNb(deptSggInfo.string("APVL_NB")); // 후납계약 승인번호(APVL_NB)
|
|
|
|
|
epostRcptReg.setSendDate(sndngInfo.string("NOW").substring(0, 8)); // 신청 일자(SEND_DATE)
|
|
|
|
|
epostRcptReg.setSendTime(sndngInfo.string("NOW").substring(8)); // 전송 시간(SEND_TIME)
|
|
|
|
|
|
|
|
|
|
if ("420".equals(sndngInfo.string("DEPT_CD").substring(0, 3)) && (sndngInfo.string("TASK_SE_CD").equals("ECA"))) {
|
|
|
|
|
epostRcptReg.setRelorsectCd("4200999"); // 연계기관결제부서코드(RELORSECT_CD)
|
|
|
|
|
} else {
|
|
|
|
|
epostRcptReg.setRelorsectCd(epostInfo.string("DEPT_CD")); // 연계기관결제부서코드(RELORSECT_CD)
|
|
|
|
|
epostRcptReg.setRelorsectCd(deptSggInfo.string("DEPT_CD")); // 연계기관결제부서코드(RELORSECT_CD)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
epostRcptReg.setRecevSenderOrgCode(epostInfo.string("DEPT_CD") + "0000"); // 발송기관코드(RECEV_SENDER_ORG_CODE)
|
|
|
|
|
epostRcptReg.setRecevSenderNm(epostInfo.string("INST_NM") + " " + epostInfo.string("DEPT_NM")); // 발송인명(SENDER_NM)
|
|
|
|
|
epostRcptReg.setRecevSenderZipcode(epostInfo.string("INST_ZIP")); // 우편번호(SENDER_ZIPCODE)
|
|
|
|
|
epostRcptReg.setRecevSenderAddr(epostInfo.string("INST_ADDR")); // 주소(SENDER_ADDR)
|
|
|
|
|
epostRcptReg.setRecevSenderDetailaddr(epostInfo.string("INST_DADDR")); // 상세주소(SENDER_DTAILADDR)
|
|
|
|
|
epostRcptReg.setRecevSenderDepartTel(epostInfo.string("DEPT_TELNO")); // 부과부서 전화번호(RECEV_SENDER_DEPART_TEL)
|
|
|
|
|
epostRcptReg.setRecevSenderDepartNm(epostInfo.string("DEPT_NM")); // 부과부서(RECEV_SENDER_DEPART_NM)
|
|
|
|
|
epostRcptReg.setRecevSenderOrgCode(deptSggInfo.string("DEPT_CD") + "0000"); // 발송기관코드(RECEV_SENDER_ORG_CODE)
|
|
|
|
|
epostRcptReg.setRecevSenderNm(deptSggInfo.string("INST_NM") + " " + deptSggInfo.string("DEPT_NM")); // 발송인명(SENDER_NM)
|
|
|
|
|
epostRcptReg.setRecevSenderZipcode(deptSggInfo.string("INST_ZIP")); // 우편번호(SENDER_ZIPCODE)
|
|
|
|
|
epostRcptReg.setRecevSenderAddr(deptSggInfo.string("INST_ADDR")); // 주소(SENDER_ADDR)
|
|
|
|
|
epostRcptReg.setRecevSenderDetailaddr(deptSggInfo.string("INST_DADDR")); // 상세주소(SENDER_DTAILADDR)
|
|
|
|
|
epostRcptReg.setRecevSenderDepartTel(deptSggInfo.string("DEPT_TELNO")); // 부과부서 전화번호(RECEV_SENDER_DEPART_TEL)
|
|
|
|
|
epostRcptReg.setRecevSenderDepartNm(deptSggInfo.string("DEPT_NM")); // 부과부서(RECEV_SENDER_DEPART_NM)
|
|
|
|
|
epostRcptReg.setRecevDivCd(sndng.getPostSndngSeCd()); // 등기구분(RECEV_DIV_CD)
|
|
|
|
|
epostRcptReg.setRecevPrintDt(sndngInfo.string("TODAY_MASK")); // 출력일자(RECEV_PRINT_DT)
|
|
|
|
|
epostRcptReg.setRecevPrintYear(sndngInfo.string("TODAY").substring(0, 4)); // 출력연도(RECEV_PRINT_YEAR)
|
|
|
|
|
epostRcptReg.setRecevPrintMonth(sndngInfo.string("TODAY").substring(4, 6)); // 출력월(RECEV_PRINT_MONTH)
|
|
|
|
|
epostRcptReg.setRecevPrintDay(sndngInfo.string("TODAY").substring(6, 8)); // 출력일(RECEV_PRINT_DAY)
|
|
|
|
|
epostRcptReg.setRecevSenderFax(epostInfo.string("DEPT_FXNO")); // 부과부서 팩스번호(RECEV_SENDER_FAX)
|
|
|
|
|
epostRcptReg.setRecevSenderFax(deptSggInfo.string("DEPT_FXNO")); // 부과부서 팩스번호(RECEV_SENDER_FAX)
|
|
|
|
|
epostRcptReg.setRecevSerderStaff(userInfo.string("USER_NM")); // 부과부서 담당자(RECEV_SERDER_STAFF)
|
|
|
|
|
epostRcptReg.setRecevSenderEmail(userInfo.string("EML_ADRS")); // 부과부서 이메일(RECEV_SENDER_EMAIL)
|
|
|
|
|
epostRcptReg.setJobCd(jobCd); // 작업 코드
|
|
|
|
@ -556,7 +554,7 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자
|
|
|
|
|
epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID
|
|
|
|
|
|
|
|
|
|
// 전자우편 접수 등록
|
|
|
|
|
// 5. 전자우편 접수 등록
|
|
|
|
|
retSuccess = epostRcptRegBean.createEpostRcptReg(epostRcptReg);
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
|
// 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
|
|
|
|
@ -618,16 +616,17 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
} else {
|
|
|
|
|
recevSubj2 = "가산금";
|
|
|
|
|
}
|
|
|
|
|
recevSubj3 = epostInfo.string("SGG_NM");
|
|
|
|
|
recevSubj3 = deptSggInfo.string("SGG_NM");
|
|
|
|
|
|
|
|
|
|
// 전자우편 접수 상세 등록
|
|
|
|
|
for (int iLoop = 0; iLoop < sndng.getSndngDtlIDs().length; iLoop++) {
|
|
|
|
|
// 6. 전자우편 접수 상세 등록
|
|
|
|
|
List<DataObject> sndngTrgts = sndngMapper.selectSndngTrgts(sndng.getSndngId());
|
|
|
|
|
|
|
|
|
|
for (int iLoop = 0; iLoop < sndngTrgts.size(); iLoop++) {
|
|
|
|
|
// 전자우편 접수 상세
|
|
|
|
|
EpostRcptDtl epostRcptDtl = new EpostRcptDtl();
|
|
|
|
|
|
|
|
|
|
// 발송 상세 및 부과 정보 조회
|
|
|
|
|
DataObject sndngDtlInfo = sndngMapper.selectSndngDtlLevyInfo(sndng.getSndngDtlIDs()[iLoop]);
|
|
|
|
|
// DataObject sndngDtlInfo = sndngMapper.selectSndngDtlInfo(sndng.getSndngDtlIDs()[iLoop]);
|
|
|
|
|
DataObject sndngDtlInfo = sndngMapper.selectSndngDtlLevyInfo(sndngTrgts.get(iLoop).string("SNDNG_DTL_ID"));
|
|
|
|
|
|
|
|
|
|
if (!sndngDtlInfo.string("SNDNG_DTL_STTS_CD").equals("02")) {
|
|
|
|
|
if (!retSuccess) {
|
|
|
|
@ -637,7 +636,7 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
|
|
|
|
|
// 고지번호
|
|
|
|
|
String becevBillNumber = "";
|
|
|
|
|
if (sndngInfo.string("SNDNG_SE_CD").equals("01") || sndngInfo.string("SNDNG_SE_CD").equals("02")) {
|
|
|
|
|
if (sndngDtlInfo.string("SNDNG_SE_CD").equals("01") || sndngDtlInfo.string("SNDNG_SE_CD").equals("02")) {
|
|
|
|
|
becevBillNumber = "";
|
|
|
|
|
} else {
|
|
|
|
|
becevBillNumber = "고지번호:" + sndngDtlInfo.string("FYR") + "-" + sndngDtlInfo.string("LEVY_NO");
|
|
|
|
@ -661,7 +660,7 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
int afterSumAmt = 0; // 납기후 합계 금액
|
|
|
|
|
|
|
|
|
|
// 계도장에는 최초 과태료 금액을 출력한다.
|
|
|
|
|
if (sndngInfo.string("SNDNG_SE_CD").equals("11") || sndngInfo.string("SNDNG_SE_CD").equals("12")) {
|
|
|
|
|
if (sndngDtlInfo.string("SNDNG_SE_CD").equals("11") || sndngDtlInfo.string("SNDNG_SE_CD").equals("12")) {
|
|
|
|
|
pcptax = sndngDtlInfo.number("FFNLG_AMT").intValue(); // 본세 = 과태료 단속 금액
|
|
|
|
|
adamt = 0; // 가산금 = 0
|
|
|
|
|
sumAmt = sndngDtlInfo.number("FFNLG_AMT").intValue(); // 합계 금액 = 과태료 단속 금액
|
|
|
|
@ -692,7 +691,7 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
String band5 = "";
|
|
|
|
|
String band6 = "";
|
|
|
|
|
|
|
|
|
|
if (sndngInfo.string("SNDNG_SE_CD").equals("11") || sndngInfo.string("SNDNG_SE_CD").equals("12")) { // 계도장
|
|
|
|
|
if (sndngDtlInfo.string("SNDNG_SE_CD").equals("11") || sndngDtlInfo.string("SNDNG_SE_CD").equals("12")) { // 계도장
|
|
|
|
|
band1 = "";
|
|
|
|
|
band2 = "";
|
|
|
|
|
band3 = "";
|
|
|
|
@ -774,7 +773,7 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
// 발송코드
|
|
|
|
|
epostRcptDtl.setRecevCode(sndngDtlInfo.string("SNDNG_DTL_ID"));
|
|
|
|
|
// 바코드
|
|
|
|
|
epostRcptDtl.setRecevBar1d(epostInfo.string("INST_CHIEF_NM"));
|
|
|
|
|
epostRcptDtl.setRecevBar1d(deptSggInfo.string("INST_CHIEF_NM"));
|
|
|
|
|
// 이차원바코드
|
|
|
|
|
epostRcptDtl.setRecevBar2d("");
|
|
|
|
|
// 고지번호
|
|
|
|
@ -897,25 +896,49 @@ public class SndngBean extends AbstractComponent {
|
|
|
|
|
epostRcptDtl.setRecevPhotoFilename4("");
|
|
|
|
|
|
|
|
|
|
// 계도장(10,11), 사전통지서(01,02)에는 사진을 출력한다.
|
|
|
|
|
if ("01,02,11,12".contains(sndngInfo.string("SNDNG_SE_CD"))) {
|
|
|
|
|
// cutFileName := FieldByName('MM_CODE').AsString;
|
|
|
|
|
// qryPutDetail.ParamByName('RECEV_PHOTO_CNT').AsString := FieldByName('MM_IMAGECNT').AsString;
|
|
|
|
|
// if FieldByName('MM_IMAGECNT').AsInteger > 0 then
|
|
|
|
|
// begin
|
|
|
|
|
// qryPutDetail.ParamByName('RECEV_PHOTO_FILE1').AsString := cutFileName + 'A.jpg';
|
|
|
|
|
// end;
|
|
|
|
|
// if FieldByName('MM_IMAGECNT').AsInteger > 1 then
|
|
|
|
|
// begin
|
|
|
|
|
// qryPutDetail.ParamByName('RECEV_PHOTO_FILE2').AsString := cutFileName + 'B.jpg';
|
|
|
|
|
// end;
|
|
|
|
|
// if FieldByName('MM_IMAGECNT').AsInteger > 2 then
|
|
|
|
|
// begin
|
|
|
|
|
// qryPutDetail.ParamByName('RECEV_PHOTO_FILE3').AsString := cutFileName + 'C.jpg';
|
|
|
|
|
// end;
|
|
|
|
|
// if FieldByName('MM_IMAGECNT').AsInteger > 3 then
|
|
|
|
|
// begin
|
|
|
|
|
// qryPutDetail.ParamByName('RECEV_PHOTO_FILE4').AsString := cutFileName + 'D.jpg';
|
|
|
|
|
// end;
|
|
|
|
|
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")));
|
|
|
|
|
|
|
|
|
|
if (fileList.size() > 0) {
|
|
|
|
|
epostRcptDtl.setRecevPhotoCnt(String.valueOf(fileList.size())); // 사진장수
|
|
|
|
|
|
|
|
|
|
// 사진파일명이 중복이 되면 안되다.. 중복을 피하기 위해 서버에 저장된 파일명으로 지정하였다.
|
|
|
|
|
for (int jLoop = 0; jLoop < fileList.size(); jLoop++) {
|
|
|
|
|
String strSeparator = "";
|
|
|
|
|
String fileName = "";
|
|
|
|
|
|
|
|
|
|
// 서버 OS에 따라.. separator 지정.
|
|
|
|
|
if (deptSggInfo.string("SRVR_OS").contains("Windows")) {
|
|
|
|
|
strSeparator = "\\";
|
|
|
|
|
} else {
|
|
|
|
|
strSeparator = "/";
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (jLoop == 0) {
|
|
|
|
|
fileName = fileList.get(jLoop).string("FILE_PATH");
|
|
|
|
|
fileName = fileName.substring(fileName.lastIndexOf(strSeparator) + 1);
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 전자우편 접수 상세
|
|
|
|
|