advntceTrgtList = sndngMapper.selectAdvntceTrgtCrdnIds(req);
-
- // 조회 건수 확인
- if (advntceTrgtList == null || advntceTrgtList.size() < 1) {
- rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다.";
- return rtnMsg;
- }
- if (sndng.getTnocs() != advntceTrgtList.size()) {
- rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다.";
- return rtnMsg;
- }
-
- // 사용자 정보를 조회한다.
- DataObject userInfo = userBean.getUserInfo(currentUser().getId());
-
- // 발송 대장에 등록한다.
- sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
- if (sndng.getSndngRegSeCd() == null) {
- sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
- }
- if (sndng.getTnocs() == null) {
- sndng.setTnocs(advntceTrgtList.size()); // 총건수
- }
- if (sndng.getGramt() == null) {
- sndng.setGramt(advntceTrgtList.get(0).number("GRAMT").longValue()); // 총금액
- }
- if (sndng.getRsndYn() == null) {
- sndng.setRsndYn("N"); // 재발송 여부
- }
- if (sndng.getDelYn() == null) {
- sndng.setDelYn("N"); // 삭제 여부
- }
- sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00: 발송 준비
-
- // 발송(TB_SNDNG) 대장을 등록한다.
- rtnNocs = sndngMapper.insertSndng(sndng);
- if (rtnNocs != 1) {
- throw new RuntimeException("사전통지 발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- // 발송 상세 대장에 등록한다.
- for (int iLoop = 0; iLoop < advntceTrgtList.size(); iLoop++) {
- rtnMsg = createAdvntceSndngDtl(sndng, advntceTrgtList.get(iLoop).string("CRDN_ID"));
- // 메시지 확인
- if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료..
- throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
- }
- }
-
- return "[S] 작업이 정상 처리 되었습니다.";
- }
-
- /**사전통지 발송 상세 정보를 등록한다.
- * @param sndngDtl 발송 상세
- * @return 저장 여부
- * - 저장됐으면 true
- * - 그렇지 않으면 false
- *
- */
- public String createAdvntceSndngDtl(Sndng sndng, String crdnId) {
- // 변수 선언
- boolean rtnScs = false; // 처리 결과 여부
- int rtnNocs = -1; // 처리 결과 건수
- String rtnMsg = ""; // 처리 결과 메시지
-
- // 단속(TB_CRDN), 납부자(TB_PAYER), 부과(TB_LEVY) 대장을 조회 한다.
- DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId);
-
- if (crdnPayerInfo == null) {
- rtnMsg = "[F] 발송상세 등록 작업중 단속 정보가 확인되지 않았습니다."
- + "" + "단속 ID : " + crdnId + "
";
- return rtnMsg;
- }
- if (crdnPayerInfo.string("RTPYR_ID").equals("")) {
- rtnMsg = "[F] 발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다."
- + "" + "단속ID : " + crdnId
- + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
- + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
- + "
";
- return rtnMsg;
- }
-
- if ("BPV,PVS".contains(crdnPayerInfo.string("TASK_SE_CD"))) {
- // 사전 감경부과가 되지 않았다면.. 감경부과를 등록한다.
- if (crdnPayerInfo.string("LEVY_ID").equals("")) {
- Levy levy = new Levy();
- levy.setSggCd(crdnPayerInfo.string("SGG_CD")); // 시군구 코드
- levy.setTaskSeCd(crdnPayerInfo.string("TASK_SE_CD")); // 업무 구분 코드
- levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
- levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
- levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자
- levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
-
- // 부과(TB_LEVY) 대장을 등록한다.
- rtnMsg = levyBean.createRdctLevy(levy);
-
- // 단속(TB_CRDN), 납부자(TB_PAYER), 부과(TB_LEVY) 대장을 조회 한다.
- crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId);
- } else {
- // 부과 가산금 확인
- if (crdnPayerInfo.number("LEVY_ADAMT").intValue() != 0) {
- rtnMsg = "[F] 발송상세 등록 작업중 부과 가산금액이 0원이 아닙니다."
- + "" + "단속ID : " + crdnPayerInfo.string("CRDN_ID")
- + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
- + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
- + "
";
- return rtnMsg;
- }
- // 사전 감경금액과 부과 본세금액 확인
- if (crdnPayerInfo.number("ADVNTCE_AMT").intValue() != crdnPayerInfo.number("LEVY_PCPTAX").intValue()) {
- rtnMsg = "[F] 발송상세 등록 작업중 사전 감경금액과 부과 본세금액이 다릅니다."
- + "" + "단속ID : " + crdnPayerInfo.string("CRDN_ID")
- + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
- + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
- + "
" + "사전 감경금액 : " + crdnPayerInfo.string("ADVNTCE_AMT")
- + "
" + "부과 본세금액 : " + crdnPayerInfo.string("LEVY_PCPTAX")
- + "
";
- return rtnMsg;
- }
- // 부과 본세와 합계 금액이 같은지 확인
- if (crdnPayerInfo.number("LEVY_PCPTAX").intValue() != crdnPayerInfo.number("SUM_AMT").intValue()) {
- rtnMsg = "[F] 발송상세 등록 작업중 본세금액과 합계금액이 다릅니다."
- + "" + "단속ID : " + crdnPayerInfo.string("CRDN_ID")
- + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
- + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
- + "
" + "본세금액 : " + crdnPayerInfo.string("LEVY_PCPTAX")
- + "
" + "합계금액 : " + crdnPayerInfo.string("SUM_AMT")
- + "
";
- return rtnMsg;
- }
-
- Levy levy = new Levy();
- levy.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
- levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
- levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자
- levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
- levy.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
- levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액
- levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액
-
- // 부과(TB_LEVY) 대장에 부과일자, 최초납기일자, 납기일자를 수정한다.
- rtnMsg = levyBean.updateRdctLevyYmd(levy);
- if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료..
- throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
- }
- }
- }
-
- // 발송 상세(TB_SNDNG_DTL)
- SndngDtl sndngDtl = new SndngDtl();
- sndngDtl.setSggCd(sndng.getSggCd()); // 시군구 코드
- sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
- sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
- sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
- sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
- sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자
- sndngDtl.setRcpnNm(crdnPayerInfo.string("RTPYR_NM")); // 수령인 명
- sndngDtl.setRcpnBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 수령인 생년월일
- sndngDtl.setRcpnAddr(crdnPayerInfo.string("ADDR")); // 수령인 주소
- sndngDtl.setRcpnDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 수령인 상세 주소
- sndngDtl.setRcpnZip(crdnPayerInfo.string("ZIP")); // 수령인 우편번호
- sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
- sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
- sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
- sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
- sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
- sndngDtl.setFyr(crdnPayerInfo.string("FYR")); // 회계연도
- sndngDtl.setLevyNo(crdnPayerInfo.string("LEVY_NO")); // 부과 번호
- sndngDtl.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
- sndngDtl.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
- sndngDtl.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
- if (crdnPayerInfo.string("PCPTAX").equals("")) {
- sndngDtl.setPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 = 사전통지 금액
- } else {
- sndngDtl.setPcptax(crdnPayerInfo.number("PCPTAX").intValue()); // 본세
- }
- sndngDtl.setAdamt(0); // 가산금 = 0
- if (crdnPayerInfo.string("SUM_AMT").equals("")) {
- sndngDtl.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 = 사전통지 금액
- } else {
- sndngDtl.setSumAmt(crdnPayerInfo.number("SUM_AMT").intValue()); // 합계 금액
- }
- sndngDtl.setDudtAftrAmt(0); // 납기 후 금액
- sndngDtl.setEpayno(crdnPayerInfo.string("TAX_NO")); // 납세 번호
- sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO")); // 전자납부번호
- sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM")); // 은행 명
- sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO")); // 가상 계좌번호
- sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2")); // 은행 명2
- sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2")); // 가상 계좌번호2
- sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3")); // 은행 명3
- sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3")); // 가상 계좌번호3
- sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4")); // 은행 명4
- sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4")); // 가상 계좌번호4
- sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5")); // 은행 명5
- sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5")); // 가상 계좌번호5
- sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6")); // 은행 명6
- sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6")); // 가상 계좌번호6
- sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7")); // 은행 명7
- sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7")); // 가상 계좌번호7
- sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8")); // 은행 명8
- sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8")); // 가상 계좌번호8
- sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9")); // 은행 명9
- sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9")); // 가상 계좌번호9
- sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10")); // 은행 명10
- sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10
- sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11
- sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11
- sndngDtl.setBankNm12(crdnPayerInfo.string("BANK_NM12")); // 은행 명12
- sndngDtl.setVrActno12(crdnPayerInfo.string("VR_ACTNO12")); // 가상 계좌번호12
- sndngDtl.setBankNm13(crdnPayerInfo.string("BANK_NM13")); // 은행 명13
- sndngDtl.setVrActno13(crdnPayerInfo.string("VR_ACTNO13")); // 가상 계좌번호13
- sndngDtl.setBankNm14(crdnPayerInfo.string("BANK_NM14")); // 은행 명14
- sndngDtl.setVrActno14(crdnPayerInfo.string("VR_ACTNO14")); // 가상 계좌번호14
- sndngDtl.setBankNm15(crdnPayerInfo.string("BANK_NM15")); // 은행 명15
- sndngDtl.setVrActno15(crdnPayerInfo.string("VR_ACTNO15")); // 가상 계좌번호15
- sndngDtl.setBankNm16(crdnPayerInfo.string("BANK_NM16")); // 은행 명16
- sndngDtl.setVrActno16(crdnPayerInfo.string("VR_ACTNO16")); // 가상 계좌번호16
- sndngDtl.setBankNm17(crdnPayerInfo.string("BANK_NM17")); // 은행 명17
- sndngDtl.setVrActno17(crdnPayerInfo.string("VR_ACTNO17")); // 가상 계좌번호17
- sndngDtl.setBankNm18(crdnPayerInfo.string("BANK_NM18")); // 은행 명18
- sndngDtl.setVrActno18(crdnPayerInfo.string("VR_ACTNO18")); // 가상 계좌번호18
- sndngDtl.setBankNm19(crdnPayerInfo.string("BANK_NM19")); // 은행 명19
- sndngDtl.setVrActno19(crdnPayerInfo.string("VR_ACTNO19")); // 가상 계좌번호19
- sndngDtl.setBankNm20(crdnPayerInfo.string("BANK_NM20")); // 은행 명20
- sndngDtl.setVrActno20(crdnPayerInfo.string("VR_ACTNO20")); // 가상 계좌번호20
- sndngDtl.setDelYn("N"); // 삭제 여부
-
- // 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
- rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
- if (rtnNocs != 1) {
- throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- // 단속 대장에 사전통지 일자를 수정한다.
- Crdn crdn = new Crdn();
- crdn.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
- crdn.setSggCd(crdnPayerInfo.string("SGG_CD"));
- crdn.setTaskSeCd(crdnPayerInfo.string("TASK_SE_CD"));
- crdn.setAdvntceBgngYmd(sndng.getSndngYmd());
- crdn.setAdvntceDudtYmd(sndng.getSndngEndYmd());
- crdn.setDelYn("N");
-
- // 단속(TB_CRDN) 대장을 수정한다.
- rtnNocs = crdnUpdtMapper.updateAdvntceYmd(crdn);
- if (rtnNocs != 1) {
- throw new RuntimeException("단속 대장에 사전통지일자 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- // 단속 상태 이력(TB_CRDN_STTS_HSTRY)을 등록하고, 단속(TB_CRDN) 대장의 단속상태코드를 수정한다.
- if ("21,22,23".contains(crdnPayerInfo.string("CRDN_STTS_CD"))) {
- CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
- crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
- crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD"));
- crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT"));
- crdnSttsHstry.setCrdnSttsCd("42");
- crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
- crdnSttsHstry.setUseYn("Y");
-
- // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
- rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
- if (!rtnScs) {
- throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
- } else if (crdnPayerInfo.string("CRDN_STTS_CD").equals("31")) {
- CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
- crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
- crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD"));
- crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT"));
- crdnSttsHstry.setCrdnSttsCd("42");
- crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
- crdnSttsHstry.setUseYn("Y");
-
- // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록한다.
- rtnScs = crdnSttsHstryBean.create(crdnSttsHstry);
- if (!rtnScs) {
- throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
- }
-
- return "[S] 작업이 정상 처리 되었습니다.";
- }
-
- /**지정한 조건에 따라 고지서 발송 대상 목록을 조회하여 반환한다.
- * @param req 발송 대장 조회 조건
- * @return 계도장 발송 대상 목록
- */
- public List getNhtTrgtList(SndbQuery req) {
- // 삭제 여부 확인
- if (req.getDelYn() == null) {
- req.setDelYn("N");
- }
- // 정렬 확인
- if (req.getOrderBy() == null) {
- if (req.getBy() == null) {
- req.setOrderBy("REG_DT");
- } else {
- req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
- }
- }
-
- return sndngMapper.selectNhtTrgtList(req);
- }
-
- /**지정한 조건에 따라 사전 통보 발송 대상 객체들을 반환한다.
- * @param req 발송 대장 조회 조건
- * @return 계도장 발송 대상 객체 목록
- */
- public List getNhtTrgts(SndbQuery req) {
- // 삭제 여부 확인
- if (req.getDelYn() == null) {
- req.setDelYn("N");
- }
- // 정렬 확인
- if (req.getOrderBy() == null) {
- req.setOrderBy("CRDN_YMD_TM");
- }
-
- return sndngMapper.selectNhtTrgts(req);
- }
-
- /**고지서 발송 대상을 조회하여 발송 대장에 등록한다.
- * @param req 고지서 발송 대상 조회, sndng 발송 대장
- * @return 저장 여부
- * - 저장됐으면 true
- * - 그렇지 않으면 false
- *
- */
- public String createNhtSndngList(SndbQuery req, Sndng sndng) {
- // 변수 선언
- int rtnNocs = -1; // 처리 결과 건수
- String rtnMsg = ""; // 처리 결과 메시지
-
- // 단속 Ids로 고지서 발송 대상 정보 조회
- List nhtTrgtList = sndngMapper.selectNhtTrgtCrdnIds(req);
-
- // 조회 건수 확인
- if (nhtTrgtList == null || nhtTrgtList.size() < 1) {
- rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다.";
- return rtnMsg;
- }
-// if (sndng.getTnocs() != nhtTrgtList.size()) {
-// rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다.";
-// return rtnMsg;
-// }
-
- // 사용자 정보를 조회한다.
- DataObject userInfo = userBean.getUserInfo(currentUser().getId());
-
- // 발송 대장에 등록한다.
- sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
- if (sndng.getSndngRegSeCd() == null) {
- sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
- }
- if (sndng.getTnocs() == null) {
- sndng.setTnocs(nhtTrgtList.size()); // 총건수
- }
- if (sndng.getGramt() == null) {
- sndng.setGramt(nhtTrgtList.get(0).number("GRAMT").longValue()); // 총금액
- }
- if (sndng.getRsndYn() == null) {
- sndng.setRsndYn("N"); // 재발송 여부
- }
- if (sndng.getDelYn() == null) {
- sndng.setDelYn("N"); // 삭제 여부
- }
- sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비
-
- // 발송(TB_SNDNG) 대장을 등록한다.
- rtnNocs = sndngMapper.insertSndng(sndng);
- if (rtnNocs != 1) {
- throw new RuntimeException("고지서 발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- // 발송 상세 대장에 등록한다.
- for (int iLoop = 0; iLoop < nhtTrgtList.size(); iLoop++) {
- rtnMsg = createNhtSndngDtl(sndng, nhtTrgtList.get(iLoop).string("CRDN_ID"));
- if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료..
- throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
- }
- }
-
- return "[S] 작업이 정상 처리 되었습니다.";
- }
-
- /**고지서 발송 상세 정보를 등록한다.
- * @param sndngDtl 발송 상세
- * @return 저장 여부
- * - 저장됐으면 true
- * - 그렇지 않으면 false
- *
- */
- public String createNhtSndngDtl(Sndng sndng, String crdnId) {
- // 변수 선언
- int rtnNocs = -1; // 처리 결과 건수
- String rtnMsg = ""; // 처리 결과 메시지
-
- // 단속, 납부자 대장을 조회 한다.
- DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId);
-
- if (crdnPayerInfo == null) {
- rtnMsg = "[F] 발송상세 등록 작업중 단속 정보가 확인되지 않았습니다."
- + "" + "단속 ID : " + crdnId + "
";
- return rtnMsg;
- }
- if (crdnPayerInfo.string("RTPYR_ID").equals("")) {
- rtnMsg = "[F] 발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다."
- + "" + "단속 ID : " + crdnId
- + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
- + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
- + "
";
- return rtnMsg;
- }
- if (crdnPayerInfo.string("LEVY_ID").equals("")) {
- rtnMsg = "[F] 발송상세 등록 작업중 부과 정보가 확인되지 않았습니다."
- + "" + "단속 ID : " + crdnId
- + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
- + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
- + "
";
- return rtnMsg;
- }
-
- // 발송 상세(TB_SNDNG_DTL)
- SndngDtl sndngDtl = new SndngDtl();
- sndngDtl.setSggCd(sndng.getSggCd()); // 시군구 코드
- sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
- sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
- sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
- sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
- sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자
- sndngDtl.setRcpnNm(crdnPayerInfo.string("RTPYR_NM")); // 수령인 명
- sndngDtl.setRcpnBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 수령인 생년월일
- sndngDtl.setRcpnAddr(crdnPayerInfo.string("ADDR")); // 수령인 주소
- sndngDtl.setRcpnDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 수령인 상세 주소
- sndngDtl.setRcpnZip(crdnPayerInfo.string("ZIP")); // 수령인 우편번호
- sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
- sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
- sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
- sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
- sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
- sndngDtl.setFyr(crdnPayerInfo.string("FYR")); // 회계연도
- sndngDtl.setLevyNo(crdnPayerInfo.string("LEVY_NO")); // 부과 번호
- sndngDtl.setLevyYmd(crdnPayerInfo.string("LEVY_YMD")); // 부과 일자
- sndngDtl.setDudtYmd(crdnPayerInfo.string("DUDT_YMD")); // 납기 일자
- sndngDtl.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
- sndngDtl.setPcptax(crdnPayerInfo.number("PCPTAX").intValue()); // 본세 : 부과본세 - 수납본세 - 감액본세
- sndngDtl.setAdamt(crdnPayerInfo.number("ADAMT").intValue()); // 가산금 : 부과가산금 - 수납가산금 - 감액가산금
- sndngDtl.setSumAmt(crdnPayerInfo.number("SUM_AMT").intValue()); // 합계 금액
- sndngDtl.setDudtAftrAmt(crdnPayerInfo.number("DUDT_AFTR_AMT").intValue()); // 납기 후 금액
- sndngDtl.setEpayno(crdnPayerInfo.string("TAX_NO")); // 납세 번호
- sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO")); // 전자납부번호
- sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM")); // 은행 명
- sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO")); // 가상 계좌번호
- sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2")); // 은행 명2
- sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2")); // 가상 계좌번호2
- sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3")); // 은행 명3
- sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3")); // 가상 계좌번호3
- sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4")); // 은행 명4
- sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4")); // 가상 계좌번호4
- sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5")); // 은행 명5
- sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5")); // 가상 계좌번호5
- sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6")); // 은행 명6
- sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6")); // 가상 계좌번호6
- sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7")); // 은행 명7
- sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7")); // 가상 계좌번호7
- sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8")); // 은행 명8
- sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8")); // 가상 계좌번호8
- sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9")); // 은행 명9
- sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9")); // 가상 계좌번호9
- sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10")); // 은행 명10
- sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10
- sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11
- sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11
- sndngDtl.setBankNm12(crdnPayerInfo.string("BANK_NM12")); // 은행 명12
- sndngDtl.setVrActno12(crdnPayerInfo.string("VR_ACTNO12")); // 가상 계좌번호12
- sndngDtl.setBankNm13(crdnPayerInfo.string("BANK_NM13")); // 은행 명13
- sndngDtl.setVrActno13(crdnPayerInfo.string("VR_ACTNO13")); // 가상 계좌번호13
- sndngDtl.setBankNm14(crdnPayerInfo.string("BANK_NM14")); // 은행 명14
- sndngDtl.setVrActno14(crdnPayerInfo.string("VR_ACTNO14")); // 가상 계좌번호14
- sndngDtl.setBankNm15(crdnPayerInfo.string("BANK_NM15")); // 은행 명15
- sndngDtl.setVrActno15(crdnPayerInfo.string("VR_ACTNO15")); // 가상 계좌번호15
- sndngDtl.setBankNm16(crdnPayerInfo.string("BANK_NM16")); // 은행 명16
- sndngDtl.setVrActno16(crdnPayerInfo.string("VR_ACTNO16")); // 가상 계좌번호16
- sndngDtl.setBankNm17(crdnPayerInfo.string("BANK_NM17")); // 은행 명17
- sndngDtl.setVrActno17(crdnPayerInfo.string("VR_ACTNO17")); // 가상 계좌번호17
- sndngDtl.setBankNm18(crdnPayerInfo.string("BANK_NM18")); // 은행 명18
- sndngDtl.setVrActno18(crdnPayerInfo.string("VR_ACTNO18")); // 가상 계좌번호18
- sndngDtl.setBankNm19(crdnPayerInfo.string("BANK_NM19")); // 은행 명19
- sndngDtl.setVrActno19(crdnPayerInfo.string("VR_ACTNO19")); // 가상 계좌번호19
- sndngDtl.setBankNm20(crdnPayerInfo.string("BANK_NM20")); // 은행 명20
- sndngDtl.setVrActno20(crdnPayerInfo.string("VR_ACTNO20")); // 가상 계좌번호20
- sndngDtl.setDelYn("N"); // 삭제 여부
-
- // 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
- rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
- if (rtnNocs != 1) {
- throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- return "[S] 작업이 정상 처리 되었습니다.";
- }
-
- /**지정한 조건에 따라 발송 대장 목록을 조회하여 반환한다.
- * @param req 발송 대장 조회 조건
- * @return 발송 대장 목록
- */
- public List getSndngList(SndbQuery req) {
- // 삭제 여부 확인
- if (req.getDelYn() == null) {
- req.setDelYn("N");
- }
- // 정렬 확인
- if (req.getOrderBy() == null) {
- if (req.getBy() == null) {
- req.setOrderBy("REG_DT");
- } else {
- req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
- }
- }
-
- return sndngMapper.selectSndngList(req);
- }
-
- /**지정한 조건에 따라 발송 대장 객체들을 반환한다.
- * @param req 발송 대장 조회 조건
- * @return 발송 대장 객체 목록
- */
- public List getSndngs(SndbQuery req) {
- // 삭제 여부 확인
- if (req.getDelYn() == null) {
- req.setDelYn("N");
- }
- // 정렬 확인
- if (req.getOrderBy() == null) {
- if (req.getBy() == null) {
- req.setOrderBy("REG_DT");
- } else {
- req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
- }
- }
-
- return sndngMapper.selectSndngs(req);
- }
-
- /**발송 대장 정보를 삭제한다.
- * @param sndng 발송 대장
- * @return 저장 여부
- * - 저장됐으면 true
- * - 그렇지 않으면 false
- *
- */
- public String removeSndng(Sndng sndng) {
- // 변수 선언
- int rtnNocs = -1;
+ /**지정한 조건에 따라 사전통지 발송 대상 목록을 조회하여 반환한다.
+ * @param req 발송 대장 조회 조건
+ * @return 계도장 발송 대상 목록
+ */
+ public List getAdvntceTrgtList(SndbQuery req) {
+ // 삭제 여부 확인
+ if (req.getDelYn() == null) {
+ req.setDelYn("N");
+ }
+ // 정렬 확인
+ if (req.getOrderBy() == null) {
+ if (req.getBy() == null) {
+ req.setOrderBy("REG_DT");
+ } else {
+ req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
+ }
+ }
+
+ return sndngMapper.selectAdvntceTrgtList(req);
+ }
+
+ /**지정한 조건에 따라 사전통지 발송 대상 객체들을 반환한다.
+ * @param req 발송 대장 조회 조건
+ * @return 계도장 발송 대상 객체 목록
+ */
+ public List getAdvntceTrgts(SndbQuery req) {
+ // 삭제 여부 확인
+ if (req.getDelYn() == null) {
+ req.setDelYn("N");
+ }
+ // 정렬 확인
+ if (req.getOrderBy() == null) {
+ req.setOrderBy("CRDN_YMD_TM");
+ }
+
+ return sndngMapper.selectAdvntceTrgts(req);
+ }
+
+ /**사전통지 발송 대상을 조회하여 발송 대장에 등록한다.
+ * @param req 사전통지 발송 대상 조회, sndng 발송 대장
+ * @return 저장 여부
+ * - 저장됐으면 true
+ * - 그렇지 않으면 false
+ *
+ */
+ public String createAdvntceSndngList(SndbQuery req, Sndng sndng) {
+ // 변수 선언
+ int rtnNocs = -1; // 처리 결과 건수
+ String rtnMsg = ""; // 처리 결과 메시지
+
+ // 단속 Ids로 사전통지 발송 대상 정보 조회
+ List trgtList = sndngMapper.selectAdvntceTrgtCrdnIds(req);
+
+ // 조회 건수 확인
+ if (trgtList == null || trgtList.size() < 1) {
+ rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다.";
+ return rtnMsg;
+ }
+ if (sndng.getTnocs() != trgtList.size()) {
+ rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다.";
+ return rtnMsg;
+ }
+
+ // 사용자 정보를 조회한다.
+ DataObject userInfo = userBean.getUserInfo(currentUser().getId());
+
+ // 위반 ID 조회
+ String vltnId = "";
+ if (req.getVltnCd() != null) {
+ VltnQuery vltnReq = new VltnQuery();
+ vltnReq.setSggCd(sndng.getSggCd());
+ vltnReq.setTaskSeCd(sndng.getTaskSeCd());
+ vltnReq.setVltnCd(req.getVltnCd());
+
+ DataObject vltnInfo = vltnMapper.selectVltnInfo(vltnReq);
+
+ vltnId = vltnInfo.string("VLTN_ID");
+ }
+
+ // 발송 대장에 등록한다.
+ sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
+ sndng.setVltnId(vltnId); // 위반 ID
+
+ if (sndng.getSndngRegSeCd() == null) {
+ sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
+ }
+ if (sndng.getRsndYn() == null) {
+ sndng.setRsndYn("N"); // 재발송 여부
+ }
+ if (sndng.getDelYn() == null) {
+ sndng.setDelYn("N"); // 삭제 여부
+ }
+ sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00: 발송 준비
+
+ // 발송(TB_SNDNG) 대장을 등록한다.
+ rtnNocs = sndngMapper.insertSndng(sndng);
+ if (rtnNocs != 1) {
+ throw new RuntimeException("사전통지 발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ // 발송 상세 대장에 등록한다.
+ for (int iLoop = 0; iLoop < trgtList.size(); iLoop++) {
+ rtnMsg = createAdvntceSndngDtl(sndng, trgtList.get(iLoop).string("CRDN_ID"));
+ if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료..
+ throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
+ }
+ }
+
+ return "[S] 작업이 정상 처리 되었습니다.";
+ }
+
+ /**사전통지 발송 상세 정보를 등록한다.
+ * @param sndngDtl 발송 상세
+ * @return 저장 여부
+ * - 저장됐으면 true
+ * - 그렇지 않으면 false
+ *
+ */
+ public String createAdvntceSndngDtl(Sndng sndng, String crdnId) {
+ // 변수 선언
+ boolean rtnScs = false; // 처리 결과 여부
+ int rtnNocs = -1; // 처리 결과 건수
+ String rtnMsg = ""; // 처리 결과 메시지
+
+ // 단속(TB_CRDN), 납부자(TB_PAYER), 부과(TB_LEVY) 대장을 조회 한다.
+ DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId);
+
+ if (crdnPayerInfo == null) {
+ rtnMsg = "[F] 발송상세 등록 작업중 단속 정보가 확인되지 않았습니다."
+ + "" + "단속 ID : " + crdnId + "
";
+ return rtnMsg;
+ }
+ if (crdnPayerInfo.string("RTPYR_ID").equals("")) {
+ rtnMsg = "[F] 발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다."
+ + "" + "단속ID : " + crdnId
+ + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
+ + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
+ + "
";
+ return rtnMsg;
+ }
+
+ if ("BPV,PVS".contains(crdnPayerInfo.string("TASK_SE_CD"))) {
+ // 사전 감경부과가 되지 않았다면.. 감경부과를 등록한다.
+ if (crdnPayerInfo.string("LEVY_ID").equals("")) {
+ Levy levy = new Levy();
+ levy.setSggCd(crdnPayerInfo.string("SGG_CD")); // 시군구 코드
+ levy.setTaskSeCd(crdnPayerInfo.string("TASK_SE_CD")); // 업무 구분 코드
+ levy.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
+ levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
+ levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자
+ levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
+
+ // 부과(TB_LEVY) 대장을 등록한다.
+ rtnMsg = levyBean.createRdctLevy(levy);
+
+ // 단속(TB_CRDN), 납부자(TB_PAYER), 부과(TB_LEVY) 대장을 조회 한다.
+ crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId);
+ } else {
+ // 부과 가산금 확인
+ if (crdnPayerInfo.number("LEVY_ADAMT").intValue() != 0) {
+ rtnMsg = "[F] 발송상세 등록 작업중 부과 가산금액이 0원이 아닙니다."
+ + "" + "단속ID : " + crdnPayerInfo.string("CRDN_ID")
+ + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
+ + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
+ + "
";
+ return rtnMsg;
+ }
+ // 사전 감경금액과 부과 본세금액 확인
+ if (crdnPayerInfo.number("ADVNTCE_AMT").intValue() != crdnPayerInfo.number("LEVY_PCPTAX").intValue()) {
+ rtnMsg = "[F] 발송상세 등록 작업중 사전 감경금액과 부과 본세금액이 다릅니다."
+ + "" + "단속ID : " + crdnPayerInfo.string("CRDN_ID")
+ + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
+ + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
+ + "
" + "사전 감경금액 : " + crdnPayerInfo.string("ADVNTCE_AMT")
+ + "
" + "부과 본세금액 : " + crdnPayerInfo.string("LEVY_PCPTAX")
+ + "
";
+ return rtnMsg;
+ }
+ // 부과 본세와 합계 금액이 같은지 확인
+ if (crdnPayerInfo.number("LEVY_PCPTAX").intValue() != crdnPayerInfo.number("SUM_AMT").intValue()) {
+ rtnMsg = "[F] 발송상세 등록 작업중 본세금액과 합계금액이 다릅니다."
+ + "" + "단속ID : " + crdnPayerInfo.string("CRDN_ID")
+ + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
+ + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
+ + "
" + "본세금액 : " + crdnPayerInfo.string("LEVY_PCPTAX")
+ + "
" + "합계금액 : " + crdnPayerInfo.string("SUM_AMT")
+ + "
";
+ return rtnMsg;
+ }
+
+ Levy levy = new Levy();
+ levy.setLevyId(crdnPayerInfo.string("LEVY_ID")); // 부과 ID
+ levy.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
+ levy.setFrstDudtYmd(sndng.getSndngEndYmd()); // 최초 납기 일자
+ levy.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
+ levy.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
+ levy.setLevyPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 금액
+ levy.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액
+
+ // 부과(TB_LEVY) 대장에 부과일자, 최초납기일자, 납기일자를 수정한다.
+ rtnMsg = levyBean.updateRdctLevyYmd(levy);
+ if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료..
+ throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
+ }
+ }
+ }
+
+ // 발송 상세(TB_SNDNG_DTL)
+ SndngDtl sndngDtl = new SndngDtl();
+ sndngDtl.setSggCd(sndng.getSggCd()); // 시군구 코드
+ sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
+ sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
+ sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
+ sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
+ sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자
+ sndngDtl.setRcpnNm(crdnPayerInfo.string("RTPYR_NM")); // 수령인 명
+ sndngDtl.setRcpnBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 수령인 생년월일
+ sndngDtl.setRcpnAddr(crdnPayerInfo.string("ADDR")); // 수령인 주소
+ sndngDtl.setRcpnDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 수령인 상세 주소
+ sndngDtl.setRcpnZip(crdnPayerInfo.string("ZIP")); // 수령인 우편번호
+ sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
+ sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
+ sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
+ sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
+ sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
+ sndngDtl.setFyr(crdnPayerInfo.string("FYR")); // 회계연도
+ sndngDtl.setLevyNo(crdnPayerInfo.string("LEVY_NO")); // 부과 번호
+ sndngDtl.setLevyYmd(sndng.getSndngYmd()); // 부과 일자
+ sndngDtl.setDudtYmd(sndng.getSndngEndYmd()); // 납기 일자
+ sndngDtl.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
+ if (crdnPayerInfo.string("PCPTAX").equals("")) {
+ sndngDtl.setPcptax(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 본세 = 사전통지 금액
+ } else {
+ sndngDtl.setPcptax(crdnPayerInfo.number("PCPTAX").intValue()); // 본세
+ }
+ sndngDtl.setAdamt(0); // 가산금 = 0
+ if (crdnPayerInfo.string("SUM_AMT").equals("")) {
+ sndngDtl.setSumAmt(crdnPayerInfo.number("ADVNTCE_AMT").intValue()); // 합계 금액 = 사전통지 금액
+ } else {
+ sndngDtl.setSumAmt(crdnPayerInfo.number("SUM_AMT").intValue()); // 합계 금액
+ }
+ sndngDtl.setDudtAftrAmt(0); // 납기 후 금액
+ sndngDtl.setEpayno(crdnPayerInfo.string("TAX_NO")); // 납세 번호
+ sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO")); // 전자납부번호
+ sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM")); // 은행 명
+ sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO")); // 가상 계좌번호
+ sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2")); // 은행 명2
+ sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2")); // 가상 계좌번호2
+ sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3")); // 은행 명3
+ sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3")); // 가상 계좌번호3
+ sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4")); // 은행 명4
+ sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4")); // 가상 계좌번호4
+ sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5")); // 은행 명5
+ sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5")); // 가상 계좌번호5
+ sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6")); // 은행 명6
+ sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6")); // 가상 계좌번호6
+ sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7")); // 은행 명7
+ sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7")); // 가상 계좌번호7
+ sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8")); // 은행 명8
+ sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8")); // 가상 계좌번호8
+ sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9")); // 은행 명9
+ sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9")); // 가상 계좌번호9
+ sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10")); // 은행 명10
+ sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10
+ sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11
+ sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11
+ sndngDtl.setBankNm12(crdnPayerInfo.string("BANK_NM12")); // 은행 명12
+ sndngDtl.setVrActno12(crdnPayerInfo.string("VR_ACTNO12")); // 가상 계좌번호12
+ sndngDtl.setBankNm13(crdnPayerInfo.string("BANK_NM13")); // 은행 명13
+ sndngDtl.setVrActno13(crdnPayerInfo.string("VR_ACTNO13")); // 가상 계좌번호13
+ sndngDtl.setBankNm14(crdnPayerInfo.string("BANK_NM14")); // 은행 명14
+ sndngDtl.setVrActno14(crdnPayerInfo.string("VR_ACTNO14")); // 가상 계좌번호14
+ sndngDtl.setBankNm15(crdnPayerInfo.string("BANK_NM15")); // 은행 명15
+ sndngDtl.setVrActno15(crdnPayerInfo.string("VR_ACTNO15")); // 가상 계좌번호15
+ sndngDtl.setBankNm16(crdnPayerInfo.string("BANK_NM16")); // 은행 명16
+ sndngDtl.setVrActno16(crdnPayerInfo.string("VR_ACTNO16")); // 가상 계좌번호16
+ sndngDtl.setBankNm17(crdnPayerInfo.string("BANK_NM17")); // 은행 명17
+ sndngDtl.setVrActno17(crdnPayerInfo.string("VR_ACTNO17")); // 가상 계좌번호17
+ sndngDtl.setBankNm18(crdnPayerInfo.string("BANK_NM18")); // 은행 명18
+ sndngDtl.setVrActno18(crdnPayerInfo.string("VR_ACTNO18")); // 가상 계좌번호18
+ sndngDtl.setBankNm19(crdnPayerInfo.string("BANK_NM19")); // 은행 명19
+ sndngDtl.setVrActno19(crdnPayerInfo.string("VR_ACTNO19")); // 가상 계좌번호19
+ sndngDtl.setBankNm20(crdnPayerInfo.string("BANK_NM20")); // 은행 명20
+ sndngDtl.setVrActno20(crdnPayerInfo.string("VR_ACTNO20")); // 가상 계좌번호20
+ sndngDtl.setDelYn("N"); // 삭제 여부
+
+ // 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
+ rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
+ if (rtnNocs != 1) {
+ throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ // 단속 대장에 사전통지 일자를 수정한다.
+ Crdn crdn = new Crdn();
+ crdn.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
+ crdn.setSggCd(crdnPayerInfo.string("SGG_CD"));
+ crdn.setTaskSeCd(crdnPayerInfo.string("TASK_SE_CD"));
+ crdn.setAdvntceBgngYmd(sndng.getSndngYmd());
+ crdn.setAdvntceDudtYmd(sndng.getSndngEndYmd());
+ crdn.setDelYn("N");
+
+ // 단속(TB_CRDN) 대장을 수정한다.
+ rtnNocs = crdnUpdtMapper.updateAdvntceYmd(crdn);
+ if (rtnNocs != 1) {
+ throw new RuntimeException("단속 대장에 사전통지일자 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ // 단속 상태 이력(TB_CRDN_STTS_HSTRY)을 등록한다.
+ CrdnSttsHstry crdnSttsHstry = new CrdnSttsHstry();
+ crdnSttsHstry.setCrdnId(crdnPayerInfo.string("CRDN_ID"));
+ crdnSttsHstry.setBfrSttsCd(crdnPayerInfo.string("CRDN_STTS_CD"));
+ crdnSttsHstry.setBfrSttsChgDt(crdnPayerInfo.string("CRDN_STTS_CHG_DT"));
+ crdnSttsHstry.setCrdnSttsCd("42");
+ crdnSttsHstry.setTaskDtlId(sndngDtl.getSndngDtlId());
+ crdnSttsHstry.setUseYn("Y");
+
+ if ("21,22,23".contains(crdnPayerInfo.string("CRDN_STTS_CD"))) {
+ // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록하고, 단속(TB_CRDN) 대장을 수정한다.
+ rtnScs = crdnSttsHstryBean.createHstryUpdateCrdnSttsCd(crdnSttsHstry);
+ if (!rtnScs) {
+ throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+ } else if (crdnPayerInfo.string("CRDN_STTS_CD").equals("31")) {
+ // 단속 상태 이력(TB_CRDN_STTS_HSTRY) 대장에 등록한다.
+ rtnScs = crdnSttsHstryBean.create(crdnSttsHstry);
+ if (!rtnScs) {
+ throw new RuntimeException("발송상세 등록 작업중 단속 대장의 단속상태 변경에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+ }
+
+ return "[S] 작업이 정상 처리 되었습니다.";
+ }
+
+ /**지정한 조건에 따라 고지서 발송 대상 목록을 조회하여 반환한다.
+ * @param req 발송 대장 조회 조건
+ * @return 계도장 발송 대상 목록
+ */
+ public List getNhtTrgtList(SndbQuery req) {
+ // 삭제 여부 확인
+ if (req.getDelYn() == null) {
+ req.setDelYn("N");
+ }
+ // 정렬 확인
+ if (req.getOrderBy() == null) {
+ if (req.getBy() == null) {
+ req.setOrderBy("REG_DT");
+ } else {
+ req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
+ }
+ }
+
+ return sndngMapper.selectNhtTrgtList(req);
+ }
+
+ /**지정한 조건에 따라 사전 통보 발송 대상 객체들을 반환한다.
+ * @param req 발송 대장 조회 조건
+ * @return 계도장 발송 대상 객체 목록
+ */
+ public List getNhtTrgts(SndbQuery req) {
+ // 삭제 여부 확인
+ if (req.getDelYn() == null) {
+ req.setDelYn("N");
+ }
+ // 정렬 확인
+ if (req.getOrderBy() == null) {
+ req.setOrderBy("CRDN_YMD_TM");
+ }
+
+ return sndngMapper.selectNhtTrgts(req);
+ }
+
+ /**고지서 발송 대상을 조회하여 발송 대장에 등록한다.
+ * @param req 고지서 발송 대상 조회, sndng 발송 대장
+ * @return 저장 여부
+ * - 저장됐으면 true
+ * - 그렇지 않으면 false
+ *
+ */
+ public String createNhtSndngList(SndbQuery req, Sndng sndng) {
+ // 변수 선언
+ int rtnNocs = -1; // 처리 결과 건수
+ String rtnMsg = ""; // 처리 결과 메시지
+
+ // 단속 Ids로 고지서 발송 대상 정보 조회
+ List nhtTrgtList = sndngMapper.selectNhtTrgtCrdnIds(req);
+
+ // 조회 건수 확인
+ if (nhtTrgtList == null || nhtTrgtList.size() < 1) {
+ rtnMsg = "[F] 작업 중 대상 자료가 존재하지 않습니다.";
+ return rtnMsg;
+ }
+ if (sndng.getTnocs() != nhtTrgtList.size()) {
+ rtnMsg = "[F] 조회된 총 건수와 대상 건수가 다릅니다.";
+ return rtnMsg;
+ }
+
+ // 사용자 정보를 조회한다.
+ DataObject userInfo = userBean.getUserInfo(currentUser().getId());
+
+ // 발송 대장에 등록한다.
+ sndng.setDeptCd(userInfo.string("DEPT_CD")); // 부서 코드
+ if (sndng.getSndngRegSeCd() == null) {
+ sndng.setSndngRegSeCd("02"); // 발송 등록 구분 코드(FIM067) - 02: 개별
+ }
+ if (sndng.getTnocs() == null) {
+ sndng.setTnocs(nhtTrgtList.size()); // 총건수
+ }
+ if (sndng.getGramt() == null) {
+ sndng.setGramt(nhtTrgtList.get(0).number("GRAMT").longValue()); // 총금액
+ }
+ if (sndng.getRsndYn() == null) {
+ sndng.setRsndYn("N"); // 재발송 여부
+ }
+ if (sndng.getDelYn() == null) {
+ sndng.setDelYn("N"); // 삭제 여부
+ }
+ sndng.setSndngSttsCd("00"); // 발송 상태 코드(FIM049) - 00 발송 준비
+
+ // 발송(TB_SNDNG) 대장을 등록한다.
+ rtnNocs = sndngMapper.insertSndng(sndng);
+ if (rtnNocs != 1) {
+ throw new RuntimeException("고지서 발송 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ // 발송 상세 대장에 등록한다.
+ for (int iLoop = 0; iLoop < nhtTrgtList.size(); iLoop++) {
+ rtnMsg = createNhtSndngDtl(sndng, nhtTrgtList.get(iLoop).string("CRDN_ID"));
+ if (!rtnMsg.contains("[S]")) { // 오류가 발생하였으면 종료..
+ throw new RuntimeException(rtnMsg.replace("[F]", "")); // 예외를 발생시켜서 DB Rollback
+ }
+ }
+
+ return "[S] 작업이 정상 처리 되었습니다.";
+ }
+
+ /**고지서 발송 상세 정보를 등록한다.
+ * @param sndngDtl 발송 상세
+ * @return 저장 여부
+ * - 저장됐으면 true
+ * - 그렇지 않으면 false
+ *
+ */
+ public String createNhtSndngDtl(Sndng sndng, String crdnId) {
+ // 변수 선언
+ int rtnNocs = -1; // 처리 결과 건수
+ String rtnMsg = ""; // 처리 결과 메시지
+
+ // 단속, 납부자 대장을 조회 한다.
+ DataObject crdnPayerInfo = sndngMapper.selectCrdnPayerInfo(crdnId);
+
+ if (crdnPayerInfo == null) {
+ rtnMsg = "[F] 발송상세 등록 작업중 단속 정보가 확인되지 않았습니다."
+ + "" + "단속 ID : " + crdnId + "
";
+ return rtnMsg;
+ }
+ if (crdnPayerInfo.string("RTPYR_ID").equals("")) {
+ rtnMsg = "[F] 발송상세 등록 작업중 납부자 정보가 확인되지 않았습니다."
+ + "" + "단속 ID : " + crdnId
+ + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
+ + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
+ + "
";
+ return rtnMsg;
+ }
+ if (crdnPayerInfo.string("LEVY_ID").equals("")) {
+ rtnMsg = "[F] 발송상세 등록 작업중 부과 정보가 확인되지 않았습니다."
+ + "" + "단속 ID : " + crdnId
+ + "
" + "단속일시 : " + crdnPayerInfo.string("CRDN_YMD_TM_MASK")
+ + "
" + "차량번호 : " + crdnPayerInfo.string("VHRNO")
+ + "
";
+ return rtnMsg;
+ }
+
+ // 발송 상세(TB_SNDNG_DTL)
+ SndngDtl sndngDtl = new SndngDtl();
+ sndngDtl.setSggCd(sndng.getSggCd()); // 시군구 코드
+ sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
+ sndngDtl.setCrdnId(crdnPayerInfo.string("CRDN_ID")); // 단속 ID
+ sndngDtl.setSndngSeCd(sndng.getSndngSeCd()); // 발송 구분 코드
+ sndngDtl.setSndngYmd(sndng.getSndngYmd()); // 발송 일자
+ sndngDtl.setSndngEndYmd(sndng.getSndngEndYmd()); // 발송 종료 일자
+ sndngDtl.setRcpnNm(crdnPayerInfo.string("RTPYR_NM")); // 수령인 명
+ sndngDtl.setRcpnBrdt(crdnPayerInfo.string("RTPYR_BRDT")); // 수령인 생년월일
+ sndngDtl.setRcpnAddr(crdnPayerInfo.string("ADDR")); // 수령인 주소
+ sndngDtl.setRcpnDtlAddr(crdnPayerInfo.string("DTL_ADDR")); // 수령인 상세 주소
+ sndngDtl.setRcpnZip(crdnPayerInfo.string("ZIP")); // 수령인 우편번호
+ sndngDtl.setSndngDtlSttsCd("00"); // 발송 상세 상태 코드 - 00 처리전
+ sndngDtl.setVhrno(crdnPayerInfo.string("VHRNO")); // 차량번호
+ sndngDtl.setCrdnDt(crdnPayerInfo.string("CRDN_YMD_TM_MASK")); // 단속 일시
+ sndngDtl.setCrdnStdgNm(crdnPayerInfo.string("CRDN_STDG_NM")); // 단속 법정동 명
+ sndngDtl.setCrdnPlc(crdnPayerInfo.string("CRDN_PLC")); // 단속 장소
+ sndngDtl.setFyr(crdnPayerInfo.string("FYR")); // 회계연도
+ sndngDtl.setLevyNo(crdnPayerInfo.string("LEVY_NO")); // 부과 번호
+ sndngDtl.setLevyYmd(crdnPayerInfo.string("LEVY_YMD")); // 부과 일자
+ sndngDtl.setDudtYmd(crdnPayerInfo.string("DUDT_YMD")); // 납기 일자
+ sndngDtl.setFfnlgAmt(crdnPayerInfo.number("FFNLG_AMT").intValue()); // 과태료 금액
+ sndngDtl.setPcptax(crdnPayerInfo.number("PCPTAX").intValue()); // 본세 : 부과본세 - 수납본세 - 감액본세
+ sndngDtl.setAdamt(crdnPayerInfo.number("ADAMT").intValue()); // 가산금 : 부과가산금 - 수납가산금 - 감액가산금
+ sndngDtl.setSumAmt(crdnPayerInfo.number("SUM_AMT").intValue()); // 합계 금액
+ sndngDtl.setDudtAftrAmt(crdnPayerInfo.number("DUDT_AFTR_AMT").intValue()); // 납기 후 금액
+ sndngDtl.setEpayno(crdnPayerInfo.string("TAX_NO")); // 납세 번호
+ sndngDtl.setEpayno(crdnPayerInfo.string("EPAYNO")); // 전자납부번호
+ sndngDtl.setBankNm(crdnPayerInfo.string("BANK_NM")); // 은행 명
+ sndngDtl.setVrActno(crdnPayerInfo.string("VR_ACTNO")); // 가상 계좌번호
+ sndngDtl.setBankNm2(crdnPayerInfo.string("BANK_NM2")); // 은행 명2
+ sndngDtl.setVrActno2(crdnPayerInfo.string("VR_ACTNO2")); // 가상 계좌번호2
+ sndngDtl.setBankNm3(crdnPayerInfo.string("BANK_NM3")); // 은행 명3
+ sndngDtl.setVrActno3(crdnPayerInfo.string("VR_ACTNO3")); // 가상 계좌번호3
+ sndngDtl.setBankNm4(crdnPayerInfo.string("BANK_NM4")); // 은행 명4
+ sndngDtl.setVrActno4(crdnPayerInfo.string("VR_ACTNO4")); // 가상 계좌번호4
+ sndngDtl.setBankNm5(crdnPayerInfo.string("BANK_NM5")); // 은행 명5
+ sndngDtl.setVrActno5(crdnPayerInfo.string("VR_ACTNO5")); // 가상 계좌번호5
+ sndngDtl.setBankNm6(crdnPayerInfo.string("BANK_NM6")); // 은행 명6
+ sndngDtl.setVrActno6(crdnPayerInfo.string("VR_ACTNO6")); // 가상 계좌번호6
+ sndngDtl.setBankNm7(crdnPayerInfo.string("BANK_NM7")); // 은행 명7
+ sndngDtl.setVrActno7(crdnPayerInfo.string("VR_ACTNO7")); // 가상 계좌번호7
+ sndngDtl.setBankNm8(crdnPayerInfo.string("BANK_NM8")); // 은행 명8
+ sndngDtl.setVrActno8(crdnPayerInfo.string("VR_ACTNO8")); // 가상 계좌번호8
+ sndngDtl.setBankNm9(crdnPayerInfo.string("BANK_NM9")); // 은행 명9
+ sndngDtl.setVrActno9(crdnPayerInfo.string("VR_ACTNO9")); // 가상 계좌번호9
+ sndngDtl.setBankNm10(crdnPayerInfo.string("BANK_NM10")); // 은행 명10
+ sndngDtl.setVrActno10(crdnPayerInfo.string("VR_ACTNO10")); // 가상 계좌번호10
+ sndngDtl.setBankNm11(crdnPayerInfo.string("BANK_NM11")); // 은행 명11
+ sndngDtl.setVrActno11(crdnPayerInfo.string("VR_ACTNO11")); // 가상 계좌번호11
+ sndngDtl.setBankNm12(crdnPayerInfo.string("BANK_NM12")); // 은행 명12
+ sndngDtl.setVrActno12(crdnPayerInfo.string("VR_ACTNO12")); // 가상 계좌번호12
+ sndngDtl.setBankNm13(crdnPayerInfo.string("BANK_NM13")); // 은행 명13
+ sndngDtl.setVrActno13(crdnPayerInfo.string("VR_ACTNO13")); // 가상 계좌번호13
+ sndngDtl.setBankNm14(crdnPayerInfo.string("BANK_NM14")); // 은행 명14
+ sndngDtl.setVrActno14(crdnPayerInfo.string("VR_ACTNO14")); // 가상 계좌번호14
+ sndngDtl.setBankNm15(crdnPayerInfo.string("BANK_NM15")); // 은행 명15
+ sndngDtl.setVrActno15(crdnPayerInfo.string("VR_ACTNO15")); // 가상 계좌번호15
+ sndngDtl.setBankNm16(crdnPayerInfo.string("BANK_NM16")); // 은행 명16
+ sndngDtl.setVrActno16(crdnPayerInfo.string("VR_ACTNO16")); // 가상 계좌번호16
+ sndngDtl.setBankNm17(crdnPayerInfo.string("BANK_NM17")); // 은행 명17
+ sndngDtl.setVrActno17(crdnPayerInfo.string("VR_ACTNO17")); // 가상 계좌번호17
+ sndngDtl.setBankNm18(crdnPayerInfo.string("BANK_NM18")); // 은행 명18
+ sndngDtl.setVrActno18(crdnPayerInfo.string("VR_ACTNO18")); // 가상 계좌번호18
+ sndngDtl.setBankNm19(crdnPayerInfo.string("BANK_NM19")); // 은행 명19
+ sndngDtl.setVrActno19(crdnPayerInfo.string("VR_ACTNO19")); // 가상 계좌번호19
+ sndngDtl.setBankNm20(crdnPayerInfo.string("BANK_NM20")); // 은행 명20
+ sndngDtl.setVrActno20(crdnPayerInfo.string("VR_ACTNO20")); // 가상 계좌번호20
+ sndngDtl.setDelYn("N"); // 삭제 여부
+
+ // 발송 상세(TB_SNDNG_DTL) 대장을 등록한다.
+ rtnNocs = sndngDtlMapper.insertSndngDtl(sndngDtl);
+ if (rtnNocs != 1) {
+ throw new RuntimeException("발송상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ return "[S] 작업이 정상 처리 되었습니다.";
+ }
+
+ /**지정한 조건에 따라 발송 대장 목록을 조회하여 반환한다.
+ * @param req 발송 대장 조회 조건
+ * @return 발송 대장 목록
+ */
+ public List getSndngList(SndbQuery req) {
+ // 삭제 여부 확인
+ if (req.getDelYn() == null) {
+ req.setDelYn("N");
+ }
+ // 정렬 확인
+ if (req.getOrderBy() == null) {
+ if (req.getBy() == null) {
+ req.setOrderBy("REG_DT");
+ } else {
+ req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
+ }
+ }
+
+ return sndngMapper.selectSndngList(req);
+ }
+
+ /**지정한 조건에 따라 발송 대장 객체들을 반환한다.
+ * @param req 발송 대장 조회 조건
+ * @return 발송 대장 객체 목록
+ */
+ public List getSndngs(SndbQuery req) {
+ // 삭제 여부 확인
+ if (req.getDelYn() == null) {
+ req.setDelYn("N");
+ }
+ // 정렬 확인
+ if (req.getOrderBy() == null) {
+ if (req.getBy() == null) {
+ req.setOrderBy("REG_DT");
+ } else {
+ req.setOrderBy(CmmnUtil.convertCamelCaseToSnakeCase(req.getBy()));
+ }
+ }
+
+ return sndngMapper.selectSndngs(req);
+ }
+
+ /**발송 대장 정보를 삭제한다.
+ * @param sndng 발송 대장
+ * @return 저장 여부
+ * - 저장됐으면 true
+ * - 그렇지 않으면 false
+ *
+ */
+ public String removeSndng(Sndng sndng) {
+ // 변수 선언
+ int rtnNocs = -1;
// 발송 상세(TB_SNDNG_DTL)
SndngDtl sndngDtl = new SndngDtl();
sndngDtl.setSndngId(sndng.getSndngId()); // 발송 ID
sndngDtl.setDelRsn(sndng.getDelRsn()); // 삭제 사유
- // 발송 상세(TB_SNDNG_DTL) 대장을 삭제한다.
- rtnNocs = sndngDtlMapper.deleteSndngDtl(sndngDtl);
- if (rtnNocs < 1) {
- throw new RuntimeException("발송상세 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- // 발송(TB_SNDNG) 대장을 삭제한다.
- rtnNocs = sndngMapper.deleteSndng(sndng);
- if (rtnNocs != 1) {
- throw new RuntimeException("발송 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- return "[S] 작업이 정상 처리 되었습니다.";
- }
-
- /**전자우편 발송 대장 정보를 등록한다.
- * @param sndng 발송 대장
- * @return 저장 여부
- * - 저장됐으면 true
- * - 그렇지 않으면 false
- *
- */
- public String createEPost(Sndng sndng) {
- // 변수 선언
- boolean rtnScs = false; // DB 처리 결과
- int rtnNocs = -1; // 처리 결과 건수
- String rtnMsg = "[F] "; // 처리 결과 메시지
-
- String ctpvCode = ""; // 시도 코드
- String sealCd3 = ""; // 내용문 상세 종류 3번째(마지막) 자리
- String jobCd = "";
- String conKey = ""; // 외부연계식별키
-
- // 1. 발송 대장 조회
- DataObject sndngInfo = sndngMapper.selectSndngInfo(new SndbQuery().setSndngId(sndng.getSndngId()));
+ // 발송 상세(TB_SNDNG_DTL) 대장을 삭제한다.
+ rtnNocs = sndngDtlMapper.deleteSndngDtl(sndngDtl);
+ if (rtnNocs < 1) {
+ throw new RuntimeException("발송상세 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ // 발송(TB_SNDNG) 대장을 삭제한다.
+ rtnNocs = sndngMapper.deleteSndng(sndng);
+ if (rtnNocs != 1) {
+ throw new RuntimeException("발송 정보 삭제에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ return "[S] 작업이 정상 처리 되었습니다.";
+ }
+
+ /**전자우편 발송 대장 정보를 등록한다.
+ * @param sndng 발송 대장
+ * @return 저장 여부
+ * - 저장됐으면 true
+ * - 그렇지 않으면 false
+ *
+ */
+ public String createEPost(Sndng sndng) {
+ // 변수 선언
+ boolean rtnScs = false; // DB 처리 결과
+ int rtnNocs = -1; // 처리 결과 건수
+ String rtnMsg = "[F] "; // 처리 결과 메시지
+
+ String ctpvCode = ""; // 시도 코드
+ String sealCd3 = ""; // 내용문 상세 종류 3번째(마지막) 자리
+ String jobCd = "";
+ String conKey = ""; // 외부연계식별키
+
+ // 1. 발송 대장 조회
+ DataObject sndngInfo = sndngMapper.selectSndngInfo(new SndbQuery().setSndngId(sndng.getSndngId()));
/*
- // 전자우편 발송 등록 전 오류 자료가 존재하는지 체크
+ // 전자우편 발송 등록 전 오류 자료가 존재하는지 체크
//사진파일 체크
while not eof do
begin
@@ -1103,209 +1103,209 @@ public class SndngBean extends AbstractBean {
end;
*/
- // 2. 사용자 정보를 조회한다.
- DataObject userInfo = userBean.getUserInfo(currentUser().getId());
-
- // 3. 자치단체 및 부서 정보를 조회한다.
- DataObject deptSggInfo = epostRcptRegBean.getDeptSggInfo(sndngInfo.string("DEPT_CD"));
-
- // 4. 위반 정보를 조회한다.
- VltnQuery vltnQuery = new VltnQuery();
- if (sndngInfo.string("VLTN_ID").equals("")) { // 위반 ID가 없다면..
- vltnQuery.setSggCd(sndngInfo.string("SGG_CD"));
- vltnQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD"));
- vltnQuery.setVltnCd("01");
- } else {
- vltnQuery.setSggCd(sndngInfo.string("SGG_CD"));
- vltnQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD"));
- vltnQuery.setVltnId(sndngInfo.string("VLTN_ID"));
- }
- DataObject vltnInfo = vltnMapper.selectVltnInfo(vltnQuery);
-
- // 5. 전자우편 접수 내역을 등록한다.
- EpostRcptReg epostRcptReg = new EpostRcptReg();
-
- ctpvCode = sndngInfo.string("SGG_CD").substring(0, 2); // 시도 코드
-
- if (sndngInfo.string("SNDNG_SE_CD").equals("01")) {
- sealCd3 = "E"; // E:과태료부과계도장
- } else if (sndngInfo.string("TASK_SE_CD").equals("DPV")) { // 장애인전용
- if (sndngInfo.string("SNDNG_SE_CD").equals("02")) {
- sealCd3 = "2"; // 2:장애인주차구역사전통보
- } else {
- sealCd3 = "7"; // 7:장애인주차구역고지서
- }
- } else if (sndngInfo.string("TASK_SE_CD").equals("ECA")) { // 전기차주차
- if (sndngInfo.string("SNDNG_SE_CD").equals("02")) {
- sealCd3 = "L"; // L:전기차충전구역과태료사전통지서
- } else {
- sealCd3 = "M"; // M:전기차충전구역과태료고지서
- }
- } else {
- rtnMsg = "[F] 작업중 지정되지 않았습니다.";
- return rtnMsg;
- }
-
- // 발송 구분
- if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계고장
- jobCd = vltnInfo.string("VLTN_CD") + "01";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지
- jobCd = vltnInfo.string("VLTN_CD") + "02";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("03")) { // 부과
- jobCd = vltnInfo.string("VLTN_CD") + "03";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("04")) { // 독촉
- jobCd = vltnInfo.string("VLTN_CD") + "04";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("05")) { // 압류예고
- jobCd = vltnInfo.string("VLTN_CD") + "05";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("06")) { // 압류통지
- jobCd = vltnInfo.string("VLTN_CD") + "06";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납분
- jobCd = vltnInfo.string("VLTN_CD") + "09";
- } else {
- rtnMsg = "[F] 작업중 발송 구분이 지정되지 않았습니다.";
- return rtnMsg;
- }
-
- String epostSenderRegSeq = epostRcptRegBean.getEpostSenderRegSeq(sndngInfo.string("TODAY"), sndngInfo.string("DEPT_CD"));
- conKey = sndngInfo.string("TODAY") + "-" + sndngInfo.string("DEPT_CD") + "0000" + "-" + epostSenderRegSeq;
-
- int seqNo = 0;
- if (sndng.getPostSndngSeCd().equals("0")) {
- seqNo = epostRcptDtlBean.getEpostSenderDetailSeq(sndngInfo.string("TODAY"));
- }
- // 포맷: 등록일(REG_YMD)-발송기관코드(RECEV_SENDER_ORG_CODE)-업무코드(WORK_ID)-우편물구분(POST_SE)일련번호(RECEV_SEQ_NO)
- // 예시: 20170719-40504370000-003-1001
-
- epostRcptReg.setConKey(conKey); // 외부연계식별키
- epostRcptReg.setConOrg(deptSggInfo.string("EGP_CON_ORG")); // 외부기관구분코드
- epostRcptReg.setRceptId(deptSggInfo.string("EGP_RCEPT_ID")); // 접수우체국국기호
- epostRcptReg.setDataCd("00"); // 접수코드
+ // 2. 사용자 정보를 조회한다.
+ DataObject userInfo = userBean.getUserInfo(currentUser().getId());
+
+ // 3. 자치단체 및 부서 정보를 조회한다.
+ DataObject deptSggInfo = epostRcptRegBean.getDeptSggInfo(sndngInfo.string("DEPT_CD"));
+
+ // 4. 위반 정보를 조회한다.
+ VltnQuery vltnQuery = new VltnQuery();
+ if (sndngInfo.string("VLTN_ID").equals("")) { // 위반 ID가 없다면..
+ vltnQuery.setSggCd(sndngInfo.string("SGG_CD"));
+ vltnQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD"));
+ vltnQuery.setVltnCd("01");
+ } else {
+ vltnQuery.setSggCd(sndngInfo.string("SGG_CD"));
+ vltnQuery.setTaskSeCd(sndngInfo.string("TASK_SE_CD"));
+ vltnQuery.setVltnId(sndngInfo.string("VLTN_ID"));
+ }
+ DataObject vltnInfo = vltnMapper.selectVltnInfo(vltnQuery);
+
+ // 5. 전자우편 접수 내역을 등록한다.
+ EpostRcptReg epostRcptReg = new EpostRcptReg();
+
+ ctpvCode = sndngInfo.string("SGG_CD").substring(0, 2); // 시도 코드
+
+ if (sndngInfo.string("SNDNG_SE_CD").equals("01")) {
+ sealCd3 = "E"; // E:과태료부과계도장
+ } else if (sndngInfo.string("TASK_SE_CD").equals("DPV")) { // 장애인전용
+ if (sndngInfo.string("SNDNG_SE_CD").equals("02")) {
+ sealCd3 = "2"; // 2:장애인주차구역사전통보
+ } else {
+ sealCd3 = "7"; // 7:장애인주차구역고지서
+ }
+ } else if (sndngInfo.string("TASK_SE_CD").equals("ECA")) { // 전기차주차
+ if (sndngInfo.string("SNDNG_SE_CD").equals("02")) {
+ sealCd3 = "L"; // L:전기차충전구역과태료사전통지서
+ } else {
+ sealCd3 = "M"; // M:전기차충전구역과태료고지서
+ }
+ } else {
+ rtnMsg = "[F] 작업중 지정되지 않았습니다.";
+ return rtnMsg;
+ }
+
+ // 발송 구분
+ if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계고장
+ jobCd = vltnInfo.string("VLTN_CD") + "01";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지
+ jobCd = vltnInfo.string("VLTN_CD") + "02";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("03")) { // 부과
+ jobCd = vltnInfo.string("VLTN_CD") + "03";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("04")) { // 독촉
+ jobCd = vltnInfo.string("VLTN_CD") + "04";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("05")) { // 압류예고
+ jobCd = vltnInfo.string("VLTN_CD") + "05";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("06")) { // 압류통지
+ jobCd = vltnInfo.string("VLTN_CD") + "06";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납분
+ jobCd = vltnInfo.string("VLTN_CD") + "09";
+ } else {
+ rtnMsg = "[F] 작업중 발송 구분이 지정되지 않았습니다.";
+ return rtnMsg;
+ }
+
+ String epostSenderRegSeq = epostRcptRegBean.getEpostSenderRegSeq(sndngInfo.string("TODAY"), sndngInfo.string("DEPT_CD"));
+ conKey = sndngInfo.string("TODAY") + "-" + sndngInfo.string("DEPT_CD") + "0000" + "-" + epostSenderRegSeq;
+
+ int seqNo = 0;
+ if (sndng.getPostSndngSeCd().equals("0")) {
+ seqNo = epostRcptDtlBean.getEpostSenderDetailSeq(sndngInfo.string("TODAY"));
+ }
+ // 포맷: 등록일(REG_YMD)-발송기관코드(RECEV_SENDER_ORG_CODE)-업무코드(WORK_ID)-우편물구분(POST_SE)일련번호(RECEV_SEQ_NO)
+ // 예시: 20170719-40504370000-003-1001
+
+ epostRcptReg.setConKey(conKey); // 외부연계식별키
+ epostRcptReg.setConOrg(deptSggInfo.string("EGP_CON_ORG")); // 외부기관구분코드
+ epostRcptReg.setRceptId(deptSggInfo.string("EGP_RCEPT_ID")); // 접수우체국국기호
+ epostRcptReg.setDataCd("00"); // 접수코드
// 취급구분(DIV_KB) 000=일반 001=등기 201=선택등기
- if (sndng.getPostSndngSeCd().equals("1")) {
- if (sndngInfo.string("SGG_CD").equals("11500")) {
- epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd());
- epostRcptReg.setSealCd("1" + "2" + sealCd3);
- } else {
- epostRcptReg.setDivKb("20" + sndng.getPostSndngSeCd());
- epostRcptReg.setSealCd("E" + "2" + sealCd3);
- }
- } else {
- epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd());
- epostRcptReg.setSealCd(sndng.getPostSndngSeCd() + "2" + sealCd3);
- }
-
- epostRcptReg.setDfpayyn("001"); // 결재방법(DFPAYYN)
- epostRcptReg.setRcptKb("020"); // 내용문 유형(RCPT_KB)
- epostRcptReg.setWordKb("001"); // 내용문 종류(WORD_KB)
- epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 수취인 수 -> 건수 확인 필요하다. /////////////////////////////
- epostRcptReg.setEnvCd("003"); // 봉투 종류 - 접착식
-
- if (ctpvCode.equals("11")) { // 서울특별시
- epostRcptReg.setColorYn("Y");
- epostRcptReg.setMailCnt(2);
-
- if (sealCd3.equals("E")) {
- epostRcptReg.setFlexCd("N");
- } else {
- epostRcptReg.setFlexCd("Y");
- }
- } else {
- if (sndngInfo.string("SGG_CD").equals("44200")) { // 아산시청
- if (sndng.getSndngSeCd().equals("02")) { // 사전통지는 컬러로..
- epostRcptReg.setColorYn("Y");
- } else {
- epostRcptReg.setColorYn("N");
- }
- } else if (sndngInfo.string("SGG_CD").equals("50110")) { // 제주시청
- if (sndng.getSndngSeCd().equals("02") || sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("10")) { // 사전통지, 계도 컬러로
- epostRcptReg.setColorYn("Y");
- } else {
- epostRcptReg.setColorYn("N");
- }
- } else {
- epostRcptReg.setColorYn("N"); // 칼라우편물/흑백우편물(COLOR_YN)
- }
-
- epostRcptReg.setFlexCd("N"); // 이면구분(FLEX_CD)
- epostRcptReg.setMailCnt(1); // 내용문 매수(MAIL_CNT)
- }
-
- epostRcptReg.setMmYn("Y"); // 메일머지 플래그(MM_YN)
- epostRcptReg.setDmCnt(0); // 동봉물 개수(DM_CNT)
- epostRcptReg.setSbFg("Y"); // 반송불필요 여부(SB_FG)
- epostRcptReg.setApvlNb(deptSggInfo.string("EGP_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(deptSggInfo.string("DEPT_CD")); // 연계기관결제부서코드(RELORSECT_CD)
- }
-
- 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(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); // 작업 코드(JOB_CD)
- epostRcptReg.setPostPrcsSttsCd("01"); // 우편 처리 상태 코드(POST_PRCS_STTS_CD)
- epostRcptReg.setDelYn("N"); // 삭제 여부
- epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자
- epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID
-
- // 6. 전자우편 접수 등록
- rtnScs = epostRcptRegBean.create(epostRcptReg);
- if (!rtnScs) {
- // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
- throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다.");
- }
-
- // 7. 발송 내역을 수정한다.
- Sndng updtSndng = new Sndng();
- updtSndng.setConKey(epostRcptReg.getConKey()); // 외부연계식별키
- updtSndng.setDivKb(epostRcptReg.getDivKb()); // 취급 구분
-// updtSndng.setEpostNoticeId(); // 전자우편 안내문 ID
- updtSndng.setSndngSttsCd("01"); // 발송 상태 코드(FIM049) - 01 발송 대기
- updtSndng.setSndngId(sndng.getSndngId()); // 발송 ID
-
- rtnNocs = sndngMapper.updateEPostSndng(updtSndng); // 전자우편 발송 내역 수정
- if (rtnNocs != 1) {
- throw new RuntimeException("우편통합 발송 작업중 발송 내역 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- // 8. 전자우편 접수 상세 내역을 등록한다.
- String infoSndngSeNm = ""; // 약식 발송 구분 명
-
- if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계도
- infoSndngSeNm = "계도";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지서
- infoSndngSeNm = "사전";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("03")) { // 부과고지서
- infoSndngSeNm = "부과";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("04")) { // 독촉고지서
- infoSndngSeNm = "독촉";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("05")) { // 압류예고통지서
- infoSndngSeNm = "예고";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("06")) { // 압류통지
- infoSndngSeNm = "압류";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("07")) { // 사전통지서(개별)
- infoSndngSeNm = "사전";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("08")) { // 체납고지서(개별)
- infoSndngSeNm = "체납";
- } else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납고지서
- infoSndngSeNm = "체납";
+ if (sndng.getPostSndngSeCd().equals("1")) {
+ if (sndngInfo.string("SGG_CD").equals("11500")) {
+ epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd());
+ epostRcptReg.setSealCd("1" + "2" + sealCd3);
+ } else {
+ epostRcptReg.setDivKb("20" + sndng.getPostSndngSeCd());
+ epostRcptReg.setSealCd("E" + "2" + sealCd3);
+ }
+ } else {
+ epostRcptReg.setDivKb("00" + sndng.getPostSndngSeCd());
+ epostRcptReg.setSealCd(sndng.getPostSndngSeCd() + "2" + sealCd3);
+ }
+
+ epostRcptReg.setDfpayyn("001"); // 결재방법(DFPAYYN)
+ epostRcptReg.setRcptKb("020"); // 내용문 유형(RCPT_KB)
+ epostRcptReg.setWordKb("001"); // 내용문 종류(WORD_KB)
+ epostRcptReg.setRecevCnt(sndngInfo.number("TNOCS").intValue()); // 수취인 수 -> 건수 확인 필요하다. /////////////////////////////
+ epostRcptReg.setEnvCd("003"); // 봉투 종류 - 접착식
+
+ if (ctpvCode.equals("11")) { // 서울특별시
+ epostRcptReg.setColorYn("Y");
+ epostRcptReg.setMailCnt(2);
+
+ if (sealCd3.equals("E")) {
+ epostRcptReg.setFlexCd("N");
+ } else {
+ epostRcptReg.setFlexCd("Y");
+ }
+ } else {
+ if (sndngInfo.string("SGG_CD").equals("44200")) { // 아산시청
+ if (sndng.getSndngSeCd().equals("02")) { // 사전통지는 컬러로..
+ epostRcptReg.setColorYn("Y");
+ } else {
+ epostRcptReg.setColorYn("N");
+ }
+ } else if (sndngInfo.string("SGG_CD").equals("50110")) { // 제주시청
+ if (sndng.getSndngSeCd().equals("02") || sndng.getSndngSeCd().equals("01") || sndng.getSndngSeCd().equals("10")) { // 사전통지, 계도 컬러로
+ epostRcptReg.setColorYn("Y");
+ } else {
+ epostRcptReg.setColorYn("N");
+ }
+ } else {
+ epostRcptReg.setColorYn("N"); // 칼라우편물/흑백우편물(COLOR_YN)
+ }
+
+ epostRcptReg.setFlexCd("N"); // 이면구분(FLEX_CD)
+ epostRcptReg.setMailCnt(1); // 내용문 매수(MAIL_CNT)
+ }
+
+ epostRcptReg.setMmYn("Y"); // 메일머지 플래그(MM_YN)
+ epostRcptReg.setDmCnt(0); // 동봉물 개수(DM_CNT)
+ epostRcptReg.setSbFg("Y"); // 반송불필요 여부(SB_FG)
+ epostRcptReg.setApvlNb(deptSggInfo.string("EGP_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(deptSggInfo.string("DEPT_CD")); // 연계기관결제부서코드(RELORSECT_CD)
+ }
+
+ 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(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); // 작업 코드(JOB_CD)
+ epostRcptReg.setPostPrcsSttsCd("01"); // 우편 처리 상태 코드(POST_PRCS_STTS_CD)
+ epostRcptReg.setDelYn("N"); // 삭제 여부
+ epostRcptReg.setRceptYmd(sndngInfo.string("TODAY")); // 접수 일자
+ epostRcptReg.setSndngId(sndngInfo.string("SNDNG_ID")); // 발송 ID
+
+ // 6. 전자우편 접수 등록
+ rtnScs = epostRcptRegBean.create(epostRcptReg);
+ if (!rtnScs) {
+ // 예외를 발생시켜서 오류메세지를 보내고 DB Rollback
+ throw new RuntimeException("우편통합 발송 작업중 전자우편 접수 등록에 실패하였습니다.");
+ }
+
+ // 7. 발송 내역을 수정한다.
+ Sndng updtSndng = new Sndng();
+ updtSndng.setConKey(epostRcptReg.getConKey()); // 외부연계식별키
+ updtSndng.setDivKb(epostRcptReg.getDivKb()); // 취급 구분
+// updtSndng.setEpostNoticeId(); // 전자우편 안내문 ID
+ updtSndng.setSndngSttsCd("01"); // 발송 상태 코드(FIM049) - 01 발송 대기
+ updtSndng.setSndngId(sndng.getSndngId()); // 발송 ID
+
+ rtnNocs = sndngMapper.updateEPostSndng(updtSndng); // 전자우편 발송 내역 수정
+ if (rtnNocs != 1) {
+ throw new RuntimeException("우편통합 발송 작업중 발송 내역 수정에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ // 8. 전자우편 접수 상세 내역을 등록한다.
+ String infoSndngSeNm = ""; // 약식 발송 구분 명
+
+ if (sndngInfo.string("SNDNG_SE_CD").equals("01")) { // 계도
+ infoSndngSeNm = "계도";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 사전통지서
+ infoSndngSeNm = "사전";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("03")) { // 부과고지서
+ infoSndngSeNm = "부과";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("04")) { // 독촉고지서
+ infoSndngSeNm = "독촉";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("05")) { // 압류예고통지서
+ infoSndngSeNm = "예고";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("06")) { // 압류통지
+ infoSndngSeNm = "압류";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("07")) { // 사전통지서(개별)
+ infoSndngSeNm = "사전";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("08")) { // 체납고지서(개별)
+ infoSndngSeNm = "체납";
+ } else if (sndngInfo.string("SNDNG_SE_CD").equals("09")) { // 체납고지서
+ infoSndngSeNm = "체납";
}
// 문서종류
@@ -1316,29 +1316,29 @@ public class SndngBean extends AbstractBean {
String recevDocCd5 = "";
if ("DPV,ECA".contains(sndngInfo.string("TASK_SE_CD"))) {
- recevDocCd1 = "납부(" + infoSndngSeNm + ")서 영수증"; // 문서종류1
- recevDocCd2 = vltnInfo.string("TASK_SE_NM") + " " + vltnInfo.string("VLTN_ARTCL"); // 문서종류2
- recevDocCd3 = "[" + infoSndngSeNm + "]"; // 문서종류3
- recevDocCd4 = "[" + "시세외" + "]" + sndngInfo.string("TXITM_NM"); // 문서종류4
- recevDocCd5 = "영수필통지서"; // 문서종류5
- } else {
- recevDocCd1 = ""; // 문서종류1
- recevDocCd2 = ""; // 문서종류2
- recevDocCd3 = ""; // 문서종류3
- recevDocCd4 = ""; // 문서종류4
- recevDocCd5 = "영수필통지서"; // 문서종류5
- }
+ recevDocCd1 = "납부(" + infoSndngSeNm + ")서 영수증"; // 문서종류1
+ recevDocCd2 = vltnInfo.string("TASK_SE_NM") + " " + vltnInfo.string("VLTN_ARTCL"); // 문서종류2
+ recevDocCd3 = "[" + infoSndngSeNm + "]"; // 문서종류3
+ recevDocCd4 = "[" + "시세외" + "]" + sndngInfo.string("TXITM_NM"); // 문서종류4
+ recevDocCd5 = "영수필통지서"; // 문서종류5
+ } else {
+ recevDocCd1 = ""; // 문서종류1
+ recevDocCd2 = ""; // 문서종류2
+ recevDocCd3 = ""; // 문서종류3
+ recevDocCd4 = ""; // 문서종류4
+ recevDocCd5 = "영수필통지서"; // 문서종류5
+ }
// 과목명
- String recevSubj1 = ""; // 과목명1
- String recevSubj2 = ""; // 과목명2
- String recevSubj3 = ""; // 과목명3
+ String recevSubj1 = ""; // 과목명1
+ String recevSubj2 = ""; // 과목명2
+ String recevSubj3 = ""; // 과목명3
recevSubj1 = "과태료";
- if (sndngInfo.string("SNDNG_SE_CD").equals("01") || sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 계도, 사전통지서
- recevSubj2 = "";
+ if (sndngInfo.string("SNDNG_SE_CD").equals("01") || sndngInfo.string("SNDNG_SE_CD").equals("02")) { // 계도, 사전통지서
+ recevSubj2 = "";
} else {
- recevSubj2 = "가산금";
+ recevSubj2 = "가산금";
}
recevSubj3 = deptSggInfo.string("SGG_NM");
@@ -1350,314 +1350,314 @@ public class SndngBean extends AbstractBean {
List sndngTrgts = sndngDtlMapper.selectSndngTrgtDtlIds(sndbQuery);
for (int iLoop = 0; iLoop < sndngTrgts.size(); iLoop++) {
- // 전자우편 접수 상세
- EpostRcptDtl epostRcptDtl = new EpostRcptDtl();
+ // 전자우편 접수 상세
+ EpostRcptDtl epostRcptDtl = new EpostRcptDtl();
- // 발송 상세 및 단속, 납부자, 부과 정보 조회
- DataObject sndngDtlInfo = sndngDtlMapper.selectSndngDtlInfo(new SndbQuery().setSndngDtlId(sndngTrgts.get(iLoop).string("SNDNG_DTL_ID")));
+ // 발송 상세 및 단속, 납부자, 부과 정보 조회
+ DataObject sndngDtlInfo = sndngDtlMapper.selectSndngDtlInfo(new SndbQuery().setSndngDtlId(sndngTrgts.get(iLoop).string("SNDNG_DTL_ID")));
- // 가상계좌취득 자료가 아니면 다음 자료로..
- if (!sndngDtlInfo.string("SNDNG_DTL_STTS_CD").equals("02")) {
-// continue;
- throw new RuntimeException("우편통합 발송 작업중 발송상세 상태코드가 가상계좌취득이 아닌 자료를 발견되었습니다."); // 예외를 발생시켜서 DB Rollback
- }
+ // 가상계좌취득 자료가 아니면 다음 자료로..
+ if (!sndngDtlInfo.string("SNDNG_DTL_STTS_CD").equals("02")) {
+// continue;
+ throw new RuntimeException("우편통합 발송 작업중 발송상세 상태코드가 가상계좌취득이 아닌 자료를 발견되었습니다."); // 예외를 발생시켜서 DB Rollback
+ }
// 고지번호
String becevBillNumber = "";
if ("01,02".contains(sndngDtlInfo.string("SNDNG_SE_CD"))) {
- becevBillNumber = "";
+ becevBillNumber = "";
+ } else {
+ becevBillNumber = "고지번호:" + sndngDtlInfo.string("FYR") + "-" + sndngDtlInfo.string("LEVY_NO");
+ }
+
+ // 등기번호
+ String rgstNmbr = "";
+ if (sndng.getPostSndngSeCd().equals("1")) {
+ rgstNmbr = epostRcptRegBean.getEpostRgNo(sndngInfo.string("SGG_CD"), sndngInfo.string("TASK_SE_CD"));
+ } else {
+ seqNo++;
+ rgstNmbr = sndngInfo.string("TODAY") + String.format("%05d", seqNo + 1);
+ }
+
+ // 금액
+ int pcptax = 0; // 본세
+ int adamt = 0; // 가산금
+ int sumAmt = 0; // 합계 금액
+ int afterPcptax = 0; // 납기후 본세
+ int afterAdamt = 0; // 납기후 가산금
+ int afterSumAmt = 0; // 납기후 합계 금액
+
+ // 계도장에는 최초 과태료 금액을 출력한다.
+ 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(); // 합계 금액 = 과태료 단속 금액
+ afterPcptax = 0; // 납기후 본세
+ afterAdamt = 0; // 납기후 가산금
+ afterSumAmt = 0; // 납기후 합계 금액
+ } else {
+ pcptax = sndngDtlInfo.number("PCPTAX").intValue(); // 본세
+ adamt = sndngDtlInfo.number("ADAMT").intValue(); // 가산금
+ sumAmt = sndngDtlInfo.number("SUM_AMT").intValue(); // 합계 금액
+
+ if (sndngDtlInfo.string("SGG_CD").equals("50110")) {
+ afterPcptax = 0; // 납기후 본세
+ afterAdamt = 0; // 납기후 가산금
+ afterSumAmt = 0; // 납기후 합계 금액
+ } else {
+ afterSumAmt = sndngDtlInfo.number("DUDT_AFTR_AMT").intValue(); // 납기후 금액
+ if (afterSumAmt == 0) { // 납기후 금액이 0 이라면..
+ afterPcptax = 0;
+ afterAdamt = 0;
+ afterSumAmt = 0;
+ } else {
+ afterPcptax = sndngDtlInfo.number("PCPTAX").intValue(); // 납기후 본세
+ if (afterSumAmt > afterPcptax) { // 납기후 금액이 본세보다 크다면..
+ afterAdamt = sndngDtlInfo.number("DUDT_AFTR_AMT").intValue() - sndngDtlInfo.number("PCPTAX").intValue();
+ } else if (afterSumAmt < afterPcptax) { // 납기후 금액이 본세보다 작다면 오류..
+ throw new RuntimeException("우편통합 발송 작업중 납기후 금액이 본세보다 작은 자료가 발견되었습니다."); // 예외를 발생시켜서 DB Rollback
+ } else {
+ afterAdamt = 0;
+ }
+ }
+ }
+ }
+
+ // OCR Band
+ String ocr0 = "";
+ String ocr1 = "";
+ String ocr2 = "";
+ if ("11,12".contains(sndngDtlInfo.string("SNDNG_SE_CD"))) { // 계도장
+ ocr0 = "";
+ ocr1 = "";
+ ocr2 = "";
+ } else if (ctpvCode.equals("11")) { // 서울
+ ocr0 = sndngDtlInfo.string("TAX_NO");
+ ocr1 = "";
+ ocr2 = "";
} else {
- becevBillNumber = "고지번호:" + sndngDtlInfo.string("FYR") + "-" + sndngDtlInfo.string("LEVY_NO");
+ // TAX_NO = 부서코드(7) + 특별회계사업코드(4) + 회계연도(4) + 회계구분(2) + 세목코드(6) + 고지번호(6) + 분납순번(2)
+ ocr0 = sndngDtlInfo.string("TAX_NO") + CmmnUtil.getOcrVrfcCode("12357", sndngDtlInfo.string("TAX_NO"), 31);
+ ocr1 = CmmnUtil.getOcrband2(ocr0, sndngDtlInfo.string("LEVY_SE_CD"), sumAmt, sndngDtlInfo.string("DUDT_YMD"));
+ ocr2 = CmmnUtil.getOcrband3(ocr1, sumAmt, sndngDtlInfo.string("DUDT_YMD"), afterSumAmt);
}
+ // 전자우편 접수 상세 /////////////////////////////////////////////////////
+ // CON_KEY
+ epostRcptDtl.setConKey(conKey);
// 등기번호
- String rgstNmbr = "";
- if (sndng.getPostSndngSeCd().equals("1")) {
- rgstNmbr = epostRcptRegBean.getEpostRgNo(sndngInfo.string("SGG_CD"), sndngInfo.string("TASK_SE_CD"));
- } else {
- seqNo++;
- rgstNmbr = sndngInfo.string("TODAY") + String.format("%05d", seqNo + 1);
- }
-
- // 금액
- int pcptax = 0; // 본세
- int adamt = 0; // 가산금
- int sumAmt = 0; // 합계 금액
- int afterPcptax = 0; // 납기후 본세
- int afterAdamt = 0; // 납기후 가산금
- int afterSumAmt = 0; // 납기후 합계 금액
-
- // 계도장에는 최초 과태료 금액을 출력한다.
- 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(); // 합계 금액 = 과태료 단속 금액
- afterPcptax = 0; // 납기후 본세
- afterAdamt = 0; // 납기후 가산금
- afterSumAmt = 0; // 납기후 합계 금액
- } else {
- pcptax = sndngDtlInfo.number("PCPTAX").intValue(); // 본세
- adamt = sndngDtlInfo.number("ADAMT").intValue(); // 가산금
- sumAmt = sndngDtlInfo.number("SUM_AMT").intValue(); // 합계 금액
-
- if (sndngDtlInfo.string("SGG_CD").equals("50110")) {
- afterPcptax = 0; // 납기후 본세
- afterAdamt = 0; // 납기후 가산금
- afterSumAmt = 0; // 납기후 합계 금액
- } else {
- afterSumAmt = sndngDtlInfo.number("DUDT_AFTR_AMT").intValue(); // 납기후 금액
- if (afterSumAmt == 0) { // 납기후 금액이 0 이라면..
- afterPcptax = 0;
- afterAdamt = 0;
- afterSumAmt = 0;
- } else {
- afterPcptax = sndngDtlInfo.number("PCPTAX").intValue(); // 납기후 본세
- if (afterSumAmt > afterPcptax) { // 납기후 금액이 본세보다 크다면..
- afterAdamt = sndngDtlInfo.number("DUDT_AFTR_AMT").intValue() - sndngDtlInfo.number("PCPTAX").intValue();
- } else if (afterSumAmt < afterPcptax) { // 납기후 금액이 본세보다 작다면 오류..
- throw new RuntimeException("우편통합 발송 작업중 납기후 금액이 본세보다 작은 자료가 발견되었습니다."); // 예외를 발생시켜서 DB Rollback
- } else {
- afterAdamt = 0;
- }
- }
- }
- }
-
- // OCR Band
- String ocr0 = "";
- String ocr1 = "";
- String ocr2 = "";
- if ("11,12".contains(sndngDtlInfo.string("SNDNG_SE_CD"))) { // 계도장
- ocr0 = "";
- ocr1 = "";
- ocr2 = "";
- } else if (ctpvCode.equals("11")) { // 서울
- ocr0 = sndngDtlInfo.string("TAX_NO");
- ocr1 = "";
- ocr2 = "";
- } else {
- // TAX_NO = 부서코드(7) + 특별회계사업코드(4) + 회계연도(4) + 회계구분(2) + 세목코드(6) + 고지번호(6) + 분납순번(2)
- ocr0 = sndngDtlInfo.string("TAX_NO") + CmmnUtil.getOcrVrfcCode("12357", sndngDtlInfo.string("TAX_NO"), 31);
- ocr1 = CmmnUtil.getOcrband2(ocr0, sndngDtlInfo.string("LEVY_SE_CD"), sumAmt, sndngDtlInfo.string("DUDT_YMD"));
- ocr2 = CmmnUtil.getOcrband3(ocr1, sumAmt, sndngDtlInfo.string("DUDT_YMD"), afterSumAmt);
- }
-
- // 전자우편 접수 상세 /////////////////////////////////////////////////////
- // CON_KEY
- epostRcptDtl.setConKey(conKey);
- // 등기번호
- epostRcptDtl.setRgstNmbr(rgstNmbr);
- // 일련번호
- epostRcptDtl.setRecevSeq(sndngDtlInfo.string("CRDN_ID"));
- // 발송코드
- epostRcptDtl.setRecevCode(sndngDtlInfo.string("SNDNG_DTL_ID"));
- // 바코드
- epostRcptDtl.setRecevBar1d(deptSggInfo.string("SGG_LEADER"));
- // 이차원바코드
- epostRcptDtl.setRecevBar2d("");
- // 고지번호
- epostRcptDtl.setRecevBillNumber(becevBillNumber);
- // 문서종류1
- epostRcptDtl.setRecevDocCd1(recevDocCd1);
- // 문서종류2
- epostRcptDtl.setRecevDocCd2(recevDocCd2);
- // 문서종류3
- epostRcptDtl.setRecevDocCd3(recevDocCd3);
- // 문서종류4
- epostRcptDtl.setRecevDocCd4(recevDocCd4);
- // 문서종류5
- epostRcptDtl.setRecevDocCd5(recevDocCd5);
- // 과목명1
- epostRcptDtl.setRecevSubj1(recevSubj1);
- // 과목명2
- epostRcptDtl.setRecevSubj2(recevSubj2);
- // 과목명3
- epostRcptDtl.setRecevSubj3(recevSubj3);
- // 위반일시
- epostRcptDtl.setRecevViolateDt(sndngDtlInfo.string("CRDN_YMD_TM_MASK"));
- // 위반동
- epostRcptDtl.setRecevViolateDong(sndngDtlInfo.string("CRDN_STDG_NM"));
- // 위반장소 - 80
- String crdnPlc = sndngDtlInfo.string("CRDN_PLC");
- if (crdnPlc.length() > 80) {
- crdnPlc = sndngDtlInfo.string("CRDN_PLC").substring(0, 80);
- epostRcptDtl.setRecevViolatePlace(crdnPlc);
- } else {
- epostRcptDtl.setRecevViolatePlace(crdnPlc);
- }
- // 법조항
- epostRcptDtl.setRecevLaws(vltnInfo.string("VLTN_LAW_NM") + " " + vltnInfo.string("VLTN_LAW1") + " " + vltnInfo.string("VLTN_LAW2"));
- // 납부번호
- if (ocr0.equals("")) {
- epostRcptDtl.setRecevPayNumber1(""); // 납부번호1
- epostRcptDtl.setRecevPayNumber2(""); // 납부번호2
- } else {
- epostRcptDtl.setRecevPayNumber1(sndngDtlInfo.string("TAX_NO").substring(0, 17)); // 납부번호1
- epostRcptDtl.setRecevPayNumber2(sndngDtlInfo.string("TAX_NO").substring(17)); // 납부번호2
- }
- // OCR0
- epostRcptDtl.setRecevOcr0(ocr0);
- // OCR1
- epostRcptDtl.setRecevOcr1(ocr1);
- // OCR2
- epostRcptDtl.setRecevOcr2(ocr2);
+ epostRcptDtl.setRgstNmbr(rgstNmbr);
+ // 일련번호
+ epostRcptDtl.setRecevSeq(sndngDtlInfo.string("CRDN_ID"));
+ // 발송코드
+ epostRcptDtl.setRecevCode(sndngDtlInfo.string("SNDNG_DTL_ID"));
+ // 바코드
+ epostRcptDtl.setRecevBar1d(deptSggInfo.string("SGG_LEADER"));
+ // 이차원바코드
+ epostRcptDtl.setRecevBar2d("");
+ // 고지번호
+ epostRcptDtl.setRecevBillNumber(becevBillNumber);
+ // 문서종류1
+ epostRcptDtl.setRecevDocCd1(recevDocCd1);
+ // 문서종류2
+ epostRcptDtl.setRecevDocCd2(recevDocCd2);
+ // 문서종류3
+ epostRcptDtl.setRecevDocCd3(recevDocCd3);
+ // 문서종류4
+ epostRcptDtl.setRecevDocCd4(recevDocCd4);
+ // 문서종류5
+ epostRcptDtl.setRecevDocCd5(recevDocCd5);
+ // 과목명1
+ epostRcptDtl.setRecevSubj1(recevSubj1);
+ // 과목명2
+ epostRcptDtl.setRecevSubj2(recevSubj2);
+ // 과목명3
+ epostRcptDtl.setRecevSubj3(recevSubj3);
+ // 위반일시
+ epostRcptDtl.setRecevViolateDt(sndngDtlInfo.string("CRDN_YMD_TM_MASK"));
+ // 위반동
+ epostRcptDtl.setRecevViolateDong(sndngDtlInfo.string("CRDN_STDG_NM"));
+ // 위반장소 - 80
+ String crdnPlc = sndngDtlInfo.string("CRDN_PLC");
+ if (crdnPlc.length() > 80) {
+ crdnPlc = sndngDtlInfo.string("CRDN_PLC").substring(0, 80);
+ epostRcptDtl.setRecevViolatePlace(crdnPlc);
+ } else {
+ epostRcptDtl.setRecevViolatePlace(crdnPlc);
+ }
+ // 법조항
+ epostRcptDtl.setRecevLaws(vltnInfo.string("VLTN_LAW_NM") + " " + vltnInfo.string("VLTN_LAW1") + " " + vltnInfo.string("VLTN_LAW2"));
+ // 납부번호
+ if (ocr0.equals("")) {
+ epostRcptDtl.setRecevPayNumber1(""); // 납부번호1
+ epostRcptDtl.setRecevPayNumber2(""); // 납부번호2
+ } else {
+ epostRcptDtl.setRecevPayNumber1(sndngDtlInfo.string("TAX_NO").substring(0, 17)); // 납부번호1
+ epostRcptDtl.setRecevPayNumber2(sndngDtlInfo.string("TAX_NO").substring(17)); // 납부번호2
+ }
+ // OCR0
+ epostRcptDtl.setRecevOcr0(ocr0);
+ // OCR1
+ epostRcptDtl.setRecevOcr1(ocr1);
+ // OCR2
+ epostRcptDtl.setRecevOcr2(ocr2);
// 전자 납부번호
- epostRcptDtl.setRecevOnlinePayNumber(sndngDtlInfo.string("EPAYNO"));
- // 가상계좌
- if (ctpvCode.equals("11")) { // 서울
- epostRcptDtl.setVractno(sndngDtlInfo.string("VR_ACTNO"));
- epostRcptDtl.setVractno2(sndngDtlInfo.string("VR_ACTNO2"));
- epostRcptDtl.setVractno3(sndngDtlInfo.string("VR_ACTNO3"));
- epostRcptDtl.setVractno4(sndngDtlInfo.string("VR_ACTNO4"));
- epostRcptDtl.setVractno5(sndngDtlInfo.string("VR_ACTNO5"));
- epostRcptDtl.setVractno6(sndngDtlInfo.string("VR_ACTNO6"));
- epostRcptDtl.setVractno7(sndngDtlInfo.string("VR_ACTNO7"));
- epostRcptDtl.setVractno8(sndngDtlInfo.string("VR_ACTNO8"));
- epostRcptDtl.setVractno9(sndngDtlInfo.string("VR_ACTNO9"));
- epostRcptDtl.setVractno10(sndngDtlInfo.string("VR_ACTNO10"));
- epostRcptDtl.setVractno11(sndngDtlInfo.string("VR_ACTNO11"));
- } else {
- epostRcptDtl.setVractno(sndngDtlInfo.string("BANK_NM") + " " + sndngDtlInfo.string("VR_ACTNO"));
- epostRcptDtl.setVractno2(sndngDtlInfo.string("BANK_NM2") + " " + sndngDtlInfo.string("VR_ACTNO2"));
- epostRcptDtl.setVractno3(sndngDtlInfo.string("BANK_NM3") + " " + sndngDtlInfo.string("VR_ACTNO3"));
- epostRcptDtl.setVractno4(sndngDtlInfo.string("BANK_NM4") + " " + sndngDtlInfo.string("VR_ACTNO4"));
- epostRcptDtl.setVractno5(sndngDtlInfo.string("BANK_NM5") + " " + sndngDtlInfo.string("VR_ACTNO5"));
- epostRcptDtl.setVractno6(sndngDtlInfo.string("BANK_NM6") + " " + sndngDtlInfo.string("VR_ACTNO6"));
- epostRcptDtl.setVractno7(sndngDtlInfo.string("BANK_NM7") + " " + sndngDtlInfo.string("VR_ACTNO7"));
- epostRcptDtl.setVractno8(sndngDtlInfo.string("BANK_NM8") + " " + sndngDtlInfo.string("VR_ACTNO8"));
- epostRcptDtl.setVractno9(sndngDtlInfo.string("BANK_NM9") + " " + sndngDtlInfo.string("VR_ACTNO9"));
- epostRcptDtl.setVractno10(sndngDtlInfo.string("BANK_NM10") + " " + sndngDtlInfo.string("VR_ACTNO10"));
- epostRcptDtl.setVractno11(sndngDtlInfo.string("BANK_NM11") + " " + sndngDtlInfo.string("VR_ACTNO11"));
- }
- // 과태료금액
- epostRcptDtl.setRecevFinePrice(sndngDtlInfo.string("FFNLG_AMT"));
- // 납부금액
- epostRcptDtl.setRecevPayPrice(String.valueOf(sumAmt));
- // 납부기한
- epostRcptDtl.setRecevPayDt(sndngDtlInfo.string("DUDT_YMD_MASK_KOR"));
- // 납기내기한
- epostRcptDtl.setRecevPayInDate(sndngDtlInfo.string("DUDT_YMD_MASK"));
- // 납기내금액
- epostRcptDtl.setRecevPayInPrice(String.valueOf(pcptax));
- // 납기내가산금
- epostRcptDtl.setRecevPayInAddPrice(String.valueOf(adamt));
- // 납기내합계금액
- epostRcptDtl.setRecevPayInDefaultPrice(String.valueOf(sumAmt));
- // 납기후기한
- epostRcptDtl.setRecevPayOutDate(sndngDtlInfo.string("DUDT_AFTR_YMD_MASK"));
- // 납기후금액
- epostRcptDtl.setRecevPayOutPrice(String.valueOf(afterPcptax));
- // 납기후가산금
- epostRcptDtl.setRecevPayOutAddPrice(String.valueOf(afterAdamt));
- // 납기후합계금액
- epostRcptDtl.setRecevPayOutDefaultPrice(String.valueOf(afterSumAmt));
- // 차량번호
- epostRcptDtl.setRecevCarNumber(sndngDtlInfo.string("VHRNO"));
- // 우편번호
- epostRcptDtl.setRecevCarOwnerZipcode(sndngDtlInfo.string("ZIP"));
- // 주소(시, 구)
- epostRcptDtl.setRecevCarOwnerAddr(sndngDtlInfo.string("ADDR"));
- // 상세주소
- epostRcptDtl.setRecevCarOwnerDetailaddr(sndngDtlInfo.string("DTL_ADDR"));
- // 소유자명
- epostRcptDtl.setRecevCarOwnerNm(sndngDtlInfo.string("RTPYR_NM"));
- // 주민번호(납부자 생년월일)
- epostRcptDtl.setRecevCarOwnerSsn(sndngDtlInfo.string("RTPYR_BRDT"));
- // 증거번호
- epostRcptDtl.setRecevEvidenceNumber(sndngDtlInfo.string("SNDNG_DTL_ID"));
- // 사진장수
- epostRcptDtl.setRecevPhotoCnt("0");
- // 사진파일명1
- epostRcptDtl.setRecevPhotoFilename1("");
- // 사진파일명2
- epostRcptDtl.setRecevPhotoFilename2("");
- // 사진파일명3
- epostRcptDtl.setRecevPhotoFilename3("");
- // 사진파일명4
- epostRcptDtl.setRecevPhotoFilename4("");
-
- // 계도장(10,11), 사전통지서(01,02)에는 사진을 출력한다.
- if ("01,02,11,12".contains(sndngDtlInfo.string("SNDNG_SE_CD"))) {
- // 단속 첨부 파일 조회
- List fileInfo = fileBean.getFilesOf(Crdn.INF_TYPE, sndngDtlInfo.string("CRDN_ID"));
-
- if (fileInfo.size() > 0) {
- epostRcptDtl.setRecevPhotoCnt(String.valueOf(fileInfo.size())); // 사진장수
-
- // 사진파일명이 중복이 되면 안되다.. 중복을 피하기 위해 서버에 저장된 파일명으로 지정하였다.
- for (int jLoop = 0; jLoop < fileInfo.size(); jLoop++) {
- // 서버 OS에 따라.. separator 지정.
- String strSeparator = ""; // File.separator
- if (deptSggInfo.string("SRVR_OS").contains("Windows")) {
- strSeparator = "\\";
- } else {
- strSeparator = "/";
- }
-
- // 파일 명
- 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) {
- throw new RuntimeException("우편통합 발송 작업중 전자우편 단속 사진 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- if (jLoop == 0) {
- epostRcptDtl.setRecevPhotoFilename1(fileName); // 사진파일명1
- } else if (jLoop == 1) {
- epostRcptDtl.setRecevPhotoFilename2(fileName); // 사진파일명2
- } else if (jLoop == 2) {
- epostRcptDtl.setRecevPhotoFilename3(fileName); // 사진파일명3
- } else if (jLoop == 3) {
- epostRcptDtl.setRecevPhotoFilename4(fileName); // 사진파일명4
- }
- }
- }
- }
-
- // 10. 전자우편 접수 상세
- rtnScs = epostRcptDtlBean.create(epostRcptDtl);
- if (!rtnScs) {
- throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
-
- // 11. 발송상세 내역을 수정한다.
- SndngDtl sndngDtl = new SndngDtl();
- sndngDtl.setConKey(conKey); // 외부연계식별키
- sndngDtl.setRgNo(rgstNmbr); // 등기 번호
- sndngDtl.setSndngDtlSttsCd("03"); // 발송 상세 상태 코드(FIM050) - 03 발송
- sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID"));
-
- rtnNocs = sndngDtlMapper.updateSndngDtlEPost(sndngDtl); // 전자우편 발송상세 내역 수정
- if (rtnNocs != 1) {
- throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
- }
- }
-
- return "[S] 작업이 정상 처리 되었습니다.";
- }
+ epostRcptDtl.setRecevOnlinePayNumber(sndngDtlInfo.string("EPAYNO"));
+ // 가상계좌
+ if (ctpvCode.equals("11")) { // 서울
+ epostRcptDtl.setVractno(sndngDtlInfo.string("VR_ACTNO"));
+ epostRcptDtl.setVractno2(sndngDtlInfo.string("VR_ACTNO2"));
+ epostRcptDtl.setVractno3(sndngDtlInfo.string("VR_ACTNO3"));
+ epostRcptDtl.setVractno4(sndngDtlInfo.string("VR_ACTNO4"));
+ epostRcptDtl.setVractno5(sndngDtlInfo.string("VR_ACTNO5"));
+ epostRcptDtl.setVractno6(sndngDtlInfo.string("VR_ACTNO6"));
+ epostRcptDtl.setVractno7(sndngDtlInfo.string("VR_ACTNO7"));
+ epostRcptDtl.setVractno8(sndngDtlInfo.string("VR_ACTNO8"));
+ epostRcptDtl.setVractno9(sndngDtlInfo.string("VR_ACTNO9"));
+ epostRcptDtl.setVractno10(sndngDtlInfo.string("VR_ACTNO10"));
+ epostRcptDtl.setVractno11(sndngDtlInfo.string("VR_ACTNO11"));
+ } else {
+ epostRcptDtl.setVractno(sndngDtlInfo.string("BANK_NM") + " " + sndngDtlInfo.string("VR_ACTNO"));
+ epostRcptDtl.setVractno2(sndngDtlInfo.string("BANK_NM2") + " " + sndngDtlInfo.string("VR_ACTNO2"));
+ epostRcptDtl.setVractno3(sndngDtlInfo.string("BANK_NM3") + " " + sndngDtlInfo.string("VR_ACTNO3"));
+ epostRcptDtl.setVractno4(sndngDtlInfo.string("BANK_NM4") + " " + sndngDtlInfo.string("VR_ACTNO4"));
+ epostRcptDtl.setVractno5(sndngDtlInfo.string("BANK_NM5") + " " + sndngDtlInfo.string("VR_ACTNO5"));
+ epostRcptDtl.setVractno6(sndngDtlInfo.string("BANK_NM6") + " " + sndngDtlInfo.string("VR_ACTNO6"));
+ epostRcptDtl.setVractno7(sndngDtlInfo.string("BANK_NM7") + " " + sndngDtlInfo.string("VR_ACTNO7"));
+ epostRcptDtl.setVractno8(sndngDtlInfo.string("BANK_NM8") + " " + sndngDtlInfo.string("VR_ACTNO8"));
+ epostRcptDtl.setVractno9(sndngDtlInfo.string("BANK_NM9") + " " + sndngDtlInfo.string("VR_ACTNO9"));
+ epostRcptDtl.setVractno10(sndngDtlInfo.string("BANK_NM10") + " " + sndngDtlInfo.string("VR_ACTNO10"));
+ epostRcptDtl.setVractno11(sndngDtlInfo.string("BANK_NM11") + " " + sndngDtlInfo.string("VR_ACTNO11"));
+ }
+ // 과태료금액
+ epostRcptDtl.setRecevFinePrice(sndngDtlInfo.string("FFNLG_AMT"));
+ // 납부금액
+ epostRcptDtl.setRecevPayPrice(String.valueOf(sumAmt));
+ // 납부기한
+ epostRcptDtl.setRecevPayDt(sndngDtlInfo.string("DUDT_YMD_MASK_KOR"));
+ // 납기내기한
+ epostRcptDtl.setRecevPayInDate(sndngDtlInfo.string("DUDT_YMD_MASK"));
+ // 납기내금액
+ epostRcptDtl.setRecevPayInPrice(String.valueOf(pcptax));
+ // 납기내가산금
+ epostRcptDtl.setRecevPayInAddPrice(String.valueOf(adamt));
+ // 납기내합계금액
+ epostRcptDtl.setRecevPayInDefaultPrice(String.valueOf(sumAmt));
+ // 납기후기한
+ epostRcptDtl.setRecevPayOutDate(sndngDtlInfo.string("DUDT_AFTR_YMD_MASK"));
+ // 납기후금액
+ epostRcptDtl.setRecevPayOutPrice(String.valueOf(afterPcptax));
+ // 납기후가산금
+ epostRcptDtl.setRecevPayOutAddPrice(String.valueOf(afterAdamt));
+ // 납기후합계금액
+ epostRcptDtl.setRecevPayOutDefaultPrice(String.valueOf(afterSumAmt));
+ // 차량번호
+ epostRcptDtl.setRecevCarNumber(sndngDtlInfo.string("VHRNO"));
+ // 우편번호
+ epostRcptDtl.setRecevCarOwnerZipcode(sndngDtlInfo.string("ZIP"));
+ // 주소(시, 구)
+ epostRcptDtl.setRecevCarOwnerAddr(sndngDtlInfo.string("ADDR"));
+ // 상세주소
+ epostRcptDtl.setRecevCarOwnerDetailaddr(sndngDtlInfo.string("DTL_ADDR"));
+ // 소유자명
+ epostRcptDtl.setRecevCarOwnerNm(sndngDtlInfo.string("RTPYR_NM"));
+ // 주민번호(납부자 생년월일)
+ epostRcptDtl.setRecevCarOwnerSsn(sndngDtlInfo.string("RTPYR_BRDT"));
+ // 증거번호
+ epostRcptDtl.setRecevEvidenceNumber(sndngDtlInfo.string("SNDNG_DTL_ID"));
+ // 사진장수
+ epostRcptDtl.setRecevPhotoCnt("0");
+ // 사진파일명1
+ epostRcptDtl.setRecevPhotoFilename1("");
+ // 사진파일명2
+ epostRcptDtl.setRecevPhotoFilename2("");
+ // 사진파일명3
+ epostRcptDtl.setRecevPhotoFilename3("");
+ // 사진파일명4
+ epostRcptDtl.setRecevPhotoFilename4("");
+
+ // 계도장(10,11), 사전통지서(01,02)에는 사진을 출력한다.
+ if ("01,02,11,12".contains(sndngDtlInfo.string("SNDNG_SE_CD"))) {
+ // 단속 첨부 파일 조회
+ List fileInfo = fileBean.getFilesOf(Crdn.INF_TYPE, sndngDtlInfo.string("CRDN_ID"));
+
+ if (fileInfo.size() > 0) {
+ epostRcptDtl.setRecevPhotoCnt(String.valueOf(fileInfo.size())); // 사진장수
+
+ // 사진파일명이 중복이 되면 안되다.. 중복을 피하기 위해 서버에 저장된 파일명으로 지정하였다.
+ for (int jLoop = 0; jLoop < fileInfo.size(); jLoop++) {
+ // 서버 OS에 따라.. separator 지정.
+ String strSeparator = ""; // File.separator
+ if (deptSggInfo.string("SRVR_OS").contains("Windows")) {
+ strSeparator = "\\";
+ } else {
+ strSeparator = "/";
+ }
+
+ // 파일 명
+ 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) {
+ throw new RuntimeException("우편통합 발송 작업중 전자우편 단속 사진 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ if (jLoop == 0) {
+ epostRcptDtl.setRecevPhotoFilename1(fileName); // 사진파일명1
+ } else if (jLoop == 1) {
+ epostRcptDtl.setRecevPhotoFilename2(fileName); // 사진파일명2
+ } else if (jLoop == 2) {
+ epostRcptDtl.setRecevPhotoFilename3(fileName); // 사진파일명3
+ } else if (jLoop == 3) {
+ epostRcptDtl.setRecevPhotoFilename4(fileName); // 사진파일명4
+ }
+ }
+ }
+ }
+
+ // 10. 전자우편 접수 상세
+ rtnScs = epostRcptDtlBean.create(epostRcptDtl);
+ if (!rtnScs) {
+ throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+
+ // 11. 발송상세 내역을 수정한다.
+ SndngDtl sndngDtl = new SndngDtl();
+ sndngDtl.setConKey(conKey); // 외부연계식별키
+ sndngDtl.setRgNo(rgstNmbr); // 등기 번호
+ sndngDtl.setSndngDtlSttsCd("03"); // 발송 상세 상태 코드(FIM050) - 03 발송
+ sndngDtl.setSndngDtlId(sndngDtlInfo.string("SNDNG_DTL_ID"));
+
+ rtnNocs = sndngDtlMapper.updateSndngDtlEPost(sndngDtl); // 전자우편 발송상세 내역 수정
+ if (rtnNocs != 1) {
+ throw new RuntimeException("우편통합 발송 작업중 전자우편 상세 등록에 실패하였습니다."); // 예외를 발생시켜서 DB Rollback
+ }
+ }
+
+ return "[S] 작업이 정상 처리 되었습니다.";
+ }
}
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 cd873026..28b5f3da 100644
--- a/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java
+++ b/src/main/java/cokr/xit/fims/sndb/web/Sndb01Controller.java
@@ -292,12 +292,15 @@ public class Sndb01Controller extends ApplicationController {
@Task
@RequestMapping(name="계고장 발송 대상 상세 조회", value=METHOD_URL.getWarningTargetInfo)
public ModelAndView getWarningTargetInfo(HttpServletRequest hReq, SndbQuery req) {
+ boolean json = jsonResponse();
ModelAndView mav = getWarningTargetList(req);
- mav.setViewName("fims/sndb/sndb01020-info");
+ if (json) {
+ mav.setViewName("jsonView");
+ } else {
+ mav.setViewName("fims/sndb/sndb01020-info");
- return mav
- .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
+ mav.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "sndb01020") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("prefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
@@ -306,7 +309,10 @@ public class Sndb01Controller extends ApplicationController {
.addObject("mainQuery", toJson(req)) // 검색 조건
.addObject("List", toJson(mav.getModel().get("List"))) // 데이터
.addObject("Paging", toJson(mav.getModel().get("Paging"))) // 페이징
- ;
+ ;
+ }
+
+ return mav;
}
/**계도장 발송 대상을 조회하여 발송 대장에 등록한다.
@@ -660,19 +666,22 @@ public class Sndb01Controller extends ApplicationController {
@Task
@RequestMapping(name="사전통지 발송 대상 상세 조회", value=METHOD_URL.getAdvanceNoticeTargetInfo)
public ModelAndView getAdvanceNoticeTargetInfo(HttpServletRequest hReq, SndbQuery req) {
+ boolean json = jsonResponse();
ModelAndView mav = getAdvanceNoticeTargetList(req);
- mav.setViewName("fims/sndb/sndb01060-info");
+ if (json) {
+ mav.setViewName("jsonView");
+ } else {
+ mav.setViewName("fims/sndb/sndb01060-info");
- // 사전통지 납기일자 조회
- CmmnQuery cmmnReq = new CmmnQuery();
- cmmnReq.setSggCd(req.getSggCd());
- cmmnReq.setTaskSeCd(req.getTaskSeCd());
+ // 사전통지 납기일자 조회
+ CmmnQuery cmmnReq = new CmmnQuery();
+ cmmnReq.setSggCd(req.getSggCd());
+ cmmnReq.setTaskSeCd(req.getTaskSeCd());
- DataObject advntceYmdInfo = taskBean.getAdvntceYmdInfo(cmmnReq);
+ DataObject advntceYmdInfo = taskBean.getAdvntceYmdInfo(cmmnReq);
- return mav
- .addObject("callPurpose", req.getCallPurpose()) // 호출 용도
+ mav.addObject("callPurpose", req.getCallPurpose()) // 호출 용도
.addObject("pageName", "sndb01060") // View(jsp)에서 사용할 id 뒤에 붙일 suffix
.addObject("prefixUrl", CLASS_URL) // prefixUrl
.addObject("sggCd", req.getSggCd()) // 시군구 코드(SGG_CD)
@@ -682,7 +691,10 @@ public class Sndb01Controller extends ApplicationController {
.addObject("advntceYmdInfo", toJson(advntceYmdInfo)) // 사전통지 기간 정보
.addObject("List", toJson(mav.getModel().get("List"))) // 데이터
.addObject("Paging", toJson(mav.getModel().get("Paging"))) // 페이징
- ;
+ ;
+ }
+
+ return mav;
}
/**사전통지 발송 대상을 등록한다.