:::: 개발 ::::/└ JSP & SPRING

국세청 PDF 서버 파일 업로드 후 자료 적용 기능

nayha 2019. 7. 26. 16:32

파일이 업로드 된 후 경로 DB 읽어온 후

 

try {
		물리파일 경로 읽은 후 파일 객체 생성
			File file = new File(mapData.get("PDF물리절대경로").toString());
		해당 파일 객체 byte 배열로 변환
			byte[] pdfBytes = Files.readAllBytes(file.toPath());
		위변조 검사
					
			/* [Step1] 전자문서 위변조 검증 */
			try {
				DSTSPDFSig dstspdfSig = new DSTSPDFSig();
				dstspdfSig.init(pdfBytes);
				dstspdfSig.tokenParse();
				
				isSuccess = dstspdfSig.tokenVerify();		
				if( isSuccess) {
					//System.out.println("Step1] 전자문서 위변조 검증 완료");
				}else {
					String msg = dstspdfSig.getTstVerifyFailInfo();
					logger.debug("[Step1] 전자문서 위변조 검증 실패  " + msg);
				}				
				
			}catch (DVException e) {
					logger.debug("에러 코드 " + e.getLastError());
					logger.debug("에러 메시지 " +e.getMessage());
			}
			/* [Step2] XML(or SAM) 데이터 추출 */
			try {
				if (isSuccess) {
					ExportCustomFile pdf = new ExportCustomFile();		
					// 데이터 추출
					byte[] buf = pdf.NTS_GetFileBufEx(pdfBytes, p_pwd, key, false );
					int v_ret = pdf.NTS_GetLastError();	
					if (v_ret == 1) {		
						String strXml = new String( buf, "UTF-8" );	
						mapData.put("XML", strXml);
						mapData.put("로그인아이디", 'ADMIN');	
						int rtn = -1;
						//연말정산 추출 데이터 프로시저 전달
						rtn = ajdSetupRepository.insertCALLAdjTab3(mapData);
						/* mybatis procedure 참고
						    <select id="insertCALLAdjTab3" statementType="CALLABLE" parameterType="map">
							{
								CALL PHC6_XMLTODATA_ALL
								(
								 #{GRP_FILE_ID,jdbcType=VARCHAR,mode=IN},
								#{FILE_ID,jdbcType=VARCHAR,mode=IN},
								#{XML,jdbcType=CLOB,mode=IN},
								#{S_USER_ID,jdbcType=VARCHAR,mode=IN}
								)
							}
							</select>
						*/
						if(rtn > -1) {
							logger.debug("INSERT 성공");	
						} else if (v_ret == 0) {
							logger.debug("연말정산간소화 표준 전자문서가 아닙니다.");
						} else if (v_ret == -1) {
							logger.debug("비밀번호가 틀립니다.");
						} else if (v_ret == -2) {
							logger.debug("PDF문서가 아니거나 손상된 문서입니다.");
						} else {
							logger.debug("데이터 추출에 실패하였습니다.");
						}
					}
			} catch (Exception e) {
					logger.debug("[Step2] 데이터 추출 실패(" + e.toString() + ")");
			}				
		} catch (final IOException e) {
				System.out.println("파일 "+e);
		}
		
        

프로시저 참고

CREATE OR REPLACE PROCEDURE BRE.PHC6_XMLTODATA_ALL (in_sjsnyeondo   IN VARCHAR2, --그룹아이디
                                              in_sjmdrbeonho IN VARCHAR2, --파일 아이디
                                              in_xmldata     IN CLOB, --xmldata
                                              in_sjakeopja   IN VARCHAR2) --작업자
IS

  -------------------------------------------------------------
  SPROGRAMID VARCHAR2(60) := 'PHC6_XMLTO_ALL';
  SCRDAESANG VARCHAR2(60) := '국세청 전자문서PDF_XML을 데이터베이스 자료로 변환';
  SJSGUBUN   VARCHAR2(1) := NULL;
  LCGEONSU   NUMBER(7, 0) := 0;
  LBRGEONSU  NUMBER(7, 0) := 0;
  LCRGEONSU  NUMBER(7, 0) := 0;
  SFLAG      CHAR(1) := '0';
  SXMLDATA   CLOB;
  -------------------------------------------------------------
/******************************************************************************
   NAME:       PHC6_XMLTO_ALL
   PURPOSE:

   REVISIONS:
   Ver        Date        Author           Description
   ---------  ----------  ---------------  ------------------------------------
   1.0        2016-01-07   operoninc       1. Created this procedure.

   NOTES:

   Automatically available Auto Replace Keywords:
      Object Name:     PHC6_XMLTO_ALL
      Sysdate:         2016-01-07
      Date and Time:   2016-01-07, 오후 4:09:18, and 2016-01-07 오후 4:09:18
      Username:        operoninc (set in TOAD Options, Procedure Editor)
      Table Name:       (set in the "New PL/SQL Object" dialog)

  -- 연말정산 국세청 전자문서PDF_XML을 보험료 자료로 변환
  -- in_sjsnyeondo : 정산년도
  -- in_sjmdrbeonho: 사원번호/주민번호
  -- in_xmldata    : XML자료
  -- in_sjakeopja  : 작업자


******************************************************************************/
BEGIN


    SXMLDATA := IN_XMLDATA;

    BEGIN

    -- 기존데이터 삭제
    DELETE PHCYAXML
    WHERE JSNYEONDO = in_sjsnyeondo
    AND JMDRBEONHO = in_sjmdrbeonho;



    /* XML내역 */
    FOR FORM_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/form/@form_cd') FORM_CD,                                   -- 서식코드
                                 EXTRACT(VALUE(P), '/form/man') MAN_XML
                          FROM TABLE(XMLSEQUENCE(EXTRACT(XMLTYPE(SXMLDATA), '/yesone/form'))) P) LOOP


                FOR MAN_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/man/@ftyr_market_tot_amt') FTYR_MARKET_TOT_AMT,       -- 전전년도_전통시장공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@ftyr_tmoney_tot_amt') FTYR_TMONEY_TOT_AMT,       -- 전전년도_대중교통공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@ftyr_tot_amt') FTYR_TOT_AMT,                     -- 전전년도_일반공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@name') NAME,                                     -- 성명
                                            EXTRACTVALUE(VALUE(P), '/man/@pre_market_tot_amt') PRE_MARKET_TOT_AMT,         -- 직전년도_전통시장공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@pre_tmoney_tot_amt') PRE_TMONEY_TOT_AMT,         -- 직전년도_대중교통공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@pre_tot_amt') PRE_TOT_AMT,                       -- 직전년도_일반공제대상금액합계
                                            EXTRACTVALUE(VALUE(P), '/man/@resid') RESID,
                                            EXTRACT(VALUE(P), '/man/data') DATA_XML
                             FROM TABLE(XMLSEQUENCE(EXTRACT(FORM_XMLDATA.MAN_XML, '/man'))) P ) LOOP


                    FOR DATA_XMLDATA IN (SELECT EXTRACTVALUE(VALUE(P), '/data/@acc_no') ACC_NO,                            -- 계좌/증권번호
                                                EXTRACTVALUE(VALUE(P), '/data/@busnid') BUSNID,                            -- 사업자번호
                                                EXTRACTVALUE(VALUE(P), '/data/@dat_cd') DAT_CD ,                           -- 자료코드
                                                EXTRACTVALUE(VALUE(P), '/data/@donation_cd') DONATION_CD,                  -- 기부유형
                                                EXTRACTVALUE(VALUE(P), '/data/@edu_tp') EDU_TP,                            -- 교육비종류
                                                EXTRACTVALUE(VALUE(P), '/data/@first_tot_amt') FIRST_TOT_AMT,              -- 귀속년도_상반기_대상금액합계(조회기간)
                                                EXTRACTVALUE(VALUE(P), '/data/@first_year_tot_amt') FIRST_YEAR_TOT_AMT,    -- 귀속년도_상반기_대상금액합계
                                                EXTRACTVALUE(VALUE(P), '/data/@inqr_end_mm') INQR_END_MM,                  -- 조회기간 종료월
                                                EXTRACTVALUE(VALUE(P), '/data/@inqr_strt_mm') INQR_STRT_MM,                -- 조회기간 시작월
                                                EXTRACTVALUE(VALUE(P), '/data/@second_tot_amt') SECOND_TOT_AMT,            -- 귀속년도_하반기_대상금액합계(조회기간)
                                                EXTRACTVALUE(VALUE(P), '/data/@second_year_tot_amt') SECOND_YEAR_TOT_AMT,  -- 귀속년도_하반기_대상금액합계
                                                EXTRACTVALUE(VALUE(P), '/data/@secu_no') SECU_NO,                          -- 계좌번호
                                                EXTRACTVALUE(VALUE(P), '/data/@trade_nm') TRADE_NM,                        -- 상호
                                                EXTRACTVALUE(VALUE(P), '/data/@use_place_cd') USE_PLACE_CD,                -- 종류
                                                EXTRACTVALUE(VALUE(P), '/data/ann_tot_amt') ANN_TOT_AMT,                   -- 당해연도납입금액
                                                EXTRACTVALUE(VALUE(P), '/data/com_cd') COM_CD,                             -- 금융회사등 코드
                                                EXTRACTVALUE(VALUE(P), '/data/course_cd') COURSE_CD,                       -- 과정코드
                                                EXTRACTVALUE(VALUE(P), '/data/ddct_bs_ass_amt') DDCT_BS_ASS_AMT,           -- 소득공제대상액/순납입금액
                                                EXTRACTVALUE(VALUE(P), '/data/debt') DEBT,                                 -- 차입금
                                                EXTRACTVALUE(VALUE(P), '/data/end_dt') END_DT,                             -- 계약종료일/최종상환예정일
                                                EXTRACTVALUE(VALUE(P), '/data/fixed_rate_debt') FIXED_RATE_DEBT,           -- 고정금리차입금
                                                EXTRACTVALUE(VALUE(P), '/data/fund_nm') FUND_NM,                           -- 펀드명
                                                EXTRACTVALUE(VALUE(P), '/data/goods_nm') GOODS_NM,                         -- 상품명,보험종류,저축명
                                                EXTRACTVALUE(VALUE(P), '/data/house_take_dt') HOUSE_TAKE_DT,               -- 주택취득일
                                                EXTRACTVALUE(VALUE(P), '/data/insu1_nm') INSU1_NM,                         -- 성명_주피보험자
                                                EXTRACTVALUE(VALUE(P), '/data/insu1_resid') INSU1_RESID,                   -- 주민등록번호_주피보험자
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_nm_1') INSU2_NM_1,                     -- 성명_종피보험자_3
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_nm_2') INSU2_NM_2,                     -- 성명_종피보험자_1
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_nm_3') INSU2_NM_3,                     -- 성명_종피보험자_2
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_resid_1') INSU2_RESID_1,               -- 주민등록번호_종피보험자_3
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_resid_2') INSU2_RESID_2,               -- 주민등록번호_종피보험자_1
                                                EXTRACTVALUE(VALUE(P), '/data/insu2_resid_3') INSU2_RESID_3,               -- 주민등록번호_종피보험자_2
                                                EXTRACTVALUE(VALUE(P), '/data/lend_dt') LEND_DT,                           -- 대출일
                                                EXTRACTVALUE(VALUE(P), '/data/lend_goods_nm') LEND_GOODS_NM,               -- 상품명
                                                EXTRACTVALUE(VALUE(P), '/data/lend_kd') LEND_KD,                           -- 대출종류
                                                EXTRACTVALUE(VALUE(P), '/data/lend_loan_amt') LEND_LOAN_AMT,               -- 대출원금
                                                EXTRACTVALUE(VALUE(P), '/data/mort_setup_dt') MORT_SETUP_DT,               -- 저당권설정일
                                                EXTRACTVALUE(VALUE(P), '/data/not_defer_debt') NOT_DEFER_DEBT,             -- 비거치식상환차입금
                                                EXTRACTVALUE(VALUE(P), '/data/pay_method') PAY_METHOD,                     -- 납입방법
                                                EXTRACTVALUE(VALUE(P), '/data/pension_cd') PENSION_CD,                     -- 계좌유형
                                                EXTRACTVALUE(VALUE(P), '/data/reg_dt') REG_DT,                             -- 가입일자
                                                EXTRACTVALUE(VALUE(P), '/data/repay_years') REPAY_YEARS,                   -- 상환기간연수
                                                EXTRACTVALUE(VALUE(P), '/data/saving_gubn') SAVING_GUBN,                   -- 저축구분
                                                EXTRACTVALUE(VALUE(P), '/data/start_dt') START_DT,                         -- 계약시작일/최초차입일
                                                EXTRACTVALUE(VALUE(P), '/data/subject_nm') SUBJECT_NM,                     -- 과정명
                                                EXTRACTVALUE(VALUE(P), '/data/sum') SUM,                                   -- 년간합계액
                                                EXTRACTVALUE(VALUE(P), '/data/sum/@ddct') DDCT,                            -- 소득공제대상액
                                                EXTRACTVALUE(VALUE(P), '/data/tax_year_amt') TAX_YEAR_AMT,                 -- 당해연도인출금액
                                                EXTRACTVALUE(VALUE(P), '/data/this_year_rede_amt') THIS_YEAR_REDE_AMT     -- 당해년 원금상환
                                 FROM TABLE(XMLSEQUENCE(EXTRACT(MAN_XMLDATA.DATA_XML, '/data'))) P ) LOOP



                            DBMS_OUTPUT.PUT_LINE('FORM_CD  : ' || FORM_XMLDATA.FORM_CD);
                                                        DBMS_OUTPUT.PUT_LINE('RESID  : ' || MAN_XMLDATA.RESID);
                            DBMS_OUTPUT.PUT_LINE('NAME  : ' || MAN_XMLDATA.NAME);
                            DBMS_OUTPUT.PUT_LINE('DAT_CD  : ' || DATA_XMLDATA.DAT_CD);
                            DBMS_OUTPUT.PUT_LINE('BUSNID  : ' || DATA_XMLDATA.BUSNID);
                            DBMS_OUTPUT.PUT_LINE('TRADE_NM  : ' || DATA_XMLDATA.TRADE_NM);
                            DBMS_OUTPUT.PUT_LINE('ACC_NO  : ' || DATA_XMLDATA.ACC_NO);
                            DBMS_OUTPUT.PUT_LINE('GOODS_NM  : ' || DATA_XMLDATA.GOODS_NM);
                            DBMS_OUTPUT.PUT_LINE('SUM  : ' || DATA_XMLDATA.SUM);
                            DBMS_OUTPUT.PUT_LINE('DDCT  : ' || DATA_XMLDATA.DDCT);
                            DBMS_OUTPUT.PUT_LINE('DDCT_BS_ASS_AMT  : ' || DATA_XMLDATA.DDCT_BS_ASS_AMT);
                            DBMS_OUTPUT.PUT_LINE('EDU_TP  : ' || DATA_XMLDATA.EDU_TP);
                            DBMS_OUTPUT.PUT_LINE('COURSE_CD  : ' || DATA_XMLDATA.COURSE_CD);
                            DBMS_OUTPUT.PUT_LINE('SUBJECT_NM  : ' || DATA_XMLDATA.SUBJECT_NM);
                            DBMS_OUTPUT.PUT_LINE('START_DT  : ' || DATA_XMLDATA.START_DT);
                            DBMS_OUTPUT.PUT_LINE('END_DT  : ' || DATA_XMLDATA.END_DT);
                            DBMS_OUTPUT.PUT_LINE('COM_CD  : ' || DATA_XMLDATA.COM_CD);
                            DBMS_OUTPUT.PUT_LINE('ANN_TOT_AMT  : ' || DATA_XMLDATA.ANN_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('TAX_YEAR_AMT  : ' || DATA_XMLDATA.TAX_YEAR_AMT);
                            DBMS_OUTPUT.PUT_LINE('PENSION_CD  : ' || DATA_XMLDATA.PENSION_CD);
                            DBMS_OUTPUT.PUT_LINE('FTYR_TOT_AMT  : ' || MAN_XMLDATA.FTYR_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('FTYR_MARKET_TOT_AMT  : ' || MAN_XMLDATA.FTYR_MARKET_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('FTYR_TMONEY_TOT_AMT  : ' || MAN_XMLDATA.FTYR_TMONEY_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('PRE_TOT_AMT  : ' || MAN_XMLDATA.PRE_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('PRE_MARKET_TOT_AMT  : ' || MAN_XMLDATA.PRE_MARKET_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('PRE_TMONEY_TOT_AMT  : ' || MAN_XMLDATA.PRE_TMONEY_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('USE_PLACE_CD  : ' || DATA_XMLDATA.USE_PLACE_CD);
                            DBMS_OUTPUT.PUT_LINE('FIRST_TOT_AMT  : ' || DATA_XMLDATA.FIRST_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('SECOND_TOT_AMT  : ' || DATA_XMLDATA.SECOND_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('FIRST_YEAR_TOT_AMT  : ' || DATA_XMLDATA.FIRST_YEAR_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('SECOND_YEAR_TOT_AMT  : ' || DATA_XMLDATA.SECOND_YEAR_TOT_AMT);
                            DBMS_OUTPUT.PUT_LINE('INQR_STRT_MM  : ' || DATA_XMLDATA.INQR_STRT_MM);
                            DBMS_OUTPUT.PUT_LINE('INQR_END_MM  : ' || DATA_XMLDATA.INQR_END_MM);
                            DBMS_OUTPUT.PUT_LINE('LEND_DT  : ' || DATA_XMLDATA.LEND_DT);
                            DBMS_OUTPUT.PUT_LINE('LEND_KD  : ' || DATA_XMLDATA.LEND_KD);
                            DBMS_OUTPUT.PUT_LINE('HOUSE_TAKE_DT  : ' || DATA_XMLDATA.HOUSE_TAKE_DT);
                            DBMS_OUTPUT.PUT_LINE('MORT_SETUP_DT  : ' || DATA_XMLDATA.MORT_SETUP_DT);
                            DBMS_OUTPUT.PUT_LINE('REPAY_YEARS  : ' || DATA_XMLDATA.REPAY_YEARS);
                            DBMS_OUTPUT.PUT_LINE('LEND_GOODS_NM  : ' || DATA_XMLDATA.LEND_GOODS_NM);
                            DBMS_OUTPUT.PUT_LINE('DEBT  : ' || DATA_XMLDATA.DEBT);
                            DBMS_OUTPUT.PUT_LINE('FIXED_RATE_DEBT  : ' || DATA_XMLDATA.FIXED_RATE_DEBT);
                            DBMS_OUTPUT.PUT_LINE('NOT_DEFER_DEBT  : ' || DATA_XMLDATA.NOT_DEFER_DEBT);
                            DBMS_OUTPUT.PUT_LINE('THIS_YEAR_REDE_AMT  : ' || DATA_XMLDATA.THIS_YEAR_REDE_AMT);
                            DBMS_OUTPUT.PUT_LINE('REG_DT  : ' || DATA_XMLDATA.REG_DT);
                            DBMS_OUTPUT.PUT_LINE('SAVING_GUBN  : ' || DATA_XMLDATA.SAVING_GUBN);
                            DBMS_OUTPUT.PUT_LINE('LEND_LOAN_AMT  : ' || DATA_XMLDATA.LEND_LOAN_AMT);
                            DBMS_OUTPUT.PUT_LINE('PAY_METHOD  : ' || DATA_XMLDATA.PAY_METHOD);
                            DBMS_OUTPUT.PUT_LINE('DONATION_CD  : ' || DATA_XMLDATA.DONATION_CD);
                            DBMS_OUTPUT.PUT_LINE('SECU_NO  : ' || DATA_XMLDATA.SECU_NO);
                            DBMS_OUTPUT.PUT_LINE('FUND_NM  : ' || DATA_XMLDATA.FUND_NM);
                            DBMS_OUTPUT.PUT_LINE('INSU1_RESID  : ' || DATA_XMLDATA.INSU1_RESID);
                            DBMS_OUTPUT.PUT_LINE('INSU1_NM  : ' || DATA_XMLDATA.INSU1_NM);
                            DBMS_OUTPUT.PUT_LINE('INSU2_RESID_1  : ' || DATA_XMLDATA.INSU2_RESID_1);
                            DBMS_OUTPUT.PUT_LINE('INSU2_NM_1  : ' || DATA_XMLDATA.INSU2_NM_1);
                            DBMS_OUTPUT.PUT_LINE('INSU2_RESID_2  : ' || DATA_XMLDATA.INSU2_RESID_2);
                            DBMS_OUTPUT.PUT_LINE('INSU2_NM_2  : ' || DATA_XMLDATA.INSU2_NM_2);
                            DBMS_OUTPUT.PUT_LINE('INSU2_RESID_3  : ' || DATA_XMLDATA.INSU2_RESID_3);
                            DBMS_OUTPUT.PUT_LINE('INSU2_NM_3  : ' || DATA_XMLDATA.INSU2_NM_3);


              INSERT INTO PHCYAXML (JSNYEONDO        --정산년도
                            ,JMDRBEONHO --주민등록(사원)번호
                            ,FORM_CD             -- 서식코드
                            ,RESID               -- 주민등록번호
                            ,NAME                -- 성명
                            ,DAT_CD              -- 자료코드
                            ,BUSNID              -- 사업자번호
                            ,TRADE_NM            -- 상호
                            ,ACC_NO              -- 계좌/증권번호
                            ,GOODS_NM            -- 상품명,보험종류,저축명
                            ,SUM                 -- 년간합계액
                            ,DDCT                -- 소득공제대상액
                            ,DDCT_BS_ASS_AMT     -- 소득공제대상액/순납입금액
                            ,EDU_TP              -- 교육비종류
                            ,COURSE_CD           -- 과정코드
                            ,SUBJECT_NM          -- 과정명
                            ,START_DT            -- 계약시작일/최초차입일
                            ,END_DT              -- 계약종료일/최종상환예정일
                            ,COM_CD              -- 금융회사등 코드
                            ,ANN_TOT_AMT         -- 당해연도납입금액
                            ,TAX_YEAR_AMT        -- 당해연도인출금액
                            ,PENSION_CD          -- 계좌유형
                            ,FTYR_TOT_AMT        -- 전전년도_일반공제대상금액합계
                            ,FTYR_MARKET_TOT_AMT -- 전전년도_전통시장공제대상금액합계
                            ,FTYR_TMONEY_TOT_AMT -- 전전년도_대중교통공제대상금액합계
                            ,PRE_TOT_AMT         -- 직전년도_일반공제대상금액합계
                            ,PRE_MARKET_TOT_AMT  -- 직전년도_전통시장공제대상금액합계
                            ,PRE_TMONEY_TOT_AMT  -- 직전년도_대중교통공제대상금액합계
                            ,USE_PLACE_CD        -- 종류
                            ,FIRST_TOT_AMT       -- 귀속년도_상반기_대상금액합계(조회기간)
                            ,SECOND_TOT_AMT      -- 귀속년도_하반기_대상금액합계(조회기간)
                            ,FIRST_YEAR_TOT_AMT  -- 귀속년도_상반기_대상금액합계
                            ,SECOND_YEAR_TOT_AMT -- 귀속년도_하반기_대상금액합계
                            ,INQR_STRT_MM        -- 조회기간 시작월
                            ,INQR_END_MM         -- 조회기간 종료월
                            ,LEND_DT             -- 대출일
                            ,LEND_KD             -- 대출종류
                            ,HOUSE_TAKE_DT       -- 주택취득일
                            ,MORT_SETUP_DT       -- 저당권설정일
                            ,REPAY_YEARS         -- 상환기간연수
                            ,LEND_GOODS_NM       -- 상품명
                            ,DEBT                -- 차입금
                            ,FIXED_RATE_DEBT     -- 고정금리차입금
                            ,NOT_DEFER_DEBT      -- 비거치식상환차입금
                            ,THIS_YEAR_REDE_AMT  -- 당해년 원금상환액
                            ,REG_DT              -- 가입일자
                            ,SAVING_GUBN         -- 저축구분
                            ,LEND_LOAN_AMT       -- 대출원금
                            ,PAY_METHOD          -- 납입방법
                            ,DONATION_CD         -- 기부유형
                            ,SECU_NO             -- 계좌번호
                            ,FUND_NM             -- 펀드명
                            ,INSU1_RESID         -- 주민등록번호_주피보험자
                            ,INSU1_NM            -- 성명_주피보험자
                            ,INSU2_RESID_1       -- 주민등록번호_종피보험자_3
                            ,INSU2_NM_1          -- 성명_종피보험자_3
                            ,INSU2_RESID_2       -- 주민등록번호_종피보험자_1
                            ,INSU2_NM_2          -- 성명_종피보험자_1
                            ,INSU2_RESID_3       -- 주민등록번호_종피보험자_2
                            ,INSU2_NM_3          -- 성명_종피보험자_2
                            ,JAKEOPJA       --작업자
                            ,JEILJA         --작업일자
                          )
                   VALUES ( in_sjsnyeondo                  --연말정산_정산년도
                            ,in_sjmdrbeonho                                --사원번호
                            ,FORM_XMLDATA.FORM_CD                      -- 서식코드
                            ,MAN_XMLDATA.RESID                        -- 주민등록번호
                            ,MAN_XMLDATA.NAME                         -- 성명
                            ,DATA_XMLDATA.DAT_CD                       -- 자료코드
                            ,DATA_XMLDATA.BUSNID                       -- 사업자번호
                            ,DATA_XMLDATA.TRADE_NM                     -- 상호
                            ,DATA_XMLDATA.ACC_NO                       -- 계좌/증권번호
                            ,DATA_XMLDATA.GOODS_NM                     -- 상품명,보험종류,저축명
                            ,DATA_XMLDATA.SUM                          -- 년간합계액
                            ,DATA_XMLDATA.DDCT                         -- 소득공제대상액
                            ,DATA_XMLDATA.DDCT_BS_ASS_AMT              -- 소득공제대상액/순납입금액
                            ,DATA_XMLDATA.EDU_TP                       -- 교육비종류
                            ,DATA_XMLDATA.COURSE_CD                    -- 과정코드
                            ,DATA_XMLDATA.SUBJECT_NM                   -- 과정명
                            ,DATA_XMLDATA.START_DT                     -- 계약시작일/최초차입일
                            ,DATA_XMLDATA.END_DT                       -- 계약종료일/최종상환예정일
                            ,DATA_XMLDATA.COM_CD                       -- 금융회사등 코드
                            ,DATA_XMLDATA.ANN_TOT_AMT                  -- 당해연도납입금액
                            ,DATA_XMLDATA.TAX_YEAR_AMT                 -- 당해연도인출금액
                            ,DATA_XMLDATA.PENSION_CD                   -- 계좌유형
                            ,MAN_XMLDATA.FTYR_TOT_AMT                 -- 전전년도_일반공제대상금액합계
                            ,MAN_XMLDATA.FTYR_MARKET_TOT_AMT          -- 전전년도_전통시장공제대상금액합계
                            ,MAN_XMLDATA.FTYR_TMONEY_TOT_AMT          -- 전전년도_대중교통공제대상금액합계
                            ,MAN_XMLDATA.PRE_TOT_AMT                  -- 직전년도_일반공제대상금액합계
                            ,MAN_XMLDATA.PRE_MARKET_TOT_AMT           -- 직전년도_전통시장공제대상금액합계
                            ,MAN_XMLDATA.PRE_TMONEY_TOT_AMT           -- 직전년도_대중교통공제대상금액합계
                            ,DATA_XMLDATA.USE_PLACE_CD                 -- 종류
                            ,DATA_XMLDATA.FIRST_TOT_AMT                -- 귀속년도_상반기_대상금액합계(조회기간)
                            ,DATA_XMLDATA.SECOND_TOT_AMT               -- 귀속년도_하반기_대상금액합계(조회기간)
                            ,DATA_XMLDATA.FIRST_YEAR_TOT_AMT           -- 귀속년도_상반기_대상금액합계
                            ,DATA_XMLDATA.SECOND_YEAR_TOT_AMT          -- 귀속년도_하반기_대상금액합계
                            ,DATA_XMLDATA.INQR_STRT_MM                 -- 조회기간 시작월
                            ,DATA_XMLDATA.INQR_END_MM                  -- 조회기간 종료월
                            ,DATA_XMLDATA.LEND_DT                      -- 대출일
                            ,DATA_XMLDATA.LEND_KD                      -- 대출종류
                            ,DATA_XMLDATA.HOUSE_TAKE_DT                -- 주택취득일
                            ,DATA_XMLDATA.MORT_SETUP_DT                -- 저당권설정일
                            ,DATA_XMLDATA.REPAY_YEARS                  -- 상환기간연수
                            ,DATA_XMLDATA.LEND_GOODS_NM                -- 상품명
                            ,DATA_XMLDATA.DEBT                         -- 차입금
                            ,DATA_XMLDATA.FIXED_RATE_DEBT              -- 고정금리차입금
                            ,DATA_XMLDATA.NOT_DEFER_DEBT               -- 비거치식상환차입금
                            ,DATA_XMLDATA.THIS_YEAR_REDE_AMT           -- 당해년 원금상환액
                            ,DATA_XMLDATA.REG_DT                       -- 가입일자
                            ,DATA_XMLDATA.SAVING_GUBN                  -- 저축구분
                            ,DATA_XMLDATA.LEND_LOAN_AMT                -- 대출원금
                            ,DATA_XMLDATA.PAY_METHOD                   -- 납입방법
                            ,DATA_XMLDATA.DONATION_CD                  -- 기부유형
                            ,DATA_XMLDATA.SECU_NO                      -- 계좌번호
                            ,DATA_XMLDATA.FUND_NM                      -- 펀드명
                            ,DATA_XMLDATA.INSU1_RESID                  -- 주민등록번호_주피보험자
                            ,DATA_XMLDATA.INSU1_NM                     -- 성명_주피보험자
                            ,DATA_XMLDATA.INSU2_RESID_1                -- 주민등록번호_종피보험자_3
                            ,DATA_XMLDATA.INSU2_NM_1                   -- 성명_종피보험자_3
                            ,DATA_XMLDATA.INSU2_RESID_2                -- 주민등록번호_종피보험자_1
                            ,DATA_XMLDATA.INSU2_NM_2                   -- 성명_종피보험자_1
                            ,DATA_XMLDATA.INSU2_RESID_3                -- 주민등록번호_종피보험자_2
                            ,DATA_XMLDATA.INSU2_NM_3                   -- 성명_종피보험자_2
                            ,in_sjakeopja                         --연말정산_작업자
                            ,TO_CHAR(SYSDATE,'YYYYMMDDHH24MISS')   --연말정산_작업일자
                            );

            END LOOP;

        END LOOP;

    END LOOP;

  END;


  COMMIT;

 EXCEPTION
     WHEN NO_DATA_FOUND THEN
       NULL;
     WHEN OTHERS THEN null;
END PHC6_XMLTODATA_ALL;

반응형